D10myBiaoqi/A09财务通用管理/U_OtherPayableInput.pas
DESKTOP-E401PHE\Administrator ca8a36de42 11
2024-08-06 15:40:31 +08:00

432 lines
12 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_OtherPayableInput;
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,
dxBarBuiltInMenu, U_BaseList, cxContainer, cxCurrencyEdit, dxSkinWXI;
type
TfrmOtherPayableInput = 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
frmOtherPayableInput: TfrmOtherPayableInput;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_TradePlanSel;
{$R *.dfm}
procedure TfrmOtherPayableInput.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 TfrmOtherPayableInput.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
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);
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 TfrmOtherPayableInput.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 TfrmOtherPayableInput.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 TfrmOtherPayableInput.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 TfrmOtherPayableInput.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 TfrmOtherPayableInput.FormDestroy(Sender: TObject);
begin
frmOtherPayableInput := nil;
end;
procedure TfrmOtherPayableInput.PayMentBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmOtherPayableInput.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 := '<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><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 TfrmOtherPayableInput.QtyExit(Sender: TObject);
begin
HJJE();
end;
procedure TfrmOtherPayableInput.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmOtherPayableInput.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmOtherPayableInput.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 TfrmOtherPayableInput.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
function TfrmOtherPayableInput.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 := '<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><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 TfrmOtherPayableInput.ScrollBox1Click(Sender: TObject);
begin
HJJE();
end;
procedure TfrmOtherPayableInput.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.