script store procedure pos

Download Script Store Procedure Pos

If you can't read please download the document

Upload: muslih-muz

Post on 17-Jan-2016

218 views

Category:

Documents


1 download

DESCRIPTION

sql

TRANSCRIPT

1 . Procedure structure for adjusmentonhandCREATE PROCEDURE `adjusmentonhand`(IN idoutlet varchar(10), IN tglopname date, IN tglajusment date)beginDECLARE finished integer default 0;DECLARE pkdbrg varchar(15);DECLARE qtyFK,qtyRM,qtySR,qtyRG,qtySales,qtyRK,qtyJualPiutang,qtyReturPiutang integer;DECLARE qtyopname integer;DECLARE qtyopname_1,qtyFK_1,qtyRM_1,qtySR_1,qtyRG_1,qtySales_1,qtyRK_1,qtyakhir,qtyJualPiutang_1,qtyReturPiutang_1 integer;DECLARE mb_cur CURSOR FOR select distinct kdbarang from opname where idoutlet=idoutlet and tanggal=tglopname unionselect distinct kdbarang from vw_fakturkirim where idoutlet=idoutlet and tgltrans >=tglopname unionselect distinct kdbarang from vw_rollingmasuk where idoutlet=idoutlet and tgltrans >=tglopname unionselect distinct kdbarang from vw_rollingkeluar where idoutlet=idoutlet and tgltrans >=tglopname unionselect distinct kdbarang from vw_returgudang where idoutlet=idoutlet and tgltrans >=tglopname unionselect distinct kdbarang from vw_sales where idoutlet=idoutlet and tgltrans >=tglopname unionselect distinct kdbarang from vw_salesretur where idoutlet=idoutlet and tgltrans >=tglopname unionselect distinct kdbarang from vw_penjualankredit where idoutlet=idoutlet and tgltrans >=tglopname unionselect distinct kdbarang from vw_returpenjualankredit where idoutlet=idoutlet and tgltrans >=tglopname order by kdbarang; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finished = 1; update masterbarang set qtyonhand=0 where idoutlet=idoutlet;OPEN mb_cur;REPEAT FETCH mb_cur INTO pkdbrg; /*IF finished THEN LEAVE get_mb; END IF; */ IF NOT finished THEN /*CALL getOpname(idoutlet,pkdbrg,tglopname,qtyopname); CALL getMutasi(idoutlet,pkdbrg,tglopname,tglajusment,qtyFK,qtyRM,qtySR,qtyRG,qtySales,qtyRK,qtyReturPiutang,qtyJualPiutang);*/ select sum(coalesce(b.qty,0)) as qtyFK,sum(coalesce(c.qty,0)) as qtyRM,sum(coalesce(d.qty,0)) as qtySR,sum(coalesce(e.qty,0)) as qtySales,sum(coalesce(f.qty,0)) as qtyRG,sum(coalesce(g.qty,0)) as qtyRK from vw_transpos as aleft join vw_transpos as b on b.notrans=a.notrans and b.kdbarang=a.kdbarang and b.idtypetrans='1'left join vw_transpos as c on c.notrans=a.notrans and c.kdbarang=a.kdbarang and c.idtypetrans='3'left join vw_transpos as d on d.notrans=a.notrans and d.kdbarang=a.kdbarang and d.idtypetrans='6'left join vw_transpos as e on e.notrans=a.notrans and e.kdbarang=a.kdbarang and e.idtypetrans='5'left join vw_transpos as f on f.notrans=a.notrans and f.kdbarang=a.kdbarang and f.idtypetrans='2'left join vw_transpos as g on f.notrans=a.notrans and g.kdbarang=a.kdbarang and g.idtypetrans='4'where a.kdbarang=pkdbrg and a.idoutlet=idoutlet and date_format(a.tgltrans,'%Y-%m-%d')>=tglopname and date_format(a.tgltrans,'%Y-%m-%d')=tglopname) and (date_format(tgltrans,'%Y-%m-%d')=tglopname) and (date_format(tgltrans,'%Y-%m-%d')=ptglawal and date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')pPersen) theninsert into temp_to(jenis,sales,avgopname,turnover) values(pJenis,qtyonhand,pQtyBuffer,nPrsn);end if;end;;7. Procedure structure for getInfoJualCREATE PROCEDURE `getInfoJual`(IN pNoFaktur varchar(15), IN pKdBarang varchar(15), OUT p_jenisrabat varchar(10) ,OUT p_prsnrabat double, OUT p_idmember varchar(15), OUT p_hpj double, OUT p_prsndisshf double, OUT p_prsndisdept double)beginselect jenisrabat from vw_sales where notrans=pNoFaktur and kdbarang=pKdBarang into p_jenisrabat;select prsnrabat from vw_sales where notrans=pNoFaktur and kdbarang=pKdBarang into p_prsnrabat;select Idmember from vw_sales where notrans=pNoFaktur and kdbarang=pKdBarang into p_idmember;select hpj from vw_sales where notrans=pNoFaktur and kdbarang=pKdBarang into p_hpj;select prsnDiskon1 from vw_sales where notrans=pNoFaktur and kdbarang=pKdBarang into p_prsndisshf;select persendisdept from vw_sales where notrans=pNoFaktur and kdbarang=pKdBarang into p_prsndisdept;end;;8. Procedure structure for getInsertOpnameCREATE PROCEDURE `getInsertOpname`(IN idoutlet varchar(10), IN pkdbrg varchar(15),IN LastOpname date,IN tglopname date,IN tglawal date,IN tglakhir date)beginDECLARE qtyopname,qtyFK,qtyRM,qtySR,qtyRG,qtySales,qtyRK,qtyReturPiutang,qtyJualPiutang integer;DECLARE qtyopname_1,qtyFK_1,qtyRM_1,qtySR_1,qtyRG_1,qtySales_1,qtyRK_1,qtyReturPiutang_1,qtyJualPiutang_1 integer;DECLARE qtyakhir integer; CALL getOpname(idoutlet,pkdbrg,LastOpname,qtyopname); CALL getMutasi(idoutlet,pkdbrg,tglawal,tglakhir,qtyFK,qtyRM,qtySR,qtyRG,qtySales,qtyRK,qtyReturPiutang,qtyJualPiutang); set qtyopname_1=case when qtyopname is null then 0 else qtyopname end ; set qtyFK_1=case when qtyFK is null then 0 else qtyFK end; set qtyRM_1=case when qtyRM is null then 0 else qtyRM end ; set qtySR_1=case when qtySR is null then 0 else qtySR end; set qtyRG_1=case when qtyRG is null then 0 else qtyRG end; set qtySales_1=case when qtySales is null then 0 else qtySales end; set qtyRK_1=case when qtyRK is null then 0 else qtyRK end; set qtyReturPiutang_1=case when qtyReturPiutang is null then 0 else qtyReturPiutang end; set qtyJualPiutang_1=case when qtyJualPiutang is null then 0 else qtyJualPiutang end; set qtyakhir=(qtyopname_1+qtyFK_1 + qtyRM_1 + qtySR_1 + qtyReturPiutang_1) - (qtyRG_1 + qtySales_1 + qtyRK_1 + qtyJualPiutang_1); INSERT INTO opname(kdbarang,tanggal,idoutlet,qty,qtyfisik) VALUES(pkdbrg,tglopname,idoutlet,qtyakhir,qtyakhir);end;;9. Procedure structure for getLastOpnameCREATE PROCEDURE `getLastOpname`(IN pidoutlet varchar(10),OUT pLastOpname date,OUT pStsAmbilData int)begin declare dLastOpname date; declare dDateMinFK date;select max(tanggal) from opname where idoutlet=pidoutlet into dLastOpname; select min(tgltrans) tgl from vw_fakturkirim where idoutlet=pidoutlet into dDateMinFK;if dLastOpname is null thenset pLastOpname=dDateMinFK; set pStsAmbilData=2;elseset pLastOpname=dLastOpname; set pStsAmbilData=1;end if;end;;10. Procedure structure for getMutasiCREATE PROCEDURE `getMutasi`(IN p_idoutlet varchar(10),IN p_kdbarang varchar(15),IN p_tanggal1 date,IN p_tanggal2 date,OUT p_qtyFK INT,OUT p_qtyRM INT,OUT p_qtySR INT,OUT p_qtyRG INT,OUT p_qtySales INT,OUT p_qtyRK INT, OUT p_qtyReturPiutang INT, OUT p_qtyJualPiutang INT)begin /*DECLARE qtyFK,qtyRM,qtySR INT; DECLARE qtyRG,qtySales,qtyRK INT; DECLARE qtyAkhir INT;*/ select sum(qty) from vw_fakturkirim where (idoutlet=p_idoutlet) and (kdbarang=p_kdbarang) and ((date_format(tgltrans,'%Y-%m-%d')>=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')=p_tanggal1) and (date_format(tgltrans,'%Y-%m-%d')0 thenset nTO=nsales/navgopname; elseset nTO=0; end if; insert into temp_to(idoutlet,jenis,sales,avgopname,TurnOver) values(pidoutlet,pjenis,nsales,navgopname,nTO);end;;14. Procedure structure for sp_adjusmentstokCREATE PROCEDURE `sp_adjusmentstok`(IN p_IdOutlet varchar(10),IN p_Tanggal Date,IN p_lastopname Date)begin #loop dari hasil opname terakhir DECLARE finished integer default 0;Declare p_status int; Declare p_kodebarang varchar(15);Declare p_namabarang varchar(150); DECLARE m_ctabel CURSOR FOR select distinct kdbarang,namabarang from vw_opname where idoutlet=p_IdOutlet and tanggal=p_lastopname union select distinct kdbarang,namabarang from vw_fakturkirim where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_rollingmasuk where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_rollingkeluar where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_returgudang where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_sales where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_salesretur where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_penjualankredit where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_returpenjualankredit where idoutlet=p_IdOutlet and tgltrans >=p_lastopname; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finished = 1; open m_ctabel; REPEAT fetch m_ctabel into p_kodebarang,p_namabarang; call createmutasi(p_IdOutlet,p_kodebarang,p_namabarang,p_lastopname,p_Tanggal,p_lastopname); UNTIL finished END REPEAT ; close m_ctabel;end;;14. Procedure structure for sp_adjusmentstok_00CREATE PROCEDURE `sp_adjusmentstok_00`(IN p_IdOutlet varchar(10),IN p_Tanggal Date,IN p_lastopname Date)begin #loop dari hasil opname terakhir DECLARE finished integer default 0;DECLARE finished_1 integer default 0;Declare p_status int; Declare p_kodebarang varchar(15);Declare p_namabarang varchar(150);Declare p_qty int; DECLARE m_ctabel CURSOR FOR select distinct kdbarang,namabarang from vw_opname where idoutlet=p_IdOutlet and tanggal=p_lastopname union select distinct kdbarang,namabarang from vw_fakturkirim where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_rollingmasuk where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_rollingkeluar where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_returgudang where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_sales where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_salesretur where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_penjualankredit where idoutlet=p_IdOutlet and tgltrans >=p_lastopname union select distinct kdbarang,namabarang from vw_returpenjualankredit where idoutlet=p_IdOutlet and tgltrans >=p_lastopname;DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finished = 1; open m_ctabel; REPEAT fetch m_ctabel into p_kodebarang,p_namabarang; call createmutasi(p_IdOutlet,p_kodebarang,p_namabarang,p_lastopname,p_Tanggal,p_lastopname); UNTIL finished END REPEAT ; close m_ctabel;end;;15. Procedure structure for sp_adjusmentstok_01CREATE PROCEDURE `sp_adjusmentstok_01`(IN p_IdOutlet varchar(10),IN p_Tanggal Date,IN p_lastopname Date)begin #loop dari masterbarang DECLARE finished integer default 0;Declare p_status int; Declare p_kodebarang varchar(15);Declare p_namabarang varchar(150); DECLARE m_ctabel CURSOR FOR select distinct kdbarang,namabarang from masterbarang where idoutlet=p_IdOutlet;DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finished = 1; open m_ctabel; REPEAT fetch m_ctabel into p_kodebarang,p_namabarang; call createmutasi(p_IdOutlet,p_kodebarang,p_namabarang,p_lastopname,p_Tanggal,p_lastopname); UNTIL finished END REPEAT ; close m_ctabel;end;;16. Procedure structure for sp_updateonhandCREATE PROCEDURE `sp_updateonhand`(IN p_IdOutlet varchar(10))begin DECLARE finished integer default 0;Declare p_kodebarang varchar(15);Declare p_qty int;DECLARE m_ctabel1 CURSOR FOR select kdbarang,qtyakhir from temp_mutasi where idoutlet=p_IdOutlet;DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET finished = 1; open m_ctabel1; REPEAT fetch m_ctabel1 into p_kodebarang,p_qty; update masterbarang set qtyonhand=p_qty where kdbarang=p_kodebarang and idoutlet=p_IdOutlet;UNTIL finished END REPEAT;close m_ctabel1;end;;17. Update Opnamedrop procedure getLastOpname;CREATE PROCEDURE `getLastOpname`(IN pidoutlet varchar(10),OUT pLastOpname date,OUT pStsAmbilData int)begin declare dLastOpname date; declare dDateMinFK date;select max(tanggal) from opname where idoutlet=pidoutlet and isactive=1 into dLastOpname; select min(tgltrans) tgl from vw_fakturkirim where idoutlet=pidoutlet into dDateMinFK;if dLastOpname is null thenset pLastOpname=dDateMinFK; set pStsAmbilData=2;elseset pLastOpname=dLastOpname; set pStsAmbilData=1;end if;end;;