1069 lines
29 KiB
ObjectPascal
1069 lines
29 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: 04-10-2004
|
|||
|
|
Versi<EFBFBD>n actual: 1.0.0
|
|||
|
|
Fecha versi<EFBFBD>n actual: 04-10-2004
|
|||
|
|
===============================================================================
|
|||
|
|
Modificaciones:
|
|||
|
|
|
|||
|
|
Fecha Comentarios
|
|||
|
|
---------------------------------------------------------------------------
|
|||
|
|
===============================================================================
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unit AlbaranInstalador;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|||
|
|
RdxFrameAlbaranes, Grids, DBGrids, RdxBotones, RdxTitulos, StdCtrls,
|
|||
|
|
RdxMemo, RdxCampos, ExtCtrls, Tipos, RxMemDS,
|
|||
|
|
RdxComboBox, RdxPaneles, RdxBarras, RXDBCtrl, ComCtrls, Configuracion,
|
|||
|
|
dxCntner, dxEditor, dxExEdtr, dxEdLib, dxDBELib, Db, dxTL, dxDBCtrl,
|
|||
|
|
dxDBGrid, RdxPageControl, cxControls, cxContainer, cxEdit, cxTextEdit,
|
|||
|
|
cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, cxButtonEdit;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TfrAlbaranInstalador = class(TRdxFrameAlbaranes)
|
|||
|
|
brSalir: TRdxBarraInferior;
|
|||
|
|
bSalir: TRdxBoton;
|
|||
|
|
brGuardar: TRdxBarraInferior;
|
|||
|
|
bGuardar: TRdxBoton;
|
|||
|
|
bCancelar: TRdxBoton;
|
|||
|
|
pnlScroll: TRdxScrollPanel;
|
|||
|
|
pnlAlbaran: TRdxPanel;
|
|||
|
|
cDatosAlbaran: TRdxCabecera;
|
|||
|
|
eCodigo: TLabel;
|
|||
|
|
Codigo: TRdxDBEdit;
|
|||
|
|
eFechaAlta: TLabel;
|
|||
|
|
eUsuario: TLabel;
|
|||
|
|
Usuario: TRdxDBEdit;
|
|||
|
|
pnlTitulo: TRdxPanelTituloOperacion;
|
|||
|
|
dsAlbaran: TDataSource;
|
|||
|
|
dsDetallesAlbaran: TDataSource;
|
|||
|
|
FechaAlta: TcxDBDateEdit;
|
|||
|
|
eNombre: TLabel;
|
|||
|
|
Nombre: TRdxDBEdit;
|
|||
|
|
eTelefono1: TLabel;
|
|||
|
|
Telefono: TRdxDBEdit;
|
|||
|
|
CodInstalador: TcxDBButtonEdit;
|
|||
|
|
pnlGridArticulos: TPanel;
|
|||
|
|
pnlBarraGrid: TRdxPanel;
|
|||
|
|
bAnadir: TRdxBoton;
|
|||
|
|
bEliminar: TRdxBoton;
|
|||
|
|
bEliminarTodo: TRdxBoton;
|
|||
|
|
gridDetalles: TdxDBGrid;
|
|||
|
|
pnlImporteAlbaran: TRdxPanel;
|
|||
|
|
procedure CodigoButtonClick(Sender: TObject);
|
|||
|
|
procedure CodigoExit(Sender: TObject);
|
|||
|
|
procedure bAnadirClick(Sender: TObject);
|
|||
|
|
procedure bEliminarClick(Sender: TObject);
|
|||
|
|
procedure bEliminarTodoClick(Sender: TObject);
|
|||
|
|
procedure bSalirClick(Sender: TObject);
|
|||
|
|
procedure bGuardarClick(Sender: TObject);
|
|||
|
|
procedure bCancelarClick(Sender: TObject);
|
|||
|
|
procedure NombreButtonClick(Sender: TObject);
|
|||
|
|
procedure NombreExit(Sender: TObject);
|
|||
|
|
private
|
|||
|
|
FCodigoInstalador : Variant;
|
|||
|
|
FCodigoArticulo : Variant;
|
|||
|
|
FTablaDetallesMem : TRxMemoryData;
|
|||
|
|
procedure ActivarEventosCampos;
|
|||
|
|
procedure BorrarDetalles;
|
|||
|
|
procedure BorrarDetallesIB;
|
|||
|
|
procedure SalvarDetalles;
|
|||
|
|
procedure CargarDetalles;
|
|||
|
|
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;
|
|||
|
|
function ComprobarDatos : Boolean; override;
|
|||
|
|
procedure VerModal; override;
|
|||
|
|
procedure SetCodigoInstalador (Value : Variant);
|
|||
|
|
procedure SetCodigoArticulo (Value : Variant);
|
|||
|
|
procedure FreeContenido; override;
|
|||
|
|
procedure BuscarAlbaran; override;
|
|||
|
|
public
|
|||
|
|
property CodigoInstalador : Variant read FCodigoInstalador write SetCodigoInstalador;
|
|||
|
|
property CodigoArticulo : Variant read FCodigoArticulo write SetCodigoArticulo;
|
|||
|
|
constructor Create (AOwner : TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
published
|
|||
|
|
property TablaAlbaranes;
|
|||
|
|
property TablaDetallesAlbaranes;
|
|||
|
|
property TablaDetallesMem : TRxMemoryData read FTablaDetallesMem write FTablaDetallesMem;
|
|||
|
|
property CodigoAlbaran;
|
|||
|
|
procedure GridBotonCodigoArticuloClick(Sender: TObject);
|
|||
|
|
procedure CodigoArticuloDetalleSetText(Sender: TField; const Text: String);
|
|||
|
|
procedure CantidadDetalleSetText(Sender: TField; const Text: String);
|
|||
|
|
procedure GridBotonDescripcionClick(Sender: TObject);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
frAlbaranInstalador: TfrAlbaranInstalador;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.DFM}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
TablaAlbaranesInstalador, BaseDatos, IB, StrFunc, Mensajes, NumFunc,
|
|||
|
|
TablaArticulos, TablaInstaladores, RdxFrameArticulos, RdxFrameInstaladores,
|
|||
|
|
AlbaranesInstaladores, Articulos, IBCustomDataSet, Instaladores,
|
|||
|
|
Excepciones, IBErrorCodes, dxDBTLCL, EditorDescripcion,
|
|||
|
|
RdxEmpresaActiva, Literales, ArticulosFabPro;
|
|||
|
|
|
|||
|
|
{ TfrAlbaranCliente }
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.ActivarModoAnadir;
|
|||
|
|
var
|
|||
|
|
CodNuevo : Variant;
|
|||
|
|
begin
|
|||
|
|
dsAlbaran.AutoEdit := True;
|
|||
|
|
dsDetallesAlbaran.AutoEdit := True;
|
|||
|
|
Nombre.VerBoton := True;
|
|||
|
|
|
|||
|
|
ActivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOARTICULO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := GridBotonCodigoArticuloClick;
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('DESCRIPCION')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := GridBotonDescripcionClick;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := True;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{ Antes de aplicar la cach<EFBFBD> hay que asegurarse de que la
|
|||
|
|
tabla est<EFBFBD> cerrada. }
|
|||
|
|
TablaAlbaranes.DisableControls;
|
|||
|
|
|
|||
|
|
{ Inicializar la tabla de albaranes }
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
CodNuevo := dmTablaAlbaranesInstalador.DarNuevoCodigo;
|
|||
|
|
with TablaAlbaranes do
|
|||
|
|
begin
|
|||
|
|
CachedUpdates := True;
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
EnableControls;
|
|||
|
|
Insert;
|
|||
|
|
FieldByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
Codigo.Field.asString := CodNuevo;
|
|||
|
|
FechaAlta.DataBinding.Field.AsString := DateToStr(Date);
|
|||
|
|
Usuario.Field.AsString := dmBaseDatos.Usuario;
|
|||
|
|
|
|||
|
|
{ Inicializar la tabla de detalles }
|
|||
|
|
with TablaDetallesAlbaranes do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
ParamByName('CODIGOALBARAN').AsString := CodNuevo;
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
Open;
|
|||
|
|
ActivarEventosCampos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes);
|
|||
|
|
Visible := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.ActivarModoConsultar;
|
|||
|
|
begin
|
|||
|
|
dsAlbaran.AutoEdit := False;
|
|||
|
|
dsDetallesAlbaran.AutoEdit := False;
|
|||
|
|
Nombre.VerBoton := False;
|
|||
|
|
|
|||
|
|
DesactivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOARTICULO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := NIL;
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('DESCRIPCION')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := NIL;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := False;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
TablaAlbaranes.Prepare;
|
|||
|
|
TablaAlbaranes.Open;
|
|||
|
|
|
|||
|
|
if TablaAlbaranes.RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgAlbNoExisteAlb, [CodigoAlbaran]);
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TablaAlbaranes.Cancel;
|
|||
|
|
|
|||
|
|
with TablaDetallesAlbaranes do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
Params.ByName('CODIGOALBARAN').AsString := CodigoAlbaran;
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
Cancel;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
Open;
|
|||
|
|
Cancel;
|
|||
|
|
CargarDetalles;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes);
|
|||
|
|
Visible := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.ActivarModoEliminar;
|
|||
|
|
begin
|
|||
|
|
dsAlbaran.AutoEdit := False;
|
|||
|
|
dsDetallesAlbaran.AutoEdit := False;
|
|||
|
|
Nombre.VerBoton := False;
|
|||
|
|
|
|||
|
|
DesactivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOARTICULO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := NIL;
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('DESCRIPCION')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := NIL;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := False;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
TablaAlbaranes.Prepare;
|
|||
|
|
TablaAlbaranes.Open;
|
|||
|
|
|
|||
|
|
if TablaAlbaranes.RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgAlbNoExisteAlb, [CodigoAlbaran]);
|
|||
|
|
CancelarEliminar;
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TablaAlbaranes.Cancel;
|
|||
|
|
|
|||
|
|
with TablaDetallesAlbaranes do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
Params.ByName('CODIGOALBARAN').AsString := CodigoAlbaran;
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
Cancel;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
Open;
|
|||
|
|
Cancel;
|
|||
|
|
CargarDetalles;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes);
|
|||
|
|
Visible := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.ActivarModoModificar;
|
|||
|
|
begin
|
|||
|
|
dsAlbaran.AutoEdit := True;
|
|||
|
|
dsDetallesAlbaran.AutoEdit := True;
|
|||
|
|
Nombre.VerBoton := True;
|
|||
|
|
|
|||
|
|
ActivarEdicionGridDetalles(gridDetalles);
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('CODIGOARTICULO')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := GridBotonCodigoArticuloClick;
|
|||
|
|
|
|||
|
|
(gridDetalles.ColumnByFieldName('DESCRIPCION')
|
|||
|
|
as TdxDBTreeListButtonColumn).OnEditButtonClick := GridBotonDescripcionClick;
|
|||
|
|
|
|||
|
|
pnlBarraGrid.Visible := True;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{ Antes de aplicar la cach<EFBFBD> hay que asegurarse de que la
|
|||
|
|
tabla est<EFBFBD> cerrada. }
|
|||
|
|
TablaAlbaranes.Prepare;
|
|||
|
|
TablaAlbaranes.Open;
|
|||
|
|
if TablaAlbaranes.RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgAlbNoExisteAlb, [CodigoAlbaran]);
|
|||
|
|
CancelarModificar;
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TablaAlbaranes.Edit;
|
|||
|
|
TablaAlbaranes.Post;
|
|||
|
|
TablaAlbaranes.Edit;
|
|||
|
|
|
|||
|
|
with TablaDetallesAlbaranes do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
Params.ByName('CODIGOALBARAN').AsString := CodigoAlbaran;
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
Open;
|
|||
|
|
CargarDetalles;
|
|||
|
|
ActivarEventosCampos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes);
|
|||
|
|
Visible := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
begin
|
|||
|
|
case E.IBErrorCode of
|
|||
|
|
isc_lock_conflict : begin
|
|||
|
|
VerMensajeFmt(msgAlbBloqueado, [CodigoAlbaran]);
|
|||
|
|
CancelarModificar;
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlbaranInstalador.AnadirDatos: Boolean;
|
|||
|
|
var
|
|||
|
|
NumConcepto : Integer;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
NumConcepto := 0;
|
|||
|
|
TablaAlbaranes.Post;
|
|||
|
|
TablaAlbaranes.ApplyUpdates;
|
|||
|
|
|
|||
|
|
BorrarDetallesIB;
|
|||
|
|
SalvarDetalles;
|
|||
|
|
|
|||
|
|
dmTablaAlbaranesInstalador.IncrementarCodigo;
|
|||
|
|
FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString;
|
|||
|
|
Commit;
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
TablaAlbaranes.CachedUpdates := False;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do begin
|
|||
|
|
if E.IBErrorCode = isc_unique_key_violation then begin
|
|||
|
|
VerMensajeFmt(msgAlbCodAlbRepetido, [Codigo.Field.AsString]);
|
|||
|
|
TablaAlbaranes.Edit;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.BuscarAlbaran;
|
|||
|
|
begin
|
|||
|
|
if Transaccion = NIL then
|
|||
|
|
exit;
|
|||
|
|
try
|
|||
|
|
TablaAlbaranes.DisableControls;
|
|||
|
|
TablaDetallesMem.DisableControls;
|
|||
|
|
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
|
|||
|
|
// Buscar la fila a tratar si es necesario
|
|||
|
|
if not VarIsNull(FCodigoAlbaran) then
|
|||
|
|
begin
|
|||
|
|
TablaAlbaranes.ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
TablaAlbaranes.ParamByName('CODIGO').AsString := FCodigoAlbaran;
|
|||
|
|
|
|||
|
|
TablaDetallesAlbaranes.ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
TablaDetallesAlbaranes.ParamByName('CODIGOALBARAN').AsString := FCodigoAlbaran;
|
|||
|
|
end;
|
|||
|
|
TablaAlbaranes.Prepare;
|
|||
|
|
TablaAlbaranes.Open;
|
|||
|
|
|
|||
|
|
TablaDetallesAlbaranes.Prepare;
|
|||
|
|
TablaDetallesAlbaranes.Open;
|
|||
|
|
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
TablaDetallesMem.Open;
|
|||
|
|
|
|||
|
|
BorrarDetalles;
|
|||
|
|
CargarDetalles;
|
|||
|
|
|
|||
|
|
dmTablaAlbaranesInstalador.InicializarTablaAlbaranes(@TablaAlbaranes);
|
|||
|
|
|
|||
|
|
TablaAlbaranes.EnableControls;
|
|||
|
|
TablaDetallesMem.EnableControls;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlbaranInstalador.CancelarAnadir: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
TablaAlbaranes.CancelUpdates;
|
|||
|
|
RollBack;
|
|||
|
|
TablaAlbaranes.CachedUpdates := False;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlbaranInstalador.CancelarEliminar: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
RollBack;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlbaranInstalador.CancelarModificar: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
RollBack;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.CantidadDetalleSetText(Sender: TField;
|
|||
|
|
const Text: String);
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
if EsCadenaVacia(Text) then
|
|||
|
|
Sender.AsString := '1'
|
|||
|
|
else
|
|||
|
|
Sender.AsString := Text;
|
|||
|
|
except
|
|||
|
|
on E : EConvertError do
|
|||
|
|
VerMensaje(msgCantidadNoValida);
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.CodigoArticuloDetalleSetText(Sender: TField;
|
|||
|
|
const Text: String);
|
|||
|
|
var
|
|||
|
|
Codigo : String;
|
|||
|
|
begin
|
|||
|
|
if (EsCadenaVacia(Text)) then
|
|||
|
|
begin
|
|||
|
|
Sender.AsString := '';
|
|||
|
|
exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
Codigo := Trim(Text);
|
|||
|
|
if (dmTablaArticulos.validarCodigo(Codigo)) then
|
|||
|
|
Codigo := dmTablaArticulos.formatearCodigo(Codigo)
|
|||
|
|
else
|
|||
|
|
raise Exception.CreateFmt(msgArtCodArtIncorrecto, [Codigo]);
|
|||
|
|
|
|||
|
|
Sender.AsString := Codigo;
|
|||
|
|
CodigoArticulo := Codigo;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlbaranInstalador.ComprobarDatos: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
|
|||
|
|
if EsCadenaVacia(FechaAlta.DataBinding.Field.AsString) then
|
|||
|
|
begin
|
|||
|
|
VerMensaje(msgAlbFaltaFechaAlta);
|
|||
|
|
FechaAlta.SetFocus;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if EsCadenaVacia(Nombre.Field.AsString) then
|
|||
|
|
begin
|
|||
|
|
VerMensaje(msgAlbFaltaNombreCli);
|
|||
|
|
Nombre.SetFocus;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if TablaDetallesMem.IsEmpty then
|
|||
|
|
begin
|
|||
|
|
VerMensaje(msgAlbFaltaArticulos);
|
|||
|
|
gridDetalles.SetFocus;
|
|||
|
|
Exit
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
Result := True;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
constructor TfrAlbaranInstalador.Create(AOwner: TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited Create(AOwner);
|
|||
|
|
FCodigoInstalador := NULL;
|
|||
|
|
FCodigoArticulo := NULL;
|
|||
|
|
|
|||
|
|
Entidad := entAlbaranInstalador;
|
|||
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|||
|
|
BaseDatos := dmBaseDatos.BD;
|
|||
|
|
|
|||
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|||
|
|
Transaccion.DefaultDatabase := BaseDatos;
|
|||
|
|
|
|||
|
|
TablaAlbaranes := TIBDataSet.Create(Self);
|
|||
|
|
TablaDetallesAlbaranes := TIBDataSet.Create(Self);
|
|||
|
|
TablaDetallesMem := TRxMemoryData.Create(Self);
|
|||
|
|
|
|||
|
|
dsAlbaran.DataSet := TablaAlbaranes;
|
|||
|
|
dsDetallesAlbaran.DataSet := TablaDetallesMem;
|
|||
|
|
|
|||
|
|
with TablaAlbaranes do
|
|||
|
|
begin
|
|||
|
|
Database := BaseDatos;
|
|||
|
|
Transaction := Transaccion;
|
|||
|
|
SelectSQL.Assign(dmTablaAlbaranesInstalador.sqlConsultarAlbaran);
|
|||
|
|
InsertSQL.Assign(dmTablaAlbaranesInstalador.sqlInsertarAlbaran);
|
|||
|
|
ModifySQL.Assign(dmTablaAlbaranesInstalador.sqlModificarAlbaran);
|
|||
|
|
DeleteSQL.Assign(dmTablaAlbaranesInstalador.sqlEliminarAlbaran);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with TablaDetallesAlbaranes do
|
|||
|
|
begin
|
|||
|
|
Database := BaseDatos;
|
|||
|
|
Transaction := Transaccion;
|
|||
|
|
SelectSQL.Assign(dmTablaAlbaranesInstalador.sqlConsultarGridDetalles);
|
|||
|
|
InsertSQL.Assign(dmTablaAlbaranesInstalador.sqlInsertarDetalles);
|
|||
|
|
ModifySQL.Assign(dmTablaAlbaranesInstalador.sqlModificarDetalles);
|
|||
|
|
DeleteSQL.Assign(dmTablaAlbaranesInstalador.sqlEliminarDetalles);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
TablaDetallesMem.CopyStructure(TablaDetallesAlbaranes);
|
|||
|
|
TablaDetallesMem.FieldByName('CODIGOEMPRESA').Required := False;
|
|||
|
|
TablaDetallesMem.FieldByName('CODIGOALBARAN').Required := False;
|
|||
|
|
TablaDetallesMem.FieldByName('NUMCONCEPTO').Required := False;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
dmTablaAlbaranesInstalador.InicializarGridDetalles(gridDetalles);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TfrAlbaranInstalador.Destroy;
|
|||
|
|
begin
|
|||
|
|
gridDetalles.DataSource := NIL;
|
|||
|
|
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
TablaDetallesMem.Free;
|
|||
|
|
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaAlbaranes.UnPrepare;
|
|||
|
|
TablaAlbaranes.Free;
|
|||
|
|
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Unprepare;
|
|||
|
|
TablaDetallesAlbaranes.Free;
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlbaranInstalador.EliminarDatos: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaAlbaranes.Delete;
|
|||
|
|
Commit;
|
|||
|
|
BorrarDetalles;
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
begin
|
|||
|
|
case E.IBErrorCode of
|
|||
|
|
isc_lock_conflict : VerMensajeFmt(msgAlbBloqueado, [Codigo.Field.AsString]);
|
|||
|
|
else
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.FreeContenido;
|
|||
|
|
var
|
|||
|
|
Contador : integer;
|
|||
|
|
ListaCodigos : TStringList;
|
|||
|
|
begin
|
|||
|
|
if (ContenidoModal is TRdxFrameAlbaranes) then begin
|
|||
|
|
CodigoAlbaran := (ContenidoModal as TRdxFrameAlbaranes).CodigoAlbaran;
|
|||
|
|
ActivarModo;
|
|||
|
|
end;
|
|||
|
|
if (ContenidoModal is TRdxFrameArticulos) then
|
|||
|
|
begin
|
|||
|
|
ListaCodigos := (ContenidoModal as TRdxFrameArticulos).ListaArticulos;
|
|||
|
|
for Contador := 0 to ListaCodigos.Count - 1 do
|
|||
|
|
begin
|
|||
|
|
CodigoArticulo := ListaCodigos.Strings[Contador];
|
|||
|
|
bAnadirClick(Self);
|
|||
|
|
end;
|
|||
|
|
TablaDetallesMem.Cancel;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (ContenidoModal is TfrEditorDescripcion) then
|
|||
|
|
begin
|
|||
|
|
TablaDetallesMem.FieldByName('DESCRIPCION').AsString := (ContenidoModal as TfrEditorDescripcion).Texto;
|
|||
|
|
TablaDetallesMem.Post;
|
|||
|
|
TablaDetallesMem.Edit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if (ContenidoModal is TRdxFrameInstaladores) then
|
|||
|
|
CodigoInstalador := (ContenidoModal as TRdxFrameInstaladores).CodigoInstalador;
|
|||
|
|
inherited FreeContenido;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.GridBotonCodigoArticuloClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
TablaDetallesMem.Edit;
|
|||
|
|
WidthModal := 1000;
|
|||
|
|
HeightModal := 700;
|
|||
|
|
ContenidoModal := TfrArticulosFabPro.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrAlbaranInstalador.ModificarDatos: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
TablaAlbaranes.Post;
|
|||
|
|
BorrarDetallesIB;
|
|||
|
|
SalvarDetalles;
|
|||
|
|
Commit;
|
|||
|
|
TablaAlbaranes.Close;
|
|||
|
|
TablaDetallesAlbaranes.Close;
|
|||
|
|
TablaDetallesMem.Close;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.SetCodigoArticulo(Value: Variant);
|
|||
|
|
var
|
|||
|
|
DatosArticulo : TDatosArticulo;
|
|||
|
|
begin
|
|||
|
|
if VarIsNull(Value) then
|
|||
|
|
exit;
|
|||
|
|
if Value = '' then
|
|||
|
|
exit;
|
|||
|
|
DatosArticulo := TDatosArticulo.Create;
|
|||
|
|
DatosArticulo.Codigo := Value;
|
|||
|
|
try
|
|||
|
|
if dmTablaArticulos.darDatosArticulo(DatosArticulo) then
|
|||
|
|
begin
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
Edit;
|
|||
|
|
FieldByName('CODIGOARTICULO').AsString := DatosArticulo.Codigo;
|
|||
|
|
FieldByName('DESCRIPCION').AsString := DatosArticulo.Descripcion;
|
|||
|
|
FieldByName('CANTIDAD').AsString := '1';
|
|||
|
|
FieldByName('UNIDADESMEDIDA').AsString := DatosArticulo.Unidadesmedida;
|
|||
|
|
Post;
|
|||
|
|
end;
|
|||
|
|
FCodigoArticulo := Value;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
raise Exception.CreateFmt(msgArtCodArtNoExiste, [Value]);
|
|||
|
|
finally
|
|||
|
|
DatosArticulo.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.SetCodigoInstalador(Value: Variant);
|
|||
|
|
var
|
|||
|
|
DatosInstalador : TDatosInstalador;
|
|||
|
|
begin
|
|||
|
|
if VarIsNull(Value) then
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
FCodigoInstalador := Value;
|
|||
|
|
DatosInstalador := TDatosInstalador.Create;
|
|||
|
|
try
|
|||
|
|
DatosInstalador.Codigo := FCodigoInstalador;
|
|||
|
|
dmTablaInstaladores.darDatosInstalador(DatosInstalador);
|
|||
|
|
CodInstalador.DataBinding.Field.AsString := DatosInstalador.Codigo;
|
|||
|
|
Nombre.Field.AsString := DatosInstalador.Nombre;
|
|||
|
|
Telefono.Field.AsString := DatosInstalador.Telefono1;
|
|||
|
|
finally
|
|||
|
|
DatosInstalador.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.VerModal;
|
|||
|
|
begin
|
|||
|
|
if (ContenidoModal is TRdxFrameArticulos) then
|
|||
|
|
(ContenidoModal as TRdxFrameArticulos).CodigoArticulo := CodigoArticulo;
|
|||
|
|
if (ContenidoModal is TfrEditorDescripcion) then
|
|||
|
|
(ContenidoModal as TfrEditorDescripcion).Texto := TablaDetallesMem.FieldByName('DESCRIPCION').AsString;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.CodigoButtonClick(Sender: TObject);
|
|||
|
|
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, FCodigoAlbaran es NULL y da error al activar modo porque
|
|||
|
|
no se inicializa los par<EFBFBD>metros de la sql. Lo hace BuscarAlbaran. }
|
|||
|
|
if not TablaAlbaranes.Active then
|
|||
|
|
BuscarAlbaran;
|
|||
|
|
ContenidoModal := TfrAlbaranesInstaladores.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.CodigoExit(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (Modo <> Anadir) or (Visible = false) then
|
|||
|
|
Exit;
|
|||
|
|
if EsCadenaVacia(Codigo.Text) then
|
|||
|
|
Codigo.Field.AsString := dmTablaAlbaranesInstalador.darNuevoCodigo;
|
|||
|
|
if (dmTablaAlbaranesInstalador.validarCodigo(Codigo.Text)) then
|
|||
|
|
begin
|
|||
|
|
Codigo.Field.asString := dmTablaAlbaranesInstalador.formatearCodigo(Codigo.Text);
|
|||
|
|
if (dmTablaAlbaranesInstalador.ExisteCodigo(EmpresaActiva.Codigo, Codigo.Text)) then begin
|
|||
|
|
VerMensajeFmt(msgAlbCodAlbRepetido, [Codigo.Text]);
|
|||
|
|
Codigo.SetFocus;
|
|||
|
|
end;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
VerMensajeFmt(msgAlbCodAlbIncorrecto, [Codigo.Text]);
|
|||
|
|
Codigo.SetFocus;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.bAnadirClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
with TablaDetallesMem 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 TfrAlbaranInstalador.bEliminarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (VerMensajePregunta(msgDeseaBorrar) <> IDYES) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
if TablaDetallesMem.RecordCount = 0 then begin
|
|||
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|||
|
|
recien creado }
|
|||
|
|
TablaDetallesMem.Cancel;
|
|||
|
|
Exit
|
|||
|
|
end;
|
|||
|
|
try
|
|||
|
|
TablaDetallesMem.Delete;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.bEliminarTodoClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (VerMensajePregunta(msgDeseaBorrarTodo) <> IDYES) then
|
|||
|
|
Exit;
|
|||
|
|
BorrarDetalles;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.bSalirClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
Rollback;
|
|||
|
|
CloseFrame;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.bGuardarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (RealizarOperacion) then
|
|||
|
|
CloseFrame;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.bCancelarClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if (TratarCambios = IDOK) then
|
|||
|
|
CloseFrame;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.ActivarEventosCampos;
|
|||
|
|
begin
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
FieldByName('CODIGOARTICULO').OnSetText := CodigoArticuloDetalleSetText;
|
|||
|
|
FieldByName('CANTIDAD').OnSetText := CantidadDetalleSetText;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.BorrarDetalles;
|
|||
|
|
begin
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
EmptyTable;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.BorrarDetallesIB;
|
|||
|
|
begin
|
|||
|
|
with TablaDetallesAlbaranes do
|
|||
|
|
begin
|
|||
|
|
if IsEmpty then
|
|||
|
|
Exit;
|
|||
|
|
DisableControls;
|
|||
|
|
Last;
|
|||
|
|
while not BOF do
|
|||
|
|
begin
|
|||
|
|
Delete;
|
|||
|
|
Prior;
|
|||
|
|
end;
|
|||
|
|
if not IsEmpty then
|
|||
|
|
Delete;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.CargarDetalles;
|
|||
|
|
var
|
|||
|
|
NumeroCampo : Integer;
|
|||
|
|
begin
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
if TablaDetallesAlbaranes.IsEmpty then
|
|||
|
|
Exit;
|
|||
|
|
DisableControls;
|
|||
|
|
TablaDetallesAlbaranes.First;
|
|||
|
|
while not TablaDetallesAlbaranes.EOF do
|
|||
|
|
begin
|
|||
|
|
Append;
|
|||
|
|
for NumeroCampo := 0 to TablaDetallesAlbaranes.FieldCount-1 do
|
|||
|
|
Fields[NumeroCampo].AsString := TablaDetallesAlbaranes.Fields[NumeroCampo].AsString;
|
|||
|
|
Post;
|
|||
|
|
TablaDetallesAlbaranes.Next;
|
|||
|
|
end;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.SalvarDetalles;
|
|||
|
|
var
|
|||
|
|
NumeroCampo : Integer;
|
|||
|
|
NumConcepto : Integer;
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
with TablaDetallesMem do
|
|||
|
|
begin
|
|||
|
|
if IsEmpty then
|
|||
|
|
Exit;
|
|||
|
|
NumConcepto := 0;
|
|||
|
|
DisableControls;
|
|||
|
|
First;
|
|||
|
|
while not EOF do
|
|||
|
|
begin
|
|||
|
|
TablaDetallesAlbaranes.Append;
|
|||
|
|
for NumeroCampo := 0 to FieldCount-1 do
|
|||
|
|
begin
|
|||
|
|
if Fields[NumeroCampo].FieldName = 'CODIGOEMPRESA' then
|
|||
|
|
TablaDetallesAlbaranes.Fields[NumeroCampo].AsInteger := EmpresaActiva.Codigo
|
|||
|
|
else begin
|
|||
|
|
if Fields[NumeroCampo].FieldName = 'CODIGOALBARAN' then
|
|||
|
|
TablaDetallesAlbaranes.Fields[NumeroCampo].AsString := Codigo.Field.AsString
|
|||
|
|
else
|
|||
|
|
if Fields[NumeroCampo].FieldName = 'NUMCONCEPTO' then
|
|||
|
|
TablaDetallesAlbaranes.Fields[NumeroCampo].AsInteger := NumConcepto
|
|||
|
|
else
|
|||
|
|
TablaDetallesAlbaranes.Fields[NumeroCampo].AsString := Fields[NumeroCampo].AsString;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
TablaDetallesAlbaranes.Post;
|
|||
|
|
Next;
|
|||
|
|
NumConcepto := NumConcepto + 1;
|
|||
|
|
end;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.GridBotonDescripcionClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
TablaDetallesMem.Edit;
|
|||
|
|
WidthModal := 420;
|
|||
|
|
HeightModal := 435;
|
|||
|
|
ModoModal := Modo;
|
|||
|
|
ContenidoModal := TfrEditorDescripcion.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.NombreButtonClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
ContenidoModal := TfrInstaladores.Create(Self);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrAlbaranInstalador.NombreExit(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if not (Modo in [Anadir, Modificar]) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
// if EsCadenaVacia( ) then
|
|||
|
|
// Exit;
|
|||
|
|
{
|
|||
|
|
if (dmTablaInstaladores.ValidarCodigo(DisplayValue)) then begin
|
|||
|
|
//Comprueba que le numero es lo sufucientemente peque<75>o para ser un entero
|
|||
|
|
if not EsInteger(DisplayValue) then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgInsCodInsIncorrecto,[DisplayValue]);
|
|||
|
|
DisplayValue := '0';
|
|||
|
|
CodInstalador.SetFocus;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
begin
|
|||
|
|
DisplayValue := dmTablaInstaladores.FormatearCodigo(DisplayValue);
|
|||
|
|
if (dmTablaInstaladores.ExisteCodigo(DisplayValue)) then
|
|||
|
|
CodigoInstalador := DisplayValue
|
|||
|
|
else begin
|
|||
|
|
VerMensajeFmt(msgProCodProvNoExiste, [DisplayValue]);
|
|||
|
|
Paginas.ActivePageIndex := 0;
|
|||
|
|
CodInstalador.SetFocus;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
VerMensajeFmt(msgProCodProvIncorrecto, [CodInstalador.Text]);
|
|||
|
|
Paginas.ActivePageIndex := 0;
|
|||
|
|
CodInstalador.SetFocus;
|
|||
|
|
end;
|
|||
|
|
}
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|