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

532 lines
14 KiB
ObjectPascal
Raw Normal View History

2024-07-04 16:01:24 +08:00
unit U_PayInput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, cxDropDownEdit, BtnEdit, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
2024-07-13 11:03:15 +08:00
dxBarBuiltInMenu, U_BaseList, cxContainer, cxCurrencyEdit, dxSkinWXI;
2024-07-04 16:01:24 +08:00
type
TfrmPayInput = class(TForm)
ToolBar1: TToolBar;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ToolButton3: TToolButton;
ScrollBox1: TScrollBox;
Label2: TLabel;
Label7: TLabel;
Note: TMemo;
Label8: TLabel;
Currency: TComboBox;
PayMent: TBtnEditC;
OppCoName: TBtnEditC;
Label5: TLabel;
OurCoName: TBtnEditC;
Label9: TLabel;
OppParentCoName: TBtnEditC;
Amount: TcxCurrencyEdit;
Label3: TLabel;
Label18: TLabel;
OurBankName: TBtnEditC;
Label19: TLabel;
OppBankName: TBtnEditC;
Label20: TLabel;
2024-08-01 10:13:17 +08:00
SQDate: TDateTimePicker;
2024-07-04 16:01:24 +08:00
Label22: TLabel;
OrderNo: TBtnEditC;
Label23: TLabel;
BuyConNo: TBtnEditC;
Label24: TLabel;
FFAbstract: TBtnEditC;
FFAbstractDL: TBtnEditC;
Label1: TLabel;
2024-08-10 17:13:44 +08:00
Label4: TLabel;
PKDate: TDateTimePicker;
2024-08-21 14:03:11 +08:00
ToolButton1: TToolButton;
2024-08-29 17:22:39 +08:00
RegType: TComboBox;
Label6: TLabel;
2024-11-02 16:32:38 +08:00
ToolButton2: TToolButton;
2024-11-28 15:12:45 +08:00
Label10: TLabel;
ExchangeRate: TcxCurrencyEdit;
2024-07-04 16:01:24 +08:00
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure PayMentBtnDnClick(Sender: TObject);
procedure PayMentBtnUpClick(Sender: TObject);
procedure OppCoNameBtnUpClick(Sender: TObject);
procedure OppParentCoNameBtnUpClick(Sender: TObject);
procedure OurCoNameBtnUpClick(Sender: TObject);
procedure OurBankNameBtnUpClick(Sender: TObject);
procedure OppBankNameBtnUpClick(Sender: TObject);
procedure FFAbstractDLBtnUpClick(Sender: TObject);
procedure OrderNoBtnUpClick(Sender: TObject);
2024-08-21 14:03:11 +08:00
procedure ToolButton1Click(Sender: TObject);
2024-11-02 16:32:38 +08:00
procedure ToolButton2Click(Sender: TObject);
2024-07-04 16:01:24 +08:00
private
{ Private declarations }
procedure InitGrid();
function SaveData(): Boolean;
public
{ Public declarations }
2024-08-29 17:22:39 +08:00
FFFID, PState: string;
2024-07-04 16:01:24 +08:00
end;
var
frmPayInput: TfrmPayInput;
implementation
uses
2024-07-13 11:03:15 +08:00
U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_BankSel, U_ZDYHelpFY,
2024-11-02 16:32:38 +08:00
U_TradePlanSel, U_FinFileUp, U_FtyFileUp;
2024-07-04 16:01:24 +08:00
{$R *.dfm}
procedure TfrmPayInput.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add(' select * from Finance_Flow where FFID=''' + Trim(FFFID) + '''');
Open;
end;
if not ADOQueryMain.IsEmpty then
begin
SCSHData(ADOQueryMain, ScrollBox1, 0);
OppCoName.TxtCode := Trim(ADOQueryMain.FieldByName('OppCoNo').AsString);
OurCoName.TxtCode := Trim(ADOQueryMain.FieldByName('OurCoNo').AsString);
OppParentCoName.TxtCode := Trim(ADOQueryMain.FieldByName('OppParentCoNo').AsString);
OurBankName.TxtCode := Trim(ADOQueryMain.FieldByName('OurBankID').AsString);
2024-07-13 11:03:15 +08:00
OppBankName.TxtCode := Trim(ADOQueryMain.FieldByName('OppBankID').AsString);
2024-07-04 16:01:24 +08:00
end
else
begin
2024-08-01 10:13:17 +08:00
SQDate.DateTime := SGetServerDateTime(ADOQueryTemp);
2024-08-10 17:13:44 +08:00
PKDate.DateTime := SQDate.DateTime
2024-08-01 10:13:17 +08:00
end;
2024-08-29 17:22:39 +08:00
if PState = '<27><><EFBFBD><EFBFBD>' then
2024-08-01 10:13:17 +08:00
begin
2024-08-29 17:22:39 +08:00
FFFID := '';
2024-08-01 10:13:17 +08:00
2024-07-04 16:01:24 +08:00
end;
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmPayInput.OppBankNameBtnUpClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := self.OppCoName.TxtCode;
flagname := '<27>Է<EFBFBD><D4B7>˻<EFBFBD>';
if ShowModal = 1 then
begin
TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmPayInput.OppCoNameBtnUpClick(Sender: TObject);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
2024-08-29 17:22:39 +08:00
if RegType.text = '<27><><EFBFBD><EFBFBD>' then
begin
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
end
else
begin
FCoType := '<27>ͻ<EFBFBD>';
end;
2024-09-06 17:24:10 +08:00
2024-07-04 16:01:24 +08:00
if ShowModal = 1 then
begin
OppCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
OppCoName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
OppParentCoName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
OppBankName.Text := Trim(CDS_1.fieldbyname('AcName').AsString);
OppBankName.TxtCode := Trim(CDS_1.fieldbyname('CBID').AsString);
// with ADOQueryTemp do
// begin
// Close;
// sql.Clear;
// sql.Add('select B.OpenBank from Bs_Company A left join Bs_Company_bank B on A.CoID=B.CoID');
// sql.Add('where B.IsDefault=1 and A.CoCode=''' + Trim(Self.OppCoName.TxtCode) + '''');
//// ShowMessage(sql.Text);
// Open;
// end;
// Self.OppBankName.text := Trim(ADOQueryTemp.fieldbyname('OpenBank').AsString);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmPayInput.OppParentCoNameBtnUpClick(Sender: TObject);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
if ShowModal = 1 then
begin
OppParentCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
OppParentCoName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmPayInput.OrderNoBtnUpClick(Sender: TObject);
begin
2024-07-13 11:03:15 +08:00
try
2024-07-04 16:01:24 +08:00
frmTradePlanSel := TfrmTradePlanSel.Create(Application);
with frmTradePlanSel do
begin
// FMainID := MainID.Text;
if ShowModal = 1 then
begin
Self.OrderNO.Text := CDS_1.fieldbyname('OrderNo').value;
Self.OurCoName.Text := Trim(CDS_1.fieldbyname('OurCoName').AsString);
Self.OurCoName.TxtCode := Trim(CDS_1.fieldbyname('OurCoNo').AsString);
Self.BuyConNo.text := Trim(CDS_1.fieldbyname('BuyConNo').AsString);
end;
end;
finally
frmTradePlanSel.Free;
end;
end;
procedure TfrmPayInput.OurBankNameBtnUpClick(Sender: TObject);
begin
try
frmBankSel := TfrmBankSel.Create(Application);
with frmBankSel do
begin
if ShowModal = 1 then
begin
OurBankName.Text := Trim(CDS_1.fieldbyname('BankName').AsString);
OurBankName.TxtCode := Trim(CDS_1.fieldbyname('BkID').AsString);
end;
end;
finally
frmBankSel.Free;
end;
end;
procedure TfrmPayInput.OurCoNameBtnUpClick(Sender: TObject);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27><>˾';
if ShowModal = 1 then
begin
OurCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
OurCoName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
2024-08-21 14:03:11 +08:00
OurBankName.Text := Trim(CDS_1.fieldbyname('BankName').AsString);
OurBankName.TxtCode := Trim(CDS_1.fieldbyname('BkID').AsString);
2024-07-04 16:01:24 +08:00
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmPayInput.FormDestroy(Sender: TObject);
begin
frmPayInput := nil;
end;
procedure TfrmPayInput.PayMentBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmPayInput.PayMentBtnUpClick(Sender: TObject);
var
fsj: string;
FWZ: Integer;
begin
2024-08-06 15:40:31 +08:00
fsj := Trim(TEdit(Sender).Hint);
FWZ := Pos('/', fsj);
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := '<27><><EFBFBD><EFBFBD>';
flag := Copy(fsj, 1, FWZ - 1);
flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
if ShowModal = 1 then
begin
TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
2024-07-04 16:01:24 +08:00
end;
procedure TfrmPayInput.FFAbstractDLBtnUpClick(Sender: TObject);
var
fsj: string;
FWZ: Integer;
begin
fsj := Trim(TEdit(Sender).Hint);
FWZ := Pos('/', fsj);
try
frmZDYHelpFY := TfrmZDYHelpFY.Create(Application);
with frmZDYHelpFY do
begin
2024-08-29 17:22:39 +08:00
if RegType.text = '<27><><EFBFBD><EFBFBD>' then
begin
MainType := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end
else
begin
MainType := '<27>տ<EFBFBD><D5BF><EFBFBD><EFBFBD><EFBFBD>';
end;
2024-07-04 16:01:24 +08:00
flag := Copy(fsj, 1, FWZ - 1);
flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
if ShowModal = 1 then
begin
TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('Note2').AsString);
FFAbstract.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelpFY.Free;
end;
end;
procedure TfrmPayInput.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmPayInput.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmPayInput.FormShow(Sender: TObject);
begin
// if Trim(FFFID) = '' then
// begin
// with ADOQueryTemp do
// begin
// Close;
// SQL.Clear;
// sql.Add(' select top 1 * from BS_Company where CoType=''<27><>˾'' order by CoCode ');
// Open;
// end;
// OurCoName.Text := Trim(ADOQueryTemp.fieldbyname('CoAbbrName').AsString);
// OurCoName.TxtCode := Trim(ADOQueryTemp.fieldbyname('CoCode').AsString);
// end;
InitGrid();
end;
procedure TfrmPayInput.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
function TfrmPayInput.SaveData(): Boolean;
var
MaxId, MaxSubId, FCoCode, FCCID: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
if Trim(FFFID) = '' then
begin
if not GetLSNo(ADOQueryCmd, MaxId, 'YS', 'Finance_Flow', 4, 1) then
raise Exception.Create(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
end
else
begin
MaxId := Trim(FFFID);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from Finance_Flow where FFID=''' + Trim(FFFID) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(FFFID) = '' then
begin
Append;
FieldByName('FillId').Value := Trim(DCode);
FieldByName('Filler').Value := Trim(DName);
2024-08-29 17:22:39 +08:00
if RegType.text = '<27><><EFBFBD><EFBFBD>' then
begin
FieldByName('FFFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('FFType').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>';
end
else
begin
FieldByName('FFFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('FFType').Value := '<27>տ<EFBFBD><D5BF>Ǽ<EFBFBD>';
end;
2024-07-04 16:01:24 +08:00
FieldByName('status').Value := '0';
FieldByName('FFQtyFlag').Value := -1;
end
else
begin
Edit;
FieldByName('EditId').Value := Trim(DCode);
FieldByName('Editer').Value := Trim(DName);
FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp);
end;
FieldByName('OppCoNo').Value := Trim(OppCoName.TxtCode);
FieldByName('OurCoNo').Value := Trim(OurCoName.TxtCode);
FieldByName('OppParentCoNo').Value := Trim(OppParentCoName.TxtCode);
FieldByName('OurBankID').Value := Trim(OurBankName.TxtCode);
FieldByName('OppBankID').Value := Trim(OppBankName.TxtCode);
// FieldByName('OppBanKID
FieldByName('FFID').Value := Trim(MaxId);
RTSetsavedata(ADOQueryCmd, 'Finance_Flow', ScrollBox1, 0);
Post;
end;
ADOQueryCmd.Connection.CommitTrans;
FCCID := Trim(MaxSubId);
Result := True;
except
Result := false;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
2024-08-21 14:03:11 +08:00
procedure TfrmPayInput.ToolButton1Click(Sender: TObject);
begin
2024-08-29 17:22:39 +08:00
try
2024-08-21 14:03:11 +08:00
frmFinFileUp := TfrmFinFileUp.Create(Application);
with frmFinFileUp do
begin
// Code.Text := Trim(Self.CDS_1.fieldbyname('CoCode').AsString);
FBCIID := FFFID;
if ShowModal = 1 then
begin
Self.InitGrid();
// Self.CDS_1.Locate('BCIID', BCIID, []);
end;
end;
finally
frmFinFileUp.Free;
end;
end;
2024-11-02 16:32:38 +08:00
procedure TfrmPayInput.ToolButton2Click(Sender: TObject);
begin
try
frmFtyFileUp := TfrmFtyFileUp.Create(Application);
with frmFtyFileUp do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select * from BS_Company where CoCode=' + quotedstr(Trim(OppCoName.TxtCode)));
Open;
end;
Code.Text := self.OppCoName.TxtCode;
FBCIID := Trim(ADOQueryTemp.fieldbyname('CoID').AsString);
if ShowModal = 1 then
begin
Self.InitGrid();
// Self.CDS_1.Locate('BCIID', BCIID, []);
end;
end;
finally
frmFtyFileUp.Free;
end;
end;
2024-07-04 16:01:24 +08:00
procedure TfrmPayInput.ToolButton3Click(Sender: TObject);
begin
ToolBar1.SetFocus;
if Trim(OppCoName.Text) = '' then
begin
Application.MessageBox('<27>Է<EFBFBD><D4B7><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if Trim(OurCoName.Text) = '' then
begin
Application.MessageBox('<27>ҷ<EFBFBD><D2B7><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
2025-01-13 16:36:43 +08:00
end;
if Trim(RegType.Text) = '' then
begin
Application.MessageBox('<27>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
2024-07-04 16:01:24 +08:00
end;
if Trim(OurBankName.Text) = '' then
begin
Application.MessageBox('<27>ҷ<EFBFBD><D2B7>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if Trim(Currency.Text) = '' then
begin
Application.MessageBox('<27><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
2024-07-13 11:03:15 +08:00
if Trim(FFAbstractDL.Text) = '' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
2024-07-04 16:01:24 +08:00
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
ModalResult := 1;
end;
end;
end.