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,48 +150,35 @@ BEGIN ...@@ -150,48 +150,35 @@ 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;
return cnumber;
--exit
else
-- 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'' ';
begin begin
open dtl_cur for hdr_sql_stmt;-- USING ls_invoiceid; open dtl_cur for hdr_sql_stmt;-- for check invoice amt and resale amt match or not.
<<continue2>>
LOOP Loop
FETCH dtl_cur INTO ls_podtranid; FETCH dtl_cur INTO podqty_sum,inv_qty;
EXIT WHEN dtl_cur%NOTFOUND; EXIT WHEN dtl_cur%NOTFOUND;
begin if dtl_cur%FOUND then
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 if podqty_sum < inv_qty then
cnumber :=1; return 1;
else
-- Function fn_miscdrcr_chk to check debit note -- goto continue2;
select fn_miscdrcr_chk(ls_invoiceid) into cnumber from dual;
return cnumber;
--exit;
end if; end if;
end if;
exception when others then end LOOP;
return -1;
end; end;
END LOOP;
CLOSE dtl_cur; CLOSE dtl_cur;
end;
-- Logic for partial POD entries ends here
cnumber := 0; --exit
else
begin
cnumber := fn_miscdrcr_chk(ls_invoiceid) ;
if cnumber = 0 then
goto continue1 ;
else
return cnumber;
end if;
end;
end if; -- end of else for partial POD end if; -- end of else for partial POD
END LOOP; END LOOP;
-- Close cursor: -- Close cursor:
...@@ -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;
EXIT WHEN miscdrcr_cur%NOTFOUND;
IF miscdrcr_cur%FOUND THEN 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 AND miscdrcr_lineNoTrace = invtrace_lineNoTrace 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 AND miscdrcr_lineNoTrace = invtrace_lineNoTrace THEN
return 1; return 1;
else
goto cont4;
END IF; END IF;
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