unit uEditorProveedor;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  uEditorContacto, uCustomView, uViewBase, uViewContacto,
  uViewProveedor, JvAppStorage, JvAppRegistryStorage, JvComponentBase,
  JvFormPlacement, DB, uDADataTable, ImgList, PngImageList, StdActns, ActnList,
  ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls,
  JvComponent, JvNavigationPane,

  uIEditorProveedor, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
  cxSpinEdit, cxDBEdit, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar,
  dxLayoutLookAndFeels, uViewContactoDatosBancarios, uBizContactos,
  uViewProveedorDatosComerciales, uViewDetallesGenerico, uViewDireccionesEntrega,
  uDAInterfaces, uViewContactoListaDatosBancarios, uViewPersonalContacto,
  cxLabel;

type
  TfEditorProveedor = class(TfEditorContacto, IEditorProveedor)
    frViewProveedor1: TfrViewProveedor;
    pagDatosComerciales: TTabSheet;
    frViewProveedorDatosComerciales1: TfrViewProveedorDatosComerciales;
    pagDirecciones: TTabSheet;
    frViewDireccionesEntrega1: TfrViewDireccionesEntrega;
    actGruposProveedor: TAction;
    actDocumentosPedidos: TAction;
    actDocumentosAlbaranes: TAction;
    actDocumentosDevoluciones: TAction;
    actDocumentosFacturas: TAction;
    actDocumentosRecibos: TAction;
    TBXSubmenuItem3: TTBXSubmenuItem;
    TBXItem7: TTBXItem;
    TBXItem33: TTBXItem;
    TBXItem34: TTBXItem;
    TBXItem35: TTBXItem;
    TBXItem36: TTBXItem;
    TBXSeparatorItem6: TTBXSeparatorItem;
    TBXItem37: TTBXItem;
    TBXSubmenuItem2: TTBXSubmenuItem;
    TBXItem38: TTBXItem;
    TBXItem39: TTBXItem;
    TBXItem40: TTBXItem;
    TBXItem41: TTBXItem;
    TBXItem42: TTBXItem;
    TBXSubmenuItem8: TTBXSubmenuItem;
    procedure actGruposProveedorExecute(Sender: TObject);
    procedure actDocumentosAlbaranesExecute(Sender: TObject);
    procedure actDocumentosPedidosExecute(Sender: TObject);
    procedure actDocumentosDevolucionesExecute(Sender: TObject);
    procedure actDocumentosFacturasExecute(Sender: TObject);
    procedure actDocumentosRecibosExecute(Sender: TObject);
  protected
    procedure EliminarInterno; override;
    procedure SetContacto(const Value: IBizContacto); override;
  public
    constructor Create(AOwner: TComponent); override;
    procedure PonerTitulos(const ATitulo: string = ''); override;
  end;

implementation

{$R *.dfm}

{ TfEditorProveedor }

uses
  uDialogUtils, uGruposProveedorController, uBizGruposProveedor,
  uProveedoresController;

procedure TfEditorProveedor.actDocumentosAlbaranesExecute(Sender: TObject);
begin
  inherited;
  (FController as IProveedoresController).VerAlbaranesDeProveedor(IBizProveedor(Contacto));
end;

procedure TfEditorProveedor.actDocumentosDevolucionesExecute(Sender: TObject);
begin
  inherited;
  (FController as IProveedoresController).VerDevolucionesDeProveedor(IBizProveedor(Contacto));
end;

procedure TfEditorProveedor.actDocumentosFacturasExecute(Sender: TObject);
begin
  inherited;
  (FController as IProveedoresController).VerFacturasDeProveedor(IBizProveedor(Contacto));
end;

procedure TfEditorProveedor.actDocumentosPedidosExecute(Sender: TObject);
begin
  inherited;
  (FController as IProveedoresController).VerPedidosDeProveedor(IBizProveedor(Contacto));
end;

procedure TfEditorProveedor.actDocumentosRecibosExecute(Sender: TObject);
begin
  inherited;
  (FController as IProveedoresController).VerRecibosDeProveedor(IBizProveedor(Contacto));
end;

procedure TfEditorProveedor.actGruposProveedorExecute(Sender: TObject);
var
  AGruposController : IGruposProveedorController;
  AGrupos : IBizGrupoProveedor;
begin
  AGruposController := TGruposProveedorController.Create;
  try
    AGrupos := (AGruposController.BuscarTodos as IBizGrupoProveedor);
    AGruposController.VerTodos(AGrupos);
  finally
    AGrupos := NIL;
    AGruposController := NIL;
  end;
end;

constructor TfEditorProveedor.Create(AOwner: TComponent);
begin
  inherited;
  ViewContacto := frViewProveedor1;
end;

procedure TfEditorProveedor.EliminarInterno;
begin
  if (ShowConfirmMessage('¿Desea borrar este proveedor?', '') = IDYES) then
    inherited;
end;

procedure TfEditorProveedor.PonerTitulos(const ATitulo: string);
var
  FTitulo : String;
begin
  if Assigned(Contacto) then
  begin
    if Contacto.EsNuevo then
      FTitulo := 'Nuevo proveedor'
    else
      FTitulo := 'Proveedor';
  end;

  inherited PonerTitulos(FTitulo);
end;

procedure TfEditorProveedor.SetContacto(const Value: IBizContacto);
begin
  inherited;
  if Assigned(Contacto) then
  begin
    frViewDireccionesEntrega1.dsDetalles.DataTable := Contacto.Direcciones.DataTable;
    frViewProveedorDatosComerciales1.Contacto := Contacto
  end
  else
  begin
    frViewProveedorDatosComerciales1.Contacto := NIL;
    frViewDireccionesEntrega1.dsDetalles.DataTable := NIL;    
  end;
end;

end.
