997 lines
30 KiB
ObjectPascal
997 lines
30 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
Copyright (<EFBFBD>) 2001. Rodax Software.
|
|||
|
|
===============================================================================
|
|||
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|||
|
|
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
|
|||
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|||
|
|
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
|
|||
|
|
bajo el que se suministra.
|
|||
|
|
-----------------------------------------------------------------------------
|
|||
|
|
Web: www.rodax-software.com
|
|||
|
|
===============================================================================
|
|||
|
|
Fecha primera versi<EFBFBD>n: 01-10-2001
|
|||
|
|
Versi<EFBFBD>n actual: 1.0.8
|
|||
|
|
Fecha versi<EFBFBD>n actual: 13-10-2004
|
|||
|
|
===============================================================================
|
|||
|
|
Modificaciones:
|
|||
|
|
|
|||
|
|
Fecha Comentarios
|
|||
|
|
---------------------------------------------------------------------------
|
|||
|
|
08-10-2001 Se ha a<EFBFBD>adido en ActivarModoA<EFBFBD>adir la comprobaci<EFBFBD>n de si es
|
|||
|
|
entidad entAlmacen y si es asi sacar pantalla de elecci<EFBFBD>n de
|
|||
|
|
tipo de almac<EFBFBD>n.
|
|||
|
|
|
|||
|
|
27-11-2001 Se ha modificado CambiarEntidad para que cuando la entidad sea
|
|||
|
|
obra los titulos correspondientes cambien.
|
|||
|
|
|
|||
|
|
07-04-2002 Se ha adaptado a una unica transacci<EFBFBD>n.
|
|||
|
|
|
|||
|
|
24-09-2002 Se produc<EFBFBD>a una excepci<EFBFBD>n si el cursos estaba en el c<EFBFBD>digo
|
|||
|
|
del almac<EFBFBD>n, se pulsaba la tecla 'Esc' y se eleg<EFBFBD>a 'No'.
|
|||
|
|
El frame estaba oculto pero saltaba el evento OnExit del
|
|||
|
|
campo de c<EFBFBD>digo de factura.
|
|||
|
|
|
|||
|
|
21-12-2002 Se ha eliminado un error con el campo 'PROVINCIA'. Al estar
|
|||
|
|
situado en ese campo y dar Esc para salir se puede producir
|
|||
|
|
una excepci<EFBFBD>n.
|
|||
|
|
|
|||
|
|
06-03-2004 Se ha eliminado el tratamiento de perfiles de usuario.
|
|||
|
|
|
|||
|
|
07-03-2004 P272. Adaptaci<EFBFBD>n a multiempresa.
|
|||
|
|
|
|||
|
|
04-10-2004 Cambio CambiarEntidad para que soporte otro color.
|
|||
|
|
|
|||
|
|
13-10-2004 Se a<EFBFBD>ade la lista de presupuestos asociados
|
|||
|
|
===============================================================================
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unit Almacen;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|||
|
|
StdCtrls, ExtCtrls, Db, IBCustomDataSet, Mask, DBCtrls, Buttons, ToolEdit,
|
|||
|
|
IB, IBSQL, IBDatabase, RdxBarras, RdxBotones, RdxCampos, RdxMemo, RdxComboBox,
|
|||
|
|
RdxCheckBox, RdxTitulos, RdxPaneles, Colores, Mensajes, Tipos,
|
|||
|
|
RdxFrameAlmacenes, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit,
|
|||
|
|
cxMaskEdit, cxButtonEdit, dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxDBTLCL;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TfrAlmacen = class(TRdxFrameAlmacenes)
|
|||
|
|
pnlScroll: TRdxScrollPanel;
|
|||
|
|
pnlDatos: TRdxPanel;
|
|||
|
|
ePersona: TLabel;
|
|||
|
|
eTelefono: TLabel;
|
|||
|
|
eCodigoPostal: TLabel;
|
|||
|
|
eProvincia: TLabel;
|
|||
|
|
ePoblacion: TLabel;
|
|||
|
|
eNumero: TLabel;
|
|||
|
|
ePiso: TLabel;
|
|||
|
|
eCalle: TLabel;
|
|||
|
|
eCodigo: TLabel;
|
|||
|
|
cDatosAlmacen: TRdxCabecera;
|
|||
|
|
eNombre: TLabel;
|
|||
|
|
eNombreCliente: TLabel;
|
|||
|
|
eNifCifCliente: TLabel;
|
|||
|
|
eCodigoCliente: TLabel;
|
|||
|
|
Poblacion: TRdxDBEdit;
|
|||
|
|
Provincia: TRdxDBEdit;
|
|||
|
|
Piso: TRdxDBEdit;
|
|||
|
|
Numero: TRdxDBEdit;
|
|||
|
|
Calle: TRdxDBEdit;
|
|||
|
|
PersonaContacto: TRdxDBEdit;
|
|||
|
|
Nombre: TRdxDBEdit;
|
|||
|
|
CodigoPostal: TRdxDBEdit;
|
|||
|
|
Telefono: TRdxDBEdit;
|
|||
|
|
brSimple: TRdxBarraInferior;
|
|||
|
|
bSalir: TRdxBoton;
|
|||
|
|
brDoble: TRdxBarraInferior;
|
|||
|
|
bGuardar: TRdxBoton;
|
|||
|
|
bCancelarGuardar: TRdxBoton;
|
|||
|
|
dsAlmacen: TDataSource;
|
|||
|
|
Titulo: TRdxPanelTituloOperacion;
|
|||
|
|
NomCliente: TRdxDBEdit;
|
|||
|
|
NifCifCliente: TRdxDBEdit;
|
|||
|
|
Codigo: TcxDBButtonEdit;
|
|||
|
|
CodCliente: TcxDBButtonEdit;
|
|||
|
|
pnlListaPresupuestos: TRdxPanel;
|
|||
|
|
bAgragar: TRdxBoton;
|
|||
|
|
pnlGridArticulos: TPanel;
|
|||
|
|
gridDetalles: TdxDBGrid;
|
|||
|
|
RdxPanel2: TRdxPanel;
|
|||
|
|
eListaProveedores: TLabel;
|
|||
|
|
dsObrasPresupuestos: TDataSource;
|
|||
|
|
pnlBarraGrid: TRdxPanel;
|
|||
|
|
bEliminar: TRdxBoton;
|
|||
|
|
bElminarTodo: TRdxBoton;
|
|||
|
|
bAnadir: TRdxBoton;
|
|||
|
|
eClienteAsociado: TLabel;
|
|||
|
|
procedure CodigoPropertiesValidate(Sender: TObject;
|
|||
|
|
var DisplayValue: Variant; var ErrorText: TCaption;
|
|||
|
|
var Error: Boolean);
|
|||
|
|
procedure CodigoPropertiesButtonClick(Sender: TObject;
|
|||
|
|
AButtonIndex: Integer);
|
|||
|
|
procedure CodClientePropertiesButtonClick(Sender: TObject;
|
|||
|
|
AButtonIndex: Integer);
|
|||
|
|
procedure CodClientePropertiesValidate(Sender: TObject;
|
|||
|
|
var DisplayValue: Variant; var ErrorText: TCaption;
|
|||
|
|
var Error: Boolean);
|
|||
|
|
procedure ProvinciaButtonClick(Sender: TObject);
|
|||
|
|
procedure PoblacionButtonClick(Sender: TObject);
|
|||
|
|
procedure bAceptarClick(Sender: TObject);
|
|||
|
|
procedure bCancelarGuardarClick(Sender: TObject);
|
|||
|
|
procedure bSalirClick(Sender: TObject);
|
|||
|
|
procedure ProvinciaSetText(Sender: TField; const Text: String);
|
|||
|
|
procedure bAnadirClick(Sender: TObject);
|
|||
|
|
procedure bEliminarClick(Sender: TObject);
|
|||
|
|
procedure bElminarTodoClick(Sender: TObject);
|
|||
|
|
private
|
|||
|
|
FCodigoProvincia : Variant;
|
|||
|
|
FCodigoPoblacion : Variant;
|
|||
|
|
FCodigoCliente : Variant;
|
|||
|
|
|
|||
|
|
FTablaObrasPresupuestos : TIBDataSet;
|
|||
|
|
FCodigoPresupuesto: Variant;
|
|||
|
|
procedure SetCodigoPresupuesto(const Value: Variant);
|
|||
|
|
procedure limpiarCampos;
|
|||
|
|
protected
|
|||
|
|
procedure ActivarModoAnadir; override;
|
|||
|
|
procedure ActivarModoModificar; override;
|
|||
|
|
procedure ActivarModoConsultar; override;
|
|||
|
|
procedure ActivarModoEliminar; override;
|
|||
|
|
function AnadirDatos : Boolean; override;
|
|||
|
|
function ModificarDatos : Boolean; override;
|
|||
|
|
function EliminarDatos : Boolean; override;
|
|||
|
|
function CancelarAnadir : Boolean; override;
|
|||
|
|
function CancelarModificar : Boolean; override;
|
|||
|
|
function CancelarEliminar : Boolean; override;
|
|||
|
|
procedure SetCodigoProvincia (Value : Variant); virtual;
|
|||
|
|
procedure SetCodigoPoblacion (Value : Variant); virtual;
|
|||
|
|
procedure SetCodigoCliente (Value : Variant);
|
|||
|
|
procedure BuscarAlmacen; override;
|
|||
|
|
procedure BuscarCliente;
|
|||
|
|
procedure VerModal; override;
|
|||
|
|
procedure FreeContenido; override;
|
|||
|
|
function ComprobarDatos: Boolean; override;
|
|||
|
|
function CambiarEntidad (EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
|
|||
|
|
public
|
|||
|
|
property CodigoProvincia : Variant read FCodigoProvincia write SetCodigoProvincia;
|
|||
|
|
property CodigoPoblacion : Variant read FCodigoPoblacion write SetCodigoPoblacion;
|
|||
|
|
property CodigoCliente : Variant read FCodigoCliente write SetCodigoCliente;
|
|||
|
|
property CodigoPresupuesto : Variant read FCodigoPresupuesto write SetCodigoPresupuesto;
|
|||
|
|
|
|||
|
|
constructor Create (AOwner : TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
|
|||
|
|
procedure GridBotonCodigoPresupuestoClick(Sender: TObject);
|
|||
|
|
published
|
|||
|
|
property TablaAlmacenes;
|
|||
|
|
property CodigoAlmacen;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
frAlmacen: TfrAlmacen;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
{$R *.DFM}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
BaseDatos, TablaAlmacenes, Almacenes, RdxFrameProvincias, Provincias,
|
|||
|
|
TablaProvincias, RdxFramePoblaciones, Poblaciones, RdxFrameClientes,
|
|||
|
|
Clientes, TablaClientes, TablaPoblaciones, TablaPedidosProveedor,
|
|||
|
|
ElegirTipoAlmacen, Excepciones, IBErrorCodes, Configuracion, NumFunc,
|
|||
|
|
RdxEmpresaActiva, StrFunc, Literales, PresupuestosClientes, RdxFramePresupuestos;
|
|||
|
|
|
|||
|
|
constructor TfrAlmacen.Create (AOwner : TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited Create(AOwner);
|
|||
|
|
FCodigoProvincia := NULL;
|
|||
|
|
FCodigoPoblacion := NULL;
|
|||
|
|
FCodigoCliente := NULL;
|
|||
|
|
|
|||
|
|
BaseDatos := dmBaseDatos.BD;
|
|||
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|||
|
|
TablaAlmacenes := TIBDataSet.Create(Self);
|
|||
|
|
dsAlmacen.DataSet := TablaAlmacenes;
|
|||
|
|
|
|||
|
|
//No asignamos ninguna sentencia sql hasta que no se le asigna una entidad
|
|||
|
|
with TablaAlmacenes do
|
|||
|
|
begin
|
|||
|
|
Database := BaseDatos;
|
|||
|
|
Transaction := Transaccion;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
FTablaObrasPresupuestos := TIBDataSet.Create(Self);
|
|||
|
|
dsObrasPresupuestos.DataSet := FTablaObrasPresupuestos;
|
|||
|
|
with FTablaObrasPresupuestos do
|
|||
|
|
begin
|
|||
|
|
Database := BaseDatos;
|
|||
|
|
Transaction := Transaccion;
|
|||
|
|
SelectSQL.Assign(dmTablaAlmacenes.sqlConsultarPresupuesto);
|
|||
|
|
InsertSQL.Assign(dmTablaAlmacenes.sqlInsertarPresupuesto);
|
|||
|
|
ModifySQL.Assign(dmTablaAlmacenes.sqlModificarPresupuesto);
|
|||
|
|
DeleteSQL.Assign(dmTablaAlmacenes.sqlEliminarPresupuesto);
|
|||
|
|
RefreshSQL.Assign(dmTablaAlmacenes.sqlConsultarPresupuesto);
|
|||
|
|
end;
|
|||
|
|
dmTablaAlmacenes.InicializarGridDetallesPresupuestos(gridDetalles);
|
|||
|
|
|
|||
|
|
Entidad := entAlmacenFisico;
|
|||
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TfrAlmacen.Destroy;
|
|||
|
|
begin
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
TablaAlmacenes.UnPrepare;
|
|||
|
|
TablaAlmacenes.Free;
|
|||
|
|
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
FTablaObrasPresupuestos.UnPrepare;
|
|||
|
|
FTablaObrasPresupuestos.Free;
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.BuscarAlmacen;
|
|||
|
|
begin
|
|||
|
|
if Transaccion = NIL then
|
|||
|
|
exit;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
|
|||
|
|
// Buscar la fila a tratar si es necesario
|
|||
|
|
if not VarIsNull(CodigoAlmacen) then
|
|||
|
|
TablaAlmacenes.Params.ByName('CODIGO').AsString := CodigoAlmacen;
|
|||
|
|
TablaAlmacenes.ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
TablaAlmacenes.Prepare;
|
|||
|
|
TablaAlmacenes.Open;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.SetCodigoProvincia(Value: Variant);
|
|||
|
|
begin
|
|||
|
|
if (not VarIsNull(FCodigoProvincia)) and (FCodigoProvincia = Value) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
if (not VarIsNull(Value)) then
|
|||
|
|
begin
|
|||
|
|
FCodigoProvincia := Value;
|
|||
|
|
Provincia.Field.AsString := dmTablaProvincias.darNombreProvincia(FCodigoProvincia);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.SetCodigoPoblacion(Value: Variant);
|
|||
|
|
begin
|
|||
|
|
if (not VarIsNull(FCodigoPoblacion)) and (FCodigoPoblacion = Value) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
if (not VarIsNull(Value)) then
|
|||
|
|
begin
|
|||
|
|
FCodigoPoblacion := Value;
|
|||
|
|
Poblacion.Field.AsString := dmTablaPoblaciones.darNombrePoblacion(FCodigoProvincia, FCodigoPoblacion);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.SetCodigoCliente(Value: Variant);
|
|||
|
|
begin
|
|||
|
|
if (not VarIsNull(FCodigoCliente)) and (FCodigoCliente = Value) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
if (not VarIsNull(Value)) then
|
|||
|
|
begin
|
|||
|
|
FCodigoCliente := Value;
|
|||
|
|
CodCliente.DataBinding.Field.AsString := Value;
|
|||
|
|
BuscarCliente;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
limpiarCampos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.BuscarCliente;
|
|||
|
|
var
|
|||
|
|
Datos: TDatosCliente;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
Datos := TDatosCliente.Create;
|
|||
|
|
Datos.Codigo := CodigoCliente;
|
|||
|
|
|
|||
|
|
if not dmTablaClientes.darDatosCliente(Datos) then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgCliCodCliNoExiste, [CodCliente.Text]);
|
|||
|
|
CodCliente.SetFocus;
|
|||
|
|
exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
NifCifCliente.Field.asString := Datos.Nifcif;
|
|||
|
|
NomCliente.Field.asString := Datos.Nombre;
|
|||
|
|
|
|||
|
|
if (VerMensajePreguntaSN(msgAlmDeseaRellCli) = IDYES) then
|
|||
|
|
begin
|
|||
|
|
Calle.Field.asString := Datos.Calle;
|
|||
|
|
Numero.Field.asString := Datos.Numero;
|
|||
|
|
Piso.Field.asString := Datos.Piso;
|
|||
|
|
Provincia.Field.asString := Datos.Provincia;
|
|||
|
|
CodigoPostal.Field.asString := Datos.CodigoPostal;
|
|||
|
|
Poblacion.Field.asString := Datos.Poblacion;
|
|||
|
|
Telefono.Field.asString := Datos.Telefono1;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
Datos.Free;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.FreeContenido;
|
|||
|
|
begin
|
|||
|
|
if (ContenidoModal is TRdxFrameAlmacenes) then begin
|
|||
|
|
CodigoAlmacen := (ContenidoModal as TRdxFrameAlmacenes).CodigoAlmacen;
|
|||
|
|
ActivarModo;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (ContenidoModal is TRdxFrameProvincias) then
|
|||
|
|
CodigoProvincia := (ContenidoModal as TRdxFrameProvincias).CodigoProvincia;
|
|||
|
|
if (ContenidoModal is TRdxFramePoblaciones) then begin
|
|||
|
|
CodigoProvincia := (ContenidoModal as TRdxFramePoblaciones).CodigoProvincia;
|
|||
|
|
CodigoPoblacion := (ContenidoModal as TRdxFramePoblaciones).CodigoPoblacion;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (ContenidoModal is TRdxFrameClientes) then begin
|
|||
|
|
CodigoCliente := (ContenidoModal as TRdxFrameClientes).CodigoCliente;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (ContenidoModal is TRdxFramePresupuestos) then begin
|
|||
|
|
CodigoPresupuesto := (ContenidoModal as TRdxFramePresupuestos).CodigoPresupuesto;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (ContenidoModal is TfrElegirTipoAlmacen) then begin
|
|||
|
|
if(ContenidoModal as TfrElegirTipoAlmacen).TipoFisico
|
|||
|
|
then Entidad := entAlmacenFisico
|
|||
|
|
else Entidad := entAlmacenObra;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
inherited FreeContenido;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.VerModal;
|
|||
|
|
begin
|
|||
|
|
if (ContenidoModal is TRdxFramePoblaciones) then
|
|||
|
|
(ContenidoModal as TRdxFramePoblaciones).CodigoProvincia := CodigoProvincia;
|
|||
|
|
inherited VerModal;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.AnadirDatos : Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Post;
|
|||
|
|
TablaAlmacenes.ApplyUpdates;
|
|||
|
|
FTablaObrasPresupuestos.ApplyUpdates;
|
|||
|
|
dmTablaAlmacenes.incrementarCodigo;
|
|||
|
|
FCodigoAlmacen := TablaAlmacenes.FieldByName('CODIGO').AsString;
|
|||
|
|
|
|||
|
|
Commit;
|
|||
|
|
|
|||
|
|
TablaAlmacenes.CachedUpdates := False;
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
FTablaObrasPresupuestos.CachedUpdates := False;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do begin
|
|||
|
|
if E.IBErrorCode = isc_unique_key_violation then begin
|
|||
|
|
VerMensajeFmt(msgAlmCodAlmRepetido, [Codigo.DataBinding.Field.AsString]);
|
|||
|
|
TablaAlmacenes.Edit;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.ModificarDatos : Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Post;
|
|||
|
|
FTablaObrasPresupuestos.ApplyUpdates;
|
|||
|
|
Commit;
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
FTablaObrasPresupuestos.CachedUpdates := False;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.EliminarDatos : Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Delete;
|
|||
|
|
Commit;
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
begin
|
|||
|
|
case E.IBErrorCode of
|
|||
|
|
isc_lock_conflict : VerMensajeFmt(msgAlmBloqueado, [Codigo.DataBinding.Field.AsString]);
|
|||
|
|
else
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.activarModoAnadir;
|
|||
|
|
begin
|
|||
|
|
{Si la entidad asignada es entAlmacenes,quiere decir que el frame ha sido llamado
|
|||
|
|
desde el frame pedido de proveedor, y por tanto hay que exigir que tipo de
|
|||
|
|
almacen desea dar de alta}
|
|||
|
|
if entidad = entAlmacen then
|
|||
|
|
begin
|
|||
|
|
CaptionModal := 'A<>adir almac<61>n';
|
|||
|
|
WidthModal := 350;
|
|||
|
|
HeightModal := 160;
|
|||
|
|
ModoModal := Emitir;
|
|||
|
|
ContenidoModal := TfrElegirTipoAlmacen.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
CodCliente.Properties.Buttons[0].Visible := True;
|
|||
|
|
CodCliente.Properties.ReadOnly := False;
|
|||
|
|
CodCliente.Properties.OnValidate := CodClientePropertiesValidate;
|
|||
|
|
|
|||
|
|
dsAlmacen.AutoEdit := True;
|
|||
|
|
Codigo.Properties.Buttons[0].Visible := False;
|
|||
|
|
Codigo.Properties.ReadOnly := False;
|
|||
|
|
Codigo.Properties.OnValidate := CodigoPropertiesValidate;
|
|||
|
|
Provincia.VerBoton := True;
|
|||
|
|
Poblacion.VerBoton := True;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
TablaAlmacenes.CachedUpdates := True;
|
|||
|
|
TablaAlmacenes.Open;
|
|||
|
|
TablaAlmacenes.FieldByName('PROVINCIA').OnSetText := ProvinciaSetText;
|
|||
|
|
TablaAlmacenes.Insert;
|
|||
|
|
TablaAlmacenes.FieldByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
//Para que no detecte que el campo not null Tipo esta vacio
|
|||
|
|
TablaAlmacenes.FieldByName('TIPO').asString := '-';
|
|||
|
|
Codigo.DataBinding.Field.asString := dmTablaAlmacenes.darNuevoCodigo;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := True;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
FTablaObrasPresupuestos.CachedUpdates := True;
|
|||
|
|
FTablaObrasPresupuestos.Open;
|
|||
|
|
|
|||
|
|
ActivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
{ Inicializar la tabla de detalles }
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOPRESUPUESTO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := GridBotonCodigoPresupuestoClick;
|
|||
|
|
|
|||
|
|
Visible := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.activarModoModificar;
|
|||
|
|
begin
|
|||
|
|
CodCliente.Properties.Buttons[0].Visible := True;
|
|||
|
|
CodCliente.Properties.ReadOnly := False;
|
|||
|
|
CodCliente.Properties.OnValidate := CodClientePropertiesValidate;
|
|||
|
|
|
|||
|
|
dsAlmacen.AutoEdit := True;
|
|||
|
|
Codigo.Properties.Buttons[0].Visible := True;
|
|||
|
|
Codigo.Properties.ReadOnly := True;
|
|||
|
|
Codigo.Properties.OnValidate := nil;
|
|||
|
|
Provincia.VerBoton := True;
|
|||
|
|
Poblacion.VerBoton := True;
|
|||
|
|
// Para que no haga dos accesos a la tabla cuando es consulta
|
|||
|
|
FCodigoProvincia := dmTablaProvincias.darCodigoProvincia(Provincia.Text);
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Open;
|
|||
|
|
TablaAlmacenes.FieldByName('PROVINCIA').OnSetText := ProvinciaSetText;
|
|||
|
|
if TablaAlmacenes.RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgAlmNoExisteAlm, [CodigoAlmacen]);
|
|||
|
|
CancelarModificar;
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
TablaAlmacenes.Edit;
|
|||
|
|
TablaAlmacenes.Post;
|
|||
|
|
TablaAlmacenes.Edit;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := True;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
FTablaObrasPresupuestos.CachedUpdates := True;
|
|||
|
|
FTablaObrasPresupuestos.ParamByName('CODIGOEMPRESA').AsString := EmpresaActiva.Codigo;
|
|||
|
|
FTablaObrasPresupuestos.ParamByName('CODIGOALMACEN').AsString := CodigoAlmacen;
|
|||
|
|
FTablaObrasPresupuestos.Prepare;
|
|||
|
|
FTablaObrasPresupuestos.Open;
|
|||
|
|
|
|||
|
|
ActivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
{ Inicializar la tabla de detalles }
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOPRESUPUESTO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := GridBotonCodigoPresupuestoClick;
|
|||
|
|
|
|||
|
|
Visible := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
begin
|
|||
|
|
case E.IBErrorCode of
|
|||
|
|
isc_lock_conflict : begin
|
|||
|
|
VerMensajeFmt(msgAlmBloqueado, [CodigoAlmacen]);
|
|||
|
|
CancelarModificar;
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.activarModoConsultar;
|
|||
|
|
begin
|
|||
|
|
CodCliente.Properties.Buttons[0].Visible := False;
|
|||
|
|
CodCliente.Properties.ReadOnly := True;
|
|||
|
|
CodCliente.Properties.OnValidate := Nil;
|
|||
|
|
|
|||
|
|
dsAlmacen.AutoEdit := False;
|
|||
|
|
Codigo.Properties.Buttons[0].Visible := True;
|
|||
|
|
Codigo.Properties.OnValidate := nil;
|
|||
|
|
|
|||
|
|
Provincia.OnExit := nil;
|
|||
|
|
Provincia.VerBoton := False;
|
|||
|
|
Poblacion.VerBoton := False;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Open;
|
|||
|
|
if TablaAlmacenes.RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgAlmNoExisteAlm, [CodigoAlmacen]);
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
TablaAlmacenes.Cancel;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := False;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
FTablaObrasPresupuestos.ParamByName('CODIGOEMPRESA').AsString := EmpresaActiva.Codigo;
|
|||
|
|
FTablaObrasPresupuestos.ParamByName('CODIGOALMACEN').AsString := CodigoAlmacen;
|
|||
|
|
FTablaObrasPresupuestos.Prepare;
|
|||
|
|
FTablaObrasPresupuestos.Open;
|
|||
|
|
|
|||
|
|
DesactivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
{ Inicializar la tabla de detalles }
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOPRESUPUESTO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := Nil;
|
|||
|
|
|
|||
|
|
Visible := True;
|
|||
|
|
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.activarModoEliminar;
|
|||
|
|
begin
|
|||
|
|
CodCliente.Properties.Buttons[0].Visible := False;
|
|||
|
|
CodCliente.Properties.ReadOnly := True;
|
|||
|
|
CodCliente.Properties.OnValidate := Nil;
|
|||
|
|
|
|||
|
|
dsAlmacen.AutoEdit := False;
|
|||
|
|
Codigo.Properties.Buttons[0].Visible := True;
|
|||
|
|
Codigo.Properties.OnValidate := nil;
|
|||
|
|
|
|||
|
|
Provincia.OnExit := nil;
|
|||
|
|
Provincia.VerBoton := False;
|
|||
|
|
Poblacion.VerBoton := False;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.Open;
|
|||
|
|
if TablaAlmacenes.RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgAlmNoExisteAlm, [CodigoAlmacen]);
|
|||
|
|
CancelarEliminar;
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
TablaAlmacenes.Cancel;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := False;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
FTablaObrasPresupuestos.ParamByName('CODIGOEMPRESA').AsString := EmpresaActiva.Codigo;
|
|||
|
|
FTablaObrasPresupuestos.ParamByName('CODIGOALMACEN').AsString := CodigoAlmacen;
|
|||
|
|
FTablaObrasPresupuestos.Prepare;
|
|||
|
|
FTablaObrasPresupuestos.Open;
|
|||
|
|
|
|||
|
|
DesactivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
{ Inicializar la tabla de detalles }
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOPRESUPUESTO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := Nil;
|
|||
|
|
|
|||
|
|
Visible := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.ProvinciaButtonClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CaptionModal := 'Lista de provincias';
|
|||
|
|
WidthModal := 280;
|
|||
|
|
HeightModal := 460;
|
|||
|
|
ContenidoModal := TfrProvincias.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.PoblacionButtonClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (VarIsNull(CodigoProvincia)) then begin
|
|||
|
|
VerMensaje(msgSinProvincia);
|
|||
|
|
Provincia.SetFocus;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
CaptionModal := Format(msgListaPoblaciones, [Provincia.Text]);
|
|||
|
|
WidthModal := 280;
|
|||
|
|
HeightModal := 460;
|
|||
|
|
ContenidoModal := TfrPoblaciones.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.bAceptarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (RealizarOperacion) then
|
|||
|
|
CloseFrame;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.CancelarAnadir: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaAlmacenes.CancelUpdates;
|
|||
|
|
FTablaObrasPresupuestos.CancelUpdates;
|
|||
|
|
RollBack;
|
|||
|
|
TablaAlmacenes.CachedUpdates := False;
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
FTablaObrasPresupuestos.CachedUpdates := False;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.CancelarEliminar: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
RollBack;
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.CancelarModificar: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
FTablaObrasPresupuestos.CancelUpdates;
|
|||
|
|
RollBack;
|
|||
|
|
TablaAlmacenes.Close;
|
|||
|
|
FTablaObrasPresupuestos.CachedUpdates := False;
|
|||
|
|
FTablaObrasPresupuestos.Close;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.bSalirClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
Rollback;
|
|||
|
|
CloseFrame;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.bCancelarGuardarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (TratarCambios = IDOK) then
|
|||
|
|
CloseFrame;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean;
|
|||
|
|
begin
|
|||
|
|
{ Si se realiza el cambio de entidad en carga del dfm o no se puede cambiar
|
|||
|
|
de entidad porque no se puede liberar el contenido del frame al que se
|
|||
|
|
cambia de entidad, no se hace nada}
|
|||
|
|
if not inherited CambiarEntidad(EntidadAnterior, Entidad) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|||
|
|
|
|||
|
|
with TablaAlmacenes do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
SelectSQL.Assign(dmTablaAlmacenes.sqlConsultar);
|
|||
|
|
ModifySQL.Assign(dmTablaAlmacenes.sqlModificar);
|
|||
|
|
DeleteSQL.Assign(dmTablaAlmacenes.sqlEliminar);
|
|||
|
|
RefreshSQL.Assign(dmTablaAlmacenes.sqlConsultar);
|
|||
|
|
|
|||
|
|
Case Entidad of
|
|||
|
|
entAlmacenFisico : begin
|
|||
|
|
InsertSQL.Assign(dmTablaAlmacenes.sqlInsertarFisicos);
|
|||
|
|
pnlListaPresupuestos.Visible := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
entAlmacenObra : begin
|
|||
|
|
InsertSQL.Assign(dmTablaAlmacenes.sqlInsertarObras);
|
|||
|
|
cDatosAlmacen.Caption := 'Datos de obra';
|
|||
|
|
pnlListaPresupuestos.Visible := True;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlmacen.ComprobarDatos: Boolean;
|
|||
|
|
var
|
|||
|
|
CodigoPedido : String;
|
|||
|
|
Situacion : String;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
CodigoPedido := '';
|
|||
|
|
Situacion := '';
|
|||
|
|
|
|||
|
|
if Length(Trim(Nombre.Text)) = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensaje(msgAlmFaltaNombre);
|
|||
|
|
Nombre.SetFocus;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (Modo = Eliminar) then
|
|||
|
|
begin
|
|||
|
|
if dmTablaAlmacenes.HayExistenciasEnAlmacen(EmpresaActiva.Codigo, CodigoAlmacen) then
|
|||
|
|
begin
|
|||
|
|
VerMensaje(msgAlmTieneExis);
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
if dmTablaPedidosProveedor.existeAlmacenEnPedido(EmpresaActiva.Codigo, CodigoAlmacen, CodigoPedido, Situacion) then
|
|||
|
|
begin
|
|||
|
|
if Situacion = 'Totalmente recibido'
|
|||
|
|
then VerMensajeFmt(msgAlmCodAlmTienePedido,[CodigoPedido,Situacion])
|
|||
|
|
else VerMensajeFmt(msgAlmCodAlmTienePedidoPendiente,[CodigoPedido,Situacion]);
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
Result := True;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.ProvinciaSetText(Sender: TField; const Text: String);
|
|||
|
|
begin
|
|||
|
|
FCodigoProvincia := dmTablaProvincias.darCodigoProvincia(Text);
|
|||
|
|
Sender.AsString := Text;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.CodigoPropertiesValidate(Sender: TObject;
|
|||
|
|
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|||
|
|
var
|
|||
|
|
Valor : Variant;
|
|||
|
|
begin
|
|||
|
|
if (Modo <> Anadir) or (Visible = false) then
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
if EsCadenaVacia(DisplayValue) then
|
|||
|
|
DisplayValue := dmTablaAlmacenes.darNuevoCodigo;
|
|||
|
|
|
|||
|
|
if (dmTablaAlmacenes.ValidarCodigo(DisplayValue)) then
|
|||
|
|
begin
|
|||
|
|
|
|||
|
|
//Comprueba que le numero es lo sufucientemente peque<75>o para ser un entero
|
|||
|
|
if not EsSmallInt(DisplayValue) then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgAlmCodAlmIncorrecto,[DisplayValue]);
|
|||
|
|
Codigo.SetFocus;
|
|||
|
|
end
|
|||
|
|
else if (dmTablaAlmacenes.ExisteAlmacen(EmpresaActiva.Codigo, DisplayValue)) then begin
|
|||
|
|
VerMensajeFmt(msgAlmCodAlmRepetido, [DisplayValue]);
|
|||
|
|
Codigo.SetFocus;
|
|||
|
|
end;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
VerMensajeFmt(msgAlmCodAlmIncorrecto, [DisplayValue]);
|
|||
|
|
Codigo.SetFocus;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.CodigoPropertiesButtonClick(Sender: TObject;
|
|||
|
|
AButtonIndex: Integer);
|
|||
|
|
begin
|
|||
|
|
if (TratarCambios = IDCANCEL) then
|
|||
|
|
exit;
|
|||
|
|
{ Esto es porque en modo 'Modificar' hacemos un cambio y pulsamos
|
|||
|
|
este bot<EFBFBD>n se cierra la tabla y si en el frame hijo (el del grid) damos
|
|||
|
|
a cancelar, FCodigoAlmacen es NULL y da error al activar modo porque
|
|||
|
|
no se inicializa los par<EFBFBD>metros de la sql. Lo hace BuscarAlmacenes. }
|
|||
|
|
if not TablaAlmacenes.Active then
|
|||
|
|
BuscarAlmacen;
|
|||
|
|
EntidadModal := Entidad;
|
|||
|
|
ContenidoModal := TfrAlmacenes.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.CodClientePropertiesButtonClick(Sender: TObject;
|
|||
|
|
AButtonIndex: Integer);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
ContenidoModal := TfrClientes.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.CodClientePropertiesValidate(Sender: TObject;
|
|||
|
|
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|||
|
|
var
|
|||
|
|
Valor : String;
|
|||
|
|
begin
|
|||
|
|
//Por si se deja vacio el campo
|
|||
|
|
if EsCadenaVacia(DisplayValue) then
|
|||
|
|
begin
|
|||
|
|
limpiarCampos;
|
|||
|
|
exit
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (dmTablaClientes.validarCodigo(DisplayValue)) then
|
|||
|
|
//Comprueba que le numero es lo sufucientemente peque<75>o para ser un entero
|
|||
|
|
if not EsInteger(DisplayValue) then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgCliCodCliIncorrecto,[DisplayValue]);
|
|||
|
|
CodCliente.Text:= '0';
|
|||
|
|
CodCliente.SetFocus;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
CodigoCliente := dmTablaClientes.formatearCodigo(DisplayValue)
|
|||
|
|
else
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgCliCodCliIncorrecto, [DisplayValue]);
|
|||
|
|
CodCliente.SetFocus;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.bAnadirClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
with FTablaObrasPresupuestos do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
Next;
|
|||
|
|
if EOF then
|
|||
|
|
Append
|
|||
|
|
else
|
|||
|
|
Insert;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
gridDetalles.SetFocus;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.bEliminarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (VerMensajePregunta(msgDeseaBorrar) <> IDYES) then
|
|||
|
|
Exit;
|
|||
|
|
if FTablaObrasPresupuestos.RecordCount = 0 then begin
|
|||
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|||
|
|
recien creado }
|
|||
|
|
FTablaObrasPresupuestos.Cancel;
|
|||
|
|
exit
|
|||
|
|
end;
|
|||
|
|
try
|
|||
|
|
FTablaObrasPresupuestos.Delete;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.GridBotonCodigoPresupuestoClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
// TablaDetallesMem.Edit;
|
|||
|
|
WidthModal := 900;
|
|||
|
|
HeightModal := 700;
|
|||
|
|
ContenidoModal := TfrPresupuestosClientes.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.SetCodigoPresupuesto(const Value: Variant);
|
|||
|
|
begin
|
|||
|
|
FCodigoPresupuesto := Value;
|
|||
|
|
FTablaObrasPresupuestos.Edit;
|
|||
|
|
FTablaObrasPresupuestos.FieldByName('CODIGOPRESUPUESTO').AsString := FCodigoPresupuesto;
|
|||
|
|
FTablaObrasPresupuestos.FieldByName('CODIGOALMACEN').AsString := TablaAlmacenes.FieldByName('CODIGO').AsString;
|
|||
|
|
FTablaObrasPresupuestos.FieldByName('CODIGOEMPRESA').AsString := EmpresaActiva.Codigo;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.bElminarTodoClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (VerMensajePregunta(msgDeseaBorrarTodo) <> IDYES) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
FTablaObrasPresupuestos.DisableControls;
|
|||
|
|
FTablaObrasPresupuestos.Last;
|
|||
|
|
while FTablaObrasPresupuestos.RecordCount > 0 do begin
|
|||
|
|
FTablaObrasPresupuestos.Delete;
|
|||
|
|
FTablaObrasPresupuestos.Prior;
|
|||
|
|
end;
|
|||
|
|
FTablaObrasPresupuestos.EnableControls;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlmacen.limpiarCampos;
|
|||
|
|
begin
|
|||
|
|
CodCliente.DataBinding.Field.asString := '';
|
|||
|
|
NifCifCliente.Field.asString := '';
|
|||
|
|
NomCliente.Field.asString := '';
|
|||
|
|
Calle.Field.asString := '';
|
|||
|
|
Numero.Field.asString := '';
|
|||
|
|
Piso.Field.asString := '';
|
|||
|
|
Provincia.Field.asString := '';
|
|||
|
|
CodigoPostal.Field.asString := '';
|
|||
|
|
Poblacion.Field.asString := '';
|
|||
|
|
Telefono.Field.asString := '';
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|