{
===============================================================================
  Copyright (©) 2001. Rodax Software.
===============================================================================
  Los contenidos de este fichero son propiedad de Rodax Software titular del
  copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
  en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
  acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
  bajo el que se suministra.
  -----------------------------------------------------------------------------
  Web:  www.rodax-software.com
===============================================================================
  Fecha primera versión: 01-10-2001
  Versión actual: 1.0.3
  Fecha versión actual: 26-04-2004
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
    03-10-2001    Arreglada la sentencia SQL que actualiza una sucursales. No
                  actualiza las filas porque ponía RDB$DB_KEY = RDB$DB_KEY en
                  vez de RDB$DB_KEY = DB_KEY.

    06-05-2002    Adaptación al grid 'TdxDBGrid'.

    26-04-2004    p272. Adaptación a multiempresa.    
===============================================================================
}

unit TablaSucursalesProveedor;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, IBCustomDataSet, IBSQL, BaseDatos, IBDatabase,
  dxDBGrid;

type
  TdmTablaSucursalesProveedor = class(TDataModule)
  private
    procedure IniciarSQL;
  public
    sqlInsertar : TStrings;
    sqlModificar : TStrings;
    sqlConsultar : TStrings;
    sqlEliminar : TStrings;
    sqlGrid : TStrings;
    constructor Create (AOwner : TComponent); override;
    destructor Destroy; override;
    procedure InicializarGridSucursales (var Grid: TdxDBGrid);
  end;

var
  dmTablaSucursalesProveedor: TdmTablaSucursalesProveedor;

implementation

{$R *.DFM}

uses
  Mensajes, IB, StrFunc, dxDBCtrl, dxDBTLCL;

constructor TdmTablaSucursalesProveedor.Create (AOwner : TComponent);
begin
  inherited;
  sqlInsertar := TStringList.Create;
  sqlModificar := TStringList.Create;
  sqlConsultar := TStringList.Create;
  sqlEliminar := TStringList.Create;
  sqlGrid := TStringList.Create;
  IniciarSQL;
end;

procedure TdmTablaSucursalesProveedor.IniciarSQL;
begin
  with sqlInsertar do
  begin
    Add('insert into SUCURSALESPROVEEDOR ');
    Add('(CODIGO, CODIGOPROVEEDOR, CALLE, NUMERO, PISO, ');
    Add('CODIGOPOSTAL, POBLACION, PROVINCIA, TELEFONO1, ');
    Add('TELEFONO2, FAX, CORREO, PERSONACONTACTO) ');
    Add('values (:CODIGO, :CODIGOPROVEEDOR, :CALLE, :NUMERO, :PISO, ');
    Add(':CODIGOPOSTAL, :POBLACION, :PROVINCIA, :TELEFONO1, ');
    Add(':TELEFONO2, :FAX, :CORREO, :PERSONACONTACTO)');
  end;

  with sqlModificar do
  begin
    Add('update SUCURSALESPROVEEDOR set ');
    Add('CODIGO = :CODIGO, ');
    Add('CALLE = :CALLE, ');
    Add('NUMERO = :NUMERO, ');
    Add('PISO = :PISO, ');
    Add('CODIGOPOSTAL = :CODIGOPOSTAL, ');
    Add('POBLACION = :POBLACION, ');
    Add('PROVINCIA = :PROVINCIA, ');
    Add('TELEFONO1 = :TELEFONO1, ');
    Add('TELEFONO2 = :TELEFONO2, ');
    Add('FAX = :FAX, ');
    Add('CORREO = :CORREO, ');
    Add('PERSONACONTACTO = :PERSONACONTACTO ');
    Add('where RDB$DB_KEY = :DB_KEY and ');
    Add('CODIGOPROVEEDOR = :CODIGOPROVEEDOR');
  end;

  with sqlEliminar do
  begin
    Add('delete from SUCURSALESPROVEEDOR ');
    Add('where CODIGO = :CODIGO and ');
    Add('CODIGOPROVEEDOR = :CODIGOPROVEEDOR');
  end;

  with sqlConsultar do
  begin
    Add('select RDB$DB_KEY, CODIGOPROVEEDOR, CODIGO, CALLE, NUMERO, PISO, ');
    Add('CODIGOPOSTAL, POBLACION, PROVINCIA, TELEFONO1, TELEFONO2, FAX, ');
    Add('CORREO, PERSONACONTACTO ');
    Add('from SUCURSALESPROVEEDOR ');
    Add('where CODIGO = :CODIGO and ');
    Add('CODIGOPROVEEDOR = :CODIGOPROVEEDOR');
  end;

  with sqlGrid do
  begin
    Add('select RDB$DB_KEY, CODIGO, CODIGOPROVEEDOR, CALLE, NUMERO, PISO, PROVINCIA, POBLACION, ');
    Add('CODIGOPOSTAL, TELEFONO1, TELEFONO2, FAX, CORREO, PERSONACONTACTO ');
    Add('from SUCURSALESPROVEEDOR ');
    Add('where CODIGOPROVEEDOR = :CODIGOPROVEEDOR ');
    Add('order by CODIGO');
  end;
end;

destructor TdmTablaSucursalesProveedor.Destroy;
begin
  sqlInsertar.Free;
  sqlModificar.Free;
  sqlConsultar.Free;
  sqlEliminar.Free;
  sqlGrid.Free;
  inherited;
end;

procedure TdmTablaSucursalesProveedor.InicializarGridSucursales (var Grid: TdxDBGrid);
var
  Columna : TdxDBTreeListColumn;
begin
  with Grid do begin
    DestroyColumns;
    {Columna RDB$DB_KEY}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.Visible := False;
    Columna.FieldName := 'RDB$DB_KEY';
    Columna.Caption := 'RDB$DB_KEY';
    {Columna CODIGO}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.Visible := False;
    Columna.FieldName := 'CODIGO';
    Columna.Caption := 'Código';
    Columna.Width := tamColCodigo;
    {Columna CODIGOPROVEEDOR}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.Visible := False;
    Columna.FieldName := 'CODIGOPROVEEDOR';
    Columna.Caption := 'Cód.Proveedor';
    {Columna CALLE}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'CALLE';
    Columna.Caption := 'Calle';
    Columna.Width := tamColCalle;
    {Columna NUMERO}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'NUMERO';
    Columna.Caption := 'Nº';
    Columna.Width := tamColNumPiso;
    {Columna PISO}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'PISO';
    Columna.Caption := 'Piso';
    Columna.Width := tamColNumPiso;
    {Columna PROVINCIA}
    Columna := CreateColumn(TdxDBTreeListButtonColumn);
    Columna.FieldName := 'PROVINCIA';
    Columna.Caption := 'Provincia';
    Columna.Width := tamColProvincia;
    {Columna POBLACION}
    Columna := CreateColumn(TdxDBTreeListButtonColumn);
    Columna.FieldName := 'POBLACION';
    Columna.Caption := 'Población';
    Columna.Width := tamColPoblacion;
    {Columna CODIGOPOSTAL}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'CODIGOPOSTAL';
    Columna.Caption := 'C.Postal';
    Columna.Width := tamColCodigoPostal;
    {Columna TELEFONO1}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'TELEFONO1';
    Columna.Caption := 'Teléfono 1';
    Columna.Width := tamColTelefono;
    {Columna TELEFONO2}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'TELEFONO2';
    Columna.Caption := 'Teléfono 2';
    Columna.Width := tamColTelefono;
    {Columna FAX}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'FAX';
    Columna.Caption := 'Fax';
    Columna.Width := tamColTelefono;
    {Columna CORREO}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'CORREO';
    Columna.Caption := 'Correo electrónico';
    Columna.Width := tamColEMail;
    {Columna PERSONACONTACTO}
    Columna := CreateColumn(TdxDBTreeListColumn);
    Columna.FieldName := 'PERSONACONTACTO';
    Columna.Caption := 'Persona de contacto';
    Columna.Width := tamColNombre;    
  end;
end;

end.
