⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acp510_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 4 页
字号:
  edtCust.Text:='';
  edtCustName.Text:='';
  edtPhone.Text:='';
  edtAddress.Text:='';
  edtContact.Text:='';
  cbCurr.ItemIndex:=5;
  edtRate.Text:='1';
  adsAcp510B.Close;
  adsAcp510B.CreateDataSet;
  SetDBGridA;
end;

procedure TAcp510_02Form.TableAfterPost;
var
  AAccountInfo:TAccountInfo;
begin
  inherited;
  //保存从表信息
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select * from Acp510B where A510B_001='+''''+edtCode.Text+''''+' order by A510B_001');
  SYSDM.qryQuery.Open;
  if adsAcp510B.State in [dsInsert,dsEdit] then adsAcp510B.Post;
  adsAcp510B.First;
  while not adsAcp510B.Eof do
  begin
    SYSDM.qryQuery.Append;
    SYSDM.qryQuery.FieldByName('A510B_001').Value:=edtCode.Text;        //发票编号
    SYSDM.qryQuery.FieldByName('A510B_002').Value:=adsAcp510B.FieldByName('FNo').Value;           //发票行号
    SYSDM.qryQuery.FieldByName('A510B_003').Value:=adsAcp510B.FieldByName('FOrder').Value;        //采购单号
    SYSDM.qryQuery.FieldByName('A510B_004').Value:=adsAcp510B.FieldByName('FLineNo').Value;        //采购单行
    SYSDM.qryQuery.FieldByName('A510B_005').Value:=adsAcp510B.FieldByName('FQty').Value;;           //发票数量
    SYSDM.qryQuery.FieldByName('A510B_006').Value:=adsAcp510B.FieldByName('FPrice').Value;         //发票单价
    SYSDM.qryQuery.FieldByName('A510B_007').Value:=adsAcp510B.FieldByName('FAmount').Value;        //发票金额
    SYSDM.qryQuery.FieldByName('A510B_008').Value:=adsAcp510B.FieldByName('FTaxRate').Value;       //发票税率
    SYSDM.qryQuery.FieldByName('A510B_009').Value:=adsAcp510B.FieldByName('FTaxAmt').Value;        //发票税额
    SYSDM.qryQuery.FieldByName('A510B_010').Value:=adsAcp510B.FieldByName('FAcpAmt').Value;        //应收金额
    SYSDM.qryQuery.FieldByName('A510B_011').Value:=adsAcp510B.FieldByName('FRemark').Value;        //备注说明
    SYSDM.qryQuery.FieldByName('A510B_012').Value:=0;                          //已收金额
    SYSDM.qryQuery.Post;
    UpdateORD510B(SYSDM.qryQuery.FieldByName('A510B_003').Value,'ADD');
    adsAcp510B.Next;
  end;
  GetAccountInfo(edtCode.Text,'ACP510',AMode,AAccountInfo,ADOQuery1.FieldByName('A510A_002').value);
  UpdateCSH610(0,AAccountInfo.ACustNo,AAccountInfo.ACurrNo,AAccountInfo.AInOut,0,AAccountInfo.ABillNo,2,AAccountInfo.ADate,AAccountInfo.AAmount,edtCode.Text,'','ADD');
end;

procedure TAcp510_02Form.TableBeforePost;
var
  ADate:TDateTime;
  AAccountInfo:TAccountInfo;
begin
  inherited;
  //判断输入的有效性
  if not qryHrm150.Locate('H150_002',edtPerson.Text,[]) then
  begin
    ShowMsg('UMS10000682');  //折扣人员无效,请重新输入
    edtPerson.SetFocus;
    Abort;
  end;

  if not qryOrd150.Locate('O150_002',edtCust.Text,[]) then
  begin
    ShowMsg('UMS10000683');  //采购订单无效,请重新输入
    edtCust.SetFocus;
    Abort;
  end;
  if AMode='UPD' then
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('select * from Acp510B where A510B_001='+''''+edtCode.Text+'''');
    SYSDM.qryQuery.Open;
    SYSDM.qryQuery.First;
    while not SYSDM.qryQuery.Eof do
    begin
      UpdateORD510B(SYSDM.qryQuery.FieldByName('A510B_003').Value,'DEL');
      SYSDM.qryQuery.Next;
    end;
    GetAccountInfo(edtCode.Text,'ACP510',AMode,AAccountInfo,ADOQuery1.FieldByName('A510A_002').value);
    UpdateCSH610(0,AAccountInfo.ACustNo,AAccountInfo.ACurrNo,AAccountInfo.AInOut,0,AAccountInfo.ABillNo,2,AAccountInfo.ADate,AAccountInfo.AAmount,edtCode.Text,'','DEL');
  end;
  //更新主表信息
  if adsAcp510B.State in [dsInsert,dsEdit] then adsAcp510B.Post;
  qryAcp510B.Close;
  qryAcp510B.SQL.Clear;
  qryAcp510B.SQL.Add('delete from Acp510B where A510B_001='+''''+edtCode.Text+'''');
  qryAcp510B.ExecSQL;
  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;                // 备注说明
end;

procedure TAcp510_02Form.UpdateEvent;
begin
  if ADOQuery1.FieldByName('A510A_003').AsInteger<>0 then
  begin
    ShowMsg('UMS10000684');    //不能修改非新建状态的采购发票
    Exit;
  end;
  inherited;
  SetDBGridA;
end;

procedure TAcp510_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 TAcp510_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('UMS10000685');  //输入的采购人员无效,请重新输入
    edtPerson.Text:='';
    edtPersonName.Text:='';
    edtPerson.SetFocus;
    Abort;
  end;
end;

procedure TAcp510_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;
  adsAcp510B.Close;
  adsAcp510B.CreateDataSet;
end;

procedure TAcp510_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 TAcp510_02Form.GetDetailData;
begin
  ALastNo:=0;
  adsAcp510B.DisableControls;
  adsAcp510B.Close;
  adsAcp510B.CreateDataSet;

  qryAcp510B.Close;
  qryAcp510B.SQL.Clear;
  qryAcp510B.SQL.Add('select A.*,B.P510B_002,B.P510B_003,B.P510B_004,B.P510B_005,B.P510B_006,B.P510B_007,B.P510B_024,B.P510B_025');
  qryAcp510B.SQL.Add(' from ACP510B A,PUR510B B');
  qryAcp510B.SQL.Add(' where A.A510B_003=B.P510B_001 and  A.A510B_004=B.P510B_002 and A.A510B_001='+''''+edtCode.Text+'''');
  qryAcp510B.SQL.Add(' order by A510B_002');
  qryAcp510B.Open;
  while not qryAcp510B.Eof do
  begin
    //添加料品的明细资料
    adsAcp510B.Append;
    adsAcp510B.FieldByName('FItemNo').Value:=qryAcp510B.FieldByName('P510B_003').Value;     //料品电脑编号
    adsAcp510B.FieldByName('FItemID').Value:=qryAcp510B.FieldByName('I150_002').Value;      //产品编号
    adsAcp510B.FieldByName('FItemName').Value:=qryAcp510B.FieldByName('I150_003').Value;    //产品名称
    adsAcp510B.FieldByName('FItemSpec').Value:=qryAcp510B.FieldByName('I150_004').Value;    //规格型号
    adsAcp510B.FieldByName('FUnitName').Value:=qryAcp510B.FieldByName('I140_003').Value;    //单位名称
    //采购
    adsAcp510B.FieldByName('FOrderQty').Value:=qryAcp510B.FieldByName('P510B_005').Value;        //采购数量
    adsAcp510B.FieldByName('FOrderPrice').Value:=qryAcp510B.FieldByName('P510B_006').Value;      //采购单价
    adsAcp510B.FieldByName('FOrderAmount').Value:=qryAcp510B.FieldByName('P510B_007').Value;     //采购金额
    adsAcp510B.FieldByName('FDisAmt').Value:=qryAcp510B.FieldByName('P510B_025').Value;          //采购折扣
    //发票
    adsAcp510B.FieldByName('FQty').Value:=qryAcp510B.FieldByName('A510B_005').Value;        //发票数量
    adsAcp510B.FieldByName('FAmount').Value:=qryAcp510B.FieldByName('A510B_007').Value;     //发票金额
    adsAcp510B.FieldByName('FPrice').Value:=qryAcp510B.FieldByName('A510B_006').Value;      //发票单价
    adsAcp510B.FieldByName('FTaxRate').Value:=qryAcp510B.FieldByName('A510B_008').Value;    //发票税率
    adsAcp510B.FieldByName('FTaxAmt').Value:=qryAcp510B.FieldByName('A510B_009').Value;     //发票税额
    adsAcp510B.FieldByName('FInvAmount').Value:=qryAcp510B.FieldByName('P510B_024').Value;  //发票金额
    adsAcp510B.FieldByName('FAcpAmt').Value:=qryAcp510B.FieldByName('A510B_010').Value;     //应收金额
    //其他
    adsAcp510B.FieldByName('FRemark').Value:=qryAcp510B.FieldByName('A510B_011').Value;      //备注说明
    adsAcp510B.FieldByName('FOrder').Value:=qryAcp510B.FieldByName('A510B_003').Value;       //订单单号
    adsAcp510B.FieldByName('FLineNo').Value:=qryAcp510B.FieldByName('A510B_004').Value;      //订单行号
    adsAcp510B.Post;
    ALastNo:=qryAcp510B.FieldByName('A510B_002').AsInteger;
    qryAcp510B.Next;
  end;
  adsAcp510B.EnableControls;
  AIsChanged:=True;
  wwDBGrid1UpdateFooter(wwDBGrid1);
  SetDBGridA;

end;

procedure TAcp510_02Form.edtItemCustomDlg(Sender: TObject);
var
  AType:String;
  AItemInfo:TItemInfo;
  AOrderInfo:TOrderInfo;
  APriceInfo:TPriceInfo;
  ACurrNo:Integer;
begin
  inherited;
  if qryOrd150.Locate('O150_002',edtCust.Text,[]) then
  begin
    GetCustPlaceInfo;
  end else
  begin
    ShowMsg('UMS10000686');  //输入的客户编号无效,请重新输入
    edtCust.SetFocus;
    Abort;
  end;
  AType:='ACP510';
  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').Value;             //来源行号
        //取得价格信息
        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,adsAcp510B,'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 TAcp510_02Form.AddItemLine(AOrderInfo: TOrderInfo;  APriceInfo:TPriceInfo;
  AItemInfo: TItemInfo; ADataSet: TADODataSet; AType: String);
begin
  //取得产品价格

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -