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

📄 gl_enter_passcredence.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Gl_Enter_PassCredence;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Check_Body, Db, ActnList, AdODB, Grids, DBGridEh, StdCtrls,
  ExtCtrls, ComCtrls, ToolWin, Mask, linkedit, jpeg;

Type
  TFrm_Gl_Enter_PassCredence = Class(TFrm_Base_Check_Body)
    AdoQry_BodyCredenceId: TIntegerField;
    AdoQry_BodyGl_CredenceLineNo: TIntegerField;
    AdoQry_BodyDocketName: TStringField;
    AdoQry_BodyKMCode: TStringField;
    AdoQry_BodyDebitAmount: TFloatField;
    AdoQry_BodyCreditAmount: TFloatField;
    AdoQry_BodyFCurrencyRate: TFloatField;
    AdoQry_BodyFDebitAmount: TFloatField;
    AdoQry_BodyFCreditAmount: TFloatField;
    AdoQry_BodyAmount: TFloatField;
    AdoQry_BodyPrice: TFloatField;
    AdoQry_BodyDepArtCode: TStringField;
    AdoQry_BodyPersonEmployeeCode: TStringField;
    AdoQry_BodyCustomerCode: TStringField;
    AdoQry_BodyVendorCode: TStringField;
    AdoQry_BodyProjectCode: TStringField;
    AdoQry_BodyBalanceTypeCode: TStringField;
    AdoQry_BodyBillNo: TStringField;
    AdoQry_BodykmName: TStringField;
    Label15: TLabel;
    edt_ChCode: TLinkEdit;
    edt_ChName: TEdit;
    Label3: TLabel;
    MEdt_CreateDate: TMaskEdit;
    Label9: TLabel;
    Edt_Credenceno: TEdit;
    Label1: TLabel;
    edt_BillAmount: TEdit;
    Label4: TLabel;
    Edt_Totaldebit: TEdit;
    Label16: TLabel;
    edt_Totalcredit: TEdit;
    edt_CreateEmployeeCode: TLinkEdit;
    edt_CreateEmployeeName: TEdit;
    Label5: TLabel;
    Label10: TLabel;
    edt_assessEmployeeName: TEdit;
    edt_assessEmployeeCode: TLinkEdit;
    edt_CashierEmployeeName: TEdit;
    edt_CashierEmployeeCode: TLinkEdit;
    Label6: TLabel;
    Label7: TLabel;
    edt_tallyEmployeeCode: TLinkEdit;
    edt_tallyEmployeeName: TEdit;
    procedure Act_CheckExecute(Sender: TObject);
    procedure Act_CancelCheckExecute(Sender: TObject);
  private
    CredenceTypeIndex,Credenceid:Integer;
    procedure PassCredenceCheck;
    { Private declarations }
  public
    procedure InitForm(AdOConnection:TAdOConnection;FormStatus:String;
      AdoQuery:TAdoQuery);Override;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_PassCredence: TFrm_Gl_Enter_PassCredence;

implementation

uses Sys_Global;

{$R *.DFM}

{ TFrm_Gl_Enter_PassCredence }

procedure TFrm_Gl_Enter_PassCredence.InitForm(
  AdOConnection: TAdOConnection; FormStatus: String; AdoQuery: TAdoQuery);
var
  SqlText:String;
begin
  Application.ProcessMessages;
  inherited;
  With AdoQry_Head do
    begin
      Edt_ChCode.Text :=fieldbyname('CharacterNO').AsString;
      Executesql(AdoQry_tmp,'select * from Gl_CredenceType where CharacterNo='+quotedstr(Trim(edt_ChCode.text)),0);
      edt_ChName.Text:=AdoQry_tmp.fieldbyname('CharacterCode').asstring;
      medt_Createdate.Text:=fieldbyname('Credencedate').asstring;
      edt_Credenceno.Text:=fieldbyname('Credenceno').asstring;
      CredenceTypeIndex:=fieldbyname('CredenceType').asinteger-1;
      edt_Totaldebit.Text:=floattostr(fieldbyname('TotaldebitAmount').asfloat);
      edt_Totalcredit.Text:=floattostr(fieldbyname('TotalcreditAmount').asfloat)      ;
      edt_CreateEmployeeCode.Text:=fieldbyname('createEmployeeCode').asstring;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_CreateEmployeeCode.text)),0);
      edt_CreateEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      edt_CashierEmployeeCode.Text:=fieldbyname('cashierEmployeeCode').asstring;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_CashierEmployeeCode.text)),0);
      edt_CashierEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      edt_tallyEmployeeCode.Text:=fieldbyname('tallyEmployeeCode').asstring;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_tallyEmployeeCode.text)),0);
      edt_tallyEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      edt_assessEmployeeCode.Text:=fieldbyname('assessorEmployeeCode').asstring;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_assessEmployeeCode.text)),0);
      edt_assessEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      edt_BillAmount.Text:=inttostr(fieldbyname('BillAmount').asinteger);
      Credenceid:=fieldbyname('Credenceid').asinteger;
    end;
    Executesql(AdoQry_tmp,'select * from Gl_Credence where Credenceno='+quotedstr(AdoQry_Head.fieldbyname('Credenceno').asstring),0);
    Credenceid:=AdoQry_tmp.fieldbyname('Credenceid').asinteger;
    SqlText:='select   t1.*,'
             +'        t2.kmName   '
             +' from   Gl_Credenceline t1  '
             +' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '
             +' where Credenceid='+inttostr(Credenceid);
   Executesql(AdoQry_Body,sqltext,0);
end;

procedure TFrm_Gl_Enter_PassCredence.Act_CheckExecute(Sender: TObject);
var
  SqlText:String;
begin
  inherited;
  If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
    Exit;
  PassCredenceCheck;  
  If  Trim(Edt_AssessEmployeeCode.Text)  = '' then
    If (DispInfo('确认真的要审核这张凭证吗?',2)='y') Then
    begin
     try
      Dbconnect.beginTrans ;
      saveCredenceHistory(dbconnect,Trim(edt_Credenceno.text),userCode,5);
      SQlText:=' UpDate Gl_Credence Set AssessFlag=1, '
              +' AssessorEmployeeCode='''+UserCode+'''  Where CredenceId='''+IntToStr(CredenceId)+''' ';
      AdoQry_Tmp.Close;
      AdoQry_Tmp.sql.clear ;
      AdoQry_Tmp.SQL.Text := SqlText;
      AdoQry_Tmp.ExecSQL ;
      Edt_AssessEmployeeCode.Text := userCode;
      Executesql(AdoQry_tmp,'select EmployeeName from Employee where EmployeeCode='+quotedstr(userCode),0);
      Edt_AssessEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      AdoQry_Head.Edit;
      AdoQry_Head.fieldbyname('Assessflag').AsInteger:=1;
      AdoQry_Head.fieldbyname('AssessorEmployeeCode').AsString:=UserCode;
      AdoQry_Head.fieldbyname('AssessorEmployeeName').AsString:=Edt_AssessEmployeeName.Text;
      AdoQry_Head.Post;
      AdoQry_Body.First ;
      while not AdoQry_Body.Eof do
      begin
        saveCredenceLineHistory(dbconnect,Credenceid,AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger,userCode,5);
        AdoQry_Body.Next;
      end;
      Dbconnect.CommitTrans;
      DispInfo('审核'+Edt_Credenceno.Text+'号凭证成功!',3);
     except
      if dbconnect.InTransaction then
       dbconnect.RollBackTrans;
     end;
    end;
end;

procedure TFrm_Gl_Enter_PassCredence.Act_CancelCheckExecute(
  Sender: TObject);
var
  SqlText:String;
begin
  inherited;
  If (AdoQry_Head.Eof) And (AdoQry_Head.Bof) Then
    Exit;
  if Trim(Edt_AssessEmployeeCode.Text) <> UserCode then
  begin
    DispInfo('取消审核签字只能由审核人自己进行!',1);
    Abort;
  end;  
  if AdoQry_Head.fieldbyname('tallyflag').asinteger=1 then 
  begin
    DispInfo('凭证已过帐,不能取消审核!',1);
    Abort;
  end;
  If  Trim(Edt_AssessEmployeeCode.Text)  <> '' then
    If (DispInfo('确认要取消审核这张凭证吗?',2)='y') Then
    begin
     try
      Dbconnect.beginTrans ;
      saveCredenceHistory(dbconnect,Trim(edt_Credenceno.text),userCode,6);
      SQlText:=' UpDate Gl_Credence Set AssessFlag=0, '
              +' AssessorEmployeeCode='''+''+'''  Where CredenceId='''+IntToStr(CredenceId)+''' ';
      AdoQry_Tmp.Close;
      AdoQry_Tmp.sql.clear ;
      AdoQry_Tmp.SQL.Text := SqlText;
      AdoQry_Tmp.ExecSQL ;
      Edt_AssessEmployeeCode.Text := '';
      Edt_AssessEmployeeName.Text:='';
      AdoQry_Head.Edit;
      AdoQry_Head.fieldbyname('Assessflag').AsInteger:=0;
      AdoQry_Head.fieldbyname('AssessorEmployeeCode').AsString:='';
      AdoQry_Head.fieldbyname('AssessorEmployeeName').AsString:='';
      AdoQry_Head.Post;
      AdoQry_Body.First ;
      while not AdoQry_Body.Eof do
      begin
        saveCredenceLineHistory(dbconnect,Credenceid,AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger,userCode,6);
        AdoQry_Body.Next;
      end;
      Dbconnect.CommitTrans;
      DispInfo('取消审核'+Edt_Credenceno.Text+'号凭证成功!',3);
     except
      if dbconnect.InTransaction then
       dbconnect.RollBackTrans;
     end;
    end;
end;

procedure TFrm_Gl_Enter_PassCredence.PassCredenceCheck;
begin
  if Trim(Edt_CreateEmployeeCode.Text) = UserCode then
  begin
    DispInfo('审核人和制单人不能是同一个人!',1);
    Abort;
  end;
  if CredenceTypeIndex = 1 then
    begin
      DispInfo('作废凭证不能被审核!',1);
      Abort;
    end
  else
    if CredenceTypeIndex = 2 then
    begin
      DispInfo('已标错的凭证不能被审核!',1);
      Abort;
    end;
  If Edt_TotalDebit.Text<>Edt_TotalCredit.Text then 
  begin
    DispInfo('借贷不平衡,不能审核!',1);
    Abort;
  end;
end;

end.

⌨️ 快捷键说明

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