unit uViewDetallesFacturaProveedor;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewDetallesBase, cxStyles, cxCustomData, cxGraphics, cxFilter,
  cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
  uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit,
  Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, StdActns, ExtActns,
  JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
  uControllerDetallesArticulos, uViewDetallesArticulos, uBizFacturasProveedor,
  uDAInterfaces;

type
  IViewDetallesFacturaProveedor = interface(IViewDetallesArticulos)
  ['{28876F6E-E6EC-4DDA-9023-AE23EB9D6A62}']
    function GetFactura: IBizFacturaProveedor;
    procedure SetFactura(const Value: IBizFacturaProveedor);
    property Factura: IBizFacturaProveedor read GetFactura write SetFactura;
  end;

  TfrViewDetallesFacturaProveedor = class(TfrViewDetallesArticulos)
  protected
    FFactura: IBizFacturaProveedor;
    function GetFactura: IBizFacturaProveedor;
    procedure SetFactura(const Value: IBizFacturaProveedor);

    procedure AnadirArticulosInterno; override;
    procedure RellenarArticulosInterno; override;
    function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;

  public
    property Factura: IBizFacturaProveedor read GetFactura write SetFactura;
  end;

implementation
{$R *.dfm}

uses uDetallesFacturaProveedorController;

{ TfrViewDetallesFacturaProveedor }

function TfrViewDetallesFacturaProveedor.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
  if (Factura.TIPO = CTE_TIPO_ABONO) then  
     Result := (Controller as IDetallesFacturaProveedorController).AnadirArticulo(Detalles, pReferencia, tProveedor, -1, -1)  
  else  
     Result := (Controller as IDetallesFacturaProveedorController).AnadirArticulo(Detalles, pReferencia, tProveedor, -1, -1);  
end;

procedure TfrViewDetallesFacturaProveedor.AnadirArticulosInterno;
begin
	if (Factura.TIPO = CTE_TIPO_ABONO) then  
    (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, true, -1)  
  else  
    (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor);  
end;

function TfrViewDetallesFacturaProveedor.GetFactura: IBizFacturaProveedor;
begin
  Result := FFactura;
end;

procedure TfrViewDetallesFacturaProveedor.RellenarArticulosInterno;  
begin  
	if (Factura.TIPO = CTE_TIPO_ABONO) then  
    (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, False, -1)  
  else  
    (Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, False);  
end;  

procedure TfrViewDetallesFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor);
begin
  FFactura := Value;
end;

end.
