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

📄 gl_enter_credence.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  GetCredenceNo;
  Edt_CredenceNo.Text := CredenceNo;
  edt_Totaldebit.Text:='0';
  edt_Totalcredit.Text:='0';
  edt_CreateEmployeeCode.Text:=userCode;
  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:='';
  edt_CashierEmployeeName.Text:='';
  edt_tallyEmployeeCode.Text:='';
  edt_tallyEmployeeName.text:='';
  edt_assessEmployeeCode.Text:='';
  edt_assessEmployeeName.Text:='';
  edt_BillAmount.Text:='0';
  edt_CreateEmployeeCode.Enabled:=False;
  edt_CreateEmployeeName.Enabled:=False;
  edt_CashierEmployeeCode.Enabled:=False;
  edt_CashierEmployeeName.Enabled:=False;
  edt_tallyEmployeeCode.Enabled:=False;
  edt_tallyEmployeeName.Enabled:=False;
  edt_assessEmployeeCode.Enabled:=False;
  edt_assessEmployeeName.Enabled:=False;
  edt_Totaldebit.Enabled:=False;
  edt_Totalcredit.Enabled:=False;
  edt_Credenceno.Enabled:=False;
//  cmb_CredenceType.Enabled:=False;
  edt_ChName.Enabled:=False;
end;

procedure TFrm_Gl_Enter_Credence.setbodyInfo;
var sqltext:string;
begin
  if UpperCase(Status)=UpperCase('Add') then
    SqlText:='select top 0 '// t1.*,'
            +' t1.Credenceid , t1.Gl_CredenceLineNo, t1.DocketName, t1.KMCode,'
            +' t1.DebitAmount, t1.CreditAmount, t1.FCurrencyRate, t1.FDebitAmount,'
            +' t1.FCreditAmount, t1.Amount, t1.Price, t1.DepArtCode,'
            +' t1.PersonEmployeeCode, t1.CustomerCode, t1.VendorCode,'
            +' t1.ProjectCode, t1.BalanceTypeCode, t1.BillNo, t1.CashWay, '
             +' t2.kmName,  t3.projectName '
             +' from   Gl_Credenceline t1  '
             +' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '
             +' left join Gl_CashReport t3 on t1.CashWay=t3.projectCode '
    {SqlText:='select top 0 t1.*,'
             +'        t2.kmName   '
             +' from   Gl_Credenceline t1  '
             +' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '}
  else
   begin
    //Executesql(AdoQry_tmp,'select * from Gl_Credence where Credenceno='+quotedstr(AdoQry_Head.fieldbyname('Credenceno').asstring),0);
   // Now Change the above line as the following line.
    Executesql(AdoQry_tmp,'select * from Gl_Credence where Credenceid='+quotedstr(AdoQry_Head.fieldbyname('Credenceid').asstring),0);
    Credenceid:=AdoQry_tmp.fieldbyname('Credenceid').asinteger;
    {SqlText:='select   '
            +' t1.Credenceid , t1.Gl_CredenceLineNo, t1.DocketName, t1.KMCode,'
            //+' convert(varchAr(10),t1.Credenceid) as Credenceid , t1.Gl_CredenceLineNo, t1.DocketName, t1.KMCode,'
            +' t1.DebitAmount, t1.CreditAmount, t1.FCurrencyRate, t1.FDebitAmount,'
            +' t1.FCreditAmount, t1.Amount, t1.Price, t1.DepArtCode,'
            +' t1.PersonEmployeeCode, t1.CustomerCode, t1.VendorCode,'
            +' t1.ProjectCode, t1.BalanceTypeCode, t1.BillNo, t1.CashWay, '
            +' t2.kmName,  t3.projectName '
             +' from   Gl_Credenceline t1  '
             +' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '
             +' left join Gl_CashReport t3 on t1.CashWay=t3.projectCode '
             +' where Credenceid='+inttostr(Credenceid);}
    SqlText:='select   t1.*,'
             +'        t2.kmName ,  t3.projectName '
             +' from   Gl_Credenceline t1  '
             +' left join Gl_AccountSubject t2 on t1.kmCode=t2.kmCode '
             +' left join Gl_CashReport t3 on t1.CashWay=t3.projectCode '
             +' where Credenceid='+inttostr(Credenceid);
   end;
   Executesql(AdoQry_Body,sqltext,0);
end;

procedure TFrm_Gl_Enter_Credence.InitControls;
var
   SqlText:string;
begin
  Application.ProcessMessages;
  inherited;
  if Status<>'Add' then
   setCredenceInfotoedit
  Else
   initedit;
  setbodyInfo;
end;

procedure TFrm_Gl_Enter_Credence.checkCredenceInfo;
var sqltext:string;
    chno:string;
    canPass:boolean;  
    limitType:integer;
begin
  canPass:=False;
{ if Trim(edt_Credenceno.text)='' then 
  begin
   DispInfo('凭证号不能为空!',3);
   edt_Credenceno.SetFocus;
   abort;
  end;
 if   (CurrentFormStatus='Add') or ((Currentformstatus<>'Add') and (Trim(edt_Credenceno.text)<>AdoQry_Head.fieldbyname('Credenceno').asstring)) then
  if Trim(Edt_CredenceNo.Text)<>'' then
  begin
    SqlText:= 'Select CredenceNo  From  Gl_Credence Where CredenceNo='+quotedstr(Trim(edt_Credenceno.text));
    Executesql(AdoQry_tmp,sqltext,0);
     If  AdoQry_tmp.RecordCount>0 then
    begin
      DispInfo('凭证号不可重复!',3);
      Edt_Credenceno.SetFocus;
      abort;
    end;
  end; }
  If AdoQry_Body.RecordCount=0 Then
  begin
    DispInfo('没有行数据,不能保存!',1);
    Abort;
  end;
  try
    Executesql(AdoQry_tmp,'select * from Gl_CredenceType where CharacterCode='+quotedstr(Trim(edt_ChCode.text)),0) ;
    chno:=AdoQry_tmp.fieldbyname('Characterno').asstring;
    limitType:=AdoQry_tmp.fieldbyname('limitType').asinteger;
    if limitType<>0 then
    begin
    sqltext:='select Gl_CredenceTypeline.kmCode,Gl_AccountSubject.kmName from Gl_CredenceTypeline,Gl_AccountSubject'
            +' where Gl_CredenceTypeline.kmCode=Gl_AccountSubject.kmCode'
            +' and   Gl_CredenceTypeline.Characterno='+quotedstr(chno);
    Executesql(AdoQry_tmp,sqltext,0);
     while not AdoQry_tmp.Eof do
       begin
         canPass:=False;
         AdoQry_Body.First;
         while not AdoQry_Body.Eof do
           begin
             if AdoQry_Body.fieldbyname('kmCode').asstring=AdoQry_tmp.fieldbyname('kmCode').asstring then
                begin
                  canPass:=True;
                  break;
                end;
             AdoQry_Body.next;
           end;
         if canPass=False then
           begin
             DispInfo('必须要有科目'+quotedstr(AdoQry_tmp.fieldbyname('kmCode').asstring+' '+AdoQry_tmp.fieldbyname('kmName').asstring)+'!',3);
             abort;
           end;
         AdoQry_tmp.Next;
       end;
    end;
  finally

  end;
  if edt_Totaldebit.Text<>edt_Totalcredit.Text then
   begin
     DispInfo('本位币借方合计与贷方合计不平衡!',3);
     abort;
   end;
end;

procedure TFrm_Gl_Enter_Credence.saveHeaddata;
var sqltext:string;
begin
{  Executesql(AdoQry_tmp,'select isnull(max(isnull(Credenceno,0)),0)+1 as Credenceno from Gl_Credence where Characterno='+quotedstr(Trim(edt_ChCode.text)),0);
  Credenceno:=AdoQry_tmp.fieldbyname('Credenceno').asString;
}
  edt_Credenceno.Text:=Credenceno;
  SqlText:=' Insert Gl_Credence '
          +' (Characterno,Credenceno,SySCredenceNo,CredenceDate,CredenceType,BillAmount,TotaldebitAmount,TotalcreditAmount,  '
          +' CreateEmployeeCode,cashierEmployeeCode,tallyEmployeeCode,assessorEmployeeCode,remArk )'
          +'  Values('
          +quotedstr(Trim(edt_ChCode.text))+','
              //+quotedstr(Trim(edt_Credenceno.text))+','
          +quotedStr(Credenceno)+','
          +QuotedStr(SySCredenceNo)+','
          +quotedstr(Trim(medt_Createdate.text))+','
          +inttostr(1)+','
          +edt_BillAmount.text+','
          +edt_Totaldebit.text+','
          +edt_Totalcredit.text+','
          +quotedstr(Trim(edt_CreateEmployeeCode.text))+','
          +quotedstr(Trim(edt_CashierEmployeeCode.text))+','
          +quotedstr(Trim(edt_tallyEmployeeCode.text))+','
          +quotedstr(Trim(edt_assessEmployeeCode.text))+','
          +quotedstr(Trim(edt_RemArk.text))
          +')';
  Executesql(AdoQry_tmp,sqltext,1);
  Executesql(AdoQry_tmp,'select @@identity as dd',0);
  Credenceid:=AdoQry_tmp.fieldbyname('dd').asinteger;
  saveCredenceHistory(dbconnect,Trim(edt_Credenceno.text),userCode,0);
end;

procedure TFrm_Gl_Enter_Credence.savebodydata;
var sqltext:string;
begin
  AdoQry_Body.First;
  While Not AdoQry_Body.Eof Do
  begin
    SqlText:='Insert Gl_Credenceline '
            +' (Credenceid,Gl_CredenceLineNo,docketName,kmCode,debitAmount,creditAmount,fCurrencyRate,'
            +' FdebitAmount,FcreditAmount,Amount,Price,'
            +' depArtCode,personEmployeeCode,customerCode,VendorCode,projectCode,BalanceTypeCode,Billno,CashWay)'
            +'Values('
            +inttostr(Credenceid)+','
            +inttostr(AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger)+','
            +quotedstr(AdoQry_Body.fieldbyname('docketName').asstring)+','
            +quotedstr(AdoQry_Body.fieldbyname('kmCode').asstring)+','
            +floattostr(AdoQry_Body.fieldbyname('debitAmount').asfloat)+','
            +floattostr(AdoQry_Body.fieldbyname('creditAmount').asfloat)+','
            +floattostr(AdoQry_Body.fieldbyname('fCurrencyRate').asfloat)+','
            +floattostr(AdoQry_Body.fieldbyname('fdebitAmount').asfloat)+','
            +floattostr(AdoQry_Body.fieldbyname('fcreditAmount').asfloat)+','
            +floattostr(AdoQry_Body.fieldbyname('Amount').asfloat)+','
            +floattostr(AdoQry_Body.fieldbyname('Price').asfloat)+','
            +quotedstr(AdoQry_Body.fieldbyname('depArtCode').asstring)+','
            +quotedstr(AdoQry_Body.fieldbyname('personEmployeeCode').asstring)+','
            +quotedstr(AdoQry_Body.fieldbyname('customerCode').asstring)+','
            +quotedstr(AdoQry_Body.fieldbyname('VendorCode').asstring)+','
            +quotedstr(AdoQry_Body.fieldbyname('projectCode').asstring)+','
            +quotedstr(AdoQry_Body.fieldbyname('BalanceTypeCode').asstring)+','
            +quotedstr(AdoQry_Body.fieldbyname('Billno').asstring) +','
            +getValue(AdoQry_Body.fieldbyname('CashWay').asstring)
            +')';
    Executesql(AdoQry_tmp,sqltext,1);
    saveCredenceLineHistory(dbconnect,Credenceid,AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger,userCode,0);
    AdoQry_Body.Next;
  end;
end;

procedure TFrm_Gl_Enter_Credence.updateHeaddata;
var sqltext:string;
begin
  saveCredenceHistory(dbconnect,AdoQry_Head.fieldbyname('Credenceno').asstring,userCode,1);
  SqlText:='update Gl_Credence '
           +'  set Characterno='+quotedstr(Trim(edt_ChCode.text))+','
           +'      Credenceno='+quotedstr(Trim(edt_Credenceno.text))+','
           +'      TotaldebitAmount='+Trim(edt_Totaldebit.text)+','
           +'      TotalcreditAmount='+Trim(edt_Totalcredit.text)+','
           +'      remArk='+quotedstr(Trim(edt_RemArk.text))+','
           +'      BillAmount='+Trim(edt_BillAmount.text)
           +'  where Credenceid='+quotedstr(AdoQry_Head.fieldbyname('Credenceid').asstring);
  Executesql(AdoQry_tmp,sqltext,1);
end;

procedure TFrm_Gl_Enter_Credence.updatebodydata;
var sqltext:string;
begin
  AdoQry_Body.First;
  While Not AdoQry_Body.Eof Do
  begin
//      showmessage(inttostr(AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger));
    saveCredenceLineHistory(dbconnect,AdoQry_Body.fieldbyname('Credenceid').asinteger,AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger,userCode,1);
    SqlText:=' UpDate Gl_Credenceline '
            +' Set '
            +' docketName='+quotedstr(AdoQry_Body.fieldbyname('docketName').asstring)+','
            +' kmCode='+quotedstr(AdoQry_Body.fieldbyname('kmCode').AsString)+','
            +' debitAmount='+floattostr(AdoQry_Body.fieldbyname('debitAmount').asfloat)+','
            +' creditAmount='+floattostr(AdoQry_Body.fieldbyname('creditAmount').asfloat)+','
            +' fdebitAmount='+floattostr(AdoQry_Body.fieldbyname('fdebitAmount').asfloat)+','
            +' fcreditAmount='+floattostr(AdoQry_Body.fieldbyname('fcreditAmount').asfloat)+','
            +' fCurrencyRate='+floattostr(AdoQry_Body.fieldbyname('fCurrencyRate').asfloat)+','
            +' Amount='+floattostr(AdoQry_Body.fieldbyname('Amount').asfloat)+','
            +' Price='+floattostr(AdoQry_Body.fieldbyname('Price').asfloat)+','
            +' depArtCode='+quotedstr(AdoQry_Body.fieldbyname('depArtCode').AsString)+','
            +' personEmployeeCode='+quotedstr(AdoQry_Body.fieldbyname('personEmployeeCode').AsString)+','
            +' customerCode='+quotedstr(AdoQry_Body.fieldbyname('customerCode').AsString)+','
            +' VendorCode='+quotedstr(AdoQry_Body.fieldbyname('VendorCode').AsString)+','
            +' projectCode='+quotedstr(AdoQry_Body.fieldbyname('projectCode').AsString)+','
            +' BalanceTypeCode='+quotedstr(AdoQry_Body.fieldbyname('BalanceTypeCode').AsString)+','
            +' Billno='+quotedstr(AdoQry_Body.fieldbyname('Billno').AsString)+','
            +' CashWay='+getValue(AdoQry_Body.fieldbyname('CashWay').asstring)
            +' where Credenceid='+inttostr(Credenceid)
            +'  and  Gl_Credencelineno='+inttostr(AdoQry_Body.fieldbyname('Gl_Credencelineno').asinteger);
    Executesql(AdoQry_tmp,sqltext,1);
    AdoQry_Body.Next;
  end;

end;


procedure TFrm_Gl_Enter_Credence.SaveData;
var
  SqlText:String;
//  SySCredenceNo : String;
//  PreStr : String;
begin
  inherited;
  checkCredenceInfo;//校验数据
  DbConnect.beginTrans;
  Try
    AdoQry_Tmp.Close;
    If CurrentFormStatus='Add' Then
    begin
      Application.ProcessMessages;
      GetCredenceNo;
      Edt_CredenceNo.Text := CredenceNo;
      saveHeaddata;    //保存表头
      savebodydata;    //保存表体
    end
    else
    If CurrentFormStatus='PArtEdit' Then
    begin
      updateHeaddata; //修改表头
      updatebodydata; //修改表体
    end;
    DbConnect.CommitTrans;
    Act_Save.Enabled:=False;
    DispInfo('数据保存成功!',3);
  Except
    on e:exception do
    begin

⌨️ 快捷键说明

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