git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES/trunk@4 b68bf8ae-e977-074f-a058-3cfd71dd8f45
340 lines
11 KiB
ObjectPascal
340 lines
11 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.6
|
|
Fecha versión actual: 10-01-2005
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
02-11-2001 En CambiarEntidad tengo que cambiar manualmante la entidad de
|
|
la barra de titulo Almacen, ya que no está incluida dentro del
|
|
frame y no se entera de la entidad en la que está, que
|
|
puede ser Almacen, AlmacenFisico o AlmacenObra, y en cada uno
|
|
tendrá un titulo diferente. El no estar incluido en el panel
|
|
era por un problema de barras en ciertos casos, que salian las
|
|
dos barras a la vez.
|
|
|
|
07-04-2002 Se ha adaptado a una unica transacción.
|
|
|
|
09-05-2002 Cambio de grid en lugar de utilizar UltimDBGrid,
|
|
utilizaremos dxDBGrid.
|
|
|
|
07-09-2002 Adaptada la función 'CambiarEntidad'.
|
|
|
|
07-03-2004 P272. Adaptación a multiempresa.
|
|
|
|
04-10-2004 Cambio CambiarEntidad para que soporte otro color.
|
|
|
|
10-01-2005 Añadimos una entidad más entObrasCerradas
|
|
===============================================================================
|
|
}
|
|
|
|
unit Almacenes;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
Db, IB, IBSQL, IBDatabase, DBTables, Grids, DBGrids, ComCtrls,
|
|
ToolWin, ExtCtrls, IBCustomDataSet, IBQuery, RdxPaneles, RdxBarras,
|
|
RdxBotones, Tipos, RdxFrameAlmacenes, RXDBCtrl, Mensajes, dxCntner,
|
|
dxTL, dxDBCtrl, dxDBGrid;
|
|
|
|
type
|
|
TfrAlmacenes = class(TRdxFrameAlmacenes)
|
|
PanelPrincipal: TPanel;
|
|
dsAlmacenes: TDataSource;
|
|
BarraAlmacenes: TRdxBarraSuperior;
|
|
bAnadir: TRdxBotonSuperior;
|
|
bModificar: TRdxBotonSuperior;
|
|
bEliminar: TRdxBotonSuperior;
|
|
bConsultar: TRdxBotonSuperior;
|
|
bBuscar: TRdxBotonSuperior;
|
|
brSeleccion: TRdxBarraInferior;
|
|
bSeleccionar: TRdxBoton;
|
|
bCancelarGuardar: TRdxBoton;
|
|
gridAlmacenes: TdxDBGrid;
|
|
imgSombra: TImage;
|
|
procedure bAnadirClick(Sender: TObject);
|
|
procedure bModificarClick(Sender: TObject);
|
|
procedure bEliminarClick(Sender: TObject);
|
|
procedure bConsultarClick(Sender: TObject);
|
|
procedure bBuscarClick(Sender: TObject);
|
|
procedure bSeleccionarClick(Sender: TObject);
|
|
procedure bCancelarGuardarClick(Sender: TObject);
|
|
procedure gridAlmacenesRefreshButton(Sender: TObject);
|
|
procedure gridAlmacenesDblClick(Sender: TObject);
|
|
private
|
|
FFechaCierre: TDateTime;
|
|
FObraCierre: Variant;
|
|
procedure ActualizarBotones;
|
|
procedure VisualizarBotones;
|
|
procedure NoVisualizarBotones;
|
|
protected
|
|
function CloseFrame : boolean; override;
|
|
procedure BuscarAlmacen; override;
|
|
function CambiarEntidad (EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
|
|
procedure FreeContenido; override;
|
|
public
|
|
property FechaCierre: TDateTime read FFechaCierre write FFechaCierre;
|
|
property ObraCierre: Variant read FObraCierre write FObraCierre;
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
var
|
|
frAlmacenes: TfrAlmacenes;
|
|
|
|
implementation
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
BaseDatos, Almacen, BuscarAlmacen, TablaAlmacenes, Excepciones, Entidades,
|
|
Configuracion, RdxEmpresaActiva, Literales, TablaArticulosObraHistorica;
|
|
|
|
constructor TfrAlmacenes.Create (AOwner : TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
|
|
BaseDatos := dmBaseDatos.BD;
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|
TablaAlmacenes := TIBDataSet.Create(Self);
|
|
dsAlmacenes.DataSet := TablaAlmacenes;
|
|
|
|
// No asignamos ninguna sentencia sql hasta que no se le asigna una entidad
|
|
with TablaAlmacenes do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
end;
|
|
|
|
Entidad := entAlmacen;
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|
end;
|
|
|
|
destructor TfrAlmacenes.Destroy;
|
|
begin
|
|
TablaAlmacenes.Close;
|
|
TablaAlmacenes.UnPrepare;
|
|
TablaAlmacenes.Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.BuscarAlmacen;
|
|
begin
|
|
with TablaAlmacenes do
|
|
begin
|
|
DisableControls;
|
|
Close;
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
Prepare;
|
|
Open;
|
|
ActualizarBotones;
|
|
EnableControls;
|
|
end;
|
|
TablaAlmacenes.Locate('ALMACENES.CODIGO',CodigoAlmacen,[]);
|
|
end;
|
|
|
|
procedure TfrAlmacenes.FreeContenido;
|
|
begin
|
|
if (Contenido is TRdxFrameAlmacenes) then
|
|
CodigoAlmacen := (Contenido as TRdxFrameAlmacenes).CodigoAlmacen;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.bAnadirClick(Sender: TObject);
|
|
begin
|
|
Contenido := TfrAlmacen.Create(Self);
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := Anadir;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.bModificarClick(Sender: TObject);
|
|
begin
|
|
CodigoAlmacen := TablaAlmacenes.FieldByName('ALMACENES.CODIGO').AsString;
|
|
Contenido := TfrAlmacen.Create(Self);
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := Modificar;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.bEliminarClick(Sender: TObject);
|
|
begin
|
|
CodigoAlmacen := TablaAlmacenes.FieldByName('ALMACENES.CODIGO').AsString;
|
|
Contenido := TfrAlmacen.Create(Self);
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := Eliminar;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.bConsultarClick(Sender: TObject);
|
|
begin
|
|
CodigoAlmacen := TablaAlmacenes.FieldByName('ALMACENES.CODIGO').AsString;
|
|
Contenido := TfrAlmacen.Create(Self);
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := Consultar;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.bBuscarClick(Sender: TObject);
|
|
begin
|
|
CodigoAlmacen := TablaAlmacenes.FieldByName('ALMACENES.CODIGO').AsString;
|
|
Contenido := TfrBuscarAlmacen.Create(Self);
|
|
Contenido.Entidad := Entidad;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.bSeleccionarClick(Sender: TObject);
|
|
begin
|
|
if TablaAlmacenes.RecordCount = 0 then
|
|
begin
|
|
VerMensaje(msgAlmNoHayAlm);
|
|
exit;
|
|
end;
|
|
{El close frame por defecto lee el codigo del almacen seleccionado en el
|
|
grid para asi al cambiar a estado almacen se haga el cambio de almacen}
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.bCancelarGuardarClick(Sender: TObject);
|
|
begin
|
|
FCodigoAlmacen := Null;
|
|
{Llama al close frame padre el cual no realiza lectura del codigo del
|
|
almacen seleccionado}
|
|
inherited CloseFrame;
|
|
end;
|
|
|
|
function TfrAlmacenes.CloseFrame: boolean;
|
|
begin
|
|
// Para no hacer un BuscarAlmacen que no es necesario
|
|
FCodigoAlmacen := TablaAlmacenes.FieldByName('ALMACENES.CODIGO').Value;
|
|
if Entidad = entObraCerrada then
|
|
begin
|
|
FechaCierre := TablaAlmacenes.FieldByName('FECHACIERRE').AsDateTime;
|
|
ObraCierre := TablaAlmacenes.FieldByName('ALMACENES.NOMBRE').AsString;
|
|
end;
|
|
Result := inherited CloseFrame;
|
|
end;
|
|
|
|
function TfrAlmacenes.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean;
|
|
begin
|
|
if not inherited CambiarEntidad(EntidadAnterior, Entidad) then
|
|
Exit;
|
|
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|
|
|
if Transaccion = NIL then
|
|
exit;
|
|
|
|
try
|
|
with TablaAlmacenes do
|
|
begin
|
|
Close;
|
|
case Entidad of
|
|
entAlmacen : begin
|
|
BarraAlmacenes.Caption := Entidades.darNombreEntidad(entAlmacen);
|
|
VisualizarBotones;
|
|
SelectSQL.Assign(dmTablaAlmacenes.sqlGrid);
|
|
dmTablaAlmacenes.InicializarGridAlmacenes(gridAlmacenes);
|
|
end;
|
|
entAlmacenFisico : begin
|
|
BarraAlmacenes.Caption := Entidades.darNombreEntidad(entAlmacenFisico);
|
|
VisualizarBotones;
|
|
SelectSQL.Assign(dmTablaAlmacenes.sqlGridFisicos);
|
|
dmTablaAlmacenes.InicializarGridAlmacenes(gridAlmacenes);
|
|
end;
|
|
entAlmacenObra : begin
|
|
BarraAlmacenes.Caption := Entidades.darNombreEntidad(entAlmacenObra);
|
|
VisualizarBotones;
|
|
SelectSQL.Assign(dmTablaAlmacenes.sqlGridObras);
|
|
dmTablaAlmacenes.InicializarGridAlmacenes(gridAlmacenes);
|
|
end;
|
|
entObraCerrada : begin
|
|
BarraAlmacenes.Caption := Entidades.darNombreEntidad(entObraCerrada);
|
|
NoVisualizarBotones;
|
|
SelectSQL.Assign(dmTablaArticulosObraHistorica.sqlGridObrasCerradas);
|
|
dmTablaArticulosObraHistorica.InicializarGridObrasCerradas(gridAlmacenes);
|
|
end;
|
|
end;
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
Prepare;
|
|
BuscarAlmacen;
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.ActualizarBotones;
|
|
begin
|
|
if BaseDatos.IsReadOnly then
|
|
begin
|
|
bAnadir.Enabled := False;
|
|
bModificar.Enabled := False;
|
|
bEliminar.Enabled := False;
|
|
bConsultar.Enabled := True;
|
|
bBuscar.Enabled := True;
|
|
Exit;
|
|
end;
|
|
|
|
if TablaAlmacenes.RecordCount = 0 then
|
|
begin
|
|
bAnadir.Enabled := True;
|
|
bModificar.Enabled := False;
|
|
bEliminar.Enabled := False;
|
|
bConsultar.Enabled := False;
|
|
bBuscar.Enabled := False;
|
|
end
|
|
else begin
|
|
bAnadir.Enabled := True;
|
|
bModificar.Enabled := True;
|
|
bEliminar.Enabled := True;
|
|
bConsultar.Enabled := True;
|
|
bBuscar.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.gridAlmacenesRefreshButton(Sender: TObject);
|
|
begin
|
|
BuscarAlmacen;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.gridAlmacenesDblClick(Sender: TObject);
|
|
begin
|
|
if Modo = Seleccionar then
|
|
bSeleccionar.Click
|
|
else
|
|
bModificar.Click;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.NoVisualizarBotones;
|
|
begin
|
|
bAnadir.Visible := False;
|
|
bModificar.Visible := False;
|
|
bEliminar.Visible := False;
|
|
bConsultar.Visible := False;
|
|
bBuscar.Visible := False;
|
|
end;
|
|
|
|
procedure TfrAlmacenes.VisualizarBotones;
|
|
begin
|
|
bAnadir.Visible := True;
|
|
bModificar.Visible := True;
|
|
bEliminar.Visible := True;
|
|
bConsultar.Visible := True;
|
|
bBuscar.Visible := True;
|
|
end;
|
|
|
|
end.
|