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

📄 finpro_xs_query.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
字号:
unit FinPro_XS_Query;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, DB, ADODB;

type
  TForm_FinPro_XS_Query = class(TForm)
    OKBtn: TBitBtn;
    CancelBtn: TBitBtn;
    Label1: TLabel;
    Label_XS_num: TLabel;
    Lbl_size: TLabel;
    DBT_ordid: TDBText;
    DBT_costume: TDBText;
    Label2: TLabel;
    Label7: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    Lbl_price: TLabel;
    Lbl_money: TLabel;
    Bevel1: TBevel;
    Lbl_unit: TLabel;
    ADOQ_tmp: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure OKBtnClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    price, money: real;
  public
    { Public declarations }
  end;

var
  Form_FinPro_XS_Query: TForm_FinPro_XS_Query;

implementation
uses Fin_Product_xs, sharefun, sharevar, data;
{$R *.dfm}

procedure TForm_FinPro_XS_Query.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;
end;

procedure TForm_FinPro_XS_Query.FormShow(Sender: TObject);
begin
  Label_XS_num.Caption:=floattostr(Form_Fin_Product_XS.XS_num);
  Lbl_size.Caption:=Form_Fin_Product_XS.size_name;
  Lbl_unit.Caption:=Form_Fin_Product_XS.tmp_unit+' 吗?';
  price:=Form_Fin_Product_XS.tmp_price;
  Lbl_price.Caption:='¥'+format('%.2f',[price])+' 元';
  money:=Form_Fin_Product_XS.tmp_money;
  Lbl_money.Caption:='¥'+format('%.2f',[money])+' 元';
end;

procedure TForm_FinPro_XS_Query.OKBtnClick(Sender: TObject);
var
tmp_id: integer;
tmp_event:string;
finxs_flag:boolean;
begin
  if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
  begin
    MsgOk(handle,'服装成品销售失败,请重试!');
    exit;
  end;

  //数据提交开始
  finxs_flag:=true;
  datamod.ADOCon.BeginTrans;

	//1.销售流水表新增一条记录
  with ADOQ_tmp do
  begin
    close;sql.clear;
    sql.add('insert into xs_fin_product(ord_id, num, size_name, price, [money], tmp_id)');
    sql.add(' values(:ord_id, :num, :size_name, :price, :money, :tmp_id)');
    parameters.ParamValues['ord_id']:=DBT_ordid.Caption;
    parameters.ParamValues['tmp_id']:=tmp_id;
    parameters.ParamValues['num']:=Form_Fin_Product_XS.XS_num;
    parameters.ParamValues['price']:=price;
    parameters.ParamValues['size_name']:=Form_Fin_Product_XS.size_name;
    parameters.ParamValues['money']:=money;
    try
      execsql;
    except
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      MsgErr(handle,'服装成品销售出库处理失败--1!');
      finxs_flag:=false; exit;
    end;
  end;//1.End
  
  //2.更新成品库存表的库存量
  with ADOQ_tmp do
  begin
    close; sql.clear;
    
    //当销售不同大小型号的服装时,则修改不同型号的库存数量
		if Form_Fin_Product_XS.size_type='size_1' then
    begin
      sql.Add('update kc_fin_product set num=num-:XS_num');
      sql.Add('update kc_fin_product set size_1=size_1-:XS_sizenum');
      sql.add('where (ord_id=:ord_id)')
    end;
    if Form_Fin_Product_XS.size_type='size_2' then
    begin
      sql.Add('update kc_fin_product set num=num-:XS_num');
      sql.Add('update kc_fin_product set size_2=size_2-:XS_sizenum');
      sql.add('where (ord_id=:ord_id)')
    end;
    if Form_Fin_Product_XS.size_type='size_3' then
    begin
      sql.Add('update kc_fin_product set num=num-:XS_num');
      sql.Add('update kc_fin_product set size_3=size_3-:XS_sizenum');
      sql.add('where (ord_id=:ord_id)')
    end;
    if Form_Fin_Product_XS.size_type='size_4' then
    begin
      sql.Add('update kc_fin_product set num=num-:XS_num');
      sql.Add('update kc_fin_product set size_4=size_4-:XS_sizenum');
      sql.add('where (ord_id=:ord_id)')
    end;
    if Form_Fin_Product_XS.size_type='size_5' then
    begin
      sql.Add('update kc_fin_product set num=num-:XS_num');
      sql.Add('update kc_fin_product set size_5=size_5-:XS_sizenum');
      sql.add('where (ord_id=:ord_id)')
    end;
    if Form_Fin_Product_XS.size_type='size_6' then
    begin
      sql.Add('update kc_fin_product set num=num-:XS_num');
      sql.Add('update kc_fin_product set size_6=size_6-:XS_sizenum');
      sql.add('where (ord_id=:ord_id)')
    end;
    parameters.ParamValues['XS_num']:=Form_Fin_Product_XS.XS_num;
    parameters.ParamValues['XS_sizenum']:=Form_Fin_Product_XS.XS_num;
    parameters.paramvalues['ord_id']:=DBT_ordid.Caption;
    try
      execsql;
    except
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      MsgErr(handle,'服装成品销售出库处理失败--2!');
      finxs_flag:=false; exit;
    end;
  end;//2.End

{  //得到借支事由字段值
  if (Form_Fin_Product_XS.emp_name='') or (Form_Fin_Product_XS.emp_name=null)
  then Form_Fin_Product_XS.emp_name:='外来人员';
  tmp_event:=Form_Fin_Product_XS.emp_name+'购买:'+Form_Fin_Product_XS.tmp_costume+Label_XS_num.Caption+Form_Fin_Product_XS.tmp_unit;

  if not Form_Fin_Product_XS.money_Flag then
	//3.企业收入流水账中新增一条记录
  with ADOQ_tmp do
  begin
    close;sql.clear;
    sql.add('INSERT INTO earning(event, [money], tmp_id)');
    sql.add(' values(:event, :money, :tmp_id)');
    parameters.ParamValues['event']:=tmp_event;
    parameters.ParamValues['tmp_id']:=tmp_id;
    parameters.ParamValues['money']:=money;
    try
      execsql;
    except
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      MsgErr(handle,'服装成品销售出库处理失败--3!');
      finxs_flag:=false; exit;
    end;
  end;//3.End       }


    //得到借支事由字段值
  if (Form_Fin_Product_XS.emp_name='') or (Form_Fin_Product_XS.emp_name=null)
  then Form_Fin_Product_XS.emp_name:='外来人员';
  tmp_event:=Form_Fin_Product_XS.emp_name+'购买:'+Form_Fin_Product_XS.tmp_costume+Label_XS_num.Caption+Form_Fin_Product_XS.tmp_unit;
  
	//3.企业收入流水账中新增一条记录
  with ADOQ_tmp do
  begin
    close;sql.clear;
    sql.add('INSERT INTO earning(event, [money], tmp_id)');
    sql.add(' values(:event, :money, :tmp_id)');
    parameters.ParamValues['event']:=tmp_event;
    parameters.ParamValues['tmp_id']:=tmp_id;
    parameters.ParamValues['money']:=money;
    try
      execsql;
    except
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      MsgErr(handle,'服装成品销售出库处理失败--3!');
      finxs_flag:=false; exit;
    end;
  end;//3.End


	//4.工人支出表中新增一条记录(如果是工人预付个人工资的则新增一条记录)
  if Form_Fin_Product_XS.money_Flag then
  with ADOQ_tmp do
  begin
    close;sql.clear;
    sql.add('INSERT INTO brrow(empid, event, [money], tmp_id)');
    sql.add(' values(:empid, :event, :money, :tmp_id)');
    parameters.ParamValues['empid']:=Form_Fin_Product_XS.emp_id;
    parameters.ParamValues['tmp_id']:=tmp_id;
    parameters.ParamValues['event']:=tmp_event;
    parameters.ParamValues['money']:=money;
    try
      execsql;
    except
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      MsgErr(handle,'服装成品销售出库处理失败--4!');
      finxs_flag:=false; exit;
    end;
  end;//4.End

  //提交数据库
  if not finxs_flag then 
  begin
    if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
    msgErr(handle,'服装成品 [ '+DBT_costume.Caption+' ] 销售  '+Label_XS_num.Caption+'  '+Form_Fin_Product_XS.tmp_unit+'失败,请重试--All!');
    self.ModalResult:=mrCancel; exit;
  end;
  if datamod.ADOCon.InTransaction then
  begin
    try
      datamod.ADOCon.CommitTrans;
    except
      msgErr(handle,'服装成品 [ '+DBT_costume.Caption+' ] 销售  '+Label_XS_num.Caption+'  '+Form_Fin_Product_XS.tmp_unit+'失败,请重试--All!');
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      self.ModalResult:=mrCancel; exit;
    end;
    msgok(handle,'服装成品 [ '+DBT_costume.Caption+' ] 销售  '+Label_XS_num.Caption+'  '+Form_Fin_Product_XS.tmp_unit+'成功!');
    self.ModalResult:=mrok;
  end;

//********************************************
//********************************************
//********************************************

  //CALL DATABASE Pro_XS_FinKC STORE PROCEDURE
  //(@ord_id varchar(10), @size_name varchar(8), @num int, @price float, @tmp_id int, @empid int, @size_type varchar(6),@money_Flag varchar(1), @event varchar(30))
{
  if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
  begin
    MsgOk(handle,'服装成品销售失败,请重试!');
    exit;
  end;

  with ADOSP_XS_FinKC do
  begin
    parameters.paramvalues['@ord_id']:=DBT_ordid.Caption;
    parameters.paramvalues['@size_name']:=Form_Fin_Product_XS.size_name;
    parameters.paramvalues['@num']:=Form_Fin_Product_XS.XS_num;
    parameters.paramvalues['@price']:=price;
    parameters.paramvalues['@tmp_id']:=tmp_id;
    parameters.paramvalues['@size_type']:=Form_Fin_Product_XS.size_type;
    if Form_Fin_Product_XS.emp_name='' then Form_Fin_Product_XS.emp_name:='外来人员';
    tmp_event:=Form_Fin_Product_XS.emp_name+'购买:'+Form_Fin_Product_XS.tmp_costume+Label_XS_num.Caption+Form_Fin_Product_XS.tmp_unit;
    parameters.paramvalues['@event']:=tmp_event;

    if Form_Fin_Product_XS.money_Flag then
    begin
      parameters.paramvalues['@money_Flag']:='1';
      parameters.paramvalues['@empid']:=Form_Fin_Product_XS.emp_id;
    end
    else parameters.paramvalues['@money_Flag']:='F';

    try
      execproc;
    except
      showmessage('存储过程执行失败(Pro_XS_FinKC),请重新操作!');
      exit;
    end;
    if parameters.paramvalues['@RETURN_VALUE']=0 then
    begin
      msgErr(handle,'服装成品 [ '+DBT_costume.Caption+' ] 销售  '+Label_XS_num.Caption+'  '+Form_Fin_Product_XS.tmp_unit+'失败,请重试!');
      exit;
    end;
    if parameters.paramvalues['@RETURN_VALUE']=1 then
    msgok(handle,'服装成品 [ '+DBT_costume.Caption+' ] 销售  '+Label_XS_num.Caption+'  '+Form_Fin_Product_XS.tmp_unit+'成功!');
    self.ModalResult:=mrok;
  end;    }
end;

end.

⌨️ 快捷键说明

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