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

📄 uinputreimburse.~pas

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

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
  TfrmInPutReimburse = 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;
    ProviderDBEdit: TLBDBEdit;
    Label16: TLabel;
    InPutBillCodeDBEdit: 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 ProviderDBEditEnter(Sender: TObject);
    procedure ProviderDBEditExit(Sender: TObject);
    procedure ProviderDBEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure InPutBillCodeDBEditKeyDown(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
  frmInPutReimburse: TfrmInPutReimburse;
  isStateEdit, isEdit, isGetList: Boolean;
  OldSum, Sum, OldSaleQty: Double;
  OldCode, OldDepotCode, OldProviderCode, OldInPutBillCode: string;

implementation

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

{$R *.dfm}

procedure TfrmInPutReimburse.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 TfrmInPutReimburse.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 TfrmInPutReimburse.SetAuditing;
begin
  try
    BillHandData.ReadOnly:=False;
    BillHandData.Edit;
    BillHandData.FieldByName('isAuditing').AsString:='1';
    BillHandData.FieldByName('AuditingMan').AsString:=UserName;
    BillHandData.FieldByName('AuditingDate').asDateTime:=Now;
    SavePartData:=TClientDataSet.Create(Nil);
    SavePartData.Data:=BillBodyData.Data;
    PartOutPutDataSave(BillHandData.FieldByName('DepotCode').asstring,
                      BillHandData.FieldByName('DepotName').asstring,
                      BillHandData.FieldByName('BillDate').asDateTime,
                      3);
    SetBillResInfo(Trim(InPutBillCodeDBEdit.Text), 'PartsInPutBody', BillBodyData);
    BillHandData.ApplyUpdates(-1);
    Auditing.Visible:=True;
    BillHandData.ReadOnly:=True;
    Application.MessageBox('审核提交数据成功。',Hintinfo,$30);
    SetDataDelInfo('Depot','DepotCode',BillHandData.Fieldbyname('DepotCode').asstring);
    SetPaymentSum(3, BillHandData.Fieldbyname('ProviderCode').asstring,
                     BillHandData.Fieldbyname('TOTALSUM').asFloat);
    BillBodyData.First;
  except
    Application.MessageBox('审核单据不成功。',Errorinfo,$10); 
  end;
end;


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

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

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

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

procedure TfrmInPutReimburse.BillHandDataAfterScroll(DataSet: TDataSet);
begin
  OpenData('Select * from ReimburseBillBody where BillCode='+
            #39+BillHandData.Fieldbyname('BillCode').asstring+#39,
            BillBodyData);
  if BillHandData.FieldByName('isAuditing').AsString='1' then
  Auditing.Visible:=True
  else
  Auditing.Visible:=False;
  if BillHandData.FieldByName('isExecute').AsString='1' then
   InPubImg.Visible:=True
  else
   InPubImg.Visible:=False;
end;

procedure TfrmInPutReimburse.Action1Execute(Sender: TObject);
begin
  SetView;
  ProviderDBEdit.SetFocus;
  ProviderDBEdit.DataField:='ProviderCode';
  BillBodyData.ReadOnly:=False;
  BillHandData.ReadOnly:=False;
  BillHandData.Append;
  BillBodyData.Append;
  BillHandData.Fieldbyname('BillCode').asstring:='新单据';
  BillHandData.FieldByName('Operator').asstring:=UserName;
  BillHandData.Fieldbyname('BILLDATE').asDateTime:=Date;
  BillHandData.FieldByName('isAccept').AsString:='0';
  BillHandData.FieldByName('isAuditing').AsString:='0';
  BillHandData.Fieldbyname('ACCEPTSUM').asFloat:=0;
  BillHandData.Fieldbyname('AGIOSUM').asFloat:=0;

⌨️ 快捷键说明

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