Commit 90b51000 authored by ssurve's avatar ssurve

fn_miscdrcr_chk added and used in fn_pod_chk


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@95062 ce508802-f39f-4f6c-b175-0d175dae99d5
parent ac0be002
...@@ -151,44 +151,48 @@ BEGIN ...@@ -151,44 +151,48 @@ BEGIN
return -2; return -2;
end; end;
if pod_cnt = 0 then if pod_cnt = 0 then
cnumber := 1; cnumber := 1;
return cnumber; return cnumber;
--exit --exit
else else
-- Logic for partial POD entries starts here -- Logic for partial POD entries starts here
hdr_sql_stmt := 'select tran_id from spl_sales_por_hdr where invoice_id = '''||ls_invoiceid||''' and confirmed = ''Y'' and wf_status <> ''R'' '; hdr_sql_stmt := 'select tran_id from spl_sales_por_hdr where invoice_id = '''||ls_invoiceid||''' and confirmed = ''Y'' and wf_status <> ''R'' ';
begin begin
open dtl_cur for hdr_sql_stmt;-- USING ls_invoiceid; open dtl_cur for hdr_sql_stmt;-- USING ls_invoiceid;
LOOP LOOP
FETCH dtl_cur INTO ls_podtranid; FETCH dtl_cur INTO ls_podtranid;
EXIT WHEN dtl_cur%NOTFOUND; EXIT WHEN dtl_cur%NOTFOUND;
begin begin
select sum(quantity__resale),sum(quantity__inv) into podqty_sum,inv_qty from spl_sales_por_det where tran_id = ls_podtranid group by item_code ; select sum(quantity__resale),sum(quantity__inv) into podqty_sum,inv_qty from spl_sales_por_det where tran_id = ls_podtranid group by item_code ;
if podqty_sum < inv_qty then if podqty_sum < inv_qty then
cnumber :=1; cnumber :=1;
return cnumber;
--exit; -- Function fn_miscdrcr_chk to check debit note
end if; select fn_miscdrcr_chk(ls_invoiceid) into cnumber from dual;
exception when others then return cnumber;
return -1; --exit;
end; end if;
END LOOP;
CLOSE dtl_cur; exception when others then
end; return -1;
end;
-- Logic for partial POD entries ends here END LOOP;
CLOSE dtl_cur;
cnumber := 0; end;
end if;
-- Logic for partial POD entries ends here
cnumber := 0;
end if; -- end of else for partial POD
END LOOP; END LOOP;
-- Close cursor: -- Close cursor:
CLOSE inv_cur; CLOSE inv_cur;
...@@ -202,6 +206,65 @@ END; ...@@ -202,6 +206,65 @@ END;
-- POD Function ends here -- POD Function ends here
-- Added by Dadaso (used in POD function)
create or replace function fn_miscdrcr_chk (as_invoiceId in invoice_trace.invoice_id%type)
RETURN number IS
TYPE cursor1 IS REF CURSOR;
TYPE cursor2 IS REF CURSOR;
invtrace_cur cursor1;
miscdrcr_cur cursor2;
miscdrcr_sql_stmt varchar2(3000);
invtrace_sql_stmt varchar2(3000);
invtrace_qty number;
invtrace_itemcode char(10);
invtrace_lot_sl char(15);
invtrace_lot_no char(15);
miscdrcr_qty number;
miscdrcr_itemcode char(10);
miscdrcr_lot_sl char(15);
miscdrcr_lot_no char(15);
cnumber number;
begin
invtrace_sql_stmt :='select sum(quantity),item_code,lot_no,lot_sl from invoice_trace where invoice_id = '''||as_invoiceId||''' group by item_code,lot_no, lot_sl';
cnumber:=0;
--dbms_output.put_line('--- Begin function miscdrcr_check-------');
open invtrace_cur for invtrace_sql_stmt;
LOOP
FETCH invtrace_cur INTO invtrace_qty,invtrace_itemcode,invtrace_lot_no,invtrace_lot_sl;
IF invtrace_cur%FOUND THEN
miscdrcr_sql_stmt := 'select sum(nvl(d.quantity,0)) as Quantity,d.item_code,d.lot_sl, d.lot_no from misc_drcr_rcp h,misc_drcr_rdet d where h.tran_id=d.tran_id and h.remarks like ''%POD%'||as_invoiceId||''' and Quantity <> 0 group by d.item_code,d.lot_sl,d.lot_no';
open miscdrcr_cur for miscdrcr_sql_stmt;
loop
FETCH miscdrcr_cur INTO miscdrcr_qty,miscdrcr_itemcode,miscdrcr_lot_sl,miscdrcr_lot_no;
IF miscdrcr_cur%FOUND THEN
if miscdrcr_qty < invtrace_qty AND invtrace_itemcode = miscdrcr_itemcode AND miscdrcr_lot_no = invtrace_lot_no AND miscdrcr_lot_sl = invtrace_lot_sl THEN
return 1;
END IF;
END IF;
end loop;
close miscdrcr_cur;
ELSE
dbms_output.put_line('--- No Records found for sql --->'+invtrace_sql_stmt);
EXIT;
END IF;
END LOOP;
close invtrace_cur;
exception when others then
return -1;
return cnumber;
END;
---
--added cross-update sql [13/12/13] --added cross-update sql [13/12/13]
update obj_forms set cross_update_expr='[debit_note_amt]',expr_fld_info='[2..D.debit_note_amt]',target_fld_info='[1.1.D.debit_note_amt]' update obj_forms set cross_update_expr='[debit_note_amt]',expr_fld_info='[2..D.debit_note_amt]',target_fld_info='[1.1.D.debit_note_amt]'
where win_name='w_proof_of_delivery' and form_no='2'; where win_name='w_proof_of_delivery' and form_no='2';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment