{
===============================================================================
  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 uViewFacturasObra;

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,
  ComCtrls, ToolWin, ExtCtrls, JvExControls, JvComponent, JvNavigationPane,
  ImgList, PngImageList, Menus, uBizObraFinal, cxImageComboBox;

type
  IViewFacturasObra = interface(IViewGrid)
  ['{36022E0B-E6B7-427E-AFFF-58595DF0BC86}']
    function GetFacturas: IBizFacturasObras;
    procedure SetFacturas(const Value: IBizFacturasObras);
    property Facturas: IBizFacturasObras read GetFacturas write SetFacturas;
  end;

  TfrViewFacturasObra = class(TfrViewGrid, IViewFacturasObra)
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton4: TToolButton;
    actAnadir: TAction;
    actModificar: TAction;
    actEliminar: TAction;
    cxGridViewRecID: TcxGridDBColumn;
    cxGridViewCODIGO: TcxGridDBColumn;
    cxGridViewCLASEFACTURA: TcxGridDBColumn;
    cxGridViewFECHAFACTURA: TcxGridDBColumn;
    cxGridViewREFERENCIA: TcxGridDBColumn;
    cxGridViewPAGADA: TcxGridDBColumn;
    JvNavPanelHeader: TJvNavPanelHeader;
    Image1: TImage;
    PngImageList: TPngImageList;
    cxStyleRepository: TcxStyleRepository;
    cxStyleFinalizado: TcxStyle;
    cxStylePendiente: TcxStyle;
    MenuProyectos: TPopupMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    cxGridViewFECHAVENCIMIENTO: TcxGridDBColumn;
    cxGridViewNIFCIF: TcxGridDBColumn;
    cxGridViewNOMBRE: TcxGridDBColumn;
    cxGridViewIMPORTETOTAL: TcxGridDBColumn;
    cxGridViewCODIGOOBRA: TcxGridDBColumn;
    ToolButton3: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    actEliminarTodo: TAction;
    actDuplicar: TAction;
    procedure cxGridViewPAGADACustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);

    procedure actModificarUpdate(Sender: TObject);
    procedure actEliminarUpdate(Sender: TObject);
    procedure actEliminarTodoUpdate(Sender: TObject);
    procedure actDuplicarUpdate(Sender: TObject);

    protected
      FFacturas : IBizFacturasObras;
      function GetFacturas: IBizFacturasObras;
      procedure SetFacturas(const Value: IBizFacturasObras);
    public
      property Facturas: IBizFacturasObras read GetFacturas write SetFacturas;
      procedure setFiltro(CodigoObra: Integer);      
  end;

implementation
{$R *.dfm}

uses uBizFacturasCliente;

procedure TfrViewFacturasObra.actModificarUpdate(Sender: TObject);
begin
  inherited;
  (Sender as TAction).Enabled := (cxGridView.DataController.RecordCount > 0);
end;

procedure TfrViewFacturasObra.actEliminarUpdate(Sender: TObject);
begin
  inherited;
  (Sender as TAction).Enabled := (cxGridView.DataController.RecordCount > 0);
end;

procedure TfrViewFacturasObra.cxGridViewPAGADACustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  IndiceCol : Integer;
  ClaseFactura : String;
   R : TRect;
begin
  ClaseFactura := '';
  IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName('CLASEFACTURA').Index;
  if not VarIsNull(AViewInfo.GridRecord.Values[IndiceCol]) then
     ClaseFactura := AViewInfo.GridRecord.Values[IndiceCol];

  if (ClaseFactura = CTE_PROFORMA) then
  begin
    R := AViewInfo.ContentBounds;
    ACanvas.FillRect(R);
    ADone := True;
  end;
end;

function TfrViewFacturasObra.GetFacturas: IBizFacturasObras;
begin
  Result := FFacturas;
end;

procedure TfrViewFacturasObra.SetFacturas(const Value: IBizFacturasObras);
begin
  FFacturas := Value;

  if Assigned(FFacturas) then
  begin
    DADataSource.DataTable := FFacturas.Datatable;
    DADataSource.DataTable.Active := True;
  end;
end;

procedure TfrViewFacturasObra.setFiltro(CodigoObra: Integer);
begin
  cxGridView.DataController.Filter.BeginUpdate;
  cxGridView.DataController.Filter.Clear;
  cxGridView.DataController.Filter.Root.AddItem(cxGridViewCODIGOOBRA, foEqual, IntToStr(CodigoObra), IntToStr(CodigoObra));
  cxGridView.DataController.Filter.EndUpdate;
end;

procedure TfrViewFacturasObra.actEliminarTodoUpdate(Sender: TObject);
begin
  inherited;
  (Sender as TAction).Enabled := (cxGridView.DataController.RecordCount > 0);
end;

procedure TfrViewFacturasObra.actDuplicarUpdate(Sender: TObject);
begin
  inherited;
  (Sender as TAction).Enabled := (cxGridView.DataController.RecordCount > 0);
end;

end.
