unit uViewProveedorDatosComerciales;

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, uTiposIVAController,
  uDAInterfaces, uBizTiposIVA, uBizFormasPago, ExtCtrls, cxLookAndFeels,
  cxLookAndFeelPainters, dxLayoutcxEditAdapters;

type
  IViewProveedorDatosComerciales = interface(IViewBase)
    ['{26EEABD7-5603-48B5-ACC3-F493DAA1A0EC}']
    function GetContacto: IBizContacto;
    procedure SetContacto(const Value: IBizContacto);
    property Contacto: IBizContacto read GetContacto write SetContacto;
  end;

  TfrViewProveedorDatosComerciales = class(TfrViewBase, IViewProveedorDatosComerciales)
    dxLayoutControl1: TdxLayoutControl;
    dxLayoutGroup1: TdxLayoutGroup;
    dxLayoutControl1Group3: TdxLayoutGroup;
    dsAgentes: TDADataSource;
    dxLayoutControl1Item3: TdxLayoutItem;
    cbRegimenIVA: TcxDBComboBox;
    dsDatosComerciales: TDADataSource;
    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;
    dxLayoutControl1Group4: TdxLayoutGroup;
    dxLayoutControl1Item2: TdxLayoutItem;
    Bevel1: TBevel;
    dxLayoutControl1Item4: TdxLayoutItem;
    eDiasVencimiento1: TcxDBSpinEdit;
    dxLayoutControl1Item11: TdxLayoutItem;
    eDiasVencimiento2: TcxDBSpinEdit;
    dxLayoutControl1Item12: TdxLayoutItem;
    eDiasVencimiento3: TcxDBSpinEdit;
    procedure CustomViewCreate(Sender: TObject);
    procedure CustomViewDestroy(Sender: TObject);
    procedure cbRegimenIVAPropertiesInitPopup(Sender: TObject);
    procedure bFormasPagoClick(Sender: TObject);
    procedure bTiposIVAClick(Sender: TObject);
  protected
    FContacto : IBizContacto;
    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;

{ TfrViewProveedorDatosComerciales }

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

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

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

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

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

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

procedure TfrViewProveedorDatosComerciales.SetContacto(const Value: IBizContacto);
begin
  FContacto := Value;
  if Assigned(FContacto) then
  begin
    dsDatosComerciales.DataTable := FContacto.DataTable;
    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;
    dsFormaPago.DataTable := NIL;
    dsTiposIVA.DataTable := NIL;
  end
end;

end.
