unit U_SMPK;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxGridCustomTableView,
  cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
  cxGrid, MovePanel, cxCheckBox, Menus, ComCtrls, BtnEdit, ShellAPI, cxTextEdit,
  RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, RM_e_Xls;

type
  TfrmSMPK = class(TForm)
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    DS_MainSel: TDataSource;
    CDS_MainSel: TClientDataSet;
    cxGridPopupMenu4: TcxGridPopupMenu;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    v3Column1: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    v3Column2: TcxGridDBColumn;
    Panel2: TPanel;
    Label5: TLabel;
    KuWei: TEdit;
    BaoID: TEdit;
    Button2: TButton;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    Label12: TLabel;
    CDS_Main: TClientDataSet;
    CRType: TEdit;
    v3Column4: TcxGridDBColumn;
    RMXLSExport1: TRMXLSExport;
    RMDBMX: TRMDBDataSet;
    RM1: TRMGridReport;
    CDS_JuanPRT: TClientDataSet;
    v3Column3: TcxGridDBColumn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BaoIDKeyPress(Sender: TObject; var Key: Char);
    procedure Button2Click(Sender: TObject);
    function YSData(Order_Main10: TClientDataSet): Boolean;
  private
    { Private declarations }
    FCKOrdNo, FSMStr, JXFlag: string;
  public
    { Public declarations }
  end;

var
  frmSMPK: TfrmSMPK;

implementation

uses
  U_DataLink, U_Fun, MMSystem, U_FHSQListSel;

{$R *.dfm}

function TfrmSMPK.YSData(Order_Main10: TClientDataSet): Boolean;
var
  CRID, YFID, PriceUnit, OrderUnit, FComTaiTou, FromSubID: string;
  fprice, huilv: double;
begin
//  Result:=False;
//  fprice:=0;
//  huilv:=0;
//  PriceUnit:='RMB';
//  with Order_Main10 do
//  begin
//    begin
//      with ADOQueryTemp do
//      begin
//        Close;
//        SQL.Clear;
//        sql.Add('select *,fPrice=dbo.F_Get_Order_Price(MainID,subID) from JYOrder_Sub Where subID='''+Trim(Order_Main10.fieldbyname('subID').AsString)+'''');
//        Open;
//      end;
//      IF not ADOQueryTemp.IsEmpty then
//      begin
//        PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString);
//        OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString);
//        fPrice:= ADOQueryTemp.fieldbyname('fPrice').AsFloat;
//        huilv:= ADOQueryTemp.fieldbyname('huilv').AsFloat;
//      end;
//      IF huilv=0 then huilv:=1;
//      CRID:='0';
//      with ADOQueryTemp do
//      begin
//        Close;
//        sql.Clear;
//        sql.Add(' select * from YF_Money_CR ');
//        sql.Add(' where mainID='''+Trim(Order_Main10.fieldbyname('mainID').AsString)+'''');
//        sql.Add(' and subID='''+Trim(Order_Main10.fieldbyname('subID').AsString)+'''');
//        sql.Add(' and CRTime='''+FormatDateTime('yyyy-MM-dd',CRTime.Date)+'''') ;
//        sql.Add(' and YFName=''销售金额'' ');
//        Open;
//      end;
//      if ADOQueryTemp.IsEmpty then
//      begin
//        if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',3,1)=False then
//        begin
//          Application.MessageBox('取成品应收最大号失败!','提示',0);
//          Exit;
//        end;
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('select * from YF_Money_CR where 1<>1');
//          Open;
//        end;
//        with ADOQueryCmd do
//        begin
//          Append;
//          FieldByName('YFID').Value:=Trim(YFID);
//          FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('mainID').AsString);
//          FieldByName('CRID').Value:=StrToInt(CRID);
//          FieldByName('Filler').Value:=Trim(DName);
//          FieldByName('CRType').Value:='应收款登记';
//          FieldByName('CRFlag').Value:='应收收';
//          FieldByName('QtyFlag').Value:=1;
//          FieldByName('FactoryName').Value:=Trim(TocustName.Text);
//          FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.Date));
//          FieldByName('YFType').Value:='自动生成';
//          FieldByName('Price').Value:=fprice;
//          FieldByName('HuiLv').Value:=huilv;
//          FieldByName('BZType').Value:=Trim(PriceUnit);
//          FieldByName('QtyUnit').Value:=Trim(OrderUnit);
//          FieldByName('ComTaiTou').Value:=Trim(FComTaiTou);
//          FieldByName('YFName').Value:='销售金额';
//          FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString);
//          FieldByName('subID').Value:=Trim(Order_Main10.fieldbyname('subID').AsString);
//          FieldByName('OrderNO').Value:=Trim(Order_Main10.fieldbyname('OrderNO').AsString);
//          FieldByName('P_CodeName').Value:=Trim(Order_Main10.fieldbyname('MprtCodeName').AsString);
//          FieldByName('P_Spec').Value:=Trim(Order_Main10.fieldbyname('MprtSpec').AsString);
//          FieldByName('P_color').Value:=Trim(Order_Main10.fieldbyname('PRTColor').AsString);
//          FieldByName('status').Value:='0';
//          Post;
//        end;
//      end
//      else
//      begin
//        YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString);
//      end;
//      IF uppercase(OrderUnit)='KG' then
//      begin
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(B.MJQty4),0) from CK_BanCP_CR A,WFB_MJJY B where A.MJID=B.MJID and  A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') ');
//          sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'')  ');
//          sql.Add(' where YFID='''+Trim(YFID)+'''');
//          ExecSQL;
//        end;
//      end
//      else
//      IF (uppercase(OrderUnit)='Y') and (uppercase(Trim(Order_Main10.fieldbyname('QtyUnit').AsString))='M')  then
//      begin
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('update YF_Money_CR Set Qty=(select cast(isnull(Sum(A.Qty),0)/0.9144 as decimal(18,1)) from CK_BanCP_CR A where A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') ');
//          sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'')  ');
//          sql.Add(' where YFID='''+Trim(YFID)+'''');
//          ExecSQL;
//        end;
//      end
//      else
//      IF (uppercase(OrderUnit)='M') and (uppercase(Trim(Order_Main10.fieldbyname('QtyUnit').AsString))='Y')  then
//      begin
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('update YF_Money_CR Set Qty=(select cast(isnull(Sum(A.Qty),0)*0.9144 as decimal(18,1)) from CK_BanCP_CR A where A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') ');
//          sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'')  ');
//          sql.Add(' where YFID='''+Trim(YFID)+'''');
//          ExecSQL;
//        end;
//      end
//      else
//      begin
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(A.Qty),0) from CK_BanCP_CR A where A.MainID=YF_Money_CR.MainID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'') ');
//          sql.Add(',PS=(select isnull(count(A.mainID),0) from CK_BanCP_CR A where A.maiNID=YF_Money_CR.maiNID and A.subID=YF_Money_CR.subID and A.CRtime=YF_Money_CR.CRTime and A.CRType=''销售出库'')  ');
//          sql.Add(' where YFID='''+Trim(YFID)+'''');
//          ExecSQL;
//        end;
//      end;
//      with ADOQueryCmd do
//      begin
//        Close;
//        sql.Clear;
//        sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv');
//        sql.Add(' where YFID='''+Trim(YFID)+'''');
//        ExecSQL;
//      end;
//      with ADOQueryTemp do
//      begin
//        Close;
//        sql.Clear;
//        sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+'''');
//        Open;
//      end;
//      if ADOQueryTemp.FieldByName('Qty').Value=0 then
//      begin
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+'''');
//          ExecSQL;
//        end;
//      end;
//      //Next;
//    end;
//  end;
//  Result:=True;
end;

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

procedure TfrmSMPK.FormDestroy(Sender: TObject);
begin
  frmSMPK := nil;
end;

procedure TfrmSMPK.FormShow(Sender: TObject);
begin
  BaoID.SetFocus;
  ReadCxGrid('扫描出库', Tv3, '坯布仓库');

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.kuwei,B.* ');
    sql.Add(' from CK_PBCP_CR A');
    sql.Add(' inner join WFB_MJJY_PB B on A.MJID=B.MJID');
    sql.Add(' where 1=2');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp, CDS_MainSel);
end;

procedure TfrmSMPK.BaoIDKeyPress(Sender: TObject; var Key: Char);
var
  maxno, SMFlag, KYCKFlag, FMainId: string;
  FFQty: Integer;
begin
  if Key = #13 then
  begin
    if trim(KuWei.Text) = '' then
    begin
      Application.MessageBox('请输入库位!', '提示', 0);
      Exit;
    end;

    with ADOQueryTemp do
    begin
      close;
      sql.Clear;
      sql.Add(' select A.*,B.CRID  ');
      sql.Add(' from WFB_MJJY_PB A');
      sql.Add(' inner join CK_PBCP_CR B on A.MJID=B.MJID and B.CRFlag=''入库'' ');
      sql.Add('  where A. MJID=''' + Trim(BaoID.Text) + '''');
//      showmessage(SQL.Text);
      Open;
    end;
    if ADOQueryTemp.IsEmpty then
    begin
      PlaySound('wav\扫描错误.wav', 0, SND_FILENAME or SND_ASYNC);
      BaoID.Text := '';
      Exit;
    end
    else
    begin
      SCreateCDS20(ADOQueryTemp, CDS_Main);
      SInitCDSData20(ADOQueryTemp, CDS_Main);
    end;

    try

      ADOQueryCmd.Connection.BeginTrans;
      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('update CK_PBCP_CR set  KuWei =' + quotedstr(trim(KuWei.Text)));
        sql.Add('  where MJID=''' + Trim(BaoID.Text) + '''');
        ExecSQL;
      end;

      ADOQueryCmd.Connection.CommitTrans;
      with CDS_MainSel do
      begin
        Append;
        FieldByName('Mainid').Value := Self.CDS_Main.fieldbyname('Mainid').Value;
        FieldByName('SubID').Value := Self.CDS_Main.fieldbyname('SubID').Value;
        FieldByName('MJMaoZ').Value := Self.CDS_Main.fieldbyname('MJMaoZ').Value;
        FieldByName('MJId').Value := Self.CDS_Main.fieldbyname('MJId').Value;
        FieldByName('APXH').Value := Self.CDS_Main.fieldbyname('APXH').Value;
        FieldByName('CarNo').Value := Self.CDS_Main.fieldbyname('CarNo').Value;
        FieldByName('KuWei').Value := trim(KuWei.Text);
        FieldByName('APBatchNo').Value := Self.CDS_Main.fieldbyname('APBatchNo').Value;
        Post;
      end;

      BaoID.Text := '';
      PlaySound('wav\正确.wav', 0, SND_FILENAME or SND_ASYNC);
      Exit;

    except
      BaoID.Text := '';
      PlaySound('数据保存失败暂停发货.wav', 0, SND_FILENAME or SND_ASYNC);
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('盘库异常！', '提示', 0);
    end;
  end;
end;

procedure TfrmSMPK.Button2Click(Sender: TObject);
begin
  Close;
  WriteCxGrid('扫描出库', Tv3, '坯布仓库');
end;

end.

