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

📄 pm_enter_editpasspo.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
   Frm_Pm_Enter_EditPassPo.Act_CheckExecute(Act_Check);
   Abort;
 end;  }
end;

procedure TFrm_Pm_Enter_EditPassPo.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Pm_Enter_EditPassPo:=Nil;
end;

procedure TFrm_Pm_Enter_EditPassPo.DBGridEhTitleClick(Column: TColumnEh);
var
  BookMArk:String;
begin
  inherited;
  If Trim(Column.Title.Caption)<>'标记' Then
    Abort;
  If AdoQry_Head.RecordCount=0 Then
    Abort;
  BookMArk:=AdoQry_Head.BookmArk;
  If Not Flag Then
  begin
    AdoQry_Head.First;
    While Not AdoQry_Head.Eof Do
    begin
      AdoQry_Head.Edit;
      AdoQry_Head.fieldbyname('PoLineCheck').AsInteger:=1;
      AdoQry_Head.Post;
      AdoQry_Head.Next;
    end;
  end
  Else
  begin
    AdoQry_Head.First;
    While Not AdoQry_Head.Eof Do
    begin
      AdoQry_Head.Edit;
      AdoQry_Head.fieldbyname('PoLineCheck').AsInteger:=0;
      AdoQry_Head.Post;
      AdoQry_Head.Next;
    end;
  end;
  AdoQry_Head.BookmArk:=BookMArk;
  Flag:=Not Flag;
end;

procedure TFrm_Pm_Enter_EditPassPo.AdoQry_HeadBeforeInsert(DataSet: TDataSet);
begin
  inherited;
  Abort;
end;

procedure TFrm_Pm_Enter_EditPassPo.Act_LookExecute(Sender: TObject);
begin
  inherited;

{   try
    If (AdoQry_Head.RecordCount>0)  Then
    if  Frm_Mrp_Enter_MoSsParent=nil then
      begin
        Frm_Mrp_Enter_MoSsParent:=TFrm_Mrp_Enter_MoSsParent.Create(Self);
        Frm_Mrp_Enter_MoSsParent.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
        Frm_Mrp_Enter_MoSsParent.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
        tmplowPmCode:=AdoQry_Head.fieldbyname('PmCode').asinteger;
        Frm_Mrp_Enter_MoSsParent.Qclt:=getQclt(AdoQry_Head.fieldbyname('ItemCode').asstring);
        Frm_Mrp_Enter_MoSsParent.duedate:=datetimetostr(AdoQry_Head.fieldbyname('polinedate').asdatetime);
        Frm_Mrp_Enter_MoSsParent.strpath:=AdoQry_Head.fieldbyname('ItemCode').asstring+',';
        Frm_Mrp_Enter_MoSsParent.InitForm(dbconnect,True);
      end
      else  Frm_Mrp_Enter_MoSsParent.Show;
  finally
    activecontrol:=dbgrideh;
  end;}
   try
    If (AdoQry_Head.RecordCount>0)  Then
      if  Frm_Mrp_Enter_NewMoSsParent=nil then
        begin
          Frm_Mrp_Enter_NewMoSsParent:=TFrm_Mrp_Enter_NewMoSsParent.Create(Self);
          Frm_Mrp_Enter_NewMoSsParent.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
          Frm_Mrp_Enter_NewMoSsParent.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
          tmplowPmCode:=AdoQry_Head.fieldbyname('PmCode').asinteger;
          Frm_Mrp_Enter_NewMoSsParent.Qclt:=getQclt(AdoQry_Head.fieldbyname('ItemCode').asstring);
          Frm_Mrp_Enter_NewMoSsParent.duedate:=datetimetostr(AdoQry_Head.fieldbyname('polinedate').asdatetime);
          Frm_Mrp_Enter_NewMoSsParent.strpath:=AdoQry_Head.fieldbyname('ItemCode').asstring+',';
          Frm_Mrp_Enter_NewMoSsParent.InitForm(dbconnect,True);
        end
        else  Frm_Mrp_Enter_NewMoSsParent.Show;
  finally
    activecontrol:=dbgrideh;
  end;
end;

procedure TFrm_Pm_Enter_EditPassPo.FormCreate(Sender: TObject);
begin
  inherited;
  ToolButton7.Action := Act_Delete;
  ToolButton7.Visible := True;
  ToolButton7.Enabled := True;
  act_Modify.Enabled:=True;
  act_Modify.Visible:=True;
  tlbtn_Modify.Action:=act_Modify;
  tlbtn_Modify.Enabled:=True;
  tlbtn_Modify.Visible:=True;
end;

procedure TFrm_Pm_Enter_EditPassPo.DeleteRecord;
var
  SqlText,SqlText1,SqlText2,sqlTxt3,BookMArk: String;
  falg:integer;
begin
  faLg:=0;
  if AdoQry_Head.RecordCount>AdoQry_Head.RecNo   then
  begin
    BookMArk:=AdoQry_Head.BookmArk;
    falg:=1;
  end;
    if (AdoQry_Head.fieldbyname('PoLineStatus').AsInteger<>5)  then
     begin
     {  sqlTxt3:=' Select * from poline where pono='''+AdoQry_Head.fieldbyname('PONO').AsString+''''
             +' and polineno ='''+AdoQry_Head.fieldbyname('POlineno').AsString+'''' ;
       AdoQry_Tmp.Close;
       AdoQry_Tmp.SQL.Text :=sqlTxt3 ;
       AdoQry_Tmp.Open;
       if  AdoQry_Tmp.fieldbyname('PoLineStatus').asinteger<> 5 then
       begin
         DispInfo('采购订单号为:'+AdoQry_Head.fieldbyname('PONO').AsString+' 的采购订单已被其他用户修改!',3);
         abort;
       end; }
       DispInfo('不能删除采购订单号为:'+AdoQry_Head.fieldbyname('PONO').AsString+' 已下达的采购订单!',3);
       abort;
     end;

      sqlTxt3:=' Select * from poline where pono='''+AdoQry_Head.fieldbyname('PONO').AsString+''''
             +' and polineno ='''+AdoQry_Head.fieldbyname('POlineno').AsString+''''
             +' and PoLineStatus=5 ' ;
      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text :=sqlTxt3 ;
      AdoQry_Tmp.Open;
      if  AdoQry_Tmp.fieldbyname('PoLineStatus').asinteger= 5 then
      begin
        try
          DbConnect.beginTrans ;
          SqlText2:=' Delete OpItemList Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
                   +' And PoLineNo='''+AdoQry_Head.fieldbyname('PoLineNo').AsSTring+'''';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.Text := SqlText2;
          AdoQry_Tmp.ExecSQL;

          SavePoLineHistory('Delete');
          OperationMOPO(AdoQry_Tmp,Trim(AdoQry_Head.fieldbyname('ItemCode').AsString),'po',3,
                        Trim(AdoQry_Head.fieldbyname('pono').AsString),AdoQry_Head.fieldbyname('PoLineNo').AsInteger,AdoQry_Head.fieldbyname('POLINESTATUS').AsInteger,
                        0,AdoQry_Head.fieldbyname('PoQty').Asfloat,
                        AdoQry_Head.fieldbyname('PONoFinishQty').Asfloat,AdoQry_Head.fieldbyname('POStArtWorkDate').AsString,
                        AdoQry_Head.fieldbyname('POLineDATE').AsString,AdoQry_Head.fieldbyname('PoType').AsInteger,AdoQry_Head.fieldbyname('VendorCode').AsString );

          SqlText:=' Delete PoLine Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
                  +' And PoLineNo='''+AdoQry_Head.fieldbyname('PoLineNo').AsSTring+''''
                  +' And PoLineStatus = 5';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.Text := SqlText;
          AdoQry_Tmp.ExecSQL;
          SqlText1:=' Delete Po Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
                   +' and Not Exists(Select PoNo From PoLine where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''')';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.Text := SqlText1;
          AdoQry_Tmp.ExecSQL;
          DbConnect.CommitTrans;
        except
          DbConnect.RollBackTrans;
        end;
      end;
  getdata;
  if falg=1 then
  AdoQry_Head.BookmArk:=BookMArk;
end;

procedure TFrm_Pm_Enter_EditPassPo.Act_DeleteExecute(Sender: TObject);
begin
  inherited;
  If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
    Exit;
  If (DispInfo('确认真的要删除选定采购订单吗',2)='y') Then
    DeleteRecord;
end;

function TFrm_Pm_Enter_EditPassPo.getQclt(ItemCode: string): string;
begin
  try
   Executesql(AdoQry_tmp,'select Qclt from Item where ItemCode='+quotedstr(ItemCode),0);
   Result:=inttostr(AdoQry_tmp.fieldbyname('Qclt').asinteger);
  except
   Result:='9999999';
  end;
end;

function TFrm_Pm_Enter_EditPassPo.beendilivered(pono:string;polineno:integer):boolean;
var AdoQry:TAdoQuery;
    sqltext:string;
begin
  Result:=False;
  AdoQry:=TAdoQuery.Create(self);
  AdoQry.Connection:=dbconnect;
  sqltext:='select * from opItemList  '
           +' where porealqty>0 '
           +'   and pono='+quotedstr(pono)
           +'   and polineno='+inttostr(polineno);
  try
    Executesql(AdoQry,sqltext,0);
    if AdoQry.RecordCount>0 then
    Result:=True;
  finally
    AdoQry.Free;
  end;
end;

procedure TFrm_Pm_Enter_EditPassPo.Act_ModifyExecute(Sender: TObject);
begin
  inherited;
  if AdoQry_Head.RecordCount=0 then exit;
  Frm_Pm_Enter_PassPo_D := TFrm_Pm_Enter_PassPo_D.Create(self);
  try
    with Frm_Pm_Enter_PassPo_D do
      begin
        AdoQry_tmp.Connection:=dbconnect;
        Edt_Pono.Text:=AdoQry_Head.fieldbyname('PoNo').asstring;
        Edt_LineNo.Text:=AdoQry_Head.fieldbyname('Polineno').asstring;
        Edt_ItemCode.Text:=AdoQry_Head.fieldbyname('ItemCode').asstring;
        Lbl_ItemName.Caption:=AdoQry_Head.fieldbyname('ItemName').asstring;
        Edt_ItemName.Text :=AdoQry_Head.fieldbyname('ItemName').asstring;
        MEdt_PoStArtWorkDate.Text:=AdoQry_Head.fieldbyname('PoStArtWorkDate').AsString;
        Medt_PoDate.Text:=AdoQry_Head.fieldbyname('POLineDATE').AsString;
        Edt_PoQty.Text:=AdoQry_Head.fieldbyname('PoQty').asstring;
        Edt_PoNoFinishQty.Text:=AdoQry_Head.fieldbyname('PONoFinishQty').asstring;
        btn_ok.Enabled:=False;
        if AdoQry_Head.fieldbyname('POLINESTATUS').asinteger=5 then
          Edt_PoQty.Enabled := True
        else
          Edt_PoQty.Enabled := False;
        showmodal;
       // medt_Modate.SetFocus;
        if modalResult=mrok then
          begin
           SavePoLineHistory1('Edit');
           AdoQry_Head.Edit;
           AdoQry_Head.fieldbyname('POLineDATE').asstring:=Medt_PoDate.Text;
           AdoQry_Head.fieldbyname('PoStArtWorkDate').asstring:=MEdt_PoStArtWorkDate.Text;
           AdoQry_Head.fieldbyname('PoQty').asstring:=Edt_Poqty.Text;
           if AdoQry_Head.fieldbyname('POLINESTATUS').asinteger=5 then
             AdoQry_Head.fieldbyname('PONoFinishQty').asstring:=Edt_PoNoFinishQty.Text;
           AdoQry_Head.Post;
           updatepoline(AdoQry_Head.fieldbyname('PoNo').asstring,AdoQry_Head.fieldbyname('PoLineNo').asinteger);
           IF Not AutoBuildopListOrder(DbConnect,Trim(AdoQry_Head.fieldbyname('pono').AsString),Trim(AdoQry_Head.fieldbyname('ItemCode').AsString),IntToStr(AdoQry_Head.fieldbyname('PoLineNo').AsInteger),
                'Edit','Po',AdoQry_Head.fieldbyname('PoQty').Asfloat) Then  //自动产生领料单
              Abort;

           OperationMOPO(AdoQry_Tmp,Trim(AdoQry_Head.fieldbyname('ItemCode').AsString),'po',5,
                       Trim(AdoQry_Head.fieldbyname('pono').AsString),AdoQry_Head.fieldbyname('PoLineNo').AsInteger,AdoQry_Head.fieldbyname('POLINESTATUS').AsInteger,
                       0,AdoQry_Head.fieldbyname('PoQty').Asfloat,
                       AdoQry_Head.fieldbyname('PONoFinishQty').Asfloat,AdoQry_Head.fieldbyname('POStArtWorkDate').AsString,
                       AdoQry_Head.fieldbyname('POLineDATE').AsString,AdoQry_Head.fieldbyname('PoType').AsInteger,AdoQry_Head.fieldbyname('VendorCode').AsString );

          end;
      end;
  finally
    Frm_Pm_Enter_PassPo_D.Free;
  end;
end;

procedure TFrm_Pm_Enter_EditPassPo.UpDatePoline(PoNo: string;
  PoLineNo: integer);
var AdoQry:TAdoQuery;
    sqltext:string;
begin
  AdoQry:=TAdoQuery.Create(self);
  AdoQry.Connection:=dbconnect;
  if AdoQry_Head.fieldbyname('POLINESTATUS').asinteger=5 then
  begin
    sqltext:='update Poline  '
             +' set POLineDATE= '+quotedstr(AdoQry_Head.fieldbyname('POLineDATE').asstring)+','
             +'     PoStArtWorkDate='+quotedstr(AdoQry_Head.fieldbyname('PoStArtWorkDate').asstring)+','
             +'     POnoFinishQty= '+quotedstr(AdoQry_Head.fieldbyname('POnoFinishQty').asstring)+','
             +'     PoQty='+quotedstr(AdoQry_Head.fieldbyname('PoQty').asstring)

             +' where Pono='+quotedstr(Pono)
             +'   and Polineno='+inttostr(Polineno);
   end
   else
   begin
     sqltext:='update Poline  '
             +' set POLineDATE= '+quotedstr(AdoQry_Head.fieldbyname('POLineDATE').asstring)+','
             +'     PoStArtWorkDate='+quotedstr(AdoQry_Head.fieldbyname('PoStArtWorkDate').asstring)
             +' where Pono='+quotedstr(Pono)
             +'   and Polineno='+inttostr(Polineno);

   end;
  try
    Executesql(AdoQry,sqltext,1);
  finally
    AdoQry.Free;
  end;
end;

function TFrm_Pm_Enter_EditPassPo.SavePoLineHistory1(Status1: String): Boolean;
var
  SqlText:String;
begin
  Try
    SqlText:='Insert PoLineHistory '
            +' (PoNo,PoLineNo,ItemCode,POLineDate,PoStArtWorkDate,POQty,POTaxPrice,POTaxAmount,PONoTaxPrice,'
            +' PONoTaxAmount,PONoFinishQty,POReferencedPrice,POLineStatus,PolChgEmployeeCode,PolChgTime,PolChgType)'
            +'Values('
            +''''+AdoQry_Head.fieldbyname('PoNo').AsString+''''+','
            +''''+IntToStr(AdoQry_Head.fieldbyname('PoLineNo').AsInteger)+''''+','
            +''''+AdoQry_Head.fieldbyname('ItemCode').AsString+''''+','
            +''''+DatetimeToStr(AdoQry_Head.fieldbyname('PoLineDate').AsDateTime)+''''+','
            +''''+DatetimeToStr(AdoQry_Head.fieldbyname('PoStArtWorkDate').AsDateTime)+''''+','
            +''''+FloatToStr(AdoQry_Head.fieldbyname('PoQty').AsFloat)+''''+','
            +''''+FloatToStr(AdoQry_Head.fieldbyname('POTaxPrice').AsFloat)+''''+','
            +''''+FloatToStr(AdoQry_Head.fieldbyname('POTaxAmount').AsFloat)+''''+','
            +''''+FloatToStr(AdoQry_Head.fieldbyname('PONoTaxPrice').AsFloat)+''''+','
            +''''+FloatToStr(AdoQry_Head.fieldbyname('PONoTaxAmount').AsFloat)+''''+','
            +''''+FloatToStr(AdoQry_Head.fieldbyname('PONoFinishQty').AsFloat)+''''+','
            +''''+IntToStr(AdoQry_Head.fieldbyname('POReferencedPrice').AsInteger)+''''+','
            +''''+IntToStr(AdoQry_Head.fieldbyname('POLineStatus').AsInteger)+''''+','
            +''''+UserCode+''''+','
            +'GetDate(),' ;
            if Status1='Edit' then
              SqlText:=SqlText+''''+'更改日期'+''''+')'
            else
              if Status1='Delete' then
                SqlText:=SqlText+''''+'删除记录'+''''+')';
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:=SqlText;
    AdoQry_Tmp.ExecSQL;
    Result:=True;
  Except
    Result:=False;
  end;
end;

procedure TFrm_Pm_Enter_EditPassPo.TlBtn_CheckClick(Sender: TObject);
begin
  inherited;
  If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
    Exit;
  If (DispInfo('确认真的要批准选定采购订单吗',2)='y') Then
    OpenRecord;
end;

procedure TFrm_Pm_Enter_EditPassPo.TlBtn_CancelCheckClick(Sender: TObject);
begin
  inherited;
  If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
    Exit;
  If (DispInfo('确认取消批准选定采购记录吗?',2)='y') Then
   CloseRecord;
end;

end.

⌨️ 快捷键说明

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