unit U_FuFeeList;

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, cxPC, cxDropDownEdit, BtnEdit, Menus, Buttons,
  cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
  dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee,
  dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
  dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans,
  dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky,
  dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
  dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
  dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
  dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
  dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
  dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin,
  dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus,
  dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008,
  dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter;

type
  TfrmFuFeeList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBDel: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    Panel1: TPanel;
    TBFind: TToolButton;
    ADOQueryMain: TADOQuery;
    TBExport: TToolButton;
    RM1: TRMGridReport;
    RMDB_Main: TRMDBDataSet;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    cxGridPopupMenu2: TcxGridPopupMenu;
    DS_HZ: TDataSource;
    CDS_HZ: TClientDataSet;
    TBAdd: TToolButton;
    v2Column1: TcxGridDBColumn;
    TBEdit: TToolButton;
    v2Column9: TcxGridDBColumn;
    v2Column10: TcxGridDBColumn;
    v2Column12: TcxGridDBColumn;
    v2Column13: TcxGridDBColumn;
    Label9: TLabel;
    SKTaiTouStr: TEdit;
    v2Column3: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    Label2: TLabel;
    begdate: TDateTimePicker;
    Enddate: TDateTimePicker;
    v2Column4: TcxGridDBColumn;
    v2Column5: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v2Column7: TcxGridDBColumn;
    v2Column8: TcxGridDBColumn;
    v2Column11: TcxGridDBColumn;
    v2Column14: TcxGridDBColumn;
    Label1: TLabel;
    FKTaiTouStr: TEdit;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure FactoryName10Change(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure TBAddClick(Sender: TObject);
    procedure TBEditClick(Sender: TObject);
    procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure FKTypeChange(Sender: TObject);
  private
    { Private declarations }
     canshu1:string;
    procedure InitGrid();

  public
    { Public declarations }

  end;

//var
  //frmFuFeeList: TfrmFuFeeList;

implementation
uses
  U_DataLink,U_Fun,U_ZDYHelp,U_RTFun,U_FuFeeInPut,U_FjList;

{$R *.dfm}



procedure TfrmFuFeeList.InitGrid();

begin

  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      SQL.Clear;
      sql.Add('select A.* ');
      sql.Add(',FKTaiTouStr=isnull(FKTaiTou,'''')+RTRIM(dbo.getPinYin(isnull(FKTaiTou,'''')))');
      sql.Add(',SKTaiTouStr=isnull(SKTaiTou,'''')+RTRIM(dbo.getPinYin(isnull(SKTaiTou,'''')))');
      sql.Add(',SDQty=(select Count(*) from TP_File TF where TF.WBID=A.YFID and TF.TFType=''客户费用付款管理''  )');
      sql.Add(',Case when isnull(A.BZType,'''')=''￥'' then JSMoney else Null end as MoneyRMB ');
      sql.Add(',Case when isnull(A.BZType,'''')=''$'' then JSMoney else Null end as MoneyMJ ');
      sql.Add('  from YS_Money_CR A');
      sql.Add(' where 1=1 ');
     // if CheckBox1.Checked then
     // begin
        sql.Add('and A.CRTime>='''+FormatDateTime('yyyy-MM-dd',begdate.DateTime)+''' ');
        sql.Add(' and CRTime<'''+FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1)+''' ');
      //end else
     // begin
        //sql.Add('where A.CRTime>=''2000-01-01'' ');
        //sql.Add(' and CRTime<''2500-01-01'' ');
      //end;
      if Trim(canshu1)='' then
      begin
        sql.Add(' and A.Filler='''+Trim(DName)+'''');
      end;
      sql.Add(' and A.CRType=''客户费用付款管理''  ');
      Open;
    end;
    SCreateCDS20(ADOQueryMain,CDS_HZ);
    SInitCDSData20(ADOQueryMain,CDS_HZ);
  finally
    ADOQueryMain.EnableControls;
    TBFind.Click;
  end;
end;


procedure TfrmFuFeeList.FormDestroy(Sender: TObject);
begin
  //frmFuFeeList:=nil;
end;

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

procedure TfrmFuFeeList.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid(Copy(Self.Caption,1,Length(Self.Caption)-1)+'Fee',Tv2,'财务管理');
  Close;
end;
procedure TfrmFuFeeList.TBDelClick(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then Exit;
  {if Trim(DCode)<>'ADMIN' then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select AA=Cast(GETDATE()-Filltime as Int) from YS_Money_CR where YFID='''+Self.CDS_HZ.fieldbyname('YFID').AsString+'''');
      Open;
    end;
    if ADOQueryTemp.FieldByName('AA').AsInteger>0 then
    begin
      Application.MessageBox('超出24小时，不能删除数据!','提示',0);
      Exit;
    end;
  end;}
  if canshu1='' then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select AA=Cast(GETDATE()-Filltime as Int) from YS_Money_CR where YFID='''+Self.CDS_HZ.fieldbyname('YFID').AsString+'''');
      Open;
    end;
    if ADOQueryTemp.FieldByName('AA').AsInteger>0 then
    begin
      Application.MessageBox('超出24小时，不能更改数据!','提示',0);
      Exit;
    end;
  end;
  if Application.MessageBox('确定要删除数据吗？','提示',32+4)<>IDYES then Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add(' insert into YS_Money_CR_DelLog ');
      sql.Add(' select * from YS_Money_CR where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+'''');
      sql.Add(' Update YS_Money_CR_DelLog Set DelTime=getdate(),DelPerson='''+Trim(DName)+'''');
      sql.Add(' where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+'''');
      sql.Add(' delete YS_Money_CR where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+'''');
      sql.Add(' Update YS_Money_CR Set FeeFKID=Null,FKStatus=Null');
      sql.Add('  where isnull(FeeFKID,'''')='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+'''');
      sql.Add(' and isnull(FeeFKID,'''')<>'''' ');
      execsql;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    CDS_HZ.Delete;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('删除失败!','提示',0);
  end;
end;

procedure TfrmFuFeeList.FormShow(Sender: TObject);
begin
  if Pos('管理',Trim(Self.Caption))>0 then
  begin
    canshu1:='管理';
  end else
  begin
    canshu1:='';
  end;
  Enddate.DateTime:=SGetServerDate(ADOQueryTemp);
  begdate.DateTime:=StrToDate(FormatDateTime('yyyy',Enddate.Date)+'-01-01');
  ReadCxGrid(Copy(Self.Caption,1,Length(Self.Caption)-1)+'Fee',Tv2,'财务管理');
  InitGrid();
end;

procedure TfrmFuFeeList.TBRafreshClick(Sender: TObject);
begin
  ToolBar1.SetFocus;
  InitGrid();
end;

procedure TfrmFuFeeList.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active=False then Exit;
  SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(ADOQueryMain,CDS_HZ);
  SInitCDSData20(ADOQueryMain,CDS_HZ);
end;

procedure TfrmFuFeeList.FactoryName10Change(Sender: TObject);
begin
  TBFind.Click;
end;



procedure TfrmFuFeeList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then Exit;
  SelExportData(Tv2,ADOQueryMain,'客户费用付款列表');
end;

procedure TfrmFuFeeList.cxTabControl1Change(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmFuFeeList.TBAddClick(Sender: TObject);
begin
  try
    frmFuFeeInPut:=TfrmFuFeeInPut.Create(Application);
    with frmFuFeeInPut do
    begin
      FMainId:='';
      if ShowModal=1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmFuFeeInPut.Free;
  end;
end;

procedure TfrmFuFeeList.TBEditClick(Sender: TObject);
begin
  {if Trim(DCode)<>'ADMIN' then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select AA=Cast(GETDATE()-Filltime as Int) from YS_Money_CR where YFID='''+Self.CDS_HZ.fieldbyname('YFID').AsString+'''');
      Open;
    end;
    if ADOQueryTemp.FieldByName('AA').AsInteger>0 then
    begin
      Application.MessageBox('超出24小时，不能更改数据!','提示',0);
      Exit;
    end;
  end;}
  if canshu1='' then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select AA=Cast(GETDATE()-Filltime as Int) from YS_Money_CR where YFID='''+Self.CDS_HZ.fieldbyname('YFID').AsString+'''');
      Open;
    end;
//    if ADOQueryTemp.FieldByName('AA').AsInteger>0 then
//    begin
//      Application.MessageBox('超出24小时，不能更改数据!','提示',0);
//      Exit;
//    end;
  end;
  try
    frmFuFeeInPut:=TfrmFuFeeInPut.Create(Application);
    with frmFuFeeInPut do
    begin
      FMainId:=Trim(Self.CDS_HZ.fieldbyname('YFID').AsString);
      if ShowModal=1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmFuFeeInPut.Free;
  end;
end;

procedure TfrmFuFeeList.Tv2CellDblClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
var
  FName:string;
begin
  FName:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName;
  if Trim(FName)='SDQty' then
  begin
    if CDS_HZ.IsEmpty then Exit;
    try
      frmFjList:=TfrmFjList.Create(Application);
      with frmFjList do
      begin
        fkeyNO:=Trim(CDS_HZ.fieldbyname('YFID').AsString);
        fType:='客户费用付款管理';
        fstatus:=0;
        if ShowModal=1 then
        begin

        end;
      end;
    finally
      frmFjList.Free;
    end;
  end;
end;

procedure TfrmFuFeeList.FKTypeChange(Sender: TObject);
begin
  TBFind.Click;
end;

end.
