📄 acr510_02.pas.svn-base
字号:
edtCust.Text:='';
edtCustName.Text:='';
edtPhone.Text:='';
edtAddress.Text:='';
edtContact.Text:='';
adsAcr510B.Close;
adsAcr510B.CreateDataSet;
SetDBGridA;
end;
procedure TAcr510_02Form.TableAfterPost;
var
AAccountInfo:TAccountInfo;
begin
inherited;
//保存从表信息
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select * from ACR510B where A510B_001='+''''+edtCode.Text+''''+' order by A510B_001');
SYSDM.qryQuery.Open;
if adsAcr510B.State in [dsInsert,dsEdit] then adsAcr510B.Post;
adsAcr510B.First;
while not adsAcr510B.Eof do
begin
SYSDM.qryQuery.Append;
SYSDM.qryQuery.FieldByName('A510B_001').Value:=edtCode.Text; //发票编号
SYSDM.qryQuery.FieldByName('A510B_002').Value:=adsAcr510B.FieldByName('FNo').Value; //发票行号
SYSDM.qryQuery.FieldByName('A510B_003').Value:=adsAcr510B.FieldByName('FOrder').Value; //销售单号
SYSDM.qryQuery.FieldByName('A510B_004').Value:=adsAcr510B.FieldByName('FLineNo').Value; //销售单行
SYSDM.qryQuery.FieldByName('A510B_005').Value:=adsAcr510B.FieldByName('FQty').Value;; //发票数量
SYSDM.qryQuery.FieldByName('A510B_006').Value:=adsAcr510B.FieldByName('FPrice').Value; //发票单价
SYSDM.qryQuery.FieldByName('A510B_007').Value:=adsAcr510B.FieldByName('FAmount').Value; //发票金额
SYSDM.qryQuery.FieldByName('A510B_008').Value:=adsAcr510B.FieldByName('FTaxRate').Value; //发票税率
SYSDM.qryQuery.FieldByName('A510B_009').Value:=adsAcr510B.FieldByName('FTaxAmt').Value; //发票税额
SYSDM.qryQuery.FieldByName('A510B_010').Value:=adsAcr510B.FieldByName('FAcrAmt').Value; //应收金额
SYSDM.qryQuery.FieldByName('A510B_011').Value:=adsAcr510B.FieldByName('FRemark').Value; //备注说明
SYSDM.qryQuery.FieldByName('A510B_012').Value:=0; //已收金额
SYSDM.qryQuery.FieldByName('A510B_013').Value:=adsAcr510B.FieldByName('FSourceOrder').Value; //来源编号
SYSDM.qryQuery.FieldByName('A510B_014').Value:=adsAcr510B.FieldByName('FCOrder').Value; //客户订单编号
SYSDM.qryQuery.Post;
UpdateORD510B(SYSDM.qryQuery.FieldByName('A510B_003').Value,'ADD');
if AType='ACR510B' Then UpdateTAS533(SYSDM.qryQuery.FieldByName('A510B_003').Value,'ADD');
adsAcr510B.Next;
end;
GetAccountInfo(edtCode.Text,'ACR510',AMode,AAccountInfo,ADOQuery1.FieldByName('A510A_002').value);
UpdateCSH610(0,AAccountInfo.ACustNo,AAccountInfo.ACurrNo,AAccountInfo.AInOut,0,AAccountInfo.ABillNo,1,AAccountInfo.ADate,AAccountInfo.AAmount,edtCode.Text,'','ADD');
end;
procedure TAcr510_02Form.TableBeforePost;
var
ADate:TDateTime;
AAccountInfo:TAccountInfo;
begin
inherited;
//判断输入的有效性
if not qryHrm150.Locate('H150_002',edtPerson.Text,[]) then
begin
ShowMsg('UMS10000660'); //折扣人员无效,请重新输入
edtPerson.SetFocus;
Abort;
end;
if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
begin
ShowMsg('UMS10000661'); //销售订单无效,请重新输入
edtCust.SetFocus;
Abort;
end;
if AMode='UPD' then
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select A510B_003 as FCode from ACR510B where A510B_001='+''''+edtCode.Text+'''');
SYSDM.qryQuery.Open;
SYSDM.qryQuery.First;
//用于更新TAS533
adsClone.Close;
adsClone.CreateDataSet;
adsClone.Clone(SYSDM.qryQuery);
GetAccountInfo(edtCode.Text,'ACR510',AMode,AAccountInfo,ADOQuery1.FieldByName('A510A_002').value);
UpdateCSH610(0,AAccountInfo.ACustNo,AAccountInfo.ACurrNo,AAccountInfo.AInOut,0,AAccountInfo.ABillNo,1,AAccountInfo.ADate,AAccountInfo.AAmount,edtCode.Text,'','DEL');
if adsAcr510B.State in [dsInsert,dsEdit] then adsAcr510B.Post;
qryAcr510B.Close;
qryAcr510B.SQL.Clear;
qryAcr510B.SQL.Add('delete from ACR510B where A510B_001='+''''+edtCode.Text+'''');
qryAcr510B.ExecSQL;
end;
//更新主表信息
if AMode='UPD' then
begin
adsClone.First;
while not adsClone.Eof do
begin
UpdateORD510B(adsClone.FieldByName('FCode').Value,'DEL');
if AType='ACR510B' Then UpdateTAS533(adsClone.FieldByName('FCode').Value,'DEL');
adsClone.Next;
end;
end;
if AMode='ADD' then
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('A510A_014').AsString:=edtCreateDate.Text; //制单日期
ADOQuery1.FieldByName('A510A_015').AsString:=edtCreateBy.Text; //制单人员
ADOQuery1.FieldByName('A510A_016').AsString:=edtUpdateDate.Text; //修改日期
ADOQuery1.FieldByName('A510A_017').AsString:=edtUpdateBy.Text; //修改人员
end else
begin
ADate:=GetServerDate;
ADOQuery1.Edit;
ADOQuery1.FieldByName('A510A_016').Value:=ADate; //修改日期
ADOQuery1.FieldByName('A510A_017').Value:=AUserName; //修改人员
end;
//添加信息
ADOQuery1.FieldByName('A510A_002').Value:=cbFrom.ItemIndex; // 发票类型(0=销售发票,1=销售退货)
if AMode='ADD' then ADOQuery1.FieldByName('A510A_003').Value:=0; // 发票状态(0=新建,1=作废,2=收款,3=完成)
ADOQuery1.FieldByName('A510A_004').Value:=edtDate.Date; // 发票日期
ADOQuery1.FieldByName('A510A_005').Value:=qryHrm150.fieldByName('H150_001').AsInteger; // 开票人员
ADOQuery1.FieldByName('A510A_006').Value:=edtSourceNo.Text; // 原始单号
ADOQuery1.FieldByName('A510A_007').Value:=qryGld100.fieldByName('G100_001').AsInteger; // 币别编号
ADOQuery1.FieldByName('A510A_008').Value:=qryGld100.fieldByName('G100_005').AsInteger; // 币别汇率
ADOQuery1.FieldByName('A510A_009').Value:=StrToFloatA(edtAmount.Text); // 发票金额
ADOQuery1.FieldByName('A510A_010').Value:=StrToFloatA(edtRevenue.Text); // 发票税额
ADOQuery1.FieldByName('A510A_011').Value:=StrToFloatA(edtReceive.Text); // 应收金额
ADOQuery1.FieldByName('A510A_012').Value:=qryOrd150.fieldByName('O150_001').AsInteger; // 客户编号
ADOQuery1.FieldByName('A510A_013').Value:=memRemark.Text; // 备注说明
ADOQuery1.FieldByName('A510A_018').Value:=cbstyle.ItemIndex; // 开票方式
end;
procedure TAcr510_02Form.UpdateEvent;
begin
if ADOQuery1.FieldByName('A510A_003').AsInteger<>0 then
begin
ShowMsg('UMS10000662'); //不能修改非新建状态的销售发票
Exit;
end;
inherited;
SetDBGridA;
end;
procedure TAcr510_02Form.sbPersonClick(Sender: TObject);
begin
inherited;
//销售人员查询
if not edtPerson.Focused then edtPerson.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryHrm150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString;
edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
end;
end;
procedure TAcr510_02Form.edtPersonExit(Sender: TObject);
begin
inherited;
//销售人员
if trim(edtPerson.Text)='' then Exit;
if qryHrm150.Locate('H150_002',edtPerson.Text,[]) then
begin
edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString;
edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
end else
begin
ShowMsg('UMS10000663'); //输入的销售人员无效,请重新输入
edtPerson.Text:='';
edtPersonName.Text:='';
edtPerson.SetFocus;
Abort;
end;
end;
procedure TAcr510_02Form.sbCustClick(Sender: TObject);
begin
inherited;
//客户编号
if not edtCust.Focused then edtCust.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryOrd150,nil);
if HwSelDataForm.ShowModal=1 then
begin
if qryOrd150.IsEmpty then Exit;
GetCustPlaceInfo;
end;
adsAcr510B.Close;
adsAcr510B.CreateDataSet;
end;
procedure TAcr510_02Form.GetCustPlaceInfo;
begin
//取得客户的信息
if qryOrd150.IsEmpty then Exit;
edtCust.Text:=qryOrd150.FieldByName('O150_002').AsString; //客户编号
edtCustName.Text:=qryOrd150.FieldByName('O150_003').AsString; //客户名称
edtPhone.Text:=qryOrd150.FieldByName('O150_005').AsString; //电话号码
edtContact.Text:=qryOrd150.FieldByName('O150_006').AsString; //传真号码
edtAddress.Text:=qryOrd150.FieldByName('O150_012').AsString; //通讯地址
end;
procedure TAcr510_02Form.GetDetailData;
begin
ALastNo:=0;
adsAcr510B.DisableControls;
adsAcr510B.Close;
adsAcr510B.CreateDataSet;
if AType='ACR510A' Then
begin
qryAcr510B.Close;
qryAcr510B.SQL.Clear;
qryAcr510B.SQL.Add('select A.*,B.O510B_002,B.O510B_003,B.O510B_004,B.O510B_005 as FOrderQty,B.O510B_013/B.O510B_005 as FOrderPrice,B.O510B_013 as FOrderAmount,B.O510B_024,B.O510B_025 as FDisAmt,O510B_001 as FSourceOrder');
qryAcr510B.SQL.Add(' from ACR510B A,ORD510B B');
qryAcr510B.SQL.Add(' where A510B_003=O510B_001 and A510B_004=O510B_002 and A510B_001='+''''+edtCode.Text+'''');
qryAcr510B.Open;
end else
begin
qryAcr510B.Close;
qryAcr510B.SQL.Clear;
qryAcr510B.SQL.Add('select A.*,B.O510B_002,B.O510B_003,B.O510B_004,D.T533_004 as FOrderQty,O510B_013 as FOrderPrice,D.T533_004*B.O510B_013 as FOrderAmount,B.O510B_024,B.O510B_025 as FDisAmt,C.T530_002 as FSourceOrder');
qryAcr510B.SQL.Add(' from ACR510B A,ORD510B B,TAS530 C,TAS533 D');
qryAcr510B.SQL.Add(' where D.T533_001=C.T530_001 and D.T533_002=B.O510B_001 and D.T533_003=B.O510B_002 and C.T530_002=A.A510B_013 and A510B_001='+''''+edtCode.Text+'''');
qryAcr510B.Open;
end;
while not qryAcr510B.Eof do
begin
//添加料品的明细资料
adsAcr510B.Append;
adsAcr510B.FieldByName('FItemNo').Value:=qryAcr510B.FieldByName('O510B_003').Value; //料品电脑编号
adsAcr510B.FieldByName('FItemID').Value:=qryAcr510B.FieldByName('I150_002').Value; //产品编号
adsAcr510B.FieldByName('FItemName').Value:=qryAcr510B.FieldByName('I150_003').Value; //产品名称
adsAcr510B.FieldByName('FItemSpec').Value:=qryAcr510B.FieldByName('I150_004').Value; //规格型号
adsAcr510B.FieldByName('FUnitName').Value:=qryAcr510B.FieldByName('I140_003').Value; //单位名称
//销售
adsAcr510B.FieldByName('FOrderQty').Value:=qryAcr510B.FieldByName('FOrderQty').Value; //销售数量 重写
adsAcr510B.FieldByName('FOrderPrice').Value:=qryAcr510B.FieldByName('FOrderPrice').Value; //销售单价 重写
adsAcr510B.FieldByName('FOrderAmount').Value:=qryAcr510B.FieldByName('FOrderAmount').Value; //销售金额 重写
adsAcr510B.FieldByName('FDisAmt').Value:=qryAcr510B.FieldByName('FDisAmt').Value; //销售折扣 重写
//发票
adsAcr510B.FieldByName('FQty').Value:=qryAcr510B.FieldByName('A510B_005').Value; //发票数量
adsAcr510B.FieldByName('FAmount').Value:=qryAcr510B.FieldByName('A510B_007').Value; //发票金额
adsAcr510B.FieldByName('FPrice').Value:=qryAcr510B.FieldByName('A510B_006').Value; //发票单价
adsAcr510B.FieldByName('FTaxRate').Value:=qryAcr510B.FieldByName('A510B_008').Value; //发票税率
adsAcr510B.FieldByName('FTaxAmt').Value:=qryAcr510B.FieldByName('A510B_009').Value; //发票税额
adsAcr510B.FieldByName('FInvAmount').Value:=qryAcr510B.FieldByName('O510B_024').Value; //发票金额
adsAcr510B.FieldByName('FAcrAmt').Value:=qryAcr510B.FieldByName('A510B_010').Value; //应收金额
//其他
adsAcr510B.FieldByName('FRemark').Value:=qryAcr510B.FieldByName('A510B_011').Value; //备注说明
adsAcr510B.FieldByName('FOrder').Value:=qryAcr510B.FieldByName('A510B_003').Value; //订单单号
adsAcr510B.FieldByName('FLineNo').Value:=qryAcr510B.FieldByName('A510B_004').Value; //订单行号
adsAcr510B.FieldByName('FSourceOrder').Value:=qryAcr510B.FieldByName('FSourceOrder').Value; //来源编号
adsAcr510B.FieldByName('FCOrder').Value:=qryAcr510B.FieldByName('A510B_014').Value; //客户订单编号
adsAcr510B.Post;
ALastNo:=qryAcr510B.FieldByName('A510B_002').AsInteger;
qryAcr510B.Next;
end;
adsAcr510B.EnableControls;
AIsChanged:=True;
wwDBGrid1UpdateFooter(wwDBGrid1);
SetDBGridA;
end;
procedure TAcr510_02Form.edtItemCustomDlg(Sender: TObject);
var
AItemInfo:TItemInfo;
AOrderInfo:TOrderInfo;
APriceInfo:TPriceInfo;
ACurrNo:Integer;
begin
inherited;
if qryOrd150.Locate('O150_002',edtCust.Text,[]) then
begin
GetCustPlaceInfo;
end else
begin
ShowMsg('UMS10000664'); //输入的客户编号无效,请重新输入
edtCust.SetFocus;
Abort;
end;
AOrderInfo.CustNo:=qryOrd150.fieldByName('O150_001').AsInteger;
qryGld100.Locate('G100_003',cbCurr.Text,[]);
ACurrNo:=qryGld100.FieldByName('G100_001').Value;
HwSelDataAForm:=THwSelDataAForm.Create(Application);
HwSelDataAForm.OpenData(AType,0,AOrderInfo.CustNo,0,'',ACurrNo,cbFrom.ItemIndex);
if HwSelDataAForm.ShowModal=1 then
begin
Update;
ABusy:=True;
Screen.Cursor:=crHourGlass;
wwDBGrid1.OnUpdateFooter:=nil;
with HwSelDataAForm do
begin
adsInv150.DisableControls;
adsInv150.First;
while adsInv150.Locate('FSel',-1,[]) do
begin
//取得料品的基本信息
AItemInfo.ItemNo:=adsInv150.FieldByName('FItemNo').AsInteger;
AItemInfo.ItemID:=adsInv150.FieldByName('FItemID').AsString;
AItemInfo.ItemName:=adsInv150.FieldByName('FItemName').AsString;
AItemInfo.ItemSpec:=adsInv150.FieldByName('FItemSpec').AsString;
AItemInfo.UnitNo:=adsInv150.FieldByName('FUnitNo').AsInteger;
AItemInfo.UnitID:=adsInv150.FieldByName('FUnitID').AsString;
AItemInfo.UnitName:=adsInv150.FieldByName('FUnitName').AsString;
AItemInfo.OrderNo:=adsInv150.FieldByName('FCode').AsString; //来源单号
AItemInfo.LineNo:=adsInv150.FieldByName('FNo').AsInteger; //来源行号
AItemInfo.OtherNo:=adsInv150.FieldByName('FSourceOrder').AsString; //来源销售订单单号 或者 来源任务工单单号
AItemInfo.COrder:=adsInv150.FieldByName('FCOrder').AsString; //客户订单编号
//取得价格信息
APriceInfo.StdPrice:=adsInv150.FieldByName('FPrice').Value; //销售单价
APriceInfo.OrderAmt:=adsInv150.FieldByName('FAmount').Value; //销售金额
APriceInfo.TaxRate:=adsInv150.FieldByName('FTaxRate').Value; //销售税率
APriceInfo.TaxAmount:=adsInv150.FieldByName('FTaxAmount').Value; //销售税额
APriceInfo.DisAmt:=adsInv150.FieldByName('FDisAmt').Value; //折扣金额
//取得定单信息
AOrderInfo.OrderQty:=adsInv150.FieldByName('FQty').Value; //销售数量
AOrderInfo.InvAmount:=adsInv150.FieldByName('FInvAmount').Value; //发票金额
//添加订单信息
AddItemLine(AOrderInfo,APriceInfo,AItemInfo,adsAcr510B,'ADD');
adsInv150.Edit;
adsInv150.FieldByName('FSel').Value:=0;
adsInv150.Post;
end;
adsInv150.EnableControls;
end;
wwDBGrid1.OnUpdateFooter:=wwDBGrid1UpdateFooter;
AIsChanged:=True;
ABusy:=False;
wwDBGrid1UpdateFooter(wwDBGrid1);
Screen.Cursor:=crDefault;
end;
end;
procedure TAcr510_02Form.AddItemLine(AOrderInfo: TOrderInfo; APriceInfo:TPriceInfo;
AItemInfo: TItemInfo; ADataSet: TADODataSet; AType: String);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -