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

📄 fin_product_ck.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Fin_Product_CK;

interface

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

type
  TForm_Fin_Product_CK = class(TForm)
    ADOV_KC_Fin: TADOQuery;
    ADOV_CK_Fin: TADOQuery;
    ADOV_CK_Finord_id: TStringField;
    ADOV_CK_Fincust_name: TStringField;
    ADOV_CK_Fincostume_name: TStringField;
    ADOV_CK_Finclo_name: TStringField;
    ADOV_CK_Finunit: TStringField;
    ADOV_CK_Finnum: TIntegerField;
    ADOV_CK_Finsize_1: TIntegerField;
    ADOV_CK_Finsize_2: TIntegerField;
    ADOV_CK_Finsize_3: TIntegerField;
    ADOV_CK_Finsize_4: TIntegerField;
    ADOV_CK_Finsize_5: TIntegerField;
    ADOV_CK_Finsize_6: TIntegerField;
    ADOV_CK_Fintmp_id: TIntegerField;
    ADOV_CK_Finopername: TStringField;
    DS_CK_Fin: TDataSource;
    DS_KC_Fin_V: TDataSource;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Panel1: TPanel;
    Button1: TButton;
    GroupBox4: TGroupBox;
    DBGrid1: TDBGrid;
    TabSheet2: TTabSheet;
    Panel4: TPanel;
    DBGrid2: TDBGrid;
    Panel5: TPanel;
    Label22: TLabel;
    Label23: TLabel;
    Label25: TLabel;
    Bevel1: TBevel;
    OKBtn: TBitBtn;
    CancelBtn: TBitBtn;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    ComboBox3: TComboBox;
    Edit2: TEdit;
    ComboBox2: TComboBox;
    GroupBox6: TGroupBox;
    Label31: TLabel;
    Label32: TLabel;
    Sdate: TDateTimePicker;
    Edate: TDateTimePicker;
    Panel3: TPanel;
    ADOV_CK_Finckid: TAutoIncField;
    ADOV_KC_Finord_id: TStringField;
    ADOV_KC_Finnum: TIntegerField;
    ADOV_KC_Finsize_1: TIntegerField;
    ADOV_KC_Finsize_2: TIntegerField;
    ADOV_KC_Finsize_3: TIntegerField;
    ADOV_KC_Finsize_4: TIntegerField;
    ADOV_KC_Finsize_5: TIntegerField;
    ADOV_KC_Finsize_6: TIntegerField;
    ADOV_KC_Fincostume_name: TStringField;
    ADOV_KC_Finunit: TStringField;
    ADOV_KC_Fincust_name: TStringField;
    ADOV_KC_Finclo_name: TStringField;
    ADOV_CK_Finckdate: TDateTimeField;
    ADOQ_tmp: TADOQuery;
    DBLookup_ordid: TComboBox;
    Lookup_costume: TComboBox;
    DBLookup_custname: TComboBox;
    DBLookup_cloth: TComboBox;
    DBLookup_operid: TComboBox;
    Label28: TLabel;
    Label15: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label12: TLabel;
    Panel6: TPanel;
    Label3: TLabel;
    DBText1: TDBText;
    GroupBox2: TGroupBox;
    Label8: TLabel;
    Label9: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Edit_S: TEdit;
    Edit_M: TEdit;
    Edit_L: TEdit;
    Edit_XXL: TEdit;
    Edit_XL: TEdit;
    Edit_XXXL: TEdit;
    BitBtn_CK: TBitBtn;
    Edit_num: TEdit;
    Panel2: TPanel;
    Label2: TLabel;
    DBLookupComboBox1: TComboBox;
    Label5: TLabel;
    DBE_costume: TDBEdit;
    DBE_ordid: TDBEdit;
    Label4: TLabel;
    DBE_custname: TDBEdit;
    Label1: TLabel;
    Bit_Ser2: TBitBtn;
    Edit3: TEdit;
    Label16: TLabel;
    Panel7: TPanel;
    BitBtn1: TBitBtn;
    LocateBtn: TBitBtn;
    ExtBtn: TBitBtn;
    Btnexport: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn_CKClick(Sender: TObject);
    procedure LocateBtnClick(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure OKBtnClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DBLookupComboBox1Change(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Bit_Ser2Click(Sender: TObject);
    procedure BtnexportClick(Sender: TObject);
  private
    { Private declarations }
    procedure refreshdb;
  public
    { Public declarations }
  end;

var
  Form_Fin_Product_CK: TForm_Fin_Product_CK;

implementation
uses sharevar, sharefun, data, Main;

{$R *.dfm}

procedure TForm_Fin_Product_CK.refreshdb;
begin
  with ADOV_KC_Fin do begin close; open; end;
  with ADOV_CK_Fin do
  begin
    sql.Strings[1]:='';
    sql.Strings[2]:='order by ord_id';
    try
      execsql;
      open;
    except
      msgErr(handle,'刷新数据库失败!(View_RK_Fin)');
    end;
  end;
end;

procedure TForm_Fin_Product_CK.FormCreate(Sender: TObject);
begin
  if not ADOV_KC_Fin.Active then ADOV_KC_Fin.Open;
  Edit_num.Text:='0'; Edit_S.Text:='0';
  Edit_M.Text:='0';   Edit_L.Text:='0';
  Edit_XL.Text:='0';  Edit_XXL.Text:='0';
  Edit_XXXL.Text:='0';
end;

procedure TForm_Fin_Product_CK.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if ADOV_KC_Fin.Active then ADOV_KC_Fin.Close;
  if ADOV_CK_Fin.Active then ADOV_CK_Fin.Close;
  action:=cafree;
end;

procedure TForm_Fin_Product_CK.BitBtn_CKClick(Sender: TObject);
var
ord_id, costume_name, qst_str, tmp_unit:string;
tmp_id, num, temp_sum_num, kc_num : integer;
size_1, size_2, size_3, size_4, size_5, size_6: integer;
kc_size_1, kc_size_2, kc_size_3, kc_size_4, kc_size_5, kc_size_6: integer;
unit_price, money:real;
finck_flag:boolean;
begin
  ord_id:=trim(DBE_ordid.Text);
  if ord_id='' then
  begin
    MsgOk(handle, '请选择待出库的服装成品!');
    DBE_ordid.SetFocus;
    exit;
  end;
  costume_name:=trim(DBE_costume.Text);
  tmp_unit:=ADOV_KC_Fin.FieldValues['unit'];

  if trim(Edit_num.Text)='' then
  begin
    msgok(handle, '请输入待出库的服装成品数量!');
    edit_num.SetFocus;
    exit;
  end;
  num:=strtoint(trim(edit_num.Text));

  if num<=0 then
  begin
        messagebox(handle,'请输入正确的出库总数量!','警告',mb_ok or MB_ICONINFORMATION);
        edit_num.SetFocus;
        exit;
  end;
  
  //得到成品出库数量明细
  begin
    if trim(edit_s.Text)='' then size_1:=0 else size_1:=strtoint(edit_s.Text);
    if trim(edit_M.Text)='' then size_2:=0 else size_2:=strtoint(edit_M.Text);
    if trim(edit_L.Text)='' then size_3:=0 else size_3:=strtoint(edit_L.Text);
    if trim(edit_XL.Text)='' then size_4:=0 else size_4:=strtoint(edit_XL.Text);
    if trim(edit_XXL.Text)='' then size_5:=0 else size_5:=strtoint(edit_XXL.Text);
    if trim(edit_XXXL.Text)='' then size_6:=0 else size_6:=strtoint(edit_XXXL.Text);
  end;

  
  //判断成品服装存数量是否够发料

  with ADOV_KC_Fin do
  begin
    kc_num:=FieldValues['num'];
    if num>kc_num then
    begin
      msgErr(handle,'库存数量有限,仅剩下 '+inttostr(kc_num)+' '+tmp_unit);
      Edit_num.SetFocus;
      exit;
    end;
    if size_1>0 then
    begin
      kc_size_1:=FieldValues['size_1'];
      if size_1>kc_size_1 then
      begin
        msgErr(handle,'型号[S/6]库存数量有限,仅剩下 '+inttostr(kc_size_1)+' '+tmp_unit);
        edit_s.SetFocus;
        exit;
      end;
    end;

    if size_2>0 then
    begin
      kc_size_2:=FieldValues['size_2'];
      if size_2>kc_size_2 then
      begin
        msgErr(handle,'型号[M/8]库存数量有限,仅剩下 '+inttostr(kc_size_2)+' '+tmp_unit);
        edit_M.SetFocus;
        exit;
      end;
    end;

    if size_3>0 then
    begin
      kc_size_3:=FieldValues['size_3'];
      if size_3>kc_size_3 then
      begin
        msgErr(handle,'型号[L/10]库存数量有限,仅剩下 '+inttostr(kc_size_3)+' '+tmp_unit);
        edit_L.SetFocus;
        exit;
      end;
    end;

    if size_4>0 then
    begin
      kc_size_4:=FieldValues['size_4'];
      if size_4>kc_size_4 then
      begin
        msgErr(handle,'型号[XL/12]库存数量有限,仅剩下 '+inttostr(kc_size_4)+' '+tmp_unit);
        edit_XL.SetFocus;
        exit;
      end;
    end;

    if size_5>0 then
    begin
      kc_size_5:=FieldValues['size_5'];
      if size_5>kc_size_5 then
      begin
        msgErr(handle,'型号[XXL/14]库存数量有限,仅剩下 '+inttostr(kc_size_5)+' '+tmp_unit);
        edit_XXL.SetFocus;
        exit;
      end;
    end;

    if size_6>0 then
    begin
      kc_size_6:=FieldValues['size_6'];
      if size_6>kc_size_6 then
      begin
        msgErr(handle,'型号[XXXL/16]库存数量有限,仅剩下 '+inttostr(kc_size_6)+' '+tmp_unit);
        edit_XXXL.SetFocus;
        exit;
      end;
    end;
  end;

  temp_sum_num:=size_1 + size_2 + size_3 + size_4 + size_5 + size_6;
  if num<>temp_sum_num then
  begin
    MsgOK(handle,'出库总数与各大小型号服装数量明细不一致,请重新输入!');
    edit_num.SetFocus;
    exit;
  end;

  //得到该订单的客供加工单价
  with adoq_tmp do
  begin
    close; sql.clear;
    sql.add('select unit_price from order_msg where ord_id=:ord_id');
    parameters.ParamValues['ord_id']:=ord_id;
    try
      execsql; open;
    except
      MsgErr(handle,'服装成品出库失败,请重试!');
      exit;
    end;
    if fieldvalues['unit_price']=null then
    begin
      MsgErr(handle,'该订单批号  ['+ord_id+']  的订单信息中无 [客供加工单价/单位]'+#13+#13+'     请在订单信息管理中指定!(出库失败)');
      exit;
    end
    else
    if fieldvalues['unit_price']<=0 then
    begin
      MsgErr(handle,'该订单批号  ['+ord_id+']  的订单信息中无 [客供加工单价/单位]'+#13+#13+'     请在订单信息管理中指定!(出库失败)');
      exit;
    end;
    unit_price:=fieldvalues['unit_price'];
    money:=unit_price*num;
  end;
  
  qst_str:='确定要出库['+inttostr(num)+']'+tmp_unit+'订单批号为 ['+ord_id+'] 的服装 ['+costume_name+']吗?';
  if MsgQst(handle,qst_str+#13+#13'     客供加工单价为:¥'+format('%.2f',[unit_price])+#13+#13'     合计金额为:¥'+format('%.2f',[money]))=IDNO then EXIT;

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

  if not get_oper_tmpid(curAdmin.user_id , tmp_id) then
  begin
    MsgOk(handle,'服装成品出库失败,请重试!');
    exit;
  end;

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

	//1.成品出库表中新增一条记录
  with ADOQ_tmp do
  begin
    close;sql.clear;
    sql.add('insert into ck_fin_product(ord_id, tmp_id, num, size_1, size_2, size_3, size_4, size_5, size_6)');
    sql.add('values(:ord_id, :tmp_id, :num, :size_1, :size_2, :size_3, :size_4, :size_5, :size_6)');

⌨️ 快捷键说明

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