{$INCLUDE t_main.inc}
unit u_ch_invoice_jk;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, bsSkinTabs, bsSkinCtrls, DB, ADODB, dxExEdtr,CommCtrl,
dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxDBTLCl, dxGrClms, wwdblook,
StdCtrls, DBCtrls, RxLookup, bsdbctrls, Mask, wwdbdatetimepicker,
ExtCtrls, Menus, XPMenu, u_ch_add_do, u_ch_delete_do, wwdbedit, Wwdotdot,
Wwdbcomb, DBCtrlsEh, kbmMemTable, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxCurrencyEdit,
cxNavigator, cxDBNavigator, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, Grids, Wwdbigrd, Wwdbgrid,superobject,IdHTTP;
type
Tfrm_ch_invoice_jk = class(TForm)
bsSkinPageControl1: TbsSkinPageControl;
bsSkinTabSheet1: TbsSkinTabSheet;
bsSkinTabSheet2: TbsSkinTabSheet;
bsSkinTabSheet3: TbsSkinTabSheet;
bsSkinPanel2: TbsSkinPanel;
bsSkinButton5: TbsSkinButton;
bsSkinButton9: TbsSkinButton;
bsSkinButton10: TbsSkinButton;
bsSkinButton3: TbsSkinButton;
bsSkinButton1: TbsSkinButton;
t_ch_invoice_shen: TADOQuery;
t_ch_invoice_shen1: TDataSource;
v_fee_do_seae: TADOQuery;
v_fee_do_seae1: TDataSource;
t_ch_invoice: TADOQuery;
t_ch_invoice1: TDataSource;
bsSkinButton2: TbsSkinButton;
bsSkinButton6: TbsSkinButton;
bsSkinButton7: TbsSkinButton;
bsSkinButton8: TbsSkinButton;
bsSkinPanel1: TbsSkinPanel;
bsSkinButton4: TbsSkinButton;
bsSkinButton11: TbsSkinButton;
bsSkinButton12: TbsSkinButton;
bsSkinButton13: TbsSkinButton;
bsSkinButton14: TbsSkinButton;
bsSkinButton16: TbsSkinButton;
bsSkinButton17: TbsSkinButton;
bsSkinButton18: TbsSkinButton;
bsSkinButton19: TbsSkinButton;
bsSkinPanel3: TbsSkinPanel;
bsSkinButton21: TbsSkinButton;
bsSkinButton23: TbsSkinButton;
bsSkinButton24: TbsSkinButton;
bsSkinButton25: TbsSkinButton;
bsSkinButton26: TbsSkinButton;
bsSkinButton30: TbsSkinButton;
bsSkinPageControl2: TbsSkinPageControl;
bsSkinTabSheet11: TbsSkinTabSheet;
bsSkinTabSheet22: TbsSkinTabSheet;
dxDBGrid2: TdxDBGrid;
dxDBGridMaskColumn1: TdxDBGridMaskColumn;
dxDBGridMaskColumn2: TdxDBGridMaskColumn;
dxDBGridMaskColumn3: TdxDBGridMaskColumn;
dxDBGridMaskColumn4: TdxDBGridMaskColumn;
dxDBGridMaskColumn5: TdxDBGridMaskColumn;
dxDBGridMaskColumn6: TdxDBGridMaskColumn;
dxDBGridMaskColumn7: TdxDBGridMaskColumn;
dxDBGridDateColumn1: TdxDBGridDateColumn;
dxDBGridMaskColumn8: TdxDBGridMaskColumn;
dxDBGridMaskColumn9: TdxDBGridMaskColumn;
dxDBGridMaskColumn10: TdxDBGridMaskColumn;
dxDBGridMaskColumn11: TdxDBGridMaskColumn;
dxDBGridMaskColumn12: TdxDBGridMaskColumn;
dxDBGridColumn1: TdxDBGridColumn;
dxDBGridColumn2: TdxDBGridColumn;
dxDBGridColumn3: TdxDBGridColumn;
dxDBGridColumn4: TdxDBGridColumn;
dxDBGrid1Column18: TdxDBGridMaskColumn;
dxDBGridMaskColumn13: TdxDBGridMaskColumn;
dxDBGridDateColumn2: TdxDBGridDateColumn;
dxDBGridMaskColumn14: TdxDBGridMaskColumn;
dxDBGridDateColumn3: TdxDBGridDateColumn;
dxDBGridMaskColumn15: TdxDBGridMaskColumn;
dxDBGridDateColumn4: TdxDBGridDateColumn;
bsSkinButton28: TbsSkinButton;
bsSkinButton29: TbsSkinButton;
bsSkinPageControl3: TbsSkinPageControl;
bsSkinTabSheet4: TbsSkinTabSheet;
dxDBGrid3: TdxDBGrid;
dxDBGridMaskColumn16: TdxDBGridMaskColumn;
dxDBGridMaskColumn17: TdxDBGridMaskColumn;
dxDBGridMaskColumn18: TdxDBGridMaskColumn;
dxDBGridMaskColumn19: TdxDBGridMaskColumn;
dxDBGridMaskColumn20: TdxDBGridMaskColumn;
dxDBGridColumn5: TdxDBGridColumn;
dxDBGridColumn6: TdxDBGridColumn;
dxDBGridMaskColumn21: TdxDBGridMaskColumn;
dxDBGridDateColumn5: TdxDBGridDateColumn;
dxDBGridDateColumn6: TdxDBGridDateColumn;
dxDBGridMaskColumn22: TdxDBGridMaskColumn;
dxDBGridMaskColumn23: TdxDBGridMaskColumn;
dxDBGridMaskColumn24: TdxDBGridMaskColumn;
dxDBGridMaskColumn25: TdxDBGridMaskColumn;
dxDBGridMaskColumn26: TdxDBGridMaskColumn;
dxDBGridColumn7: TdxDBGridColumn;
dxDBGridColumn8: TdxDBGridColumn;
dxDBGridMaskColumn27: TdxDBGridMaskColumn;
dxDBGridMaskColumn28: TdxDBGridMaskColumn;
dxDBGridMaskColumn29: TdxDBGridMaskColumn;
dxDBGridMaskColumn30: TdxDBGridMaskColumn;
bsSkinTabSheet5: TbsSkinTabSheet;
bsSkinTabSheet6: TbsSkinTabSheet;
bsSkinTabSheet7: TbsSkinTabSheet;
bsSkinPanel7: TbsSkinPanel;
Label54: TLabel;
DBEdit16: TDBEdit;
Label21: TLabel;
DBEdit12: TDBEdit;
Label57: TLabel;
DBEdit17: TDBEdit;
Label59: TLabel;
DBEdit18: TDBEdit;
Label63: TLabel;
RxDBLookupCombo3: TRxDBLookupCombo;
PopupMenu2: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N20: TMenuItem;
bsSkinButton31: TbsSkinButton;
XPMenu1: TXPMenu;
v_fee_do_seai: TADOQuery;
v_fee_do_seai1: TDataSource;
dxDBGrid4: TdxDBGrid;
dxDBGridMaskColumn31: TdxDBGridMaskColumn;
dxDBGridMaskColumn32: TdxDBGridMaskColumn;
dxDBGridMaskColumn33: TdxDBGridMaskColumn;
dxDBGridMaskColumn34: TdxDBGridMaskColumn;
dxDBGridMaskColumn35: TdxDBGridMaskColumn;
dxDBGridColumn9: TdxDBGridColumn;
dxDBGridColumn10: TdxDBGridColumn;
dxDBGridMaskColumn36: TdxDBGridMaskColumn;
dxDBGridDateColumn7: TdxDBGridDateColumn;
dxDBGridDateColumn8: TdxDBGridDateColumn;
dxDBGridMaskColumn37: TdxDBGridMaskColumn;
dxDBGridMaskColumn38: TdxDBGridMaskColumn;
dxDBGridMaskColumn39: TdxDBGridMaskColumn;
dxDBGridMaskColumn40: TdxDBGridMaskColumn;
dxDBGridMaskColumn41: TdxDBGridMaskColumn;
dxDBGridColumn11: TdxDBGridColumn;
dxDBGridColumn12: TdxDBGridColumn;
dxDBGridMaskColumn42: TdxDBGridMaskColumn;
dxDBGridMaskColumn43: TdxDBGridMaskColumn;
dxDBGridMaskColumn44: TdxDBGridMaskColumn;
dxDBGridMaskColumn45: TdxDBGridMaskColumn;
N3: TMenuItem;
N4: TMenuItem;
v_fee_do_aire: TADOQuery;
v_fee_do_aire1: TDataSource;
v_fee_do_airi: TADOQuery;
v_fee_do_airi1: TDataSource;
dxDBGrid5: TdxDBGrid;
dxDBGridMaskColumn46: TdxDBGridMaskColumn;
dxDBGridMaskColumn47: TdxDBGridMaskColumn;
dxDBGridMaskColumn48: TdxDBGridMaskColumn;
dxDBGridMaskColumn49: TdxDBGridMaskColumn;
dxDBGridMaskColumn50: TdxDBGridMaskColumn;
dxDBGridColumn13: TdxDBGridColumn;
dxDBGridColumn14: TdxDBGridColumn;
dxDBGridMaskColumn51: TdxDBGridMaskColumn;
dxDBGridDateColumn9: TdxDBGridDateColumn;
dxDBGridDateColumn10: TdxDBGridDateColumn;
dxDBGridMaskColumn52: TdxDBGridMaskColumn;
dxDBGridMaskColumn53: TdxDBGridMaskColumn;
dxDBGridMaskColumn54: TdxDBGridMaskColumn;
dxDBGridColumn15: TdxDBGridColumn;
dxDBGridColumn16: TdxDBGridColumn;
dxDBGridMaskColumn55: TdxDBGridMaskColumn;
dxDBGridMaskColumn56: TdxDBGridMaskColumn;
dxDBGridMaskColumn57: TdxDBGridMaskColumn;
dxDBGrid6: TdxDBGrid;
dxDBGridMaskColumn58: TdxDBGridMaskColumn;
dxDBGridMaskColumn59: TdxDBGridMaskColumn;
dxDBGridMaskColumn60: TdxDBGridMaskColumn;
dxDBGridMaskColumn61: TdxDBGridMaskColumn;
dxDBGridMaskColumn62: TdxDBGridMaskColumn;
dxDBGridColumn17: TdxDBGridColumn;
dxDBGridColumn18: TdxDBGridColumn;
dxDBGridMaskColumn63: TdxDBGridMaskColumn;
dxDBGridDateColumn11: TdxDBGridDateColumn;
dxDBGridDateColumn12: TdxDBGridDateColumn;
dxDBGridMaskColumn64: TdxDBGridMaskColumn;
dxDBGridMaskColumn65: TdxDBGridMaskColumn;
dxDBGridMaskColumn66: TdxDBGridMaskColumn;
dxDBGridColumn19: TdxDBGridColumn;
dxDBGridColumn20: TdxDBGridColumn;
dxDBGridMaskColumn67: TdxDBGridMaskColumn;
dxDBGridMaskColumn68: TdxDBGridMaskColumn;
dxDBGridMaskColumn69: TdxDBGridMaskColumn;
PopupMenu1: TPopupMenu;
N10: TMenuItem;
N11: TMenuItem;
N14: TMenuItem;
N13: TMenuItem;
N12: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
bsSkinButton22: TbsSkinButton;
bsSkinButton27: TbsSkinButton;
bsSkinButton32: TbsSkinButton;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
ADOQuery3: TADOQuery;
DataSource3: TDataSource;
ADOQuery4: TADOQuery;
DataSource4: TDataSource;
PopupMenu3: TPopupMenu;
N17: TMenuItem;
N18: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
MenuItem1: TMenuItem;
N6: TMenuItem;
N5: TMenuItem;
MenuItem2: TMenuItem;
bsSkinPanel4: TbsSkinPanel;
Label1: TLabel;
Label4: TLabel;
Label7: TLabel;
Label13: TLabel;
Label2: TLabel;
Label5: TLabel;
Label8: TLabel;
Label14: TLabel;
Label9: TLabel;
Label3: TLabel;
Label6: TLabel;
Label10: TLabel;
Label11: TLabel;
Label16: TLabel;
Label15: TLabel;
bsSkinPanel5: TbsSkinPanel;
Label25: TLabel;
Label17: TLabel;
Label18: TLabel;
Label20: TLabel;
Label19: TLabel;
Label12: TLabel;
Label64: TLabel;
Label65: TLabel;
DBEdit14: TDBEdit;
DBEdit1: TDBEdit;
DBEdit5: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBMemo1: TDBMemo;
DBEdit6: TDBEdit;
DBEdit9: TDBEdit;
DBMemo2: TDBMemo;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit20: TDBEdit;
DBEdit21: TDBEdit;
DBMemo3: TDBMemo;
DBEdit22: TDBEdit;
DBEdit23: TDBEdit;
DBEdit24: TDBEdit;
DBEdit25: TDBEdit;
DBEdit26: TDBEdit;
DBEdit28: TDBEdit;
dxDBGrid2Column25: TdxDBGridColumn;
dxDBGrid2Column26: TdxDBGridColumn;
dxDBGrid3Column22: TdxDBGridColumn;
dxDBGrid4Column22: TdxDBGridColumn;
dxDBGrid5Column19: TdxDBGridColumn;
dxDBGrid6Column19: TdxDBGridColumn;
t_ch_invoice_head: TADOQuery;
t_ch_invoice_head1: TDataSource;
dxDBGrid3Column23: TdxDBGridColumn;
dxDBGrid6Column20: TdxDBGridColumn;
dxDBGrid5Column20: TdxDBGridColumn;
dxDBGrid4Column23: TdxDBGridColumn;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N19: TMenuItem;
bsSkinNotebook1: TbsSkinNotebook;
dxDBGrid1: TdxDBGrid;
dxDBGrid1Column1: TdxDBGridMaskColumn;
dxDBGrid1Column38: TdxDBGridCheckColumn;
dxDBGrid1Column2: TdxDBGridMaskColumn;
dxDBGrid1Column3: TdxDBGridMaskColumn;
dxDBGrid1Column4: TdxDBGridMaskColumn;
dxDBGrid1Column5: TdxDBGridDateColumn;
dxDBGrid1Column6: TdxDBGridMaskColumn;
dxDBGrid1Column7: TdxDBGridMaskColumn;
dxDBGrid1Column8: TdxDBGridMaskColumn;
dxDBGrid1Column9: TdxDBGridMaskColumn;
dxDBGrid1Column10: TdxDBGridDateColumn;
dxDBGrid1Column11: TdxDBGridMaskColumn;
dxDBGrid1Column12: TdxDBGridMaskColumn;
dxDBGrid1Column13: TdxDBGridMaskColumn;
dxDBGrid1Column14: TdxDBGridMaskColumn;
dxDBGrid1Column15: TdxDBGridMaskColumn;
dxDBGrid1Column16: TdxDBGridMaskColumn;
dxDBGrid1Column17: TdxDBGridMaskColumn;
dxDBGrid1Column37: TdxDBGridColumn;
dxDBGrid1Column19: TdxDBGridColumn;
dxDBGrid1Column20: TdxDBGridColumn;
dxDBGrid1Column21: TdxDBGridColumn;
dxDBGrid1Column22: TdxDBGridMaskColumn;
dxDBGrid1Column23: TdxDBGridMaskColumn;
dxDBGrid1Column24: TdxDBGridMaskColumn;
dxDBGrid1Column25: TdxDBGridCheckColumn;
dxDBGrid1Column26: TdxDBGridMaskColumn;
dxDBGrid1Column27: TdxDBGridDateColumn;
dxDBGrid1Column28: TdxDBGridMaskColumn;
dxDBGrid1Column32: TdxDBGridCheckColumn;
dxDBGrid1Column29: TdxDBGridCheckColumn;
dxDBGrid1Column30: TdxDBGridMaskColumn;
dxDBGrid1Column35: TdxDBGridMaskColumn;
dxDBGrid1Column36: TdxDBGridDateColumn;
dxDBGrid1Column31: TdxDBGridMaskColumn;
dxDBGrid1Column33: TdxDBGridMaskColumn;
dxDBGrid1Column34: TdxDBGridDateColumn;
bsSkinPageControl4: TbsSkinPageControl;
pagesheet2: TbsSkinTabSheet;
bsSkinPageControl5: TbsSkinPageControl;
bsSkinTabSheet8: TbsSkinTabSheet;
dxDBGrid7: TdxDBGrid;
dxDBGridMaskColumn70: TdxDBGridMaskColumn;
dxDBGridMaskColumn71: TdxDBGridMaskColumn;
dxDBGridMaskColumn72: TdxDBGridMaskColumn;
dxDBGridMaskColumn73: TdxDBGridMaskColumn;
dxDBGridMaskColumn74: TdxDBGridMaskColumn;
dxDBGridColumn21: TdxDBGridColumn;
dxDBGrid7Column23: TdxDBGridColumn;
dxDBGridColumn22: TdxDBGridColumn;
dxDBGridMaskColumn75: TdxDBGridMaskColumn;
dxDBGrid7Column22: TdxDBGridColumn;
dxDBGridDateColumn13: TdxDBGridDateColumn;
dxDBGridDateColumn14: TdxDBGridDateColumn;
dxDBGridMaskColumn76: TdxDBGridMaskColumn;
dxDBGridMaskColumn77: TdxDBGridMaskColumn;
dxDBGridMaskColumn78: TdxDBGridMaskColumn;
dxDBGridMaskColumn79: TdxDBGridMaskColumn;
dxDBGridMaskColumn80: TdxDBGridMaskColumn;
dxDBGridColumn23: TdxDBGridColumn;
dxDBGridColumn24: TdxDBGridColumn;
dxDBGridMaskColumn81: TdxDBGridMaskColumn;
dxDBGridMaskColumn82: TdxDBGridMaskColumn;
dxDBGridMaskColumn83: TdxDBGridMaskColumn;
dxDBGridMaskColumn84: TdxDBGridMaskColumn;
bsSkinTabSheet9: TbsSkinTabSheet;
dxDBGrid8: TdxDBGrid;
dxDBGridMaskColumn85: TdxDBGridMaskColumn;
dxDBGridMaskColumn86: TdxDBGridMaskColumn;
dxDBGridMaskColumn87: TdxDBGridMaskColumn;
dxDBGridMaskColumn88: TdxDBGridMaskColumn;
dxDBGridMaskColumn89: TdxDBGridMaskColumn;
dxDBGridColumn25: TdxDBGridColumn;
dxDBGrid8Column23: TdxDBGridColumn;
dxDBGridColumn26: TdxDBGridColumn;
dxDBGridMaskColumn90: TdxDBGridMaskColumn;
dxDBGrid8Column22: TdxDBGridColumn;
dxDBGridDateColumn15: TdxDBGridDateColumn;
dxDBGridDateColumn16: TdxDBGridDateColumn;
dxDBGridMaskColumn91: TdxDBGridMaskColumn;
dxDBGridMaskColumn92: TdxDBGridMaskColumn;
dxDBGridMaskColumn93: TdxDBGridMaskColumn;
dxDBGridMaskColumn94: TdxDBGridMaskColumn;
dxDBGridMaskColumn95: TdxDBGridMaskColumn;
dxDBGridColumn27: TdxDBGridColumn;
dxDBGridColumn28: TdxDBGridColumn;
dxDBGridMaskColumn96: TdxDBGridMaskColumn;
dxDBGridMaskColumn97: TdxDBGridMaskColumn;
dxDBGridMaskColumn98: TdxDBGridMaskColumn;
dxDBGridMaskColumn99: TdxDBGridMaskColumn;
bsSkinTabSheet10: TbsSkinTabSheet;
dxDBGrid9: TdxDBGrid;
dxDBGridMaskColumn100: TdxDBGridMaskColumn;
dxDBGridMaskColumn101: TdxDBGridMaskColumn;
dxDBGridMaskColumn102: TdxDBGridMaskColumn;
dxDBGridMaskColumn103: TdxDBGridMaskColumn;
dxDBGridMaskColumn104: TdxDBGridMaskColumn;
dxDBGridColumn29: TdxDBGridColumn;
dxDBGrid9Column20: TdxDBGridColumn;
dxDBGridColumn30: TdxDBGridColumn;
dxDBGridMaskColumn105: TdxDBGridMaskColumn;
dxDBGrid9Column19: TdxDBGridColumn;
dxDBGridDateColumn17: TdxDBGridDateColumn;
dxDBGridDateColumn18: TdxDBGridDateColumn;
dxDBGridMaskColumn106: TdxDBGridMaskColumn;
dxDBGridMaskColumn107: TdxDBGridMaskColumn;
dxDBGridMaskColumn108: TdxDBGridMaskColumn;
dxDBGridColumn31: TdxDBGridColumn;
dxDBGridColumn32: TdxDBGridColumn;
dxDBGridMaskColumn109: TdxDBGridMaskColumn;
dxDBGridMaskColumn110: TdxDBGridMaskColumn;
dxDBGridMaskColumn111: TdxDBGridMaskColumn;
bsSkinTabSheet12: TbsSkinTabSheet;
dxDBGrid10: TdxDBGrid;
dxDBGridMaskColumn112: TdxDBGridMaskColumn;
dxDBGridMaskColumn113: TdxDBGridMaskColumn;
dxDBGridMaskColumn114: TdxDBGridMaskColumn;
dxDBGridMaskColumn115: TdxDBGridMaskColumn;
dxDBGridMaskColumn116: TdxDBGridMaskColumn;
dxDBGridColumn33: TdxDBGridColumn;
dxDBGrid10Column20: TdxDBGridColumn;
dxDBGridColumn34: TdxDBGridColumn;
dxDBGridMaskColumn117: TdxDBGridMaskColumn;
dxDBGrid10Column19: TdxDBGridColumn;
dxDBGridDateColumn19: TdxDBGridDateColumn;
dxDBGridDateColumn20: TdxDBGridDateColumn;
dxDBGridMaskColumn118: TdxDBGridMaskColumn;
dxDBGridMaskColumn119: TdxDBGridMaskColumn;
dxDBGridMaskColumn120: TdxDBGridMaskColumn;
dxDBGridColumn35: TdxDBGridColumn;
dxDBGridColumn36: TdxDBGridColumn;
dxDBGridMaskColumn121: TdxDBGridMaskColumn;
dxDBGridMaskColumn122: TdxDBGridMaskColumn;
dxDBGridMaskColumn123: TdxDBGridMaskColumn;
bsSkinPageControl6: TbsSkinPageControl;
bstab1: TbsSkinTabSheet;
bstab2: TbsSkinTabSheet;
s_invoice: TScrollBox;
Label27: TLabel;
Label29: TLabel;
Label31: TLabel;
Label33: TLabel;
Label35: TLabel;
Label37: TLabel;
Label39: TLabel;
Label41: TLabel;
Label46: TLabel;
Label47: TLabel;
Label48: TLabel;
Label49: TLabel;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
Label55: TLabel;
Label56: TLabel;
Label58: TLabel;
Label60: TLabel;
Label61: TLabel;
Label62: TLabel;
Label24: TLabel;
Label26: TLabel;
Label66: TLabel;
wwDBDateTimePicker1: TwwDBDateTimePicker;
DE_ShipName: TDBEdit;
DE_BLNO: TDBEdit;
wwDBDateTimePicker2: TwwDBDateTimePicker;
DM: TDBMemo;
DE_SumUpper: TDBEdit;
DBSumLower: TDBEdit;
DE_BusnessNo: TDBEdit;
DE_TaxNo: TDBEdit;
DE_Maker: TDBEdit;
wwDBDateTimePicker3: TwwDBDateTimePicker;
wwDBLookupCombo6: TwwDBLookupCombo;
wwDBLookupCombo7: TwwDBLookupCombo;
DBCheckBox3: TDBCheckBox;
wwDBLookupCombo10: TwwDBLookupCombo;
wwDBLookupCombo11: TwwDBLookupCombo;
wwDBLookupCombo12: TwwDBLookupCombo;
RxDBLookupCombo2: TRxDBLookupCombo;
DBEdit27: TDBEdit;
bsSkinPanel6: TbsSkinPanel;
Label22: TLabel;
Label23: TLabel;
DBEdit13: TDBEdit;
DBEdit15: TDBEdit;
bsSkinDBCheckRadioBox2: TbsSkinDBCheckRadioBox;
bsSkinDBCheckRadioBox3: TbsSkinDBCheckRadioBox;
DBEdit29: TDBEdit;
wwDBLookupCombo1: TwwDBLookupCombo;
Panel1: TPanel;
fra_ch_delete_do1: Tfra_ch_delete_do;
fra_ch_add_do1: Tfra_ch_add_do;
ComboBoxObjBsCard: TDBComboBox;
dxDBGrid1Column39: TdxDBGridColumn;
dbedt1: TDBEdit;
DBEdit19: TDBEdit;
DBEdit30: TDBEdit;
t_sys_bank: TADOQuery;
t_sys_bank1: TDataSource;
bsSkinButton38: TbsSkinButton;
bsSkinButton33: TbsSkinButton;
dxDBGrid3Column24: TdxDBGridColumn;
dxDBGrid3Column25: TdxDBGridColumn;
dxDBGrid4Column24: TdxDBGridColumn;
dxDBGrid4Column25: TdxDBGridColumn;
dxDBGrid5Column21: TdxDBGridColumn;
dxDBGrid5Column22: TdxDBGridColumn;
dxDBGrid6Column21: TdxDBGridColumn;
dxDBGrid6Column22: TdxDBGridColumn;
dxDBGrid7Column24: TdxDBGridColumn;
dxDBGrid7Column25: TdxDBGridColumn;
dxDBGrid8Column24: TdxDBGridColumn;
dxDBGrid8Column25: TdxDBGridColumn;
bsSkinButton34: TbsSkinButton;
bsSkinButton35: TbsSkinButton;
v_fee_do_bscard: TADOQuery;
v_fee_do_bscard1: TDataSource;
bsSkinTabSheet13: TbsSkinTabSheet;
dxDBGrid11: TdxDBGrid;
dxDBGridMaskColumn124: TdxDBGridMaskColumn;
dxDBGridMaskColumn125: TdxDBGridMaskColumn;
dxDBGridMaskColumn126: TdxDBGridMaskColumn;
dxDBGridMaskColumn127: TdxDBGridMaskColumn;
dxDBGridMaskColumn128: TdxDBGridMaskColumn;
dxDBGridColumn37: TdxDBGridColumn;
dxDBGridColumn38: TdxDBGridColumn;
dxDBGridColumn39: TdxDBGridColumn;
dxDBGridMaskColumn129: TdxDBGridMaskColumn;
dxDBGridColumn40: TdxDBGridColumn;
dxDBGridDateColumn21: TdxDBGridDateColumn;
dxDBGridDateColumn22: TdxDBGridDateColumn;
dxDBGridMaskColumn130: TdxDBGridMaskColumn;
dxDBGridMaskColumn131: TdxDBGridMaskColumn;
dxDBGridMaskColumn132: TdxDBGridMaskColumn;
dxDBGridMaskColumn133: TdxDBGridMaskColumn;
dxDBGridMaskColumn134: TdxDBGridMaskColumn;
dxDBGridColumn41: TdxDBGridColumn;
dxDBGridColumn42: TdxDBGridColumn;
dxDBGridMaskColumn135: TdxDBGridMaskColumn;
dxDBGridMaskColumn136: TdxDBGridMaskColumn;
dxDBGridMaskColumn137: TdxDBGridMaskColumn;
dxDBGridMaskColumn138: TdxDBGridMaskColumn;
dxDBGridColumn43: TdxDBGridColumn;
dxDBGridColumn44: TdxDBGridColumn;
dxDBGrid11Column26: TdxDBGridColumn;
bsSkinTabSheet14: TbsSkinTabSheet;
dxDBGrid12: TdxDBGrid;
dxDBGridMaskColumn139: TdxDBGridMaskColumn;
dxDBGridMaskColumn140: TdxDBGridMaskColumn;
dxDBGridMaskColumn141: TdxDBGridMaskColumn;
dxDBGridMaskColumn142: TdxDBGridMaskColumn;
dxDBGridMaskColumn143: TdxDBGridMaskColumn;
dxDBGridColumn45: TdxDBGridColumn;
dxDBGridColumn46: TdxDBGridColumn;
dxDBGridColumn47: TdxDBGridColumn;
dxDBGridColumn48: TdxDBGridColumn;
dxDBGridMaskColumn144: TdxDBGridMaskColumn;
dxDBGridColumn49: TdxDBGridColumn;
dxDBGridDateColumn23: TdxDBGridDateColumn;
dxDBGridDateColumn24: TdxDBGridDateColumn;
dxDBGridMaskColumn145: TdxDBGridMaskColumn;
dxDBGridMaskColumn146: TdxDBGridMaskColumn;
dxDBGridMaskColumn147: TdxDBGridMaskColumn;
dxDBGridMaskColumn148: TdxDBGridMaskColumn;
dxDBGridMaskColumn149: TdxDBGridMaskColumn;
dxDBGridColumn50: TdxDBGridColumn;
dxDBGridColumn51: TdxDBGridColumn;
dxDBGridColumn52: TdxDBGridColumn;
dxDBGridMaskColumn150: TdxDBGridMaskColumn;
dxDBGridMaskColumn151: TdxDBGridMaskColumn;
dxDBGridMaskColumn152: TdxDBGridMaskColumn;
dxDBGridMaskColumn153: TdxDBGridMaskColumn;
dxDBGrid12Column26: TdxDBGridColumn;
Label67: TLabel;
DBEdit31: TDBEdit;
Label68: TLabel;
DBEdit32: TDBEdit;
bsSkinButton36: TbsSkinButton;
DBCheckBox1: TDBCheckBox;
SaveDialog1: TSaveDialog;
Label70: TLabel;
DBEdit33: TDBEdit;
Label71: TLabel;
DBEdit34: TDBEdit;
bsSkinButton15: TbsSkinButton;
bsSkinButton20: TbsSkinButton;
DBComboBoxEh3: TDBComboBoxEh;
qry_UPDINV: TADOQuery;
lbl1: TLabel;
qry_getPath: TADOQuery;
kbmMemTable1: TkbmMemTable;
kbmMemTable2: TkbmMemTable;
tmr_UPDINV: TTimer;
btn1: TbsSkinButton;
edt_from: TEdit;
btn2: TbsSkinButton;
bsknpnl1_bankflow: TbsSkinPanel;
btn4_bankflow: TbsSkinButton;
dxdbgrdchckclmnDBGrid1Column40: TdxDBGridCheckColumn;
Label72: TLabel;
DBEdit35: TDBEdit;
bsSkinButton37: TbsSkinButton;
t_ch_invoice_expitem: TADOQuery;
bsSkinCheckRadioBox1: TbsSkinCheckRadioBox;
bsSkinButton39: TbsSkinButton;
t_ch_invoice_item: TADOQuery;
t_ch_invoice_item1: TDataSource;
DM_ChaCon: TDBMemo;
Label43: TLabel;
DBComboBoxEh2: TDBComboBoxEh;
Label69: TLabel;
DM_CostType: TDBMemo;
Label44: TLabel;
DM_Money: TDBMemo;
cxDBNavigator1: TcxDBNavigator;
Label28: TLabel;
DBComboBoxEh4: TDBComboBoxEh;
DBComboBoxEh5: TDBComboBoxEh;
Label73: TLabel;
Label74: TLabel;
DBComboBoxEh6: TDBComboBoxEh;
DBEdit38: TDBEdit;
Label76: TLabel;
DBEdit39: TDBEdit;
Label77: TLabel;
Label78: TLabel;
DBEdit40: TDBEdit;
wwDBComboBox8: TwwDBComboBox;
Label79: TLabel;
Label80: TLabel;
DBEdit41: TDBEdit;
Label81: TLabel;
DBEdit42: TDBEdit;
wwDBGrid2: TwwDBGrid;
wwDBLookupCombo2: TwwDBLookupCombo;
Label30: TLabel;
DBComboBoxEh7: TDBComboBoxEh;
Label32: TLabel;
DBEdit43: TDBEdit;
DBEdit44: TDBEdit;
Label34: TLabel;
bsSkinButton40: TbsSkinButton;
Label38: TLabel;
wwDBLookupCombo3: TwwDBLookupCombo;
DBComboBoxEh8: TDBComboBoxEh;
Label40: TLabel;
bsSkinButton41: TbsSkinButton;
bsSkinButton42: TbsSkinButton;
Label45: TLabel;
DBComboBoxEh9: TDBComboBoxEh;
t_crm_client_Invoice: TADOQuery;
t_crm_client_Invoice1: TDataSource;
RxDBLookupCombo1: TRxDBLookupCombo;
DBComboBoxEh1: TDBComboBoxEh;
bsSkinButton43: TbsSkinButton;
bsSkinButton44: TbsSkinButton;
bsSkinButton45: TbsSkinButton;
bsSkinButton46: TbsSkinButton;
bsSkinButton47: TbsSkinButton;
t_ch_invoice_insert: TADOQuery;
t_ch_invoice_item_insert: TADOQuery;
dxDBGrid1Column40: TdxDBGridColumn;
dxDBGrid1Column41: TdxDBGridColumn;
dxDBGrid1Column42: TdxDBGridColumn;
dxDBGrid1Column43: TdxDBGridColumn;
dxDBGrid1Column44: TdxDBGridColumn;
dxDBGrid1Column45: TdxDBGridColumn;
dxDBGrid1Column46: TdxDBGridColumn;
dxDBGrid1Column47: TdxDBGridColumn;
dxDBGrid1Column48: TdxDBGridColumn;
dxDBGrid1Column49: TdxDBGridColumn;
dxDBGrid1Column50: TdxDBGridColumn;
dxDBGrid1Column51: TdxDBGridColumn;
t_ch_invoice_invno: TADOQuery;
t_ch_invoice_invno1: TDataSource;
bsSkinGroupBox1: TbsSkinGroupBox;
dxDBGrid13: TdxDBGrid;
dxDBGrid13Column1: TdxDBGridColumn;
DBNavigator1: TDBNavigator;
dxDBGrid1Column52: TdxDBGridColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bsSkinButton5Click(Sender: TObject);
procedure bsSkinPanel1Resize(Sender: TObject);
procedure bsSkinPanel3Resize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure t_ch_invoiceAfterInsert(DataSet: TDataSet);
procedure bsSkinButton4Click(Sender: TObject);
procedure bsSkinButton11Click(Sender: TObject);
procedure bsSkinButton13Click(Sender: TObject);
procedure t_ch_invoiceBeforeInsert(DataSet: TDataSet);
procedure t_ch_invoiceBeforePost(DataSet: TDataSet);
procedure bsSkinButton18Click(Sender: TObject);
procedure bsSkinButton1Click(Sender: TObject);
procedure bsSkinButton9Click(Sender: TObject);
procedure bsSkinButton16Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure t_ch_invoiceBeforeEdit(DataSet: TDataSet);
procedure RxDBLookupCombo2Change(Sender: TObject);
procedure DM_MoneyChange(Sender: TObject);
procedure DM_MoneyExit(Sender: TObject);
procedure DBSumLowerChange(Sender: TObject);
procedure bsSkinButton17Click(Sender: TObject);
procedure bsSkinButton12Click(Sender: TObject);
procedure bsSkinButton23Click(Sender: TObject);
procedure bsSkinButton28Click(Sender: TObject);
procedure bsSkinButton29Click(Sender: TObject);
procedure bsSkinButton30Click(Sender: TObject);
procedure bsSkinButton26Click(Sender: TObject);
procedure bsSkinButton25Click(Sender: TObject);
procedure RxDBLookupCombo3Enter(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure bsSkinButton24Click(Sender: TObject);
procedure bsSkinButton3Click(Sender: TObject);
procedure bsSkinButton31Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure DBEdit12KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit16KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit17KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit18KeyPress(Sender: TObject; var Key: Char);
procedure RxDBLookupCombo3KeyPress(Sender: TObject; var Key: Char);
procedure RxDBLookupCombo2KeyPress(Sender: TObject; var Key: Char);
procedure DE_ShipNameKeyPress(Sender: TObject; var Key: Char);
procedure DE_BLNOKeyPress(Sender: TObject; var Key: Char);
procedure wwDBDateTimePicker2KeyPress(Sender: TObject; var Key: Char);
procedure wwDBLookupCombo10KeyPress(Sender: TObject; var Key: Char);
procedure wwDBLookupCombo11KeyPress(Sender: TObject; var Key: Char);
procedure wwDBLookupCombo12KeyPress(Sender: TObject; var Key: Char);
procedure DE_SumUpperKeyPress(Sender: TObject; var Key: Char);
procedure DBSumLowerKeyPress(Sender: TObject; var Key: Char);
procedure wwDBLookupCombo6KeyPress(Sender: TObject; var Key: Char);
procedure DE_BusnessNoKeyPress(Sender: TObject; var Key: Char);
procedure DE_TaxNoKeyPress(Sender: TObject; var Key: Char);
procedure DE_MakerKeyPress(Sender: TObject; var Key: Char);
procedure RxDBLookupCombo3Change(Sender: TObject);
procedure bsSkinButton10Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure dxDBGrid1ColumnSorting(Sender: TObject;
Column: TdxDBTreeListColumn; var Allow: Boolean);
procedure dxDBGrid2ColumnSorting(Sender: TObject;
Column: TdxDBTreeListColumn; var Allow: Boolean);
procedure bsSkinButton22Click(Sender: TObject);
procedure bsSkinButton27Click(Sender: TObject);
procedure bsSkinButton32Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N34Click(Sender: TObject);
procedure N36Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure MenuItem2Click(Sender: TObject);
procedure dxDBGridMaskColumn2CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure DBEdit1Change(Sender: TObject);
procedure DBEdit29KeyPress(Sender: TObject; var Key: Char);
procedure wwDBDateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure wwDBLookupCombo1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit27KeyPress(Sender: TObject; var Key: Char);
procedure t_ch_invoiceAfterPost(DataSet: TDataSet);
procedure N8Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure DBEdit12Change(Sender: TObject);
procedure DE_BLNODblClick(Sender: TObject);
procedure DBEdit29DblClick(Sender: TObject);
procedure t_ch_invoiceAfterScroll(DataSet: TDataSet);
procedure t_ch_invoice1DataChange(Sender: TObject; Field: TField);
procedure ComboBoxObjBsCardDropDown(Sender: TObject);
procedure ComboBoxObjBsCardKeyPress(Sender: TObject; var Key: Char);
procedure dbedt1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit30Change(Sender: TObject);
procedure RxDBLookupCombo2Enter(Sender: TObject);
procedure bsSkinButton38Click(Sender: TObject);
procedure bsSkinButton33Click(Sender: TObject);
procedure dxDBGrid1CustomDraw(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
const AText: String; AFont: TFont; var AColor: TColor; ASelected,
AFocused: Boolean; var ADone: Boolean);
procedure wwDBLookupCombo6Change(Sender: TObject);
procedure DBComboBoxEh1DropDown(Sender: TObject);
procedure dbedt1Change(Sender: TObject);
procedure DBComboBoxEh1CloseUp(Sender: TObject; Accept: Boolean);
procedure bsSkinPageControl1Change(Sender: TObject);
procedure bsSkinPageControl6Change(Sender: TObject);
procedure dxDBGrid3Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid4Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid5Column22CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid6Column22CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid3Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid4Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid7Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid8Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid7Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure dxDBGrid8Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean;
var ADone: Boolean);
procedure bsSkinButton35Click(Sender: TObject);
procedure bsSkinPanel2Resize(Sender: TObject);
procedure bsSkinPageControl2Change(Sender: TObject);
procedure dxDBGridColumn43CustomDraw(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
const AText: String; AFont: TFont; var AColor: TColor; ASelected,
AFocused: Boolean; var ADone: Boolean);
procedure dxDBGridColumn44CustomDraw(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
const AText: String; AFont: TFont; var AColor: TColor; ASelected,
AFocused: Boolean; var ADone: Boolean);
procedure fra_ch_add_do1MenuItem1Click(Sender: TObject);
procedure fra_ch_add_do1bsSkinButton11Click(Sender: TObject);
procedure bsSkinButton36Click(Sender: TObject);
procedure DBComboBoxEh2DropDown(Sender: TObject);
procedure DM_CostTypeKeyPress(Sender: TObject; var Key: Char);
procedure DBComboBoxEh2CloseUp(Sender: TObject; Accept: Boolean);
procedure DBComboBoxEh2Change(Sender: TObject);
procedure bsSkinButton15Click(Sender: TObject);
procedure bsSkinButton20Click(Sender: TObject);
procedure dxDBGrid1Click(Sender: TObject);
procedure tmr_UPDINVTimer(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure dxDBGrid1ChangeNode(Sender: TObject; OldNode,
Node: TdxTreeListNode);
procedure btn4_bankflowClick(Sender: TObject);
procedure bsSkinButton37Click(Sender: TObject);
procedure bsSkinButton34Click(Sender: TObject);
procedure bsSkinButton39Click(Sender: TObject);
procedure t_ch_invoice_itemAfterPost(DataSet: TDataSet);
procedure t_ch_invoice_itemBeforeEdit(DataSet: TDataSet);
procedure t_ch_invoice_itemBeforeInsert(DataSet: TDataSet);
procedure DBComboBoxEh1Change(Sender: TObject);
procedure wwDBLookupCombo2Change(Sender: TObject);
procedure t_ch_invoice_itemBeforePost(DataSet: TDataSet);
procedure t_ch_invoice_itemNewRecord(DataSet: TDataSet);
procedure bsSkinButton40Click(Sender: TObject);
procedure bsSkinButton41Click(Sender: TObject);
procedure bsSkinButton42Click(Sender: TObject);
procedure RxDBLookupCombo1Change(Sender: TObject);
procedure wwDBLookupCombo3Change(Sender: TObject);
procedure bsSkinButton43Click(Sender: TObject);
procedure bsSkinButton45Click(Sender: TObject);
procedure bsSkinButton44Click(Sender: TObject);
procedure t_ch_invoice_insertAfterInsert(DataSet: TDataSet);
procedure t_ch_invoice_insertBeforePost(DataSet: TDataSet);
procedure t_ch_invoice_item_insertAfterInsert(DataSet: TDataSet);
procedure t_ch_invoice_item_insertAfterPost(DataSet: TDataSet);
private
shiji:double;
KPpath:string;
Local_SH:string;
DZDH:string;
OLD_IN_ID:string;
NEW_IN_ID:string;
m_bankflowRight:boolean;//银行流水权限
function getfeestr:boolean;
procedure readcustomer();
procedure readfeename();
procedure Change_INV(IN_ID:string );
procedure UPDINV(IN_ID:string );
procedure setBankflowButtonState();//设置银行流水匹配按钮的状态
procedure expduiINV(exptype:Integer);
procedure expINV(exptype:Integer);
procedure expDZduiINV(exptype:Integer);
procedure expDZINV(exptype:Integer);
{ Private declarations }
public
fname1,fname2,fname3,fname4,fname5,fname6,fname7,fnum:string;
fprice1,fprice2,fprice3,fprice4,fprice5,fprice6,fprice7,invremarks:string;
main,vessldate,feinum,bibie:thandle;
procedure t_ch_invoice_itemvatPriceFieldChange(Sender: TField);
{ Public declarations }
end;
var
ch_invoice_open:boolean;
frm_ch_invoice_jk: Tfrm_ch_invoice_jk;
invcontrid:integer;
function EnumChildWindowsProc(hwnd,lparam:Integer):Boolean;stdcall;//遍历窗体控件
implementation
uses u_main, my_sys_function, u_data_share, u_ch_invoice_add_jk,
u_ch_shen_query, u_ch_invoice_query, u_ch_invoice_addone_jk,
u_ch_invoice_expitems;
{$R *.dfm}
procedure Tfrm_ch_invoice_jk.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ch_invoice_open:=false;
savereggrid(dxdbgrid1,caption+'1');
savereggrid(dxdbgrid2,caption+'2');
frm_ch_invoice_jk.Hide;
frm_ch_invoice_jk.ManualFloat(frm_ch_invoice_jk.BoundsRect );
frm_main.freeTabs('frm_ch_invoice_jk');
action:=cafree;
frm_ch_invoice_jk:=nil;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton5Click(Sender: TObject);
begin
close;
end;
procedure Tfrm_ch_invoice_jk.bsSkinPanel1Resize(Sender: TObject);
var
i:integer;
begin
i:=round(bsSkinPanel1.Width/12);
bsSkinButton16.Width:=i;
bsSkinButton17.Width:=i;
// bsSkinButton15.Width:=i;
// bsSkinButton20.Width:=i;
bsSkinButton4.Width:=i;
bsSkinButton11.Width:=i;
bsSkinButton12.Width:=i;
bsSkinButton13.Width:=i;
bsSkinButton18.Width:=i;
bsSkinButton19.Width:=i;
bsSkinButton46.Width:=i;
bsSkinButton47.Width:=i;
end;
procedure Tfrm_ch_invoice_jk.bsSkinPanel3Resize(Sender: TObject);
var
i:integer;
begin
//计算按钮长度
if strtobool(get_parameters_value(1,'false'))then
begin
bsSkinButton25.Caption:='开出发票';
bsSkinButton22.Visible:=false;
bsSkinButton27.Visible:=false;
i:=round(bsSkinPanel3.Width/10);
bsSkinButton23.Width:=i;
bsSkinButton24.Width:=i;
bsSkinButton28.Width:=i;
bsSkinButton29.Width:=i;
bsSkinButton30.Width:=i;
bsSkinButton25.Width:=i;
bsSkinButton26.Width:=i;
bsSkinButton31.Width:=i;
bsSkinButton33.Width:=i;
end
else
begin
bsSkinButton25.Caption:='开出发票';
bsSkinButton22.Visible:=true;
bsSkinButton27.Visible:=true;
i:=round(bsSkinPanel3.Width/13);
bsSkinButton23.Width:=i;
bsSkinButton24.Width:=i;
bsSkinButton28.Width:=i;
bsSkinButton29.Width:=i;
bsSkinButton30.Width:=i;
bsSkinButton25.Width:=i;
bsSkinButton26.Width:=i;
bsSkinButton31.Width:=i;
bsSkinButton22.Width:=i;
bsSkinButton27.Width:=i;
bsSkinButton23.Width:=i;
bsSkinButton33.Width:=i;
end;
bsSkinButton32.Left:=dxDBGrid2.Width-bsSkinButton32.Width-20;
end;
procedure Tfrm_ch_invoice_jk.FormShow(Sender: TObject);
begin
t_sys_bank.open;
frm_data_share.t_code_goods_inv.Requery();
t_ch_invoice.close;
t_ch_invoice.sql.clear;
t_ch_invoice.sql.add('select top 100 * from t_ch_invoice order by 开票日期 desc,发票号码 desc');
t_ch_invoice.open;
t_ch_invoice_item.Open;
ch_invoice_open:=true;
TNumericField(t_ch_invoice.FieldByName('合计金额')).DisplayFormat:='#,##0.00;-#,##0.00';
ADOQuery1.open;
ADOQuery2.open;
ADOQuery3.open;
ADOQuery4.open;
t_ch_invoice_invno.Open;
// t_crm_client_Invoice.Open;
//是否具有与银行流水匹配的权限
m_bankflowRight:=if_open('418');
//qry_feename.Open;
qry_getPath.Close;
qry_getPath.Open;
KPpath:= qry_getPath.fieldByName('KPpath').AsString;
//KPpath:=StringReplace (KPpath, ' ', '[空格]', []);
Local_SH:= Trim(frm_data_share.t_sys_company.fieldbyname('税务登记号').AsString);
DZDH:= qry_getPath.fieldByName('DZDH').AsString;
//是否具有与银行流水匹配的权限
m_bankflowRight:=if_open('418');
readcustomer;//读取客户编码
readfeename;
OLD_IN_ID:='';
NEW_IN_ID:='';
DBComboBoxEh3.Text:='增值税普票';
//在该文件夹内读取
// t_ch_invoice_head.open;
//多业务合并处理
bsSkinPageControl1.ActivePageIndex:=0;
if StrToBool(get_parameters_value(85,'false')) then begin
fra_ch_add_do1.bsSkinTabSheet1.TabVisible:=False;
fra_ch_add_do1.bsSkinTabSheet2.TabVisible:=False;
fra_ch_add_do1.bsSkinTabSheet3.TabVisible:=False;
fra_ch_add_do1.bsSkinTabSheet4.TabVisible:=False;
fra_ch_add_do1.bsSkinTabSheet5.TabVisible:=True;
fra_ch_add_do1.bsSkinPageControl1.TabIndex:=0;
fra_ch_add_do1.bsSkinCheckRadioBox6.Checked:=true;
// fra_ch_add_do1.bsSkinButton11.Caption:='开出发票';
fra_ch_delete_do1.bsSkinTabSheet1.TabVisible:=false;
fra_ch_delete_do1.bsSkinTabSheet2.TabVisible:=false;
fra_ch_delete_do1.bsSkinTabSheet3.TabVisible:=false;
fra_ch_delete_do1.bsSkinTabSheet4.TabVisible:=false;
fra_ch_delete_do1.bsSkinTabSheet5.TabVisible:=True;
fra_ch_delete_do1.bsSkinPageControl1.ActivePage:=fra_ch_delete_do1.bsSkinTabSheet5;
end else begin
fra_ch_add_do1.bsSkinTabSheet1.TabVisible:=True;
fra_ch_add_do1.bsSkinTabSheet2.TabVisible:=True;
fra_ch_add_do1.bsSkinTabSheet3.TabVisible:=True;
fra_ch_add_do1.bsSkinTabSheet4.TabVisible:=True;
fra_ch_add_do1.bsSkinPageControl1.ActivePage:=fra_ch_add_do1.bsSkinTabSheet1;
fra_ch_add_do1.bsSkinTabSheet5.TabVisible:=False;
fra_ch_add_do1.bsSkinCheckRadioBox6.Checked:=true;
fra_ch_delete_do1.bsSkinTabSheet1.TabVisible:=True;
fra_ch_delete_do1.bsSkinTabSheet2.TabVisible:=True;
fra_ch_delete_do1.bsSkinTabSheet3.TabVisible:=True;
fra_ch_delete_do1.bsSkinTabSheet4.TabVisible:=True;
fra_ch_delete_do1.bsSkinTabSheet5.TabVisible:=false;
fra_ch_delete_do1.bsSkinPageControl1.ActivePage:=fra_ch_delete_do1.bsSkinTabSheet1;
end;
fra_ch_add_do1.do_ban1.DataSet:=t_ch_invoice;
fra_ch_add_do1.bs_text.text:='1';
fra_ch_add_do1.wwDBComboBox31.text:='收';
fra_ch_add_do1.t_ch_fee_do.open;
fra_ch_add_do1.bsSkinCheckRadioBox4.Checked:=False;
fra_ch_add_do1.bsSkinPanel9.Visible:=true;
fra_ch_delete_do1.bs_text.Text:='1';
fra_ch_delete_do1.do_ban1.DataSet:=t_ch_invoice;
loadreggrid(dxdbgrid1,false,caption+'1');
loadreggrid(dxdbgrid2,false,caption+'2');
frm_data_share.t_crm_client_all.requery;
frm_data_share.t_code_currency.requery;
//是否注册税控接口
if not if_reg(417) then begin
bsSkinButton34.Visible:=false;
bsSkinButton35.Visible:=false;
end;
{$IFDEF FPSHENQING}
{$ELSE}
bsSkinTabSheet3.TabVisible:=false;
{$ENDIF}
t_ch_invoice_item.FieldByName('含税单价').OnChange:=t_ch_invoice_itemvatPriceFieldChange;
t_ch_invoice_item.FieldByName('数量').OnChange:=t_ch_invoice_itemvatPriceFieldChange;
setBankflowButtonState();
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoiceAfterInsert(DataSet: TDataSet);
begin
t_ch_invoice['制单人']:=employee;
t_ch_invoice['开票日期']:=date;
t_ch_invoice['合计金额']:=0;
t_ch_invoice['实际金额']:=0;
t_ch_invoice['虚开金额']:=0;
t_ch_invoice['自动']:=1;
t_ch_invoice['工商登记号']:=Trim(frm_data_share.t_sys_company.fieldbyname('工商登记号').AsString);
t_ch_invoice['税务登记号']:=Trim(frm_data_share.t_sys_company.fieldbyname('税务登记号').AsString);
t_ch_invoice['复核状态']:=0;
t_ch_invoice['是否打印']:=0;
t_ch_invoice['是否废除']:=0;
t_ch_invoice['是否打印银行帐号名称']:=1;
t_ch_invoice['币别']:='RMB';
t_ch_invoice['开票币别']:='RMB';
t_ch_invoice['开票类型']:='1';
t_ch_invoice['开票状态']:='0';
t_ch_invoice['被冲红']:='0';
t_ch_invoice['推送方式']:='-1';
t_ch_invoice['推送手机']:='0';
{
if t_ch_invoice['发票类别']<>'明细发票' then
t_ch_invoice['费用列表']:='代理海运费';
}
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton4Click(Sender: TObject);
begin
if t_ch_invoice.state in [dsedit,dsinsert] then t_ch_invoice.post;
if strtobool(get_parameters_value(5,'FALSE'))then
begin
try
frm_ch_invoice_add_jk:=tfrm_ch_invoice_add_jk.Create (self);
frm_ch_invoice_add_jk.bsSkinCheckRadioBox1.enabled:=false;
frm_ch_invoice_add_jk.bsSkinCheckRadioBox2.Visible:=false;
frm_ch_invoice_add_jk.wwDBLookupCombo6.Text:='RMB';
frm_ch_invoice_add_jk.bsSkinCheckRadioBox7.Checked:=True;
if t_ch_invoice.IsEmpty then
frm_ch_invoice_add_jk.bsSkinCheckRadioBox8.enabled:=false;
frm_ch_invoice_add_jk.ShowModal;
finally
frm_ch_invoice_add_jk.Free;
end;
end
else
begin
showmessage('对不起不能开具自由发票!!');
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton11Click(Sender: TObject);
begin
table_post(t_ch_invoice);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton13Click(Sender: TObject);
begin
table_cancel(t_ch_invoice);
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoiceBeforeInsert(DataSet: TDataSet);
begin
if not modify_all then
abort;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoiceBeforePost(DataSet: TDataSet);
var
currency_chi:String;
total_money:Double;
aAdoQuery:TAdoQuery;
USDAMT,RMBAMT:Double;
begin
t_ch_invoice['实际金额']:=s_w(StrToInt(apointnum),t_ch_invoice['实际金额']);
if (t_ch_invoice.state=dsinsert) and (t_ch_invoice.FieldByName('申请编号').asstring='') then
t_ch_invoice['申请编号']:=get_no(date,'IA');
if (frm_ch_invoice_jk.t_ch_invoice.fieldbyname('发票类别').asstring<>'申请发票') and (shiji<>t_ch_invoice.FieldByName('实际金额').value) then
t_ch_invoice['合计金额']:=t_ch_invoice['实际金额'];
total_money:=Abs(t_ch_invoice['合计金额']);
if t_ch_invoice['币别']='RMB' then currency_chi:='';//人民币
if t_ch_invoice['币别']='USD' then currency_chi:=''; //美元
if t_ch_invoice['合计金额']<0 then
begin
t_ch_invoice['金额大写']:=invoice_max(total_money,currency_chi+'(付)');
end
else
t_ch_invoice['金额大写']:=invoice_max(t_ch_invoice['合计金额'],currency_chi);
{
IF t_ch_invoice.FieldByName('发票类别').asstring='自由发票'then
begin
t_ch_invoice['实际金额']:=0;
end;
}
t_ch_invoice['虚开金额']:=t_ch_invoice['合计金额']-t_ch_invoice['实际金额'];
//table_before_post(t_ch_invoice,'发票号码');
// table_before_post(t_ch_invoice,'客户名称');
table_before_post(t_ch_invoice,'币别');
if (t_ch_invoice.FieldByName('是否拆分').AsString<>'1') then begin
USDAMT:=0;
RMBAMT:=0;
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
try
Close;SQL.Clear;
sql.Add('select ');
sql.Add('sum(case when f.币别=''RMB'' then D.原始金额 else 0 end) as RMBAMT');
sql.Add(',sum(case when f.币别<>''RMB'' then D.原始金额 else 0 end) as USDAMT');
sql.Add('From t_ch_fee_do d left join t_ch_fee f on (f.CH_ID=d.CH_ID)');
sql.Add('where D.工作编号=:bsno');
Parameters.ParamByName('bsno').Value:=t_ch_invoice.FieldByName('申请编号').Value;
open;First;
if not IsEmpty then
begin
USDAMT:=USDAMT+FieldByName('USDAMT').AsFloat;
RMBAMT:=RMBAMT+FieldByName('RMBAMT').AsFloat;
end;
t_ch_invoice.FieldByName('人民币金额').AsFloat:=RMBAMT;
t_ch_invoice.FieldByName('美元金额').AsFloat:=USDAMT;
if (RMBAMT=0) and (USDAMT<>0) and (edt_from.text='') and (t_ch_invoice.FieldByName('备注').AsString='') THEN begin
t_ch_invoice['实际币别']:='USD';
t_ch_invoice['费用列表']:='代理海运费';
t_ch_invoice['备注']:='USD'+floattostr(USDAMT)+'*'+floattostr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString))+' 此票限付美元';
end else t_ch_invoice['实际币别']:='RMB';
if (t_ch_invoice.FieldByName('发票抬头').AsString='') or (t_ch_invoice.FieldByName('纳税人识别号').AsString='') then begin
Close;SQL.Clear;
SQL.Add('select 发票抬头,纳税人识别号,地址电话,开户行及帐号,纳税类型 from t_crm_client_Invoice');
SQL.Add('Where 客户简称=:客户简称 ');
Parameters.ParamByName('客户简称').Value:=t_ch_invoice.FieldByName('客户名称').AsString;
if (t_ch_invoice.FieldByName('实际币别').AsString<>'') then
SQL.Add(' and 币别='''+t_ch_invoice.FieldByName('实际币别').AsString+'''');
open;
if not IsEmpty then
begin
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
DBComboBoxEh4.Text:=FieldByName('纳税人识别号').AsString;
DBComboBoxEh5.Text:=FieldByName('地址电话').AsString;
DBComboBoxEh6.Text:=FieldByName('开户行及帐号').AsString;
t_ch_invoice['发票抬头']:=fieldbyname('发票抬头').asstring;
if frm_data_share.t_crm_client_all.locate('客户简称',t_ch_invoice.fieldbyname('客户名称').AsString,[]) then
begin
t_ch_invoice['推送邮箱']:=frm_data_share.t_crm_client_all.fieldbyname('接收发票邮箱').asstring;
end
end
end;
end;
finally
Free;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton18Click(Sender: TObject);
begin
bsSkinTabSheet1.Show;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton1Click(Sender: TObject);
begin
bsSkinTabSheet2.Show;
if StrToBool(get_parameters_value(85,'false')) then
begin
bsSkinTabSheet8.TabVisible:=false;
bsSkinTabSheet9.TabVisible:=false;
bsSkinTabSheet10.TabVisible:=false;
bsSkinTabSheet12.TabVisible:=false;
bsSkinTabSheet13.TabVisible:=true;
v_fee_do_bscard.Close;
v_fee_do_bscard.DataSource:=t_ch_invoice1;
v_fee_do_bscard.Open;
ADOQuery1.Close;
ADOQuery2.Close;
ADOQuery3.Close;
ADOQuery4.Close;
end
else
begin
bsSkinTabSheet8.TabVisible:=true;
bsSkinTabSheet9.TabVisible:=true;
bsSkinTabSheet10.TabVisible:=true;
bsSkinTabSheet12.TabVisible:=true;
bsSkinTabSheet13.TabVisible:=false;
ADOQuery1.open;
ADOQuery2.open;
ADOQuery3.open;
ADOQuery4.open;
v_fee_do_bscard.Close;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton9Click(Sender: TObject);
var
Pnt:Tpoint;
begin
Pnt:=bsSkinButton9.ClientToScreen(Point(0,bsSkinButton9.Height));
PopupMenu2.Popup(Pnt.x,Pnt.y);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton16Click(Sender: TObject);
var
Pnt:Tpoint;
begin
Pnt:=bsSkinButton16.ClientToScreen(Point(0,bsSkinButton16.Height));
PopupMenu2.Popup(Pnt.x,Pnt.y);
end;
procedure Tfrm_ch_invoice_jk.N1Click(Sender: TObject);
begin
if t_ch_invoice.IsEmpty then
exit;
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
showmessage('发票已经废除,不能打印!!');
exit;
end;
if Trim(t_ch_invoice.FieldByName('发票抬头').AsString)='' then
begin
showmessage('发票抬头为空,不能打印!!');
exit;
end;
if t_ch_invoice.state in [dsedit,dsinsert] then t_ch_invoice.post;
if not t_ch_invoice.FieldByName('是否打印').asboolean then
begin
t_ch_invoice.Edit;
t_ch_invoice['是否打印']:=1;
t_ch_invoice.post;
end;
sys_print('业务发票打印',1,t_ch_invoice1,nil,nil,nil,DataSource1,DataSource2,DataSource3,DataSource4,t_ch_invoice1,nil,nil);
end;
procedure Tfrm_ch_invoice_jk.N20Click(Sender: TObject);
begin
if t_ch_invoice.IsEmpty then
exit;
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
showmessage('发票已经废除,不能打印!!');
exit;
end;
if Trim(t_ch_invoice.FieldByName('发票抬头').AsString)='' then
begin
showmessage('发票抬头为空,不能打印!!');
exit;
end;
if t_ch_invoice.state in [dsedit,dsinsert] then t_ch_invoice.post;
if not t_ch_invoice.FieldByName('是否打印').asboolean then
begin
t_ch_invoice.Edit;
t_ch_invoice['是否打印']:=1;
t_ch_invoice.post;
end;
sys_print('业务发票打印',2,t_ch_invoice1,nil,nil,nil,DataSource1,DataSource2,DataSource3,DataSource4,t_ch_invoice1,nil,nil);
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoiceBeforeEdit(DataSet: TDataSet);
begin
if not modify_all then
begin
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
showmessage('发票已经废除,不能修改!!');
abort;
end;
if t_ch_invoice.FieldByName('是否打印').asboolean then
begin
showmessage('发票已经打印,不能修改!!');
abort;
end;
end;
shiji:=t_ch_invoice.fieldbyname('实际金额').asfloat;
end;
procedure Tfrm_ch_invoice_jk.RxDBLookupCombo2Change(Sender: TObject);
begin
try
// if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
// begin
if not t_sys_bank.IsEmpty then
if t_sys_bank.Locate('代码',RxDBLookupCombo2.DisplayValues[0],[])then begin
t_ch_invoice.Edit;
t_ch_invoice['开户银行']:=t_sys_bank.fieldbyname('银行名称').asstring;
t_ch_invoice['银行账号']:=t_sys_bank.fieldbyname('银行账号').asstring;
end;
// end;
except
;
end;
end;
procedure Tfrm_ch_invoice_jk.DM_MoneyChange(Sender: TObject);
VAR
total_money:real;
currency_chi:string;
begin
try
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
if frm_data_share.t_code_currency.Locate('币别',wwDBLookupCombo6.text,[])then
// currency_chi:=frm_data_share.t_code_currency.fieldbyname('中文名').asstring;
total_money:=total_num(DM_Money);
t_ch_invoice['合计金额']:=total_money;
if total_money<0 then
begin
total_money:=Abs(total_money);
t_ch_invoice['金额大写']:=invoice_max(total_money,'负'+currency_chi);
end
else
t_ch_invoice['金额大写']:=invoice_max(total_money,currency_chi);
end;
except
;
end;
end;
procedure Tfrm_ch_invoice_jk.DM_MoneyExit(Sender: TObject);
begin
if (t_ch_invoice.State=dsedit)or(t_ch_invoice.State=dsinsert)then
begin
add_zero(DM_Money);
t_ch_invoice['金额列表']:=DM_Money.text;
end;
end;
procedure Tfrm_ch_invoice_jk.DBSumLowerChange(Sender: TObject);
VAR
total_money:real;
currency_chi:string;
begin
try
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
if frm_data_share.t_code_currency.Locate('币别',wwDBLookupCombo6.text,[])then
currency_chi:=frm_data_share.t_code_currency.fieldbyname('中文名').asstring;
total_money:=strtofloat(DBSumLower.text);
if total_money<0 then
begin
total_money:=Abs(total_money);
t_ch_invoice['金额大写']:=invoice_max(total_money,currency_chi+'(付)');
end
else
t_ch_invoice['金额大写']:=invoice_max(total_money,currency_chi);
end;
except
;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton17Click(Sender: TObject);
begin
if t_ch_invoice.IsEmpty then
exit;
if not if_open('031') then
begin
showmessage('对不起你没有此模块的操作权限!');
exit;
end;
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
showmessage('发票已经废除,不能取消打印!!');
exit;
end;
if t_ch_invoice.FieldByName('是否打印').asboolean then
begin
if application.MessageBox('您确定要取消打印吗?','警告:',MB_OKCANCEL)=IDOK then
begin
try
modify_all:=true;
t_ch_invoice.Edit;
t_ch_invoice['是否打印']:=0;
t_ch_invoice.post;
finally
modify_all:=false;
end;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton12Click(Sender: TObject);
var
str:widestring;
if_shen:string;
in_id:integer;
aQuery:TADOQuery;
begin
//删除发票处理,已打印只能废除,不能删除
if t_ch_invoice.IsEmpty then
exit;
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
if if_open('309') then begin
modify_all:=true;
t_ch_invoice.Edit;
t_ch_invoice['是否废除']:=0;
t_ch_invoice['废除原因']:='';
t_ch_invoice['废除人']:='';
t_ch_invoice['废除日期']:=null;
t_ch_invoice['申请编号']:='';
t_ch_invoice.post;
modify_all:=false;
end else begin
showmessage('对不起,你没有撤销废除的权限!!');
end;
exit;
end;
if_shen:=t_ch_invoice.fieldbyname('发票类别').asstring;
if t_ch_invoice.FieldByName('是否打印').asboolean then
begin
str:=trim(InputBox('请输入废除原因', '废除原因:', ''));
if str=''then
begin
showmessage('废除原因不能为空,废除失败!!');
exit;
end
else if str=''then
begin
exit;
end;
in_id:=t_ch_invoice.FieldByName('IN_ID').asinteger;
t_ch_invoice.Refresh;
if not t_ch_invoice.locate('IN_ID',in_id,[]) then
exit;
try
if t_ch_invoice.FieldByName('发票类别').AsString<>'申请发票' then begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
SQL.Add('select * from t_ch_fee_do where 类型=''1'' and 工作编号='''+t_ch_invoice.FieldByName('申请编号').AsString+'''');
Open;
first;
while not eof do begin
Delete;
end;
end;
finally
FreeAndNil(aQuery);
end;
end else begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
SQL.Add('select * from t_ch_fee_do where 类型=''1'' and 工作编号='''+t_ch_invoice.FieldByName('申请编号').AsString+'''');
Open;
first;
while not eof do begin
edit;
fieldbyname('类型').AsString:='7';
post;
next;
end;
end;
finally
FreeAndNil(aQuery);
end;
end;
//执行税控机废除动作
modify_all:=true;
t_ch_invoice.Edit;
t_ch_invoice['是否废除']:=1;
t_ch_invoice['废除原因']:=str;
t_ch_invoice['废除人']:=employee;
t_ch_invoice['废除日期']:=now;
t_ch_invoice['申请编号']:='';
t_ch_invoice.post;
modify_all:=false;
except
modify_all:=false;
showmessage('废除失败!!');
exit;
end;
end
else
begin
if application.MessageBox('您确定要删除数据吗?','警告:',MB_OKCANCEL)=IDOK then begin
if t_ch_invoice.FieldByName('发票类别').AsString<>'申请发票' then begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
SQL.Add('select * from t_ch_fee_do where 类型=''1'' and 工作编号='''+t_ch_invoice.FieldByName('申请编号').AsString+'''');
Open;
first;
while not eof do begin
Delete;
end;
end;
finally
FreeAndNil(aQuery);
end;
end else begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
SQL.Add('select * from t_ch_fee_do where 类型=''1'' and 工作编号='''+t_ch_invoice.FieldByName('申请编号').AsString+'''');
Open;
first;
while not eof do begin
edit;
fieldbyname('类型').AsString:='7';
post;
next;
end;
end;
finally
FreeAndNil(aQuery);
end;
end;
t_ch_invoice.delete;
end else
exit;
end;
if if_shen<>'自由发票'then
begin
t_ch_invoice_shen.requery;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton23Click(Sender: TObject);
begin
sys_print('业务发票申请',2,t_ch_invoice_shen1,nil,nil,nil,v_fee_do_seae1,v_fee_do_seai1,v_fee_do_aire1,v_fee_do_airi1,t_ch_invoice_shen1,nil,nil);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton28Click(Sender: TObject);
begin
table_Prior(t_ch_invoice_shen);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton29Click(Sender: TObject);
begin
table_next(t_ch_invoice_shen);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton30Click(Sender: TObject);
begin
if bsSkinButton30.Caption='详细内容' then
begin
if t_ch_invoice_shen.IsEmpty then
exit;
bsSkinTabSheet22.show;
bsSkinButton30.Caption:='返回列表';
end
else
begin
bsSkinTabSheet11.show;
bsSkinButton30.Caption:='详细内容';
end;
if StrToBool(get_parameters_value(85,'false')) then
begin
bsSkinTabSheet4.TabVisible:=false;
bsSkinTabSheet5.TabVisible:=false;
bsSkinTabSheet6.TabVisible:=false;
bsSkinTabSheet7.TabVisible:=false;
bsSkinTabSheet14.TabVisible:=true;
v_fee_do_bscard.Close;
v_fee_do_bscard.DataSource:=t_ch_invoice_shen1;
v_fee_do_bscard.Open;
v_fee_do_seae.Close;
v_fee_do_seai.Close;
v_fee_do_aire.Close;
v_fee_do_airi.Close;
end
else
begin
bsSkinTabSheet4.TabVisible:=true;
bsSkinTabSheet5.TabVisible:=true;
bsSkinTabSheet6.TabVisible:=true;
bsSkinTabSheet7.TabVisible:=true;
bsSkinTabSheet14.TabVisible:=false;
v_fee_do_seae.open;
v_fee_do_seai.open;
v_fee_do_aire.open;
v_fee_do_airi.open;
v_fee_do_bscard.Close;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton26Click(Sender: TObject);
begin
if t_ch_invoice_shen.IsEmpty then
exit;
if (t_ch_invoice_shen.FieldByName('申请类别').asstring='实际开票')then
begin
shen_back(t_ch_invoice_shen);
end
else
begin
if (t_ch_invoice_shen.FieldByName('申请状态').asstring='提交申请')or
(t_ch_invoice_shen.FieldByName('申请状态').asstring='开出发票')or
(t_ch_invoice_shen.FieldByName('申请状态').asstring='批准开票')or
(t_ch_invoice_shen.FieldByName('申请状态').asstring='禁止修改')then
begin
t_ch_invoice_shen.Edit;
t_ch_invoice_shen['申请状态']:='驳回申请';
t_ch_invoice_shen['审核人']:=employee;
t_ch_invoice_shen['审核日期']:=now;
t_ch_invoice_shen.post;
t_ch_invoice_shen.Refresh;
end
else
begin
showmessage('当前业务状态不能驳回申请!!');
end;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton25Click(Sender: TObject);
begin
if t_ch_invoice_shen.IsEmpty then
exit;
if (t_ch_invoice_shen.FieldByName('申请类别').asstring<>'实际开票')then
begin
if (t_ch_invoice_shen.FieldByName('申请状态').asstring='提交申请')or
(t_ch_invoice_shen.FieldByName('申请状态').asstring='驳回申请')or
(t_ch_invoice_shen.FieldByName('申请状态').asstring='批准开票')or
(t_ch_invoice_shen.FieldByName('申请状态').asstring='禁止修改')then
begin
t_ch_invoice_shen.Edit;
t_ch_invoice_shen['申请状态']:='开出发票';
t_ch_invoice_shen['审核人']:=employee;
t_ch_invoice_shen['审核日期']:=now;
t_ch_invoice_shen.post;
t_ch_invoice_shen.Refresh;
end
else
begin
showmessage('当前业务状态不能批准开出发票!!');
end;
end
else
begin
if strtobool(get_parameters_value(1,'false')) then
begin
if (t_ch_invoice_shen.FieldByName('申请状态').asstring<>'批准开票') and
(t_ch_invoice_shen.FieldByName('申请状态').asstring<>'禁止修改') then
begin
showmessage('当前申请状态不能开出发票!!');
exit;
end;
end
else
begin
if (t_ch_invoice_shen.FieldByName('申请状态').asstring<>'批准开票') and
(t_ch_invoice_shen.FieldByName('申请状态').asstring<>'禁止修改') and
(t_ch_invoice_shen.FieldByName('申请状态').asstring<>'提交申请') then
begin
showmessage('当前申请状态不能开出发票!!');
exit;
end;
end;
try
frm_ch_invoice_add_jk:=tfrm_ch_invoice_add_jk.Create (self);
frm_ch_invoice_add_jk.bsSkinCheckRadioBox1.checked:=true;
frm_ch_invoice_add_jk.bsSkinCheckRadioBox7.enabled:=false;
frm_ch_invoice_add_jk.bsSkinCheckRadioBox8.enabled:=false;
frm_ch_invoice_add_jk.wwDBLookupCombo6.Text:=t_ch_invoice_shen.fieldbyname('币别').asstring;
frm_ch_invoice_add_jk.wwDBLookupCombo6.ReadOnly:=true;
frm_ch_invoice_add_jk.edit2.text:=t_ch_invoice_shen.fieldbyname('客户名称').asstring;
frm_ch_invoice_add_jk.edit2.Visible:=true;
frm_ch_invoice_add_jk.RxDBLookupCombo3.Visible:=false;
if t_ch_invoice_shen.FieldByName('开船日期').asstring<>''then
begin
{
if (date-t_ch_invoice_shen.FieldByName('开船日期').asdatetime)>7 then
begin
showmessage('警告:发票开船日期超过了税务局要求的7天限制!!');
end;
}
end;
frm_ch_invoice_add_jk.ShowModal;
finally
frm_ch_invoice_add_jk.Free;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.RxDBLookupCombo3Enter(Sender: TObject);
begin
if DBEdit12.text='申请发票' then
begin
RxDBLookupCombo3.ReadOnly:=true;
{DBEdit19.ReadOnly:=true;
DE_ShipName.ReadOnly:=true;
DE_BLNO.ReadOnly:=true;
wwDBDateTimePicker2.ReadOnly:=true;
wwDBLookupCombo10.ReadOnly:=true;
wwDBLookupCombo11.ReadOnly:=true;
wwDBLookupCombo12.ReadOnly:=true;
DM_ChaCon.ReadOnly:=true;
DM_CostType.ReadOnly:=true;
DM_Money.ReadOnly:=true;
DE_SumUpper.ReadOnly:=true;
DBSumLower.ReadOnly:=true; }
wwDBLookupCombo6.ReadOnly:=true;
end
else
begin
RxDBLookupCombo3.ReadOnly:=false;
{DBEdit19.ReadOnly:=false;
DE_ShipName.ReadOnly:=false;
DE_BLNO.ReadOnly:=false;
wwDBDateTimePicker2.ReadOnly:=false;
wwDBLookupCombo10.ReadOnly:=false;
wwDBLookupCombo11.ReadOnly:=false;
wwDBLookupCombo12.ReadOnly:=false;
DM_ChaCon.ReadOnly:=false;
DM_CostType.ReadOnly:=false;
DM_Money.ReadOnly:=false;
DE_SumUpper.ReadOnly:=false;
DBSumLower.ReadOnly:=false; }
wwDBLookupCombo6.ReadOnly:=false;
end;
end;
procedure Tfrm_ch_invoice_jk.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose:=frm_close_query(t_ch_invoice);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton24Click(Sender: TObject);
begin
try
frm_ch_shen_query:=tfrm_ch_shen_query.Create (self);
shen_query_type:=3;
shen_query_limited:='no';
shen_query_op_limited:='no';
frm_ch_shen_query.ShowModal;
finally
frm_ch_shen_query.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton3Click(Sender: TObject);
begin
if t_ch_invoice.IsEmpty then
exit;
if t_ch_invoice.FieldByName('发票类别').asstring<>'申请发票'then
begin
showmessage('当前发票不是申请发票!!');
exit;
end;
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
showmessage('当前发票已经废除!!');
exit;
end;
if not t_ch_invoice_shen.Locate('申请编号',t_ch_invoice.fieldbyname('申请编号').asstring,[])then
begin
t_ch_invoice_shen.close;
t_ch_invoice_shen.sql.clear;
t_ch_invoice_shen.sql.add('select * from t_ch_invoice_shen where 申请编号='
+''''+t_ch_invoice.fieldbyname('申请编号').asstring+'''');
t_ch_invoice_shen.open;
end;
bsSkinTabSheet22.Show;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton31Click(Sender: TObject);
begin
if t_ch_invoice_shen.IsEmpty then
exit;
if t_ch_invoice_shen.FieldByName('申请状态').asstring<>'开出发票'then
begin
showmessage('当前申请还没有开出发票!!');
exit;
end;
if not t_ch_invoice.Locate('发票号码',t_ch_invoice_shen.fieldbyname('发票号码').asstring,[])then
begin
t_ch_invoice.close;
t_ch_invoice.sql.clear;
t_ch_invoice.sql.add('select * from t_ch_invoice where 发票号码='
+''''+t_ch_invoice_shen.fieldbyname('发票号码').asstring+'''');
t_ch_invoice.open;
end;
if not t_ch_invoice.IsEmpty then
bsSkinTabSheet2.Show
else
showmessage('没有找到相应的发票信息!!');
end;
procedure Tfrm_ch_invoice_jk.N3Click(Sender: TObject);
begin
if t_ch_invoice.IsEmpty then
exit;
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
showmessage('发票已经废除,不能打印!!');
exit;
end;
if Trim(t_ch_invoice.FieldByName('发票抬头').AsString)='' then
begin
showmessage('发票抬头为空,不能打印!!');
exit;
end;
if t_ch_invoice.state in [dsedit,dsinsert] then t_ch_invoice.post;
if not t_ch_invoice.FieldByName('是否打印').asboolean then
begin
t_ch_invoice.Edit;
t_ch_invoice['是否打印']:=1;
t_ch_invoice.post;
end;
sys_print('业务发票打印',3,t_ch_invoice1,nil,nil,nil,DataSource1,DataSource2,DataSource3,DataSource4,t_ch_invoice1,nil,nil);
if t_ch_invoice.state in [dsedit,dsinsert] then t_ch_invoice.post;
if MessageDlg('继续添加发票吗?',mtWarning,[mbyes,mbno],0)=mryes then
bsSkinButton4Click(sender);
end;
procedure Tfrm_ch_invoice_jk.DBEdit12KeyPress(Sender: TObject; var Key: Char);
begin
key_DBEdit(Key,DBEdit16);
end;
procedure Tfrm_ch_invoice_jk.DBEdit16KeyPress(Sender: TObject; var Key: Char);
begin
key_DBEdit(Key,DBEdit17);
end;
procedure Tfrm_ch_invoice_jk.DBEdit17KeyPress(Sender: TObject; var Key: Char);
begin
key_DBEdit(Key,DBEdit18);
end;
procedure Tfrm_ch_invoice_jk.DBEdit18KeyPress(Sender: TObject; var Key: Char);
begin
key_RxDBLookupCombo(Key,RxDBLookupCombo3);
end;
procedure Tfrm_ch_invoice_jk.RxDBLookupCombo3KeyPress(Sender: TObject;
var Key: Char);
begin
key_RxDBLookupCombo(Key,RxDBLookupCombo2);
end;
procedure Tfrm_ch_invoice_jk.RxDBLookupCombo2KeyPress(Sender: TObject;
var Key: Char);
begin
key_DBEdit(Key,DBEdit27);
end;
procedure Tfrm_ch_invoice_jk.DE_ShipNameKeyPress(Sender: TObject;
var Key: Char);
begin
key_DBEdit(Key,DE_BLNO);
end;
procedure Tfrm_ch_invoice_jk.DE_BLNOKeyPress(Sender: TObject; var Key: Char);
begin
key_wwDBDateTimePicker(Key,wwDBDateTimePicker2);
end;
procedure Tfrm_ch_invoice_jk.wwDBDateTimePicker2KeyPress(Sender: TObject;
var Key: Char);
begin
key_wwDBLookupCombo(Key,wwDBLookupCombo10);
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo10KeyPress(Sender: TObject;
var Key: Char);
begin
key_wwDBLookupCombo(Key,wwDBLookupCombo11);
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo11KeyPress(Sender: TObject;
var Key: Char);
begin
key_wwDBLookupCombo(Key,wwDBLookupCombo12);
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo12KeyPress(Sender: TObject;
var Key: Char);
begin
key_DBMemo(Key,DM_ChaCon);
end;
procedure Tfrm_ch_invoice_jk.DE_SumUpperKeyPress(Sender: TObject;
var Key: Char);
begin
key_DBEdit(Key,DBSumLower);
end;
procedure Tfrm_ch_invoice_jk.DBSumLowerKeyPress(Sender: TObject;
var Key: Char);
begin
key_wwDBLookupCombo(Key,wwDBLookupCombo6);
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo6KeyPress(Sender: TObject;
var Key: Char);
begin
key_DBEdit(Key,DE_BusnessNo);
end;
procedure Tfrm_ch_invoice_jk.DE_BusnessNoKeyPress(Sender: TObject;
var Key: Char);
begin
key_DBEdit(Key,DE_TaxNo);
end;
procedure Tfrm_ch_invoice_jk.DE_TaxNoKeyPress(Sender: TObject; var Key: Char);
begin
key_DBEdit(Key,DE_Maker);
end;
procedure Tfrm_ch_invoice_jk.DE_MakerKeyPress(Sender: TObject; var Key: Char);
begin
key_wwDBLookupCombo(Key,wwDBLookupCombo7);
end;
procedure Tfrm_ch_invoice_jk.RxDBLookupCombo3Change(Sender: TObject);
var
aQuery:TADOQuery;
begin
if t_ch_invoice.fieldbyname('发票类别').asstring='自由发票'then
begin
if (t_ch_invoice.state=dsinsert)or(t_ch_invoice.state=dsedit)then
begin
if not frm_data_share.t_crm_client_all.IsEmpty then
if frm_data_share.t_crm_client_all.locate('客户简称',RxDBLookupCombo3.DisplayValues[1],[]) then
begin
{
if frm_data_share.t_crm_client_all.fieldbyname('发票抬头').asstring<>'' then
t_ch_invoice['发票抬头']:=frm_data_share.t_crm_client_all.fieldbyname('发票抬头').asstring
else
t_ch_invoice['发票抬头']:=frm_data_share.t_crm_client_all.fieldbyname('客户全称').asstring;
}
t_ch_invoice['推送邮箱']:=frm_data_share.t_crm_client_all.fieldbyname('接收发票邮箱').asstring;
aQuery:=CreateAdoQuery;
with aQuery do
try
Close;SQL.Clear;
SQL.Add('select 发票抬头,纳税人识别号,地址电话,开户行及帐号,纳税类型 from t_crm_client_Invoice');
SQL.Add('Where 客户简称=:客户简称 ');
Parameters.ParamByName('客户简称').Value:=t_ch_invoice.FieldByName('客户名称').AsString;
if (t_ch_invoice.FieldByName('实际币别').AsString<>'') then
SQL.Add(' and 币别='''+t_ch_invoice.FieldByName('实际币别').AsString+'''');
open;
if not IsEmpty then
begin
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
DBComboBoxEh4.Text:=FieldByName('纳税人识别号').AsString;
DBComboBoxEh5.Text:=FieldByName('地址电话').AsString;
DBComboBoxEh6.Text:=FieldByName('开户行及帐号').AsString;
t_ch_invoice['发票抬头']:=fieldbyname('发票抬头').asstring
// DBEdit31.Text:=FieldByName('纳税类型').AsString;
end
end
finally
Close;
FreeAndNil(aQuery);
end;
end;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton10Click(Sender: TObject);
begin
try
frm_ch_invoice_query:=tfrm_ch_invoice_query.Create (self);
inv_query_type:=3;
frm_ch_invoice_query.ShowModal;
finally
frm_ch_invoice_query.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.N10Click(Sender: TObject);
begin
if bsSkinTabSheet1.Showing then
update_grid_view_no(dxdbgrid1)
else
update_grid_view_no(dxdbgrid2);
end;
procedure Tfrm_ch_invoice_jk.N14Click(Sender: TObject);
begin
if bsSkinTabSheet1.Showing then
update_grid_view_all(dxdbgrid1)
else
update_grid_view_all(dxdbgrid2);
end;
procedure Tfrm_ch_invoice_jk.N12Click(Sender: TObject);
begin
if bsSkinTabSheet1.Showing then
update_grid(dxdbgrid1,7)
else
update_grid(dxdbgrid2,8);
end;
procedure Tfrm_ch_invoice_jk.N16Click(Sender: TObject);
begin
if bsSkinTabSheet1.Showing then
grid_save_xls(dxdbgrid1)
else
grid_save_xls(dxdbgrid2);
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid1ColumnSorting(Sender: TObject;
Column: TdxDBTreeListColumn; var Allow: Boolean);
begin
Column_sort(Column,t_ch_invoice,'发票号码');
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid2ColumnSorting(Sender: TObject;
Column: TdxDBTreeListColumn; var Allow: Boolean);
begin
Column_sort(Column,t_ch_invoice_shen,'申请编号');
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton22Click(Sender: TObject);
begin
shen_modify_ok(t_ch_invoice_shen);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton27Click(Sender: TObject);
begin
shen_modify_back(t_ch_invoice_shen);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton32Click(Sender: TObject);
var
Pnt:Tpoint;
begin
Pnt:=bsSkinButton32.ClientToScreen(Point(0,bsSkinButton32.Height));
PopupMenu3.Popup(Pnt.x,Pnt.y);
end;
procedure Tfrm_ch_invoice_jk.N17Click(Sender: TObject);
begin
t_ch_invoice_shen.Close;
t_ch_invoice_shen.SQL.clear;
t_ch_invoice_shen.SQL.Add('select * from t_ch_invoice_shen where 申请状态 in ('+''''+'申请开票'+''''
+') '
+'order by 申请编号 desc');
t_ch_invoice_shen.open;
end;
procedure Tfrm_ch_invoice_jk.N34Click(Sender: TObject);
begin
t_ch_invoice_shen.Close;
t_ch_invoice_shen.SQL.clear;
t_ch_invoice_shen.SQL.Add('select * from t_ch_invoice_shen where 申请状态 in ('+''''+'驳回申请'+''''
+','+''''+'禁止修改'+''''+') '
+'order by 申请编号 desc');
t_ch_invoice_shen.open;
end;
procedure Tfrm_ch_invoice_jk.N36Click(Sender: TObject);
begin
t_ch_invoice_shen.Close;
t_ch_invoice_shen.SQL.clear;
t_ch_invoice_shen.SQL.Add('select * from t_ch_invoice_shen where 申请状态 in ('
+''''+'提交申请'+''''+','+''''+'申请修改'+''''+') '
+'order by 申请编号 desc');
t_ch_invoice_shen.open;
end;
procedure Tfrm_ch_invoice_jk.N6Click(Sender: TObject);
begin
t_ch_invoice_shen.Close;
t_ch_invoice_shen.SQL.clear;
t_ch_invoice_shen.SQL.Add('select * from t_ch_invoice_shen where 申请状态 in ('+''''+'批准开票'+''''
+','+''''+'禁止修改'+''''+') '
+'order by 申请编号 desc');
t_ch_invoice_shen.open;
end;
procedure Tfrm_ch_invoice_jk.MenuItem2Click(Sender: TObject);
begin
t_ch_invoice_shen.Close;
t_ch_invoice_shen.SQL.clear;
t_ch_invoice_shen.SQL.Add('select * from t_ch_invoice_shen where 申请状态 in ('+''''+'开出发票'+''''+') '
+'order by 申请编号 desc');
t_ch_invoice_shen.open;
end;
procedure Tfrm_ch_invoice_jk.dxDBGridMaskColumn2CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
if (ANode.strings[dxDBGridMaskColumn2.Index]='申请开票')or
(ANode.strings[dxDBGridMaskColumn2.Index]='批准修改') then
AColor :=clwhite
else if (ANode.strings[dxDBGridMaskColumn2.Index]='提交申请')or
(ANode.strings[dxDBGridMaskColumn2.Index]='申请修改') then
AColor :=clyellow
else if (ANode.strings[dxDBGridMaskColumn2.Index]='禁止修改')or
(ANode.strings[dxDBGridMaskColumn2.Index]='驳回申请')then
AColor :=clred
else if (ANode.strings[dxDBGridMaskColumn2.Index]='批准开票')or
(ANode.strings[dxDBGridMaskColumn2.Index]='开出发票') then
AColor :=$00DDF21C;
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.DBEdit1Change(Sender: TObject);
begin
if (DBEdit1.Text='') or (DBEdit1.Text='申请开票') or
(DBEdit1.Text='批准修改')then
DBEdit1.Color:=clwhite
else if (DBEdit1.Text='提交申请') or (DBEdit1.Text='申请修改') then
DBEdit1.Color:=clyellow
else if (DBEdit1.Text='禁止修改') or (DBEdit1.Text='驳回申请') then
DBEdit1.Color:=clred
else if (DBEdit1.Text='批准开票') or (DBEdit1.Text='开出发票') then
DBEdit1.Color:=$00DDF21C;
end;
procedure Tfrm_ch_invoice_jk.DBEdit29KeyPress(Sender: TObject; var Key: Char);
begin
key_DBEdit(Key,DE_ShipName);
end;
procedure Tfrm_ch_invoice_jk.wwDBDateTimePicker1KeyPress(Sender: TObject;
var Key: Char);
begin
key_DBEdit(Key,DBEdit29);
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo1KeyPress(Sender: TObject;
var Key: Char);
begin
// key_wwDBDateTimePicker(Key,wwDBDateTimePicker1);
end;
procedure Tfrm_ch_invoice_jk.DBEdit27KeyPress(Sender: TObject; var Key: Char);
begin
key_wwDBLookupCombo(Key,wwDBLookupCombo1);
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoiceAfterPost(DataSet: TDataSet);
begin
// t_ch_invoice_head.Requery();
if t_ch_invoice['发票类别']<>'申请发票' then begin
if bsSkinPageControl1.ActivePage=bsSkinTabSheet3 then begin
ADOQuery1.Requery;
ADOQuery2.Requery;
ADOQuery3.Requery;
ADOQuery4.Requery;
end;
if StrToBool(get_parameters_value(85,'false')) then begin
if (bsSkinPageControl6.ActivePage=bstab2) then begin
if fra_ch_delete_do1.v_fee_do_bscard_sum.active then begin
fra_ch_delete_do1.v_fee_do_bscard_sum.Requery;
fra_ch_delete_do1.v_fee_do_bscard.Requery;
end;
end;
end else begin
if (bsSkinPageControl6.ActivePage=bstab2) then begin
if fra_ch_delete_do1.v_fee_do_seae.active then begin
fra_ch_delete_do1.v_fee_do_seae.Requery;
fra_ch_delete_do1.v_fee_do_seae_sum.Requery;
fra_ch_delete_do1.v_fee_do_seai.Requery;
fra_ch_delete_do1.v_fee_do_seai_sum.Requery;
fra_ch_delete_do1.v_fee_do_aire.Requery;
fra_ch_delete_do1.v_fee_do_aire_sum.Requery;
fra_ch_delete_do1.v_fee_do_airi.Requery;
fra_ch_delete_do1.v_fee_do_airi_sum.Requery;
end;
end;
end;
if if_ch_delete_do then
begin
case delete_do_type_num of
1,2,3,4,5:
begin
if fra_ch_add_do1.t_op_seae.Active then
begin
fra_ch_add_do1.t_ch_fee.Requery();
fra_ch_add_do1.t_ch_fee_sum.Requery();
end;
end;
end;
end;
delete_do_type_num:=0;
if_ch_delete_do:=false;
end;
end;
procedure Tfrm_ch_invoice_jk.N8Click(Sender: TObject);
var
aQuery:TADOQuery;
begin
// aQuery:=CreateAdoQuery;
try
modify_all:=true;
t_ch_invoice.edit;
t_ch_invoice['是否收费']:=1;
t_ch_invoice.post;
{
with aQuery do begin
Close;SQL.Clear;
SQL.Add('Update t_ch_invoice set 是否收费=1 where IN_ID='+inttostr(t_ch_invoice.fieldbyName('IN_ID').AsInteger));
ExecSQL;
end;
t_ch_invoice.Refresh;
}
finally
modify_all:=false;
// FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_jk.N19Click(Sender: TObject);
begin
// aQuery:=CreateAdoQuery;
try
modify_all:=true;
t_ch_invoice.edit;
t_ch_invoice['是否收费']:=0;
t_ch_invoice.post;
{
with aQuery do begin
Close;SQL.Clear;
SQL.Add('Update t_ch_invoice set 是否收费=0 where IN_ID='+inttostr(t_ch_invoice.fieldbyName('IN_ID').AsInteger));
ExecSQL;
end;
t_ch_invoice.Refresh;
}
finally
modify_all:=false;
// FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_jk.DBEdit12Change(Sender: TObject);
begin
if DBEdit12.Text<>'申请发票' then
bstab2.TabVisible:=True
else
bstab2.TabVisible:=false;
end;
procedure Tfrm_ch_invoice_jk.DE_BLNODblClick(Sender: TObject);
var
str:String;
begin
//双击主提单号添加发票明细
frmch_invoice_addone_jk:=Tfrmch_invoice_addone_jk.Create(Self);
try
with frmch_invoice_addone_jk.ADOQuery1 do begin
frmch_invoice_addone_jk.MblNo:=true;
frmch_invoice_addone_jk.ADOQuery2.Close;
frmch_invoice_addone_jk.ADOQuery2.SQL.Clear;
frmch_invoice_addone_jk.ADOQuery2.SQL.Add('select 主提单号,委托编号,船名,航次,开船日期,起运港,卸货港,目的地 from v_op_bscard where 主提单号='''+Trim(DE_BLNO.Text)+''' or 分提单号='''+Trim(DE_BLNO.Text)+'''');
frmch_invoice_addone_jk.ADOQuery2.Open;
str:=' and 金额<>(开票金额+申请开票) and 不开发票<>1 and 类型=''收'' and 编号 in (select 编号 from v_op_bscard where 主提单号='''+Trim(DE_BLNO.Text)+''' or 分提单号='''+Trim(DE_BLNO.Text)+''')';
frmch_invoice_addone_jk.t_fee_obj.Close;
frmch_invoice_addone_jk.t_fee_obj.SQL.Clear;
frmch_invoice_addone_jk.t_fee_obj.SQL.Add('Select distinct 客户名称 from t_ch_fee where 1=1 ') ;
frmch_invoice_addone_jk.t_fee_obj.SQL.Add(str);
if t_ch_invoice.FieldByName('客户名称').AsString<>'' then
frmch_invoice_addone_jk.t_fee_obj.SQL.Add(' and 客户名称='''+t_ch_invoice.FieldByName('客户名称').AsString+'''');
frmch_invoice_addone_jk.t_fee_obj.Open;
Close;
SQL.Clear;
SQL.Add('Select * from t_ch_fee where 1=1 ');
if t_ch_invoice.FieldByName('客户名称').AsString<>'' then
SQL.Add(' and 客户名称='''+t_ch_invoice.FieldByName('客户名称').AsString+'''');
// else
// SQL.Add(' and 客户名称=:客户名称 ');
SQL.Add(str);
Open;
if not IsEmpty then begin
if t_ch_invoice.FieldByName('币别').AsString='USD' then
frmch_invoice_addone_jk.bsSkinRadioGroup1.ItemIndex:=1
else
frmch_invoice_addone_jk.bsSkinRadioGroup1.ItemIndex:=0;
frmch_invoice_addone_jk.ShowModal;
end else begin
MessageDlg('此主提单号下此客户无应开发票的费用',mtWarning,[mbYes],0);
end;
end;
finally
FreeAndNil(frmch_invoice_addone_jk);
end;
end;
procedure Tfrm_ch_invoice_jk.DBEdit29DblClick(Sender: TObject);
var
str:String;
begin
//双击委托编号添加发票明细
frmch_invoice_addone_jk:=Tfrmch_invoice_addone_jk.Create(Self);
try
with frmch_invoice_addone_jk.ADOQuery1 do begin
frmch_invoice_addone_jk.MblNo:=false;
frmch_invoice_addone_jk.ADOQuery2.Close;
frmch_invoice_addone_jk.ADOQuery2.SQL.Clear;
frmch_invoice_addone_jk.ADOQuery2.SQL.Add('select 主提单号,委托编号,船名,航次,开船日期,起运港,卸货港,目的地 from v_op_bscard where 委托编号='''+Trim(DBEdit29.Text)+''' or 业务编号='''+Trim(DBEdit29.Text)+''' or 分提单号='''+Trim(DBEdit29.Text)+'''');
frmch_invoice_addone_jk.ADOQuery2.Open;
str:=' and 金额<>(开票金额+申请开票) and 不开发票<>1 and 类型=''收'' and 编号 in (select 编号 from v_op_bscard where 委托编号='''+Trim(DBEdit29.Text)+''' or 业务编号='''+Trim(DBEdit29.Text)+''' or 分提单号='''+Trim(DBEdit29.Text)+''')';
frmch_invoice_addone_jk.t_fee_obj.Close;
frmch_invoice_addone_jk.t_fee_obj.SQL.Clear;
frmch_invoice_addone_jk.t_fee_obj.SQL.Add('Select distinct 客户名称 from t_ch_fee where 1=1 ') ;
frmch_invoice_addone_jk.t_fee_obj.SQL.Add(str);
if t_ch_invoice.FieldByName('客户名称').AsString<>'' then
frmch_invoice_addone_jk.t_fee_obj.SQL.Add(' and 客户名称='''+t_ch_invoice.FieldByName('客户名称').AsString+'''');
frmch_invoice_addone_jk.t_fee_obj.Open;
Close;
SQL.Clear;
SQL.Add('Select * from t_ch_fee where 1=1 ');
if t_ch_invoice.FieldByName('客户名称').AsString<>'' then
SQL.Add(' and 客户名称='''+t_ch_invoice.FieldByName('客户名称').AsString+'''');
// else
// SQL.Add(' and 客户名称=:客户名称 ');
SQL.Add(str);
Open;
// frmch_invoice_addone.memtblDetail.open;
if not IsEmpty then begin
if t_ch_invoice.FieldByName('币别').AsString='USD' then
frmch_invoice_addone_jk.bsSkinRadioGroup1.ItemIndex:=1
else
frmch_invoice_addone_jk.bsSkinRadioGroup1.ItemIndex:=0;
frmch_invoice_addone_jk.ShowModal;
end else begin
MessageDlg('此委托编号下此客户无应开发票的费用',mtWarning,[mbYes],0);
end;
end;
finally
FreeAndNil(frmch_invoice_addone_jk);
end;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoiceAfterScroll(DataSet: TDataSet);
begin
{
if t_ch_invoice['是否废除'] then begin
if t_ch_invoice['是否打印'] then begin
bsSkinButton7.Caption:='删除发票';
bsSkinButton12.Caption:='删除发票';
end else begin
bsSkinButton7.Caption:='废除发票';
bsSkinButton12.Caption:='废除发票';
end;
end;
}
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice1DataChange(Sender: TObject;
Field: TField);
begin
if t_ch_invoice.State in [dsinsert] then exit;
if t_ch_invoice.IsEmpty then exit;
if t_ch_invoice['是否打印'] then begin
if t_ch_invoice.fieldbyname('是否废除').asboolean then begin
bsSkinButton7.Caption:='撤销废除';
bsSkinButton12.Caption:='撤销废除';
end else begin
bsSkinButton7.Caption:='废除发票';
bsSkinButton12.Caption:='废除发票';
end;
end else begin
bsSkinButton7.Caption:='删除发票';
bsSkinButton12.Caption:='删除发票';
end;
end;
procedure Tfrm_ch_invoice_jk.ComboBoxObjBsCardDropDown(Sender: TObject);
var
aQuery:TADOQuery;
begin
ComboBoxObjBsCard.Items.Clear;
aQuery:=CreateAdoQuery;
with aQuery do
try
Close;SQL.Clear;
SQL.Add('select distinct 发票抬头 from t_ch_invoice');
SQL.Add('order by 发票抬头');
Open;
First;
while not Eof do begin
ComboBoxObjBsCard.Items.Add(FieldByName('发票抬头').AsString);
Next;
end;
finally
Close;
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_jk.ComboBoxObjBsCardKeyPress(Sender: TObject;
var Key: Char);
begin
// key_wwDBDateTimePicker(Key,wwDBDateTimePicker1);
end;
procedure Tfrm_ch_invoice_jk.dbedt1KeyPress(Sender: TObject; var Key: Char);
begin
// if key=#13 then
// DBComboBoxEh1.Text:=dbedt1.text;
// DBComboBoxEh1.DropDown;
// ComboBoxObjBsCard.DropDown;
// key_wwDBDateTimePicker(Key,wwDBDateTimePicker1);
end;
procedure Tfrm_ch_invoice_jk.DBEdit30Change(Sender: TObject);
begin
if DBEdit30.Text='' then begin
t_sys_bank.Filtered:=false;
end else begin
t_sys_bank.Filtered:=false;
t_sys_bank.Filter:='分部名称='''+DBEdit30.text+'''';
t_sys_bank.Filtered:=true;
if t_sys_bank.IsEmpty then
t_sys_bank.Filtered:=false;
end;
end;
procedure Tfrm_ch_invoice_jk.RxDBLookupCombo2Enter(Sender: TObject);
begin
DBEdit30Change(sender);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton38Click(Sender: TObject);
var
book1:Tbookmark;
begin
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton33Click(Sender: TObject);
var
book1:Tbookmark;
begin
book1:=t_ch_invoice_shen.GetBookmark;
t_ch_invoice_shen.Requery;
t_ch_invoice_shen.GotoBookmark(book1);
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid1CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
if ANode.Strings[dxDBGrid1Column29.Index]='True' then begin
AFont.Style:=AFont.Style+[fsStrikeOut];
AFont.Color:=clred;
end;
if ANode.Strings[dxDBGrid1Column38.Index]='True' then begin
if frm_data_share.t_code_fee_color.Locate('费用状态','审核通过',[])then
begin
aColor:=StringToColor(frm_data_share.t_code_fee_color.fieldbyname('颜色').asstring);
end;
end;
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo6Change(Sender: TObject);
VAR
total_money:real;
currency_chi:string;
begin
//币别更改
try
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
if frm_data_share.t_code_currency.Locate('币别',wwDBLookupCombo6.text,[])then
currency_chi:=frm_data_share.t_code_currency.fieldbyname('中文名').asstring;
total_money:=t_ch_invoice.fieldbyname('合计金额').AsFloat;
if total_money<0 then
begin
total_money:=Abs(total_money);
t_ch_invoice['金额大写']:=invoice_max(total_money,currency_chi+'(付)');
end
else
t_ch_invoice['金额大写']:=invoice_max(total_money,currency_chi);
if t_sys_bank.Active then
if t_sys_bank.Locate('币别',wwDBLookupCombo6.text,[])then begin
t_ch_invoice['开户银行']:=t_sys_bank.fieldbyname('银行名称').asstring;
t_ch_invoice['银行账号']:=t_sys_bank.fieldbyname('银行账号').asstring;
end;
end;
except
;
end;
end;
procedure Tfrm_ch_invoice_jk.DBComboBoxEh1DropDown(Sender: TObject);
var
aQuery:TADOQuery;
begin
DBComboBoxEh1.Items.Clear;
aQuery:=CreateAdoQuery;
with aQuery do
try
Close;SQL.Clear;
SQL.Add('select 发票抬头,纳税人识别号,地址电话,开户行及帐号,纳税类型 from t_crm_client_Invoice');
SQL.Add('Where 客户简称=:客户简称');
Parameters.ParamByName('客户简称').Value:=t_ch_invoice.FieldByName('客户名称').AsString;
if (t_ch_invoice.FieldByName('实际币别').AsString<>'') then
SQL.Add(' and 币别='''+t_ch_invoice.FieldByName('实际币别').AsString+'''');
Open;
if not IsEmpty then begin
First;
while not Eof do begin
DBComboBoxEh1.Items.Add(FieldByName('发票抬头').AsString);
Next;
end;
end else begin
Close;SQL.Clear;
SQL.Add('select distinct 发票抬头 from t_ch_invoice where 客户名称=:客户名称');
SQL.Add('order by 发票抬头');
Parameters.ParamByName('客户名称').Value:=t_ch_invoice.FieldByName('客户名称').AsString;
Open;
if not IsEmpty then begin
First;
while not Eof do begin
DBComboBoxEh1.Items.Add(FieldByName('发票抬头').AsString);
Next;
end;
end;
end;
finally
Close;
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_jk.dbedt1Change(Sender: TObject);
begin
// DBComboBoxEh1.Text:=dbedt1.text;
end;
procedure Tfrm_ch_invoice_jk.DBComboBoxEh1CloseUp(Sender: TObject;
Accept: Boolean);
begin
DBComboBoxEh1.items.Clear;
end;
procedure Tfrm_ch_invoice_jk.bsSkinPageControl1Change(Sender: TObject);
begin
if not ch_invoice_open then exit;
if bsSkinPageControl1.ActivePage=bsSkinTabSheet3 then
begin
if strtobool(get_parameters_value(1,'false'))then
begin
if not t_ch_invoice_shen.Active then
t_ch_invoice_shen.open;
end
else
begin
if not t_ch_invoice_shen.Active then
begin
t_ch_invoice_shen.close;
t_ch_invoice_shen.sql.clear;
t_ch_invoice_shen.sql.add('select * from t_ch_invoice_shen ');
t_ch_invoice_shen.sql.add('where 申请状态 in ('+''''+'批准开票'+''''+','+''''+'禁止修改'+''''+','+''''+'申请修改'+''''
+','+''''+'提交申请'+''''+')');
t_ch_invoice_shen.sql.add(' order by 申请编号');
t_ch_invoice_shen.Open;
end;
end;
end;
if bsSkinPageControl2.ActivePage=bsSkinTabSheet22 then
// if not v_fee_do_seae.Active then
begin
if StrToBool(get_parameters_value(85,'false')) then
begin
bsSkinTabSheet4.TabVisible:=false;
bsSkinTabSheet5.TabVisible:=false;
bsSkinTabSheet6.TabVisible:=false;
bsSkinTabSheet7.TabVisible:=false;
bsSkinTabSheet14.TabVisible:=true;
v_fee_do_bscard.Close;
v_fee_do_bscard.DataSource:=t_ch_invoice_shen1;
v_fee_do_bscard.Open;
v_fee_do_seae.Close;
v_fee_do_seai.Close;
v_fee_do_aire.Close;
v_fee_do_airi.Close;
end
else
begin
bsSkinTabSheet4.TabVisible:=true;
bsSkinTabSheet5.TabVisible:=true;
bsSkinTabSheet6.TabVisible:=true;
bsSkinTabSheet7.TabVisible:=true;
bsSkinTabSheet14.TabVisible:=false;
v_fee_do_seae.open;
v_fee_do_seai.open;
v_fee_do_aire.open;
v_fee_do_airi.open;
v_fee_do_bscard.Close;
end;
end;
if bsSkinPageControl1.ActivePage=bsSkinTabSheet2 then
begin
if StrToBool(get_parameters_value(85,'false')) then
begin
bsSkinTabSheet8.TabVisible:=false;
bsSkinTabSheet9.TabVisible:=false;
bsSkinTabSheet10.TabVisible:=false;
bsSkinTabSheet12.TabVisible:=false;
bsSkinTabSheet13.TabVisible:=true;
v_fee_do_bscard.Close;
v_fee_do_bscard.DataSource:=t_ch_invoice1;
v_fee_do_bscard.Open;
ADOQuery1.Close;
ADOQuery2.Close;
ADOQuery3.Close;
ADOQuery4.Close;
end
else
begin
bsSkinTabSheet8.TabVisible:=true;
bsSkinTabSheet9.TabVisible:=true;
bsSkinTabSheet10.TabVisible:=true;
bsSkinTabSheet12.TabVisible:=true;
bsSkinTabSheet13.TabVisible:=false;
ADOQuery1.open;
ADOQuery2.open;
ADOQuery3.open;
ADOQuery4.open;
v_fee_do_bscard.Close;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinPageControl6Change(Sender: TObject);
begin
if not ch_invoice_open then exit;
if not (bsSkinPageControl6.ActivePage=bstab2) then exit;
fra_ch_add_do1.bs_text.text:='1';
if StrToBool(get_parameters_value(85,'false')) then begin
fra_ch_delete_do1.v_fee_do_bscard.close;
fra_ch_delete_do1.v_fee_do_bscard.SQL.clear;
fra_ch_delete_do1.v_fee_do_bscard.sql.add('select * from v_fee_do_bscard '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' order by 类型,编号,费用名称');
// fra_ch_delete_do1.v_fee_do_bscard.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_bscard.Open;
fra_ch_delete_do1.v_fee_do_bscard_sum.close;
fra_ch_delete_do1.v_fee_do_bscard_sum.SQL.clear;
fra_ch_delete_do1.v_fee_do_bscard_sum.sql.add('select 类型,SUBSTRING(CONVERT(char(15),开船日期,111),1,7) AS 月份,揽货人,原始币别,sum(原始金额) as 原始金额,sum(金额) as 金额 from v_fee_do_bscard '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' group by 类型,SUBSTRING(CONVERT(char(15),开船日期,111),1,7),揽货人,原始币别 '
+'order by 类型,揽货人,SUBSTRING(CONVERT(char(15),开船日期,111),1,7),原始币别');
// fra_ch_delete_do1.v_fee_do_bscard_sum.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_bscard_sum.Open;
end else begin
fra_ch_delete_do1.v_fee_do_seae.close;
fra_ch_delete_do1.v_fee_do_seae.SQL.clear;
fra_ch_delete_do1.v_fee_do_seae.sql.add('select * from v_fee_do_seae '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' order by 编号,费用名称');
// fra_ch_delete_do1.v_fee_do_seae.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_seae.Open;
fra_ch_delete_do1.v_fee_do_seai.close;
fra_ch_delete_do1.v_fee_do_seai.SQL.clear;
fra_ch_delete_do1.v_fee_do_seai.sql.add('select * from v_fee_do_seai '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' order by 编号,费用名称');
// fra_ch_delete_do1.v_fee_do_seai.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_seai.Open;
fra_ch_delete_do1.v_fee_do_aire.close;
fra_ch_delete_do1.v_fee_do_aire.SQL.clear;
fra_ch_delete_do1.v_fee_do_aire.sql.add('select * from v_fee_do_aire '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' order by 编号,费用名称');
// fra_ch_delete_do1.v_fee_do_aire.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_aire.Open;
fra_ch_delete_do1.v_fee_do_airi.close;
fra_ch_delete_do1.v_fee_do_airi.SQL.clear;
fra_ch_delete_do1.v_fee_do_airi.sql.add('select * from v_fee_do_airi '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' order by 编号,费用名称');
// fra_ch_delete_do1.v_fee_do_airi.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_airi.Open;
fra_ch_delete_do1.v_fee_do_seae_sum.close;
fra_ch_delete_do1.v_fee_do_seae_sum.SQL.clear;
fra_ch_delete_do1.v_fee_do_seae_sum.sql.add('select SUBSTRING(CONVERT(char(15),开船日期,111),1,7) AS 月份,揽货人,原始币别,sum(原始金额) as 原始金额,sum(金额) as 金额 from v_fee_do_seae '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' group by SUBSTRING(CONVERT(char(15),开船日期,111),1,7),揽货人,原始币别 '
+'order by 揽货人,SUBSTRING(CONVERT(char(15),开船日期,111),1,7),原始币别');
// fra_ch_delete_do1.v_fee_do_seae_sum.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_seae_sum.Open;
fra_ch_delete_do1.v_fee_do_seai_sum.close;
fra_ch_delete_do1.v_fee_do_seai_sum.SQL.clear;
fra_ch_delete_do1.v_fee_do_seai_sum.sql.add('select SUBSTRING(CONVERT(char(15),进口日期,111),1,7) AS 月份,揽货人,原始币别,sum(原始金额) as 原始金额,sum(金额) as 金额 from v_fee_do_seai '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' group by SUBSTRING(CONVERT(char(15),进口日期,111),1,7),揽货人,原始币别 '
+'order by 揽货人,SUBSTRING(CONVERT(char(15),进口日期,111),1,7),原始币别');
// fra_ch_delete_do1.v_fee_do_seai_sum.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_seai_sum.Open;
fra_ch_delete_do1.v_fee_do_aire_sum.close;
fra_ch_delete_do1.v_fee_do_aire_sum.SQL.clear;
fra_ch_delete_do1.v_fee_do_aire_sum.sql.add('select SUBSTRING(CONVERT(char(15),开航日期,111),1,7) AS 月份,揽货人,原始币别,sum(原始金额) as 原始金额,sum(金额) as 金额 from v_fee_do_aire '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' group by SUBSTRING(CONVERT(char(15),开航日期,111),1,7),揽货人,原始币别 '
+'order by 揽货人,SUBSTRING(CONVERT(char(15),开航日期,111),1,7),原始币别');
// fra_ch_delete_do1.v_fee_do_aire_sum.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_aire_sum.Open;
fra_ch_delete_do1.v_fee_do_airi_sum.close;
fra_ch_delete_do1.v_fee_do_airi_sum.SQL.clear;
fra_ch_delete_do1.v_fee_do_airi_sum.sql.add('select SUBSTRING(CONVERT(char(15),进口日期,111),1,7) AS 月份,揽货人,原始币别,sum(原始金额) as 原始金额,sum(金额) as 金额 from v_fee_do_airi '
+'where 工作编号='''+t_ch_invoice.fieldbyname('申请编号').AsString+''' group by SUBSTRING(CONVERT(char(15),进口日期,111),1,7),揽货人,原始币别 '
+'order by 揽货人,SUBSTRING(CONVERT(char(15),进口日期,111),1,7),原始币别');
// fra_ch_delete_do1.v_fee_do_airi_sum.DataSource:=t_ch_invoice1;
fra_ch_delete_do1.v_fee_do_airi_sum.Open;
end;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid3Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color_fee(ANode.strings[dxDBGrid3Column25.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid4Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color_fee(ANode.strings[dxDBGrid4Column25.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid5Column22CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color_fee(ANode.strings[dxDBGrid5Column22.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid6Column22CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color_fee(ANode.strings[dxDBGrid6Column22.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid3Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color('海运出口',ANode.Strings[dxDBGrid3Column24.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid4Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color('海运出口',ANode.Strings[dxDBGrid4Column24.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid7Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color('海运出口',ANode.Strings[dxDBGrid7Column24.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid8Column24CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color('海运出口',ANode.Strings[dxDBGrid8Column24.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid7Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color_fee(ANode.strings[dxDBGrid7Column25.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid8Column25CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color_fee(ANode.strings[dxDBGrid8Column25.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton35Click(Sender: TObject); //复制到税控
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,INVTYPE:string;
begin
if t_ch_invoice.FieldByName('是否打印').asboolean then
begin
showmessage('发票已经打印,不能重复开票!!');
abort;
end else begin
//t_ch_invoice.FieldByName('是否打印').Value:=True;
//开启定时查询,在定时查询中:如扫描到已打印则更新已打印,否则照旧
//直至切换选中行时停止定时查询。
end;
//path:='D:\捷丰\MakeInvoice\testTax\bin\Debug\testTax.exe 开启 ';
path:=KPpath+'\MakeTax.exe 开票'; //0
INVTYPE:='2';
if (DBComboBoxEh3.text='增值税专票') then begin
INVTYPE:='0';
end;
{
if (DBComboBoxEh3.text='增值税普票') then begin
path:=path+' 2 2';
end;
}
path:=path+' '+INVTYPE;//都是普票 //1
feename:= DM_CostType.Lines[0];
//amount:= DBSumLower.Text;
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString)*t_ch_invoice.FieldByName('金额列表').AsFloat);
if (t_ch_invoice.FieldByName('币别').AsString='USD') THEN
begin
Amount:=Trim(StrAmt);
end
else
begin
Amount:=Trim(t_ch_invoice.FieldByName('金额列表').AsString); //税率
end;
if (feename='') then begin
ShowMessage('请选择费用项目名称');
Exit;
end;
if (amount='0') or (amount='') then begin
ShowMessage('请填写发票金额');
Exit;
end;
name:=t_ch_invoice.fieldbyname('发票抬头').AsString;
if kbmMemTable1.Locate('NAME',name,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
SH:=kbmMemTable1.fieldbyname('SH').AsString;
DZ:=kbmMemTable1.fieldbyname('DZ').AsString;
//如果账户型如
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
path:=path+' '+trim(NAME); //2
path:=path+' '+trim(SH); //3
path:=path+' '+trim(DZ); //4
path:=path+' '+trim(ZH); //5
end else begin
showmessage('客户的名称没有录入税控系统,或导出的客户编码不是最新的。'
+#13#10+'请检查该客户是否已经录入税控系统,并从税控系统中重新导出客户编码.txt放入税控软件\税号\bin文件夹内。');
exit;
end;
if (DZDH='') then begin
showmessage('请在系统信息的开票信息处填写开票单位地址电话,然后重新打开开票模块');
exit;
end; ////
path:=path+' '+DZDH; //6
{
if (trim(DBEdit19.Text)+trim(DBEdit27.Text)='') then begin
showmessage('请选择开票银行和账户');
exit;
end;
}
path:=path+' '+'RMB招商银行青岛云霄路支行532900134010688_USD中国银行青岛东海路支行233808306778';
//trim(DBEdit19.Text)+trim(DBEdit27.Text); //7 银行账户
path:=path+' __'+StringReplace (t_ch_invoice.FieldByName('备注').AsString, ' ', '__', [rfReplaceAll]);
//trim(t_ch_invoice.FieldByName('备注').AsString);
//trim(DM.Lines.Strings[0]); //8 备注
if (DM.Lines.Strings[0]='') then begin
path:=path+'__';
end;
path:=path+' '+employee; //9 开票人
path:=path+' '+feename; //10 费用项目名
path:=path+' '+amount; //11 费用金额
path:=path+' Server=DongshengSoft02\mssqlserver2008;Database=dongshengdata_jf;uid=sa;pwd=ds20040201'; //12 数据库连接字符串
path:=path+' '+t_ch_invoice.FieldByName('IN_ID').AsString; //13 发票gid
//showmessage(path);
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
path:=path+' '+kbmMemTable2.FieldByName('FEENAME').AsString ; //14
path:=path+' '+kbmMemTable2.FieldByName('GoodsTaxNo').AsString ; //15
path:=path+' '+kbmMemTable2.FieldByName('TaxPre').AsString ; //16
path:=path+' '+kbmMemTable2.FieldByName('CropGoodsNo').AsString ; //17
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
//showmessage(path);
winexec(Pchar(path), sw_show);
tmr_UPDINV.Enabled:= True;
end;
procedure Tfrm_ch_invoice_jk.btn1Click(Sender: TObject);
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,spbm,FPTT:string;
begin
if bsSkinCheckRadioBox1.Checked then
expDZINV(0)
else
expINV(0);
{
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
if t_ch_invoice_expitem.RecordCount>0 then begin
if MessageDlg('该发票存在单开明细,确认按照单开明细导出吗?',mtWarning,[mbYes,mbNo],0)=mrYes then begin
t_ch_invoice_expitem.close;
expduiINV();
end;
Exit;
end;
t_ch_invoice_expitem.close;
try
str:=Tstringlist.Create;
str.Clear;
str.Add('');
str.Add('');
str.Add('2.0');//56
str.Add('');
str.Add('1');
str.Add('1'); //此文件含有的单据信息数量
str.Add('');
str.Add('');
str.Add(''+t_ch_invoice.FieldByName('申请编号').AsString+''); //单据号(20字节)
FPTT:=trim(t_ch_invoice.FieldByName('发票抬头').AsString);
str.Add(''+FPTT+''); //购方名称(100字节)
//showmessage(IntToStr(kbmMemTable1.RecordCount));
if kbmMemTable1.Locate('NAME',FPTT,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
SH:=kbmMemTable1.fieldbyname('SH').AsString;
DZ:=kbmMemTable1.fieldbyname('DZ').AsString;
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
str.Add(''+SH+''); //购方税号
str.Add(''+trim(ZH)+''); //购方银行账号(100字节)
str.Add(''+trim(DZ)+''); //购方地址电话(100字节)
end else begin
showmessage('客户的名称没有录入税控系统,或导出的客户编码不是最新的。'
+#13#10+'请检查该客户是否已经录入税控系统,并从税控系统中重新导出客户编码.txt放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add(''+t_ch_invoice.FieldByName('备注').AsString+''); //备注(240字节)
str.Add('崔凤琴'); //复核人(8字节)
str.Add('崔文飞'); //收款人(8字节)
feename:= DM_CostType.Lines[0];
amount:= DBSumLower.Text;
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
str.Add(''+kbmMemTable2.FieldByName('Spbmbbh').AsString+''); //商品编码版本号
if (kbmMemTable2.FieldByName('Hsbz').AsString='True') then
str.Add('1') //含税标志
else
str.Add('0')
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('');
str.Add('');
str.Add('1'); //序号
str.Add(''+feename+'');
str.Add(' '); ////规格型号(40字节)
str.Add('票'); //计量单位(32字节)
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
spbm:=kbmMemTable2.FieldByName('GoodsTaxNo').AsString;
while Length(spbm)<19 do
begin
spbm:=spbm+'0';
end;
str.Add(''+spbm+''); //商品编码
str.Add(''+kbmMemTable2.FieldByName('CropGoodsNo').AsString+''); //企业商品编码
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('1'); //优惠政策标识
str.Add('1'); //零税率标识
str.Add(''); //优惠政策说明
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString)*t_ch_invoice.FieldByName('金额列表').AsFloat);
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN
begin
str.Add(''+StrAmt+''); //单价
str.Add('1'); //数量
str.Add(''+StrAmt+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
end
else
begin
str.Add(''+t_ch_invoice.FieldByName('金额列表').AsString+''); //单价
str.Add('1'); //数量
str.Add(''+t_ch_invoice.FieldByName('金额列表').AsString+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
end;
str.Add('0'); //数量
str.Add('');
str.Add('');
str.Add('');
str.Add('');
str.Add('');
str.Add(''); //
SaveDialog1.FileName:=t_ch_invoice.FieldByName('发票号码').AsString;
if SaveDialog1.Execute then
begin
str.SaveToFile(SaveDialog1.FileName+'.XML');
showmessage('文件生成成功!');
end
else
begin
showmessage('文件生成失败!');
exit;
end;
finally
FreeAndNil(Str);
end;
}
end;
function EnumChildWindowsProc(hwnd,lparam:Integer):Boolean;stdcall; //遍历税控软件窗体
begin
end;
function Tfrm_ch_invoice_jk.getfeestr: boolean; //初始化税控数据
var
i,j:integer;
str_num,str:string;
begin
fname1:='';
fname2:='';
fname3:='';
fname4:='';
fname5:='';
fname6:='';
fname7:='';
fprice1:='';
fprice2:='';
fprice3:='';
fprice4:='';
fprice5:='';
fprice6:='';
fprice7:='';
fnum:='1';
try
for i:=0 to DM_CostType.Lines.Count-1 do
begin
str:=trim(DM_CostType.Lines[i]);
if str<>'' then begin
if i=0 then begin
fname1:=str;
end;
if i=1 then begin
fname2:=str;
end;
if i=2 then begin
fname3:=str;
end;
if i=3 then begin
fname4:=str;
end;
if i=4 then begin
fname5:=str;
end;
if i=5 then begin
fname6:=str;
end;
if i=6 then begin
fname7:=str;
end;
end;
end;
for i:=0 to DM_Money.Lines.Count-1 do
begin
str:=trim(DM_Money.Lines[i]);
str_num:='';
for j:=1 to length(str) do
begin
if (str[j]='0') or (str[j]='1')
OR (str[j]='2') or (str[j]='3')
OR (str[j]='4') or (str[j]='5')
OR (str[j]='6') or (str[j]='7')
OR (str[j]='8') or (str[j]='9')
or (str[j]='.')then
begin
str_num:=str_num+str[j];
end
else
begin
end;
end;
if str<>'' then begin
if i=0 then begin
fprice1:=str_num;
end;
if i=1 then begin
fprice2:=str_num;
end;
if i=2 then begin
fprice3:=str_num;
end;
if i=3 then begin
fprice4:=str_num;
end;
if i=4 then begin
fprice5:=str_num;
end;
if i=5 then begin
fprice6:=str_num;
end;
if i=6 then begin
fprice7:=str_num;
end;
end;
end;
finally
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinPanel2Resize(Sender: TObject);
var
i:integer;
begin
if not if_reg(417) then begin
i:=round(bsSkinPanel2.Width/13);
bsSkinButton9.Width:=i;
bsSkinButton2.Width:=i;
bsSkinButton10.Width:=i;
bsSkinButton6.Width:=i;
bsSkinButton7.Width:=i;
bsSkinButton8.Width:=i;
bsSkinButton1.Width:=i;
bsSkinButton3.Width:=i;
bsSkinButton38.Width:=i;
btn2.Width:=i;
bsSkinButton44.Width:=i;
bsSkinButton45.Width:=i;
end else begin
i:=round(bsSkinPanel2.Width/14);
bsSkinButton9.Width:=i;
bsSkinButton2.Width:=i;
bsSkinButton10.Width:=i;
bsSkinButton6.Width:=i;
bsSkinButton7.Width:=i;
bsSkinButton8.Width:=i;
bsSkinButton1.Width:=i;
bsSkinButton3.Width:=i;
bsSkinButton38.Width:=i;
bsSkinButton34.Width:=i;
btn2.Width:=i;
bsSkinButton44.Width:=i;
bsSkinButton45.Width:=i;
end;
bsSkinCheckRadioBox1.Left:=btn2.Left;
end;
procedure Tfrm_ch_invoice_jk.bsSkinPageControl2Change(Sender: TObject);
begin
if bsSkinPageControl2.TabIndex=1 then
if StrToBool(get_parameters_value(85,'false')) then
begin
bsSkinTabSheet4.TabVisible:=false;
bsSkinTabSheet5.TabVisible:=false;
bsSkinTabSheet6.TabVisible:=false;
bsSkinTabSheet7.TabVisible:=false;
bsSkinTabSheet14.TabVisible:=true;
v_fee_do_bscard.Close;
v_fee_do_bscard.DataSource:=t_ch_invoice_shen1;
v_fee_do_bscard.Open;
v_fee_do_seae.Close;
v_fee_do_seai.Close;
v_fee_do_aire.Close;
v_fee_do_airi.Close;
end
else
begin
bsSkinTabSheet4.TabVisible:=true;
bsSkinTabSheet5.TabVisible:=true;
bsSkinTabSheet6.TabVisible:=true;
bsSkinTabSheet7.TabVisible:=true;
bsSkinTabSheet14.TabVisible:=false;
v_fee_do_seae.open;
v_fee_do_seai.open;
v_fee_do_aire.open;
v_fee_do_airi.open;
v_fee_do_bscard.Close;
end;
end;
procedure Tfrm_ch_invoice_jk.dxDBGridColumn43CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color(ANode.Strings[dxDBGrid11Column26.Index],ANode.Strings[dxDBGridColumn43.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.dxDBGridColumn44CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
AColor:=dxgrid_color_fee(ANode.strings[dxDBGridColumn44.Index]);
AFont.Color:=clblack;
end;
procedure Tfrm_ch_invoice_jk.fra_ch_add_do1MenuItem1Click(Sender: TObject);
begin
fra_ch_add_do1.MenuItem1Click(Sender);
end;
procedure Tfrm_ch_invoice_jk.fra_ch_add_do1bsSkinButton11Click(
Sender: TObject);
begin
fra_ch_add_do1.bsSkinButton11Click(Sender);
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton36Click(Sender: TObject);
var ASqlQuery:TADOQuery;
str1,str2:Tstringlist;
begin
ASqlQuery:=CreateAdoQuery;
str1:=Tstringlist.Create;
str2:=Tstringlist.Create;
with ASqlQuery do
try
str1.Clear;
str2.Clear;
Close;SQL.Clear;
SQL.Add('select 主提单号,sum(金额) 金额 from v_fee_do_bscard');
SQL.Add('where 工作编号=:申请编号');
SQL.Add('Group by 主提单号');
SQL.Add('order by 主提单号');
Parameters.ParamByName('申请编号').Value:=t_ch_invoice.fieldByName('申请编号').AsString;
Open;First;
while not eof do
begin
if t_ch_invoice['币别']='USD' then
str1.Add(get_parameters_value(7,'代理海运费')+fieldByName('主提单号').AsString)
else
str1.Add(get_parameters_value(147,'代理运杂费')+fieldByName('主提单号').AsString);
str2.Add(fieldByName('金额').AsString);
Next;
end;
t_ch_invoice.Edit;
t_ch_invoice['费用列表']:=str1.text;
t_ch_invoice['金额列表']:=str2.text;
t_ch_invoice.Post;
finally
Free;
str1.Free;
str2.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.DBComboBoxEh2DropDown(Sender: TObject);
var
aQuery:TADOQuery;
begin
DBComboBoxEh2.Items.Clear;
aQuery:=CreateAdoQuery;
with aQuery do
try
Close;SQL.Clear;
SQL.Add('declare @s varchar(100),@sql varchar(1000) ');
SQL.Add('set @s=(select 参数值 from t_sys_parameters_value where vl_id=512) ');
SQL.Add(' set @sql='+#39+'select 费用选择列表='+#39+#39+#39+'+ replace(@s,'+#39+','+#39+','+#39+#39+#39+' union all select '+#39+#39+#39+')+'+#39+#39+#39+#39+' ');
//SQL.Add('PRINT @sql ');
SQL.Add('exec (@sql)');
Open;
First;
while not Eof do begin
DBComboBoxEh2.Items.Add(FieldByName('费用选择列表').AsString);
Next;
end;
finally
Close;
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_jk.DM_CostTypeKeyPress(Sender: TObject;
var Key: Char);
begin
if Key=#13 then
if DM_CostType.Lines.Count>=10 then
begin
ShowMessage('发票明细不能操过10行');
abort;
end;
end;
procedure Tfrm_ch_invoice_jk.DBComboBoxEh2CloseUp(Sender: TObject;
Accept: Boolean);
begin
DBComboBoxEh2.items.Clear;
end;
procedure Tfrm_ch_invoice_jk.DBComboBoxEh2Change(Sender: TObject);
begin
if DBComboBoxEh2.Items.Count>0 then
begin
t_ch_invoice.Edit;
t_ch_invoice['费用列表']:=DBComboBoxEh2.Items.Strings[DBComboBoxEh2.ItemIndex];
if pos('场站',t_ch_invoice.FieldByName('费用列表').asstring)>0 then
begin
RxDBLookupCombo2.Value:='03';
end;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton15Click(Sender: TObject);
var aAdoQuery:TAdoQuery;
afield : variant;
i: Integer;
bsno:string;
AmtRmb,UsdRmb:double;
begin
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
try
Close;sql.Clear;
sql.Add('select count(*) c');
sql.Add('From t_ch_fee_do');
sql.Add('where 工作编号=:bsno');
Parameters.ParamByName('bsno').Value:=t_ch_invoice.FieldByName('申请编号').Value;
open;First;
if FieldByName('c').AsInteger<=0 then
begin
ShowMessage('不存在费用明细,不用拆分');
Exit;
end;
finally
free;
end;
bsno:=t_ch_invoice.FieldByName('申请编号').Value;
AmtRmb:=t_ch_invoice.FieldByName('人民币金额').AsFloat;
UsdRmb:=t_ch_invoice.FieldByName('美元金额').AsFloat;
if (t_ch_invoice.FieldByName('人民币金额').AsFloat<>0)
and (t_ch_invoice.FieldByName('美元金额').AsFloat<>0) then
begin
try
frm_ch_invoice_add_jk:=tfrm_ch_invoice_add_jk.Create (self);
frm_ch_invoice_add_jk.bsSkinCheckRadioBox3.checked:=True;
frm_ch_invoice_add_jk.bsSkinCheckRadioBox1.enabled:=false;
frm_ch_invoice_add_jk.bsSkinCheckRadioBox2.Visible:=false;
frm_ch_invoice_add_jk.wwDBLookupCombo6.Text:='USD';
frm_ch_invoice_add_jk.bsSkinCheckRadioBox8.enabled:=false;
frm_ch_invoice_add_jk.ShowModal;
finally
frm_ch_invoice_add_jk.Free;
end;
end
else
begin
ShowMessage('本票不需要拆分申请');
Exit;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton20Click(Sender: TObject);
var ASqlQuery:TADOQuery;
str1,str2:Tstringlist; //提取提单号至备注
begin
ASqlQuery:=CreateAdoQuery;
str1:=Tstringlist.Create;
str2:=Tstringlist.Create;
with ASqlQuery do
try
str1.Clear;
str2.Clear;
Close;SQL.Clear;
SQL.Add('select top 1 主提单号 from v_fee_do_bscard');
SQL.Add('where 工作编号=:申请编号');
Parameters.ParamByName('申请编号').Value:=t_ch_invoice.fieldByName('申请编号').AsString;
Open;
t_ch_invoice.Edit;
t_ch_invoice['备注']:=t_ch_invoice.fieldbyname('备注').AsString+#13#10+fieldbyname('主提单号').AsString;
t_ch_invoice.Post;
finally
Free;
str1.Free;
str2.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.readcustomer;
var
ts:Tstringlist;
List:Tstringlist;//这个主要是用来分离出 你的 每行的字
i,j:Integer;
_ts,YCSH,DQSH:string;
begin
ts:=Tstringlist.create;
list:=Tstringlist.create;
try
kbmMemTable1.EmptyTable;
kbmMemTable1.Open;
try
ts.loadfromfile(KPpath+'\客户编码.txt');
finally
end;
for i:=0 to ts.count-1 do
begin
_ts:=StringReplace (ts[i], '~~', '~', [rfReplaceAll]);
_ts:=StringReplace (_ts, ' ', '_', [rfReplaceAll]);
list.delimiter:='~';
list.delimitedText:=_ts;
if(list.Count>3 ) then begin
if(List[3]<>'') and (list[1]<>'名称') then begin
//20161116
//
//首先判断是否已经存在
//如果存在,那么判断已存内容和当前内容谁是18位税号的
//1:18位已存,当前15位:当前内容不存入内存表
//2:15位已存,当前15位:当前内容不存入内存表
//3:18位已存,当前18位:当前内容不存入内存表
//2:15位已存,当前18位:删除已存内容 加入当前内容
if kbmMemTable1.Locate('NAME',List[1],[]) then begin
YCSH:=Trim(kbmMemTable1.FieldByName('SH').AsString); //已存税号
DQSH:=Trim(List[3]);
if (Length(YCSH)=15) and (Length(DQSH)=18) then begin
kbmMemTable1.Edit;
kbmMemTable1.FieldByName('NAME').AsString := List[1];
kbmMemTable1.FieldByName('SH').AsString := List[3];
kbmMemTable1.FieldByName('DZ').AsString := List[4];
kbmMemTable1.FieldByName('ZH').AsString := List[5];
kbmMemTable1.post;
end;
end else begin
kbmMemTable1.Append;
kbmMemTable1.FieldByName('NAME').AsString := List[1];
kbmMemTable1.FieldByName('SH').AsString := List[3];
kbmMemTable1.FieldByName('DZ').AsString := List[4];
kbmMemTable1.FieldByName('ZH').AsString := List[5];
//kbmMemTable1.Append;
kbmMemTable1.post;
end;
end;
end;
end;
finally
ts.free;
list.free;
end;
end;
procedure Tfrm_ch_invoice_jk.readfeename;
var
ts:Tstringlist;
List:Tstringlist;//这个主要是用来分离出 你的 每行的字
i,j:Integer;
_ts:string;
begin
ts:=Tstringlist.create;
list:=Tstringlist.create;
try
kbmMemTable2.EmptyTable;
kbmMemTable2.Open;
ts.loadfromfile(KPpath+'\flbmxml.txt');
for i:=0 to ts.count-1 do
begin
_ts:=StringReplace (ts[i], '~~', '~', [rfReplaceAll]);
list.delimiter:='~';
list.delimitedText:=_ts;
if(list.Count>3 ) then begin
if(List[3]<>'') and (list[0]<>'//') then begin
//lst1.Items.Add('--------'+inttostr(i)+'--------');
kbmMemTable2.Append;
kbmMemTable2.FieldByName('FEENAME').AsString := List[1];
kbmMemTable2.FieldByName('GoodsTaxNo').AsString := List[11];
kbmMemTable2.FieldByName('TaxPre').AsString := List[4];
kbmMemTable2.FieldByName('CropGoodsNo').AsString := List[3];
kbmMemTable2.FieldByName('Spbmbbh').AsString := List[16];
kbmMemTable2.FieldByName('Hsbz').AsString := List[8];
kbmMemTable2.post;
end;
end;
end;
finally
ts.free;
list.free;
end;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid1Click(Sender: TObject);
begin
Change_INV(t_ch_invoice.FieldByName('发票号码').AsString);
setBankflowButtonState();
end;
procedure Tfrm_ch_invoice_jk.Change_INV(IN_ID: string);
begin
if (OLD_IN_ID='') then begin
end else begin
if (OLD_IN_ID<>t_ch_invoice.FieldByName('发票号码').AsString) then begin
OLD_IN_ID:=t_ch_invoice.FieldByName('发票号码').AsString;
tmr_UPDINV.Enabled:=false;
//触发查询 旧 询发票号、是否打印、是否作废、作废时间,并更新post。
end;
end;
end;
procedure Tfrm_ch_invoice_jk.UPDINV(IN_ID: string);
begin
qry_UPDINV.Close;
qry_UPDINV.Parameters.ParamByName('IN_ID').Value:=t_ch_invoice.FieldByName('IN_ID').AsString;
qry_UPDINV.Open;
if (DBEdit16.Text<>qry_UPDINV.FieldByName('发票号码').AsString)
or (bsSkinDBCheckRadioBox3.Checked<>qry_UPDINV.FieldByName('是否打印').AsBoolean)
or (bsSkinDBCheckRadioBox2.Checked<>qry_UPDINV.FieldByName('是否废除').AsBoolean) then
begin
//t_ch_invoice.Edit;
//t_ch_invoice.FieldByName('发票号码').Value:=qry_UPDINV.FieldByName('发票号码').AsString;
//t_ch_invoice.FieldByName('是否打印').Value:=qry_UPDINV.FieldByName('是否打印').AsString;
//t_ch_invoice.FieldByName('是否废除').Value:=qry_UPDINV.FieldByName('是否废除').AsString;
//t_ch_invoice.post;
DBEdit16.Text:=qry_UPDINV.FieldByName('发票号码').AsString;
bsSkinDBCheckRadioBox3.Checked:=qry_UPDINV.FieldByName('是否打印').AsBoolean;
bsSkinDBCheckRadioBox2.Checked:=qry_UPDINV.FieldByName('是否废除').AsBoolean;
end;
end;
procedure Tfrm_ch_invoice_jk.tmr_UPDINVTimer(Sender: TObject);
var _OLD_FPH,_NEW_FPH,_OLD_FC,_NEW_FC:string; //旧发票号 新发票号
begin
//_OLD_FPH := t_ch_invoice.FieldByName('发票号码').AsString;
//_OLD_FC := t_ch_invoice.FieldByName('是否废除').AsString;
UPDINV(t_ch_invoice.FieldByName('IN_ID').AsString);
//_NEW_FPH := t_ch_invoice.FieldByName('发票号码').AsString;
//_NEW_FC := t_ch_invoice.FieldByName('是否废除').AsString;
if (DBEdit16.Text='') then begin
if (t_ch_invoice.FieldByName('发票号码').AsString<>DBEdit16.Text) then begin
tmr_UPDINV.enabled:= False;
end else if (t_ch_invoice.FieldByName('是否废除').asboolean<>bsSkinDBCheckRadioBox2.Checked) then begin
tmr_UPDINV.enabled:= False;
end;
end
else begin
tmr_UPDINV.enabled:= False;
end;
end;
///
/// 设置银行流水匹配按钮的状态
///
procedure Tfrm_ch_invoice_jk.setBankflowButtonState();
begin
bsknpnl1_bankflow.visible:=false;
if(m_bankflowRight=false) then
exit;
//
bsknpnl1_bankflow.Visible:=True;
if( t_ch_invoice.FieldByName('是否匹配银行流水').AsBoolean) then
begin
btn4_bankflow.Enabled := not ( t_ch_invoice.FieldByName('匹配流水日期').IsNull);
btn4_bankflow.Caption:='取消[银行流水手动匹配]';
btn4_bankflow.Tag:=0;
end
else
begin
btn4_bankflow.Enabled := true;
btn4_bankflow.Caption:=' 银行流水手动匹配 ';
btn4_bankflow.Tag:=1;
end;
end;
procedure Tfrm_ch_invoice_jk.dxDBGrid1ChangeNode(Sender: TObject; OldNode,
Node: TdxTreeListNode);
begin
setBankflowButtonState();
end;
procedure Tfrm_ch_invoice_jk.btn4_bankflowClick(Sender: TObject);
var
strinfo:string;
blpp:boolean;
begin
//
if(btn4_bankflow.Tag=0) then
strinfo:='您将取消发票的手动匹配银行流水,是否继续?'
else
strinfo:='您将对未匹配银行流水的发票的进行手动匹配,是否继续?';
if(Application.MessageBox(PChar(strinfo),'手动匹配',MB_YESNO+mb_iconwarning)<>id_yes) then
Exit;
try
t_ch_invoice.Edit;
if btn4_bankflow.Tag=1 then
blpp:=True
else
blpp:=False;
t_ch_invoice.FieldByName('是否匹配银行流水').AsBoolean := blpp;
t_ch_invoice.FieldByName('匹配流水人').asstring:= employee;
t_ch_invoice.FieldByName('匹配流水日期').asDatetime:= GetDbDatetime;
t_ch_invoice.Post();
except
on ex:Exception do
begin
strinfo:='发票信息更改匹配流水状态出错:'+ex.Message;
errorlog(strinfo);
Application.MessageBox(PChar(strinfo),'错误信息',MB_ICONWARNING) ;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton37Click(Sender: TObject);
begin
if t_ch_invoice.IsEmpty then
exit;
if t_ch_invoice.FieldByName('对帐编号').AsString='' then
exit;
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
if t_ch_invoice_expitem.RecordCount=0 then begin
application.MessageBox('不存在发票单开明细!','警告:',MB_OKCANCEL);
t_ch_invoice_expitem.Close;
exit;
end;
t_ch_invoice_expitem.Close;
try
frm_ch_invoice_expitems:=tfrm_ch_invoice_expitems.Create (application);
invduino:=t_ch_invoice.fieldbyname('对帐编号').asstring;
invcurr:=t_ch_invoice.fieldbyname('币别').asstring;
frm_ch_invoice_expitems.ShowModal;
finally
frm_ch_invoice_expitems.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.expduiINV(exptype:Integer);
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,spbm,FPTT,ScriptPath:string;
USDAMT,RMBAMT:Double;
i:Integer;
begin
ScriptPath:=ExtractFilePath(ParamStr(0))+'INVEXP\';
if not DirectoryExists(ScriptPath) then
CreateDir(ScriptPath);
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
USDAMT:=0;
RMBAMT:=0;
try
str:=Tstringlist.Create;
str.Clear;
str.Add('');
str.Add('');
str.Add('2.0');//56
str.Add('');
// str.Add('1');
str.Add(''+inttostr(t_ch_invoice_expitem.RecordCount)+''); //此文件含有的单据信息数量
str.Add('');
t_ch_invoice_expitem.First;
i:=1;
while not t_ch_invoice_expitem.Eof do begin
str.Add('');
str.Add(''+t_ch_invoice.FieldByName('申请编号').AsString+inttostr(i)+''); //单据号(20字节)
FPTT:=trim(t_ch_invoice_expitem.FieldByName('发票抬头').AsString);
str.Add(''+FPTT+''); //购方名称(100字节)
//showmessage(IntToStr(kbmMemTable1.RecordCount));
if kbmMemTable1.Locate('NAME',FPTT,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
SH:=kbmMemTable1.fieldbyname('SH').AsString;
DZ:=kbmMemTable1.fieldbyname('DZ').AsString;
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
str.Add(''+SH+''); //购方税号
str.Add(''+trim(StringReplace(ZH,'#|#',' ',[]))+''); //购方银行账号(100字节)
str.Add(''+trim(DZ)+''); //购方地址电话(100字节)
end else begin
showmessage('客户的名称:'+FPTT+'没有录入税控系统,或导出的客户编码不是最新的。'
+#13#10+'请检查该客户是否已经录入税控系统,并从税控系统中重新导出客户编码.txt放入税控软件\税号\bin文件夹内。');
exit;
end;
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
str.Add(''+'USD'+floattostr(t_ch_invoice_expitem.fieldbyname('金额').AsFloat)+'*'+floattostr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString))+' 此票限付美元'+t_ch_invoice_expitem.FieldByName('备注').AsString+' ')
else str.Add(''+t_ch_invoice_expitem.FieldByName('备注').AsString+' ');
str.Add('崔凤琴'); //复核人(8字节)
str.Add('崔文飞'); //收款人(8字节)
feename:=trim(t_ch_invoice_expitem.FieldByName('费用名称').AsString);
amount:= DBSumLower.Text;
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
str.Add(''+kbmMemTable2.FieldByName('Spbmbbh').AsString+''); //商品编码版本号
if (kbmMemTable2.FieldByName('Hsbz').AsString='True') then
str.Add('1') //含税标志
else
str.Add('0')
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('');
str.Add('');
str.Add('1'); //序号
str.Add(''+feename+'');
{
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN
begin
str.Add(''+t_ch_invoice.FieldByName('费用列表').AsString+''); //商品名称,金额为负数时此项为折扣行数
end
else
begin
str.Add('代理运杂费'); //商品名称,金额为负数时此项为折扣行数
end;
}
str.Add(' '); ////规格型号(40字节)
str.Add('票'); //计量单位(32字节)
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
spbm:=kbmMemTable2.FieldByName('GoodsTaxNo').AsString;
while Length(spbm)<19 do
begin
spbm:=spbm+'0';
end;
str.Add(''+spbm+''); //商品编码
str.Add(''+kbmMemTable2.FieldByName('CropGoodsNo').AsString+''); //企业商品编码
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('1'); //优惠政策标识
str.Add('1'); //零税率标识
str.Add(''); //优惠政策说明
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString)*t_ch_invoice_expitem.FieldByName('金额').AsFloat);
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
begin
str.Add(''+StrAmt+''); //单价
str.Add('1'); //数量
str.Add(''+StrAmt+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
end
else
begin
str.Add(''+t_ch_invoice_expitem.FieldByName('金额').AsString+''); //单价
str.Add('1'); //数量
str.Add(''+t_ch_invoice_expitem.FieldByName('金额').AsString+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
end;
str.Add('0'); //数量
str.Add('');
str.Add('');
str.Add('');
i:=i+1;
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
begin
USDAMT:=USDAMT+t_ch_invoice_expitem.FieldByName('金额').AsFloat;
end else begin
RMBAMT:=RMBAMT+t_ch_invoice_expitem.FieldByName('金额').AsFloat;
end;
t_ch_invoice_expitem.Next;
end;
str.Add('');
str.Add('');
str.Add(''); //
if (exptype=1) then begin
str.SaveToFile(ScriptPath
+t_ch_invoice.FieldByName('发票号码').AsString
+FormatDateTime('yyyy',now)
+FormatDateTime('mm',now)
+FormatDateTime('dd',now)
+FormatDateTime('hh',now)
+FormatDateTime('nn',now)+'.XML');
ShowMessage('文件生成成功,共开出'+IntToStr(i)+'张发票,合计金额 美元:'+FloatToStr(USDAMT)+',人民币:'+FloatToStr(RMBAMT));
end else begin
SaveDialog1.FileName:=t_ch_invoice.FieldByName('发票号码').AsString;
if SaveDialog1.Execute then
begin
str.SaveToFile(SaveDialog1.FileName+'.XML');
ShowMessage('文件生成成功,共开出'+IntToStr(i)+'张发票,合计金额 美元:'+FloatToStr(USDAMT)+',人民币:'+FloatToStr(RMBAMT));
end
else
begin
showmessage('文件生成失败!');
exit;
end;
end;
finally
t_ch_invoice_expitem.Close;
FreeAndNil(Str);
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton34Click(Sender: TObject);
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,spbm,FPTT,ScriptPath:string;
i:Integer;
begin
if dxDBGrid1.SelectedCount>0 then
begin
for i:=0 to dxDBGrid1.SelectedCount-1 do
begin
t_ch_invoice.GotoBookmark(pointer(dxDBGrid1.selectedrows[i]));
if bsSkinCheckRadioBox1.Checked then
expDZINV(1)
else
expINV(1);
end;
end
else
begin
if bsSkinCheckRadioBox1.Checked then
expDZINV(1)
else
expINV(1);
end;
end;
procedure Tfrm_ch_invoice_jk.expINV(exptype: Integer);
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,spbm,FPTT,ScriptPath:string;
begin
ScriptPath:=ExtractFilePath(ParamStr(0))+'INVEXP\';
if not DirectoryExists(ScriptPath) then
CreateDir(ScriptPath);
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
if t_ch_invoice_expitem.RecordCount>0 then begin
if MessageDlg('该发票存在单开明细,确认按照单开明细导出吗?',mtWarning,[mbYes,mbNo],0)=mrYes then begin
t_ch_invoice_expitem.close;
expduiINV(exptype);
end;
Exit;
end;
t_ch_invoice_expitem.close;
try
str:=Tstringlist.Create;
str.Clear;
str.Add('');
str.Add('');
str.Add('2.0');//56
str.Add('');
str.Add('1');
str.Add('1'); //此文件含有的单据信息数量
str.Add('');
str.Add('');
str.Add(''+t_ch_invoice.FieldByName('申请编号').AsString+''); //单据号(20字节)
FPTT:=trim(t_ch_invoice.FieldByName('发票抬头').AsString);
str.Add(''+FPTT+''); //购方名称(100字节)
//showmessage(IntToStr(kbmMemTable1.RecordCount));
if kbmMemTable1.Locate('NAME',FPTT,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
SH:=kbmMemTable1.fieldbyname('SH').AsString;
DZ:=kbmMemTable1.fieldbyname('DZ').AsString;
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
str.Add(''+SH+''); //购方税号
str.Add(''+trim(StringReplace(ZH,'#|#',' ',[]))+''); //购方银行账号(100字节)
str.Add(''+trim(DZ)+''); //购方地址电话(100字节)
end else begin
showmessage('客户的名称没有录入税控系统,或导出的客户编码不是最新的。'
+#13#10+'请检查该客户是否已经录入税控系统,并从税控系统中重新导出客户编码.txt放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add(''+t_ch_invoice.FieldByName('备注').AsString+''); //备注(240字节)
str.Add('崔凤琴'); //复核人(8字节)
str.Add('崔文飞'); //收款人(8字节)
feename:= DM_CostType.Lines[0];
amount:= DBSumLower.Text;
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
str.Add(''+kbmMemTable2.FieldByName('Spbmbbh').AsString+''); //商品编码版本号
if (kbmMemTable2.FieldByName('Hsbz').AsString='True') then
str.Add('1') //含税标志
else
str.Add('0')
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('');
str.Add('');
str.Add('1'); //序号
str.Add(''+feename+'');
{
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN
begin
str.Add(''+t_ch_invoice.FieldByName('费用列表').AsString+''); //商品名称,金额为负数时此项为折扣行数
end
else
begin
str.Add('代理运杂费'); //商品名称,金额为负数时此项为折扣行数
end;
}
str.Add(' '); ////规格型号(40字节)
str.Add('票'); //计量单位(32字节)
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
spbm:=kbmMemTable2.FieldByName('GoodsTaxNo').AsString;
while Length(spbm)<19 do
begin
spbm:=spbm+'0';
end;
str.Add(''+spbm+''); //商品编码
str.Add(''+kbmMemTable2.FieldByName('CropGoodsNo').AsString+''); //企业商品编码
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('1'); //优惠政策标识
str.Add('1'); //零税率标识
str.Add(''); //优惠政策说明
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString)*t_ch_invoice.FieldByName('金额列表').AsFloat);
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN
begin
str.Add(''+StrAmt+''); //单价
str.Add('1'); //数量
str.Add(''+StrAmt+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
end
else
begin
str.Add(''+t_ch_invoice.FieldByName('金额列表').AsString+''); //单价
str.Add('1'); //数量
str.Add(''+t_ch_invoice.FieldByName('金额列表').AsString+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
end;
str.Add('0'); //数量
str.Add('');
str.Add('');
str.Add('');
str.Add('');
str.Add('');
str.Add(''); //
if (exptype=1) then begin
str.SaveToFile(ScriptPath
+t_ch_invoice.FieldByName('发票号码').AsString
+FormatDateTime('yyyy',now)
+FormatDateTime('mm',now)
+FormatDateTime('dd',now)
+FormatDateTime('hh',now)
+FormatDateTime('nn',now)+'.XML');
end else begin
SaveDialog1.FileName:=t_ch_invoice.FieldByName('发票号码').AsString;
if SaveDialog1.Execute then
begin
str.SaveToFile(SaveDialog1.FileName+'.XML');
showmessage('文件生成成功!');
end
else
begin
showmessage('文件生成失败!');
exit;
end;
end;
finally
FreeAndNil(Str);
end;
end;
procedure Tfrm_ch_invoice_jk.expDZduiINV(exptype: Integer);
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,spbm,FPTT,ScriptPath:string;
i:Integer;
aQuery,aQuery2:TADOQuery;
begin
ScriptPath:=ExtractFilePath(ParamStr(0))+'DZINVEXP\';
if not DirectoryExists(ScriptPath) then
CreateDir(ScriptPath);
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
aQuery:=CreateAdoQuery;
aQuery2:=CreateAdoQuery;
try
str:=Tstringlist.Create;
str.Clear;
str.Add('');
str.Add('');
aQuery.Close;
aQuery.SQL.Clear;
aQuery.SQL.Add('select top 1 * from t_sys_company');
aQuery.Open;
t_ch_invoice_expitem.First;
i:=1;
while not t_ch_invoice_expitem.Eof do begin
str.Add('');//56
str.Add('');//56
str.Add(''+t_ch_invoice.FieldByName('申请编号').AsString+inttostr(i)+''); //单据号(20字节)
str.Add('0');
str.Add('33.0');
str.Add(''+aQuery.fieldbyname('税务登记号').AsString+''); //购方税号
str.Add(''+aQuery.fieldbyname('全称').AsString+''); //购方税号
str.Add(''+aQuery.fieldbyname('地址').AsString+aQuery.fieldbyname('电话').AsString+''); //购方税号
aQuery2.Close;
aQuery2.SQL.Clear;
aQuery2.SQL.Add('select top 1 * from t_sys_bank where 币别='''+t_ch_invoice.FieldByName('币别').AsString+'''');
aQuery2.Open;
if (not aQuery2.IsEmpty) then
str.Add(''+aQuery2.fieldbyname('银行名称').AsString+aQuery2.fieldbyname('银行账号').AsString+'') //购方税号
else str.Add(''); //购方税号
FPTT:=trim(t_ch_invoice_expitem.FieldByName('发票抬头').AsString);
//showmessage(IntToStr(kbmMemTable1.RecordCount));
if kbmMemTable1.Locate('NAME',FPTT,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
SH:=kbmMemTable1.fieldbyname('SH').AsString;
DZ:=kbmMemTable1.fieldbyname('DZ').AsString;
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
if (Pos('#|#',ZH)>0) then begin
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN begin
ZH:=Copy(ZH,Pos('#|#',ZH)+3,Length(ZH)-Pos('#|#',ZH)-2);
end else begin
ZH:=Copy(ZH,0,Pos('#|#',ZH)-1);
end;
end;
str.Add(''+SH+''); //购方税号
str.Add(''+FPTT+''); //购方名称(100字节)
str.Add(''+trim(DZ)+''); //购方地址电话(100字节)
str.Add(''+ZH+''); //购方银行账号(100字节)
end else begin
showmessage('客户的名称:'+FPTT+'没有录入税控系统,或导出的客户编码不是最新的。'
+#13#10+'请检查该客户是否已经录入税控系统,并从税控系统中重新导出客户编码.txt放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add(''+t_ch_invoice.FieldByName('制单人').AsString+''); //复核人(8字节)
str.Add('崔文飞'); //收款人(8字节)
str.Add('崔凤琴'); //复核人(8字节)
str.Add(''); //复核人(8字节)
str.Add('');
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString)*t_ch_invoice_expitem.FieldByName('金额').AsFloat)
else
StrAmt:=t_ch_invoice_expitem.FieldByName('金额').AsString;
str.Add(''+StrAmt+'');
str.Add(''+StrAmt+''); //复核人(8字节)
str.Add('0'); //复核人(8字节)
feename:=trim(t_ch_invoice_expitem.FieldByName('费用名称').AsString);
amount:= DBSumLower.Text;
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
{
if (kbmMemTable2.FieldByName('Hsbz').AsString='True') then
str.Add('1') //含税标志
else
}
str.Add('0')
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
str.Add(''+'USD'+floattostr(t_ch_invoice_expitem.fieldbyname('金额').AsFloat)+'*'+floattostr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString))+' 此票限付美元'+t_ch_invoice_expitem.FieldByName('备注').AsString+' ')
else str.Add(''+t_ch_invoice_expitem.FieldByName('备注').AsString+' ');
str.Add('');
str.Add('');
str.Add('');
str.Add('0'); //序号
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
spbm:=kbmMemTable2.FieldByName('GoodsTaxNo').AsString;
while Length(spbm)<19 do
begin
spbm:=spbm+'0';
end;
str.Add(''+spbm+''); //商品编码
str.Add(''+spbm+''); //商品编码
// str.Add(''+kbmMemTable2.FieldByName('CropGoodsNo').AsString+''); //企业商品编码
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('1'); //优惠政策标识
str.Add('1'); //零税率标识
str.Add(''); //优惠政策说明
str.Add(''+feename+'');
str.Add(''); ////规格型号(40字节)
str.Add('票');
str.Add('1'); //数量
str.Add(''+StrAmt+''); //单价
str.Add(''+StrAmt+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
str.Add('0'); //税率
str.Add('0'); //数量
str.Add('');
str.Add('');
str.Add('');
i:=i+1;
t_ch_invoice_expitem.Next;
end;
str.Add(''); //
if (exptype=1) then begin
str.SaveToFile(ScriptPath
+t_ch_invoice.FieldByName('发票号码').AsString
+FormatDateTime('yyyy',now)
+FormatDateTime('mm',now)
+FormatDateTime('dd',now)
+FormatDateTime('hh',now)
+FormatDateTime('nn',now)+'.XML');
end else begin
SaveDialog1.FileName:=t_ch_invoice.FieldByName('发票号码').AsString;
if SaveDialog1.Execute then
begin
str.SaveToFile(SaveDialog1.FileName+'.XML');
showmessage('文件生成成功!');
end
else
begin
showmessage('文件生成失败!');
exit;
end;
end;
finally
t_ch_invoice_expitem.Close;
FreeAndNil(Str);
FreeAndNil(aQuery);
FreeAndNil(aQuery2);
end;
end;
procedure Tfrm_ch_invoice_jk.expDZINV(exptype: Integer);
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,spbm,FPTT,ScriptPath:string;
aQuery:TADOQuery;
begin
ScriptPath:=ExtractFilePath(ParamStr(0))+'INVDZEXP\';
if not DirectoryExists(ScriptPath) then
CreateDir(ScriptPath);
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
if t_ch_invoice_expitem.RecordCount>0 then begin
if MessageDlg('该发票存在单开明细,确认按照单开明细导出吗?',mtWarning,[mbYes,mbNo],0)=mrYes then begin
t_ch_invoice_expitem.close;
expDZduiINV(exptype);
end;
Exit;
end;
t_ch_invoice_expitem.close;
aQuery:=CreateAdoQuery;
try
str:=Tstringlist.Create;
str.Clear;
str.Add('');
str.Add('');
str.Add('');
str.Add('');
str.Add(''+t_ch_invoice.FieldByName('申请编号').AsString+''); //单据号(20字节)
str.Add('0');
str.Add('33.0');
aQuery.Close;
aQuery.SQL.Clear;
aQuery.SQL.Add('select top 1 * from t_sys_company');
aQuery.Open;
str.Add(''+aQuery.fieldbyname('税务登记号').AsString+''); //购方税号
str.Add(''+aQuery.fieldbyname('全称').AsString+''); //购方税号
str.Add(''+aQuery.fieldbyname('地址').AsString+aQuery.fieldbyname('电话').AsString+''); //购方税号
aQuery.Close;
aQuery.SQL.Clear;
aQuery.SQL.Add('select top 1 * from t_sys_bank where 币别='''+t_ch_invoice.FieldByName('币别').AsString+'''');
aQuery.Open;
if (not aQuery.IsEmpty) then
str.Add(''+aQuery.fieldbyname('银行名称').AsString+aQuery.fieldbyname('银行账号').AsString+'') //购方税号
else str.Add(''); //购方税号
FPTT:=trim(t_ch_invoice.FieldByName('发票抬头').AsString);
//showmessage(IntToStr(kbmMemTable1.RecordCount));
if kbmMemTable1.Locate('NAME',FPTT,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
SH:=kbmMemTable1.fieldbyname('SH').AsString;
DZ:=kbmMemTable1.fieldbyname('DZ').AsString;
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
if (Pos('#|#',ZH)>0) then begin
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN begin
ZH:=Copy(ZH,Pos('#|#',ZH)+3,Length(ZH)-Pos('#|#',ZH)-2);
end else begin
ZH:=Copy(ZH,0,Pos('#|#',ZH)-1);
end;
end;
str.Add(''+SH+''); //购方税号
str.Add(''+FPTT+''); //购方名称(100字节)
str.Add(''+trim(DZ)+''); //购方地址电话(100字节)
str.Add(''+ZH+''); //购方银行账号(100字节)
end else begin
showmessage('客户的名称没有录入税控系统,或导出的客户编码不是最新的。'
+#13#10+'请检查该客户是否已经录入税控系统,并从税控系统中重新导出客户编码.txt放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add(''+t_ch_invoice.FieldByName('制单人').AsString+''); //复核人(8字节)
str.Add('崔文飞'); //收款人(8字节)
str.Add('崔凤琴'); //复核人(8字节)
str.Add(''); //复核人(8字节)
str.Add('');
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString)*t_ch_invoice.FieldByName('金额列表').AsFloat)
else
StrAmt:=t_ch_invoice.FieldByName('金额列表').AsString;
str.Add(''+StrAmt+'');
str.Add(''+StrAmt+''); //复核人(8字节)
str.Add('0');
feename:= DM_CostType.Lines[0];
amount:= DBSumLower.Text;
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
// str.Add(''+kbmMemTable2.FieldByName('Spbmbbh').AsString+''); //商品编码版本号
{ if (kbmMemTable2.FieldByName('Hsbz').AsString='True') then
str.Add('1') //含税标志
else
}
str.Add('0')
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add(''+t_ch_invoice.FieldByName('备注').AsString+''); //备注(240字节)
str.Add('');
str.Add('');
str.Add('');
str.Add('0');
if kbmMemTable2.Locate('FEENAME',feename,[]) then begin
spbm:=kbmMemTable2.FieldByName('GoodsTaxNo').AsString;
while Length(spbm)<19 do
begin
spbm:=spbm+'0';
end;
str.Add(''+spbm+''); //商品编码
str.Add(''+spbm+''); //商品编码
end else begin
showmessage('缺少费用代码文件。'
+#13#10+'请\从税控系统中重新导出商品编码.txt,改名为flbmxml.txt'
+#13#10+',并放入税控软件\税号\bin文件夹内。');
exit;
end;
str.Add('1'); //优惠政策标识
str.Add('1'); //零税率标识
str.Add(''); //优惠政策说明
str.Add(''+feename+'');
str.Add(''); ////规格型号(40字节)
str.Add('票');
str.Add('1'); //数量
str.Add(''+StrAmt+''); //单价
str.Add(''+StrAmt+''); //金额,当金额为负数时为折扣行
str.Add('0'); //税率
str.Add('0');
str.Add('0'); //数量
str.Add('');
str.Add('');
str.Add('');
str.Add(''); //
if (exptype=1) then begin
str.SaveToFile(ScriptPath
+t_ch_invoice.FieldByName('发票号码').AsString
+FormatDateTime('yyyy',now)
+FormatDateTime('mm',now)
+FormatDateTime('dd',now)
+FormatDateTime('hh',now)
+FormatDateTime('nn',now)+'.XML');
end else begin
SaveDialog1.FileName:=t_ch_invoice.FieldByName('发票号码').AsString;
if SaveDialog1.Execute then
begin
str.SaveToFile(SaveDialog1.FileName+'.XML');
showmessage('文件生成成功!');
end
else
begin
showmessage('文件生成失败!');
exit;
end;
end;
finally
FreeAndNil(Str);
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton39Click(Sender: TObject);
begin
expDZINV(0)
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_itemAfterPost(DataSet: TDataSet);
var aAdoQuery:TAdoQuery;
amt:Double;
begin
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
try
close;
SQL.clear;
sql.add('select sum(金额+税额) Amt');
sql.Add('from t_ch_invoice_item ');
sql.Add('where IN_ID=:IN_ID');
Parameters.ParamByName('IN_ID').Value:=t_ch_invoice.fieldbyname('IN_ID').AsInteger;
Open;First;
amt:=fieldbyname('Amt').AsFloat;
if Abs(Amt)<0.1 then
begin
close;
SQL.clear;
sql.add('update t_ch_invoice set 开票金额=:合计金额,实际金额=:实际金额,金额大写=:金额大写');
sql.Add('where IN_ID=:IN_ID');
Parameters.ParamByName('IN_ID').Value:=t_ch_invoice.fieldbyname('IN_ID').AsInteger;
Parameters.ParamByName('合计金额').Value:=Amt;
Parameters.ParamByName('实际金额').Value:=Amt;
if Amt<0 then
begin
Parameters.ParamByName('金额大写').Value:=FloatToStr(Amt)+'(付)';
end
else
Parameters.ParamByName('金额大写').Value:=FloatToStr(Amt);
ExecSQL;
end
else
begin
close;
SQL.clear;
sql.add('update t_ch_invoice set 开票金额=:合计金额,实际金额=:实际金额,金额大写=:金额大写');
sql.Add('where IN_ID=:IN_ID');
Parameters.ParamByName('IN_ID').Value:=t_ch_invoice.fieldbyname('IN_ID').AsInteger;
Parameters.ParamByName('合计金额').Value:=Amt;
Parameters.ParamByName('实际金额').Value:=Amt;
if Amt<0 then
begin
Parameters.ParamByName('金额大写').Value:=invoice_max(Amt,''+'(付)');
end
else
Parameters.ParamByName('金额大写').Value:=invoice_max(Amt,'');
ExecSQL;
end;
t_ch_invoice.Refresh;
finally
Free;
end;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_itemBeforeEdit(
DataSet: TDataSet);
begin
if not modify_all then
begin
if t_ch_invoice.FieldByName('是否废除').asboolean then
begin
showmessage('发票已经废除,不能修改!!');
abort;
end;
if t_ch_invoice.FieldByName('财务').asboolean then
begin
showmessage('发票生成凭证,不能修改!!');
abort;
end;
if t_ch_invoice.FieldByName('是否打印').asboolean then
begin
showmessage('发票已经打印,不能修改!!');
abort;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_itemBeforeInsert(
DataSet: TDataSet);
begin
if t_ch_invoice.state in [dsedit,dsinsert] then t_ch_invoice.post;
end;
procedure Tfrm_ch_invoice_jk.DBComboBoxEh1Change(Sender: TObject);
var
aQuery:TADOQuery;
begin
aQuery:=CreateAdoQuery;
with aQuery do
try
Close;SQL.Clear;
SQL.Add('select 发票抬头,纳税人识别号,地址电话,开户行及帐号,纳税类型 from t_crm_client_Invoice');
SQL.Add('Where 客户简称=:客户简称 and 发票抬头=:发票抬头');
Parameters.ParamByName('客户简称').Value:=t_ch_invoice.FieldByName('客户名称').AsString;
Parameters.ParamByName('发票抬头').Value:=Trim(DBComboBoxEh1.Text);
if (t_ch_invoice.FieldByName('实际币别').AsString<>'') then
SQL.Add(' and 币别='''+t_ch_invoice.FieldByName('实际币别').AsString+'''');
open;
if not IsEmpty then
begin
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
DBComboBoxEh4.Text:=FieldByName('纳税人识别号').AsString;
DBComboBoxEh5.Text:=FieldByName('地址电话').AsString;
DBComboBoxEh6.Text:=FieldByName('开户行及帐号').AsString;
// DBEdit31.Text:=FieldByName('纳税类型').AsString;
end
end
else
begin
Close;SQL.Clear;
SQL.Add('select distinct 发票抬头,纳税人识别号,地址电话,开户行及账号,纳税类型 from t_ch_invoice');
SQL.Add('Where 发票抬头=:发票抬头 and 纳税人识别号<>'''' and 地址电话<>'''' and 开户行及账号<>'''' ');
Parameters.ParamByName('发票抬头').Value:=Trim(DBComboBoxEh1.Text);
Open;
First;
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
DBComboBoxEh4.Text:=FieldByName('纳税人识别号').AsString;
DBComboBoxEh5.Text:=FieldByName('地址电话').AsString;
DBComboBoxEh6.Text:=FieldByName('开户行及账号').AsString;
// DBEdit31.Text:=FieldByName('纳税类型').AsString;
end;
end;
finally
Close;
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo2Change(Sender: TObject);
begin
if (t_ch_invoice_item.state=dsinsert)or(t_ch_invoice_item.state=dsedit) then
begin
if not frm_data_share.t_code_goods_inv.IsEmpty then
if frm_data_share.t_code_goods_inv.Locate('商品名称',wwDBLookupCombo2.text,[])then
begin
t_ch_invoice_item['税率']:=frm_data_share.t_code_goods_inv.fieldbyname('税率').AsFloat;
t_ch_invoice_item['商品编码']:=frm_data_share.t_code_goods_inv.fieldbyname('商品编码').AsString;
t_ch_invoice_item['规格型号']:=frm_data_share.t_code_goods_inv.fieldbyname('规格型号').AsString;
t_ch_invoice_item['计量单位']:=frm_data_share.t_code_goods_inv.fieldbyname('单位').AsString;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_itemBeforePost(
DataSet: TDataSet);
var
Amt,price:double;
begin
if trim(DataSet.FieldByName('商品名称').asstring)='' then
begin
showmessage('商品名称不能为空!!');
abort;
end;
{
if DataSet.FieldByName('单价').AsFloat=0 then
begin
showmessage('单价不能为空!!');
abort;
end;
if DataSet.FieldByName('数量').AsFloat=0 then
begin
showmessage('数量不能为空!!');
abort;
end;
}
if DataSet.fieldbyname('含税单价').asfloat<>0 then
begin
DataSet.fieldbyname('单价').asfloat:=DataSet.fieldbyname('含税单价').asfloat/(1+DataSet.fieldbyname('税率').asfloat/100);
DataSet.FieldByName('税额').Value:=s_w(2,DataSet.fieldbyname('数量').asfloat*DataSet.fieldbyname('含税单价').asfloat/(1+DataSet.fieldbyname('税率').asfloat/100)*DataSet.fieldbyname('税率').asfloat/100);
DataSet.FieldByName('金额').Value:=s_w(strtoint(apointnum),DataSet.fieldbyname('含税单价').asfloat*DataSet.fieldbyname('数量').asfloat-DataSet.FieldByName('税额').Value)
end
else
begin
price:=DataSet.fieldbyname('单价').asfloat*DataSet.fieldbyname('税率').asfloat/100+DataSet.fieldbyname('单价').asfloat;
DataSet.FieldByName('金额').Value:=s_w(strtoint(apointnum),DataSet.fieldbyname('单价').asfloat*DataSet.fieldbyname('数量').asfloat);
price:=s_w(strtoint(apointnum),price);
Amt:=s_w(strtoint(apointnum),price*DataSet.fieldbyname('数量').asfloat);
DataSet.FieldByName('税额').Value:=s_w(strtoint(apointnum),Amt/(1+DataSet.fieldbyname('税率').AsFloat/100)*DataSet.fieldbyname('税率').AsFloat/100);
end;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_itemNewRecord(DataSet: TDataSet);
begin
DataSet.FieldByName('商品名称').asstring:='';
DataSet.FieldByName('规格型号').asstring:='0';
DataSet.FieldByName('计量单位').asstring:='票';
DataSet.FieldByName('数量').AsInteger:=1;
DataSet.FieldByName('单价').AsFloat:=0;
DataSet.FieldByName('金额').AsFloat:=0;
DataSet.FieldByName('税率').AsFloat:=frm_data_share.t_sys_company.fieldbyname('税率').AsFloat;
DataSet.FieldByName('税额').AsFloat:=0;
DataSet.FieldByName('折扣').AsFloat:=0;
DataSet.FieldByName('备注').asstring:='';
DataSet.FieldByName('含税价标志').Value:=0;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_itemvatPriceFieldChange(
Sender: TField);
begin
try
Sender.DataSet.fieldbyname('单价').asfloat:=Sender.DataSet.fieldbyname('含税单价').asfloat/(1+Sender.DataSet.fieldbyname('税率').asfloat/100);
Sender.DataSet.FieldByName('税额').Value:=s_w(2,Sender.DataSet.fieldbyname('数量').asfloat*Sender.DataSet.fieldbyname('含税单价').asfloat/(1+Sender.DataSet.fieldbyname('税率').asfloat/100)*Sender.DataSet.fieldbyname('税率').asfloat/100);
Sender.DataSet.FieldByName('金额').Value:=s_w(strtoint(apointnum),Sender.DataSet.fieldbyname('含税单价').asfloat*Sender.DataSet.fieldbyname('数量').asfloat-Sender.DataSet.FieldByName('税额').Value)
finally
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton40Click(Sender: TObject);
var
str,PostUrl:string;
book1:Tbookmark;
IdHttp : TIdHTTP;
errmsg : string;//请求地址
ResponseStream : TStringStream; //返回信息
ResponseStr: string;
RequestStr : string; //请求信息
RequestStream : TStringStream;
jo: ISuperObject;
i,k:Integer;
sl:TStrings;
begin
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
if (not t_ch_invoice_expitem.IsEmpty) then begin
if (t_ch_invoice.FieldByName('是否拆分').AsString='1') then begin
end else begin
if MessageDlg(' 此发票需要进行自助拆分'+#13#10+'确实要拆分吗?',mtWarning,[mbyes,mbno],0)=mryes then
begin
bsSkinButton43.OnClick(nil);
end;
Exit;
end;
end;
str:=str+'{';
str:=str+'"bill":"'+t_ch_invoice.fieldbyname('IN_ID').AsString+'"';
str:=str+'}';
PostUrl:=get_parameters_value(2124,'')+'/Dispatch/NNMakeInv';
IdHttp := TIdHTTP.Create(nil);
IdHTTP.HTTPOptions := IdHTTP.HTTPOptions + [hoKeepOrigProtocol]; //必须有这行才使设置协议版本生效
IdHTTP.ProtocolVersion := pv1_1;
IdHttp.HandleRedirects:=true;
IdHttp.Request.UserAgent:='Mozilla/3.0 (compatible; Indy Library)';
idhttp.Request.ContentType:='application/json;charset=UTF-8';
ResponseStream := TStringStream.Create('');
RequestStream := TStringStream.Create('');
sl:=tstringlist.create();
sl.add(str);
jo := SO(str);
try
try
RequestStr:=jo.AsJSon(True);
RequestStream.WriteString(RequestStr);
IdHttp.post(PostUrl,RequestStream,ResponseStream);
except
IdHttp.post(PostUrl,RequestStream,ResponseStream);
end;
ResponseStr := ResponseStream.DataString;
ResponseStr := UTF8Decode(ResponseStr);
if Pos(':true',ResponseStr)>0 then
begin
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
end else
begin
i:= Pos('"Message":' ,ResponseStr);
errmsg :=Copy(ResponseStr ,i+12,Length(ResponseStr)-i-12);
errmsg :=Copy(errmsg ,0,Pos('"' ,errmsg));
if (errmsg<>'"') then
MessageDlg(errmsg,mtError,[mbok],0)
else begin
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
end;
end;
finally
IdHttp.Free;
RequestStream.Free;
ResponseStream.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton41Click(Sender: TObject);
var
str,PostUrl:string;
book1:Tbookmark;
IdHttp : TIdHTTP;
errmsg : string;//请求地址
ResponseStream : TStringStream; //返回信息
ResponseStr: string;
RequestStr : string; //请求信息
RequestStream : TStringStream;
jo: ISuperObject;
i,k:Integer;
sl:TStrings;
begin
str:=str+'{';
str:=str+'"bill":"'+t_ch_invoice.fieldbyname('IN_ID').AsString+'"';
str:=str+'}';
PostUrl:=get_parameters_value(2124,'')+'/Dispatch/NNReadInv';
IdHttp := TIdHTTP.Create(nil);
IdHTTP.HTTPOptions := IdHTTP.HTTPOptions + [hoKeepOrigProtocol]; //必须有这行才使设置协议版本生效
IdHTTP.ProtocolVersion := pv1_1;
IdHttp.HandleRedirects:=true;
IdHttp.Request.UserAgent:='Mozilla/3.0 (compatible; Indy Library)';
idhttp.Request.ContentType:='application/json;charset=UTF-8';
ResponseStream := TStringStream.Create('');
RequestStream := TStringStream.Create('');
sl:=tstringlist.create();
sl.add(str);
jo := SO(str);
try
try
RequestStr:=jo.AsJSon(True);
RequestStream.WriteString(RequestStr);
IdHttp.post(PostUrl,RequestStream,ResponseStream);
except
IdHttp.post(PostUrl,RequestStream,ResponseStream);
end;
ResponseStr := ResponseStream.DataString;
ResponseStr := UTF8Decode(ResponseStr);
if Pos(':true',ResponseStr)>0 then
begin
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
end else
begin
i:= Pos('"Message":' ,ResponseStr);
errmsg :=Copy(ResponseStr ,i+12,Length(ResponseStr)-i-12);
errmsg :=Copy(errmsg ,0,Pos('"' ,errmsg));
if (errmsg<>'"') then
MessageDlg(errmsg,mtError,[mbok],0)
else begin
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
end;
end;
finally
IdHttp.Free;
RequestStream.Free;
ResponseStream.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton42Click(Sender: TObject);
var
str,PostUrl:string;
book1:Tbookmark;
IdHttp : TIdHTTP;
errmsg : string;//请求地址
ResponseStream : TStringStream; //返回信息
ResponseStr: string;
RequestStr : string; //请求信息
RequestStream : TStringStream;
jo: ISuperObject;
i,k:Integer;
sl:TStrings;
begin
str:=str+'{';
str:=str+'"bill":"'+t_ch_invoice.fieldbyname('IN_ID').AsString+'"';
str:=str+'}';
PostUrl:=get_parameters_value(2124,'')+'/Dispatch/NNSetRed';
IdHttp := TIdHTTP.Create(nil);
IdHTTP.HTTPOptions := IdHTTP.HTTPOptions + [hoKeepOrigProtocol]; //必须有这行才使设置协议版本生效
IdHTTP.ProtocolVersion := pv1_1;
IdHttp.HandleRedirects:=true;
IdHttp.Request.UserAgent:='Mozilla/3.0 (compatible; Indy Library)';
idhttp.Request.ContentType:='application/json;charset=UTF-8';
ResponseStream := TStringStream.Create('');
RequestStream := TStringStream.Create('');
sl:=tstringlist.create();
sl.add(str);
jo := SO(str);
try
try
RequestStr:=jo.AsJSon(True);
RequestStream.WriteString(RequestStr);
IdHttp.post(PostUrl,RequestStream,ResponseStream);
except
IdHttp.post(PostUrl,RequestStream,ResponseStream);
end;
ResponseStr := ResponseStream.DataString;
ResponseStr := UTF8Decode(ResponseStr);
if Pos(':true',ResponseStr)>0 then
begin
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
end else
begin
i:= Pos('"Message":' ,ResponseStr);
errmsg :=Copy(ResponseStr ,i+12,Length(ResponseStr)-i-12);
errmsg :=Copy(errmsg ,0,Pos('"' ,errmsg));
if (errmsg<>'"') then
MessageDlg(errmsg,mtError,[mbok],0)
else begin
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
end;
end;
finally
IdHttp.Free;
RequestStream.Free;
ResponseStream.Free;
end;
end;
procedure Tfrm_ch_invoice_jk.RxDBLookupCombo1Change(Sender: TObject);
begin
if (t_ch_invoice.state=dsedit)or(t_ch_invoice.state=dsinsert)then
begin
if not t_crm_client_Invoice.IsEmpty then begin
t_ch_invoice['纳税人识别号']:=t_crm_client_Invoice.fieldbyname('纳税人识别号').asString;
t_ch_invoice['地址电话']:=t_crm_client_Invoice.fieldbyname('地址电话').asString;
t_ch_invoice['开户行及账号']:=t_crm_client_Invoice.fieldbyname('开户行及账号').asString;
end;
end;
end;
procedure Tfrm_ch_invoice_jk.wwDBLookupCombo3Change(Sender: TObject);
VAR
total_money:real;
currency_chi:string;
aQuery:TADOQuery;
begin
//币别更改
try
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
aQuery:=CreateAdoQuery;
with aQuery do
try
Close;SQL.Clear;
SQL.Add('select 发票抬头,纳税人识别号,地址电话,开户行及帐号,纳税类型 from t_crm_client_Invoice');
SQL.Add('Where 客户简称=:客户简称 ');
Parameters.ParamByName('客户简称').Value:=t_ch_invoice.FieldByName('客户名称').AsString;
if (t_ch_invoice.FieldByName('实际币别').AsString<>'') then
SQL.Add(' and 币别='''+t_ch_invoice.FieldByName('实际币别').AsString+'''');
open;
if not IsEmpty then
begin
if (t_ch_invoice.state=dsinsert) or (t_ch_invoice.state=dsedit) then
begin
DBComboBoxEh4.Text:=FieldByName('纳税人识别号').AsString;
DBComboBoxEh5.Text:=FieldByName('地址电话').AsString;
DBComboBoxEh6.Text:=FieldByName('开户行及帐号').AsString;
t_ch_invoice['发票抬头']:=fieldbyname('发票抬头').asstring
// DBEdit31.Text:=FieldByName('纳税类型').AsString;
end
end
finally
Close;
FreeAndNil(aQuery);
end;
end;
except
;
end;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton43Click(Sender: TObject);
var
str:Tstringlist;
StrAmt,path,feename,amount,NAME,SH,DZ,ZH,spbm,FPTT,ScriptPath:string;
i:Integer;
aQuery,aQuery2:TADOQuery;
isfirst:Boolean;
book1:TBookmark;
begin
t_ch_invoice_expitem.Close;
t_ch_invoice_expitem.Open;
if (t_ch_invoice_expitem.IsEmpty) then begin
ShowMessage('无自助明细需要拆分!');
exit;
end;
if (t_ch_invoice.FieldByName('是否拆分').AsString='1') then begin
ShowMessage('已拆分,不能重复拆分!');
exit;
end;
t_ch_invoice_expitem.First;
isfirst:=true;
while not t_ch_invoice_expitem.Eof do begin
if (isfirst) then begin
t_ch_invoice.Edit;
FPTT:=trim(t_ch_invoice_expitem.FieldByName('发票抬头').AsString);
t_ch_invoice['发票抬头']:=FPTT;
if kbmMemTable1.Locate('NAME',FPTT,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
t_ch_invoice['纳税人识别号']:=kbmMemTable1.fieldbyname('SH').AsString;
t_ch_invoice['发票抬头']:=FPTT;
t_ch_invoice['地址电话']:=kbmMemTable1.fieldbyname('DZ').AsString;
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
if (Pos('#|#',ZH)>0) then begin
if t_ch_invoice.FieldByName('币别').AsString='USD' THEN begin
ZH:=Copy(ZH,Pos('#|#',ZH)+3,Length(ZH)-Pos('#|#',ZH)-2);
end else begin
ZH:=Copy(ZH,0,Pos('#|#',ZH)-1);
end;
end;
t_ch_invoice['开户行及账号']:=ZH;
end;
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString)*t_ch_invoice_expitem.FieldByName('金额').AsFloat)
else
StrAmt:=t_ch_invoice_expitem.FieldByName('金额').AsString;
feename:=trim(t_ch_invoice_expitem.FieldByName('费用名称').AsString);
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
t_ch_invoice['备注']:='USD'+floattostr(t_ch_invoice_expitem.fieldbyname('金额').AsFloat)+'*'+floattostr(GetUsdExrate(t_ch_invoice.FieldByName('开票日期').AsString))+' 此票限付美元'+t_ch_invoice_expitem.FieldByName('备注').AsString
else t_ch_invoice['备注']:=t_ch_invoice_expitem.FieldByName('备注').AsString;
t_ch_invoice['币别']:=t_ch_invoice_expitem.FieldByName('币别').AsString;
if kbmMemTable2.Locate('FEENAME',feename,[]) then
spbm:=kbmMemTable2.FieldByName('GoodsTaxNo').AsString;
while Length(spbm)<19 do
begin
spbm:=spbm+'0';
end;
t_ch_invoice['开票金额']:=t_ch_invoice['合计金额'];
t_ch_invoice['合计金额']:=StrToFloatDef(StrAmt,0);
t_ch_invoice['是否拆分']:='1';
t_ch_invoice.Post;
if (not t_ch_invoice_item.IsEmpty) then begin
t_ch_invoice_item.First;
while not t_ch_invoice_item.Eof do begin
t_ch_invoice_item.Delete;
end;
end;
t_ch_invoice_item.Insert;
t_ch_invoice_item.FieldByName('商品名称').asstring:=feename;
t_ch_invoice_item.FieldByName('商品编码').asstring:=spbm;
t_ch_invoice_item.FieldByName('计量单位').asstring:='票';
t_ch_invoice_item.FieldByName('数量').AsInteger:=1;
t_ch_invoice_item.FieldByName('单价').AsFloat:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item.FieldByName('金额').AsFloat:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item.FieldByName('含税单价').AsFloat:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item.FieldByName('税率').AsFloat:=frm_data_share.t_sys_company.fieldbyname('税率').AsFloat;
t_ch_invoice_item.FieldByName('税额').AsFloat:=0;
t_ch_invoice_item.FieldByName('折扣').AsFloat:=0;
t_ch_invoice_item.FieldByName('备注').asstring:='';
t_ch_invoice_item.FieldByName('含税价标志').Value:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item.Post;
end else begin
IF (not t_ch_invoice_insert.Active) then t_ch_invoice_insert.Open;
IF (not t_ch_invoice_item_insert.Active) then t_ch_invoice_item_insert.Open;
t_ch_invoice_insert.Insert;
t_ch_invoice_insert['发票类别']:='自由发票';
t_ch_invoice_insert['开票日期']:=date;
t_ch_invoice_insert['制单人']:=employee;
t_ch_invoice_insert['是否打印']:=0;
t_ch_invoice_insert['是否废除']:=0;
t_ch_invoice_insert['废除原因']:='';
t_ch_invoice_insert['废除人']:='';
t_ch_invoice_insert['废除日期']:=null;
t_ch_invoice_insert['申请人']:='';
t_ch_invoice_insert['申请日期']:=null;
t_ch_invoice_insert['客户名称']:=t_ch_invoice['客户名称'];
if t_sys_bank.Locate('币别',t_ch_invoice_insert['币别'],[]) then begin
t_ch_invoice_insert['开户银行']:=t_sys_bank.fieldbyname('银行名称').asstring;
t_ch_invoice_insert['银行账号']:=t_sys_bank.fieldbyname('银行账号').asstring;
end;
t_ch_invoice_insert['发票类型']:='增值税普票';
FPTT:=trim(t_ch_invoice_expitem.FieldByName('发票抬头').AsString);
t_ch_invoice_insert['发票抬头']:=FPTT;
if kbmMemTable1.Locate('NAME',FPTT,[]) then begin
NAME:=kbmMemTable1.fieldbyname('NAME').AsString;
t_ch_invoice_insert['纳税人识别号']:=kbmMemTable1.fieldbyname('SH').AsString;
t_ch_invoice_insert['地址电话']:=kbmMemTable1.fieldbyname('DZ').AsString;
ZH:=kbmMemTable1.fieldbyname('ZH').AsString;
if (Pos('#|#',ZH)>0) then begin
if t_ch_invoice_insert.FieldByName('币别').AsString='USD' THEN begin
ZH:=Copy(ZH,Pos('#|#',ZH)+3,Length(ZH)-Pos('#|#',ZH)-2);
end else begin
ZH:=Copy(ZH,0,Pos('#|#',ZH)-1);
end;
end;
t_ch_invoice_insert['开户行及账号']:=ZH;
end;
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
StrAmt:=FloatToStr(GetUsdExrate(t_ch_invoice_insert.FieldByName('开票日期').AsString)*t_ch_invoice_expitem.FieldByName('金额').AsFloat)
else
StrAmt:=t_ch_invoice_expitem.FieldByName('金额').AsString;
feename:=trim(t_ch_invoice_expitem.FieldByName('费用名称').AsString);
if t_ch_invoice_expitem.FieldByName('币别').AsString='USD' THEN
t_ch_invoice_insert['备注']:='USD'+floattostr(t_ch_invoice_expitem.fieldbyname('金额').AsFloat)+'*'+floattostr(GetUsdExrate(t_ch_invoice_insert.FieldByName('开票日期').AsString))+' 此票限付美元'+t_ch_invoice_expitem.FieldByName('备注').AsString
else t_ch_invoice_insert['备注']:=t_ch_invoice_expitem.FieldByName('备注').AsString;
t_ch_invoice_insert['币别']:=t_ch_invoice_expitem.FieldByName('币别').AsString;
t_ch_invoice_insert['合计金额']:=StrToFloatDef(StrAmt,0);
if kbmMemTable2.Locate('FEENAME',feename,[]) then
spbm:=kbmMemTable2.FieldByName('GoodsTaxNo').AsString;
while Length(spbm)<19 do
begin
spbm:=spbm+'0';
end;
t_ch_invoice_insert['是否拆分']:='1';
t_ch_invoice_insert.Post;
t_ch_invoice_item_insert.Insert;
t_ch_invoice_item_insert.FieldByName('商品名称').asstring:=feename;
t_ch_invoice_item_insert.FieldByName('商品编码').asstring:=spbm;
t_ch_invoice_item_insert.FieldByName('计量单位').asstring:='票';
t_ch_invoice_item_insert.FieldByName('数量').AsInteger:=1;
t_ch_invoice_item_insert.FieldByName('单价').AsFloat:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item_insert.FieldByName('金额').AsFloat:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item_insert.FieldByName('含税单价').AsFloat:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item_insert.FieldByName('税率').AsFloat:=frm_data_share.t_sys_company.fieldbyname('税率').AsFloat;
t_ch_invoice_item_insert.FieldByName('税额').AsFloat:=0;
t_ch_invoice_item_insert.FieldByName('折扣').AsFloat:=0;
t_ch_invoice_item_insert.FieldByName('备注').asstring:='';
t_ch_invoice_item_insert.FieldByName('含税价标志').Value:=StrToFloatDef(StrAmt,0);
t_ch_invoice_item_insert.Post;
end;
isfirst:=false;
t_ch_invoice_expitem.Next;
end;
// bsSkinTabSheet1.Show;
book1:=t_ch_invoice.GetBookmark;
t_ch_invoice.Requery;
t_ch_invoice.GotoBookmark(book1);
t_ch_invoice.First;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton45Click(Sender: TObject);
begin
if not t_ch_invoice.Bof then
t_ch_invoice.Prior;
end;
procedure Tfrm_ch_invoice_jk.bsSkinButton44Click(Sender: TObject);
begin
if not t_ch_invoice.eof then
t_ch_invoice.next;
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_insertAfterInsert(
DataSet: TDataSet);
begin
t_ch_invoice_insert['制单人']:=employee;
t_ch_invoice_insert['开票日期']:=date;
t_ch_invoice_insert['合计金额']:=0;
t_ch_invoice_insert['实际金额']:=0;
t_ch_invoice_insert['虚开金额']:=0;
t_ch_invoice_insert['自动']:=1;
t_ch_invoice_insert['工商登记号']:=Trim(frm_data_share.t_sys_company.fieldbyname('工商登记号').AsString);
t_ch_invoice_insert['税务登记号']:=Trim(frm_data_share.t_sys_company.fieldbyname('税务登记号').AsString);
t_ch_invoice_insert['复核状态']:=0;
t_ch_invoice_insert['是否打印']:=0;
t_ch_invoice_insert['是否废除']:=0;
t_ch_invoice_insert['是否打印银行帐号名称']:=1;
t_ch_invoice_insert['币别']:='RMB';
t_ch_invoice_insert['开票币别']:='RMB';
t_ch_invoice_insert['开票类型']:='1';
t_ch_invoice_insert['开票状态']:='0';
t_ch_invoice_insert['被冲红']:='0';
t_ch_invoice_insert['推送方式']:='-1';
t_ch_invoice_insert['推送手机']:='0';
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_insertBeforePost(
DataSet: TDataSet);
var
currency_chi:String;
total_money:Double;
aAdoQuery:TAdoQuery;
USDAMT,RMBAMT:Double;
begin
t_ch_invoice_insert['实际金额']:=s_w(StrToInt(apointnum),t_ch_invoice_insert['实际金额']);
if (t_ch_invoice_insert.state=dsinsert) and (t_ch_invoice_insert.FieldByName('申请编号').asstring='') then
t_ch_invoice_insert['申请编号']:=get_no(date,'IA');
if (t_ch_invoice_insert.fieldbyname('发票类别').asstring<>'申请发票') and (shiji<>t_ch_invoice_insert.FieldByName('实际金额').value) then
t_ch_invoice_insert['合计金额']:=t_ch_invoice_insert['实际金额'];
total_money:=Abs(t_ch_invoice_insert['合计金额']);
if t_ch_invoice_insert['币别']='RMB' then currency_chi:='';//人民币
if t_ch_invoice_insert['币别']='USD' then currency_chi:=''; //美元
if t_ch_invoice_insert['合计金额']<0 then
begin
t_ch_invoice_insert['金额大写']:=invoice_max(total_money,currency_chi+'(付)');
end
else
t_ch_invoice_insert['金额大写']:=invoice_max(t_ch_invoice_insert['合计金额'],currency_chi);
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_item_insertAfterInsert(
DataSet: TDataSet);
begin
DataSet['IN_ID']:=t_ch_invoice_insert['IN_ID'];
end;
procedure Tfrm_ch_invoice_jk.t_ch_invoice_item_insertAfterPost(
DataSet: TDataSet);
var aAdoQuery:TAdoQuery;
amt:Double;
begin
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
try
close;
SQL.clear;
sql.add('select sum(金额+税额) Amt');
sql.Add('from t_ch_invoice_item ');
sql.Add('where IN_ID=:IN_ID');
Parameters.ParamByName('IN_ID').Value:=t_ch_invoice_insert.fieldbyname('IN_ID').AsInteger;
Open;First;
amt:=fieldbyname('Amt').AsFloat;
if Abs(Amt)<0.1 then
begin
close;
SQL.clear;
sql.add('update t_ch_invoice set 开票金额=:合计金额,实际金额=:实际金额,金额大写=:金额大写');
sql.Add('where IN_ID=:IN_ID');
Parameters.ParamByName('IN_ID').Value:=t_ch_invoice_insert.fieldbyname('IN_ID').AsInteger;
Parameters.ParamByName('合计金额').Value:=Amt;
Parameters.ParamByName('实际金额').Value:=Amt;
if Amt<0 then
begin
Parameters.ParamByName('金额大写').Value:=FloatToStr(Amt)+'(付)';
end
else
Parameters.ParamByName('金额大写').Value:=FloatToStr(Amt);
ExecSQL;
end
else
begin
close;
SQL.clear;
sql.add('update t_ch_invoice set 开票金额=:合计金额,实际金额=:实际金额,金额大写=:金额大写');
sql.Add('where IN_ID=:IN_ID');
Parameters.ParamByName('IN_ID').Value:=t_ch_invoice_insert.fieldbyname('IN_ID').AsInteger;
Parameters.ParamByName('合计金额').Value:=Amt;
Parameters.ParamByName('实际金额').Value:=Amt;
if Amt<0 then
begin
Parameters.ParamByName('金额大写').Value:=invoice_max(Amt,''+'(付)');
end
else
Parameters.ParamByName('金额大写').Value:=invoice_max(Amt,'');
ExecSQL;
end;
finally
Free;
end;
end;
end.