git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
2483 lines
73 KiB
ObjectPascal
2483 lines
73 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2005. 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: 08-06-2005
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual: 08-06-2005
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit Obra;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
RdxFrameInformeTrimestral, Grids, DBGrids, ComCtrls, RdxBotones, ToolWin, ExtCtrls,
|
|
Menus, RXDBCtrl, Configuracion, RdxFrame,
|
|
Db, RdxPaneles, RdxBarras, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
|
cxEdit, cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
|
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
|
|
am2000menuitem, am2000popupmenu, am2000, cxContainer, cxTextEdit,
|
|
cxMaskEdit, cxDropDownEdit, StdCtrls, ActnList, StrUtils,
|
|
|
|
Entidades, InformeTrimestralVentas, InformeTrimestralCompras, vistaPrevia,
|
|
RdxTitulos, ImgList, RdxFrameObras, IBCustomDataSet, RxMemDS, InformeListadoPedidosObra,
|
|
InformeListadoTareasObra,
|
|
|
|
RdxEmpresaActiva, am2000utils, cxDataStorage, cxTL, cxInplaceContainer,
|
|
cxTLData, cxDBTL, cxCalendar, cxDBEdit, cxMemo, cxButtonEdit, AdvPanel,
|
|
cxCheckBox, cxCurrencyEdit;
|
|
|
|
type
|
|
TfrObra = class(TRdxFrameObras)
|
|
dsObras: TDataSource;
|
|
Acciones: TActionList;
|
|
actAnadirInstalador: TAction;
|
|
actAceptar: TAction;
|
|
brSalir: TRdxBarraInferior;
|
|
bSalir: TRdxBoton;
|
|
actCancelar: TAction;
|
|
brDoble: TRdxBarraInferior;
|
|
bGuardar: TRdxBoton;
|
|
bCancelar: TRdxBoton;
|
|
actEliminarInstalador: TAction;
|
|
actAnadirGasto: TAction;
|
|
actEliminarGasto: TAction;
|
|
dsObrasInstaladores: TDataSource;
|
|
dsObrasGastos: TDataSource;
|
|
actEliminarTodoIns: TAction;
|
|
actEliminarTodoGas: TAction;
|
|
dsObrasPedidos: TDataSource;
|
|
actAnadirPedido: TAction;
|
|
dsTareasObras: TDataSource;
|
|
actEliminarPedido: TAction;
|
|
actAnadirTareaObra: TAction;
|
|
actEliminarTareaObra: TAction;
|
|
actEliminarTodoTareaObra: TAction;
|
|
actSalir: TAction;
|
|
pnlCuerpo: TRdxPanel;
|
|
pnlTitulo: TRdxPanelTituloOperacion;
|
|
pnlContenido: TRdxPanel;
|
|
Splitter1: TSplitter;
|
|
pnlDetalleOtro: TRdxPanel;
|
|
pnlDatosOtro: TAdvPanel;
|
|
Panel1: TPanel;
|
|
pnlGridOtro: TPanel;
|
|
gridTareasObras: TcxGrid;
|
|
gridTareasObrasDBTableView1: TcxGridDBTableView;
|
|
gridTareasObrasLevel1: TcxGridLevel;
|
|
pnlBarraOtro: TPanel;
|
|
bEliminarTareaObra: TRdxBoton;
|
|
bAnadirTareaObra: TRdxBoton;
|
|
bEliminarTodoTareaObra: TRdxBoton;
|
|
pnlListaTrimestres: TRdxPanel;
|
|
tlApartadosObra: TcxTreeList;
|
|
ColPanel: TcxTreeListColumn;
|
|
ColDescripcion: TcxTreeListColumn;
|
|
ColCodigoPedido: TcxTreeListColumn;
|
|
ColEstadoPedido: TcxTreeListColumn;
|
|
pnlDetallePedidosOtros: TRdxPanel;
|
|
pnlVistaPrevia: TPanel;
|
|
pnlDetalleObra: TRdxPanel;
|
|
pnlObra: TRdxPanel;
|
|
pnlDatosObra: TAdvPanel;
|
|
eCodigo: TLabel;
|
|
eNombre: TLabel;
|
|
eProcedencia: TLabel;
|
|
eNIFCIF: TLabel;
|
|
eObservaciones: TLabel;
|
|
eProvincia: TLabel;
|
|
ePoblacion: TLabel;
|
|
eNumero: TLabel;
|
|
ePiso: TLabel;
|
|
Nombre: TcxDBTextEdit;
|
|
Calle: TcxDBTextEdit;
|
|
Observaciones: TcxDBMemo;
|
|
Provincia: TcxDBButtonEdit;
|
|
Poblacion: TcxDBButtonEdit;
|
|
Numero: TcxDBTextEdit;
|
|
Piso: TcxDBTextEdit;
|
|
FechaFin: TcxDBDateEdit;
|
|
CodigoContrato: TcxDBTextEdit;
|
|
pnlDatosContacto: TAdvPanel;
|
|
eTelefono1: TLabel;
|
|
eTelefono2: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
eFax: TLabel;
|
|
eCorreo: TLabel;
|
|
Label1: TLabel;
|
|
Telefono1: TcxDBTextEdit;
|
|
Telefono2: TcxDBTextEdit;
|
|
Movil1: TcxDBTextEdit;
|
|
Movil2: TcxDBTextEdit;
|
|
Fax: TcxDBTextEdit;
|
|
PersonaContacto: TcxDBTextEdit;
|
|
Correo: TcxDBTextEdit;
|
|
pnlOtrosDatos: TAdvPanel;
|
|
pnlInstaladores: TPanel;
|
|
pnlBarraInstaladores: TPanel;
|
|
bEliminar: TRdxBoton;
|
|
bAnadir: TRdxBoton;
|
|
bEliminarTodo: TRdxBoton;
|
|
pnlGridInstaladores: TPanel;
|
|
gridInstaladores: TcxGrid;
|
|
gridInstaladoresDBTableView1: TcxGridDBTableView;
|
|
gridInstaladoresLevel1: TcxGridLevel;
|
|
pnlTituloInstaladores: TPanel;
|
|
Label4: TLabel;
|
|
pnlOtrosGastos: TPanel;
|
|
pnlGridOtrosGastos: TPanel;
|
|
gridOtrosGastos: TcxGrid;
|
|
gridOtrosGastosDBTableView1: TcxGridDBTableView;
|
|
gridOtrosGastosLevel1: TcxGridLevel;
|
|
pnlBarraOtrosGastos: TPanel;
|
|
RdxBoton1: TRdxBoton;
|
|
RdxBoton2: TRdxBoton;
|
|
RdxBoton3: TRdxBoton;
|
|
pnlTituloOtrosGastos: TPanel;
|
|
Label5: TLabel;
|
|
pnlDetallePedido: TRdxScrollPanel;
|
|
pnlDatosProveedor: TAdvPanel;
|
|
Label9: TLabel;
|
|
Label11: TLabel;
|
|
Label15: TLabel;
|
|
Label16: TLabel;
|
|
Label17: TLabel;
|
|
Label18: TLabel;
|
|
Label19: TLabel;
|
|
Label20: TLabel;
|
|
eTelefono1Prov: TLabel;
|
|
eTelefono2Prov: TLabel;
|
|
eMovil1Prov: TLabel;
|
|
eMovil2Prov: TLabel;
|
|
eFaxProv: TLabel;
|
|
eCorreoProv: TLabel;
|
|
ePersonaContactoProv: TLabel;
|
|
NombreProv: TcxDBButtonEdit;
|
|
CodigoProv: TcxDBTextEdit;
|
|
pnlFasesPedido: TAdvPanel;
|
|
pnlFase1: TPanel;
|
|
Label6: TLabel;
|
|
Label8: TLabel;
|
|
Label7: TLabel;
|
|
eNum: TLabel;
|
|
ObservacionesPed: TcxMemo;
|
|
FechaPed: TcxDateEdit;
|
|
cxPed: TcxCheckBox;
|
|
pnlFase4: TPanel;
|
|
Label10: TLabel;
|
|
Label12: TLabel;
|
|
Label13: TLabel;
|
|
Label39: TLabel;
|
|
cxTra: TcxCheckBox;
|
|
FechaTra: TcxDateEdit;
|
|
ObservacionesTra: TcxMemo;
|
|
pnlFase3: TPanel;
|
|
Label33: TLabel;
|
|
Label34: TLabel;
|
|
Label35: TLabel;
|
|
Label36: TLabel;
|
|
Label38: TLabel;
|
|
ObservacionesEna: TcxMemo;
|
|
FechaEnaIni: TcxDateEdit;
|
|
cxEna: TcxCheckBox;
|
|
FechaEnaFin: TcxDateEdit;
|
|
pnlFase2: TPanel;
|
|
Label14: TLabel;
|
|
Label28: TLabel;
|
|
Label29: TLabel;
|
|
Label37: TLabel;
|
|
ObservacionesCon: TcxMemo;
|
|
FechaCon: TcxDateEdit;
|
|
cxCon: TcxCheckBox;
|
|
pnlFase5: TPanel;
|
|
Label30: TLabel;
|
|
Label31: TLabel;
|
|
Label32: TLabel;
|
|
Label40: TLabel;
|
|
cxEnt: TcxCheckBox;
|
|
FechaEnt: TcxDateEdit;
|
|
ObservacionesEnt: TcxMemo;
|
|
pnlDatosPedido: TAdvPanel;
|
|
Label41: TLabel;
|
|
Label48: TLabel;
|
|
Label42: TLabel;
|
|
DescripcionPed: TcxDBTextEdit;
|
|
CodigoPed: TcxDBTextEdit;
|
|
ReferenciaPed: TcxDBTextEdit;
|
|
pnlExtra: TRdxBarraSuperior;
|
|
RdxPanel1: TRdxPanel;
|
|
bAnadirPedido: TRdxBoton;
|
|
bEliminarPedido: TRdxBoton;
|
|
DBGrid1: TDBGrid;
|
|
DataSource1: TDataSource;
|
|
|
|
//General
|
|
procedure actAceptarExecute(Sender: TObject);
|
|
procedure actCancelarExecute(Sender: TObject);
|
|
procedure actSalirExecute(Sender: TObject);
|
|
procedure tlApartadosObraFocusedNodeChanged(Sender: TObject;
|
|
APrevFocusedNode, AFocusedNode: TcxTreeListNode);
|
|
procedure ActivarInforme(Panel: Integer);
|
|
|
|
//Obra, Instaladores, Gastos
|
|
procedure actAnadirInstaladorExecute(Sender: TObject);
|
|
procedure actAnadirGastoExecute(Sender: TObject);
|
|
procedure actEliminarGastoExecute(Sender: TObject);
|
|
procedure actEliminarInstaladorExecute(Sender: TObject);
|
|
procedure actEliminarTodoGasExecute(Sender: TObject);
|
|
procedure actEliminarTodoInsExecute(Sender: TObject);
|
|
procedure ProvinciaPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
|
procedure NombreProvPropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure PoblacionPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
|
|
|
//Pedido
|
|
procedure actAnadirPedidoExecute(Sender: TObject);
|
|
procedure actEliminarPedidoExecute(Sender: TObject);
|
|
procedure pnlFasesPedidoExit(Sender: TObject);
|
|
procedure FechaEnaFinPropertiesValidate(Sender: TObject;
|
|
var DisplayValue: Variant; var ErrorText: TCaption;
|
|
var Error: Boolean);
|
|
procedure FechaEnaIniPropertiesValidate(Sender: TObject;
|
|
var DisplayValue: Variant; var ErrorText: TCaption;
|
|
var Error: Boolean);
|
|
|
|
//Otras tareas obra
|
|
procedure actAnadirTareaObraExecute(Sender: TObject);
|
|
procedure actEliminarTareaObraExecute(Sender: TObject);
|
|
procedure actEliminarTodoTareaObraExecute(Sender: TObject);
|
|
procedure pnlOtrosDatosResize(Sender: TObject);
|
|
procedure actEliminarTareaObraUpdate(Sender: TObject);
|
|
procedure actEliminarTodoTareaObraUpdate(Sender: TObject);
|
|
procedure NombreProvPropertiesChange(Sender: TObject);
|
|
procedure DescripcionPedPropertiesChange(Sender: TObject);
|
|
procedure gridTareasObrasDBTableView1CustomDrawCell(
|
|
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
|
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|
|
|
private
|
|
//Propiedades Obra
|
|
FCodigoProvincia : Variant;
|
|
FCodigoPoblacion : Variant;
|
|
FCodigoInstalador: Variant;
|
|
FContadorGastosAux: Integer;
|
|
FTablaObrasInstaladores : TIBDataSet;
|
|
FTablaObrasInstaladoresMem : TRxMemoryData;
|
|
FTablaObrasGastos : TIBDataSet;
|
|
FTablaObrasGastosMem : TRxMemoryData;
|
|
|
|
//Propiedades Pedidos obra y sus fases
|
|
FCodigoPedidoAux: Integer;
|
|
FCodigoPedido: Variant;
|
|
FCodigoProveedor: Variant;
|
|
FTablaObrasPedidos : TIBDataSet;
|
|
FTablaFases : TIBDataSet;
|
|
FTablaFasesMem : TRxMemoryData;
|
|
|
|
//Propiedades Otras tareas obra
|
|
FTipoTarea: Variant;
|
|
FContadorTareaObraAux: Integer;
|
|
FTablaTareasObras : TIBDataSet;
|
|
FTablaTareasObrasMem : TRxMemoryData;
|
|
|
|
//Informes de resumen pedidos y otros
|
|
FTablaInformePedidosMem : TRxMemoryData;
|
|
FVistaPrevia : TfrVistaPrevia;
|
|
FInformePedidos : TdmInformeListadoPedidosObra;
|
|
FTablaInformeTareasMem : TRxMemoryData;
|
|
FInformeOtros : TdmInformeListadoTareasObra;
|
|
procedure crearTablaInfPedidos;
|
|
procedure rellenarTablaInfPedidos;
|
|
procedure crearTablaInfTareas;
|
|
procedure rellenarTablaInfTareas;
|
|
procedure crearInformes;
|
|
procedure destruirInformes;
|
|
procedure HabilitarPanelInforme;
|
|
|
|
//Métodos General
|
|
procedure RefrescarListaApartadosObra;
|
|
procedure ActivarBarrasGrids;
|
|
procedure DesactivarBarrasGrids;
|
|
|
|
//Métodos Obra
|
|
procedure HabilitarPanelObra;
|
|
procedure crearTablasObra;
|
|
procedure destruirTablasObra;
|
|
procedure activarModoModificarTablasObra;
|
|
procedure activarModoConsultarTablasObra;
|
|
procedure CargarDatosInstaladores;
|
|
procedure BorrarDatosInstaladoresIB;
|
|
procedure SalvarDatosInstaladores;
|
|
procedure CargarDatosGastos;
|
|
procedure BorrarDatosGastosIB;
|
|
procedure SalvarDatosGastos;
|
|
procedure ProvinciaSetText(Sender: TField; const Text: String);
|
|
procedure SetCodigoProvincia (Value : Variant); virtual;
|
|
procedure SetCodigoPoblacion (Value : Variant); virtual;
|
|
procedure SetCodigoInstalador(const Value: Variant);
|
|
|
|
//Métodos Pedidos obra y sus fases
|
|
procedure HabilitarPanelPedido;
|
|
procedure crearTablasPedidos;
|
|
procedure destruirTablasPedidos;
|
|
procedure activarModoTablasPedidos;
|
|
procedure BuscarPedidoObra;
|
|
procedure CargarDatosFases;
|
|
procedure RefrescarDatosProveedor;
|
|
procedure InicializarFases;
|
|
procedure RefrescarFases;
|
|
procedure VolcarDatosFases;
|
|
procedure BorrarDatosFasesIB;
|
|
procedure SalvarDatosFases;
|
|
procedure EliminarPedido;
|
|
procedure SetCodigoProveedor(const Value: Variant);
|
|
procedure SetCodigoPedido(const Value: Variant);
|
|
procedure ActivarCamposPedido;
|
|
procedure DesactivarCamposPedido;
|
|
procedure refrescarNombrePedido;
|
|
|
|
//Métodos Otras tareas obra
|
|
procedure HabilitarPanelTareas;
|
|
procedure crearTablasTareas;
|
|
procedure destruirTablasTareas;
|
|
procedure activarModoModificarTablasTareas;
|
|
procedure activarModoConsultarTablasTareas;
|
|
procedure CargarDatosTareasObras;
|
|
procedure BorrarDatosTareasObrasIB;
|
|
procedure SalvarDatosTareasObras;
|
|
function existeInstaladorEnOtrasTareas: Boolean;
|
|
procedure AplicarFiltroGridTareasObras;
|
|
procedure SetTipoTarea(const Value: Variant);
|
|
|
|
protected
|
|
procedure ActivarModoModificar; override;
|
|
procedure ActivarModoConsultar; override;
|
|
procedure ActivarModoEliminar; override;
|
|
function ModificarDatos : Boolean; override;
|
|
function CancelarModificar : Boolean; override;
|
|
function EliminarDatos : Boolean; override;
|
|
function CancelarEliminar : Boolean; override;
|
|
function ComprobarDatos : Boolean; override;
|
|
|
|
procedure VerModal; override;
|
|
procedure FreeContenido; override;
|
|
procedure BuscarObra; override;
|
|
function CloseFrame : Boolean; override;
|
|
function TratarCambios : integer; override;
|
|
public
|
|
property CodigoProveedor : Variant read FCodigoProveedor write SetCodigoProveedor;
|
|
property CodigoPedido : Variant read FCodigoPedido write SetCodigoPedido;
|
|
property CodigoInstalador : Variant read FCodigoInstalador write SetCodigoInstalador;
|
|
property CodigoProvincia : Variant read FCodigoProvincia write SetCodigoProvincia;
|
|
property CodigoPoblacion : Variant read FCodigoPoblacion write SetCodigoPoblacion;
|
|
|
|
property TablaObrasInstaladores : TIBDataSet read FTablaObrasInstaladores write FTablaObrasInstaladores;
|
|
property TablaObrasInstaladoresMem : TRxMemoryData read FTablaObrasInstaladoresMem write FTablaObrasInstaladoresMem;
|
|
property TablaObrasGastos : TIBDataSet read FTablaObrasGastos write FTablaObrasGastos;
|
|
property TablaObrasGastosMem : TRxMemoryData read FTablaObrasGastosMem write FTablaObrasGastosMem;
|
|
|
|
property TablaObrasPedidos : TIBDataSet read FTablaObrasPedidos write FTablaObrasPedidos;
|
|
property TablaFases : TIBDataSet read FTablaFases write FTablaFases;
|
|
property TablaFasesMem : TRxMemoryData read FTablaFasesMem write FTablaFasesMem;
|
|
|
|
property TablaTareasObras : TIBDataSet read FTablaTareasObras write FTablaTareasObras;
|
|
property TablaTareasObrasMem : TRxMemoryData read FTablaTareasObrasMem write FTablaTareasObrasMem;
|
|
property TipoTarea : Variant read FTipoTarea write SetTipoTarea;
|
|
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
published
|
|
property TablaObras;
|
|
property CodigoObra;
|
|
|
|
end;
|
|
|
|
var
|
|
frObra: TfrObra;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
BaseDatos, TablaFacturasCliente, TablaFacturasProveedor, IBDatabase, FacturaCliente,
|
|
Literales, Mensajes, Variants, ImprimirFacturasCliente,
|
|
Constantes, cxVariants, AsignarTrimestre, FacturaProveedor,
|
|
ImprimirInformeTrimestral, StrFunc, TablaEmpresas, TrimestrePredeterminado,
|
|
TablaObrasPedidos, TablaObras, IB, IBErrorCodes, Excepciones, TablaProvincias,
|
|
TablaPoblaciones, RdxFrameProvincias, Provincias, RdxFramePoblaciones, Poblaciones,
|
|
TablaSucursalesCliente, TablaObrasInstaladores, TablaObrasGastos, Instaladores, RdxFrameInstaladores,
|
|
TablaInstaladores, Proveedores, RdxFrameProveedores, TablaProveedores, TablaTareas,
|
|
DateUtils, cxDBLookupComboBox;
|
|
|
|
|
|
function GetDragSourceGridView(Source: TObject): TcxCustomGridView;
|
|
begin
|
|
if (TDragControlObject(Source).Control is TcxGridSite) then
|
|
Result := TcxGridSite(TDragControlObject(Source).Control).GridView
|
|
else
|
|
Result := nil;
|
|
end;
|
|
|
|
constructor TfrObra.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
Entidad := entObraCliente;
|
|
FCodigoProvincia := NULL;
|
|
FCodigoPoblacion := NULL;
|
|
|
|
BaseDatos := dmBaseDatos.BD;
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|
|
|
crearTablasObra;
|
|
crearTablasPedidos;
|
|
crearTablasTareas;
|
|
crearInformes;
|
|
end;
|
|
|
|
destructor TfrObra.Destroy;
|
|
begin
|
|
destruirTablasObra;
|
|
destruirTablasPedidos;
|
|
destruirTablasTareas;
|
|
destruirInformes;
|
|
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrObra.actAnadirInstaladorExecute(Sender: TObject);
|
|
begin
|
|
ContenidoModal := TfrInstaladores.Create(Self);
|
|
gridInstaladores.SetFocus;
|
|
end;
|
|
|
|
procedure TfrObra.actAceptarExecute(Sender: TObject);
|
|
begin
|
|
if (RealizarOperacion) then
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrObra.refrescarListaApartadosObra;
|
|
var
|
|
lista : TcxTreeListNode;
|
|
listaAux : TcxTreeListNode;
|
|
listaAux2 : TcxTreeListNode;
|
|
ListaPedidos : TListaPedidos;
|
|
i : integer;
|
|
|
|
begin
|
|
tlApartadosObra.Clear;
|
|
|
|
//PanelObra
|
|
lista := tlApartadosObra.Add;
|
|
lista.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_OBRA);
|
|
lista.Texts[CTE_COL_DESCRIPCION] := litObrObra + CodigoObra;
|
|
|
|
//PanelPedidos
|
|
listaAux := lista.AddChild;
|
|
listaAux.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_PEDIDOS);
|
|
listaAux.Texts[CTE_COL_DESCRIPCION] := litObrPedidos;
|
|
|
|
//PanelPedido
|
|
//Rellenamos los pedidos de la obra
|
|
ListaPedidos := dmTablaObrasPedidos.darListaPedidos(CodigoObra);
|
|
for i:=0 to ListaPedidos.Count-1 do
|
|
begin
|
|
listaAux2 := listaAux.AddChild;
|
|
listaAux2.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_PEDIDO);
|
|
listaAux2.Texts[CTE_COL_DESCRIPCION] := ListaPedidos.Pedido[i].Descripcion + ' - ' + ListaPedidos.Pedido[i].NombreProv;
|
|
listaAux2.Texts[CTE_COL_CODPEDIDO] := ListaPedidos.Pedido[i].Codigo;
|
|
end;
|
|
FCodigoPedidoAux := ListaPedidos.Count + 1;
|
|
FreeAndNil(ListaPedidos);
|
|
|
|
//PanelOtros
|
|
listaAux := lista.AddChild;
|
|
listaAux.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_OTROS);
|
|
listaAux.Texts[CTE_COL_DESCRIPCION] := litObrOtros;
|
|
|
|
//PanelOtro
|
|
listaAux2 := listaAux.AddChild;
|
|
listaAux2.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_OTRO);
|
|
listaAux2.Texts[CTE_COL_DESCRIPCION] := litObrEntregas;
|
|
listaAux2.Texts[CTE_COL_TIPO] := CTE_ENTREGA;
|
|
|
|
listaAux2 := listaAux.AddChild;
|
|
listaAux2.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_OTRO);
|
|
listaAux2.Texts[CTE_COL_DESCRIPCION] := litObrMontajes;
|
|
listaAux2.Texts[CTE_COL_TIPO] := CTE_MONTAJE;
|
|
|
|
listaAux2 := listaAux.AddChild;
|
|
listaAux2.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_OTRO);
|
|
listaAux2.Texts[CTE_COL_DESCRIPCION] := litObrRemates;
|
|
listaAux2.Texts[CTE_COL_TIPO] := CTE_REMATE;
|
|
|
|
tlApartadosObra.FullExpand;
|
|
tlApartadosObra.SetFocusedNode(lista,[]);
|
|
end;
|
|
|
|
procedure TfrObra.BuscarObra;
|
|
begin
|
|
RefrescarListaApartadosObra;
|
|
end;
|
|
|
|
procedure TfrObra.ActivarModoConsultar;
|
|
begin
|
|
dsObras.AutoEdit := False;
|
|
dsObrasInstaladores.AutoEdit := False;
|
|
dsObrasGastos.AutoEdit := False;
|
|
dsObrasPedidos.AutoEdit := False;
|
|
dsTareasObras.AutoEdit := False;
|
|
|
|
actAnadirPedido.Enabled := False;
|
|
actEliminarPedido.Enabled := False;
|
|
|
|
Provincia.Properties.Buttons[0].Visible := False;
|
|
Poblacion.Properties.Buttons[0].Visible := False;
|
|
NombreProv.Properties.Buttons[0].Visible := False;
|
|
|
|
DesactivarBarrasGrids;
|
|
DesactivarCamposPedido;
|
|
|
|
try
|
|
activarModoConsultarTablasObra;
|
|
activarModoTablasPedidos;
|
|
activarModoConsultarTablasTareas;
|
|
Visible := True;
|
|
FechaFin.SetFocus;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.ActivarModoModificar;
|
|
begin
|
|
dsObras.AutoEdit := True;
|
|
dsObrasInstaladores.AutoEdit := True;
|
|
dsObrasGastos.AutoEdit := True;
|
|
dsObrasPedidos.AutoEdit := True;
|
|
dsTareasObras.AutoEdit := True;
|
|
|
|
actAnadirPedido.Enabled := True;
|
|
actEliminarPedido.Enabled := True;
|
|
|
|
// Para que no haga dos accesos a la tabla cuando es consulta
|
|
FCodigoProvincia := dmTablaProvincias.DarCodigoProvincia(Provincia.Text);
|
|
Provincia.Properties.Buttons[0].Visible := True;
|
|
Poblacion.Properties.Buttons[0].Visible := True;
|
|
NombreProv.Properties.Buttons[0].Visible := True;
|
|
|
|
ActivarBarrasGrids;
|
|
ActivarCamposPedido;
|
|
|
|
try
|
|
activarModoModificarTablasObra;
|
|
activarModoTablasPedidos;
|
|
activarModoModificarTablasTareas;
|
|
Visible := True;
|
|
FechaFin.SetFocus;
|
|
except
|
|
on E : EIBError do
|
|
begin
|
|
case E.IBErrorCode of
|
|
isc_lock_conflict : begin
|
|
VerMensajeFmt(msgObrObrBloqueado, [CodigoObra]);
|
|
CancelarModificar;
|
|
CloseFrame;
|
|
Exit;
|
|
end
|
|
else
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
function TfrObra.CancelarModificar: Boolean;
|
|
begin
|
|
Result := False;
|
|
try
|
|
RollBack;
|
|
TablaObras.Close;
|
|
|
|
TablaObrasInstaladores.Close;
|
|
TablaObrasInstaladoresMem.Close;
|
|
TablaObrasGastos.Close;
|
|
TablaObrasGastosMem.Close;
|
|
|
|
TablaObrasPedidos.Close;
|
|
TablaFases.Close;
|
|
TablaFasesMem.Close;
|
|
|
|
TablaTareasObras.Close;
|
|
TablaTareasObrasMem.Close;
|
|
|
|
Result := True;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
function TfrObra.ComprobarDatos: Boolean;
|
|
begin
|
|
Result := True;
|
|
end;
|
|
|
|
function TfrObra.ModificarDatos: Boolean;
|
|
begin
|
|
Result := False;
|
|
try
|
|
if (TablaObras.State in [dsEdit, dsInsert]) then
|
|
TablaObras.Post;
|
|
|
|
if (TablaObrasPedidos.State in [dsEdit, dsInsert]) then
|
|
TablaObrasPedidos.Post;
|
|
|
|
BorrarDatosInstaladoresIB;
|
|
SalvarDatosInstaladores;
|
|
BorrarDatosGastosIB;
|
|
SalvarDatosGastos;
|
|
|
|
BorrarDatosFasesIB;
|
|
SalvarDatosFases;
|
|
|
|
BorrarDatosTareasObrasIB;
|
|
SalvarDatosTareasObras;
|
|
|
|
Commit;
|
|
|
|
TablaObras.Close;
|
|
|
|
TablaObrasInstaladores.Close;
|
|
TablaObrasInstaladoresMem.Close;
|
|
TablaObrasGastos.Close;
|
|
TablaObrasGastosMem.Close;
|
|
|
|
TablaObrasPedidos.Close;
|
|
TablaFases.Close;
|
|
TablaFasesMem.Close;
|
|
|
|
TablaTareasObras.Close;
|
|
TablaTareasObrasMem.Close;
|
|
|
|
Result := True;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.ProvinciaPropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
begin
|
|
CaptionModal := msgListaProvincias;
|
|
WidthModal := 280;
|
|
HeightModal := 460;
|
|
ContenidoModal := TfrProvincias.Create(Self);
|
|
end;
|
|
|
|
procedure TfrObra.PoblacionPropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
begin
|
|
if (EsCadenaVacia(CodigoProvincia)) then begin
|
|
VerMensaje(msgSinProvincia);
|
|
Provincia.SetFocus;
|
|
Exit;
|
|
end;
|
|
CaptionModal := Format(msgListaPoblaciones, [dmTablaProvincias.DarNombreProvincia(CodigoProvincia)]);
|
|
WidthModal := 280;
|
|
HeightModal := 460;
|
|
ContenidoModal := TfrPoblaciones.Create(Self);
|
|
end;
|
|
|
|
procedure TfrObra.SetCodigoPoblacion(Value: Variant);
|
|
begin
|
|
if (not EsCadenaVacia(Value)) then
|
|
begin
|
|
FCodigoPoblacion := Value;
|
|
Poblacion.DataBinding.Field.AsString := dmTablaPoblaciones.darNombrePoblacion(FCodigoProvincia, FCodigoPoblacion);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.SetCodigoProvincia(Value: Variant);
|
|
begin
|
|
if (not EsCadenaVacia(Value)) then
|
|
begin
|
|
FCodigoProvincia := Value;
|
|
Provincia.DataBinding.Field.AsString := dmTablaProvincias.DarNombreProvincia(FCodigoProvincia);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.FreeContenido;
|
|
begin
|
|
if (ContenidoModal is TRdxFrameProveedores) then
|
|
CodigoProveedor := (ContenidoModal as TRdxFrameProveedores).CodigoProveedor;
|
|
|
|
if (ContenidoModal is TRdxFrameInstaladores) then
|
|
CodigoInstalador := (ContenidoModal as TRdxFrameInstaladores).CodigoInstalador;
|
|
|
|
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;
|
|
|
|
inherited FreeContenido;
|
|
end;
|
|
|
|
procedure TfrObra.VerModal;
|
|
begin
|
|
if (ContenidoModal is TRdxFramePoblaciones) then
|
|
(ContenidoModal as TRdxFramePoblaciones).CodigoProvincia := FCodigoProvincia;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrObra.ProvinciaSetText(Sender: TField; const Text: String);
|
|
begin
|
|
FCodigoProvincia := dmTablaProvincias.darCodigoProvincia(Text);
|
|
Sender.AsString := Text;
|
|
end;
|
|
|
|
procedure TfrObra.actCancelarExecute(Sender: TObject);
|
|
begin
|
|
if (TratarCambios = IDOK) then
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrObra.CargarDatosInstaladores;
|
|
var
|
|
iContador : Integer;
|
|
begin
|
|
with TablaObrasInstaladoresMem do
|
|
begin
|
|
if TablaObrasInstaladores.IsEmpty then
|
|
exit;
|
|
|
|
// Localizar la fila donde está la dirección principal
|
|
DisableControls;
|
|
TablaObrasInstaladores.First;
|
|
while not TablaObrasInstaladores.EOF do
|
|
begin
|
|
Append;
|
|
for iContador := 0 to TablaObrasInstaladores.FieldCount-1 do
|
|
Fields[iContador].Value := TablaObrasInstaladores.Fields[iContador].Value;
|
|
Post;
|
|
TablaObrasInstaladores.Next;
|
|
end;
|
|
First;
|
|
EnableControls;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.CargarDatosGastos;
|
|
var
|
|
iContador : Integer;
|
|
begin
|
|
with TablaObrasGastosMem do
|
|
begin
|
|
if TablaObrasGastos.IsEmpty then
|
|
exit;
|
|
|
|
// Localizar la fila donde está la dirección principal
|
|
DisableControls;
|
|
TablaObrasGastos.First;
|
|
while not TablaObrasGastos.EOF do
|
|
begin
|
|
Append;
|
|
for iContador := 0 to TablaObrasGastos.FieldCount-1 do
|
|
Fields[iContador].Value := TablaObrasGastos.Fields[iContador].Value;
|
|
Post;
|
|
TablaObrasGastos.Next;
|
|
end;
|
|
First;
|
|
EnableControls;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actAnadirGastoExecute(Sender: TObject);
|
|
begin
|
|
try
|
|
with TablaObrasGastosMem do
|
|
begin
|
|
Next;
|
|
if EOF then Append
|
|
else begin
|
|
Prior;
|
|
Insert;
|
|
end;
|
|
TablaObrasGastosMem.FieldByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
TablaObrasGastosMem.FieldByName('CODIGO').AsInteger := FContadorGastosAux;
|
|
TablaObrasGastosMem.FieldByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
|
|
TablaObrasGastosMem.FieldByName('USUARIO').AsString := dmBaseDatos.Usuario;
|
|
TablaObrasGastosMem.FieldByName('FECHA').AsDateTime := dmBaseDatos.DarFecha;
|
|
Inc(FContadorGastosAux);
|
|
end;
|
|
gridOtrosGastos.SetFocus;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarGastoExecute(Sender: TObject);
|
|
begin
|
|
if verMensajePregunta(msgObrEliminarDetalles) = mrYes then
|
|
begin
|
|
if TablaObrasGastos.RecordCount = 0 then begin
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|
recien creado }
|
|
TablaObrasGastosMem.Cancel;
|
|
Exit
|
|
end;
|
|
try
|
|
TablaObrasGastosMem.Delete;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.BorrarDatosGastosIB;
|
|
begin
|
|
with TablaObrasGastos do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
Last;
|
|
while not BOF do
|
|
begin
|
|
Delete;
|
|
Prior;
|
|
end;
|
|
if not IsEmpty then
|
|
Delete;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.SalvarDatosGastos;
|
|
var
|
|
NumeroCampo : Integer;
|
|
Valor : Variant;
|
|
Contador : Integer;
|
|
begin
|
|
try
|
|
with TablaObrasGastosMem do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
DisableControls;
|
|
First;
|
|
TablaObrasGastos.First;
|
|
Contador := 0;
|
|
while not EOF do
|
|
begin
|
|
TablaObrasGastos.Insert;
|
|
|
|
for NumeroCampo := 0 to FieldCount-1 do
|
|
begin
|
|
Valor := Fields[NumeroCampo].AsVariant;
|
|
|
|
if (TablaObrasGastos.Fields[NumeroCampo].FieldName = 'CODIGO') then
|
|
Valor := Contador;
|
|
|
|
TablaObrasGastos.Fields[NumeroCampo].AsVariant := Valor;
|
|
end;
|
|
TablaObrasGastos.Post;
|
|
Inc(Contador);
|
|
Next;
|
|
end;
|
|
EnableControls;
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.SetCodigoInstalador(const Value: Variant);
|
|
var
|
|
DatosInstalador : TDatosInstalador;
|
|
begin
|
|
if (EsCadenaVacia(Value)) then
|
|
Exit;
|
|
|
|
FCodigoInstalador := Value;
|
|
if not TablaObrasInstaladoresMem.Locate('CODIGOINSTALADOR', FCodigoInstalador,[]) then
|
|
begin
|
|
DatosInstalador := TDatosInstalador.Create;
|
|
DatosInstalador.Codigo := FCodigoInstalador;
|
|
dmTablaInstaladores.DarDatosInstalador(DatosInstalador);
|
|
with TablaObrasInstaladoresMem do
|
|
begin
|
|
Append;
|
|
FieldByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
FieldByName('CODIGOINSTALADOR').AsString := FCodigoInstalador;
|
|
FieldByName('NOMBRE').AsString := DatosInstalador.Nombre;
|
|
FieldByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
|
|
FieldByName('USUARIO').AsString := dmBaseDatos.Usuario;
|
|
Post;
|
|
gridInstaladores.Refresh;
|
|
end;
|
|
FreeAndNil(DatosInstalador);
|
|
end
|
|
else verMensajeFmt(msgObrInsRepetido,[FCodigoInstalador]);
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarInstaladorExecute(Sender: TObject);
|
|
begin
|
|
if verMensajePregunta(msgObrEliminarDetalles) = mrYes then
|
|
begin
|
|
//Comprobamos si el instalador a eliminar tiene asociado algún entrega, montaje o remate
|
|
if existeInstaladorEnOtrasTareas then
|
|
begin
|
|
VerMensaje(msgObrInsConOtrasTareas1);
|
|
exit;
|
|
end;
|
|
|
|
if TablaObrasInstaladores.RecordCount = 0 then begin
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|
recien creado }
|
|
TablaObrasInstaladoresMem.Cancel;
|
|
Exit
|
|
end;
|
|
try
|
|
TablaObrasInstaladoresMem.Delete;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarTodoGasExecute(Sender: TObject);
|
|
begin
|
|
if verMensajePregunta(msgObrEliminarTodosDetalles) = mrYes then
|
|
begin
|
|
TablaObrasGastosMem.EmptyTable;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarTodoInsExecute(Sender: TObject);
|
|
begin
|
|
if verMensajePregunta(msgObrEliminarTodosDetalles) = mrYes then
|
|
begin
|
|
with TablaObrasInstaladoresMem do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
Last;
|
|
while not BOF do
|
|
begin
|
|
//Comprobamos si el instalador a eliminar tiene asociado algún entrega, montaje o remate
|
|
if not existeInstaladorEnOtrasTareas then
|
|
Delete;
|
|
Prior;
|
|
end;
|
|
if not IsEmpty then
|
|
//Comprobamos si el instalador a eliminar tiene asociado algún entrega, montaje o remate
|
|
if not existeInstaladorEnOtrasTareas then
|
|
Delete;
|
|
end;
|
|
|
|
if not TablaObrasInstaladoresMem.IsEmpty then
|
|
VerMensaje(msgObrInsConOtrasTareas2);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.tlApartadosObraFocusedNodeChanged(Sender: TObject;
|
|
APrevFocusedNode, AFocusedNode: TcxTreeListNode);
|
|
begin
|
|
if AFocusedNode = nil then
|
|
exit;
|
|
|
|
case StrToInt(AFocusedNode.Texts[0]) of
|
|
//PanelObra
|
|
CTE_PNL_OBRA: begin
|
|
HabilitarPanelObra;
|
|
end;
|
|
//PanelPedidos
|
|
CTE_PNL_PEDIDOS: begin
|
|
HabilitarPanelInforme;
|
|
rellenarTablaInfPedidos;
|
|
FInformePedidos.CodigoObra := CodigoObra;
|
|
FInformePedidos.NombreObra := TablaObras.FieldByName('NOMBRE').AsString;
|
|
FInformePedidos.setDatos(FTablaInformePedidosMem);
|
|
FInformePedidos.Previsualizar;
|
|
end;
|
|
//PanelPedido
|
|
CTE_PNL_PEDIDO: begin
|
|
HabilitarPanelPedido;
|
|
CodigoPedido := AFocusedNode.Texts[CTE_COL_CODPEDIDO];
|
|
end;
|
|
//PanelOtros
|
|
CTE_PNL_OTROS: begin
|
|
HabilitarPanelInforme;
|
|
rellenarTablaInfTareas;
|
|
FInformeOtros.CodigoObra := CodigoObra;
|
|
FInformeOtros.NombreObra := TablaObras.FieldByName('NOMBRE').AsString;
|
|
FInformeOtros.setDatos(FTablaInformeTareasMem);
|
|
FInformeOtros.Previsualizar;
|
|
end;
|
|
//PanelOtro
|
|
CTE_PNL_OTRO: begin
|
|
HabilitarPanelTareas;
|
|
TipoTarea := AFocusedNode.Texts[CTE_COL_TIPO];
|
|
end;
|
|
else
|
|
showmessage('Error: No existe panel');
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.BorrarDatosInstaladoresIB;
|
|
begin
|
|
with TablaObrasInstaladores do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
Last;
|
|
while not BOF do
|
|
begin
|
|
Delete;
|
|
Prior;
|
|
end;
|
|
if not IsEmpty then
|
|
Delete;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.SalvarDatosInstaladores;
|
|
var
|
|
NumeroCampo : Integer;
|
|
Valor : Variant;
|
|
begin
|
|
try
|
|
with TablaObrasInstaladoresMem do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
DisableControls;
|
|
First;
|
|
TablaObrasInstaladores.First;
|
|
while not EOF do
|
|
begin
|
|
TablaObrasInstaladores.Insert;
|
|
|
|
for NumeroCampo := 0 to FieldCount-1 do
|
|
begin
|
|
Valor := Fields[NumeroCampo].AsVariant;
|
|
TablaObrasInstaladores.Fields[NumeroCampo].AsVariant := Valor;
|
|
end;
|
|
TablaObrasInstaladores.Post;
|
|
Next;
|
|
end;
|
|
EnableControls;
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actAnadirPedidoExecute(Sender: TObject);
|
|
var
|
|
Nodo : TcxTreeListNode;
|
|
|
|
begin
|
|
//Pedidos
|
|
Nodo := tlApartadosObra.FindNodeByText(IntToStr(CTE_PNL_PEDIDOS), tlApartadosObra.Columns[0]);
|
|
Nodo := Nodo.AddChild;
|
|
Nodo.Texts[CTE_COL_PANEL] := IntToStr(CTE_PNL_PEDIDO);
|
|
Nodo.Texts[CTE_COL_DESCRIPCION] := 'Nuevo pedido' + '- ';
|
|
Nodo.Texts[CTE_COL_CODPEDIDO] := IntToStr(FCodigoPedidoAux);
|
|
Inc(FCodigoPedidoAux);
|
|
tlApartadosObra.Refresh;
|
|
Nodo.Focused := True;
|
|
|
|
CodigoPedido := Nodo.Texts[CTE_COL_CODPEDIDO];
|
|
end;
|
|
|
|
procedure TfrObra.SetCodigoPedido(const Value: Variant);
|
|
begin
|
|
if (EsCadenaVacia(Value)) then
|
|
Exit;
|
|
|
|
if (FCodigoPedido <> Value) then
|
|
begin
|
|
FCodigoPedido := Value;
|
|
BuscarPedidoObra;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.NombreProvPropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
begin
|
|
ContenidoModal := TfrProveedores.Create(Self);
|
|
end;
|
|
|
|
procedure TfrObra.SetCodigoProveedor(const Value: Variant);
|
|
var
|
|
DatosProveedor : TDatosProveedor;
|
|
|
|
begin
|
|
if (EsCadenaVacia(Value)) then
|
|
Exit;
|
|
|
|
if (FCodigoProveedor <> Value) then
|
|
begin
|
|
FCodigoProveedor := Value;
|
|
DatosProveedor := TDatosProveedor.Create(FCodigoProveedor);
|
|
with TablaObrasPedidos do
|
|
begin
|
|
if not (State in [dsEdit, dsInsert]) then
|
|
Edit;
|
|
FieldByName('CODIGOPROV').AsString := DatosProveedor.Codigo;
|
|
FieldByName('NOMBREPROV').AsString := DatosProveedor.Nombre;
|
|
FieldByName('TELEFONO1').AsString := DatosProveedor.Telefono1;
|
|
FieldByName('TELEFONO2').AsString := DatosProveedor.Telefono2;
|
|
FieldByName('MOVIL1').AsString := DatosProveedor.Movil1;
|
|
FieldByName('MOVIL2').AsString := DatosProveedor.Movil2;
|
|
FieldByName('FAX').AsString := DatosProveedor.Fax;
|
|
FieldByName('CORREO').AsString := DatosProveedor.Correo;
|
|
FieldByName('PERSONACONTACTO').AsString := DatosProveedor.PersonaContacto;
|
|
RefrescarDatosProveedor;
|
|
end;
|
|
FreeAndNil(DatosProveedor);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.BuscarPedidoObra;
|
|
begin
|
|
if not TablaObrasPedidos.Locate('CODIGO', FCodigoPedido, []) then
|
|
begin
|
|
//En el caso de no encontrarse el codigo de pedido es porque es nuevo y añadimos los datos base
|
|
TablaObrasPedidos.Insert;
|
|
TablaObrasPedidos.FieldByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
TablaObrasPedidos.FieldByName('CODIGO').AsString := FCodigoPedido;
|
|
TablaObrasPedidos.FieldByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
|
|
TablaObrasPedidos.FieldByName('USUARIO').AsString := dmBaseDatos.Usuario;
|
|
TablaObrasPedidos.FieldByName('DESCRIPCION').AsString := 'Nuevo pedido';
|
|
|
|
//Insertamos en la tabla de memoria las fases correspondientes al nuevo pedido
|
|
InicializarFases;
|
|
DescripcionPed.SetFocus;
|
|
end;
|
|
|
|
//En caso de cambiar de pedido se refrescan los datos de proveedor y de las fases correspondientes
|
|
RefrescarDatosProveedor;
|
|
RefrescarFases;
|
|
end;
|
|
|
|
procedure TfrObra.RefrescarDatosProveedor;
|
|
begin
|
|
eTelefono1Prov.Caption := TablaObrasPedidos.FieldByName('TELEFONO1').AsString;
|
|
eTelefono2Prov.Caption := TablaObrasPedidos.FieldByName('TELEFONO2').AsString;
|
|
eMovil1Prov.Caption := TablaObrasPedidos.FieldByName('MOVIL1').AsString;
|
|
eMovil2Prov.Caption := TablaObrasPedidos.FieldByName('MOVIL2').AsString;
|
|
eFaxProv.Caption := TablaObrasPedidos.FieldByName('FAX').AsString;
|
|
eCorreoProv.Caption := TablaObrasPedidos.FieldByName('CORREO').AsString;
|
|
ePersonaContactoProv.Caption := TablaObrasPedidos.FieldByName('PERSONACONTACTO').AsString;
|
|
end;
|
|
|
|
procedure TfrObra.RefrescarFases;
|
|
begin
|
|
with TablaFasesMem do
|
|
begin
|
|
First;
|
|
Locate('CODIGOPEDIDO', CodigoPedido, []);
|
|
|
|
if (FieldByName('COMPLETADA').AsInteger = CTE_TRUE)
|
|
then cxPed.Checked := True
|
|
else cxPed.Checked := False;
|
|
if FieldByName('FECHAINI').AsVariant = Null
|
|
then FechaPed.Text := ''
|
|
else FechaPed.Date := FieldByName('FECHAINI').AsDateTime;
|
|
ObservacionesPed.Text := FieldByName('OBSERVACIONES').AsString;
|
|
|
|
Next;
|
|
if (FieldByName('COMPLETADA').AsInteger = CTE_TRUE)
|
|
then cxCon.Checked := True
|
|
else cxCon.Checked := False;
|
|
if FieldByName('FECHAINI').AsVariant = Null
|
|
then FechaCon.Text := ''
|
|
else FechaCon.Date := FieldByName('FECHAINI').AsDateTime;
|
|
ObservacionesCon.Text := FieldByName('OBSERVACIONES').AsString;
|
|
|
|
Next;
|
|
if (FieldByName('COMPLETADA').AsInteger = CTE_TRUE)
|
|
then cxEna.Checked := True
|
|
else cxEna.Checked := False;
|
|
if FieldByName('FECHAINI').AsVariant = Null
|
|
then FechaEnaIni.Text := ''
|
|
else FechaEnaIni.Date := FieldByName('FECHAINI').AsDateTime;
|
|
if FieldByName('FECHAFIN').AsVariant = Null
|
|
then FechaEnaFin.Text := ''
|
|
else FechaEnaFin.Date := FieldByName('FECHAFIN').AsDateTime;
|
|
ObservacionesEna.Text := FieldByName('OBSERVACIONES').AsString;
|
|
|
|
Next;
|
|
if (FieldByName('COMPLETADA').AsInteger = CTE_TRUE)
|
|
then cxTra.Checked := True
|
|
else cxTra.Checked := False;
|
|
if FieldByName('FECHAINI').AsVariant = Null
|
|
then FechaTra.Text := ''
|
|
else FechaTra.Date := FieldByName('FECHAINI').AsDateTime;
|
|
ObservacionesTra.Text := FieldByName('OBSERVACIONES').AsString;
|
|
|
|
Next;
|
|
if (FieldByName('COMPLETADA').AsInteger = CTE_TRUE)
|
|
then cxEnt.Checked := True
|
|
else cxEnt.Checked := False;
|
|
if FieldByName('FECHAINI').AsVariant = Null
|
|
then FechaEnt.Text := ''
|
|
else FechaEnt.Date := FieldByName('FECHAINI').AsDateTime;
|
|
ObservacionesEnt.Text := FieldByName('OBSERVACIONES').AsString;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.InicializarFases;
|
|
begin
|
|
dmTablaTareas.rellenarTareasFase(TablaFasesMem, CodigoPedido);
|
|
TablaFasesMem.Post;
|
|
end;
|
|
|
|
procedure TfrObra.CargarDatosFases;
|
|
var
|
|
iContador : Integer;
|
|
begin
|
|
with TablaFasesMem do
|
|
begin
|
|
if TablaFases.IsEmpty then
|
|
exit;
|
|
|
|
DisableControls;
|
|
TablaFases.First;
|
|
while not TablaFases.EOF do
|
|
begin
|
|
Append;
|
|
for iContador := 0 to TablaFases.FieldCount-1 do
|
|
Fields[iContador].Value := TablaFases.Fields[iContador].Value;
|
|
Post;
|
|
TablaFases.Next;
|
|
end;
|
|
First;
|
|
EnableControls;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.pnlFasesPedidoExit(Sender: TObject);
|
|
begin
|
|
VolcarDatosFases;
|
|
end;
|
|
|
|
procedure TfrObra.FechaEnaFinPropertiesValidate(Sender: TObject;
|
|
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
begin
|
|
FechaEnaIni.Date := IncDay(FechaEnaFin.Date,-7);
|
|
end;
|
|
|
|
procedure TfrObra.FechaEnaIniPropertiesValidate(Sender: TObject;
|
|
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
begin
|
|
FechaEnaFin.Date := IncDay(FechaEnaIni.Date,7);
|
|
end;
|
|
|
|
procedure TfrObra.VolcarDatosFases;
|
|
begin
|
|
//Salvamos los cambios realizados en tabla de memoria
|
|
with TablaFasesMem do
|
|
begin
|
|
First;
|
|
Locate('CODIGOPEDIDO', CodigoPedido, []);
|
|
|
|
//Fase 1.Pedido
|
|
Edit;
|
|
if cxPed.Checked
|
|
then FieldByName('COMPLETADA').AsInteger := CTE_TRUE
|
|
else FieldByName('COMPLETADA').AsInteger := CTE_FALSE;
|
|
if FechaPed.Text = ''
|
|
then FieldByName('FECHAINI').AsVariant := Null
|
|
else FieldByName('FECHAINI').AsDateTime := FechaPed.Date;
|
|
FieldByName('OBSERVACIONES').AsString := ObservacionesPed.Text;
|
|
FieldByName('FECHAFIN').AsString := FieldByName('FECHAINI').AsString;
|
|
FieldByName('HORAINI').AsString := CTE_HORAINI;
|
|
FieldByName('HORAFIN').AsString := CTE_HORAFIN;
|
|
Post;
|
|
|
|
//Fase 2.Confirmado
|
|
Next;
|
|
Edit;
|
|
if cxCon.Checked
|
|
then FieldByName('COMPLETADA').AsInteger := CTE_TRUE
|
|
else FieldByName('COMPLETADA').AsInteger := CTE_FALSE;
|
|
if FechaCon.Text = ''
|
|
then FieldByName('FECHAINI').AsVariant := Null
|
|
else FieldByName('FECHAINI').AsDateTime := FechaCon.Date;
|
|
FieldByName('OBSERVACIONES').AsString := ObservacionesCon.Text;
|
|
FieldByName('FECHAFIN').AsString := FieldByName('FECHAINI').AsString;
|
|
FieldByName('HORAINI').AsString := CTE_HORAINI;
|
|
FieldByName('HORAFIN').AsString := CTE_HORAFIN;
|
|
Post;
|
|
|
|
//Fase 3.En almacen
|
|
Next;
|
|
Edit;
|
|
if cxEna.Checked
|
|
then FieldByName('COMPLETADA').AsInteger := CTE_TRUE
|
|
else FieldByName('COMPLETADA').AsInteger := CTE_FALSE;
|
|
if FechaEnaIni.Text = ''
|
|
then FieldByName('FECHAINI').AsVariant := Null
|
|
else FieldByName('FECHAINI').AsDateTime := FechaEnaIni.Date;
|
|
if FechaEnaFin.Text = ''
|
|
then FieldByName('FECHAFIN').AsVariant := Null
|
|
else FieldByName('FECHAFIN').AsDateTime := FechaEnaFin.Date;
|
|
FieldByName('OBSERVACIONES').AsString := ObservacionesEna.Text;
|
|
FieldByName('HORAINI').AsString := CTE_HORAINI;
|
|
FieldByName('HORAFIN').AsString := CTE_HORAFIN;
|
|
Post;
|
|
|
|
//Fase 4.Aviso Trans.
|
|
Next;
|
|
Edit;
|
|
if cxTra.Checked
|
|
then FieldByName('COMPLETADA').AsInteger := CTE_TRUE
|
|
else FieldByName('COMPLETADA').AsInteger := CTE_FALSE;
|
|
if FechaTra.Text = ''
|
|
then FieldByName('FECHAINI').AsVariant := Null
|
|
else FieldByName('FECHAINI').AsDateTime := FechaTra.Date;
|
|
FieldByName('OBSERVACIONES').AsString := ObservacionesTra.Text;
|
|
FieldByName('FECHAFIN').AsString := FieldByName('FECHAINI').AsString;
|
|
FieldByName('HORAINI').AsString := CTE_HORAINI;
|
|
FieldByName('HORAFIN').AsString := CTE_HORAFIN;
|
|
Post;
|
|
|
|
//Fase 4.Entregado.
|
|
Next;
|
|
Edit;
|
|
if cxEnt.Checked
|
|
then FieldByName('COMPLETADA').AsInteger := CTE_TRUE
|
|
else FieldByName('COMPLETADA').AsInteger := CTE_FALSE;
|
|
if FechaEnt.Text = ''
|
|
then FieldByName('FECHAINI').AsVariant := Null
|
|
else FieldByName('FECHAINI').AsDateTime := FechaEnt.Date;
|
|
FieldByName('OBSERVACIONES').AsString := ObservacionesEnt.Text;
|
|
FieldByName('FECHAFIN').AsString := FieldByName('FECHAINI').AsString;
|
|
FieldByName('HORAINI').AsString := CTE_HORAINI;
|
|
FieldByName('HORAFIN').AsString := CTE_HORAFIN;
|
|
Post;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.BorrarDatosFasesIB;
|
|
begin
|
|
dmTablaTareas.eliminarTareasPedidoObra(CodigoObra);
|
|
with TablaFases do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
Last;
|
|
while not BOF do
|
|
begin
|
|
Delete;
|
|
Prior;
|
|
end;
|
|
if not IsEmpty then
|
|
Delete;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.SalvarDatosFases;
|
|
var
|
|
NumeroCampo : Integer;
|
|
Valor : Variant;
|
|
CodigoPedido : Variant;
|
|
CodigoTarea : Variant;
|
|
begin
|
|
try
|
|
with TablaFasesMem do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
DisableControls;
|
|
First;
|
|
TablaFases.First;
|
|
while not EOF do
|
|
begin
|
|
TablaFases.Insert;
|
|
|
|
for NumeroCampo := 0 to FieldCount-1 do
|
|
begin
|
|
Valor := Fields[NumeroCampo].AsVariant;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'CODIGOPEDIDO') then
|
|
begin
|
|
CodigoPedido := Valor;
|
|
Continue;
|
|
end;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'FECHAALTA') then
|
|
Valor := dmBaseDatos.DarFecha;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'USUARIOALTA')
|
|
or (TablaFases.Fields[NumeroCampo].FieldName = 'USUARIO') then
|
|
Valor := dmBaseDatos.Usuario;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'CODIGO') then
|
|
begin
|
|
if Valor < 10 then
|
|
begin
|
|
Valor := dmTablaTareas.darNuevoCodigo;
|
|
dmTablaTareas.IncrementarCodigo;
|
|
end;
|
|
CodigoTarea := Valor;
|
|
end;
|
|
|
|
TablaFases.Fields[NumeroCampo].AsVariant := Valor;
|
|
end;
|
|
TablaFases.Post;
|
|
dmTablaTareas.insertarTareaPedidoObra(CodigoObra, CodigoPedido, CodigoTarea);
|
|
Next;
|
|
end;
|
|
EnableControls;
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarPedidoExecute(Sender: TObject);
|
|
var
|
|
Nodo : TcxTreeListNode;
|
|
begin
|
|
Nodo := tlApartadosObra.FocusedNode;
|
|
if (StrToInt(Nodo.Texts[CTE_COL_PANEL]) = CTE_PNL_PEDIDO) then
|
|
begin
|
|
if VerMensajePreguntaFmt(msgObrPrePedBorrar, [Nodo.Texts[CTE_COL_DESCRIPCION]]) = mrYES then
|
|
begin
|
|
EliminarPedido;
|
|
RefrescarListaApartadosObra;
|
|
end
|
|
end
|
|
else
|
|
VerMensaje (msgObrPedSelec);
|
|
end;
|
|
|
|
procedure TfrObra.EliminarPedido;
|
|
begin
|
|
TablaObrasPedidos.Delete;
|
|
|
|
//Eliminamos tambien todas las fases correspondientes en la tabla de memoria de tareas
|
|
TablaFasesMem.First;
|
|
TablaFasesMem.Locate('CODIGOPEDIDO', CodigoPedido, []);
|
|
while (TablaFasesMem.FieldByName('CodigoPedido').AsString = CodigoPedido) do
|
|
TablaFasesMem.Delete;
|
|
end;
|
|
|
|
procedure TfrObra.CargarDatosTareasObras;
|
|
var
|
|
iContador : Integer;
|
|
begin
|
|
with TablaTareasObrasMem do
|
|
begin
|
|
if TablaTareasObras.IsEmpty then
|
|
exit;
|
|
|
|
DisableControls;
|
|
TablaTareasObras.First;
|
|
while not TablaTareasObras.EOF do
|
|
begin
|
|
Append;
|
|
for iContador := 0 to TablaTareasObras.FieldCount-1 do
|
|
Fields[iContador].Value := TablaTareasObras.Fields[iContador].Value;
|
|
Post;
|
|
TablaTareasObras.Next;
|
|
end;
|
|
First;
|
|
EnableControls;
|
|
end;
|
|
end;
|
|
|
|
function TfrObra.existeInstaladorEnOtrasTareas: Boolean;
|
|
begin
|
|
TablaTareasObrasMem.First;
|
|
Result := TablaTareasObrasMem.Locate('CODIGOINSTALADOR', TablaObrasInstaladoresMem.FieldByName('CODIGOINSTALADOR').AsString, []);
|
|
end;
|
|
|
|
procedure TfrObra.SetTipoTarea(const Value: Variant);
|
|
begin
|
|
if (EsCadenaVacia(Value)) then
|
|
Exit;
|
|
|
|
if (FTipoTarea <> Value) then
|
|
begin
|
|
FTipoTarea := Value;
|
|
if FTipoTarea = CTE_ENTREGA then
|
|
pnlDatosOtro.Caption.Text := litObrEntregas
|
|
else if FTipoTarea = CTE_MONTAJE then
|
|
pnlDatosOtro.Caption.Text := litObrMontajes
|
|
else if FTipoTarea = CTE_REMATE then
|
|
pnlDatosOtro.Caption.Text := litObrRemates
|
|
else VerMensaje('Error: Tipo no existente');
|
|
|
|
AplicarFiltroGridTareasObras;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actAnadirTareaObraExecute(Sender: TObject);
|
|
begin
|
|
try
|
|
with TablaTareasObrasMem do
|
|
begin
|
|
Next;
|
|
if EOF then Append
|
|
else begin
|
|
Prior;
|
|
Insert;
|
|
end;
|
|
FieldByName('CODIGO').AsInteger := FContadorTareaObraAux;
|
|
FieldByName('TIPO').AsString := FTipoTarea;
|
|
FieldByName('COMPLETADA').AsInteger := 0;
|
|
FieldByName('CODIGOINSTALADOR').AsString := TablaObrasInstaladoresMem.FieldByName('CODIGOINSTALADOR').AsString;
|
|
FieldByName('FECHAINI').AsDateTime := dmBaseDatos.DarFecha;
|
|
FieldByName('DESCRIPCION').AsString := FTipoTarea;
|
|
Inc(FContadorTareaObraAux);
|
|
end;
|
|
|
|
gridTareasObrasDBTableView1.GetColumnByFieldName('DESCRIPCION').FocusWithSelection;
|
|
gridTareasObras.SetFocus;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarTareaObraExecute(Sender: TObject);
|
|
begin
|
|
if verMensajePregunta(msgObrEliminarDetalles) = mrYes then
|
|
begin
|
|
if TablaTareasObrasMem.RecordCount = 0 then begin
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|
recien creado }
|
|
TablaTareasObrasMem.Cancel;
|
|
Exit
|
|
end;
|
|
try
|
|
TablaTareasObrasMem.Delete;
|
|
//Para que se posicione el el primer registro de la lista de tareas con el filtro determinado
|
|
gridTareasObrasDBTableView1.DataController.GotoFirst;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarTodoTareaObraExecute(Sender: TObject);
|
|
begin
|
|
if verMensajePregunta(msgObrEliminarTodosDetalles) = mrYes then
|
|
begin
|
|
try
|
|
TablaTareasObrasMem.First;
|
|
while not TablaTareasObrasMem.EOF do
|
|
begin
|
|
if (TablaTareasObrasMem.FieldByName('TIPO').AsVariant = TipoTarea) then
|
|
TablaTareasObrasMem.Delete
|
|
else
|
|
TablaTareasObrasMem.Next;
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.BorrarDatosTareasObrasIB;
|
|
begin
|
|
dmTablaTareas.eliminarTareasInstaladorObra(CodigoObra);
|
|
with TablaTareasObras do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
Last;
|
|
while not BOF do
|
|
begin
|
|
Delete;
|
|
Prior;
|
|
end;
|
|
if not IsEmpty then
|
|
Delete;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.SalvarDatosTareasObras;
|
|
var
|
|
NumeroCampo : Integer;
|
|
Valor : Variant;
|
|
CodigoInstalador : Variant;
|
|
CodigoTarea : Variant;
|
|
begin
|
|
try
|
|
with TablaTareasObrasMem do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
DisableControls;
|
|
First;
|
|
TablaTareasObras.First;
|
|
while not EOF do
|
|
begin
|
|
TablaTareasObras.Insert;
|
|
|
|
for NumeroCampo := 0 to FieldCount-1 do
|
|
begin
|
|
Valor := Fields[NumeroCampo].AsVariant;
|
|
|
|
if (TablaTareasObras.Fields[NumeroCampo].FieldName = 'CODIGOINSTALADOR') then
|
|
begin
|
|
CodigoInstalador := Valor;
|
|
Continue;
|
|
end;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'FECHAALTA') then
|
|
Valor := dmBaseDatos.DarFecha;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'USUARIOALTA')
|
|
or (TablaFases.Fields[NumeroCampo].FieldName = 'USUARIO') then
|
|
Valor := dmBaseDatos.Usuario;
|
|
|
|
if (TablaTareasObras.Fields[NumeroCampo].FieldName = 'CODIGO') then
|
|
begin
|
|
if Valor < 500000 then
|
|
begin
|
|
Valor := dmTablaTareas.darNuevoCodigo;
|
|
dmTablaTareas.IncrementarCodigo;
|
|
end;
|
|
CodigoTarea := Valor;
|
|
end;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'FECHAFIN') then
|
|
Valor := TablaFases.FieldByName('FECHAINI').AsVariant;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'HORAINI') then
|
|
Valor := CTE_HORAINI;
|
|
|
|
if (TablaFases.Fields[NumeroCampo].FieldName = 'HORAFIN') then
|
|
Valor := CTE_HORAFIN;
|
|
|
|
TablaTareasObras.Fields[NumeroCampo].AsVariant := Valor;
|
|
end;
|
|
TablaTareasObras.Post;
|
|
dmTablaTareas.insertarTareaInstaladorObra(CodigoObra, CodigoInstalador, CodigoTarea);
|
|
Next;
|
|
end;
|
|
EnableControls;
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.AplicarFiltroGridTareasObras;
|
|
begin
|
|
with gridTareasObras.ActiveView.DataController.Filter do
|
|
begin
|
|
BeginUpdate;
|
|
try
|
|
Root.Clear;
|
|
Root.AddItem((gridTareasObras.ActiveView as TcxGridDBTableView).GetColumnByFieldName('TIPO'), foLike, TipoTarea, 'Tipo');
|
|
Active := True;
|
|
finally
|
|
EndUpdate;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.crearTablaInfPedidos;
|
|
begin
|
|
//Creamos la tabla con los campos que vamos a tener el informe
|
|
FTablaInformePedidosMem := TRxMemoryData.Create(Self);
|
|
with FTablaInformePedidosMem do
|
|
begin
|
|
FieldDefs.Add('CODIGOCONTRATO',ftString,12);
|
|
FieldDefs.Items[FieldDefs.IndexOf('CODIGOCONTRATO')].CreateField(Self);
|
|
FieldDefs.Add('CODIGOPEDIDO',ftString,10);
|
|
FieldDefs.Items[FieldDefs.IndexOf('CODIGOPEDIDO')].CreateField(Self);
|
|
FieldDefs.Add('DESCRIPCIONPROVEEDOR',ftString,200);
|
|
FieldDefs.Items[FieldDefs.IndexOf('DESCRIPCIONPROVEEDOR')].CreateField(Self);
|
|
FieldDefs.Add('CODIGOTAREA',ftString,10);
|
|
FieldDefs.Items[FieldDefs.IndexOf('CODIGOTAREA')].CreateField(Self);
|
|
FieldDefs.Add('DESCRIPCIONTAREA',ftString,2000);
|
|
FieldDefs.Items[FieldDefs.IndexOf('DESCRIPCIONTAREA')].CreateField(Self);
|
|
FieldDefs.Add('COMPLETADA',ftString,1);
|
|
FieldDefs.Items[FieldDefs.IndexOf('COMPLETADA')].CreateField(Self);
|
|
FieldDefs.Add('FECHAINI',ftString,50);
|
|
FieldDefs.Items[FieldDefs.IndexOf('FECHAINI')].CreateField(Self);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.rellenarTablaInfPedidos;
|
|
var
|
|
Nodo : TcxTreeListNode;
|
|
|
|
begin
|
|
FTablaInformePedidosMem.EmptyTable;
|
|
FTablaInformePedidosMem.Open;
|
|
|
|
TablaFasesMem.SortOnFields('CODIGOPEDIDO;CODIGO');
|
|
with TablaFasesMem do
|
|
begin
|
|
DisableControls;
|
|
First;
|
|
FTablaInformePedidosMem.First;
|
|
while not Eof do
|
|
begin
|
|
FTablaInformePedidosMem.Append;
|
|
FTablaInformePedidosMem.FieldByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
FTablaInformePedidosMem.FieldByName('CODIGOPEDIDO').AsString := FieldByName('CODIGOPEDIDO').AsString;
|
|
FTablaInformePedidosMem.FieldByName('CODIGOTAREA').AsString := FieldByName('CODIGO').AsString;
|
|
FTablaInformePedidosMem.FieldByName('COMPLETADA').AsString := FieldByName('COMPLETADA').AsString;
|
|
FTablaInformePedidosMem.FieldByName('FECHAINI').AsString := FieldByName('FECHAINI').AsString;
|
|
FTablaInformePedidosMem.FieldByName('DESCRIPCIONTAREA').AsString := FieldByName('DESCRIPCION').AsString;
|
|
//La descripción del pedido junto con el proveedor la sacamos de la lista desplegable
|
|
Nodo := tlApartadosObra.FindNodeByText(FieldByName('CODIGOPEDIDO').AsString,ColCodigoPedido);
|
|
if Nodo <> Nil
|
|
then FTablaInformePedidosMem.FieldByName('DESCRIPCIONPROVEEDOR').AsString := Nodo.Texts[CTE_COL_DESCRIPCION]
|
|
else FTablaInformePedidosMem.FieldByName('DESCRIPCIONPROVEEDOR').AsVariant := Null;
|
|
FTablaInformePedidosMem.Post;
|
|
FTablaInformePedidosMem.Next;
|
|
Next;
|
|
end;
|
|
EnableControls;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.crearTablaInfTareas;
|
|
begin
|
|
//Creamos la tabla con los campos que vamos a tener el informe
|
|
FTablaInformeTareasMem := TRxMemoryData.Create(Self);
|
|
with FTablaInformeTareasMem do
|
|
begin
|
|
FieldDefs.Add('CODIGOCONTRATO',ftString,12);
|
|
FieldDefs.Items[FieldDefs.IndexOf('CODIGOCONTRATO')].CreateField(Self);
|
|
FieldDefs.Add('CODIGOINSTALADOR',ftString,10);
|
|
FieldDefs.Items[FieldDefs.IndexOf('CODIGOINSTALADOR')].CreateField(Self);
|
|
FieldDefs.Add('INSTALADOR',ftString,200);
|
|
FieldDefs.Items[FieldDefs.IndexOf('INSTALADOR')].CreateField(Self);
|
|
FieldDefs.Add('CODIGOTAREA',ftString,10);
|
|
FieldDefs.Items[FieldDefs.IndexOf('CODIGOTAREA')].CreateField(Self);
|
|
FieldDefs.Add('TIPO',ftString,100);
|
|
FieldDefs.Items[FieldDefs.IndexOf('TIPO')].CreateField(Self);
|
|
FieldDefs.Add('DESCRIPCION',ftString,2000);
|
|
FieldDefs.Items[FieldDefs.IndexOf('DESCRIPCION')].CreateField(Self);
|
|
FieldDefs.Add('COMPLETADA',ftString,1);
|
|
FieldDefs.Items[FieldDefs.IndexOf('COMPLETADA')].CreateField(Self);
|
|
FieldDefs.Add('FECHAINI',ftString,50);
|
|
FieldDefs.Items[FieldDefs.IndexOf('FECHAINI')].CreateField(Self);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.rellenarTablaInfTareas;
|
|
begin
|
|
FTablaInformeTareasMem.EmptyTable;
|
|
FTablaInformeTareasMem.Open;
|
|
|
|
TablaTareasObrasMem.SortOnFields('CODIGOINSTALADOR;TIPO;FECHAINI');
|
|
with TablaTareasObrasMem do
|
|
begin
|
|
DisableControls;
|
|
First;
|
|
FTablaInformeTareasMem.First;
|
|
while not Eof do
|
|
begin
|
|
FTablaInformeTareasMem.Append;
|
|
FTablaInformeTareasMem.FieldByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
FTablaInformeTareasMem.FieldByName('CODIGOINSTALADOR').AsString := FieldByName('CODIGOINSTALADOR').AsString;
|
|
FTablaInformeTareasMem.FieldByName('INSTALADOR').AsString := FieldByName('CODIGOINSTALADOR').AsString;
|
|
FTablaInformeTareasMem.FieldByName('CODIGOTAREA').AsString := FieldByName('CODIGO').AsString;
|
|
FTablaInformeTareasMem.FieldByName('TIPO').AsString := FieldByName('TIPO').AsString;
|
|
FTablaInformeTareasMem.FieldByName('COMPLETADA').AsString := FieldByName('COMPLETADA').AsString;
|
|
FTablaInformeTareasMem.FieldByName('FECHAINI').AsString := FieldByName('FECHAINI').AsString;
|
|
FTablaInformeTareasMem.FieldByName('DESCRIPCION').AsString := FieldByName('DESCRIPCION').AsString;
|
|
//La descripción del pedido junto con el proveedor la sacamos de la lista desplegable
|
|
// FTablaInformePedidosMem.FieldByName('DESCRIPCIONPROVEEDOR').AsString := (tlApartadosObra.FindNodeByText(FieldByName('CODIGOPEDIDO').AsString,ColCodigoPedido)).Texts[CTE_COL_DESCRIPCION];
|
|
FTablaInformeTareasMem.Post;
|
|
FTablaInformeTareasMem.Next;
|
|
Next;
|
|
end;
|
|
EnableControls;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.activarModoModificarTablasObra;
|
|
begin
|
|
with TablaObras do
|
|
begin
|
|
ParamByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
FieldByName('PROVINCIA').OnSetText := ProvinciaSetText;
|
|
if RecordCount = 0 then
|
|
begin
|
|
VerMensajeFmt(msgObrNoExisteObr, [CodigoObra]);
|
|
CancelarModificar;
|
|
CloseFrame;
|
|
Exit;
|
|
end;
|
|
// Bloquear el Obra
|
|
Edit;
|
|
Post;
|
|
Edit;
|
|
end;
|
|
|
|
with TablaObrasInstaladores do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaObrasInstaladoresMem do
|
|
begin
|
|
Close;
|
|
Open;
|
|
CargarDatosInstaladores;
|
|
if not IsEmpty then
|
|
Edit;
|
|
end;
|
|
|
|
with TablaObrasGastos do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaObrasGastosMem do
|
|
begin
|
|
Close;
|
|
Open;
|
|
CargarDatosGastos;
|
|
if TablaObrasGastos.RecordCount = -1
|
|
then FContadorGastosAux := 0
|
|
else FContadorGastosAux := TablaObrasGastos.RecordCount;
|
|
if not IsEmpty then
|
|
Edit;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.activarModoConsultarTablasObra;
|
|
begin
|
|
with TablaObras do
|
|
begin
|
|
ParamByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
FieldByName('PROVINCIA').OnSetText := Nil;
|
|
if RecordCount = 0 then
|
|
begin
|
|
VerMensajeFmt(msgObrNoExisteObr, [CodigoObra]);
|
|
CancelarModificar;
|
|
CloseFrame;
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
with TablaObrasInstaladores do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaObrasInstaladoresMem do
|
|
begin
|
|
Close;
|
|
Open;
|
|
CargarDatosInstaladores;
|
|
end;
|
|
|
|
with TablaObrasGastos do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaObrasGastosMem do
|
|
begin
|
|
Close;
|
|
Open;
|
|
CargarDatosGastos;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.activarModoTablasPedidos;
|
|
begin
|
|
with TablaObrasPedidos do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaFases do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaFasesMem do
|
|
begin
|
|
Close;
|
|
Open;
|
|
CargarDatosFases;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.activarModoConsultarTablasTareas;
|
|
begin
|
|
with TablaTareasObras do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaTareasObrasMem do
|
|
begin
|
|
Close;
|
|
Open;
|
|
CargarDatosTareasObras;
|
|
if TablaTareasObras.RecordCount = -1
|
|
then FContadorTareaObraAux := 0
|
|
else FContadorTareaObraAux := TablaTareasObras.RecordCount;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.activarModoModificarTablasTareas;
|
|
begin
|
|
with TablaTareasObras do
|
|
begin
|
|
Close;
|
|
Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaTareasObrasMem do
|
|
begin
|
|
Close;
|
|
Open;
|
|
CargarDatosTareasObras;
|
|
if TablaTareasObras.RecordCount = -1
|
|
then FContadorTareaObraAux := 0
|
|
else FContadorTareaObraAux := TablaTareasObras.RecordCount;
|
|
if not IsEmpty then
|
|
Edit;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.ActivarBarrasGrids;
|
|
begin
|
|
pnlBarraInstaladores.Visible := True;
|
|
pnlBarraOtrosGastos.Visible := True;
|
|
pnlBarraOtro.Visible := True;
|
|
end;
|
|
|
|
procedure TfrObra.DesactivarBarrasGrids;
|
|
begin
|
|
pnlBarraInstaladores.Visible := False;
|
|
pnlBarraOtrosGastos.Visible := False;
|
|
pnlBarraOtro.Visible := False;
|
|
end;
|
|
|
|
procedure TfrObra.ActivarCamposPedido;
|
|
begin
|
|
cxPed.Properties.ReadOnly := False;
|
|
cxTra.Properties.ReadOnly := False;
|
|
cxCon.Properties.ReadOnly := False;
|
|
cxEnt.Properties.ReadOnly := False;
|
|
cxEna.Properties.ReadOnly := False;
|
|
|
|
FechaPed.Properties.ReadOnly := False;
|
|
FechaTra.Properties.ReadOnly := False;
|
|
FechaCon.Properties.ReadOnly := False;
|
|
FechaEnt.Properties.ReadOnly := False;
|
|
FechaEnaIni.Properties.ReadOnly := False;
|
|
FechaEnaFin.Properties.ReadOnly := False;
|
|
|
|
ObservacionesPed.Properties.ReadOnly := False;
|
|
ObservacionesTra.Properties.ReadOnly := False;
|
|
ObservacionesCon.Properties.ReadOnly := False;
|
|
ObservacionesEnt.Properties.ReadOnly := False;
|
|
ObservacionesEna.Properties.ReadOnly := False;
|
|
end;
|
|
|
|
procedure TfrObra.DesactivarCamposPedido;
|
|
begin
|
|
cxPed.Properties.ReadOnly := True;
|
|
cxTra.Properties.ReadOnly := True;
|
|
cxCon.Properties.ReadOnly := True;
|
|
cxEnt.Properties.ReadOnly := True;
|
|
cxEna.Properties.ReadOnly := True;
|
|
|
|
FechaPed.Properties.ReadOnly := True;
|
|
FechaTra.Properties.ReadOnly := True;
|
|
FechaCon.Properties.ReadOnly := True;
|
|
FechaEnt.Properties.ReadOnly := True;
|
|
FechaEnaIni.Properties.ReadOnly := True;
|
|
FechaEnaFin.Properties.ReadOnly := True;
|
|
|
|
ObservacionesPed.Properties.ReadOnly := True;
|
|
ObservacionesTra.Properties.ReadOnly := True;
|
|
ObservacionesCon.Properties.ReadOnly := True;
|
|
ObservacionesEnt.Properties.ReadOnly := True;
|
|
ObservacionesEna.Properties.ReadOnly := True;
|
|
end;
|
|
|
|
procedure TfrObra.crearTablasObra;
|
|
begin
|
|
TablaObras := TIBDataSet.Create(Self);
|
|
dsObras.DataSet := TablaObras;
|
|
with TablaObras do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaObras.sqlConsultar);
|
|
ModifySQL.Assign(dmTablaObras.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaObras.sqlEliminar);
|
|
RefreshSQL.Assign(dmTablaObras.sqlConsultar);
|
|
end;
|
|
|
|
TablaObrasInstaladores := TIBDataSet.Create(Self);
|
|
TablaObrasInstaladoresMem := TRxMemoryData.Create(Self);
|
|
dsObrasInstaladores.DataSet := TablaObrasInstaladoresMem;
|
|
with TablaObrasInstaladores do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaObrasInstaladores.sqlGrid);
|
|
InsertSQL.Assign(dmTablaObrasInstaladores.sqlInsertar);
|
|
ModifySQL.Assign(dmTablaObrasInstaladores.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaObrasInstaladores.sqlEliminar);
|
|
RefreshSQL.Assign(dmTablaObrasInstaladores.sqlConsultar);
|
|
end;
|
|
TablaObrasInstaladoresMem.CopyStructure(TablaObrasInstaladores);
|
|
dmTablaObrasInstaladores.InicializarGrid(gridInstaladoresDBTableView1);
|
|
|
|
TablaObrasGastos := TIBDataSet.Create(Self);
|
|
TablaObrasGastosMem := TRxMemoryData.Create(Self);
|
|
dsObrasGastos.DataSet := TablaObrasGastosMem;
|
|
with TablaObrasGastos do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaObrasGastos.sqlGrid);
|
|
InsertSQL.Assign(dmTablaObrasGastos.sqlInsertar);
|
|
ModifySQL.Assign(dmTablaObrasGastos.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaObrasGastos.sqlEliminar);
|
|
RefreshSQL.Assign(dmTablaObrasGastos.sqlConsultar);
|
|
end;
|
|
TablaObrasGastosMem.CopyStructure(TablaObrasGastos);
|
|
dmTablaObrasGastos.InicializarGrid(gridOtrosGastosDBTableView1);
|
|
end;
|
|
|
|
procedure TfrObra.crearTablasPedidos;
|
|
begin
|
|
TablaObrasPedidos := TIBDataSet.Create(Self);
|
|
dsObrasPedidos.DataSet := TablaObrasPedidos;
|
|
with TablaObrasPedidos do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaObrasPedidos.sqlGrid);
|
|
InsertSQL.Assign(dmTablaObrasPedidos.sqlInsertar);
|
|
ModifySQL.Assign(dmTablaObrasPedidos.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaObrasPedidos.sqlEliminar);
|
|
RefreshSQL.Assign(dmTablaObrasPedidos.sqlConsultar);
|
|
end;
|
|
|
|
TablaFases := TIBDataSet.Create(Self);
|
|
TablaFasesMem := TRxMemoryData.Create(Self);
|
|
with TablaFases do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaTareas.sqlGrid);
|
|
InsertSQL.Assign(dmTablaTareas.sqlInsertar);
|
|
ModifySQL.Assign(dmTablaTareas.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaTareas.sqlEliminar);
|
|
RefreshSQL.Assign(dmTablaTareas.sqlConsultar);
|
|
end;
|
|
TablaFasesMem.CopyStructure(TablaFases);
|
|
|
|
DataSource1.DataSet := TablaFasesMem;
|
|
|
|
end;
|
|
|
|
procedure TfrObra.crearTablasTareas;
|
|
begin
|
|
TablaTareasObras := TIBDataSet.Create(Self);
|
|
TablaTareasObrasMem := TRxMemoryData.Create(Self);
|
|
dsTareasObras.DataSet := TablaTareasObrasMem;
|
|
with TablaTareasObras do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaTareas.sqlTareasObrasGrid);
|
|
InsertSQL.Assign(dmTablaTareas.sqlInsertar);
|
|
ModifySQL.Assign(dmTablaTareas.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaTareas.sqlEliminar);
|
|
RefreshSQL.Assign(dmTablaTareas.sqlConsultar);
|
|
end;
|
|
TablaTareasObrasMem.CopyStructure(TablaTareasObras);
|
|
dmTablaTareas.InicializarGridTareasObras(gridTareasObrasDBTableView1);
|
|
with TcxLookupComboBoxProperties(gridTareasObrasDBTableView1.GetColumnByFieldName('CODIGOINSTALADOR').Properties) do
|
|
begin
|
|
ListSource := dsObrasInstaladores;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.crearInformes;
|
|
begin
|
|
FVistaPrevia := TfrVistaPrevia.Create(Self);
|
|
FVistaPrevia.Parent := pnlVistaPrevia;
|
|
FVistaPrevia.bCancelar.Visible := False;
|
|
|
|
crearTablaInfPedidos;
|
|
FInformePedidos := TdmInformeListadoPedidosObra.Create(Self);
|
|
FInformePedidos.Preview := FVistaPrevia.Preview;
|
|
|
|
crearTablaInfTareas;
|
|
FInformeOtros := TdmInformeListadoTareasObra.Create(Self);
|
|
FInformeOtros.Preview := FVistaPrevia.Preview;
|
|
end;
|
|
|
|
procedure TfrObra.destruirTablasObra;
|
|
begin
|
|
TablaObras.Close;
|
|
TablaObras.Unprepare;
|
|
TablaObras.Free;
|
|
TablaObras := Nil;
|
|
|
|
|
|
TablaObrasInstaladores.Close;
|
|
TablaObrasInstaladores.UnPrepare;
|
|
TablaObrasInstaladores.Free;
|
|
TablaObrasInstaladores := Nil;
|
|
TablaObrasInstaladoresMem.Free;
|
|
TablaObrasInstaladoresMem := Nil;
|
|
|
|
TablaObrasGastos.Close;
|
|
TablaObrasGastos.UnPrepare;
|
|
TablaObrasGastos.Free;
|
|
TablaObrasGastos := Nil;
|
|
TablaObrasGastosMem.Free;
|
|
TablaObrasGastosMem := Nil;
|
|
end;
|
|
|
|
procedure TfrObra.destruirTablasPedidos;
|
|
begin
|
|
TablaObrasPedidos.Close;
|
|
TablaObrasPedidos.UnPrepare;
|
|
TablaObrasPedidos.Free;
|
|
TablaObrasPedidos := Nil;
|
|
|
|
TablaFases.Close;
|
|
TablaFases.UnPrepare;
|
|
TablaFases.Free;
|
|
TablaFases := Nil;
|
|
TablaFasesMem.Free;
|
|
TablaFasesMem := Nil;
|
|
end;
|
|
|
|
procedure TfrObra.destruirTablasTareas;
|
|
begin
|
|
TablaTareasObras.Close;
|
|
TablaTareasObras.UnPrepare;
|
|
TablaTareasObras.Free;
|
|
TablaTareasObras := Nil;
|
|
TablaTareasObrasMem.Free;
|
|
TablaTareasObrasMem := Nil;
|
|
end;
|
|
|
|
procedure TfrObra.destruirInformes;
|
|
begin
|
|
FTablaInformePedidosMem.Free;
|
|
FTablaInformePedidosMem := Nil;
|
|
FTablaInformeTareasMem.Free;
|
|
FTablaInformeTareasMem := Nil;
|
|
FreeAndNil(FInformePedidos);
|
|
FreeAndNil(FInformeOtros);
|
|
end;
|
|
|
|
procedure TfrObra.ActivarModoEliminar;
|
|
begin
|
|
dsObras.AutoEdit := False;
|
|
dsObrasInstaladores.AutoEdit := False;
|
|
dsObrasGastos.AutoEdit := False;
|
|
dsObrasPedidos.AutoEdit := False;
|
|
dsTareasObras.AutoEdit := False;
|
|
|
|
actAnadirPedido.Enabled := False;
|
|
actEliminarPedido.Enabled := False;
|
|
|
|
Provincia.Properties.Buttons[0].Visible := False;
|
|
Poblacion.Properties.Buttons[0].Visible := False;
|
|
NombreProv.Properties.Buttons[0].Visible := False;
|
|
|
|
DesactivarBarrasGrids;
|
|
DesactivarCamposPedido;
|
|
|
|
try
|
|
activarModoConsultarTablasObra;
|
|
activarModoTablasPedidos;
|
|
activarModoConsultarTablasTareas;
|
|
Visible := True;
|
|
FechaFin.SetFocus;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
function TfrObra.CancelarEliminar: Boolean;
|
|
begin
|
|
Result := False;
|
|
try
|
|
RollBack;
|
|
TablaObras.Close;
|
|
|
|
TablaObrasInstaladores.Close;
|
|
TablaObrasInstaladoresMem.Close;
|
|
TablaObrasGastos.Close;
|
|
TablaObrasGastosMem.Close;
|
|
|
|
TablaObrasPedidos.Close;
|
|
TablaFases.Close;
|
|
TablaFasesMem.Close;
|
|
|
|
TablaTareasObras.Close;
|
|
TablaTareasObrasMem.Close;
|
|
|
|
Result := True;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
function TfrObra.EliminarDatos: Boolean;
|
|
begin
|
|
Result := False;
|
|
try
|
|
TablaObras.Delete;
|
|
BorrarDatosFasesIB;
|
|
BorrarDatosTareasObrasIB;
|
|
|
|
Commit;
|
|
|
|
TablaObras.Close;
|
|
TablaObrasInstaladores.Close;
|
|
TablaObrasInstaladoresMem.Close;
|
|
TablaObrasGastos.Close;
|
|
TablaObrasGastosMem.Close;
|
|
|
|
TablaObrasPedidos.Close;
|
|
TablaFases.Close;
|
|
TablaFasesMem.Close;
|
|
|
|
TablaTareasObras.Close;
|
|
TablaTareasObrasMem.Close;
|
|
|
|
Result := True;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.actSalirExecute(Sender: TObject);
|
|
begin
|
|
CloseFrame;
|
|
end;
|
|
|
|
function TfrObra.CloseFrame: Boolean;
|
|
begin
|
|
FInformePedidos.Preview := NIL;
|
|
FInformeOtros.Preview := NIL;
|
|
(FVistaPrevia as TRdxFrame).CloseFrame;
|
|
Result := inherited CloseFrame;
|
|
end;
|
|
|
|
function TfrObra.TratarCambios: integer;
|
|
begin
|
|
HabilitarPanelObra;
|
|
Result := inherited TratarCambios;
|
|
end;
|
|
|
|
procedure TfrObra.HabilitarPanelTareas;
|
|
begin
|
|
pnlDetalleObra.Visible := False;
|
|
pnlDetallePedidosOtros.Visible := False;
|
|
pnlDetallePedido.Visible := False;
|
|
pnlDetalleOtro.Visible := True;
|
|
end;
|
|
|
|
procedure TfrObra.HabilitarPanelPedido;
|
|
begin
|
|
pnlDetalleObra.Visible := False;
|
|
pnlDetallePedidosOtros.Visible := False;
|
|
pnlDetallePedido.Visible := True;
|
|
pnlDetalleOtro.Visible := False;
|
|
end;
|
|
|
|
procedure TfrObra.HabilitarPanelObra;
|
|
begin
|
|
pnlDetalleObra.Visible := True;
|
|
pnlDetallePedidosOtros.Visible := False;
|
|
pnlDetallePedido.Visible := False;
|
|
pnlDetalleOtro.Visible := False;
|
|
end;
|
|
|
|
procedure TfrObra.HabilitarPanelInforme;
|
|
begin
|
|
pnlDetalleObra.Visible := False;
|
|
pnlDetallePedidosOtros.Visible := True;
|
|
pnlDetallePedido.Visible := False;
|
|
pnlDetalleOtro.Visible := False;
|
|
end;
|
|
|
|
procedure TfrObra.pnlOtrosDatosResize(Sender: TObject);
|
|
begin
|
|
pnlInstaladores.Width := pnlOtrosDatos.Width div 2;
|
|
pnlOtrosGastos.Width := pnlOtrosDatos.Width div 2;
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarTareaObraUpdate(Sender: TObject);
|
|
begin
|
|
(Sender as TAction).Enabled := (gridTareasObrasDBTableView1.ViewData.RowCount <> 0);
|
|
end;
|
|
|
|
procedure TfrObra.actEliminarTodoTareaObraUpdate(Sender: TObject);
|
|
begin
|
|
(Sender as TAction).Enabled := (gridTareasObrasDBTableView1.ViewData.RowCount <> 0);
|
|
end;
|
|
|
|
procedure TfrObra.NombreProvPropertiesChange(Sender: TObject);
|
|
begin
|
|
refrescarNombrePedido;
|
|
end;
|
|
|
|
procedure TfrObra.refrescarNombrePedido;
|
|
var
|
|
Nodo : TcxTreeListNode;
|
|
begin
|
|
Nodo := tlApartadosObra.FocusedNode;
|
|
Nodo.Texts[CTE_COL_DESCRIPCION] := DescripcionPed.Text + '- ' + NombreProv.Text;
|
|
end;
|
|
|
|
procedure TfrObra.DescripcionPedPropertiesChange(Sender: TObject);
|
|
begin
|
|
refrescarNombrePedido;
|
|
end;
|
|
|
|
procedure TfrObra.gridTareasObrasDBTableView1CustomDrawCell(
|
|
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
|
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|
var
|
|
IndiceCol : Integer;
|
|
begin
|
|
if not AViewInfo.Selected then
|
|
begin
|
|
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName('COMPLETADA').Index;
|
|
if StrToBool(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) then
|
|
begin
|
|
ACanvas.Canvas.Font.Color := clGray;
|
|
ACanvas.Canvas.Font.Style := [fsStrikeOut];
|
|
end
|
|
else
|
|
begin
|
|
ACanvas.Canvas.Font.Color := clWindowText;
|
|
ACanvas.Canvas.Font.Style := [];
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrObra.ActivarInforme(Panel: Integer);
|
|
var
|
|
Nodo : TcxTreeListNode;
|
|
|
|
begin
|
|
Nodo := tlApartadosObra.FindNodeByText(IntToStr(Panel), ColPanel);
|
|
if Nodo <> Nil then
|
|
Nodo.Focused := True;
|
|
end;
|
|
|
|
end.
|