⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ar_enter_saleinvoice4h.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -