📄 gl_enter_passcredence.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 + -