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

📄 unit_job.pas

📁 一个小型餐饮管理系统,可支持小票打印.还存在一些小问题,希望朋友们帮助完成. QQ:15372627 E-mail:hdw802.163.com
💻 PAS
字号:
unit Unit_JOB;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, ExtCtrls,DB, DBClient,Data_DL,Grids;

Type
  TJobMoney=Record
  Xj,Qd,Gz:Currency;
End;
Type
  TCalcMoney=Record
  jy,up,bak,jj,total:Currency;
End;
type
 Tjob=class(TObject)

 private
  Mydata:TDL_Data;
  SCds,MCds:TclientDataSet;
  Str:string;


 public
  constructor create;
  destructor destroy;override;

  //获取工作人员当班时间
  Function LoginTime(AdminID:Integer):TDateTime;

  //获取指定起始日期及工作人员ID的现金\签单、挂账款数
  Function Get_JObMoney(AdminID:Integer;BTime,ETime:TdateTime):TJobMoney;

  //获取前班结余款数
  Function Get_JYMoney:Currency;

  //写入交班数据
  Procedure WriteJobInfo(CalcMoney:TCalcMoney;JobMoney:TjobMoney;JbManID:integer;JbTime:TdateTime);

      
 end;

implementation

{ Tjob }

constructor Tjob.create;
begin
 Mydata:=TDL_Data.Create(nil);
 SCds:=TClientDataSet.Create(nil);
 Mcds:=TClientDataSet.Create(nil);
end;

destructor Tjob.destroy;
begin
  FreeAndNil(MYdata);
  FreeAndNil(SCds);
  FreeAndNil(Mcds);
  inherited;
end;

function Tjob.Get_JOBMoney(AdminID: Integer; BTime,
  ETime: TdateTime): TJobMoney;
Var
Tmp:TJobMoney;
begin
 Str:='Select Sum(dbo.Xf_Master.SSMoney) As JOBMoney,dbo.xf_Type.Name As Name';
 Str:=Str+' From dbo.xf_Master Inner Join dbo.xf_type ON dbo.xf_Master.xf_Type = dbo.xf_Type.ID';
 Str:=Str+' WHERE (dbo.XF_Master.OperTime > CONVERT(DATETIME, '''+DateTimeToStr(BTime)+''',102)) And';
 Str:=Str+' (dbo.XF_Master.OperTime < CONVERT(DATETIME, '''+DateTimeToStr(ETime)+''', 102)) AND';
 Str:=Str+' (dbo.XF_Master.AdminID ='+IntTostr(AdminID)+')';
 Str:=Str+' Group By dbo.xf_Type.Name';
 Mcds.Data:=Mydata.Open_SQL(Str);

 While Not Mcds.Eof Do
 Begin
  if Trim(Mcds.FieldByName('Name').AsString)='现金' Then
    Tmp.xj:=Mcds.FieldByName('JOBMoney').AsCurrency;
  if Trim(Mcds.FieldByName('Name').AsString)='签单' Then
    Tmp.Qd:=Mcds.FieldByName('JOBMoney').AsCurrency;
  if Trim(Mcds.FieldByName('Name').AsString)='挂账' Then
    Tmp.Gz:=Mcds.FieldByName('JOBMoney').AsCurrency;
  Mcds.Next;
 End;
//Showmessage(floatTostr(Tmp));
 Result:=Tmp;
end;


function Tjob.Get_JYMoney: Currency;
Var
 MaxID:Integer;
begin
Result:=0;
 Str:='Select max(id) As MAXID From JobInfo';
 mcds.Data:=mydata.Open_SQL(Str);
 if MCds.RecordCount<>0 Then
 Begin
  MaxID:=mcds.FieldByName('MAXID').AsInteger;
  Str:='Select * From JobInfo Where ID='+inttostr(maxid);
  mcds.Data:=mydata.Open_SQL(Str);
  Result:=Mcds.FieldByName('Bak').AsCurrency;
 End;
end;

function Tjob.LoginTime(AdminID: Integer): TDateTime;
begin
 Str:='Select LoginTime from Admin_info Where ID='+IntToStr(AdminID);
 Mcds.data:=Mydata.Open_SQL(Str);
 Result:=Mcds.fieldByName('Logintime').AsDateTime;
end;

procedure Tjob.WriteJobInfo(CalcMoney: TCalcMoney; JobMoney: TjobMoney;
  JbManID: integer; JbTime: TdateTime);
begin
 Str:='Insert Into JobInfo (JY,xj,Qd,Gz,Up,Bak,JJ,JbManId,JbTime,GbManID,Total) Values (';
 Str:=Str+FloatToStr(calcMoney.jy)+',';
 Str:=Str+FloatToStr(JobMoney.Xj)+',';
 Str:=Str+FloatToStr(JobMoney.Qd)+',';
 Str:=Str+FloatToStr(JobMoney.Gz)+',';
 Str:=Str+FloatToStr(CalcMoney.up)+',';
 Str:=Str+FloatToStr(CalcMoney.bak)+',';
 Str:=Str+FloatToStr(CalcMoney.jj)+',';
 

end;

end.

⌨️ 快捷键说明

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