(1) 銷貨金額計算
搭配 SQL 專案代號 PRJ-0003,SQL 指令如下:
Lock Tables spbill write, splist write, cuquoat write, txrate write;
Update spbill Join splist On spbill.SP_Blno = splist.SP_Blno
Join cuquoat On spbill.CU_No = cuquoat.CU_No And splist.PD_No = cuquoat.PD_No
Join txrate On cuquoat.IC_Tax = txrate.IC_Tax
Set splist.SP_Amt = splist.SP_Qty* If(cuquoat.IC_Tax="T", cuquoat.UN_Price/(1+txRate.TX_Rate), cuquoat.UN_Price), splist.TX_Amt = splist.SP_Qty * If(cuquoat.IC_Tax="T",
cuquoat.UN_Price/(1+txRate.TX_Rate), cuquoat.UN_Price) * txRate.TX_Rate;
Unlock Tables;
註 1:報價檔若含稅者,將統一轉為不含稅,然後以外加方式處理貨款。稅率在 txrate 資料表內定義。
註 2:指令內之 If(cuquoat.IC_Tax="T", cuquoat.UN_Price/(1+txRate.TX_Rate),其 中 IF 為 MySQL 專用函數,詳細用法請參看 MySQL 專用函數說明。
(2) 客戶退貨金額計算
搭配 SQL 專案代號 PRJ-0004,SQL 指令如下:
Lock Tables bkspbl write, bksplog write,cuquoat write, txrate write; ↑H
Update bkspbl Join bksplog On bkspbl.BK_Blno=bksplog.BK_Blno Join cuquoat On bkspbl.CU_No=cuquoat.CU_No And
bksplog.PD_No=cuquoat.PD_No
Join txrate On cuquoat.IC_Tax = txrate.IC_Tax
Set bksplog.BK_Amt= bksplog.BK_Qty* If(cuquoat.IC_Tax="T", cuquoat.UN_Price/(1+txRate.TX_Rate),
cuquoat.UN_Price), bksplog.TX_Amt=bksplog.BK_Qty * If(cuquoat.IC_Tax="T", cuquoat.UN_Price/(1+txRate.TX_Rate), cuquoat.UN_Price) * txRate.TX_Rate;
Unlock Tables;
(3) 進貨金額計算
搭配 SQL 專案代號 PRJ-0005,SQL 指令如下:
Lock Tables icbill write, iclist write, icquoat write, txrate write;
Update icbill Join iclist On icbill.SP_Blno=iclist.SP_Blno
Join icquoat On icbill.CU_No = icquoat.CU_No And iclist.PD_No=icquoat.PD_No Join txrate On icquoat.IC_Tax = txrate.IC_Tax
Set iclist.SP_Amt = iclist.SP_Qty* If(icquoat.IC_Tax="T",
icquoat.UN_Price/(1+txRate.TX_Rate),icquoat.UN_Price), iclist.TX_Amt = iclist.SP_Qty * If(icquoat.IC_Tax="T", icquoat.UN_Price /(1+txRate.TX_Rate), icquoat.UN_Price)* txRate.TX_Rate;
Unlock Tables;
(4) 進貨退回金額計算
搭配 SQL 專案代號 PRJ-0006,SQL 指令如下:
Lock Tables bkicbl write, bkiclog write,icquoat write, txrate write;
Update bkicbl Join bkiclog On bkicbl.BK_Blno=bkiclog.BK_Blno Join icquoat On bkicbl.CU_No = icquoat.CU_No And bkiclog.PD_No =
icquoat.PD_No
Join txrate On icquoat.IC_Tax = txrate.IC_Tax
Set bkiclog.BK_Amt = bkiclog.BK_Qty* If(icquoat.IC_Tax="T",
icquoat.UN_Price/(1+txRate.TX_Rate), icquoat.UN_Price),bkiclog.TX_Amt = bkiclog.BK_Qty * If(icquoat.IC_Tax="T",icquoat.UN_Price/(1+txRate.TX_Rate), icquoat.UN_Price)* txRate.TX_Rate;
Unlock Tables;
(5) 出貨轉應收帳 ↑H
搭配 SQL 專案代號 PRJ-0007,SQL 指令如下:
BackupTBL SQL From splist;
BackupTBL SQL From rcpay;
Create Temporary Table updTable
Select spbill.CU_No, Sum(splist.SP_Amt + splist.TX_Amt) AS Amount,
splist.TR_Note From spbill Join splist Where spbill.SP_Blno = splist.SP_Blno And splist.TR_Note<>"T" Group By spbill.CU_No;
Lock Tables updTable write, spbill write, splist write,rcpay Write, rcpay As objTable Write;
Insert Into rcpay (CU_No) Select CU_No From updTable
Where (CU_No) Not In (Select CU_No From rcpay As objTable);
Update rcpay, updTable
Set rcpay.CR_Spamt = rcpay.CR_Spamt + updTable.Amount Where rcpay.CU_No=
updTable.CU_No;
Update splist Set splist.TR_Note ="T" Where splist.TR_Note<>"T";
Unlock Tables;
Drop Temporary Table updTable;
(6) 收款轉應收帳
搭配 SQL 專案代號 PRJ-0008,SQL 指令如下:
BackupTBL SQL From rcdtl ; BackupTBL SQL From rcpay;
Create Temporary Table updTable
Select rcdtl.CU_No, Sum(rcdtl.CS_Amt) As Csamt, Sum(rcdtl.RD_Amt) As RdAmt, rcdtl.TR_Note From rcdtl Where rcdtl.TR_Note<>"T" Group By rcdtl.CU_No;
Lock Tables updTable write, rcdtl write,rcpay Write;
Update rcpay, updTable
Set rcpay.CR_Csamt = rcpay.CR_Csamt + updTable.Csamt,rcpay.CR_Rdamt = rcpay.CR_Rdamt + updTable.Rdamt Where rcpay.CU_No = updTable.CU_No;
Update rcdtl Set rcdtl.TR_Note="T" Where rcdtl.TR_Note<>"T";
Unlock Tables;
Drop Temporary Table updTable;
(7) 銷貨退回轉應收帳 ↑H
搭配 SQL 專案代號 PRJ-0009,SQL 指令如下:
BackupTBL SQL From bksplog;
BackupTBL SQL From rcpay;
Create Temporary Table updTable
Select bkspbl.CU_No, Sum(bksplog.BK_Amt + bksplog.TX_Amt) AS BkAmt, bksplog.TR_Note From bkspbl
Join bksplog Where bkspbl.BK_Blno = bksplog.BK_Blno And bksplog.TR_Note<>"T" Group By bkspbl.CU_No;
Lock Tables updTable write, bkspbl write, bksplog write, rcpay Write;
Update rcpay, updTable
Set rcpay.CR_Bkamt = rcpay.CR_Bkamt + updTable.Bkamt Where rcpay.CU_No = updTable.CU_No;
Update bksplog Set bksplog.TR_Note="T" Where bksplog.TR_Note<>"T";
Unlock Tables;
Drop Temporary Table updTable;
(8) 進貨轉應付帳
搭配 SQL 專案代號 PRJ-0010,SQL 指令如下:
BackupTBL SQL From iclist;
BackupTBL SQL From rppay;
Create Temporary Table updTable
Select icbill.CU_No, Sum(iclist.SP_Amt + iclist.TX_Amt) AS Amount, iclist.TR_Note From icbill
Join iclist Where icbill.SP_Blno = iclist.SP_Blno And iclist.TR_Note<>"T"
Group By icbill.CU_No;
Lock Tables updTable write, icbill write, iclist write,rppay Write, rppay As objTable Write;
Insert Into rppay (CU_No) Select CU_No From updTable
Where (CU_No) Not In (Select CU_No From rppay As objTable);
Update rppay, updTable
Set rppay.CR_Spamt = rppay.CR_Spamt + updTable.Amount Where rppay.CU_No
= updTable.CU_No;
Update iclist Set iclist.TR_Note ="T" Where iclist.TR_Note<>"T"; ↑H
Unlock Tables;
Drop Temporary Table updTable;
(9) 付款轉應付帳
搭配 SQL 專案代號 PRJ-0011,SQL 指令如下:
BackupTBL SQL From padtl;
BackupTBL SQL From rppay;
Create Temporary Table updTable
Select padtl.CU_No, Sum(padtl.PA_Amt) As Paamt, Sum(padtl.RD_Amt) As RdAmt, padtl.TR_Note From padtl Where padtl.TR_Note<>"T" Group By padtl.CU_No;
Lock Tables updTable write, padtl write,rppay Write;
Update rppay, updTable
Set rppay.CR_Csamt = rppay.CR_Csamt + updTable.Paamt,rppay.CR_Rdamt = rppay.CR_Rdamt + updTable.Rdamt Where rppay.CU_No = updTable.CU_No;
Update padtl Set padtl.TR_Note="T" Where padtl.TR_Note<>"T";
Update rppay Set CR_Upamt = PR_Upamt + CR_Spamt- CR_Bkamt- CR_Csamt- CR_Rdamt;
Unlock Tables;
Drop Temporary Table updTable;
(10). 進貨退回轉應付帳
搭配 SQL 專案代號 PRJ-0012,SQL 指令如下:
BackupTBL SQL From bkiclog;
BackupTBL SQL From rppay;
Create Temporary Table updTable
Select bkicbl.CU_No, Sum(bkiclog.BK_Amt + bkiclog.TX_Amt) AS BkAmt, bkiclog.TR_Note From bkicbl
Join bkiclog Where bkicbl.BK_Blno = bkiclog.BK_Blno And bkiclog.TR_Note<>"T" Group By bkicbl.CU_No;
Lock Tables updTable write, bkicbl write, bkiclog write, rppay Write;
Update rppay, updTable
Set rppay.CR_Bkamt = rppay.CR_Bkamt + updTable.Bkamt
Where rppay.CU_No = updTable.CU_No; ↑H
Update bkiclog Set bkiclog.TR_Note="T" Where bkiclog.TR_Note<>"T";
Unlock Tables;
Drop Temporary Table updTable;
(11)累計應收整理
搭配 SQL 專案代號 SQL-0034,SQL 指令如下:
Update rcpay Set rcpay.CR_Upamt = rcpay.PR_Upamt +r cpay.CR_Spamt –r cpay.CR_Bkam t- rcpay.CR_Csamt - rcpay.CR_Rdamt;
(12)累計應付整理
搭配 SQL 專案代號 SQL-0035,SQL 指令如下:
Update rppay Set rppay.CR_Upamt = rppay.PR_Upamt + rppay.CR_Spamt - rppay.CR_Bkamt - rppay.CR_Csamt - rppay.CR_Rdamt;
17.8 月結
(1) 銷貨訂單月結:交貨完畢或已結案部份
搭配 SQL 專案代號 PRJ-0020,SQL 指令如下:
BackupTBL SQL From sporder;
BackupTBL SQL From spodlst;
Lock Tables sporder Write, spodlst Write;
Delete sporder, spodlst From sporder
Join spodlst On sporder.OD_Blno = spodlst.OD_Blno
And (spodlst.SP_Qty >=spodlst.OD_Qty Or spodlst.CL_Note="T");
Delete From sporder Where sporder.OD_Blno Not In (Select OD_Blno From spodlst);
Unlock Tables;
(2) 出貨檔月結:已轉帳部份
搭配 SQL 專案代號 PRJ-0021,SQL 指令如下:
BackupTBL SQL From spbill;
BackupTBL SQL From splist;
Lock Tables spbill Write, splist Write;
Delete spbill, splist From spbill ↑H
Join splist On sp bill.SP_Blno = splist.SP_Blno And splist.TR_Note="T";
Delete From spbill Where spbill.SP_Blno Not In (Select SP_Blno From splist);
Unlock Tables;
(3) 銷貨退回月結:已轉帳部份
搭配 SQL 專案代號 PRJ-0022,SQL 指令如下:
BackupTBL SQL From bkspbl;
BackupTBL SQL From bksplog;
Lock Tables bkspbl Write, bksplog Write;
Delete bkspbl, bksplog From bkspbl
Join bksplog On bkspbl.BK_Blno = bksplog.BK_Blno And bksplog.TR_Note="T";
Delete From bkspbl Where bkspbl.BK_Blno Not In (Select BK_Blno From bksplog);
Unlock Tables;
(4) 請購訂單月結:交貨完畢或已結案部份
搭配 SQL 專案代號 PRJ-0023,SQL 指令如下:
BackupTBL SQL From icorder;
BackupTBL SQL From icodlst;
Lock Tables icorder Write, icodlst Write;
Delete icorder, icodlst From icorder
Join icodlst On icorder.OD_Blno =icodlst.OD_Blno
Where (icodlst.IC_Qty >=OD_Qty Or icodlst.CL_Note="T");
Delete From icorder Where icorder.OD_Blno Not In (Select OD_Blno From icodlst);
Unlock Tables;
(5) 進貨檔月結:已轉帳部份
搭配 SQL 專案代號 PRJ-0024,SQL 指令如下:
BackupTBL SQL From icbill;
BackupTBL SQL From iclist;
Lock Tables icbill Write, iclist Write;
Delete icbill, iclist From icbill
Join iclist On icbill.SP_Blno = iclist.SP_Blno And iclist.TR_Note="T";
Delete From icbill Where (icbill.SP_Blno) Not In (Select SP_Blno From iclist); ↑H
Unlock Tables;
(6) 進貨退回月結:已轉帳部份
搭配 SQL 專案代號 PRJ-0025,SQL 指令如下:
BackupTBL SQL From bkicbl;
BackupTBL SQL From bkiclog;
Lock Tables bkicbl Write, bkiclog Write;
Delete bkicbl,bkiclog From bkicbl
Join bkiclog On bkicbl.BK_Blno = bkiclog.BK_Blno And bkiclog.TR_Note="T";
Delete From bkicbl Where bkicbl.BK_Blno Not In (Select BK_Blno From bkiclog);
Unlock Tables;
(7) 庫存異動檔月結:已轉帳部份
搭配 SQL 專案代號 PRJ-0026,SQL 指令如下:
BackupTBL SQL From iostock;
Lock Tables iostock Write;
Delete From iostock Where iostock.ST_Note="T";
Unlock Tables;
(8) 收款檔月結:已轉帳部份
搭配 SQL 專案代號 PRJ-0027,SQL 指令如下:
BackupTBL SQL From rcdtl;
Lock Tables rcdtl Write;
Delete From rcdtl Where rcdtl.TR_Note="T";
Unlock Tables;
(9) 付款檔月結:已轉帳部份
搭配 SQL 專案代號 PRJ-0028,SQL 指令如下:
BackupTBL SQL From padtl;
Lock Tables padtl Write;
Delete From padtl Where padtl.TR_Note="T";
Unlock Tables;
(10) 應收帳款月底沖轉 ↑H
搭配 SQL 專案代號 PRJ-0029,SQL 指令如下:
BackupTBL SQL From rcpay;
Lock Tables rcpay Write;
Update rcpay Set
rcpay.CR_Upamt=rcpay.PR_Upamt+rcpay.CR_Spamt-rcpay.CR_Bkamt- rcpay.CR_Csamt-rcpay.CR_Rdamt,
rcpay.PR_Upamt = rcpay.CR_Upamt,
rcpay.CR_Spamt = 0, rcpay.CR_Bkamt = 0, rcpay.CR_Csamt= 0, rcpay.CR_Rdamt = 0;
Unlock Tables;
(11) 應付帳款月底沖轉
搭配 SQL 專案代號 PRJ-0030,SQL 指令如下:
BackupTBL SQL From rppay;
Lock Tables rppay Write;
Update rppay Set
rppay.CR_Upamt=rppay.PR_Upamt+rppay.CR_Spamt-rppay.CR_Bkamt-rppay.CR _Csamt-rppay.CR_Rdamt,
rppay.PR_Upamt = rppay.CR_Upamt,
rppay.CR_Spamt = 0, rppay.CR_Bkamt = 0, rppay.CR_Csamt= 0, rppay.CR_Rdamt = 0;
Unlock Tables;