📄 ar_enter_saleinvoice3_c1.pas
字号:
unit Ar_Enter_SaleInvoice3_C1;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Qry, StdCtrls, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids,
DBGridEh, ExtCtrls, ComCtrls, ToolWin, jpeg;
Type
TFrm_Ar_Enter_SaleInvoice3_C1 = Class(TFrm_Base_Qry)
btn_ok: TButton;
btn_Cancel: TButton;
Button1: TButton;
AdoQry_Maincheckflag: TIntegerField;
AdoQry_MainInvBillId: TFloatField;
AdoQry_MainInvBillNo: TStringField;
AdoQry_MainWHCode: TStringField;
AdoQry_MainWhPositionCode: TStringField;
AdoQry_MainInvBillDate: TDateTimeField;
AdoQry_MainInvBillMonth: TStringField;
AdoQry_MaInBillTypeCode: TStringField;
AdoQry_MaInBillType2Code: TStringField;
AdoQry_MaInvendorCode: TStringField;
AdoQry_MainEmployeeCode: TStringField;
AdoQry_MainDeptCode: TStringField;
AdoQry_MainCUSTOMERCode: TStringField;
AdoQry_MainCURRENCYCode: TStringField;
AdoQry_MainPONO: TStringField;
AdoQry_MainMONO: TStringField;
AdoQry_MainInvBillValuation: TIntegerField;
AdoQry_MainInvBillWHCHCK: TIntegerField;
AdoQry_MainWH_EmployeeCode: TStringField;
AdoQry_MainInvBillFINCHCK: TIntegerField;
AdoQry_MainFin_EmployeeCode: TStringField;
AdoQry_MainPRINTTIMES: TIntegerField;
AdoQry_MainSaleType: TStringField;
AdoQry_MainShiftType: TStringField;
AdoQry_MainInvBillRemArk: TStringField;
AdoQry_MainInvBillInfo: TStringField;
AdoQry_MainOWhPositionCode: TStringField;
AdoQry_MainInvBillStkChck: TIntegerField;
AdoQry_MainStk_EmployeeCode: TStringField;
AdoQry_MainInvBillTmpFlag: TIntegerField;
AdoQry_MainOverPlan: TIntegerField;
AdoQry_MainPOLineNo: TIntegerField;
AdoQry_MainMoLineNO: TIntegerField;
AdoQry_MainInvBillCreateTime: TDateTimeField;
AdoQry_MainSfc_EmployeeCode: TStringField;
AdoQry_MainSal_EmployeeCode: TStringField;
AdoQry_MainWH_EmployeeCode2: TStringField;
AdoQry_MainInvBilltaxrate: TFloatField;
AdoQry_MainMpsSale: TIntegerField;
AdoQry_MainopBill: TIntegerField;
AdoQry_MainSysBill: TIntegerField;
AdoQry_MainOldInvBillNo: TStringField;
AdoQry_MainPriceAdjustBill: TIntegerField;
AdoQry_MainWipWaster: TIntegerField;
AdoQry_MainAmountAdjust: TIntegerField;
AdoQry_MainShipType: TIntegerField;
AdoQry_MainShipAddresSCode: TStringField;
AdoQry_MainShipModeCode: TStringField;
AdoQry_MainSaleEmployeeCode: TStringField;
AdoQry_MainPayTermCode: TStringField;
AdoQry_MainInvoiceNo: TStringField;
AdoQry_MainRemArk: TStringField;
AdoQry_MainRemArk1: TStringField;
AdoQry_MainTotalInvBillAmount: TFloatField;
AdoQry_MainTotalInvBillNoTaxAmount: TFloatField;
AdoQry_MainTotalInvBillnoTaxAmountc: TFloatField;
AdoQry_MainTotalInvBillAmountc: TFloatField;
AdoQry_MaincurrencyName: TStringField;
AdoQry_Maincurrencyflag: TStringField;
AdoQry_MainDeptName: TStringField;
AdoQry_MainDeptflag: TStringField;
AdoQry_MainEmployeeName: TStringField;
AdoQry_MainEmployeeflag: TStringField;
AdoQry_MainPayTermName: TStringField;
AdoQry_MainPayTermflag: TStringField;
AdoQry_MainShipModeName: TStringField;
AdoQry_MainShipModeflag: TStringField;
AdoQry_MainSaleTypeName: TStringField;
AdoQry_MainSaleTypeflag: TStringField;
procedure FormDestroy(Sender: TObject);
procedure btn_CancelClick(Sender: TObject);
procedure DBGridEhTitleClick(Column: TColumnEh);
procedure btn_okClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure AdoQry_MainTotalInvBillAmountGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
procedure AdoQry_MainTotalInvBillNoTaxAmountGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
private
Flag:Boolean ;
{ Private declarations }
public
TaxRate : Double;//销售税率
ShipNoStArt,ShipNoend,CustomerCode,CustomerName:string;
DeptCode,DeptName,SaleTypeCode,SaleTypeName,SaleEmployeeCode,SaleEmployeeName :string;
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Ar_Enter_SaleInvoice3_C1: TFrm_Ar_Enter_SaleInvoice3_C1;
implementation
uses Ar_Enter_SaleInvoice3_C, Ar_Enter_SaleInvoice3, Sys_Global;
{$R *.DFM}
{ TFrm_Sal_Enter_ShipOrder_C1 }
procedure TFrm_Ar_Enter_SaleInvoice3_C1.InitForm(
AdOConnection: TAdOConnection; ReadOnly: Boolean);
var sqltext:string;
begin
inherited;
Frm_Sys_Condition:= TFrm_Ar_Enter_SaleInvoice3_C.Create(self);
act_filter.Execute;
Sqltext:='Select checkflag=1, '
+ ' InvOutBill.* , '
+ ' currency.currencyName, '
+ ' InvOutBill.currencyCode+'' ''+currency.currencyName as currencyflag, '
+ ' Dept.DeptName, '
+ ' InvOutBill.DeptCode+'' ''+Dept.DeptName as Deptflag, '
+ ' Employee.EmployeeName, '
+ ' InvOutBill.SaleEmployeeCode+'' ''+Employee.EmployeeName as Employeeflag, '
+ ' PayTerm.PayTermName,'
+ ' InvOutBill.PayTermCode+'' ''+PayTerm.PayTermName as PayTermflag, '
+ ' ShipMode.ShipModeName, '
+ ' InvOutBill.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModeflag, '
+ ' SaleType.SaleTypeName, '
+ ' InvOutBill.SaleType+'' ''+SaleType.SaleTypeName as SaleTypeflag '
+' into #rddd '
+ ' From InvOutBill '
+ ' left Join Dept '
+ ' On Dept.DeptCode=InvOutBill.DeptCode '
+ ' left Join Employee '
+ ' On Employee.EmployeeCode=InvOutBill.SaleEmployeeCode '
+ ' left Join PayTerm '
+ ' On PayTerm.PayTermCode=InvOutBill.PayTermCode '
+ ' left join ShipMode '
+ ' on InvOutBill.ShipModeCode=ShipMode.ShipModeCode '
+ ' left join currency '
+ ' on InvOutBill.currencyCode=currency.currencyCode '
+ ' left join SaleType '
+ ' on InvOutBill.SaleType=SaleType.SaleTypeCode '
+ ' where InvOutBill.BillTypeCode in (''0205'',''0206'') '
+' and exists (select * from InvOutBillLine where InvOutBillLIne.InvBillId=InvOutBill.InvBillId ) '
+' and ((InvOutBill.InvoiceNo='''') Or(InvOutBill.InvoiceNo is Null))And InvOutBill.CustomerCode='''+CustomerCode+''''
+' And InvOutBill.InvBillNo Between '''+ShipNoStArt+''' and '''+ShipNoend+''' '+' and InvBillWhChCk=1 '
+' and ShipType=2 ';
Executesql(AdoQry_Main,sqltext,1);
selectfromsql:='select * from #rddd Order by InvBillDate,InvBillNo';
getdata;
Flag:=False;
// DBGridEhTitleClick(DBGridEh.Columns[0] );
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Ar_Enter_SaleInvoice3_C1:=nil;
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.btn_CancelClick(Sender: TObject);
begin
inherited;
Frm_Ar_Enter_SaleInvoice3_C1.Close;
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.DBGridEhTitleClick(
Column: TColumnEh);
var
BookMArk:String;
begin
inherited;
If Trim(Column.Title.Caption)<>'标记' Then
Abort;
If AdoQry_Main.RecordCount=0 Then
Abort;
BookMArk:=AdoQry_Main.BookmArk;
If Not Flag Then
begin
AdoQry_Main.First;
While Not AdoQry_Main.Eof Do
begin
AdoQry_Main.Edit;
AdoQry_Main.fieldbyname('checkflag').AsInteger:=1;
AdoQry_Main.Post;
AdoQry_Main.Next;
end;
end
Else
begin
AdoQry_Main.First;
While Not AdoQry_Main.Eof Do
begin
AdoQry_Main.Edit;
AdoQry_Main.fieldbyname('checkflag').AsInteger:=0;
AdoQry_Main.Post;
AdoQry_Main.Next;
end;
end;
AdoQry_Main.BookmArk:=BookMArk;
Flag:=Not Flag;
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.btn_okClick(Sender: TObject);
var
I:boolean;
isFirst:boolean;
lastcurrency:string;
LastPayTermCode : String;
LastBillTypeCode : String;
begin
inherited;
I:=False;
if AdoQry_Main.RecordCount=0 then
begin
DispInfo('无销售退货单!',1);
abort;
end;
AdoQry_Main.First;
While (Not AdoQry_Main.Eof) do
begin
If AdoQry_Main.fieldbyname('Checkflag').AsInteger>0 Then
begin
DeptCode:=AdoQry_Main.fieldbyname('DeptCode').asstring;
DeptName:=AdoQry_Main.fieldbyname('DeptName').asstring;
SaleTypeCode:=AdoQry_Main.fieldbyname('SaleType').asstring;
SaleTypeName:=AdoQry_Main.fieldbyname('SaleTypeName').asstring;
SaleEmployeeCode:=AdoQry_Main.fieldbyname('SaleEmployeeCode').asstring;
SaleEmployeeName:=AdoQry_Main.fieldbyname('EmployeeName').asstring;
lastcurrency:=AdoQry_Main.fieldbyname('currencyCode').asstring;
lastPayTermCode := AdoQry_Main.fieldbyname('PayTermCode').asString;
LastBillTypeCode := AdoQry_Main.fieldbyname('BillTypeCode').AsString;
TaxRate := AdoQry_Main.fieldbyname('InvBillTaxRate').AsFloat;
I:=True;
Break;
end;
AdoQry_Main.Next;
end;
AdoQry_Main.Next;
while not AdoQry_Main.Eof do
begin
If AdoQry_Main.fieldbyname('Checkflag').AsInteger>0 Then
if not( (AdoQry_Main.fieldbyname('currencyCode').asstring=lastcurrency)
and (AdoQry_Main.fieldbyname('PayTermCode').asstring=lastPayTermCode)
and (AdoQry_Main.fieldbyname('InvBillTaxRate').AsFloat=TaxRate)
and (AdoQry_Main.fieldbyname('BillTypeCode').AsString=LastBillTypeCode)) then
begin
DispInfo('只有单据类型、货币、税率、付款条款相同的退货单才能开在一张发票上!',1);
abort;
end;
AdoQry_Main.Next;
end;
If I=True Then
begin
Frm_Ar_Enter_SaleInvoice3:=TFrm_Ar_Enter_SaleInvoice3.Create(Application);
Frm_Ar_Enter_SaleInvoice3.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
Frm_Ar_Enter_SaleInvoice3.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
Frm_Ar_Enter_SaleInvoice3.InitForm(DbConnect,'Add',AdoQry_Main);
Frm_Ar_Enter_SaleInvoice3_C1.Hide;
Frm_Ar_Enter_SaleInvoice3.ShowModal;
if Frm_Ar_Enter_SaleInvoice3<>nil then
Frm_Ar_Enter_SaleInvoice3.Close;
if Frm_Ar_Enter_SaleInvoice3_C1<>nil then
Frm_Ar_Enter_SaleInvoice3_C1.Close;
end
Else
begin
DispInfo('没有选定记录,不能执行新增操作!',3);
Abort;
end;
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
try
Executesql(AdoQry_tmp,'drop table #rddd',1);
except
end;
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.Button1Click(Sender: TObject);
var sqltext:string;
begin
inherited;
act_filter.Execute;
try
Executesql(AdoQry_tmp,'drop table #rddd',1);
except
end;
Sqltext:='Select checkflag=1, '
+ ' InvOutBill.* , '
+ ' currency.currencyName, '
+ ' InvOutBill.currencyCode+'' ''+currency.currencyName as currencyflag, '
+ ' Dept.DeptName, '
+ ' InvOutBill.DeptCode+'' ''+Dept.DeptName as Deptflag, '
+ ' Employee.EmployeeName, '
+ ' InvOutBill.SaleEmployeeCode+'' ''+Employee.EmployeeName as Employeeflag, '
+ ' PayTerm.PayTermName,'
+ ' InvOutBill.PayTermCode+'' ''+PayTerm.PayTermName as PayTermflag, '
+ ' ShipMode.ShipModeName, '
+ ' InvOutBill.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModeflag, '
+ ' SaleType.SaleTypeName, '
+ ' InvOutBill.SaleType+'' ''+SaleType.SaleTypeName as SaleTypeflag '
+' into #rddd '
+ ' From InvOutBill '
+ ' left Join Dept '
+ ' On Dept.DeptCode=InvOutBill.DeptCode '
+ ' left Join Employee '
+ ' On Employee.EmployeeCode=InvOutBill.SaleEmployeeCode '
+ ' left Join PayTerm '
+ ' On PayTerm.PayTermCode=InvOutBill.PayTermCode '
+ ' left join ShipMode '
+ ' on InvOutBill.ShipModeCode=ShipMode.ShipModeCode '
+ ' left join currency '
+ ' on InvOutBill.currencyCode=currency.currencyCode '
+ ' left join SaleType '
+ ' on InvOutBill.SaleType=SaleType.SaleTypeCode '
+ ' where InvOutBill.BillTypeCode in (''0205'',''0206'') '
+' and exists (select * from InvOutBillLine where InvOutBillLIne.InvBillId=InvOutBill.InvBillId ) '
+' and ((InvOutBill.InvoiceNo='''') Or(InvOutBill.InvoiceNo is Null))And InvOutBill.CustomerCode='''+CustomerCode+''''
+' And InvOutBill.InvBillNo Between '''+ShipNoStArt+''' and '''+ShipNoend+''' '+' and InvBillWhChCk=1 '
+' and ShipType=2 ';
Executesql(AdoQry_Main,sqltext,1);
selectfromsql:='select * from #rddd Order by InvBilldate,InvBillNo';
getdata;
Flag:=False;
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.AdoQry_MainTotalInvBillAmountGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Main.fieldbyname('TotalInvBillAmount').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice3_C1.AdoQry_MainTotalInvBillNoTaxAmountGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Main.fieldbyname('TotalInvBillNoTaxAmount').AsFloat);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -