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

📄 uoutputreimburse.pas

📁 天涯進銷存系統
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit uOutPutReimburse;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, LBCtrls, ExtCtrls, ActnList, StdCtrls, LBDBScrollBar, dbcgrids,
  LBDBCtrls, FR_DSet, FR_DBSet, FR_Class, DB, DBClient, SimpleDS, DBCtrls,
  Mask, ToolWin, ActnMan, ActnCtrls, ActnMenus, XPStyleActnCtrls,
  ActnColorMaps, jpeg;

type
  TfrmOutPutReimburse = class(TForm)
    ActionList1: TActionList;
    Action1: TAction;
    Action2: TAction;
    Action3: TAction;
    Action4: TAction;
    Action7: TAction;
    Action8: TAction;
    Action9: TAction;
    Action10: TAction;
    Label1: TLabel;
    Label2: TLabel;
    BillPanel: TPanel;
    Shape1: TShape;
    BillHandData: TSimpleDataSet;
    BillHandDs: TDataSource;
    BillBodyData: TSimpleDataSet;
    BillBodyDs: TDataSource;
    Report: TfrReport;
    ReportDataSet: TfrDBDataSet;
    Label3: TLabel;
    Label14: TLabel;
    BillDateDBEdit: TLBDBEdit;
    DepotDBEdit: TLBDBComboBox;
    plToolbar: TPanel;
    LBSpeecButton2: TLBSpeecButton;
    LBSpeecButton1: TLBSpeecButton;
    LBSpeecButton3: TLBSpeecButton;
    LBSpeecButton4: TLBSpeecButton;
    LBSpeecButton5: TLBSpeecButton;
    LBSpeecButton6: TLBSpeecButton;
    Image2: TImage;
    Shape22: TShape;
    Shape23: TShape;
    Shape24: TShape;
    Shape25: TShape;
    LBEditButton2: TLBEditButton;
    LBSpeecButton9: TLBSpeecButton;
    Action5: TAction;
    DBText2: TDBText;
    Action6: TAction;
    LBSpeecButton7: TLBSpeecButton;
    BillNextButton: TLBLabel;
    BillPriorButton: TLBLabel;
    Shape4: TShape;
    Shape3: TShape;
    Shape2: TShape;
    Label11: TLabel;
    Label17: TLabel;
    DBText1: TDBText;
    DBText3: TDBText;
    Label12: TLabel;
    Label13: TLabel;
    DBText4: TDBText;
    Label15: TLabel;
    DBText5: TDBText;
    Label23: TLabel;
    DBText6: TDBText;
    Auditing: TImage;
    Shape6: TShape;
    DBCtrlGrid: TDBCtrlGrid;
    Panel5: TPanel;
    Shape9: TShape;
    Shape11: TShape;
    Shape12: TShape;
    Shape14: TShape;
    Shape15: TShape;
    Shape16: TShape;
    Shape17: TShape;
    Shape18: TShape;
    Shape19: TShape;
    Panel6: TPanel;
    PartCodeDBEdit: TDBEdit;
    PartNameDBEdit: TDBEdit;
    ProducingDBEdit: TDBEdit;
    DepotPlaceDBEdit: TDBEdit;
    UnitDBEdit: TDBEdit;
    QuantityDBEdit: TDBEdit;
    PriceDBEdit: TDBEdit;
    AgioDBEdit: TDBEdit;
    CessDBEdit: TDBEdit;
    SumDBEdit: TDBEdit;
    Panel4: TPanel;
    Label4: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label24: TLabel;
    MemoDBEdit: TLBDBEdit;
    LBDBScrollBar1: TLBDBScrollBar;
    SaveButton: TLBButton;
    CancelButton: TLBButton;
    Label10: TLabel;
    LBEditButton1: TLBEditButton;
    ClientDBEdit: TLBDBEdit;
    Label16: TLabel;
    OutPutBillCodeDBEdit: TLBDBEdit;
    LBEditButton3: TLBEditButton;
    Label22: TLabel;
    InPubImg: TImage;
    EXECUTEMANDBEdit: TLBDBComboBox;
    HintPanel: TPanel;
    Label26: TLabel;
    Image1: TImage;
    BillInfoLabel: TLabel;
    BillHandDataBILLCODE: TStringField;
    BillHandDataBILLDATE: TSQLTimeStampField;
    BillHandDataPROVIDERCODE: TStringField;
    BillHandDataPROVIDERNAME: TStringField;
    BillHandDataDEPOTCODE: TStringField;
    BillHandDataDEPOTNAME: TStringField;
    BillHandDataCAUSE: TStringField;
    BillHandDataORDERBILLNO: TStringField;
    BillHandDataTOTALSUM: TBCDField;
    BillHandDataBIGSUM: TStringField;
    BillHandDataACCEPTSUM: TBCDField;
    BillHandDataAGIOSUM: TBCDField;
    BillHandDataISACCEPT: TStringField;
    BillHandDataISAUDITING: TStringField;
    BillHandDataAUDITINGMAN: TStringField;
    BillHandDataAUDITINGDATE: TSQLTimeStampField;
    BillHandDataISEXECUTE: TStringField;
    BillHandDataEXECUTEMAN: TStringField;
    BillHandDataEXECUTEDATE: TSQLTimeStampField;
    BillHandDataMEMO: TStringField;
    BillHandDataREIMBURSETYPE: TStringField;
    BillHandDataOPERATIONMAN: TStringField;
    BillHandDataOPERATOR: TStringField;
    BillBodyDataBILLCODE: TStringField;
    BillBodyDataID: TIntegerField;
    BillBodyDataPARTCODE: TStringField;
    BillBodyDataPARTNAME: TStringField;
    BillBodyDataBORNCODE: TStringField;
    BillBodyDataCARMODEL: TStringField;
    BillBodyDataPRODUCING: TStringField;
    BillBodyDataUNITS: TStringField;
    BillBodyDataDEPOTPLACE: TStringField;
    BillBodyDataQUANTITY: TBCDField;
    BillBodyDataPRICE: TBCDField;
    BillBodyDataCESS: TBCDField;
    BillBodyDataAGIO: TBCDField;
    BillBodyDataTOTALSUM: TBCDField;
    BillBodyDataREIMBURSEQRY: TBCDField;
    BillBodyDataORDERID: TIntegerField;
    BillBodyDataOUTPUTQRY: TBCDField;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BillHandDataAfterScroll(DataSet: TDataSet);
    procedure Action1Execute(Sender: TObject);
    procedure Action2Execute(Sender: TObject);
    procedure Action3Execute(Sender: TObject);
    procedure Action4Execute(Sender: TObject);
    procedure Action5Execute(Sender: TObject);
    procedure Action6Execute(Sender: TObject);
    procedure Action7Execute(Sender: TObject);
    procedure Action8Execute(Sender: TObject);
    procedure Action9Execute(Sender: TObject);
    procedure Action10Execute(Sender: TObject);
    procedure DepotDBEditEnter(Sender: TObject);
    procedure DBCtrlGridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure LBSpeecButton3Click(Sender: TObject);
    procedure LBEditButton2Click(Sender: TObject);
    procedure PartCodeDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure PartNameDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ProducingDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure UnitDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DepotPlaceDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure QuantityDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure PriceDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure AgioDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure CessDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure QuantityDBEditExit(Sender: TObject);
    procedure AgioDBEditExit(Sender: TObject);
    procedure CessDBEditExit(Sender: TObject);
    procedure BillNextButtonClick(Sender: TObject);
    procedure BillPriorButtonClick(Sender: TObject);
    procedure BillDateDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DepotDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DepotDBEditExit(Sender: TObject);
    procedure LBEditButton1Click(Sender: TObject);
    procedure LBEditButton3Click(Sender: TObject);
    procedure ClientDBEditEnter(Sender: TObject);
    procedure ClientDBEditExit(Sender: TObject);
    procedure ClientDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure OutPutBillCodeDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EXECUTEMANDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure QuantityDBEditEnter(Sender: TObject);
    procedure EXECUTEMANDBEditEnter(Sender: TObject);
    procedure PriceDBEditExit(Sender: TObject);
  private
    procedure SetView;
    procedure GetSum;
    procedure SetAuditing;
  public
    { Public declarations }
  end;

var
  frmOutPutReimburse: TfrmOutPutReimburse;
  isStateEdit, isEdit, isGetList: Boolean;
  OldSum, Sum, OldSaleQty: Double;
  OldCode, OldDepotCode, OldProviderCode, OldInPutBillCode: string;

implementation

uses uMain, uPublicvar, uConst, uDataMo, Tools, uReimbureseParts,
  uPartOutPutStock, uSelectOutPutReimburse;

{$R *.dfm}

procedure TfrmOutPutReimburse.SetView;
begin
  BillPanel.Enabled:=not BillPanel.Enabled;

  Action1.Enabled:=not Action1.Enabled;
  Action2.Enabled:=not Action2.Enabled;
  Action3.Enabled:=not Action3.Enabled;
  Action4.Enabled:=not Action4.Enabled;
  Action5.Enabled:=not Action5.Enabled;
  Action6.Enabled:=not Action6.Enabled;
  Action7.Enabled:=not Action7.Enabled;
  Action8.Enabled:=not Action8.Enabled;
  Action9.Enabled:=not Action9.Enabled;
  Action10.Enabled:=not Action10.Enabled;

  SaveButton.Visible:=not SaveButton.Visible;
  CancelButton.Visible:=not CancelButton.Visible;

  HintPanel.Visible:=not HintPanel.Visible;  
end;

procedure TfrmOutPutReimburse.GetSum;
var
  Agiosum, CessSum: Extended;
begin
  if isStateEdit then
  begin
    OldSum:=BillBodyData.FieldByName('TotalSum').asfloat;
    BillBodyData.Edit;
    if BillBodyData.FieldByName('Quantity').asstring='' then
    BillBodyData.FieldByName('Quantity').asfloat:=0;
    if BillBodyData.FieldByName('Price').asstring='' then
    BillBodyData.FieldByName('Price').asfloat:=0;
    if BillBodyData.FieldByName('Agio').asfloat>0 then
    Agiosum:=BillBodyData.FieldByName('Price').asfloat*
    (BillBodyData.FieldByName('Quantity').asfloat*
    (BillBodyData.FieldByName('Agio').asfloat/10))
    else
    Agiosum:=BillBodyData.FieldByName('Price').asfloat*
    BillBodyData.FieldByName('Quantity').asfloat;
    if BillBodyData.FieldByName('Cess').asfloat>0 then
    CessSum:=Agiosum*(BillBodyData.FieldByName('Cess').asfloat/100)
    else
    CessSum:=0;
    BillBodyData.FieldByName('TotalSum').asfloat:=Agiosum+CessSum;
    BillBodyData.Post;
    BillHandData.Edit;
    Sum:=Sum+BillBodyData.FieldByName('TotalSum').asfloat-OldSum;
    BillHandData.FieldByName('TotalSum').Asfloat:=Sum;
    BillHandData.FieldByName('BigSum').asstring:=
    SumSmallTOBig(BillHandData.FieldByName('TotalSum').Asfloat);
    DBCtrlGrid.SetFocus;
  end;
end;

procedure TfrmOutPutReimburse.SetAuditing;
var
  s: string;
  PaySum: Double;
begin
  try
    //是否冲减应收款
    s:='select BILLCODE, TOTALSUM, ACCEPTSUM, AGIOSUM, '+
       ' ISACCEPT From PARTSOUTPUTHAND where BILLCODE='+
       #39+Trim(OutPutBillCodeDBEdit.Text)+#39+' and isAccept="0"';
    OpenData(s, dmData.sdsPublic);
    if not dmData.sdsPublic.IsEmpty then
    begin
      if Application.MessageBox('是否冲减相应销售单的应收账款?', Hintinfo, $24)=idYes then
      begin
        //收款金额
        dmData.sdsPublic.Edit;
        //如果退货金额大于或等于未收金额
        if BillHandData.Fieldbyname('Totalsum').asfloat>=
           dmData.sdsPublic.FieldByName('TOTALSUM').asFloat-
           (dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat+
           dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat) then
        begin
          PaySum:=dmData.sdsPublic.FieldByName('TOTALSUM').asFloat-
           (dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat+
           dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat);

          dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat:=
          dmData.sdsPublic.FieldByName('TOTALSUM').asFloat-
                 dmData.sdsPublic.FieldByName('AGIOSUM').asFloat;;
          dmData.sdsPublic.FieldByName('ISACCEPT').asString:='1';
        end
        else
        begin
          PaySum:=BillHandData.Fieldbyname('Totalsum').asfloat;
          dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat:=
          dmData.sdsPublic.FieldByName('ACCEPTSUM').asFloat+PaySum;
        end;
        dmData.sdsPublic.ApplyUpdates(-1);
        //生成收款单
      end;
    end;
    BillHandData.ReadOnly:=False;
    BillHandData.Edit;
    BillHandData.FieldByName('isAuditing').AsString:='1';
    BillHandData.FieldByName('AuditingMan').AsString:=UserName;
    BillHandData.FieldByName('AuditingDate').asDateTime:=Now;
    BillHandData.FieldByName('ACCEPTSUM').asFloat:=
    BillHandData.FieldByName('ACCEPTSUM').asFloat+PaySum;
    if BillHandData.FieldByName('ACCEPTSUM').asFloat=
       BillHandData.FieldByName('TOTALSUM').asFloat then
    BillHandData.FieldByName('isAccept').asString:='1';
    SavePartData:=TClientDataSet.Create(Nil);
    SavePartData.Data:=BillBodyData.Data;
    PartInPutDataSave(BillHandData.FieldByName('DepotCode').asstring,
                      BillHandData.FieldByName('DepotName').asstring,
                      BillHandData.FieldByName('BillDate').asDateTime,
                      0);
    SetBillResInfo(Trim(OutPutBillCodeDBEdit.Text), 'PartsOutPutBody', BillBodyData);
    BillHandData.ApplyUpdates(-1);
    Auditing.Visible:=True;
    BillHandData.ReadOnly:=True;
    Application.MessageBox('审核提交数据成功。',Hintinfo,$30);
    SetDataDelInfo('Depot','DepotCode',BillHandData.Fieldbyname('DepotCode').asstring);
    SetPaymentSum(4, BillHandData.Fieldbyname('ProviderCode').asstring,
                     BillHandData.Fieldbyname('TOTALSUM').asFloat);
    BillBodyData.First;
  except
    Application.MessageBox('审核单据不成功。',Errorinfo,$10); 
  end;
end;


procedure TfrmOutPutReimburse.FormShow(Sender: TObject);
begin
  SetView;
  OpenData('Select * from ReimburseBillHand where ReimburseType='''+'2'''+' Order by BillCode DESC',BillHandData);
  isStateEdit:=False;
end;

procedure TfrmOutPutReimburse.FormActivate(Sender: TObject);
begin
  GetWindowsItem(Caption, Self);
end;

procedure TfrmOutPutReimburse.FormDestroy(Sender: TObject);
begin
  WindowItem.Delete(WindowItem.IndexOfObject(Self));
  BillHandData.Close;
  BillBodyData.Close;
end;

procedure TfrmOutPutReimburse.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
  frmOutPutReimburse:=Nil;
end;

procedure TfrmOutPutReimburse.BillHandDataAfterScroll(DataSet: TDataSet);
begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -