📄 finpro_xs_query.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 + -