📄 cshcomm.pas.svn-base
字号:
AQuery1.SQL.Clear;
AQuery1.SQL.Add('update ORD510B set O510B_025='+FloatToStr(AAmount)+' where O510B_001='+''''+ACode+''''+' and O510B_002='+IntToStr(ALineNo));
AQuery1.ExecSQL;
AQuery.Next;
end;
//更新收款金额
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Add('select A510B_003,A510B_004,sum(C510_008) as FAmount');
AQuery.SQL.Add('from CSH510,CSH500,ACR510B');
AQuery.SQL.Add('where C510_001=C500_001 and C510_002=C500_002 and C510_003=C500_003 and C510_004=C500_004 and C510_005=A510B_001 and C510_006=A510B_002 and');
AQuery.SQL.Add(' C500_016=1 and A510B_003='+''''+ACode+'''');
AQuery.SQL.Add('group by A510B_003,A510B_004');
AQuery.Open;
while not AQuery.Eof do
begin
ALineNo:=AQuery.FieldByName('A510B_004').Value;
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('select A510B_003,A510B_004,sum(C510_008) as FAmount');
AQuery1.SQL.Add('from CSH510,CSH500,ACR510B,ORD510B');
AQuery1.SQL.Add('where C510_001=C500_001 and C510_002=C500_002 and C510_003=C500_003 and C510_004=C500_004 and C510_005=A510B_001 and C510_006=A510B_002 and A510B_003=O510B_001 and A510B_004=O510B_002 and');
AQuery1.SQL.Add(' C500_016=1 and A510B_003='+''''+ACode+''''+' and O510B_002='+IntToStr(ALineNo));
AQuery1.SQL.Add('group by A510B_003,A510B_004');
AQuery1.Open;
AAmount:=AQuery1.FieldByName('FAmount').AsFloat;
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('update ORD510B set O510B_027=O510B_027+'+FloatToStr(AAmount)+' where O510B_001='+''''+ACode+''''+' and O510B_002='+IntToStr(ALineNo));
AQuery1.ExecSQL;
AQuery.Next;
end;
AQuery1.Close;
AQuery1.Free;
AQuery.Close;
AQuery.Free;
end;
//销售折扣单,销售发票单,收款单新增、修改、删除时调用
//反写任务汇报TAS533的发票金额、收款折扣、已收金额
//ACode: 销售单号
//AType: 增加=ADD,减少=DEL
//存在Bug:删除时不能更新记录 请用clone
procedure UpdateTAS533(ACode,AType:String);
var
AQuery:TADOQuery;
AQuery1:TADOQuery;
AAmount:Double;
ALineNo:Integer;
ASoureCode:string;
begin
AQuery:=TADOQuery.Create(nil);
AQuery.Connection:=SYSDM.ADOC;
AQuery1:=TADOQuery.Create(nil);
AQuery1.Connection:=SYSDM.ADOC;
//更新发票金额 T533_008 ok
AQuery.Close;
AQuery.SQL.Clear;
//取出相应销售订单的发票明细
AQuery.SQL.Add('select distinct O510B_002,T530_002');
AQuery.SQL.Add(' from TAS533,TAS530,ORD510B');
AQuery.SQL.Add(' where T533_001=T530_001 and T533_002=O510B_001 and T533_003=O510B_002 and O510B_001='+''''+ACode+'''');
AQuery.Open;
while not AQuery.Eof do
begin
ALineNo:=AQuery.FieldByName('O510B_002').Value; //定单行号
ASoureCode:=AQuery.FieldByName('T530_002').Value; //工单编号
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('select A510B_003,A510B_004,sum(A510B_007) as FAmount,A510B_013');
AQuery1.SQL.Add(' from ACR510B,ACR510A where A510B_001=A510A_001 and A510A_002=0 and A510B_003='+''''+ACode+''''+' and A510B_004='+IntToStr(ALineNo)+' and A510B_013='+''''+ASoureCode+'''');
AQuery1.SQL.Add(' group by A510B_003,A510B_004,A510B_013');
AQuery1.Open;
AAmount:=AQuery1.FieldByName('FAmount').AsFloat;
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('select A510B_003,A510B_004,sum(A510B_007) as FAmount,A510B_013');
AQuery1.SQL.Add(' from ACR510B,ACR510A where A510B_001=A510A_001 and A510A_002=1 and A510B_003='+''''+ACode+''''+' and A510B_004='+IntToStr(ALineNo)+' and A510B_013='+''''+ASoureCode+'''');
AQuery1.SQL.Add(' group by A510B_003,A510B_004,A510B_013');
AQuery1.Open;
AAmount:=AAmount-AQuery1.FieldByName('FAmount').AsFloat;
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('select TAS533.*,T530_002 from TAS530,TAS533');
AQuery1.SQL.Add(' where T530_001=T533_001');
AQuery1.SQL.Add(' and T533_002='+''''+ACode+''''+' and T533_003='+IntToStr(ALineNo)+' and T530_002='+''''+ASoureCode+'''');
AQuery1.Open;
AQuery1.Edit;
AQuery1.FieldByName('T533_008').Value:=AAmount;
AQuery1.Post;
AQuery.Next;
end;
//更新折扣额
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Add('select distinct O510B_002,T530_002');
AQuery.SQL.Add(' from TAS533,TAS530,ORD510B');
AQuery.SQL.Add(' where T533_001=T530_001 and T533_002=O510B_001 and T533_003=O510B_002 and O510B_001='+''''+ACode+'''');
AQuery.Open;
while not AQuery.Eof do
begin
ALineNo:=AQuery.FieldByName('O510B_002').Value; //定单行号
ASoureCode:=AQuery.FieldByName('T530_002').Value; //工单编号
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('select T533_002,T533_003,T530_002,sum(A500B_007) as FAmount from ACR500B,ORD510B,TAS530,TAS533');
AQuery1.SQL.Add(' where A500B_003=O510B_001 and A500B_004=O510B_002 and A500B_010=T530_002 and T530_001=T533_001');
AQuery1.SQL.Add(' and A500B_003=T533_002 and A500B_004=T533_003 ');
AQuery1.SQL.Add(' and T533_002='+''''+ACode+''''+' and T533_003='+IntToStr(ALineNo)+' and T530_002='+''''+ASoureCode+'''');
AQuery1.SQL.Add(' group by T533_002,T533_003,T530_002');
AQuery1.Open;
AAmount:=AQuery1.FieldByName('FAmount').AsFloat;
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('select TAS533.*,T530_002');
AQuery1.SQL.Add(' from TAS530,TAS533');
AQuery1.SQL.Add(' where T530_001=T533_001 and T533_002='+''''+ACode+''''+' and T533_003='+IntToStr(ALineNo)+' and T530_002='+''''+ASoureCode+'''');
AQuery1.Open;
AQuery1.Edit;
AQuery1.FieldByName('T533_009').Value:=AAmount;
AQuery1.Post;
AQuery.Next;
end;
//更新收款金额 T533_011
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Add('select A510B_003,A510B_004,sum(C510_008) as FAmount,A510B_013');
AQuery.SQL.Add('from CSH510,CSH500,ACR510B');
AQuery.SQL.Add('where C510_001=C500_001 and C510_002=C500_002 and C510_003=C500_003 and C510_004=C500_004 and C510_005=A510B_001 and C510_006=A510B_002 and ');
AQuery.SQL.Add(' C500_016=1 and A510B_003='+''''+ACode+'''');
AQuery.SQL.Add('group by A510B_003,A510B_004,A510B_013');
AQuery.Open;
while not AQuery.Eof do
begin
AAmount:=AQuery.FieldByName('FAmount').AsFloat;
ALineNo:=AQuery.FieldByName('A510B_004').Value;
ASoureCode:=AQuery.FieldByName('A510B_013').Value;
if AType='DEL' then AAmount:=AAmount*-1;
AQuery1.Close;
AQuery1.SQL.Clear;
AQuery1.SQL.Add('select TAS533.*,T530_002');
AQuery1.SQL.Add(' from TAS530,TAS533');
AQuery1.SQL.Add(' where T530_001=T533_001 and T533_002='+''''+ACode+''''+' and T533_003='+IntToStr(ALineNo)+' and T530_002='+''''+ASoureCode+'''');
AQuery1.Open;
AQuery1.Edit;
AQuery1.FieldByName('T533_011').Value:=AAmount;
AQuery1.Post;
AQuery.Next;
end;
AQuery1.Close;
AQuery1.Free;
AQuery.Close;
AQuery.Free;
end;
//采购折扣单,采购发票单,付款单新增、修改、删除时调用
//反写采购定单PUR510B的发票金额、付款折扣、已付金额
//ACode: 采购单号
//AType: 增加=ADD,减少=DEL
procedure UpdatePUR510B(ACode,AType:String);
var
AQuery:TADOQuery;
AAmount:Double;
ALineNo:Integer;
begin
AQuery:=TADOQuery.Create(nil);
AQuery.Connection:=SYSDM.ADOC;
//更新发票金额
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Add('select A510B_003,A510B_004,sum(A510B_010) as FAmount');
AQuery.SQL.Add('from ACP510B,ACP510A where A510B_001=A510A_001 and A510A_002=0 and A510B_003='+''''+ACode+'''');
AQuery.SQL.Add('group by A510B_003,A510B_004');
AQuery.Open;
while not AQuery.Eof do
begin
AAmount:=AQuery.FieldByName('FAmount').AsFloat;
ALineNo:=AQuery.FieldByName('A510B_004').Value;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select A510B_003,A510B_004,sum(A510B_010) as FAmount');
SYSDM.qryQuery.SQL.Add('from ACP510B,ACP510A where A510B_001=A510A_001 and A510A_002=1 and A510B_003='+''''+ACode+''''+' and A510B_004='+IntToStr(ALineNo));
SYSDM.qryQuery.SQL.Add('group by A510B_003,A510B_004');
SYSDM.qryQuery.Open;
AAmount:=AAmount-SYSDM.qryQuery.FieldByName('FAmount').AsFloat;
if AType='DEL' then AAmount:=AAmount*-1;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update PUR510B set P510B_024='+FloatToStr(AAmount)+' where P510B_001='+''''+ACode+''''+' and P510B_002='+IntToStr(ALineNo));
SYSDM.qryQuery.ExecSQL;
AQuery.Next;
end;
//更新折扣额
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Add('select A500B_003,A500B_004,sum(A500B_007) as FAmount');
AQuery.SQL.Add('from ACP500B where A500B_003='+''''+ACode+'''');
AQuery.SQL.Add('group by A500B_003,A500B_004');
AQuery.Open;
while not AQuery.Eof do
begin
AAmount:=AQuery.FieldByName('FAmount').AsFloat;
ALineNo:=AQuery.FieldByName('A500B_004').Value;
if AType='DEL' then AAmount:=AAmount*-1;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update PUR510B set P510B_025='+FloatToStr(AAmount)+' where P510B_001='+''''+ACode+''''+' and P510B_002='+IntToStr(ALineNo));
SYSDM.qryQuery.ExecSQL;
AQuery.Next;
end;
//更新收款金额
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Add('select A510B_003,A510B_004,sum(C510_008) as FAmount');
AQuery.SQL.Add('from CSH510,CSH500,ACP510B');
AQuery.SQL.Add('where C510_001=C500_001 and C510_002=C500_002 and C510_003=C500_003 and C510_004=C500_004 and C510_005=A510B_001 and C510_006=A510B_002 and ');
AQuery.SQL.Add(' C500_016=2 and A510B_003='+''''+ACode+'''');
AQuery.SQL.Add('group by A510B_003,A510B_004');
AQuery.Open;
while not AQuery.Eof do
begin
AAmount:=AQuery.FieldByName('FAmount').AsFloat;
ALineNo:=AQuery.FieldByName('A510B_004').Value;
if AType='DEL' then AAmount:=AAmount*-1;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update PUR510B set P510B_027='+FloatToStr(AAmount)+' where P510B_001='+''''+ACode+''''+' and P510B_002='+IntToStr(ALineNo));
SYSDM.qryQuery.ExecSQL;
AQuery.Next;
end;
AQuery.Close;
AQuery.Free;
end;
//反写销售定单ORD510B的已收款额
//CSH500:出纳帐本 的收支日期和顺序编号 ADate ABillNo
//AccNo: 帐户编号 ABillNo:顺序编号 AField:修改对象的已收金额字段
//AType: 增加=ADD,减少=DEL
//和销售订单采用同样的调整方式,哈哈,这个容易改了
procedure UpdateORD510B(AccNo:Integer;ADate:TDateTime;ABillNo:Integer;AField,AType:String);
var
AQuery:TADOQuery;
AAmount:Double;
ALineNo:Integer;
begin
AQuery:=TADOQuery.Create(nil);
AQuery.Connection:=SYSDM.ADOC;
AQuery.Close;
AQuery.SQL.Clear;
AQuery.SQL.Add('select A510B_003,A510B_004,sum(C510B_006) as FAmount');
AQuery.SQL.Add('from CSH510A,CSH510B,ACR510B');
AQuery.SQL.Add('where C510B_001=C510A_001 and C510B_003=A510B_001 and C510B_004=A510B_002 and');
AQuery.SQL.Add(' C510A_003='+IntToStr(AccNo)+' and C510A_010='+GetDateString(ADate)+' and C510A_002='+IntToStr(ABillNo));
AQuery.SQL.Add('group by A510B_003,A510B_004');
AQuery.Open;
while not AQuery.Eof do
begin
AAmount:=AQuery.FieldByName('FAmount').Value;
ALineNo:=AQuery.FieldByName('A510B_004').Value;
if AType='DEL' then AAmount:=AAmount*-1;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('update ORD510B set O510B_027=O510B_027+'+FloatToStr(AAmount)+' where O510B_001='+''''+AQuery.FieldByName('A510B_003').AsString+''''+' and O510B_002='+IntToStr(ALineNo));
SYSDM.qryQuery.ExecSQL;
AQuery.Next;
end;
AQuery.Close;
AQuery.Free;
end;
//反写采购定单PUR510B的已付款额
//AccNo:帐户编号 ABillNo:单据编号(C500_004)
//AType: 增加金额=ADD,减少金额=DEL
procedure UpdatePUR510B(AccNo:Integer;ADate:TDateTime;ABillNo:Integer;AField,AType:String);
var
AQuery:TADOQuery;
AAmount:Double;
ALineNo:Integer;
begin
AQuery:=TADOQuery.Create(nil);
AQuery.Connection:=SYSDM.ADOC;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -