git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES/trunk@4 b68bf8ae-e977-074f-a058-3cfd71dd8f45
625 lines
22 KiB
ObjectPascal
625 lines
22 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.8
|
|
Fecha versión actual: 04-10-2004
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
02-11-2001 En CambiarEntidad tengo que cambiar manualmante la entidad de
|
|
la barra de titulo ArticulosAlmacen, ya que no está incluida
|
|
dentro del frame y no se entera de la entidad en la que está,
|
|
que puede ser ArticulosAlmacen, ArticulosAlmacenFisico o
|
|
ArticulosAlmacenObra, 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.
|
|
|
|
Añadir el botón finalizar obra que solo será visible cuando
|
|
la entidad en la que nos encontremos sea
|
|
entArticulosAlmacenObra.
|
|
|
|
02-03-2002 En el contenido se pueden añadir muchos materiales a la vez.
|
|
|
|
07-04-2002 Se ha adaptado a una unica transacción.
|
|
|
|
11-08-2002 p223. Se ha modificado finalizar obra para la ampliacion de
|
|
historico de obras.
|
|
|
|
07-09-2002 Adaptada la función 'CambiarEntidad'.
|
|
|
|
15-04-2004 Al hacer doble click sobre el grid, se pasará a modificar el
|
|
registro o se seleccionará, dependiendo del modo en el que
|
|
se encuentre la pantalla.
|
|
|
|
15-04-2004 p272. Adaptación a multiempresa.
|
|
|
|
14-07-2004 Arreglo de un error de conversion al cambiar de almacenes a
|
|
articulos obra
|
|
|
|
04-10-2004 Cambio CambiarEntidad para que soporte otro color.
|
|
===============================================================================
|
|
}
|
|
|
|
unit ArticulosAlmacen;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
RDXFRAME, Grids, DBGrids, ComCtrls, RdxBotones, ToolWin, ExtCtrls,
|
|
StdCtrls, RdxComboBox, Tipos, Menus, am2000menuitem, IB,
|
|
Db, am2000popupmenu, am2000, RdxBarras,
|
|
RdxPaneles, RXDBCtrl, DBTables, RdxFrameArticulosAlmacen,
|
|
IBCustomDataSet, RdxCampos, StrFunc, Mensajes, dxCntner, dxTL,
|
|
dxDBCtrl, dxDBGrid, dxEditor, dxExEdtr, dxDBEdtr, dxDBELib, am2000utils;
|
|
|
|
type
|
|
TfrArticulosAlmacen = class(TRdxFrameArticulosAlmacen)
|
|
menuEntrada: TPopupMenu2000;
|
|
menuSalida: TPopupMenu2000;
|
|
dsEstadoAlmacen: TDataSource;
|
|
BarraEstado: TRdxBarraSuperior;
|
|
brSeleccion: TRdxBarraInferior;
|
|
bSeleccionar: TRdxBoton;
|
|
bCancelarGuardar: TRdxBoton;
|
|
RegularizarEntrada: TMenuItem2000;
|
|
RecibirEntradaPedido: TMenuItem2000;
|
|
N1: TMenuItem2000;
|
|
pnlCuerpo: TRdxPanel;
|
|
pnlGridArticulos: TPanel;
|
|
pnlDatos: TPanel;
|
|
pnlExtra: TRdxBarraSuperior;
|
|
eAlmacen: TLabel;
|
|
cbxAlmacen: TRdxComboBox;
|
|
RegularizarSalida: TMenuItem2000;
|
|
N2: TMenuItem2000;
|
|
DevolverSalidaPedido: TMenuItem2000;
|
|
bEntrada: TRdxBotonMenu;
|
|
bSalida: TRdxBotonMenu;
|
|
bTrasladar: TRdxBotonSuperior;
|
|
bEliminar: TRdxBotonSuperior;
|
|
bConsultar: TRdxBotonSuperior;
|
|
bBuscar: TRdxBotonSuperior;
|
|
bListar: TRdxBotonSuperior;
|
|
bFinalizar: TRdxBoton;
|
|
gridArticulosAlmacen: TdxDBGrid;
|
|
pnlBusquedaRapida: TRdxPanel;
|
|
eBusqueda: TLabel;
|
|
BusquedaRapida: TdxLookupEdit;
|
|
imgSombra: TImage;
|
|
|
|
procedure bConsultarClick(Sender: TObject);
|
|
procedure bEliminarClick(Sender: TObject);
|
|
procedure bBuscarClick(Sender: TObject);
|
|
procedure bListadosClick(Sender: TObject);
|
|
procedure bTrasladarClick(Sender: TObject);
|
|
procedure RegularizarEntradaClick(Sender: TObject);
|
|
procedure RegularizarSalidaClick(Sender: TObject);
|
|
procedure RecibirEntradaPedidoClick(Sender: TObject);
|
|
procedure DevolverSalidaPedidoClick(Sender: TObject);
|
|
procedure cbxAlmacenChange(Sender: TObject);
|
|
procedure bSeleccionarClick(Sender: TObject);
|
|
procedure bCancelarGuardarClick(Sender: TObject);
|
|
procedure gridArticulosAlmacenRefreshButton(Sender: TObject);
|
|
procedure bFinalizarClick(Sender: TObject);
|
|
procedure gridArticulosAlmacenSelectedCountChange(Sender: TObject);
|
|
procedure BusquedaRapidaKeyDown(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
procedure gridArticulosAlmacenDblClick(Sender: TObject);
|
|
private
|
|
FCodigoAlmacenInicial : Variant;
|
|
FCodigoPedido : Variant;
|
|
FListaArticulosAux : TStringList;
|
|
procedure ActualizarBotones;
|
|
protected
|
|
procedure SetCodigoAlmacen (Value : Variant); override;
|
|
procedure BuscarAlmacen; override;
|
|
procedure BuscarArticulo; override;
|
|
procedure FreeContenido; override;
|
|
function CambiarEntidad (EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
|
|
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
|
|
procedure SetContenido (NuevoFrame : TRdxFrame); override;
|
|
procedure VerModal; override;
|
|
public
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
published
|
|
property TablaArticulosAlmacen;
|
|
property CodigoAlmacen;
|
|
property CodigoArticulo;
|
|
end;
|
|
|
|
var
|
|
frArticulosAlmacen: TfrArticulosAlmacen;
|
|
|
|
implementation
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
BaseDatos, ArticuloAlmacen, BuscarArticuloAlmacen, ListadoArticulosAlmacen,
|
|
MovimientoAlmacenes, PedidosProveedores, TablaArticulosAlmacen,
|
|
TablaAlmacenes, RdxFramePedidosProveedor, RdxFrameMovimientos,
|
|
Excepciones, FinalizarObra, Entidades, Configuracion, RdxEmpresaActiva,
|
|
Literales;
|
|
|
|
constructor TfrArticulosAlmacen.Create (AOwner : TComponent);
|
|
var
|
|
i:integer;
|
|
begin
|
|
inherited Create(AOwner);
|
|
FCodigoAlmacenInicial := NULL;
|
|
FCodigoPedido := NULL;
|
|
|
|
BaseDatos := dmBaseDatos.BD;
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|
TablaArticulosAlmacen := TIBDataSet.Create(Self);
|
|
dsEstadoAlmacen.DataSet := TablaArticulosAlmacen;
|
|
|
|
with TablaArticulosAlmacen do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaArticulosAlmacen.sqlGrid);
|
|
end;
|
|
|
|
Entidad := entArticulosAlmacen;
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|
dmTablaArticulosAlmacen.InicializarGridArticulosAlmacen(gridArticulosAlmacen);
|
|
FListaArticulosAux := TStringList.Create;
|
|
end;
|
|
|
|
destructor TfrArticulosAlmacen.Destroy;
|
|
begin
|
|
TablaArticulosAlmacen.Close;
|
|
TablaArticulosAlmacen.UnPrepare;
|
|
TablaArticulosAlmacen.Free;
|
|
if FListaArticulosAux <> NIL then
|
|
begin
|
|
FListaArticulosAux.Clear;
|
|
FListaArticulosAux.Free;
|
|
FListaArticulosAux := NIL;
|
|
end;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.BuscarAlmacen;
|
|
begin
|
|
if Transaccion = NIL then
|
|
exit;
|
|
|
|
try
|
|
with TablaArticulosAlmacen do
|
|
begin
|
|
DisableControls;
|
|
Close;
|
|
|
|
if not VarIsNull(CodigoAlmacen) then
|
|
Params.ByName('CODIGOALMACEN').AsString := CodigoAlmacen;
|
|
Params.ByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
Prepare;
|
|
Open;
|
|
ActualizarBotones;
|
|
dmTablaArticulosAlmacen.InicializarTablaArticulosAlmacen(@TablaArticulosAlmacen);
|
|
EnableControls;
|
|
end;
|
|
|
|
|
|
// 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 TfrArticulosAlmacen.BuscarArticulo;
|
|
begin
|
|
with TablaArticulosAlmacen do
|
|
begin
|
|
DisableControls;
|
|
Close;
|
|
Open;
|
|
ActualizarBotones;
|
|
dmTablaArticulosAlmacen.InicializarTablaArticulosAlmacen(@TablaArticulosAlmacen);
|
|
EnableControls;
|
|
end;
|
|
TablaArticulosAlmacen.Locate('CODIGOARTICULO',CodigoArticulo,[]);
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.cbxAlmacenChange(Sender: TObject);
|
|
begin
|
|
CodigoAlmacen := FListaAlmacenesCodigo.Values[cbxAlmacen.Text];
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.FreeContenido;
|
|
begin
|
|
if (Contenido is TRdxFrameArticulosAlmacen) then begin
|
|
CodigoAlmacen := (Contenido as TRdxFrameArticulosAlmacen).CodigoAlmacen;
|
|
CodigoArticulo := (Contenido as TRdxFrameArticulosAlmacen).CodigoArticulo;
|
|
end;
|
|
// Guarda el codigo del pedido en el que se basa una entrada a almacen por pedido
|
|
if (ContenidoModal is TRdxFramePedidosProveedor) then
|
|
FCodigoPedido := (ContenidoModal as TRdxFramePedidosProveedor).CodigoPedido;
|
|
|
|
if (Contenido is TRdxFrameMovimientos) then
|
|
begin
|
|
if (Contenido as TRdxFrameMovimientos).Modo = Traslado then
|
|
CodigoAlmacen := (Contenido as TRdxFrameMovimientos).CodigoAlmacenOrigen;
|
|
|
|
//No incluimos entrada de pedido ni salida devolucion, porque como pueden
|
|
//ser tanto almacenes como obras el codigoalmacen luego el combo saldria
|
|
//en blanco al no tener nada mas que almacenes u obras
|
|
if (Contenido as TRdxFrameMovimientos).Modo = Entrada then
|
|
CodigoAlmacen := (Contenido as TRdxFrameMovimientos).CodigoAlmacenDestino
|
|
else
|
|
begin
|
|
if (Contenido as TRdxFrameMovimientos).Modo = Salida then
|
|
CodigoAlmacen := (Contenido as TRdxFrameMovimientos).CodigoAlmacenOrigen
|
|
else
|
|
BuscarAlmacen;
|
|
end;
|
|
end;
|
|
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bConsultarClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
Contenido := TfrArticuloAlmacen.Create(Self);
|
|
// Por si realmente no se ha liberado con la pregunta tratarcambios
|
|
if (Contenido is TRdxFrameArticulosAlmacen) then
|
|
begin
|
|
Case Entidad of
|
|
entArticulosAlmacen : Contenido.Entidad := entArticuloAlmacen;
|
|
entArticulosAlmacenFisico : Contenido.Entidad := entArticuloAlmacenFisico;
|
|
entArticulosAlmacenObra : Contenido.Entidad := entArticuloAlmacenObra;
|
|
end;
|
|
Contenido.Modo := Consultar;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bEliminarClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
Contenido := TfrArticuloAlmacen.Create(Self);
|
|
if (Contenido is TRdxFrameArticulosAlmacen) then
|
|
begin
|
|
Case Entidad of
|
|
entArticulosAlmacen : Contenido.Entidad := entArticuloAlmacen;
|
|
entArticulosAlmacenFisico : Contenido.Entidad := entArticuloAlmacenFisico;
|
|
entArticulosAlmacenObra : Contenido.Entidad := entArticuloAlmacenObra;
|
|
end;
|
|
Contenido.Modo := Eliminar;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bBuscarClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
Contenido := TfrBuscarArticuloAlmacen.Create(Self);
|
|
Contenido.Entidad := Self.Entidad;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bListadosClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
Contenido := TfrListadoArticulosAlmacen.Create(Self);
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.RegularizarEntradaClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
Contenido := TfrMovimientoAlmacenes.Create(Self);
|
|
if (Contenido is TRdxFrameMovimientos) then
|
|
begin
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := Entrada;
|
|
(Contenido as TRdxFrameMovimientos).CodigoAlmacenDestino := CodigoAlmacen;
|
|
Contenido.Visible := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.RegularizarSalidaClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
Contenido := TfrMovimientoAlmacenes.Create(Self);
|
|
if (Contenido is TRdxFrameMovimientos) then
|
|
begin
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := Salida;
|
|
(Contenido as TRdxFrameMovimientos).CodigoAlmacenOrigen := CodigoAlmacen;
|
|
Contenido.Visible := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.RecibirEntradaPedidoClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
CaptionModal := 'Lista de pedidos pendientes de recibir';
|
|
ModoModal := Recibir;
|
|
ContenidoModal := TfrPedidosProveedores.Create(Self);
|
|
if VarIsNull(FCodigoPedido) then
|
|
exit;
|
|
|
|
Contenido := TfrMovimientoAlmacenes.Create(Self);
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := EntradaPedido;
|
|
(Contenido as TfrMovimientoAlmacenes).CodigoPedido := FCodigoPedido;
|
|
Contenido.Visible := True;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.DevolverSalidaPedidoClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
CaptionModal := 'Lista de pedidos totalmente recibidos';
|
|
ModoModal := Devolver;
|
|
ContenidoModal := TfrPedidosProveedores.Create(Self);
|
|
if VarIsNull(FCodigoPedido) then
|
|
exit;
|
|
|
|
Contenido := TfrMovimientoAlmacenes.Create(Self);
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := SalidaDevolucion;
|
|
(Contenido as TfrMovimientoAlmacenes).CodigoPedido := FCodigoPedido;
|
|
Contenido.Visible := True;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bTrasladarClick(Sender: TObject);
|
|
begin
|
|
CodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
Contenido := TfrMovimientoAlmacenes.Create(Self);
|
|
if (Contenido is TRdxFrameMovimientos) then
|
|
begin
|
|
Contenido.Entidad := Entidad;
|
|
Contenido.Modo := Traslado;
|
|
(Contenido as TRdxFrameMovimientos).CodigoAlmacenOrigen := CodigoAlmacen;
|
|
Contenido.Visible := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bSeleccionarClick(Sender: TObject);
|
|
begin
|
|
if TablaArticulosAlmacen.RecordCount = 0 then
|
|
begin
|
|
VerMensaje(msgArtNoHayArtAlm);
|
|
exit;
|
|
end;
|
|
|
|
{Codigo almacen no haria falta coger el valor porque ya lo tendríamos,
|
|
porque se inicializa el crearlo el padre y cada vez que se selecciona un
|
|
almacen distinto del combox CodigoAlmacen cambia}
|
|
//FCodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').AsString;
|
|
|
|
if gridArticulosAlmacen.SelectedCount <= 1 then
|
|
FCodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').Value
|
|
else
|
|
ListaArticulos := FListaArticulosAux;
|
|
|
|
{ ESTO NO VALE
|
|
if gridArticulosAlmacen.SelectedCount = 0 then
|
|
FCodigoArticulo := TablaArticulosAlmacen.FieldByName('CODIGOARTICULO').Value
|
|
else
|
|
FListaArticulos := dmTablaArticulosAlmacen.darListaArticulos(gridArticulosAlmacen, @TablaArticulosAlmacen);}
|
|
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bCancelarGuardarClick(Sender: TObject);
|
|
begin
|
|
{Se recupera el almacen inicial que ha sido guardado en la primera asignación
|
|
del CodigoAlmacen del frame, para que no haga frMovimientos todo lo que hace
|
|
cuando el codigo almacen es distinto. No se puede diferenciar desde otro sitio
|
|
cuando se ha dado a seleccionar y cuando a cancelar}
|
|
FCodigoAlmacen := FCodigoAlmacenInicial;
|
|
FCodigoArticulo := Null;
|
|
CloseFrame;
|
|
end;
|
|
|
|
function TfrArticulosAlmacen.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean;
|
|
var
|
|
i : Integer;
|
|
begin
|
|
if not inherited CambiarEntidad(EntidadAnterior, Entidad) then
|
|
Exit;
|
|
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|
|
|
//Limpia la posible lista de almacenes que tuviese
|
|
FListaAlmacenesCodigo.Clear;
|
|
FListaCodigosAlmacen.Clear;
|
|
|
|
case Entidad of
|
|
entArticulosAlmacen : begin
|
|
eAlmacen.Caption := 'Almacén/Obra:';
|
|
bFinalizar.Visible := False;
|
|
BarraEstado.Caption := Entidades.darNombreEntidad(entAlmacen);
|
|
dmTablaAlmacenes.darAlmacenes(EmpresaActiva.Codigo, FListaAlmacenesCodigo,FListaCodigosAlmacen);
|
|
end;
|
|
entArticulosAlmacenFisico : begin
|
|
eAlmacen.Caption := 'Almacén:';
|
|
bFinalizar.Visible := False;
|
|
BarraEstado.Caption := Entidades.darNombreEntidad(entAlmacenFisico);
|
|
dmTablaAlmacenes.darAlmacenesFisicos(EmpresaActiva.Codigo, FListaAlmacenesCodigo,FListaCodigosAlmacen);
|
|
gridArticulosAlmacen.ColumnByFieldName('TOTAL').Destroy;
|
|
end;
|
|
entArticulosAlmacenObra : begin
|
|
eAlmacen.Caption := 'Obra:';
|
|
bFinalizar.Visible := True;
|
|
BarraEstado.Caption := Entidades.darNombreEntidad(entAlmacenObra);
|
|
dmTablaAlmacenes.darAlmacenesObras(EmpresaActiva.Codigo, FListaAlmacenesCodigo,FListaCodigosAlmacen);
|
|
end;
|
|
end;
|
|
|
|
//Limpia la posible lista de almacenes que tuviese
|
|
cbxAlmacen.Items.Clear;
|
|
|
|
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];
|
|
|
|
{Como FCodigoAlmacenInicial solo sirve para guardar el codigo de almacen
|
|
del que se parte cuando se activa una ventana modal, reiniciamos a null su
|
|
valor ya que el codigo que nos interesa es el que establecerá despues de
|
|
la creacion el frame padre, en nuestro caso ArticuloAlmacen}
|
|
FCodigoAlmacenInicial := Null;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.SetCodigoAlmacen(Value: Variant);
|
|
begin
|
|
if (EsCadenaVacia(Value)) then
|
|
Exit;
|
|
|
|
{Se guarda el codigo de almacen que asigna inicialmente el padre}
|
|
if (VarIsNull(FCodigoAlmacenInicial)) then
|
|
FCodigoAlmacenInicial := Value;
|
|
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.VerModal;
|
|
begin
|
|
{ >>>><<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<
|
|
if (ContenidoModal is TfrListarArticulosAlmacen) then
|
|
(ContenidoModal as TfrListarArticulosAlmacen).CodigoAlmacen := CodigoAlmacen;}
|
|
|
|
if (ContenidoModal is TfrFinalizarObra) then
|
|
(ContenidoModal as TfrFinalizarObra).CodigoObra := CodigoAlmacen;
|
|
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.ActualizarBotones;
|
|
begin
|
|
if BaseDatos.IsReadOnly then
|
|
begin
|
|
bEntrada.Enabled := False;
|
|
bSalida.Enabled := False;
|
|
bTrasladar.Enabled := False;
|
|
bEliminar.Enabled := False;
|
|
bConsultar.Enabled := True;
|
|
bBuscar.Enabled := True;
|
|
bListar.Enabled := True;
|
|
Exit;
|
|
end;
|
|
|
|
if TablaArticulosAlmacen.RecordCount= 0 then
|
|
begin
|
|
bEntrada.Enabled := True;
|
|
bSalida.Enabled := False;
|
|
bTrasladar.Enabled := False;
|
|
bConsultar.Enabled := False;
|
|
bEliminar.Enabled := False;
|
|
bBuscar.Enabled := False;
|
|
bListar.Enabled := False;
|
|
end
|
|
else begin
|
|
bEntrada.Enabled := True;
|
|
bSalida.Enabled := True;
|
|
bTrasladar.Enabled := True;
|
|
bConsultar.Enabled := True;
|
|
bEliminar.Enabled := True;
|
|
bBuscar.Enabled := True;
|
|
bListar.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.gridArticulosAlmacenRefreshButton(
|
|
Sender: TObject);
|
|
begin
|
|
//Porque no se va ha cambiar de almacen ya que es solo refresco
|
|
BuscarArticulo;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.bFinalizarClick(Sender: TObject);
|
|
var
|
|
Codigo : String;
|
|
begin
|
|
Codigo := FListaAlmacenesCodigo.Values[cbxAlmacen.Text];
|
|
|
|
CaptionModal := 'Cierre de obra';
|
|
WidthModal := 360;
|
|
HeightModal := 190;
|
|
ModoModal := Emitir;
|
|
ContenidoModal := TfrFinalizarObra.Create(Self);
|
|
|
|
//Para refrescar el grid
|
|
BuscarArticulo;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.gridArticulosAlmacenSelectedCountChange(Sender: TObject);
|
|
var
|
|
IndiceCol : Integer;
|
|
CodArt : String;
|
|
begin
|
|
IndiceCol := gridArticulosAlmacen.ColumnByFieldName('CODIGOARTICULO').Index;
|
|
CodArt := gridArticulosAlmacen.FocusedNode.Strings[IndiceCol];
|
|
|
|
if gridArticulosAlmacen.SelectedCount = 1 then
|
|
FListaArticulosAux.Clear;
|
|
|
|
if gridArticulosAlmacen.FocusedNode.Selected then
|
|
FListaArticulosAux.Add(CodArt)
|
|
else
|
|
FListaArticulosAux.Delete(FListaArticulosAux.IndexOf(CodArt));
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.BusquedaRapidaKeyDown(Sender: TObject;
|
|
var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key = VK_RETURN) and (Modo = Seleccionar) then
|
|
bSeleccionar.Click;
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.CambiarModo(ModoAnterior, Modo: TRdxModo);
|
|
begin
|
|
inherited;
|
|
if Modo = Seleccionar then
|
|
gridArticulosAlmacen.OptionsBehavior := gridArticulosAlmacen.OptionsBehavior + [edgoMultiSelect]
|
|
else
|
|
gridArticulosAlmacen.OptionsBehavior := gridArticulosAlmacen.OptionsBehavior - [edgoMultiSelect];
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.gridArticulosAlmacenDblClick(
|
|
Sender: TObject);
|
|
begin
|
|
if Modo = Seleccionar then
|
|
bSeleccionar.Click
|
|
end;
|
|
|
|
procedure TfrArticulosAlmacen.SetContenido(NuevoFrame: TRdxFrame);
|
|
begin
|
|
inherited;
|
|
if (Contenido is TfrListadoArticulosAlmacen) then
|
|
begin
|
|
case Entidad of
|
|
entArticulosAlmacen : Contenido.Entidad := entAlmacen;
|
|
entArticulosAlmacenFisico : Contenido.Entidad := entAlmacenFisico;
|
|
entArticulosAlmacenObra : Contenido.Entidad := entAlmacenObra;
|
|
end;
|
|
(Contenido as TfrListadoArticulosAlmacen).CodigoAlmacen := CodigoAlmacen;
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|