unit U_DDLIST;

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, cxDBLookupComboBox, cxGridBandedTableView, cxGridDBBandedTableView,
  cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, IdHTTP, dxBarBuiltInMenu,
  cxPC;

type
  TfrmDDLIST = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    Panel1: TPanel;
    ToolButton2: TToolButton;
    ToolButton1: TToolButton;
    RM1: TRMGridReport;
    RMDBHZ: TRMDBDataSet;
    Label3: TLabel;
    cxGridPopupMenu2: TcxGridPopupMenu;
    EndDate: TDateTimePicker;
    Label5: TLabel;
    Begdate: TDateTimePicker;
    Label2: TLabel;
    OrderNo: TEdit;
    Label6: TLabel;
    Conno: TEdit;
    ToolButton3: TToolButton;
    CDSPRTHZ: TClientDataSet;
    CDSPRTMX: TClientDataSet;
    RMDBMX: TRMDBDataSet;
    ADOQueryMain: TADOQuery;
    DataSource1: TDataSource;
    CDS_HZ: TClientDataSet;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    ToolButton4: TToolButton;
    cxGrid2: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column6: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    v1Column24: TcxGridDBColumn;
    v1Column23: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column16: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    Tv1Column6: TcxGridDBColumn;
    Tv1Column7: TcxGridDBColumn;
    Label1: TLabel;
    ToolButton5: TToolButton;
    IdHTTP1: TIdHTTP;
    Tv1Column8: TcxGridDBColumn;
    cxTabControl1: TcxTabControl;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    Tv1Column9: TcxGridDBColumn;
    Label10: TLabel;
    WCZT: TComboBox;
    SCSTATUS: TComboBox;
    Label11: TLabel;
    CheckBox1: TCheckBox;
    Tv1Column10: TcxGridDBColumn;
    CheckBox2: TCheckBox;
    Label4: TLabel;
    YWKHSTATUS: TComboBox;
    Tv1Column12: TcxGridDBColumn;
    GDYNAME: TComboBox;
    leader: TComboBox;
    filler: TComboBox;
    CustomerNoName: TComboBox;
    Tv1Column11: TcxGridDBColumn;
    Label12: TLabel;
    hxzt: TComboBox;
    Tv1Column13: TcxGridDBColumn;
    bztype: TComboBox;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure CustomerNoNameChange(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
    procedure SCSTATUSChange(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
  private

    { Private declarations }

    procedure InitGrid();
    procedure SetStatus();
  public
    fkhType: string;
    Fmanage: string;
    canshu1: string;
  end;

var
  frmDDLIST: TfrmDDLIST;

implementation

uses
  U_DataLink, U_Fun, U_ZDYHelp, U_Con_DDXQ;

{$R *.dfm}

procedure TfrmDDLIST.SetStatus();
begin
  ToolButton6.Visible := False;
  ToolButton7.Visible := False;
  if cxTabControl1.TabIndex = 0 then
  begin
    ToolButton6.Visible := True;
  end
  else if cxTabControl1.TabIndex = 1 then
  begin
    ToolButton7.Visible := True;
  end;
end;

procedure TfrmDDLIST.InitGrid();
var
  STRwhere, Pwhere: string;
begin
  STRwhere := '';
  //if Trim(canshu1) = '录入' then
  Pwhere := SGetFilters(Panel1, 1, 2);
  if CheckBox2.Checked = True then
  begin
    STRwhere := STRwhere + 'AND SSMONEY>0';
  end;
  begin
    if trim(Pwhere) <> '' then
      STRwhere := STRwhere + ' and ' + trim(Pwhere);

  end;
  try
    ADOQueryMain.DisableControls;
    if canshu1 = '组长' then
    begin
      with ADOQueryMain do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_View_DDQKYLB_HZ_zz @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
        sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
        SQL.Add(',@qx=' + QuotedStr(Trim(canshu1)));
        SQL.Add(',@filler=' + QuotedStr(Trim(DName)));
//        SQL.Add(',@STATUS='+QuotedStr(Trim()));
//      ShowMessage(sql.Text);
        if cxTabControl1.TabIndex < 2 then
        begin
          SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex))));
        end;
        SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere)));
        if CheckBox1.Checked = True then
        begin
          SQL.Add(',@ischuan=''1''');
        end;
        Open;
      end;
    end
    else if canshu1 = '跟单' then
    begin
      with ADOQueryMain do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_View_DDQKYLB_gdy @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
        sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
        SQL.Add(',@qx=' + QuotedStr(Trim(canshu1)));
        SQL.Add(',@filler=' + QuotedStr(Trim(DName)));
//      ShowMessage(sql.Text);
        if cxTabControl1.TabIndex < 2 then
        begin
          SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex))));
        end;
        SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere)));
        if CheckBox1.Checked = True then
        begin
          SQL.Add(',@ischuan=''1''');
        end;
        Open;
      end;
    end
    else if canshu1 = '业务' then
    begin
      with ADOQueryMain do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_View_DDQKYLB_YW @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
        sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
        SQL.Add(',@qx=' + QuotedStr(Trim(canshu1)));
        SQL.Add(',@filler=' + QuotedStr(Trim(DName)));
//      ShowMessage(sql.Text);
        if cxTabControl1.TabIndex < 2 then
        begin
          SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex))));
        end;
        SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere)));
        if CheckBox1.Checked = True then
        begin
          SQL.Add(',@ischuan=''1''');
        end;
        Open;
      end;
    end
    else
    begin
      with ADOQueryMain do
      begin
        Close;
        SQL.Clear;
        sql.Add(' exec P_View_DDQKYLB_HZ @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
        sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
        SQL.Add(',@qx=' + QuotedStr(Trim(canshu1)));
        SQL.Add(',@filler=' + QuotedStr(Trim(DName)));
        if cxTabControl1.TabIndex < 2 then
        begin
          SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex))));
        end;
        SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere)));
        if CheckBox1.Checked = True then
        begin
          SQL.Add(',@ischuan=''1''');
        end;
//      ShowMessage(sql.Text);
        Open;
      end;
    end;

    SCreateCDS20(ADOQueryMain, CDS_HZ);
    SInitCDSData20(ADOQueryMain, CDS_HZ);
//    CDS_HZ.Last;
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmDDLIST.FormDestroy(Sender: TObject);
begin
  frmDDLIST := nil;
end;

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

procedure TfrmDDLIST.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid(trim(self.caption), Tv1, '订单情况一览表');
  Close;
end;

procedure TfrmDDLIST.FormShow(Sender: TObject);
var
  FSJ, fsj2,fsj3: string;
begin
  ReadCxGrid(trim(self.caption), Tv1, '订单情况一览表');
  FSJ := 'SELECT DISTINCT NAME= FILLER FROM  XH_Cloth_DH WHERE  dhtype=''成品出库'' ORDER BY FILLER   ';
  SInitComBoxBySql(ADOQueryCmd, GDYNAME, False, FSJ);

  fsj2 := 'SELECT DISTINCT NAME= FILLER FROM  jyorder_main where FILLER not in (''admin'',''ygname'',''业务员'') ORDER BY FILLER   ';
  SInitComBoxBySql(ADOQueryCmd, FILLER, False, fsj2);

  fsj3 := 'SELECT DISTINCT NAME= CustomerNoName FROM  jyorder_main  ORDER BY CustomerNoName   ';
  SInitComBoxBySql(ADOQueryCmd, CustomerNoName, False, fsj3);

  SetStatus();
  Tv1Column3.Visible := True;
  Tv1Column3.Hidden := False;
  Tv1Column2.Visible := True;
  Tv1Column2.Hidden := False;
  Tv1Column4.Visible := True;
  Tv1Column4.Hidden := False;
  Tv1Column1.Visible := True;
  Tv1Column1.Hidden := False;
  Tv1Column6.Visible := True;
  Tv1Column6.Hidden := False;
  Tv1Column7.Visible := True;
  Tv1Column7.Hidden := False;

  if (canshu1 = '业务') or (canshu1 = '组长') or (Trim(DName) = '蔡列娜') then
  begin
    Tv1Column3.Visible := False;
    Tv1Column3.Hidden := True;
  end;
  if (canshu1 = '跟单') or (canshu1 = '跟单组长') then
  begin
    Tv1Column2.Visible := False;
    Tv1Column2.Hidden := True;
    Tv1Column4.Visible := False;
    Tv1Column4.Hidden := True;
    Tv1Column1.Visible := False;
    Tv1Column1.Hidden := True;
    Tv1Column6.Visible := False;
    Tv1Column6.Hidden := True;
    Tv1Column7.Visible := False;
    Tv1Column7.Hidden := True;
//        Label10.Visible := False;
  end;
//  InitGrid();
end;

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

procedure TfrmDDLIST.ToolButton2Click(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_HZ);
    SInitCDSData20(ADOQueryMain, CDS_HZ);
  end;
end;

procedure TfrmDDLIST.CustomerNoNameChange(Sender: TObject);
begin
  ToolButton2.Click;
end;

procedure TfrmDDLIST.ToolButton1Click(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    Exit;
  TcxGridToExcel(self.Caption, cxgrid2);
end;

procedure TfrmDDLIST.FormCreate(Sender: TObject);
begin
  canshu1 := Trim(DParameters1);
  EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime - 60;
end;

procedure TfrmDDLIST.ToolButton3Click(Sender: TObject);
var
  fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string;
  i: Integer;
begin
  ExportFtErpFile('跟进表.rmf', ADOQueryTemp);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.add('exec P_Print_CRJD_HZ ');
    sql.add('@MainId=' + quotedstr(Trim(CDS_HZ.fieldbyname('MainId').AsString)));
    Open;
  end;
  SCreateCDS20(ADOQueryTemp, CDSPRTHZ);
  SInitCDSData20(ADOQueryTemp, CDSPRTHZ);

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.add('exec P_Print_CRJD_CD ');
    sql.add('@MainId=' + quotedstr(Trim(CDS_HZ.fieldbyname('MainId').AsString)));
    Open;
  end;
  RMVariables['HZCD'] := ADOQueryTemp.fieldbyname('HZCD').Value;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.add('exec P_Print_CRJD ');
    sql.add('@MainId=' + quotedstr(Trim(CDS_HZ.fieldbyname('MainId').AsString)));
    sql.add(',@Falg=''明细''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp, CDSPRTMX);
  SInitCDSData20(ADOQueryTemp, CDSPRTMX);

  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\跟进表.rmf';
  if FileExists(fPrintFile) then
  begin
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end
  else
  begin
    Application.MessageBox(PChar('没有找到' + fPrintFile), '提示', 0);
  end;
end;

procedure TfrmDDLIST.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if (AViewInfo.GridRecord.Values[Tv1Column1.Index] > 30) or (AViewInfo.GridRecord.Values[Tv1Column8.Index] > 0) or (AViewInfo.GridRecord.Values[v1Column7.Index] > 0) or (AViewInfo.GridRecord.Values[v1Column16.Index] > 0) then
  begin

    ACanvas.font.Color := clRed;

  end;
end;

procedure TfrmDDLIST.ToolButton4Click(Sender: TObject);
begin
  if CDS_HZ.IsEmpty = true then
    Exit;

  try
    frmCon_DDXQ := TfrmCon_DDXQ.Create(Application);
    with frmCon_DDXQ do
    begin
      FMainID := CDS_HZ.fieldbyname('MainId').AsString;
      Forderno := CDS_HZ.fieldbyname('orderno').AsString;
      canshu1 := Self.canshu1;
      if (canshu1 = '业务') or (canshu1 = '组长') or (DName = '蔡列娜') then
      begin
        JGMoney.Visible := False;
        Label9.Visible := False;
        GroupBox7.Visible := False;
        button1.Visible := False;
      end;
      if (canshu1 = '跟单') or (canshu1 = '跟单组长') then
      begin
        GroupBox4.Visible := False;
        GroupBox5.Visible := False;
        GroupBox6.Visible := False;
        GroupBox8.Visible := False;
        button2.Visible := False;
        Label4.Visible := False;
//        Label10.Visible := False;
      end;
      if ShowModal = 1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmCon_DDXQ.Free;
  end;
end;

procedure TfrmDDLIST.ToolButton5Click(Sender: TObject);
begin

  try

    with ADOQueryCmd do
    begin
      close;
      sql.Clear;

      sql.Add('exec P_INSERT_DD ');

      sql.Add('@MAINID=' + quotedstr(Trim(CDS_HZ.fieldbyname('mainid').AsString)));
      sql.Add(',@ORDERNO=' + quotedstr(Trim(CDS_HZ.fieldbyname('orderno').AsString)));
      sql.Add(',@days=' + quotedstr(Trim(CDS_HZ.fieldbyname('cqts').AsString)));
      execsql;
    end;
    GetHTTP(IdHTTP1, 'http://zhengyong.rightsoft.top/api/message/send/Feedback');

  finally

    application.MessageBox('推送成功！', '提示信息');
  end;

end;

procedure TfrmDDLIST.ToolButton6Click(Sender: TObject);
begin
  if CDS_HZ.Locate('ssel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
//  CDS_HZ.DisableControls;
  with CDS_HZ do
  begin
    First;
    while not Eof do
    begin
      if CDS_HZ.FieldByName('SSel').AsBoolean = True then
      begin
        if CDS_HZ.FieldByName('yqts').AsFloat > 30 then
        begin
          Application.MessageBox('逾期天数>30不能完成!', '提示', 0);
          Exit;
        end;

        if CDS_HZ.FieldByName('SPK').AsFloat > 0 then
        begin
          Application.MessageBox('有索赔不能完成!', '提示', 0);
          Exit;
        end;
        if CDS_HZ.FieldByName('cqts').AsFloat > 0 then
        begin
          Application.MessageBox('有延误不能完成!', '提示', 0);
          Exit;
        end;
        if CDS_HZ.FieldByName('cps').AsFloat > 30 then
        begin
          Application.MessageBox('次品数大于30不能完成!', '提示', 0);
          Exit;
        end;
        if StrToFloatdef(CDS_HZ.FieldByName('JCS').AsString, 0) = 0 then
        begin
          Application.MessageBox('进仓数为0不能完成!', '提示', 0);
          Exit;
        end;
        if StrToFloatdef(CDS_HZ.FieldByName('JGMONEY').AsString, 0) = 0 then
        begin
          Application.MessageBox('加工费为0不能完成!', '提示', 0);
          Exit;
        end;
        if StrToFloatdef(CDS_HZ.FieldByName('SSMONEY').AsString, 0) = 0 then
        begin
          Application.MessageBox('到账净额为0不能完成!', '提示', 0);
          Exit;
        end;
        if StrToFloatdef(CDS_HZ.FieldByName('FPMONEY').AsString, 0) - StrToFloatdef(CDS_HZ.FieldByName('SSMONEY').AsString, 0) < 100 then
        begin
          Application.MessageBox('发票金额-到账净额<100美金!', '提示', 0);
          Exit;
        end;

        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update  JYOrder_Main SET WCstatus=''1'' ');
          sql.Add('where mainID=' + quotedstr(trim(CDS_HZ.fieldbyname('mainID').AsString)));
          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
          sql.Add(' ' + quotedstr(trim(DName)));
          sql.Add(',getdate() ');
          sql.Add(',' + quotedstr(trim(self.Caption)));
          sql.Add(',' + quotedstr(trim('订单完成')));
          sql.Add(',' + quotedstr(trim('订单号：' + trim(CDS_HZ.FieldByName('orderNO').AsString))));
          sql.Add(',' + quotedstr(trim('成功')));
          sql.Add(')');
          ExecSQL;
        end;

        CDS_HZ.Delete;
      end
      else
        Next;
    end;
  end;
//  CDS_HZ.EnableControls;
end;

procedure TfrmDDLIST.ToolButton7Click(Sender: TObject);
begin
  if CDS_HZ.Locate('ssel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  CDS_HZ.DisableControls;
  with CDS_HZ do
  begin
    First;
    while not Eof do
    begin
      if CDS_HZ.FieldByName('SSel').AsBoolean = True then
      begin

        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update  JYOrder_Main SET WCstatus=''0'' ');
          sql.Add('where mainID=' + quotedstr(trim(CDS_HZ.fieldbyname('mainID').AsString)));
          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
          sql.Add(' ' + quotedstr(trim(DName)));
          sql.Add(',getdate() ');
          sql.Add(',' + quotedstr(trim(self.Caption)));
          sql.Add(',' + quotedstr(trim('订单完成')));
          sql.Add(',' + quotedstr(trim('订单号：' + trim(CDS_HZ.FieldByName('orderNO').AsString))));
          sql.Add(',' + quotedstr(trim('成功')));
          sql.Add(')');
          ExecSQL;
        end;

        CDS_HZ.Delete;
      end
      else
        Next;
    end;
  end;
  CDS_HZ.EnableControls;
end;

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

procedure TfrmDDLIST.CheckBox1Click(Sender: TObject);
begin

  InitGrid();
end;

procedure TfrmDDLIST.OrderNoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    InitGrid();
  end;
end;

procedure TfrmDDLIST.SCSTATUSChange(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmDDLIST.CheckBox2Click(Sender: TObject);
begin
  InitGrid();
end;

end.

