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

📄 pur500_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
  inherited;
  qryPur100.Close;
  qryHrm100.Close;
  qryHrm150.Close;
  qryOrd151.Close;
  qryOrd152.Close;
end;

procedure TPur500_02Form.DeleteEvent;
var
  ACode:String;
begin
  inherited;
  //0=新建,1=核准,2=完成,3=取消
  if ADOQuery1.FieldByName('P500A_004').AsInteger<>0 then
  begin
    ShowMsg('UMS10000564');  //不允许删除非新建状态的采购申请
    Abort;
  end;
  ACode:=ADOQuery1.FieldByName('P500A_001').AsString;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('delete from PUR500B where P500B_001='+''''+ACode+'''');
  SYSDM.qryQuery.ExecSQL;
  DeleteTableRecord(ADOQuery1,'PUR500A','P500A_001='+''''+ACode+'''');
end;

procedure TPur500_02Form.GetCustPlaceInfo;
var
  ACustNo:Integer;
  AShortName,S:String;
begin
  //缺省值为主交货地点,如无主交货地点,则取客户资料表中的信息作为主交货地点
  //缺省的交货地址
  S:=GetSysParams('PUR0004');
  if S='' then S:='0';
  ACustNo:=StrToInt(S); 
  qryOrd152.Close;
  qryOrd152.SQL.Clear;
  qryOrd152.SQL.Add('select A.*,B.O120_002,C.O151_002,C.O151_003,C.O151_004');
  qryOrd152.SQL.Add('from (ORD152 A left join ORD120 B on A.O152_003=B.O120_001) left join ORD151 C on A.O152_001=C.O151_001 and A.O152_008=C.O151_002');
  qryOrd152.SQL.Add('where A.O152_001='+IntToStr(ACustNo));
  qryOrd152.Open;
  if ACustNo<>0 then
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('select A.O150_001,A.O150_002,A.O150_003,A.O150_004,A.O150_005,A.O150_006,A.O150_012,A.O150_011,');
    SYSDM.qryQuery.SQL.Add('       B.O151_002,B.O151_003,B.O151_004,');
    SYSDM.qryQuery.SQL.Add('       C.O120_002');
    SYSDM.qryQuery.SQL.Add('from (ORD150 A left join (select * from ORD151 where O151_011<>0) B on A.O150_001=B.O151_001) left join ORD120 C on A.O150_011=C.O120_001');
    SYSDM.qryQuery.SQL.Add('where O150_001='+IntToStr(ACustNo));
    SYSDM.qryQuery.Open;
    AShortName:=SYSDM.qryQuery.FieldByName('O150_004').AsString;
    qryOrd152.Insert;
    qryOrd152.FieldByName('O152_001').Value:=ACustNo;
    qryOrd152.FieldByName('O152_002').Value:=SYSDM.qryQuery.FieldByName('O150_004').AsString;
    qryOrd152.FieldByName('O152_003').Value:=SYSDM.qryQuery.FieldByName('O150_011').AsString;
    qryOrd152.FieldByName('O120_002').Value:=SYSDM.qryQuery.FieldByName('O120_002').AsString;
    qryOrd152.FieldByName('O152_004').Value:=SYSDM.qryQuery.FieldByName('O150_012').AsString;
    qryOrd152.FieldByName('O152_006').Value:=SYSDM.qryQuery.FieldByName('O150_005').AsString;
    qryOrd152.FieldByName('O152_007').Value:=SYSDM.qryQuery.FieldByName('O150_006').AsString;
    qryOrd152.FieldByName('O152_008').Value:=SYSDM.qryQuery.FieldByName('O151_002').AsString;
    qryOrd152.FieldByName('O151_002').Value:=SYSDM.qryQuery.FieldByName('O151_002').AsString;
    qryOrd152.FieldByName('O151_003').Value:=SYSDM.qryQuery.FieldByName('O151_003').AsString;
    qryOrd152.FieldByName('O151_004').Value:=SYSDM.qryQuery.FieldByName('O151_004').AsString;
    qryOrd152.FieldByName('O152_010').Value:=False;
    qryOrd152.Post;
  end;
  if not qryOrd152.Locate('O152_010',StrToInt(GetBoolean(True)),[]) then
  begin
    qryOrd152.Locate('O152_002',AShortName,[]);
  end;
  edtPlace.Text:=qryOrd152.FieldByName('O152_002').AsString;  //交货地址
  edtRegion.Text:=qryOrd152.FieldByName('O120_002').AsString;  //所属地区
  edtPlaceAddress.Text:=qryOrd152.FieldByName('O152_004').AsString;
  edtPlacePhone.Text:=qryOrd152.FieldByName('O152_006').AsString;
  edtPlaceFax.Text:=qryOrd152.FieldByName('O152_007').AsString;
  edtPlaceContact.Text:=qryOrd152.FieldByName('O151_002').AsString;
  edtPlaceDept.Text:=qryOrd152.FieldByName('O151_003').AsString;
  edtPlacePosit.Text:=qryOrd152.FieldByName('O151_004').AsString;

  qryOrd151.Close;
  qryOrd151.SQL.Clear;
  qryOrd151.SQL.Add('select * from ORD151 where O151_001='+IntToStr(ACustNo));
  qryOrd151.Open;
end;

procedure TPur500_02Form.GetDataInfo;
var
  ACustNo,ASaleNo,ADeptNo:Integer;
  S:String;
begin
  inherited;
  edtCode.Text:=ADOQuery1.FieldByName('P500A_001').AsString;  //请购单号
  qryPur100.Locate('P100_001',ADOQuery1.FieldByName('P500A_002').Value,[]);
  cbType.ItemIndex:=cbType.Items.IndexOf(qryPur100.FieldByName('P100_002').AsString);  //请购类型
  edtDate.Date:=ADOQuery1.FieldByName('P500A_003').Value;  //请购日期
  edtStatus.Text:=AStatus[ADOQuery1.FieldByName('P500A_004').AsInteger];  //请购状态
  cbFrom.ItemIndex:=ADOQuery1.FieldByName('P500A_005').AsInteger;  //来源类型(0=手工输入,1=自动补库,2=物料需求)

  edtPerson.Text:='';
  edtPersonName.Text:='';
  ASaleNo:=ADOQuery1.FieldByName('P500A_007').AsInteger;  //请购人员
  if qryHrm150.Locate('H150_001',ASaleNo,[]) then
  begin
    edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString;   //请购人员
    edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
  end;
  cbDept.Text:='';
  ADeptNo:=ADOQuery1.FieldByName('P500A_008').AsInteger;  //请购部门
  if qryHrm100.Locate('H100_001',ADeptNo,[]) then
  begin
    cbDept.Text:=qryHrm100.FieldByName('H100_002').Value;  //请购部门
  end;

  S:=GetSysParams('PUR0004');
  if S='' then S:='0';
  ACustNo:=StrToInt(S); 
  GetCustPlaceInfo;  //交货地址

  if not (ADOQuery1.FieldByName('P500A_006').Value='') then
  begin
    if qryOrd151.Locate('O151_001;O151_002',VarArrayOf([ACustNo,ADOQuery1P500A_009.value]),[]) then
    begin
      edtPlaceContact.Text:=qryOrd151.FieldByName('O151_002').AsString;
      edtPlaceDept.Text:=qryOrd151.FieldByName('O151_003').AsString;
      edtPlacePhone.Text:=qryOrd151.FieldByName('O151_005').AsString;
      edtPlaceFax.Text:=qryOrd151.FieldByName('O151_006').AsString;
      edtPlacePosit.Text:=qryOrd151.FieldByName('O151_004').AsString;
      edtPlaceDept.Text:=qryOrd151.FieldByName('O151_003').AsString;
    end;
  end;

  edtCheckDate.Text:=ADOQuery1.FieldByName('P500A_010').AsString;  //审核日期
  edtChecker.Text:=ADOQuery1.FieldByName('P500A_011').AsString;  //审核人员
  memRemark.Text:=ADOQuery1.FieldByName('P500A_012').AsString;  //备注说明
  edtCreateDate.Text:=ADOQuery1.FieldByName('P500A_013').AsString;  //制单日期
  edtCreateBy.Text:=ADOQuery1.FieldByName('P500A_014').AsString;  //制单人员
  edtUpdateDate.Text:=ADOQuery1.FieldByName('P500A_015').AsString;  //修改日期
  edtUpdateBy.Text:=ADOQuery1.FieldByName('P500A_016').AsString;  //修改人员

  GetDetailData;
  wwDBGrid1UpdateFooter(wwDBGrid1);
end;

procedure TPur500_02Form.InsertEvent;
var
  ADate:TDateTime;
begin
  inherited;
  ADate:=GetServerDate;
  edtCode.Text:='';
  cbType.ItemIndex:=0;
  qryPur100.Locate('P100_002',cbType.Text,[]);
  edtDate.Date:=ADate;
  edtStatus.Text:=AStatus[0];
  edtPerson.Text:='';

  edtCheckDate.Clear;
  edtChecker.Text:='';

  edtPlace.Text:='';
  edtRegion.Text:='';
  edtPlacePhone.Text:='';
  edtPlaceAddress.Text:='';
  edtPlaceFax.Text:='';
  edtPlaceContact.Text:='';
  edtPlaceDept.Text:='';
  edtPlacePosit.Text:='';
  GetCustPlaceInfo;

  memRemark.Text:='';

  edtDate.Date:=ADate;
  edtCreateDate.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',ADate);
  edtCreateBy.Text:=AUserName;
  edtUpdateDate.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',ADate);
  edtUpdateBy.Text:=AUserName;

  ALastNo:=0;
  adsPur500B.Close;
  adsPur500B.CreateDataSet;
  PageControl1.ActivePageIndex:=0;
  PageControl2.ActivePageIndex:=0;
  SetDBGrid;
end;

procedure TPur500_02Form.ReportGetValue(const ParName: String;
  var ParValue: Variant);
begin
  inherited;

end;

procedure TPur500_02Form.SetEmptyInit;
begin
  inherited;
  edtCode.Text:='';
  cbType.ItemIndex:=0;
  qryPur100.Locate('P100_002',cbType.Text,[]);
  edtDate.Date:=GetServerDate;
  edtStatus.Text:=AStatus[0];
  edtPerson.Text:='';
  cbFrom.ItemIndex:=0;
  edtCheckDate.Clear;
  edtChecker.Text:='';

  edtPlace.Text:='';
  edtRegion.Text:='';
  edtPlacePhone.Text:='';
  edtPlaceAddress.Text:='';
  edtPlaceFax.Text:='';
  edtPlaceContact.Text:='';
  edtPlaceDept.Text:='';
  edtPlacePosit.Text:='';

  memRemark.Text:='';

  edtCreateDate.Text:='';
  edtCreateBy.Text:='';
  edtUpdateDate.Text:='';
  edtUpdateBy.Text:='';

  ALastNo:=0;
  adsPur500B.Close;
  adsPur500B.CreateDataSet;
end;

procedure TPur500_02Form.TableAfterPost;
begin
  inherited;
  qryPur500B.Close;
  qryPur500B.SQL.Clear;
  qryPur500B.SQL.Add('select * from PUR500B where P500B_001='+''''+edtCode.Text+''''+' order by P500B_001,P500B_002');
  qryPur500B.Open;
  if adsPur500B.State in [dsInsert,dsEdit] then adsPur500B.Post;
  adsPur500B.First;
  while not adsPur500B.Eof do
  begin
    qryPur500B.Append;
    qryPur500B.FieldByName('P500B_001').Value:=edtCode.Text;
    qryPur500B.FieldByName('P500B_002').Value:=adsPur500B.FieldByName('FNo').Value;
    qryPur500B.FieldByName('P500B_003').Value:=adsPur500B.FieldByName('FItemNo').Value;
    qryPur500B.FieldByName('P500B_004').Value:=adsPur500B.FieldByName('FUnitNo').Value;
    qryPur500B.FieldByName('P500B_005').Value:=adsPur500B.FieldByName('FQty').Value;
    qryPur500B.FieldByName('P500B_006').Value:=adsPur500B.FieldByName('FDate').Value;
    qryPur500B.FieldByName('P500B_007').Value:=adsPur500B.FieldByName('FPlace').Value;
    qryPur500B.FieldByName('P500B_008').Value:=adsPur500B.FieldByName('FFromID').Value;
    qryPur500B.FieldByName('P500B_009').Value:=adsPur500B.FieldByName('FLineNo').Value;
    qryPur500B.FieldByName('P500B_010').Value:=adsPur500B.FieldByName('FRemark').Value;
    qryPur500B.FieldByName('P500B_011').Value:=adsPur500B.FieldByName('FUnitRate').Value;
    qryPur500B.Post;
    adsPur500B.Next;
  end;
end;

procedure TPur500_02Form.TableBeforePost;
var
  ADate:TDateTime;
begin
  inherited;
  if trim(cbType.Text)='' then
  begin
    ShowMsg('UMS10000640');  //请购类型不能为空
    cbType.SetFocus;
    Abort;
  end;
  qryPur100.Locate('P100_002',cbType.Text,[]);
  if trim(edtDate.Text)='' then
  begin
    ShowMsg('UMS10000641');  //请购日期不能为空
    edtDate.SetFocus;
    Abort;
  end;
  if not qryHrm150.Locate('H150_002',edtPerson.Text,[]) then
  begin
    ShowMsg('UMS10000642');  //输入的请购人员无效
    edtPerson.SetFocus;
    Abort;
  end;
  if not qryHrm100.Locate('H100_002',cbDept.Text,[]) then
  begin
    ShowMsg('UMS10000643');  //输入的请购部门无效
    cbDept.SetFocus;
    Abort;
  end;
  if trim(cbFrom.Text)='' then
  begin
    ShowMsg('UMS10000529');  //来源类型不能为空
    cbFrom.SetFocus;
    Abort;
  end;
  if tsPlace.TabVisible then
  begin
    if trim(edtPlace.Text)='' then
    begin
      ShowMsg('UMS10000190');  //交货地点不能为空
      PageControl2.ActivePageIndex:=1;
      edtPlace.SetFocus;
      Abort;
    end;
    if not qryOrd152.Locate('O152_002',edtPlace.Text,[]) then
    begin
      ShowMsg('UMS10000420');  //输入的交货地点无效
      PageControl2.ActivePageIndex:=1;
      edtPlace.SetFocus;
      Abort;
    end;
  end;
  if adsPur500B.State in [dsInsert,dsEdit] then adsPur500B.Post;
  if adsPur500B.IsEmpty then
  begin
    ShowMsg('UMS10000421');  //产品信息资料不能为空
    PageControl1.ActivePageIndex:=0;
    wwDBGrid1.SetFocus;
    Abort;
  end;

  qryPur500B.Close;
  qryPur500B.SQL.Clear;
  qryPur500B.SQL.Add('delete from PUR500B where P500B_001='+''''+edtCode.Text+'''');
  qryPur500B.ExecSQL;
  if AMode='ADD' then
  begin
    ADOQuery1.Append;
    ADOQuery1.FieldByName('P500A_004').Value:=0;  //新建
    ADOQuery1.FieldByName('P500A_013').AsString:=edtCreateDate.Text;  //制单日期
    ADOQuery1.FieldByName('P500A_014').AsString:=edtCreateBy.Text;  //制单人员
    ADOQuery1.FieldByName('P500A_015').AsString:=edtUpdateDate.Text;  //修改日期
    ADOQuery1.FieldByName('P500A_016').AsString:=edtUpdateBy.Text;  //修改人员
  end else
  begin
    ADate:=GetServerDate;
    ADOQuery1.Edit;
    ADOQuery1.FieldByName('P500A_015').Value:=ADate;  //修改日期
    ADOQuery1.FieldByName('P500A_016').Value:=AUserName;  //修改人员
  end;
  ADOQuery1.FieldByName('P500A_002').Value:=qryPur100.FieldByName('P100_001').Value;  //请购类型
  ADOQuery1.FieldByName('P500A_003').Value:=edtDate.Date;  //请购日期
  ADOQuery1.FieldByName('P500A_005').Value:=cbFrom.ItemIndex;  //来源类型

  if trim(edtPerson.Text)<>'' then ADOQuery1.FieldByName('P500A_007').Value:=qryHrm150.FieldByName('H150_001').Value;  //请购人员
  if trim(cbDept.Text)<>'' then ADOQuery1.FieldByName('P500A_008').Value:=qryHrm100.FieldByName('H100_001').Value;  //请购部门
  if tsPlace.TabVisible then
  begin
    ADOQuery1.FieldByName('P500A_009').Value:=qryOrd152.FieldByName('O152_002').Value;  //交货地点
    ADOQuery1.FieldByName('P500A_006').AsString:=edtPlaceContact.Text; //联系人名
  end;
  
  ADOQuery1.FieldByName('P500A_010').AsString:=edtCheckDate.Text;  //审核日期
  ADOQuery1.FieldByName('P500A_011').AsString:=edtChecker.Text;  //审核人员
  ADOQuery1.FieldByName('P500A_012').AsString:=memRemark.Text;  //备注说明
end;

procedure TPur500_02Form.UpdateEvent;
begin
  inherited;
  //0=新建,1=核准,2=取消,3=完成
  if ADOQuery1.FieldByName('P500A_004').AsInteger<>0 then
  begin
    ShowMsg('UMS10000644');  //不允许修改非新建状态的采购申请
    Abort;
  end;
  SetDBGrid;
end;

//取得明细表数据
procedure TPur500_02Form.GetDetailData;
begin
  ALastNo:=0;
  adsPur500B.DisableControls;
  adsPur500B.Close;
  adsPur500B.CreateDataSet;

⌨️ 快捷键说明

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