📄 ar_enter_saleinvoice4h.pas
字号:
end;
try
dbconnect.beginTrans;
saveSalInvoiceHistory(dbconnect,AdoQry_Head.fieldbyname('Invoiceno').asstring,userCode,9);
sqltext:='update sa_SaleInvoice'
+' set active=0 '
+' where Invoiceno='+quotedstr(AdoQry_Head.fieldbyname('Invoiceno').asstring);
Executesql(AdoQry_tmp,sqltext,1);
Executesql(AdoQry_tmp,'update InvOutBill '
+' set Invoiceno='+quotedstr('')
+' where InvBillId in (select distinct InvBillId from sa_SaleInvoiceline where Invoiceno='+quotedstr(AdoQry_Head.fieldbyname('Invoiceno').asstring)+')',1);
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('active').asinteger:=0;
AdoQry_Head.Post;
dbconnect.CommitTrans;
except
if dbconnect.InTransaction then dbconnect.RollBackTrans;
DispInfo('操作失败,发票'+AdoQry_Head.fieldbyname('Invoiceno').asstring+'没有作废!',1);
abort;
end;
tlbtn_Delete.Action:=act_Delete;
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.Act_DeleteExecute(Sender: TObject);
var sqltext:string;
TmpAdoQry : TAdoQuery;
begin
inherited;
if AdoQry_Head.RecordCount=0 then exit;
if DispInfo('确认要删除这张专用发票吗?',2)<>'y' then exit;
If AdoQry_Head.fieldbyname('ISCredence').AsInteger = 1 then
begin
DispInfo('已做凭证处理,不能删除!',3);
Exit;
end;
TmpAdoQry := TAdoQuery.Create(self);
TmpAdoQry.Connection := Dbconnect;
TmpAdoQry.EnableBCD := False;
SqlText := 'Select distinct InvBillId from Sa_SaleInvoiceLine '
+' where InvoiceNo='+QuotedStr(AdoQry_Head.fieldbyname('InvoiceNO').AsString);
ExecuteSQl(TmpAdoQry,SqlText,0) ;
Try
dbconnect.beginTrans;
While Not TmpAdoQry.Eof do
begin
SQlText := 'Update InvOutBill '
+' set InvoiceNo = '''' '
+' Where InvBillId='+TmpAdoQry.fieldbyname('InvBillId').AsString;
ExecuteSql(AdoQry_Tmp,SqlText,1);
TmpAdoQry.next;
end;
saveSalInvoiceHistory(dbconnect,AdoQry_Head.fieldbyname('Invoiceno').asstring,userCode,2);
SqlText := 'select * from Sa_SaleInvoiceLine '
+' where InvoiceNo='+QuotedStr(AdoQry_Head.fieldbyname('InvoiceNo').AsString);
ExecuteSql(TmpAdoQry,SqlText,0);
While Not TmpAdoQry.Eof do
begin
SaveSalInvoiceLineHistory(dbconnect,AdoQry_Head.fieldbyname('InvoiceNo').AsString,
TmpAdoQry.fieldbyname('InvBillId').AsInteger,
TmpAdoQry.fieldbyname('InvBillLineNo').AsString,
userCode,
2);
TmpAdoQry.Next;
end;
SqlText := ' Delete From Sa_SaleInvoiceLine '
+' where InvoiceNo='+QuotedStr(AdoQry_Head.fieldbyname('InvoiceNo').AsString)
+' Delete from Sa_SaleInvoice '
+' where InvoiceNo='+QuotedStr(AdoQry_Head.fieldbyname('InvoiceNo').AsString);
ExecuteSql(AdoQry_Tmp,SqlText,1);
TmpAdoQry.Free;
dbconnect.CommitTrans;
AdoQry_Head.Delete;
Except
If dbconnect.InTransaction then dbconnect.RollBackTrans;
If Assigned(TmpAdoQry) then TmpAdoQry.Free;
DispInfo('删除失败,可能数据已被引用!',3);
Abort;
end;
{ if AdoQry_Head.RecordCount=0 then exit;
if AdoQry_Head.fieldbyname('active').asinteger=1 then exit;
if DispInfo('确认要弃废这张专用发票吗?',2)<>'y' then exit;
sqltext:='select active from sa_SaleInvoice'
+' where Invoiceno='+quotedstr(AdoQry_Head.fieldbyname('Invoiceno').asstring);
Executesql(AdoQry_tmp,sqltext,0);
if AdoQry_tmp.RecordCount=0 then
begin
DispInfo('这张发票已被别人删除,请刷新!',1);
abort;
end;
Executesql(AdoQry_tmp,' select InvBillId from InvOutBill '
+' where InvBillId in (select distinct InvBillId from sa_SaleInvoiceline where Invoiceno='
+quotedstr(AdoQry_Head.fieldbyname('Invoiceno').asstring)+')'
+' and Invoiceno<>'+quotedstr(''),0 );
if AdoQry_tmp.RecordCount>0 then
begin
DispInfo('发票'+AdoQry_Head.fieldbyname('Invoiceno').asstring+'对应的销售发货单已有开票,不能弃废!',1);
abort;
end;
try
dbconnect.beginTrans;
saveSalInvoiceHistory(dbconnect,AdoQry_Head.fieldbyname('Invoiceno').asstring,userCode,10);
sqltext:='update sa_SaleInvoice'
+' set active=1 '
+' where Invoiceno='+quotedstr(AdoQry_Head.fieldbyname('Invoiceno').asstring);
Executesql(AdoQry_tmp,sqltext,1);
Executesql(AdoQry_tmp,'update InvOutBill '
+' set Invoiceno='+quotedstr(AdoQry_Head.fieldbyname('Invoiceno').asstring)
+' where InvBillID in (select distinct InvBillID from sa_SaleInvoiceline where Invoiceno='+quotedstr(AdoQry_Head.fieldbyname('Invoiceno').asstring)+')',1);
AdoQry_Head.Edit;
AdoQry_Head.fieldbyname('active').asinteger:=1;
AdoQry_Head.Post;
dbconnect.CommitTrans;
except
if dbconnect.InTransaction then dbconnect.RollBackTrans;
DispInfo('操作失败,发票'+AdoQry_Head.fieldbyname('Invoiceno').asstring+'没有弃废!',1);
abort;
end;
tlbtn_Delete.Action:=act_Cancelcheck;
}
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadAfterScroll(
DataSet: TDataSet);
begin
inherited;
{ if AdoQry_Head.RecordCount=0 then exit;
if AdoQry_Head.fieldbyname('active').asinteger=0 then
tlbtn_Delete.Action:=act_Delete
else
tlbtn_Delete.Action:=act_Cancelcheck;
}
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.FormCreate(Sender: TObject);
begin
inherited;
// tlbtn_Delete.Action:=act_Cancelcheck;
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadTotalNoTaxAmountGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('TotalNoTaxAmount').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadTotalTaxGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('TotalTAx').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadTotalTaxAmountCGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('TotalTaxAmountC').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadTotalNoTaxAmountCGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('TotalNoTaxAmountC').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadTotalTaxCGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('TotalTaxC').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadCancelAmountCGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('CancelAmountC').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadTotalTaxAmountGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('TotalTaxAmount').AsFloat);
end;
procedure TFrm_Ar_Enter_SaleInvoice4H.AdoQry_HeadCancelAmountGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
Text := FloatToStr(-AdoQry_Head.fieldbyname('CancelAmount').AsFloat);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -