unit uViewClienteDatosComerciales;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewBase, cxGraphics, DB, uDADataTable, dxLayoutControl,
  cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit,
  cxDBLookupEdit, cxDBLookupComboBox, cxControls, cxSpinEdit, cxDBEdit,
  uBizContactos, cxCheckBox, StdCtrls, uFormasPagoController, uAgentesController,
  uTiposIVAController, uDAInterfaces, uBizFormasPago, uBizTiposIVA, ExtCtrls; 

type
  IViewClienteDatosComerciales = interface(IViewBase)
    ['{50D671FA-1109-4D7D-B3F8-8E7DCFEB32A4}']
    function GetContacto: IBizContacto;
    procedure SetContacto(const Value: IBizContacto);
    property Contacto: IBizContacto read GetContacto write SetContacto;
  end;

  TfrViewClienteDatosComerciales = class(TfrViewBase, IViewClienteDatosComerciales)
    dxLayoutControl1: TdxLayoutControl;
    dxLayoutGroup1: TdxLayoutGroup;
    dxLayoutControl1Group3: TdxLayoutGroup;
    dsAgentes: TDADataSource;
    dxLayoutControl1Item2: TdxLayoutItem;
    eDiasVencimiento1: TcxDBSpinEdit;
    dxLayoutControl1Item3: TdxLayoutItem;
    cbRegimenIVA: TcxDBComboBox;
    dsDatosComerciales: TDADataSource;
    dxLayoutControl1Item4: TdxLayoutItem;
    cbRecargoEquivalencia: TcxDBCheckBox;
    dsFormaPago: TDADataSource;
    dxLayoutControl1Item5: TdxLayoutItem;
    cbFormaPago: TcxDBLookupComboBox;
    dxLayoutControl1Group5: TdxLayoutGroup;
    Label1: TLabel;
    dxLayoutControl1Item6: TdxLayoutItem;
    bFormasPago: TButton;
    dxLayoutControl1Item7: TdxLayoutItem;
    dxLayoutControl1Item8: TdxLayoutItem;
    eIVA: TcxDBLookupComboBox;
    dxLayoutControl1Item9: TdxLayoutItem;
    bTiposIVA: TButton;
    dsTiposIVA: TDADataSource;
    dxLayoutControl1Group1: TdxLayoutGroup;
    dxLayoutControl1Group2: TdxLayoutGroup;
    dxLayoutControl1Item1: TdxLayoutItem;
    eDescuento: TcxDBSpinEdit;
    Bevel1: TBevel;
    dxLayoutControl1Item10: TdxLayoutItem;
    dxLayoutControl1Item11: TdxLayoutItem;
    eDiasVencimiento2: TcxDBSpinEdit;
    dxLayoutControl1Item12: TdxLayoutItem;
    eDiasVencimiento3: TcxDBSpinEdit;
    eAgente: TcxDBLookupComboBox;
    procedure CustomViewCreate(Sender: TObject);
    procedure CustomViewDestroy(Sender: TObject);
    procedure cbRegimenIVAPropertiesInitPopup(Sender: TObject);
    procedure bFormasPagoClick(Sender: TObject);
    procedure bTiposIVAClick(Sender: TObject);
  protected
    FContacto : IBizContacto;
    FAgentesController : IAgentesController;    
    FTiposIVA : IBizTipoIVA;
    FFormasPago : IBizFormaPago;
    FFormasPagoController : IFormasPagoController;
    FTiposIVAController : ITiposIVAController;
    function GetContacto: IBizContacto;
    procedure SetContacto(const Value: IBizContacto);
  public
    property Contacto: IBizContacto read GetContacto write SetContacto;
  end;


implementation

{$R *.dfm}

uses
  uRegimenIVAUtils;

{ TfrViewClienteDatosComerciales }

procedure TfrViewClienteDatosComerciales.bFormasPagoClick(Sender: TObject);
begin
  inherited;
  if Assigned(FFormasPago) then
     FFormasPagoController.VerTodos(FFormasPago);
end;

procedure TfrViewClienteDatosComerciales.bTiposIVAClick(Sender: TObject);
begin
  inherited;
  if Assigned(FTiposIVA) then
     FTiposIVAController.VerTodos(FTiposIVA);
end;

procedure TfrViewClienteDatosComerciales.cbRegimenIVAPropertiesInitPopup(
  Sender: TObject);
begin
  inherited;
  with cbRegimenIVA.Properties do
  begin
    if Items.Count = 0 then
      Items := DarRegimenesIVA;
  end;
end;

procedure TfrViewClienteDatosComerciales.CustomViewCreate(Sender: TObject);
begin
  inherited;
  FTiposIVA := Nil;
  FFormasPago := Nil;
  FContacto := Nil;
  FAgentesController := TAgentesController.Create;
  FFormasPagoController := TFormasPagoController.Create;
  FTiposIVAController := TTiposIVAController.Create;
end;

procedure TfrViewClienteDatosComerciales.CustomViewDestroy(Sender: TObject);
begin
  inherited;
  FTiposIVA := Nil;
  FFormasPago := Nil;
  FContacto := Nil;
  FAgentesController := NIL;
  FFormasPagoController := NIL;
  FTiposIVAController := NIL;
end;

function TfrViewClienteDatosComerciales.GetContacto: IBizContacto;
begin
  Result := FContacto;
end;

procedure TfrViewClienteDatosComerciales.SetContacto(const Value: IBizContacto);
begin
  FContacto := Value;
  if Assigned(FContacto) then
  begin
    dsDatosComerciales.DataTable := FContacto.DataTable;
    dsAgentes.DataTable := FAgentesController.BuscarTodos.DataTable;
    dsAgentes.DataTable.Active := True;
    FFormasPago := FFormasPagoController.BuscarTodos;
    dsFormaPago.DataTable := FFormasPago.DataTable;
    dsFormaPago.DataTable.Active := True;
    FTiposIVA := FTiposIVAController.BuscarTodos;
    dsTiposIVA.DataTable := FTiposIVA.DataTable;
    dsTiposIVA.DataTable.Active := True;
  end
  else begin
    dsDatosComerciales.DataTable := NIL;
    dsAgentes.DataTable := NIL;
    dsFormaPago.DataTable := NIL;
    dsTiposIVA.DataTable := NIL;
  end
end;

end.
