This repository has been archived on 2024-11-29. You can view files and clone it, but cannot push or open issues or pull requests.
Tecsitel_FactuGES/Almacenes/HistoricoMovimientos.pas
2007-06-21 15:47:20 +00:00

283 lines
8.6 KiB
ObjectPascal

{
===============================================================================
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: 04-10-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
24-02-2002 Ajusta el alto de la ventana modal de listar.
07-04-2002 Se ha adaptado a una unica transacción.
14-07-2004 Se ha adaptado a multiempresa.
04-10-2004 Se añade unidad cambiarEntidad para que pueda cambiar de color
dependiendo del modulo desde el que se la llama
===============================================================================
}
unit HistoricoMovimientos;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, RdxBotones, StdCtrls, IB, RdxFrame,
RdxMemo, RdxCampos, ExtCtrls, Tipos, IBCustomDataSet,
RdxComboBox, Db, DBTables, RXDBCtrl, RdxTitulos, RdxPaneles, IBSQL,
RdxBarras, DBCtrls, RxMemDS, RdxCheckBox, RdxFrameHistoricoMovimientos,
Mensajes, dxCntner, dxTL, dxDBCtrl, dxDBGrid, pngimage;
type
TfrHistoricoMovimientos = class(TRdxFrameHistoricoMovimientos)
dsMovimientos: TDataSource;
RdxBarraSuperior1: TRdxBarraSuperior;
bConsultar: TRdxBotonSuperior;
bEliminar: TRdxBotonSuperior;
bBuscar: TRdxBotonSuperior;
bListar: TRdxBotonSuperior;
pnlCuerpo: TRdxPanel;
pnlGridArticulos: TPanel;
pnlDatos: TPanel;
pnlExtra: TRdxBarraSuperior;
eAlmacen: TLabel;
cbxAlmacen: TRdxComboBox;
gridMovimientos: TdxDBGrid;
imgSombra: TImage;
procedure bConsultarClick(Sender: TObject);
procedure bEliminarClick(Sender: TObject);
procedure bBuscarClick(Sender: TObject);
procedure bListarClick(Sender: TObject);
procedure cbxAlmacenChange(Sender: TObject);
procedure gridMovimientosRefreshButton(Sender: TObject);
private
procedure ActualizarBotones;
protected
procedure BuscarAlmacen; override;
procedure BuscarMovimiento; override;
procedure FreeContenido; override;
procedure VerModal; override;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function CambiarEntidad (EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
public
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
property TablaMovimientos;
property Entidad;
end;
var
frHistoricoMovimientos: TfrHistoricoMovimientos;
implementation
{$R *.DFM}
uses
BaseDatos, BuscarMovimiento, HistoricoMovimiento, ListadoHistoricoMovimientos,
TablaMovimientos, TablaAlmacenes, TablaHistoricoMovimientos, Excepciones,
Configuracion, RdxEmpresaActiva;
constructor TfrHistoricoMovimientos.Create (AOwner : TComponent);
var
i : integer;
begin
inherited Create(AOwner);
Entidad := entAlmacen;
ConfigurarFrame(Self, Self.Entidad);
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaMovimientos := TIBDataSet.Create(Self);
dsMovimientos.DataSet := TablaMovimientos;
with TablaMovimientos do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaHistoricoMovimientos.sqlGrid);
end;
dmTablaAlmacenes.darAlmacenes(EmpresaActiva.Codigo, FListaAlmacenesCodigo,FListaCodigosAlmacen);
for i:=0 to FListaAlmacenesCodigo.Count-1 do
cbxAlmacen.Items.Add(FListaAlmacenesCodigo.Names[i]);
// Carga el primer almacen
cbxAlmacen.ItemIndex := 0;
CodigoAlmacen := FListaAlmacenesCodigo.Values[cbxAlmacen.Text];
// dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos);
dmTablaHistoricoMovimientos.InicializarGridMovimientos(gridMovimientos);
// gridMovimientos.AutoWidth := awWidestValueTitle;
end;
destructor TfrHistoricoMovimientos.Destroy;
begin
TablaMovimientos.Close;
TablaMovimientos.UnPrepare;
TablaMovimientos.Free;
inherited;
end;
procedure TfrHistoricoMovimientos.BuscarAlmacen;
begin
if Transaccion = NIL then
exit;
try
TablaMovimientos.DisableControls;
TablaMovimientos.Close;
if not VarIsNull(CodigoAlmacen) then
TablaMovimientos.Params.ByName('CODIGOALMACEN').AsString := CodigoAlmacen;
TablaMovimientos.Params.ByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
TablaMovimientos.Prepare;
TablaMovimientos.Open;
ActualizarBotones;
TablaMovimientos.EnableControls;
// Establece en el combox el almacen correspondiente al codigo a buscar
cbxAlmacen.ItemIndex := cbxAlmacen.Items.IndexOf(FListaCodigosAlmacen.Values[CodigoAlmacen]);
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrHistoricoMovimientos.cbxAlmacenChange(Sender: TObject);
begin
CodigoAlmacen := FListaAlmacenesCodigo.Values[cbxAlmacen.Text];
end;
procedure TfrHistoricoMovimientos.FreeContenido;
begin
if (Contenido is TRdxFrameHistoricoMovimientos) then
CodigoMovimiento := (Contenido as TRdxFrameHistoricoMovimientos).CodigoMovimiento;
inherited;
end;
procedure TfrHistoricoMovimientos.bBuscarClick(Sender: TObject);
begin
CodigoMovimiento := TablaMovimientos.FieldByName('CODIGO').AsString;
Contenido := TfrBuscarMovimiento.Create(Self);
Contenido.Entidad := Self.Entidad;
end;
procedure TfrHistoricoMovimientos.bEliminarClick(Sender: TObject);
begin
CodigoMovimiento := TablaMovimientos.FieldByName('CODIGO').AsString;
Contenido := TfrHistoricoMovimiento.Create(Self);
Contenido.Entidad := Self.Entidad;
Contenido.Modo := Eliminar;
end;
procedure TfrHistoricoMovimientos.bConsultarClick(Sender: TObject);
begin
CodigoMovimiento := TablaMovimientos.FieldByName('CODIGO').AsString;
Contenido := TfrHistoricoMovimiento.Create(Self);
Contenido.Entidad := Self.Entidad;
Contenido.Modo := Consultar;
end;
procedure TfrHistoricoMovimientos.bListarClick(Sender: TObject);
begin
Contenido := TfrListadoHistoricoMovimientos.Create(Self);
Contenido.Entidad := Self.Entidad;
end;
procedure TfrHistoricoMovimientos.BuscarMovimiento;
begin
with TablaMovimientos do
begin
DisableControls;
Close;
Open;
ActualizarBotones;
EnableControls;
end;
TablaMovimientos.Locate('CODIGO',CodigoMovimiento,[]);
end;
procedure TfrHistoricoMovimientos.VerModal;
begin
if (ContenidoModal is TfrListadoHistoricoMovimientos) then
(ContenidoModal as TfrListadoHistoricoMovimientos).CodigoAlmacen := CodigoAlmacen;
inherited;
end;
procedure TfrHistoricoMovimientos.ActualizarBotones;
begin
if BaseDatos.IsReadOnly then
begin
bConsultar.Enabled := True;
bEliminar.Enabled := False;
bBuscar.Enabled := True;
bListar.Enabled := True;
Exit;
end;
if TablaMovimientos.RecordCount= 0 then
begin
bConsultar.Enabled := False;
bEliminar.Enabled := False;
bBuscar.Enabled := False;
bListar.Enabled := False;
end
else begin
bConsultar.Enabled := True;
bEliminar.Enabled := True;
bBuscar.Enabled := True;
bListar.Enabled := True;
end;
end;
procedure TfrHistoricoMovimientos.gridMovimientosRefreshButton(
Sender: TObject);
begin
//Porque no se va ha cambiar de almacen ya que es solo refresco
BuscarMovimiento;
end;
procedure TfrHistoricoMovimientos.SetContenido(NuevoFrame: TRdxFrame);
begin
inherited;
if (Contenido is TfrListadoHistoricoMovimientos) then
begin
(Contenido as TfrListadoHistoricoMovimientos).Entidad := Entidad;
(Contenido as TfrListadoHistoricoMovimientos).CodigoAlmacen := CodigoAlmacen;
end;
end;
function TfrHistoricoMovimientos.CambiarEntidad(EntidadAnterior,
Entidad: TRdxEntidad): Boolean;
begin
if not inherited CambiarEntidad(EntidadAnterior, Entidad) then
Exit;
ConfigurarFrame(Self, Self.Entidad);
end;
end.