D10myBiaoqi/A09财务通用管理/U_ClaimsableInPut.pas

559 lines
16 KiB
ObjectPascal
Raw Permalink Normal View History

2024-11-02 16:32:38 +08:00
unit U_ClaimsableInPut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB,
DBClient, ExtCtrls, StdCtrls, BtnEdit, cxButtonEdit, cxTextEdit,
cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxCalendar,
dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, dxSkinWXI,
dxScrollbarAnnotations;
type
TfrmClaimsableInPut = class(TForm)
DataSource1: TDataSource;
CDS_Invoice: TClientDataSet;
GPM_1: TcxGridPopupMenu;
ToolBar1: TToolBar;
TSave: TToolButton;
TBClose: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
ADOQueryTmp: TADOQuery;
ADOQueryCmd: TADOQuery;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
Tv1Column8: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
Tv1Column11: TcxGridDBColumn;
Tv1Column12: TcxGridDBColumn;
Tv1Column13: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TSaveClick(Sender: TObject);
procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1P_SpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1QtyUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure FormDestroy(Sender: TObject);
procedure Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure Tv1Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
2024-11-23 16:57:33 +08:00
procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1Column12PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column4PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure Tv1Column13PropertiesButtonClick(Sender: TObject;
2024-11-02 16:32:38 +08:00
AButtonIndex: Integer);
private
procedure initGrid();
procedure SaveDate();
{ Private declarations }
public
FFID: string;
fInvoiceFlag, PState: string;
{ Public declarations }
end;
var
frmClaimsableInPut: TfrmClaimsableInPut;
implementation
uses
2024-11-23 16:57:33 +08:00
U_RTFun, U_ZDYHelp, U_CompanySel, U_dataLink, U_ClothInfoSel, U_TradePlanSel,
U_UserSel, U_ZDYHelpFY;
2024-11-02 16:32:38 +08:00
{$R *.dfm}
procedure TfrmClaimsableInPut.SaveDate();
var
MaxNo: string;
begin
ADOQueryCmd.Connection.BeginTrans;
try
with CDS_Invoice do
begin
first;
while not eof do
begin
if fieldbyname('FFID').AsString = '' then
begin
if GetLSNo(ADOQueryTmp, MaxNo, 'SP', 'Finance_Flow', 4, 1) = False then
raise Exception.Create('取最大号失败!');
end
else
MaxNo := CDS_Invoice.fieldbyname('FFID').AsString;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('select * from Finance_Flow where FFID=' + quotedstr(Trim(MaxNo)));
open;
end;
if ADOQueryCmd.IsEmpty then
begin
ADOQueryCmd.append;
ADOQueryCmd.FieldByName('FillId').Value := Trim(DCode);
ADOQueryCmd.FieldByName('Filler').Value := Trim(DName);
ADOQueryCmd.FieldByName('status').Value := '0';
end
else
begin
ADOQueryCmd.edit;
ADOQueryCmd.FieldByName('EditId').Value := Trim(DCode);
ADOQueryCmd.FieldByName('Editer').Value := Trim(DName);
ADOQueryCmd.FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTmp);
end;
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Invoice, 'Finance_Flow', 0);
ADOQueryCmd.fieldbyname('FFID').Value := MaxNo;
// ADOQueryCmd.fieldbyname('IVFlag').Value := '进项';
// ADOQueryCmd.fieldbyname('OppCoNo').Value := trim(CDS_Invoice.FieldByName('OppCoNo').AsString);
// ADOQueryCmd.fieldbyname('OppParentCoNo').Value := trim(CDS_Invoice.FieldByName('OppParentCoNo').AsString);
ADOQueryCmd.fieldbyname('OppCoNo').Value := trim(CDS_Invoice.FieldByName('OppCoNo').AsString);
ADOQueryCmd.fieldbyname('FFType').Value := '索赔登记';
ADOQueryCmd.Post;
next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
application.MessageBox('保存成功!', '提示');
Modalresult := 1;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
end;
end;
procedure TfrmClaimsableInPut.initGrid();
begin
with ADOQueryTmp do
begin
close;
sql.Clear;
if PState = '复制' then
begin
sql.Add('select '''' FFID,0 Amount,* from Finance_Flow where FFID=''' + trim(FFID) + '''');
end
else
begin
sql.Add('select * from Finance_Flow where FFID=''' + trim(FFID) + '''');
end;
sql.add(' and isnull(status,''0'')=''0''');
// showmessage(sql.text);
open;
end;
SCreateCDS(ADOQueryTmp, CDS_Invoice);
SInitCDSData(ADOQueryTmp, CDS_Invoice);
end;
procedure TfrmClaimsableInPut.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmClaimsableInPut.FormShow(Sender: TObject);
begin
ReadCxGrid(Self.Caption, Tv1, '财务管理');
initGrid();
end;
procedure TfrmClaimsableInPut.TSaveClick(Sender: TObject);
begin
// if CDS_Invoice.Locate('IVNo', null, []) then
// begin
// application.MessageBox('发票号不能为空', '提示');
// exit;
// end;
// if CDS_Invoice.Locate('IVType', null, []) then
// begin
// application.MessageBox('发票类型不能为空', '提示');
// exit;
// end;
// if CDS_Invoice.Locate('OurCoName', null, []) then
// begin
// application.MessageBox('我方单位不能为空', '提示');
// exit;
// end;
// if CDS_Invoice.Locate('OppCoName', null, []) then
// begin
// application.MessageBox('对方单位不能为空', '提示');
// exit;
// end;
SaveDate();
end;
procedure TfrmClaimsableInPut.v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelpFY := TfrmZDYHelpFY.Create(Application);
with frmZDYHelpFY do
begin
MainType := '索赔登记';
flag := 'FFAbstractDL';
flagname := '费用类别';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('FFAbstract').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.CDS_Invoice.FieldByName('FFAbstractDL').Value := Trim(ClientDataSet1.fieldbyname('Note2').AsString);
end;
end;
finally
frmZDYHelpFY.Free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
2024-11-23 16:57:33 +08:00
procedure TfrmClaimsableInPut.v1Column4PropertiesButtonClick(Sender: TObject;
2024-11-02 16:32:38 +08:00
AButtonIndex: Integer);
begin
try
2024-11-23 16:57:33 +08:00
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := '索赔登记';
flag := 'SubExpend';
flagname := '扣款方式';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('SubExpend').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmClaimsableInPut.v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
2024-11-02 16:32:38 +08:00
frmUserSel := TfrmUserSel.Create(Application);
with frmUserSel do
begin
// FCoType := '客户';
// if Self.FAuthority = '录入' then
// FAuthority := '理单业务';
if ShowModal = 1 then
begin
// self.BuyName.TxtCode := Trim(frmUserSel.CDS_1.fieldbyname('CoCode').AsString);
// self.BuyName.Text := Trim(frmUserSel.CDS_1.fieldbyname('CoAbbrName').AsString);
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('Certifier').Value := Trim(CDS_1.fieldbyname('UserName').AsString);
end;
end;
finally
frmUserSel.Free;
end;
end;
procedure TfrmClaimsableInPut.v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'MPRTCodeName';
flagname := '产品名称';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('F_Name').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.CDS_Invoice.FieldByName('F_Code').Value := Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmClaimsableInPut.v1P_SpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'P_Spec';
flagname := '成品规格';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('P_Spec').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmClaimsableInPut.v1QtyUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'QtyUnit';
flagname := '数量单位';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('QtyUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmClaimsableInPut.FormDestroy(Sender: TObject);
begin
frmClaimsableInPut := nil;
end;
2024-11-23 16:57:33 +08:00
procedure TfrmClaimsableInPut.Tv1Column12PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := '索赔登记';
flag := 'QtyUnit';
flagname := '单位';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('QtyUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmClaimsableInPut.Tv1Column13PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := '索赔登记';
flag := 'Currency';
flagname := '币种';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('Currency').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
2024-11-02 16:32:38 +08:00
procedure TfrmClaimsableInPut.Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmTradePlanSel := TfrmTradePlanSel.Create(Application);
with frmTradePlanSel do
begin
// FMainID := MainID.Text;
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('OrderNo').Value := CDS_1.fieldbyname('OrderNo').value;
Self.CDS_Invoice.FieldByName('BuyConNo').Value := Trim(CDS_1.fieldbyname('BuyConNo').AsString);
Self.CDS_Invoice.FieldByName('F_Code').Value := Trim(CDS_1.fieldbyname('C_Code').AsString);
Self.CDS_Invoice.FieldByName('F_Name').Value := Trim(CDS_1.fieldbyname('C_Name').AsString);
//
end;
end;
finally
frmTradePlanSel.Free;
end;
end;
procedure TfrmClaimsableInPut.Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
2024-11-23 16:57:33 +08:00
if Self.CDS_Invoice.FieldByName('RegType').ASString = '' then
2024-11-02 16:32:38 +08:00
begin
2024-11-23 16:57:33 +08:00
application.MessageBox('先选择类型!', '提示');
Exit;
2024-11-02 16:32:38 +08:00
end;
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := Self.CDS_Invoice.FieldByName('RegType').ASString;
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('OppCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
Self.CDS_Invoice.FieldByName('OppCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmClaimsableInPut.Tv1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := '索赔登记';
flag := 'FFAbstract';
flagname := '摘要';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('FFAbstract').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmClaimsableInPut.Tv1Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := '索赔登记';
flag := 'RedType';
flagname := '类型';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('RedType').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmClaimsableInPut.Tv1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '供应商';
if ShowModal = 1 then
begin
Self.CDS_Invoice.Edit;
Self.CDS_Invoice.FieldByName('OppParentCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
Self.CDS_Invoice.FieldByName('OppParentCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmClaimsableInPut.ToolButton1Click(Sender: TObject);
begin
if CDS_Invoice.IsEmpty = False then
begin
CopyAddRowCDS(CDS_Invoice);
with CDS_Invoice do
begin
Edit;
FieldByName('FFID').Value := null;
post;
end;
end
else
begin
with CDS_Invoice do
begin
Append;
FieldByName('FFTime').Value := now();
// FieldByName('QtyUnit').Value := 'Kg';
FieldByName('Amount').Value := 0;
Post;
end;
end;
// CDS_Invoice.append;
// CDS_Invoice.FieldByName('IVDate').Value := now();
// CDS_Invoice.FieldByName('QtyUnit').Value := 'Kg';
// CDS_Invoice.FieldByName('Amount').Value := 0;
// CDS_Invoice.FieldByName('Qty').Value := 0;
// CDS_Invoice.FieldByName('tax').Value := 0;
// CDS_Invoice.FieldByName('TaxFee').Value := 0;
// CDS_Invoice.FieldByName('taxAmount').Value := 0;
// CDS_Invoice.FieldByName('Price').Value := 0;
// CDS_Invoice.FieldByName('tax').Value := 13;
// CDS_Invoice.FieldByName('Currency').Value := 'CNY';
// CDS_Invoice.Post;
end;
procedure TfrmClaimsableInPut.ToolButton2Click(Sender: TObject);
begin
if CDS_Invoice.IsEmpty then
exit;
if application.MessageBox('确定要删除吗', '提示', 1) = 2 then
exit;
with ADOQueryTmp do
begin
close;
sql.clear;
sql.add('delete from Finance_Flow where FFID=''' + trim(CDS_Invoice.fieldbyname('FFID').asstring) + ''' ');
execsql;
end;
CDS_Invoice.delete;
end;
procedure TfrmClaimsableInPut.ToolButton3Click(Sender: TObject);
begin
WriteCxGrid(Self.Caption, Tv1, '财务管理');
end;
end.