{
===============================================================================
  Copyright (©) 2006. Rodax Software.
===============================================================================
  Los contenidos de este fichero son propiedad de Rodax Software titular del
  copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
  en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
  acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
  bajo el que se suministra.
  -----------------------------------------------------------------------------
  Web:  www.rodax-software.com
===============================================================================
  Fecha primera versión: 22-05-2006
  Versión actual: 1.0.0
  Fecha versión actual: 22-05-2006
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
===============================================================================
}

unit uViewPresupuestosBase;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
  dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
  dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, ActnList,
  uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
  ImgList, PngImageList;

type
  TfrViewPresupuestosBase = class(TfrViewGrid)
    cxGridViewRecID: TcxGridDBColumn;
    cxGridViewCODIGO: TcxGridDBColumn;
    cxGridViewCODIGOOBRA: TcxGridDBColumn;
    cxGridViewCODIGOCONTACTO: TcxGridDBColumn;
    cxGridViewFECHAALTA: TcxGridDBColumn;
    cxGridViewUSUARIO: TcxGridDBColumn;
    cxGridViewFECHA: TcxGridDBColumn;
    cxGridViewCLASE: TcxGridDBColumn;
    cxGridViewACEPTADO: TcxGridDBColumn;
    cxGridViewTIPO: TcxGridDBColumn;
    cxGridViewDESCRIPCION: TcxGridDBColumn;
    cxGridViewPRESUPUESTOINICIAL: TcxGridDBColumn;
    cxGridViewPRESUPUESTOFINAL: TcxGridDBColumn;
    cxGridViewAPLICARETENCION: TcxGridDBColumn;
    cxGridViewRETENCION: TcxGridDBColumn;
    cxGridViewTIEMPORETENCION: TcxGridDBColumn;
    cxGridViewIMPORTERETENCION: TcxGridDBColumn;
    cxGridViewNOMBRE: TcxGridDBColumn;
    PngImageList: TPngImageList;
    cxStyleAceptado: TcxStyle;
    cxStyleRechazado: TcxStyle;
    procedure cxGridViewStylesGetContentStyle(
      Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
      AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
    procedure cxGridViewACEPTADOCustomDrawCell(
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frViewPresupuestosBase: TfrViewPresupuestosBase;

implementation

uses uDataModuleObras, uBizObra, schObrasClient_Intf;

{$R *.dfm}

procedure TfrViewPresupuestosBase.cxGridViewStylesGetContentStyle(
  Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
  AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
  IndiceCol: Integer;
  ASituacion: string;
begin
  inherited;
  if Assigned(ARecord) then
  begin
    IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosObraACEPTADO).Index;
    ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]);
    if StrToInt(ASituacion) = CTE_ACEPTADO then
      AStyle := cxStyleAceptado
    else if StrToInt(ASituacion) = CTE_NO_ACEPTADO then
      AStyle := cxStyleRechazado;
  end;
end;

procedure TfrViewPresupuestosBase.cxGridViewACEPTADOCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  IndiceCol: Integer;
  R : TRect;
begin
  inherited;
  IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosObraACEPTADO).Index;
  if UpperCase(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = IntToStr(CTE_ACEPTADO) then
  begin
    R := AViewInfo.ContentBounds;
    ACanvas.FillRect(R);
    ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
    ADone := True;
  end
  else
  begin
    R := AViewInfo.ContentBounds;
    ACanvas.FillRect(R);
//    ACanvas.DrawImage(PngImageList, R.Left, R.Top, 1);
    ADone := True;
  end;
end;

end.
