{
===============================================================================
  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.2
  Fecha versión actual: 14-07-2004
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
    16-11-2002    p250. Poner el número total de movimientos dados de alta
                  en la inicialización del grid.
    14-07-2004    Se ha adaptado las SQL a multiempresa.

===============================================================================
}

unit TablaHistoricoMovimientos;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, IBCustomDataSet, IBSQL, BaseDatos, IBDatabase,
  Mensajes, IB, cxGrid, StrFunc;

type
  TdmTablaHistoricoMovimientos = class(TDataModule)
  private
    procedure IniciarSQL;
  public
    sqlConsultar : TStrings;
    sqlEliminar : TStrings;
    sqlGrid : TStrings;

    constructor Create (AOwner : TComponent); override;
    destructor Destroy; override;

    procedure InicializarGridMovimientos(var Grid: TcxGrid);
  end;

var
  dmTablaHistoricoMovimientos: TdmTablaHistoricoMovimientos;

implementation

{$R *.DFM}

uses Math,Variants, cxGridTableView,
  cxGridDBTableView, cxCustomData;


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

destructor TdmTablaHistoricoMovimientos.Destroy;
begin
  sqlConsultar.Free;
  sqlEliminar.Free;
  sqlGrid.Free;
  inherited;
end;

procedure TdmTablaHistoricoMovimientos.IniciarSQL;
begin
  with sqlConsultar do
  begin
    Add('select * ');
    Add('from MOVIMIENTOS ');
    Add('where CODIGOEMPRESA = :CODIGOEMPRESA ');
    Add('and CODIGO = :CODIGO ');
  end;

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

  with sqlGrid do
  begin
    Add('select CODIGO, FECHA, HORA, TIPOOPERACION, TIPOMOVIMIENTO, CODIGOARTICULO, FAMILIA, ');
    Add('DESCRIPCIONARTICULO, STOCKANTIGUO, STOCKNUEVO ');
    Add('from MOVIMIENTOS ');
    Add('where CODIGOEMPRESA = :CODIGOEMPRESA ');
    Add('and CODIGOALMACEN = :CODIGOALMACEN ');
    Add('order by FECHA desc, HORA desc');
  end;
end;

procedure TdmTablaHistoricoMovimientos.InicializarGridMovimientos(var Grid: TcxGrid);
var
  Columna : TcxGridDBColumn;
begin
  with (Grid.ActiveView as TcxGridDBTableView) do
  begin
    ClearItems;
    OptionsView.Footer := True;

    {Columna FECHA}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'FECHA';
    Columna.Caption := 'Fecha';
    Columna.Width := tamColFecha;
    Columna.Summary.FooterKind := skCount;
    Columna.Summary.FooterFormat := 'Total: 0 movimientos';

    {Columna HORA}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'HORA';
    Columna.Caption := 'Hora';
    Columna.Width := tamColFecha;
    
    {Columna TIPOOPERACION}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'TIPOOPERACION';
    Columna.Caption := 'Tipo operación';
    Columna.Width := tamColCodigo;
    {Columna TIPOMOVIMIENTO}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'TIPOMOVIMIENTO';
    Columna.Caption := 'Tipo movimiento';
    Columna.Width := tamColCodigo;
    {Columna CODIGOARTICULO}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'CODIGOARTICULO';
    Columna.Caption := 'Cód. material';
    Columna.Width := tamColCodigo;
    {Columna DESCRIPCIONARTICULO}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'DESCRIPCIONARTICULO';
    Columna.Caption := 'Descripción';
    Columna.Width := tamColDescripcion;
    {Columna STOCKANTIGUO}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'STOCKANTIGUO';
    Columna.Caption := 'Stock anterior';
    Columna.Width := tamColCantidad;
    {Columna STOCKNUEVO}
    Columna := CreateColumn;
    Columna.DataBinding.FieldName := 'STOCKNUEVO';
    Columna.Caption := 'Stock nuevo';
    Columna.Width := tamColCantidad;
  end;
end;

end.
