unit u_fee_modify; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, BusinessSkinForm, bsSkinCtrls, DB, ADODB, StdCtrls, Mask, DBCtrls, wwdblook, RxLookup; type Tfrm_fee_modify = class(TForm) bsBusinessSkinForm1: TbsBusinessSkinForm; bsSkinGroupBox1: TbsSkinGroupBox; table_old1: TDataSource; Label1: TLabel; DBEdit1: TDBEdit; Label2: TLabel; DBEdit2: TDBEdit; Label3: TLabel; DBEdit3: TDBEdit; Label4: TLabel; DBEdit4: TDBEdit; Label5: TLabel; DBEdit5: TDBEdit; Label6: TLabel; DBEdit6: TDBEdit; Label7: TLabel; DBEdit7: TDBEdit; Label8: TLabel; DBEdit8: TDBEdit; Label9: TLabel; DBEdit9: TDBEdit; bsSkinGroupBox2: TbsSkinGroupBox; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; DBEdit14: TDBEdit; DBEdit15: TDBEdit; DBEdit16: TDBEdit; DBEdit18: TDBEdit; wwDBLookupCombo5: TwwDBLookupCombo; wwDBLookupCombo4: TwwDBLookupCombo; wwDBLookupCombo3: TwwDBLookupCombo; Label19: TLabel; DBEdit10: TDBEdit; table_new1: TDataSource; table1: TDataSource; bsSkinButton1: TbsSkinButton; bsSkinButton2: TbsSkinButton; RxDBLookupCombo1: TRxDBLookupCombo; RxDBLookupCombo2: TRxDBLookupCombo; Label20: TLabel; DBEdit11: TDBEdit; Label21: TLabel; DBEdit12: TDBEdit; Label22: TLabel; Label23: TLabel; DBEdit13: TDBEdit; DBEdit17: TDBEdit; Label26: TLabel; Label27: TLabel; DBEdit21: TDBEdit; DBEdit22: TDBEdit; Label24: TLabel; DBEdit19: TDBEdit; Label25: TLabel; DBEdit20: TDBEdit; Label28: TLabel; DBEdit23: TDBEdit; Label29: TLabel; DBEdit24: TDBEdit; Label30: TLabel; DBEdit25: TDBEdit; Label32: TLabel; DBEdit27: TDBEdit; Label31: TLabel; DBEdit26: TDBEdit; Label33: TLabel; DBEdit28: TDBEdit; DBCheckBox1: TDBCheckBox; DBCheckBox2: TDBCheckBox; procedure FormCreate(Sender: TObject); procedure bsSkinButton1Click(Sender: TObject); procedure bsSkinButton2Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure wwDBLookupCombo5Change(Sender: TObject); procedure wwDBLookupCombo4Change(Sender: TObject); procedure DBEdit14Change(Sender: TObject); procedure RxDBLookupCombo1KeyPress(Sender: TObject; var Key: Char); procedure wwDBLookupCombo5KeyPress(Sender: TObject; var Key: Char); procedure RxDBLookupCombo2KeyPress(Sender: TObject; var Key: Char); procedure wwDBLookupCombo4KeyPress(Sender: TObject; var Key: Char); procedure DBEdit15KeyPress(Sender: TObject; var Key: Char); procedure DBEdit14KeyPress(Sender: TObject; var Key: Char); procedure DBEdit16KeyPress(Sender: TObject; var Key: Char); procedure wwDBLookupCombo3KeyPress(Sender: TObject; var Key: Char); procedure DBEdit18KeyPress(Sender: TObject; var Key: Char); procedure RxDBLookupCombo2Enter(Sender: TObject); procedure wwDBLookupCombo3Change(Sender: TObject); procedure DBEdit12KeyPress(Sender: TObject; var Key: Char); procedure DBEdit20Change(Sender: TObject); procedure DBEdit24Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_fee_modify: Tfrm_fee_modify; frm_fee_modify_ok:boolean; implementation uses u_main, u_data_share, my_sys_function, u_fee; {$R *.dfm} procedure Tfrm_fee_modify.FormCreate(Sender: TObject); begin frm_fee_modify_ok:=false; end; procedure Tfrm_fee_modify.bsSkinButton1Click(Sender: TObject); var OldAmt,Amt:double; begin if DBEdit10.Text='' then begin showmessage('请输入申请修改原因!!'); exit; end; if DBEdit24.Text='' then begin showmessage('税率不能为空,可以为0!!'); exit; end; if DBEdit16.Text='' then begin showmessage('税率不能为空,可以为0!!'); exit; end; try shenmodify:=True; if table_new1.DataSet.State=dsedit then table_new1.DataSet.post; if not strtobool(get_parameters_value(227,'false')) then begin modify_all:=true; table1.DataSet.Edit; table1.DataSet['费用状态']:='申请修改'; table1.DataSet.post; end else begin OldAmt:=table_old1.DataSet.FieldByName('金额').AsFloat*table_old1.DataSet.FieldByName('汇率').AsFloat; Amt:=table_new1.DataSet.FieldByName('金额').AsFloat*table_new1.DataSet.FieldByName('汇率').AsFloat; if table_old1.DataSet.FieldByName('类型').AsString='收' then begin if Amt>=OldAmt then begin modify_all:=true; table1.DataSet.edit; table1.DataSet['费用名称']:=table_new1.DataSet['费用名称']; table1.DataSet['结算单位']:=table_new1.DataSet['结算单位']; table1.DataSet['客户名称']:=table_new1.DataSet['客户名称']; table1.DataSet['标准']:=table_new1.DataSet['标准']; table1.DataSet['单价']:=table_new1.DataSet['单价']; table1.DataSet['数量']:=table_new1.DataSet['数量']; table1.DataSet['金额']:=table_new1.DataSet['金额']; table1.DataSet['币别']:=table_new1.DataSet['币别']; table1.DataSet['汇率']:=table_new1.DataSet['汇率']; table1.DataSet['不含税价']:=table_new1.DataSet['不含税价']; table1.DataSet['税率']:=table_new1.DataSet['税率']; table1.DataSet['税额']:=table_new1.DataSet['税额']; table1.DataSet['不含税金额']:=table_new1.DataSet['不含税金额']; table1.DataSet['财务税率']:=table_new1.DataSet['财务税率']; table1.DataSet['财务税额']:=table_new1.DataSet['财务税额']; table1.DataSet['财务不含税价']:=table_new1.DataSet['财务不含税价']; table1.DataSet['是否垫付']:=table_new1.DataSet['是否垫付']; table1.DataSet['备注']:=table_new1.DataSet['备注']; table1.DataSet['审核人']:=table_new1.DataSet['审核人']; table1.DataSet['费用状态']:='审核通过'; //'审核通过'; table1.DataSet['旧状态']:='申请修改'; table1.DataSet['审核日期']:=now; table1.DataSet.Post; table1.DataSet.Refresh; table_new1.DataSet.Edit; table_new1.DataSet['申请状态']:='批准申请'; table_new1.DataSet['审核人']:=employee; table_new1.DataSet['审核日期']:=now; table_new1.DataSet.post; end else begin modify_all:=true; table1.DataSet.Edit; table1.DataSet['费用状态']:='申请修改'; table1.DataSet.post; end; end else begin if Amt>=OldAmt then begin modify_all:=true; table1.DataSet.Edit; table1.DataSet['费用状态']:='申请修改'; table1.DataSet.post; end else begin modify_all:=true; table1.DataSet.edit; table1.DataSet['费用名称']:=table_new1.DataSet['费用名称']; table1.DataSet['结算单位']:=table_new1.DataSet['结算单位']; table1.DataSet['客户名称']:=table_new1.DataSet['客户名称']; table1.DataSet['标准']:=table_new1.DataSet['标准']; table1.DataSet['单价']:=table_new1.DataSet['单价']; table1.DataSet['数量']:=table_new1.DataSet['数量']; table1.DataSet['金额']:=table_new1.DataSet['金额']; table1.DataSet['币别']:=table_new1.DataSet['币别']; table1.DataSet['汇率']:=table_new1.DataSet['汇率']; table1.DataSet['不含税价']:=table_new1.DataSet['不含税价']; table1.DataSet['税率']:=table_new1.DataSet['税率']; table1.DataSet['税额']:=table_new1.DataSet['税额']; table1.DataSet['不含税金额']:=table_new1.DataSet['不含税金额']; table1.DataSet['财务税率']:=table_new1.DataSet['财务税率']; table1.DataSet['财务税额']:=table_new1.DataSet['财务税额']; table1.DataSet['财务不含税价']:=table_new1.DataSet['财务不含税价']; table1.DataSet['是否垫付']:=table_new1.DataSet['是否垫付']; table1.DataSet['备注']:=table_new1.DataSet['备注']; table1.DataSet['审核人']:=table_new1.DataSet['审核人']; table1.DataSet['费用状态']:='审核通过'; //'审核通过'; table1.DataSet['旧状态']:='申请修改'; table1.DataSet['审核日期']:=now; table1.DataSet.Post; table1.DataSet.Refresh; table_new1.DataSet.Edit; table_new1.DataSet['申请状态']:='批准申请'; table_new1.DataSet['审核人']:=employee; table_new1.DataSet['审核日期']:=now; table_new1.DataSet.post; end; end; end; finally if table1.DataSet.State=DsEdit then table1.DataSet.Cancel; frm_fee_modify_ok:=true; close; shenmodify:=false; END; end; procedure Tfrm_fee_modify.bsSkinButton2Click(Sender: TObject); begin close; end; procedure Tfrm_fee_modify.FormClose(Sender: TObject; var Action: TCloseAction); begin if not frm_fee_modify_ok then begin table_new1.DataSet.delete; table_old1.DataSet.delete; end; end; procedure Tfrm_fee_modify.wwDBLookupCombo5Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin if not wwDBLookupCombo5.LookupTable.IsEmpty then if wwDBLookupCombo5.LookupTable.Locate('one',wwDBLookupCombo5.text,[])then begin table_new1.DataSet['客户名称']:=wwDBLookupCombo5.LookupTable.fieldbyname('three').asstring; end; end; end; procedure Tfrm_fee_modify.wwDBLookupCombo4Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin if not wwDBLookupCombo4.LookupTable.IsEmpty then if wwDBLookupCombo4.LookupTable.Locate('one',wwDBLookupCombo4.text,[])then begin table_new1.DataSet['数量']:=wwDBLookupCombo4.LookupTable.fieldbyname('three').asfloat; end; end; end; procedure Tfrm_fee_modify.DBEdit14Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin try DBEdit20.OnChange:=nil; DBEdit24.OnChange:=nil; table_new1.DataSet.fieldbyname('单价').asfloat:=strtofloat(DBEdit14.text)*strtofloat(DBEdit16.text)/100+strtofloat(DBEdit14.text); if (strtofloat(DBEdit15.text)>0) and (strtofloat(DBEdit20.text)>0)then table_new1.DataSet['金额']:=s_w(strtoint(get_parameters_value(65,'2')),strtofloat(DBEdit15.text)*strtofloat(DBEdit20.text)); table_new1.DataSet.fieldbyname('财务税额').asfloat:=s_w(strtoint(apointnum),table_new1.DataSet.fieldbyname('金额').asfloat/(1+table_new1.DataSet.fieldbyname('财务税率').asfloat/100)*table_new1.DataSet.fieldbyname('财务税率').asfloat/100); table_new1.DataSet.fieldbyname('财务不含税价').asfloat:=table_new1.DataSet.fieldbyname('金额').asfloat-table_new1.DataSet.fieldbyname('财务税额').asfloat; table_new1.DataSet['税额']:=s_w(strtoint(apointnum),strtofloat(DBEdit14.text)*strtofloat(DBEdit16.text)/100*strtofloat(DBEdit15.text)); table_new1.DataSet['不含税金额']:=s_w(strtoint(apointnum),strtofloat(DBEdit14.text)*strtofloat(DBEdit15.text)); finally DBEdit20.OnChange:=DBEdit20Change; DBEdit24.OnChange:=DBEdit24Change; end; end; end; procedure Tfrm_fee_modify.RxDBLookupCombo1KeyPress(Sender: TObject; var Key: Char); begin key_wwDBLookupCombo(Key,wwDBLookupCombo5); end; procedure Tfrm_fee_modify.wwDBLookupCombo5KeyPress(Sender: TObject; var Key: Char); begin key_RxDBLookupCombo(Key,RxDBLookupCombo2); end; procedure Tfrm_fee_modify.RxDBLookupCombo2KeyPress(Sender: TObject; var Key: Char); begin key_wwDBLookupCombo(Key,wwDBLookupCombo4); end; procedure Tfrm_fee_modify.wwDBLookupCombo4KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit15); end; procedure Tfrm_fee_modify.DBEdit15KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit14); end; procedure Tfrm_fee_modify.DBEdit14KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit16); end; procedure Tfrm_fee_modify.DBEdit16KeyPress(Sender: TObject; var Key: Char); begin key_wwDBLookupCombo(Key,wwDBLookupCombo3); end; procedure Tfrm_fee_modify.wwDBLookupCombo3KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if (table_new1.DataSet.State=dsedit)or(table_new1.DataSet.State=dsinsert) then begin try if frm_data_share.t_code_currency.locate('币别',wwDBLookupCombo3.Text,[]) then table_new1.DataSet['汇率']:=frm_data_share.t_code_currency.FieldByName('汇率').asfloat; except ; end; end; end; key_DBEdit(Key,DBEdit18); end; procedure Tfrm_fee_modify.DBEdit18KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit12); end; procedure Tfrm_fee_modify.RxDBLookupCombo2Enter(Sender: TObject); begin if table_new1.DataSet.FieldByName('结算单位').asstring<>''then client_filtered(table_new1.DataSet.FieldByName('结算单位').asstring); end; procedure Tfrm_fee_modify.wwDBLookupCombo3Change(Sender: TObject); begin if (table_new1.DataSet.State=dsedit)or(table_new1.DataSet.State=dsinsert) then begin try if frm_data_share.t_code_currency.locate('币别',wwDBLookupCombo3.Text,[]) then table_new1.DataSet['汇率']:=frm_data_share.t_code_currency.FieldByName('汇率').asfloat; except ; end; end; end; procedure Tfrm_fee_modify.DBEdit12KeyPress(Sender: TObject; var Key: Char); begin key_DBEdit(Key,DBEdit10); end; procedure Tfrm_fee_modify.DBEdit20Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin try DBEdit14.OnChange:=nil; DBEdit15.OnChange:=nil; DBEdit16.OnChange:=nil; DBEdit21.OnChange:=nil; if (strtofloat(DBEdit15.text)>0) and (strtofloat(DBEdit20.text)>0)then table_new1.DataSet['金额']:=s_w(strtoint(get_parameters_value(65,'2')),strtofloat(DBEdit15.text)*strtofloat(DBEdit20.text)); table_new1.DataSet.fieldbyname('财务税额').asfloat:=s_w(strtoint(apointnum),table_new1.DataSet.fieldbyname('金额').asfloat/(1+table_new1.DataSet.fieldbyname('财务税率').asfloat/100)*table_new1.DataSet.fieldbyname('财务税率').asfloat/100); table_new1.DataSet['不含税价']:=s_w(strtoint(apointnum),strtofloat(DBEdit20.text)/(1+table_new1.DataSet.fieldbyname('税率').asfloat/100)); table_new1.DataSet.fieldbyname('财务不含税价').asfloat:=table_new1.DataSet.fieldbyname('金额').asfloat-table_new1.DataSet.fieldbyname('财务税额').asfloat; table_new1.DataSet['税额']:=s_w(strtoint(apointnum),strtofloat(DBEdit14.text)*strtofloat(DBEdit16.text)/100*strtofloat(DBEdit15.text)); table_new1.DataSet['不含税金额']:=s_w(strtoint(apointnum),strtofloat(DBEdit14.text)*strtofloat(DBEdit15.text)); finally DBEdit14.OnChange:=DBEdit14Change; DBEdit15.OnChange:=DBEdit14Change; DBEdit16.OnChange:=DBEdit14Change; DBEdit21.OnChange:=DBEdit14Change; end; end; end; procedure Tfrm_fee_modify.DBEdit24Change(Sender: TObject); begin if (table_new1.DataSet.state=dsinsert)or(table_new1.DataSet.state=dsedit) then begin try DBEdit14.OnChange:=nil; DBEdit15.OnChange:=nil; DBEdit16.OnChange:=nil; DBEdit20.OnChange:=nil; DBEdit21.OnChange:=nil; table_new1.DataSet.fieldbyname('财务税额').asfloat:=s_w(strtoint(apointnum),table_new1.DataSet.fieldbyname('金额').asfloat/(1+strtofloat(DBEdit24.text)/100)*strtofloat(DBEdit24.text)/100); table_new1.DataSet.fieldbyname('财务不含税价').asfloat:=s_w(strtoint(apointnum),table_new1.DataSet.fieldbyname('金额').asfloat-table_new1.DataSet.fieldbyname('财务税额').asfloat) finally DBEdit14.OnChange:=DBEdit14Change; DBEdit15.OnChange:=DBEdit14Change; DBEdit16.OnChange:=DBEdit14Change; DBEdit20.OnChange:=DBEdit20Change; DBEdit21.OnChange:=DBEdit14Change; end; end; end; end.