unit uViewDetallesFacturaCliente;

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, uBizFacturasCliente;

type
  IViewDetallesFacturaCliente = interface(IViewDetallesArticulos)
  ['{0EEC7246-B2FD-4F93-AB15-AA12D6E67302}']
    function GetFactura: IBizFacturaCliente;
    procedure SetFactura(const Value: IBizFacturaCliente);
    property Factura: IBizFacturaCliente read GetFactura write SetFactura;
  end;

  TfrViewDetallesFacturaCliente = class(TfrViewDetallesArticulos)
  protected
    FFactura: IBizFacturaCliente;
    function GetFactura: IBizFacturaCliente;
    procedure SetFactura(const Value: IBizFacturaCliente);

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

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

implementation
{$R *.dfm}

uses uDetallesFacturaClienteController;

{ TfrViewDetallesFacturaCliente }

function TfrViewDetallesFacturaCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
  Result := (Controller as IDetallesFacturaClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Factura.Cliente.ID);

  if (Factura.TIPO = CTE_TIPO_ABONO) then
     (Controller as IDetallesFacturaClienteController).CambiarSignoDetalles(Detalles);
end;

procedure TfrViewDetallesFacturaCliente.AnadirArticulosInterno;
begin
  (Controller as IDetallesFacturaClienteController).AnadirArticulos(Detalles, Factura.Cliente);

  if (Factura.TIPO = CTE_TIPO_ABONO) then
     (Controller as IDetallesFacturaClienteController).CambiarSignoDetalles(Detalles);
end;

function TfrViewDetallesFacturaCliente.GetFactura: IBizFacturaCliente;
begin
  Result := FFactura;
end;

procedure TfrViewDetallesFacturaCliente.SetFactura(const Value: IBizFacturaCliente);
begin
  FFactura := Value;
end;

end.
