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

432 lines
12 KiB
ObjectPascal
Raw Normal View History

2024-07-04 16:01:24 +08:00
unit U_PayableInput;
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
TfrmPayableInput = class(TForm)
ToolBar1: TToolBar;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ToolButton3: TToolButton;
ScrollBox1: TScrollBox;
Label2: TLabel;
Label6: TLabel;
Label7: TLabel;
F_Code: TEdit;
Note: TMemo;
Label1: TLabel;
F_Name: TEdit;
Label8: TLabel;
Currency: TComboBox;
PayMent: TBtnEditC;
OppCoName: TBtnEditC;
Label5: TLabel;
OurCoName: TBtnEditC;
Label9: TLabel;
OppParentCoName: TBtnEditC;
Amount: TcxCurrencyEdit;
Label3: TLabel;
Price: TcxCurrencyEdit;
Qty: TcxCurrencyEdit;
Piece: TcxCurrencyEdit;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
QtyUnit: TComboBox;
Label13: TLabel;
Label14: TLabel;
F_Width: TEdit;
F_GramWeight: TEdit;
Label15: TLabel;
Label16: TLabel;
F_Pattern: TEdit;
F_Color: TEdit;
Label17: TLabel;
F_ColorNo: TEdit;
OtherFee: TcxCurrencyEdit;
Label4: TLabel;
Label20: TLabel;
FFTime: TDateTimePicker;
Deduction: TcxCurrencyEdit;
Label21: TLabel;
Label22: TLabel;
OrderNo: TBtnEditC;
Label23: TLabel;
BuyConNo: TBtnEditC;
Label24: TLabel;
FFAbstract: TBtnEditC;
Label18: TLabel;
IsInvoice: TComboBox;
FZFlag: TcxCurrencyEdit;
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 QtyExit(Sender: TObject);
procedure ScrollBox1Click(Sender: TObject);
procedure OrderNoBtnUpClick(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure HJJE();
function SaveData(): Boolean;
public
{ Public declarations }
FFFID,PState: string;
end;
var
frmPayableInput: TfrmPayableInput;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_TradePlanSel;
{$R *.dfm}
procedure TfrmPayableInput.HJJE();
var
MPrice, MQty, MOtherFee, MDeduction, MAmount: double;
begin
MPrice := Strtofloatdef(Price.Text, 0);
MQty := Strtofloatdef(Qty.Text, 0);
MOtherFee := Strtofloatdef(OtherFee.Text, 0);
MDeduction := Strtofloatdef(Deduction.Text, 0);
MAmount := Strtofloatdef(Amount.Text, 0);
// if MQty * MPrice <> 0 then
// begin
MAmount := RoundFloat((MQty * MPrice + MOtherFee - MDeduction), 2);
// end;
// Price.Text := FloatToStr(MPrice);
// Qty.Text := FloatToStr(MQty);
// OtherFee.Text := FloatToStr(MOtherFee);
// Deduction.Text := FloatToStr(MDeduction);
Amount.Text := FloatToStr(MAmount);
end;
procedure TfrmPayableInput.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
2024-07-13 11:03:15 +08:00
sql.Add(' select BuyConNo=(ISNULL(A.BuyConNo,(select TOP 1 BuyConNo from Trade_Plan_Sub X where X.MainID=A.OrdMainId))),A.* from Finance_Flow A where A.FFID=''' + Trim(FFFID) + '''');
// showmessage(sql.text);
2024-07-04 16:01:24 +08:00
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);
end
else
begin
FFTime.DateTime := SGetServerDateTime(ADOQueryTemp);
end;
if PState='<27><><EFBFBD><EFBFBD>' then
begin
FFFID:='';
Piece.text:='';
Qty.text:='';
Price.text:='';
OtherFee.text:='';
Deduction.text:='';
Amount.text:='';
FZFlag.Text:='<27><><EFBFBD><EFBFBD>';
end;
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmPayableInput.OppCoNameBtnUpClick(Sender: TObject);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
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);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmPayableInput.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 TfrmPayableInput.OrderNoBtnUpClick(Sender: TObject);
begin
try
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.OppCoName.Text := Trim(CDS_1.fieldbyname('CustName').AsString);
// Self.OppCoName.TxtCode := Trim(CDS_1.fieldbyname('CustNo').AsString);
Self.F_Code.Text := Trim(CDS_1.fieldbyname('C_Code').AsString);
Self.F_Name.text := Trim(CDS_1.fieldbyname('C_Name').AsString);
Self.F_Pattern.Text := Trim(CDS_1.fieldbyname('C_Pattern').AsString);
Self.F_Color.text := Trim(CDS_1.fieldbyname('C_Color').AsString);
Self.F_ColorNo.Text := Trim(CDS_1.fieldbyname('C_ColorNo').AsString);
Self.F_Width.text := Trim(CDS_1.fieldbyname('C_Width').AsString);
Self.F_GramWeight.text := Trim(CDS_1.fieldbyname('C_GramWeight').AsString);
Self.BuyConNo.text := Trim(CDS_1.fieldbyname('BuyConNo').AsString);
end;
end;
finally
frmTradePlanSel.Free;
end;
end;
procedure TfrmPayableInput.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);
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmPayableInput.FormDestroy(Sender: TObject);
begin
frmPayableInput := nil;
end;
procedure TfrmPayableInput.PayMentBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmPayableInput.PayMentBtnUpClick(Sender: TObject);
var
fsj: string;
FWZ: Integer;
begin
fsj := Trim(TEdit(Sender).Hint);
FWZ := Pos('/', fsj);
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := <><D3A6><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;
end;
procedure TfrmPayableInput.QtyExit(Sender: TObject);
begin
HJJE();
end;
procedure TfrmPayableInput.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmPayableInput.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmPayableInput.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 TfrmPayableInput.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
function TfrmPayableInput.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);
FieldByName('FFFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('FFType').Value := <><D3A6><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>';
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('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;
procedure TfrmPayableInput.ScrollBox1Click(Sender: TObject);
begin
HJJE();
end;
procedure TfrmPayableInput.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;
end;
if Trim(Currency.Text) = '' then
begin
Application.MessageBox('<27><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if Trim(FFAbstract.Text) = '' then
begin
Application.MessageBox('ժҪ<D5AA><D2AA><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
ModalResult := 1;
end;
end;
end.