Commit cb60c7ef authored by dpawar's avatar dpawar

changes in sql functions


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@95289 ce508802-f39f-4f6c-b175-0d175dae99d5
parent e4b807f3
...@@ -66,10 +66,10 @@ values( 'INVOICE_ID','W_PROOF_OF_DELIVERY','SELECT INVOICE_ID,TRAN_DATE,FIN_ENTI ...@@ -66,10 +66,10 @@ values( 'INVOICE_ID','W_PROOF_OF_DELIVERY','SELECT INVOICE_ID,TRAN_DATE,FIN_ENTI
commit; commit;
-- POD Function start -- -- POD Function start -- 20/JUN/2014
create or replace create or replace
Function fn_pod_chk ( as_saleorder in sorder.sale_order%type) Function taroqc.fn_pod_chk ( as_saleorder in sorder.sale_order%type)
RETURN number IS RETURN number IS
TYPE InvCurTyp IS REF CURSOR; TYPE InvCurTyp IS REF CURSOR;
TYPE DtlCurTyp IS REF CURSOR; TYPE DtlCurTyp IS REF CURSOR;
...@@ -139,7 +139,7 @@ BEGIN ...@@ -139,7 +139,7 @@ BEGIN
-- cursor for multiple invoices against passed cust_code -- cursor for multiple invoices against passed cust_code
OPEN inv_cur FOR ls_sql_stmt ;--USING ls_custCodeBill, ls_siteCode; OPEN inv_cur FOR ls_sql_stmt ;--USING ls_custCodeBill, ls_siteCode;
-- Fetch rows from result set one at a time: -- Fetch rows from result set one at a time:
<<continue1>>
LOOP LOOP
FETCH inv_cur INTO ls_invoiceid; FETCH inv_cur INTO ls_invoiceid;
...@@ -150,49 +150,36 @@ BEGIN ...@@ -150,49 +150,36 @@ BEGIN
exception when others then exception when others then
return -2; return -2;
end; end;
if pod_cnt > 0 then
if pod_cnt = 0 then hdr_sql_stmt := 'select sum(d.quantity__resale),sum(d.quantity__inv) from spl_sales_por_hdr h,spl_sales_por_det d where h.tran_id=d.tran_id and h.invoice_id = '''||ls_invoiceid||''' and h.confirmed =''Y'' group by d.item_code,d.line_no__trace,d.lot_no,d.lot_sl';
cnumber := 1; begin
open dtl_cur for hdr_sql_stmt;-- for check invoice amt and resale amt match or not.
return cnumber; <<continue2>>
Loop
FETCH dtl_cur INTO podqty_sum,inv_qty;
EXIT WHEN dtl_cur%NOTFOUND;
if dtl_cur%FOUND then
if podqty_sum < inv_qty then
return 1;
else
goto continue2;
end if;
end if;
end LOOP;
end;
CLOSE dtl_cur;
--exit --exit
else else
-- Logic for partial POD entries starts here begin
cnumber := fn_miscdrcr_chk(ls_invoiceid) ;
if cnumber = 0 then
hdr_sql_stmt := 'select tran_id from spl_sales_por_hdr where invoice_id = '''||ls_invoiceid||''' and confirmed = ''Y'' and wf_status <> ''R'' '; goto continue1 ;
else
begin return cnumber;
open dtl_cur for hdr_sql_stmt;-- USING ls_invoiceid; end if;
end;
LOOP end if; -- end of else for partial POD
FETCH dtl_cur INTO ls_podtranid;
EXIT WHEN dtl_cur%NOTFOUND;
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,lot_no,lot_sl,line_no__trace ;
if podqty_sum < inv_qty then
cnumber :=1;
-- Function fn_miscdrcr_chk to check debit note --
select fn_miscdrcr_chk(ls_invoiceid) into cnumber from dual;
return cnumber;
--exit;
end if;
exception when others then
return -1;
end;
END LOOP;
CLOSE dtl_cur;
end;
-- 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;
...@@ -204,9 +191,10 @@ BEGIN ...@@ -204,9 +191,10 @@ BEGIN
END; END;
-- POD Function ends here -- POD Function ends here
-- Added by Dadaso (used in POD function) -- Added by Dadaso (used in POD function) -- 20/JUN/2014
create or replace function fn_miscdrcr_chk (as_invoiceId in invoice_trace.invoice_id%type) create or replace function fn_miscdrcr_chk (as_invoiceId in invoice_trace.invoice_id%type)
RETURN number IS RETURN number IS
...@@ -234,36 +222,42 @@ invtrace_sql_stmt varchar2(3000); ...@@ -234,36 +222,42 @@ invtrace_sql_stmt varchar2(3000);
cnumber:=0; cnumber:=0;
--dbms_output.put_line('--- Begin function miscdrcr_check-------'); --dbms_output.put_line('--- Begin function miscdrcr_check-------');
open invtrace_cur for invtrace_sql_stmt; open invtrace_cur for invtrace_sql_stmt;
<<cont3>>
LOOP LOOP
FETCH invtrace_cur INTO invtrace_qty,invtrace_itemcode,invtrace_lot_no,invtrace_lot_sl,invtrace_lineNoTrace; FETCH invtrace_cur INTO invtrace_qty,invtrace_itemcode,invtrace_lot_no,invtrace_lot_sl,invtrace_lineNoTrace;
EXIT WHEN invtrace_cur%NOTFOUND;
IF invtrace_cur%FOUND THEN 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,line_no__invtrace 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,line_no__invtrace'; miscdrcr_sql_stmt := 'select sum(nvl(d.quantity,0)) as Quantity,d.item_code,d.lot_sl, d.lot_no,line_no__invtrace 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,line_no__invtrace';
open miscdrcr_cur for miscdrcr_sql_stmt; open miscdrcr_cur for miscdrcr_sql_stmt;
<<cont4>>
loop loop
FETCH miscdrcr_cur INTO miscdrcr_qty,miscdrcr_itemcode,miscdrcr_lot_sl,miscdrcr_lot_no,miscdrcr_lineNoTrace; FETCH miscdrcr_cur INTO miscdrcr_qty,miscdrcr_itemcode,miscdrcr_lot_sl,miscdrcr_lot_no,miscdrcr_lineNoTrace;
IF miscdrcr_cur%FOUND THEN EXIT WHEN miscdrcr_cur%NOTFOUND;
if miscdrcr_qty < invtrace_qty AND invtrace_itemcode = miscdrcr_itemcode AND miscdrcr_lot_no = invtrace_lot_no AND miscdrcr_lot_sl = invtrace_lot_sl AND miscdrcr_lineNoTrace = invtrace_lineNoTrace THEN IF miscdrcr_cur%FOUND THEN
return 1; if miscdrcr_qty < invtrace_qty AND invtrace_itemcode = miscdrcr_itemcode AND miscdrcr_lot_no = invtrace_lot_no AND miscdrcr_lot_sl = invtrace_lot_sl AND miscdrcr_lineNoTrace = invtrace_lineNoTrace THEN
END IF; return 1;
else
END IF; goto cont4;
END IF;
END IF;
end loop; end loop;
close miscdrcr_cur; close miscdrcr_cur;
ELSE ELSE
dbms_output.put_line('--- No Records found for sql --->'+invtrace_sql_stmt); goto cont3;
EXIT;
END IF; END IF;
END LOOP; END LOOP;
close invtrace_cur; close invtrace_cur;
return cnumber;
exception when others then exception when others then
return -1; return -39;
return cnumber; --return cnumber;
END; END;
--- ---
--added cross-update sql [13/12/13] --added cross-update sql [13/12/13]
......
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