📄 uoutputreimburse.pas
字号:
unit uOutPutReimburse;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, LBCtrls, ExtCtrls, ActnList, StdCtrls, LBDBScrollBar, dbcgrids,
LBDBCtrls, FR_DSet, FR_DBSet, FR_Class, DB, DBClient, SimpleDS, DBCtrls,
Mask, ToolWin, ActnMan, ActnCtrls, ActnMenus, XPStyleActnCtrls,
ActnColorMaps, jpeg;
type
TfrmOutPutReimburse = class(TForm)
ActionList1: TActionList;
Action1: TAction;
Action2: TAction;
Action3: TAction;
Action4: TAction;
Action7: TAction;
Action8: TAction;
Action9: TAction;
Action10: TAction;
Label1: TLabel;
Label2: TLabel;
BillPanel: TPanel;
Shape1: TShape;
BillHandData: TSimpleDataSet;
BillHandDs: TDataSource;
BillBodyData: TSimpleDataSet;
BillBodyDs: TDataSource;
Report: TfrReport;
ReportDataSet: TfrDBDataSet;
Label3: TLabel;
Label14: TLabel;
BillDateDBEdit: TLBDBEdit;
DepotDBEdit: TLBDBComboBox;
plToolbar: TPanel;
LBSpeecButton2: TLBSpeecButton;
LBSpeecButton1: TLBSpeecButton;
LBSpeecButton3: TLBSpeecButton;
LBSpeecButton4: TLBSpeecButton;
LBSpeecButton5: TLBSpeecButton;
LBSpeecButton6: TLBSpeecButton;
Image2: TImage;
Shape22: TShape;
Shape23: TShape;
Shape24: TShape;
Shape25: TShape;
LBEditButton2: TLBEditButton;
LBSpeecButton9: TLBSpeecButton;
Action5: TAction;
DBText2: TDBText;
Action6: TAction;
LBSpeecButton7: TLBSpeecButton;
BillNextButton: TLBLabel;
BillPriorButton: TLBLabel;
Shape4: TShape;
Shape3: TShape;
Shape2: TShape;
Label11: TLabel;
Label17: TLabel;
DBText1: TDBText;
DBText3: TDBText;
Label12: TLabel;
Label13: TLabel;
DBText4: TDBText;
Label15: TLabel;
DBText5: TDBText;
Label23: TLabel;
DBText6: TDBText;
Auditing: TImage;
Shape6: TShape;
DBCtrlGrid: TDBCtrlGrid;
Panel5: TPanel;
Shape9: TShape;
Shape11: TShape;
Shape12: TShape;
Shape14: TShape;
Shape15: TShape;
Shape16: TShape;
Shape17: TShape;
Shape18: TShape;
Shape19: TShape;
Panel6: TPanel;
PartCodeDBEdit: TDBEdit;
PartNameDBEdit: TDBEdit;
ProducingDBEdit: TDBEdit;
DepotPlaceDBEdit: TDBEdit;
UnitDBEdit: TDBEdit;
QuantityDBEdit: TDBEdit;
PriceDBEdit: TDBEdit;
AgioDBEdit: TDBEdit;
CessDBEdit: TDBEdit;
SumDBEdit: TDBEdit;
Panel4: TPanel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label24: TLabel;
MemoDBEdit: TLBDBEdit;
LBDBScrollBar1: TLBDBScrollBar;
SaveButton: TLBButton;
CancelButton: TLBButton;
Label10: TLabel;
LBEditButton1: TLBEditButton;
ClientDBEdit: TLBDBEdit;
Label16: TLabel;
OutPutBillCodeDBEdit: TLBDBEdit;
LBEditButton3: TLBEditButton;
Label22: TLabel;
InPubImg: TImage;
EXECUTEMANDBEdit: TLBDBComboBox;
HintPanel: TPanel;
Label26: TLabel;
Image1: TImage;
BillInfoLabel: TLabel;
BillHandDataBILLCODE: TStringField;
BillHandDataBILLDATE: TSQLTimeStampField;
BillHandDataPROVIDERCODE: TStringField;
BillHandDataPROVIDERNAME: TStringField;
BillHandDataDEPOTCODE: TStringField;
BillHandDataDEPOTNAME: TStringField;
BillHandDataCAUSE: TStringField;
BillHandDataORDERBILLNO: TStringField;
BillHandDataTOTALSUM: TBCDField;
BillHandDataBIGSUM: TStringField;
BillHandDataACCEPTSUM: TBCDField;
BillHandDataAGIOSUM: TBCDField;
BillHandDataISACCEPT: TStringField;
BillHandDataISAUDITING: TStringField;
BillHandDataAUDITINGMAN: TStringField;
BillHandDataAUDITINGDATE: TSQLTimeStampField;
BillHandDataISEXECUTE: TStringField;
BillHandDataEXECUTEMAN: TStringField;
BillHandDataEXECUTEDATE: TSQLTimeStampField;
BillHandDataMEMO: TStringField;
BillHandDataREIMBURSETYPE: TStringField;
BillHandDataOPERATIONMAN: TStringField;
BillHandDataOPERATOR: TStringField;
BillBodyDataBILLCODE: TStringField;
BillBodyDataID: TIntegerField;
BillBodyDataPARTCODE: TStringField;
BillBodyDataPARTNAME: TStringField;
BillBodyDataBORNCODE: TStringField;
BillBodyDataCARMODEL: TStringField;
BillBodyDataPRODUCING: TStringField;
BillBodyDataUNITS: TStringField;
BillBodyDataDEPOTPLACE: TStringField;
BillBodyDataQUANTITY: TBCDField;
BillBodyDataPRICE: TBCDField;
BillBodyDataCESS: TBCDField;
BillBodyDataAGIO: TBCDField;
BillBodyDataTOTALSUM: TBCDField;
BillBodyDataREIMBURSEQRY: TBCDField;
BillBodyDataORDERID: TIntegerField;
BillBodyDataOUTPUTQRY: TBCDField;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormActivate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BillHandDataAfterScroll(DataSet: TDataSet);
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject);
procedure Action4Execute(Sender: TObject);
procedure Action5Execute(Sender: TObject);
procedure Action6Execute(Sender: TObject);
procedure Action7Execute(Sender: TObject);
procedure Action8Execute(Sender: TObject);
procedure Action9Execute(Sender: TObject);
procedure Action10Execute(Sender: TObject);
procedure DepotDBEditEnter(Sender: TObject);
procedure DBCtrlGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure LBSpeecButton3Click(Sender: TObject);
procedure LBEditButton2Click(Sender: TObject);
procedure PartCodeDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PartNameDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ProducingDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure UnitDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DepotPlaceDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure QuantityDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PriceDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure AgioDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CessDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure QuantityDBEditExit(Sender: TObject);
procedure AgioDBEditExit(Sender: TObject);
procedure CessDBEditExit(Sender: TObject);
procedure BillNextButtonClick(Sender: TObject);
procedure BillPriorButtonClick(Sender: TObject);
procedure BillDateDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DepotDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DepotDBEditExit(Sender: TObject);
procedure LBEditButton1Click(Sender: TObject);
procedure LBEditButton3Click(Sender: TObject);
procedure ClientDBEditEnter(Sender: TObject);
procedure ClientDBEditExit(Sender: TObject);
procedure ClientDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure OutPutBillCodeDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EXECUTEMANDBEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure QuantityDBEditEnter(Sender: TObject);
procedure EXECUTEMANDBEditEnter(Sender: TObject);
procedure PriceDBEditExit(Sender: TObject);
private
procedure SetView;
procedure GetSum;
procedure SetAuditing;
public
{ Public declarations }
end;
var
frmOutPutReimburse: TfrmOutPutReimburse;
isStateEdit, isEdit, isGetList: Boolean;
OldSum, Sum, OldSaleQty: Double;
OldCode, OldDepotCode, OldProviderCode, OldInPutBillCode: string;
implementation
uses uMain, uPublicvar, uConst, uDataMo, Tools, uReimbureseParts,
uPartOutPutStock, uSelectOutPutReimburse;
{$R *.dfm}
procedure TfrmOutPutReimburse.SetView;
begin
BillPanel.Enabled:=not BillPanel.Enabled;
Action1.Enabled:=not Action1.Enabled;
Action2.Enabled:=not Action2.Enabled;
Action3.Enabled:=not Action3.Enabled;
Action4.Enabled:=not Action4.Enabled;
Action5.Enabled:=not Action5.Enabled;
Action6.Enabled:=not Action6.Enabled;
Action7.Enabled:=not Action7.Enabled;
Action8.Enabled:=not Action8.Enabled;
Action9.Enabled:=not Action9.Enabled;
Action10.Enabled:=not Action10.Enabled;
SaveButton.Visible:=not SaveButton.Visible;
CancelButton.Visible:=not CancelButton.Visible;
HintPanel.Visible:=not HintPanel.Visible;
end;
procedure TfrmOutPutReimburse.GetSum;
var
Agiosum, CessSum: Extended;
begin
if isStateEdit then
begin
OldSum:=BillBodyData.FieldByName('TotalSum').asfloat;
BillBodyData.Edit;
if BillBodyData.FieldByName('Quantity').asstring='' then
BillBodyData.FieldByName('Quantity').asfloat:=0;
if BillBodyData.FieldByName('Price').asstring='' then
BillBodyData.FieldByName('Price').asfloat:=0;
if BillBodyData.FieldByName('Agio').asfloat>0 then
Agiosum:=BillBodyData.FieldByName('Price').asfloat*
(BillBodyData.FieldByName('Quantity').asfloat*
(BillBodyData.FieldByName('Agio').asfloat/10))
else
Agiosum:=BillBodyData.FieldByName('Price').asfloat*
BillBodyData.FieldByName('Quantity').asfloat;
if BillBodyData.FieldByName('Cess').asfloat>0 then
CessSum:=Agiosum*(BillBodyData.FieldByName('Cess').asfloat/100)
else
CessSum:=0;
BillBodyData.FieldByName('TotalSum').asfloat:=Agiosum+CessSum;
BillBodyData.Post;
BillHandData.Edit;
Sum:=Sum+BillBodyData.FieldByName('TotalSum').asfloat-OldSum;
BillHandData.FieldByName('TotalSum').Asfloat:=Sum;
BillHandData.FieldByName('BigSum').asstring:=
SumSmallTOBig(BillHandData.FieldByName('TotalSum').Asfloat);
DBCtrlGrid.SetFocus;
end;
end;
procedure TfrmOutPutReimburse.SetAuditing;
var
s: string;
PaySum: Double;
begin
try
//是否冲减应收款
s:='select BILLCODE, TOTALSUM, ACCEPTSUM, AGIOSUM, '+
' ISACCEPT From PARTSOUTPUTHAND where BILLCODE='+
#39+Trim(OutPutBillCodeDBEdit.Text)+#39+' and isAccept="0"';
OpenData(s, dmData.sdsPublic);
if not dmData.sdsPublic.IsEmpty then
begin
if Application.MessageBox('是否冲减相应销售单的应收账款?', Hintinfo, $24)=idYes then
begin
//收款金额
dmData.sdsPublic.Edit;
//如果退货金额大于或等于未收金额
if BillHandData.Fieldbyname('Totalsum').asfloat>=
dmData.sdsPublic.FieldByName('TOTALSUM').asFloat-
(dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat+
dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat) then
begin
PaySum:=dmData.sdsPublic.FieldByName('TOTALSUM').asFloat-
(dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat+
dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat);
dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat:=
dmData.sdsPublic.FieldByName('TOTALSUM').asFloat-
dmData.sdsPublic.FieldByName('AGIOSUM').asFloat;;
dmData.sdsPublic.FieldByName('ISACCEPT').asString:='1';
end
else
begin
PaySum:=BillHandData.Fieldbyname('Totalsum').asfloat;
dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat:=
dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat+PaySum;
end;
dmData.sdsPublic.ApplyUpdates(-1);
//生成收款单
end;
end;
BillHandData.ReadOnly:=False;
BillHandData.Edit;
BillHandData.FieldByName('isAuditing').AsString:='1';
BillHandData.FieldByName('AuditingMan').AsString:=UserName;
BillHandData.FieldByName('AuditingDate').asDateTime:=Now;
BillHandData.FieldByName('ACCEPTSUM').asFloat:=
BillHandData.FieldByName('ACCEPTSUM').asFloat+PaySum;
if BillHandData.FieldByName('ACCEPTSUM').asFloat=
BillHandData.FieldByName('TOTALSUM').asFloat then
BillHandData.FieldByName('isAccept').asString:='1';
SavePartData:=TClientDataSet.Create(Nil);
SavePartData.Data:=BillBodyData.Data;
PartInPutDataSave(BillHandData.FieldByName('DepotCode').asstring,
BillHandData.FieldByName('DepotName').asstring,
BillHandData.FieldByName('BillDate').asDateTime,
0);
SetBillResInfo(Trim(OutPutBillCodeDBEdit.Text), 'PartsOutPutBody', BillBodyData);
BillHandData.ApplyUpdates(-1);
Auditing.Visible:=True;
BillHandData.ReadOnly:=True;
Application.MessageBox('审核提交数据成功。',Hintinfo,$30);
SetDataDelInfo('Depot','DepotCode',BillHandData.Fieldbyname('DepotCode').asstring);
SetPaymentSum(4, BillHandData.Fieldbyname('ProviderCode').asstring,
BillHandData.Fieldbyname('TOTALSUM').asFloat);
BillBodyData.First;
except
Application.MessageBox('审核单据不成功。',Errorinfo,$10);
end;
end;
procedure TfrmOutPutReimburse.FormShow(Sender: TObject);
begin
SetView;
OpenData('Select * from ReimburseBillHand where ReimburseType='''+'2'''+' Order by BillCode DESC',BillHandData);
isStateEdit:=False;
end;
procedure TfrmOutPutReimburse.FormActivate(Sender: TObject);
begin
GetWindowsItem(Caption, Self);
end;
procedure TfrmOutPutReimburse.FormDestroy(Sender: TObject);
begin
WindowItem.Delete(WindowItem.IndexOfObject(Self));
BillHandData.Close;
BillBodyData.Close;
end;
procedure TfrmOutPutReimburse.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
frmOutPutReimburse:=Nil;
end;
procedure TfrmOutPutReimburse.BillHandDataAfterScroll(DataSet: TDataSet);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -