unit U_ZdyAttInput;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
  cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
  cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
  cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
  cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
  RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
  cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;

type
  TfrmZdyAttInput = class(TForm)
    ToolBar1: TToolBar;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    RM1: TRMGridReport;
    RMDB_Main: TRMDBDataSet;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    cxGridPopupMenu2: TcxGridPopupMenu;
    DS_HZ: TDataSource;
    CDS_HZ: TClientDataSet;
    ToolButton3: TToolButton;
    v2Column6: TcxGridDBColumn;
    v2Note: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    v2Column5: TcxGridDBColumn;
    v2Column7: TcxGridDBColumn;
    v2Column8: TcxGridDBColumn;
    v2Column9: TcxGridDBColumn;
    v2Column10: TcxGridDBColumn;
    v2Column11: TcxGridDBColumn;
    v2Column12: TcxGridDBColumn;
    v2DefFlt1: TcxGridDBColumn;
    ADOQueryKH: TADOQuery;
    DSKH: TDataSource;
    v2Column14: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    v2Column13: TcxGridDBColumn;
    v2Column16: TcxGridDBColumn;
    v2ZdyNameYW: TcxGridDBColumn;
    v2QQ: TcxGridDBColumn;
    v2WeiXin: TcxGridDBColumn;
    v2Wangwang: TcxGridDBColumn;
    v2Email: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyleRepository2: TcxStyleRepository;
    cxStyle2: TcxStyle;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure v2Column16PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v2Column10PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
  private
    { Private declarations }
    procedure InitGrid();
    function SaveData(): Boolean;

  public
    fkhType: string;
    { Public declarations }
    RKFlag, FCYID: string;

  end;

var
  frmZdyAttInput: TfrmZdyAttInput;

implementation

uses
  U_DataLink, U_Fun, U_ZDYHelp;

{$R *.dfm}

procedure TfrmZdyAttInput.InitGrid();
begin
  try

    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add(' select * from KH_Zdy_Attachment where ATID=''' + Trim(FCYID) + '''');
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_HZ);
    SInitCDSData20(ADOQueryMain, CDS_HZ);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmZdyAttInput.FormDestroy(Sender: TObject);
begin
  //frmZdyAttInput:=nil;
end;

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

procedure TfrmZdyAttInput.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('客户资料录入1', Tv2, '客户自定义');
  Close;
end;

procedure TfrmZdyAttInput.FormShow(Sender: TObject);
begin
  ReadCxGrid('客户资料录入1', Tv2, '客户自定义');
  InitGrid();
  if Trim(FCYID) = '' then
  begin
    CDS_HZ.Append;
    CDS_HZ.FieldByName('DEFstr5').Value := trim(Dname);
    CDS_HZ.Post;
  end;
end;

procedure TfrmZdyAttInput.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

function TfrmZdyAttInput.SaveData(): Boolean;
var
  maxId, CRID: string;
  fCode: string;
begin
  try
    ADOQueryCmd.Connection.BeginTrans;
    if Trim(FCYID) = '' then
    begin
      if GetLSNo(ADOQueryCmd, maxId, 'AT', 'KH_Zdy_Attachment', 4, 1) = False then
      begin
        Result := False;
        ADOQueryCmd.Connection.RollbackTrans;
        Application.MessageBox('取最大号失败！', '提示', 0);
        Exit;
      end;
      if GetLSNo(ADOQueryCmd, fCode, 'CP', 'KH_Zdy_Attachment', 4, 0) = False then
      begin
        Result := False;
        ADOQueryCmd.Connection.RollbackTrans;
        Application.MessageBox('取最大号失败！', '提示', 0);
        Exit;
      end;
    end
    else
    begin
      maxId := Trim(FCYID);
    end;

    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from KH_Zdy_Attachment where ATID=''' + Trim(FCYID) + '''');
      Open;
    end;
    with ADOQueryCmd do
    begin
      if Trim(FCYID) = '' then
      begin
        Append;
        FieldByName('Filler').Value := Trim(DName);
        FieldByName('ZdyCode').Value := Trim(fCode);
      end
      else
      begin
        Edit;
        FieldByName('Editer').Value := Trim(DName);
        FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp);
      end;
      FieldByName('ATID').Value := Trim(maxId);
      RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_HZ, '', 0);
      FieldByName('Type').Value := 'KHName';
      //FieldByName('khType').Value:=trim(fkhType);
      FieldByName('DefFlt1').Value := CDS_HZ.fieldbyname('DefFlt1').AsFloat;
      FieldByName('Filler').Value := Trim(DName);
      Post;
    end;
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from KH_Zdy where ZdyNo=''' + Trim(FCYID) + '''');
      Open;
    end;
    with ADOQueryCmd do
    begin
      if Trim(FCYID) = '' then
      begin
        Append;
      end
      else
      begin
        Edit;
      end;
      FieldByName('ZdyNo').Value := Trim(maxId);
      FieldByName('ZdyName').Value := trim(CDS_HZ.fieldbyname('ZdyName').AsString);
      FieldByName('Type').Value := 'KHName';
      FieldByName('MainType').Value := Trim(CDS_HZ.fieldbyname('DEFstr5').AsString);
      Post;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from KH_Zdy_Attachment where Type=''KHName'' and ZdyName=' + Quotedstr(CDS_HZ.fieldbyname('ZdyName').AsString));
      Open;
    end;
    if ADOQueryCmd.RecordCount > 1 then
    begin
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('客户名称重复!', '提示', 0);
      Exit;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from KH_Zdy_Attachment where ZdyCode=''' + Trim(CDS_HZ.fieldbyname('ZdyCode').AsString) + '''');
      sql.Add(' and Type=''KHName'' ');
      Open;
    end;
    if ADOQueryCmd.RecordCount > 1 then
    begin
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('编号重复!', '提示', 0);
      Exit;
    end;
    with CDS_HZ do
    begin
      Edit;
      FieldByName('ATID').Value := Trim(maxId);
      Post;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result := True;
  except
    Result := True;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('保存异常!', '提示', 0);
  end;
end;

procedure TfrmZdyAttInput.ToolButton3Click(Sender: TObject);
var
  i: integer;
  SJCD: string;
begin
  i := 0;
  cxGrid2.SetFocus;
  //限制条件 ZHUG
  SJCD := Trim(CDS_HZ.FieldByName('DEFstr2').AsString);
  if Application.MessageBox('请核对手机号码是否正确？', '提示', 32 + 4) <> IDYES then
    Exit;

  if Length(SJCD) <> 11 then
  begin
    Application.MessageBox('手机号必须11位数字', '提示', 0);
    Exit;
  end;


//  if Trim(CDS_HZ.FieldByName('Wangwang').AsString) = '' then
//  begin
//    Application.MessageBox('旺旺不能为空!', '提示', 0);
//    Exit;
//  end;
//  if Trim(CDS_HZ.FieldByName('DPZH').AsString) = '' then
//  begin
//    Application.MessageBox('店铺账号不能为空!', '提示', 0);
//    Exit;
//  end;
  if Trim(CDS_HZ.FieldByName('WeiXin').AsString) = '' then    // and (Trim(CDS_HZ.FieldByName('QQ').AsString) = '')
  begin
    Application.MessageBox('微信不能为空!', '提示', 0);
    Exit;
  end;
  if Trim(CDS_HZ.FieldByName('ZdyName').AsString) = '' then
  begin
    Application.MessageBox('客户名称不能为空!', '提示', 0);
    Exit;
  end;
  if Trim(CDS_HZ.FieldByName('DEFstr4').AsString) = '' then
  begin
    Application.MessageBox('联系人不能为空!', '提示', 0);
    Exit;
  end;
  //    不明白作用
  if Trim(CDS_HZ.FieldByName('WeiXin').AsString) = '' then
  begin
    i := i + 1;
    Exit;
  end;
  if Trim(CDS_HZ.FieldByName('DEFstr2').AsString) = '' then
  begin
    i := i + 1;
    Exit;
  end;
  //
  if Application.MessageBox('确定要保存数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  if SaveData() then
  begin
    Application.MessageBox('保存成功!', '提示', 0);
    ModalResult := 1;
  end;
end;

procedure TfrmZdyAttInput.v2Column16PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'KeFu';
      flagname := '客服';
      if ShowModal = 1 then
      begin
        with CDS_HZ do
        begin
          Edit;
          FieldByName('KeFu').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmZdyAttInput.v2Column10PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'YWY';
      flagname := '业务员';
      if ShowModal = 1 then
      begin
        with CDS_HZ do
        begin
          Edit;
          FieldByName('DEFstr5').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

end.

