1472 lines
41 KiB
ObjectPascal
1472 lines
41 KiB
ObjectPascal
|
|
unit Obra2;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
|
Dialogs, RdxDBFrame, RdxFrame, cxStyles, cxCustomData, cxGraphics,
|
|||
|
|
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel,
|
|||
|
|
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
|
|||
|
|
cxGridCardView, cxGridDBCardView, cxGrid, RdxBotones, RdxPaneles,
|
|||
|
|
ExtCtrls, cxMaskEdit, cxButtonEdit, cxDBEdit, cxContainer, cxTextEdit,
|
|||
|
|
StdCtrls, ComCtrls, RdxPageControl, cxDropDownEdit, cxCalendar, cxMemo,
|
|||
|
|
AdvPanel, RdxFrameObras, ActnList, RdxBarras, Grids, DBGrids,
|
|||
|
|
JvExExtCtrls, JvComponent, JvItemsPanel, JvExComCtrls, JvHeaderControl,
|
|||
|
|
JvExControls, JvArrayButton, IBCustomDataSet, cxSchedulerStorage,
|
|||
|
|
cxSchedulerDBStorage, Menus, cxScheduler, cxSchedulerCustomControls,
|
|||
|
|
cxSchedulerCustomResourceView, cxSchedulerDayView, RxMemDS,
|
|||
|
|
cxSchedulerDateNavigator, cxSchedulerWeekView, JvExGrids, JvStringGrid,
|
|||
|
|
cxGridTableView, cxGridDBTableView, TablaCitas, IBDatabase, InformeEstadoObra,
|
|||
|
|
cxDBLookupComboBox, IBSQLMonitor, cxLookupEdit, cxDBLookupEdit, IBQuery;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TfrObra2 = class(TRdxFrameObras)
|
|||
|
|
Paginas: TRdxPagesControl;
|
|||
|
|
pagPedidos: TTabSheet;
|
|||
|
|
pnlDatosObra: TPanel;
|
|||
|
|
eCodigo: TLabel;
|
|||
|
|
eNIFCIF: TLabel;
|
|||
|
|
eObservaciones: TLabel;
|
|||
|
|
Observaciones: TcxDBMemo;
|
|||
|
|
CodigoContrato: TcxDBTextEdit;
|
|||
|
|
pagGastos: TTabSheet;
|
|||
|
|
Label20: TLabel;
|
|||
|
|
dsObras: TDataSource;
|
|||
|
|
brDoble: TRdxBarraInferior;
|
|||
|
|
bGuardar: TRdxBoton;
|
|||
|
|
bCancelar: TRdxBoton;
|
|||
|
|
DatosCliente: TcxMemo;
|
|||
|
|
Label1: TLabel;
|
|||
|
|
Shape1: TShape;
|
|||
|
|
JvItemsPanel1: TJvItemsPanel;
|
|||
|
|
JvHeaderControl1: TJvHeaderControl;
|
|||
|
|
JvArrayButton1: TJvArrayButton;
|
|||
|
|
dsCitas: TDataSource;
|
|||
|
|
TablaCitas: TIBDataSet;
|
|||
|
|
DBGrid1: TDBGrid;
|
|||
|
|
Splitter1: TSplitter;
|
|||
|
|
cxSchedulerDBStorage: TcxSchedulerDBStorage;
|
|||
|
|
pagEntregas: TTabSheet;
|
|||
|
|
Panel1: TPanel;
|
|||
|
|
JvStringGrid1: TJvStringGrid;
|
|||
|
|
pagMontajes: TTabSheet;
|
|||
|
|
pagRemates: TTabSheet;
|
|||
|
|
pnlOtrosDatos: TPanel;
|
|||
|
|
pnlInstaladores: TPanel;
|
|||
|
|
bEliminar: TRdxBoton;
|
|||
|
|
bAnadir: TRdxBoton;
|
|||
|
|
bEliminarTodo: TRdxBoton;
|
|||
|
|
gridInstaladores: TcxGrid;
|
|||
|
|
gridInstaladoresVista: TcxGridDBTableView;
|
|||
|
|
gridInstaladoresLevel1: TcxGridLevel;
|
|||
|
|
Label4: TLabel;
|
|||
|
|
pnlOtrosGastos: TPanel;
|
|||
|
|
gridOtrosGastos: TcxGrid;
|
|||
|
|
gridOtrosGastosVista: TcxGridDBTableView;
|
|||
|
|
gridOtrosGastosLevel1: TcxGridLevel;
|
|||
|
|
RdxBoton1: TRdxBoton;
|
|||
|
|
RdxBoton2: TRdxBoton;
|
|||
|
|
RdxBoton3: TRdxBoton;
|
|||
|
|
Label5: TLabel;
|
|||
|
|
Splitter2: TSplitter;
|
|||
|
|
pnlDetalleOtro: TRdxPanel;
|
|||
|
|
pnlDatosOtro: TPanel;
|
|||
|
|
Panel2: TPanel;
|
|||
|
|
pnlGridOtro: TPanel;
|
|||
|
|
gridEntregas: TcxGrid;
|
|||
|
|
gridEntregasVista: TcxGridDBTableView;
|
|||
|
|
gridEntregasLevel1: TcxGridLevel;
|
|||
|
|
pnlBarraOtro: TPanel;
|
|||
|
|
bEliminarTareaObra: TRdxBoton;
|
|||
|
|
bAnadirTareaObra: TRdxBoton;
|
|||
|
|
ActionList1: TActionList;
|
|||
|
|
actAceptar: TAction;
|
|||
|
|
actCancelar: TAction;
|
|||
|
|
actAnadirInstalador: TAction;
|
|||
|
|
actEliminarInstalador: TAction;
|
|||
|
|
actAnadirGasto: TAction;
|
|||
|
|
actEliminarGasto: TAction;
|
|||
|
|
actEliminarTodoIns: TAction;
|
|||
|
|
actEliminarTodoGas: TAction;
|
|||
|
|
actAnadirPedido: TAction;
|
|||
|
|
actEliminarPedido: TAction;
|
|||
|
|
actAnadirTareaObra: TAction;
|
|||
|
|
actEliminarEntrega: TAction;
|
|||
|
|
actSalir: TAction;
|
|||
|
|
dsObrasInstaladores: TDataSource;
|
|||
|
|
dsGastos: TDataSource;
|
|||
|
|
Panel3: TPanel;
|
|||
|
|
actAnadirEntrega: TAction;
|
|||
|
|
TablaInstaladores: TIBDataSet;
|
|||
|
|
Panel4: TPanel;
|
|||
|
|
RdxBoton4: TRdxBoton;
|
|||
|
|
RdxBoton5: TRdxBoton;
|
|||
|
|
Panel5: TPanel;
|
|||
|
|
gridMontajes: TcxGrid;
|
|||
|
|
gridMontajesVista: TcxGridDBTableView;
|
|||
|
|
cxGridLevel1: TcxGridLevel;
|
|||
|
|
Panel6: TPanel;
|
|||
|
|
RdxBoton6: TRdxBoton;
|
|||
|
|
RdxBoton7: TRdxBoton;
|
|||
|
|
Panel7: TPanel;
|
|||
|
|
gridRemates: TcxGrid;
|
|||
|
|
gridRematesVista: TcxGridDBTableView;
|
|||
|
|
cxGridLevel2: TcxGridLevel;
|
|||
|
|
actEliminarMontaje: TAction;
|
|||
|
|
actEliminarRemate: TAction;
|
|||
|
|
RdxBoton8: TRdxBoton;
|
|||
|
|
actPrevisualizar: TAction;
|
|||
|
|
dsInstaladores: TDataSource;
|
|||
|
|
FechaFin: TcxDBTextEdit;
|
|||
|
|
lblObraCerrada: TLabel;
|
|||
|
|
Label2: TLabel;
|
|||
|
|
cbxDocumento: TcxDBLookupComboBox;
|
|||
|
|
dsDocumentos: TDataSource;
|
|||
|
|
TablaDocumentos: TIBQuery;
|
|||
|
|
procedure JvArrayButton1ArrayButtonClicked(ACol, ARow: Integer);
|
|||
|
|
procedure JvItemsPanel1Resize(Sender: TObject);
|
|||
|
|
procedure pagPedidosResize(Sender: TObject);
|
|||
|
|
procedure actCancelarExecute(Sender: TObject);
|
|||
|
|
procedure actAceptarExecute(Sender: TObject);
|
|||
|
|
procedure actAnadirInstaladorExecute(Sender: TObject);
|
|||
|
|
procedure actEliminarInstaladorExecute(Sender: TObject);
|
|||
|
|
procedure actEliminarTodoInsExecute(Sender: TObject);
|
|||
|
|
procedure actEliminarTodoGasExecute(Sender: TObject);
|
|||
|
|
procedure actEliminarGastoExecute(Sender: TObject);
|
|||
|
|
procedure actAnadirGastoExecute(Sender: TObject);
|
|||
|
|
procedure pagEntregasShow(Sender: TObject);
|
|||
|
|
procedure pagMontajesShow(Sender: TObject);
|
|||
|
|
procedure pagRematesShow(Sender: TObject);
|
|||
|
|
procedure actAnadirEntregaExecute(Sender: TObject);
|
|||
|
|
procedure gridEntregasVistaDblClick(Sender: TObject);
|
|||
|
|
procedure actEliminarEntregaExecute(Sender: TObject);
|
|||
|
|
procedure actEliminarEntregaUpdate(Sender: TObject);
|
|||
|
|
procedure actEliminarRemateUpdate(Sender: TObject);
|
|||
|
|
procedure actEliminarMontajeUpdate(Sender: TObject);
|
|||
|
|
procedure actPrevisualizarExecute(Sender: TObject);
|
|||
|
|
procedure gridMontajesVistaDblClick(Sender: TObject);
|
|||
|
|
procedure gridRematesVistaDblClick(Sender: TObject);
|
|||
|
|
procedure cxSchedulerDBStorageEventModified(Sender: TObject;
|
|||
|
|
AEvent: TcxSchedulerEvent; var AHandled: Boolean);
|
|||
|
|
procedure actAnadirInstaladorUpdate(Sender: TObject);
|
|||
|
|
procedure actEliminarInstaladorUpdate(Sender: TObject);
|
|||
|
|
procedure actEliminarTodoInsUpdate(Sender: TObject);
|
|||
|
|
procedure actAnadirGastoUpdate(Sender: TObject);
|
|||
|
|
procedure actEliminarGastoUpdate(Sender: TObject);
|
|||
|
|
procedure actEliminarTodoGasUpdate(Sender: TObject);
|
|||
|
|
procedure actAnadirEntregaUpdate(Sender: TObject);
|
|||
|
|
procedure JvStringGrid1ExitCell(Sender: TJvStringGrid; AColumn,
|
|||
|
|
ARow: Integer; const EditText: String);
|
|||
|
|
private
|
|||
|
|
FTablaObrasInstaladores : TIBDataSet;
|
|||
|
|
FTablaObrasGastos: TIBDataSet;
|
|||
|
|
FTablaObrasGastosMem : TRxMemoryData;
|
|||
|
|
FCodigoInstalador: Variant;
|
|||
|
|
FInformeEstadoObra : TdmInformeEstadoObra;
|
|||
|
|
procedure InicializarPantalla;
|
|||
|
|
procedure RellenarArrayBotones;
|
|||
|
|
procedure CrearTablasObra;
|
|||
|
|
procedure CrearTablaCitas;
|
|||
|
|
procedure DestruirTablasObra;
|
|||
|
|
procedure DestruirTablaCitas;
|
|||
|
|
procedure InicializarCampos;
|
|||
|
|
procedure AjustarCabeceras;
|
|||
|
|
procedure TablaCitasBeforePost(DataSet: TDataSet);
|
|||
|
|
procedure TablaCitasAfterPost(DataSet: TDataSet);
|
|||
|
|
procedure SetCodigoInstalador(const Value: Variant);
|
|||
|
|
procedure SalvarDatosGastos;
|
|||
|
|
procedure SalvarProveedores;
|
|||
|
|
function ExisteInstaladorEnOtrasTareas : Boolean;
|
|||
|
|
procedure AplicarFiltroTipoAGrid(aVista : TcxGridDBTableView; aTipo : TTipoCitas);
|
|||
|
|
procedure EditarCita(ID : Variant; bSoloLectura:Boolean); overload;
|
|||
|
|
procedure InsertarCitaEntrega(Const Opcion: Integer);
|
|||
|
|
procedure InsertarCitaFase(Const Tipo: Integer;Const Col: Integer);
|
|||
|
|
procedure DeshabilitarModificar;
|
|||
|
|
procedure HabilitarModificar;
|
|||
|
|
protected
|
|||
|
|
procedure ActivarModoModificarTablasObra;
|
|||
|
|
procedure ActivarModoModificar; override;
|
|||
|
|
procedure ActivarModoConsultar; override;
|
|||
|
|
procedure ActivarModoEliminar; override;
|
|||
|
|
function ModificarDatos : Boolean; override;
|
|||
|
|
function CancelarModificar : 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
|
|||
|
|
constructor Create (AOwner : TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
procedure Imprimir;
|
|||
|
|
procedure VistaPrevia;
|
|||
|
|
function EliminarDatos : Boolean; override;
|
|||
|
|
published
|
|||
|
|
property TablaObras;
|
|||
|
|
property CodigoObra;
|
|||
|
|
property CodigoInstalador : Variant read FCodigoInstalador write SetCodigoInstalador;
|
|||
|
|
property TablaObrasInstaladores : TIBDataSet read FTablaObrasInstaladores write FTablaObrasInstaladores;
|
|||
|
|
property TablaObrasGastos : TIBDataSet read FTablaObrasGastos write FTablaObrasGastos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
frObra2: TfrObra2;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
cxSchedulerDialogs, RdxFrameInstaladores, Instaladores,
|
|||
|
|
IBErrorCodes, Mensajes, Literales,
|
|||
|
|
IB, Configuracion, BaseDatos, Entidades, TablaObras,
|
|||
|
|
StrFunc, Excepciones, DateUtils, TablaObrasInstaladores,
|
|||
|
|
TablaObrasGastos, TablaInstaladores, TablaTareas, TablaDocumentos;
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
{ TfrObra2 }
|
|||
|
|
|
|||
|
|
procedure TfrObra2.ActivarModoConsultar;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.ActivarModoEliminar;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.ActivarModoModificar;
|
|||
|
|
begin
|
|||
|
|
dsObras.AutoEdit := True;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
ActivarModoModificarTablasObra;
|
|||
|
|
Visible := True;
|
|||
|
|
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;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.ActivarModoModificarTablasObra;
|
|||
|
|
begin
|
|||
|
|
with TablaObras do
|
|||
|
|
begin
|
|||
|
|
ParamByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|||
|
|
Prepare;
|
|||
|
|
Open;
|
|||
|
|
if RecordCount = 0 then
|
|||
|
|
begin
|
|||
|
|
VerMensajeFmt(msgObrNoExisteObr, [CodigoObra]);
|
|||
|
|
CancelarModificar;
|
|||
|
|
CloseFrame;
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.BuscarObra;
|
|||
|
|
begin
|
|||
|
|
if Transaccion = NIL then
|
|||
|
|
exit;
|
|||
|
|
try
|
|||
|
|
if TablaObras.Active then
|
|||
|
|
ModificarDatos;
|
|||
|
|
TablaObras.Close;
|
|||
|
|
TablaCitas.Close;
|
|||
|
|
TablaObrasInstaladores.Close;
|
|||
|
|
TablaObrasGastos.Close;
|
|||
|
|
FTablaObrasGastosMem.Close;
|
|||
|
|
TablaInstaladores.Close;
|
|||
|
|
TablaDocumentos.Close;
|
|||
|
|
|
|||
|
|
// Buscar la fila a tratar si es necesario
|
|||
|
|
if not esCadenaVacia(CodigoObra) then
|
|||
|
|
begin
|
|||
|
|
TablaObras.Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|||
|
|
TablaCitas.Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|||
|
|
TablaObrasInstaladores.Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|||
|
|
TablaObrasGastos.Params.ByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|||
|
|
TablaObras.Prepare;
|
|||
|
|
TablaObras.Open;
|
|||
|
|
|
|||
|
|
TablaCitas.Prepare;
|
|||
|
|
TablaCitas.Open;
|
|||
|
|
|
|||
|
|
TablaObrasInstaladores.Prepare;
|
|||
|
|
TablaObrasInstaladores.Open;
|
|||
|
|
|
|||
|
|
TablaObrasGastos.Prepare;
|
|||
|
|
TablaObrasGastos.Open;
|
|||
|
|
|
|||
|
|
FTablaObrasGastosMem.LoadFromDataSet(TablaObrasGastos, -1, lmCopy);
|
|||
|
|
FTablaObrasGastosMem.Open;
|
|||
|
|
|
|||
|
|
TablaInstaladores.Open;
|
|||
|
|
TablaDocumentos.Open;
|
|||
|
|
|
|||
|
|
cxSchedulerDBStorage.FullRefresh;
|
|||
|
|
|
|||
|
|
RellenarArrayBotones;
|
|||
|
|
|
|||
|
|
//Si la obra esta cerrada no se puede modificar ni fecha de finalizaci<63>n ni observaciones
|
|||
|
|
if VarIsNull(TablaObras.FieldByName('FECHAFIN').AsVariant) then
|
|||
|
|
HabilitarModificar
|
|||
|
|
else
|
|||
|
|
DeshabilitarModificar;
|
|||
|
|
|
|||
|
|
DatosCliente.Text := TablaObras.FieldByName('NOMBRE').AsString + #10 +
|
|||
|
|
TablaObras.FieldByName('DIR1').AsString + #10 +
|
|||
|
|
TablaObras.FieldByName('DIR2').AsString + #10 +
|
|||
|
|
TablaObras.FieldByName('TELF').AsString;
|
|||
|
|
end
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.CancelarEliminar: Boolean;
|
|||
|
|
begin
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.CancelarModificar: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
RollBack;
|
|||
|
|
TablaObras.Close;
|
|||
|
|
|
|||
|
|
TablaObrasInstaladores.Close;
|
|||
|
|
TablaObrasGastos.Close;
|
|||
|
|
FTablaObrasGastosMem.Close;
|
|||
|
|
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.CloseFrame: Boolean;
|
|||
|
|
begin
|
|||
|
|
ModificarDatos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.ComprobarDatos: Boolean;
|
|||
|
|
begin
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.CrearTablasObra;
|
|||
|
|
begin
|
|||
|
|
TablaObras := TIBDataSet.Create(Self);
|
|||
|
|
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;
|
|||
|
|
dsObras.DataSet := TablaObras;
|
|||
|
|
|
|||
|
|
TablaObrasInstaladores := TIBDataSet.Create(Self);
|
|||
|
|
dsObrasInstaladores.DataSet := TablaObrasInstaladores;
|
|||
|
|
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;
|
|||
|
|
dmTablaObrasInstaladores.InicializarGrid(gridInstaladoresVista);
|
|||
|
|
|
|||
|
|
TablaObrasGastos := TIBDataSet.Create(Self);
|
|||
|
|
FTablaObrasGastosMem := TRxMemoryData.Create(Self);
|
|||
|
|
dsGastos.DataSet := FTablaObrasGastosMem;
|
|||
|
|
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;
|
|||
|
|
FTablaObrasGastosMem.CopyStructure(TablaObrasGastos);
|
|||
|
|
FTablaObrasGastosMem.FieldByName('CODIGO').Required := False;
|
|||
|
|
|
|||
|
|
with TablaDocumentos do
|
|||
|
|
begin
|
|||
|
|
Database := BaseDatos;
|
|||
|
|
Transaction := Transaccion;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
dmTablaObrasGastos.InicializarGrid(gridOtrosGastosVista);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
constructor TfrObra2.Create(AOwner: TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited Create(AOwner);
|
|||
|
|
Entidad := entObraCliente;
|
|||
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|||
|
|
|
|||
|
|
BaseDatos := dmBaseDatos.BD;
|
|||
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|||
|
|
|
|||
|
|
CrearTablasObra;
|
|||
|
|
CrearTablaCitas;
|
|||
|
|
|
|||
|
|
InicializarCampos;
|
|||
|
|
InicializarPantalla;
|
|||
|
|
|
|||
|
|
{CrearTablasPedidos;
|
|||
|
|
CrearTablasTareas;
|
|||
|
|
CrearInformes;}
|
|||
|
|
|
|||
|
|
FInformeEstadoObra := TdmInformeEstadoObra.Create(Self);
|
|||
|
|
with FInformeEstadoObra do
|
|||
|
|
begin
|
|||
|
|
frxTablaCitas.DataSource := dsCitas;
|
|||
|
|
frxTablaInstaladores.DataSource := dsObrasInstaladores;
|
|||
|
|
frxTablaObras.DataSource := dsObras;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
Paginas.ActivePageIndex := 0;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TfrObra2.Destroy;
|
|||
|
|
begin
|
|||
|
|
FreeAndNIL(FInformeEstadoObra);
|
|||
|
|
|
|||
|
|
DestruirTablasObra;
|
|||
|
|
DestruirTablaCitas;
|
|||
|
|
{ destruirTablasPedidos;
|
|||
|
|
destruirTablasTareas;
|
|||
|
|
destruirInformes;}
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.DestruirTablasObra;
|
|||
|
|
begin
|
|||
|
|
TablaObras.Close;
|
|||
|
|
TablaObras.Unprepare;
|
|||
|
|
TablaObras.Free;
|
|||
|
|
TablaObras := Nil;
|
|||
|
|
|
|||
|
|
TablaObrasInstaladores.Close;
|
|||
|
|
TablaObrasInstaladores.UnPrepare;
|
|||
|
|
TablaObrasInstaladores.Free;
|
|||
|
|
TablaObrasInstaladores := Nil;
|
|||
|
|
|
|||
|
|
TablaObrasGastos.Close;
|
|||
|
|
TablaObrasGastos.UnPrepare;
|
|||
|
|
TablaObrasGastos.Free;
|
|||
|
|
TablaObrasGastos := Nil;
|
|||
|
|
|
|||
|
|
FTablaObrasGastosMem.Close;
|
|||
|
|
FTablaObrasGastosMem.Free;
|
|||
|
|
FTablaObrasGastosMem := Nil;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.EliminarDatos: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
cxSchedulerDBStorage.Clear;
|
|||
|
|
TablaObras.Delete;
|
|||
|
|
Commit;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.FreeContenido;
|
|||
|
|
begin
|
|||
|
|
if (ContenidoModal is TRdxFrameInstaladores) then
|
|||
|
|
CodigoInstalador := (ContenidoModal as TRdxFrameInstaladores).CodigoInstalador;
|
|||
|
|
|
|||
|
|
inherited FreeContenido;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.ModificarDatos: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
try
|
|||
|
|
if (TablaObras.State in [dsEdit, dsInsert]) then
|
|||
|
|
TablaObras.Post;
|
|||
|
|
|
|||
|
|
BorrarTabla(TablaObrasGastos);
|
|||
|
|
SalvarDatosGastos;
|
|||
|
|
SalvarProveedores;
|
|||
|
|
|
|||
|
|
Commit;
|
|||
|
|
Result := True;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.TratarCambios: integer;
|
|||
|
|
begin
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.VerModal;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.CrearTablaCitas;
|
|||
|
|
begin
|
|||
|
|
dsCitas.DataSet := TablaCitas;
|
|||
|
|
|
|||
|
|
with TablaCitas do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SelectSQL.Assign(dmTablaCitas.sqlConsultar);
|
|||
|
|
SelectSQL.Add('WHERE CITAS.CODIGOCONTRATO = :CODIGOCONTRATO');
|
|||
|
|
|
|||
|
|
InsertSQL.Assign(dmTablaCitas.sqlInsertar);
|
|||
|
|
ModifySQL.Assign(dmTablaCitas.sqlModificar);
|
|||
|
|
DeleteSQL.Assign(dmTablaCitas.sqlEliminar);
|
|||
|
|
|
|||
|
|
RefreshSQL.Assign(dmTablaCitas.sqlRefrescar);
|
|||
|
|
RefreshSQL.Add(' AND CITAS.CODIGOCONTRATO = :CODIGOCONTRATO');
|
|||
|
|
|
|||
|
|
BeforePost := TablaCitasBeforePost;
|
|||
|
|
AfterPost := TablaCitasAfterPost;
|
|||
|
|
Prepare;
|
|||
|
|
end;
|
|||
|
|
dmTablaTareas.InicializarGridTareasObras(gridEntregasVista);
|
|||
|
|
with TcxLookupComboBoxProperties(gridEntregasVista.GetColumnByFieldName('RESOURCEID').Properties) do
|
|||
|
|
ListSource := dsInstaladores;
|
|||
|
|
|
|||
|
|
dmTablaTareas.InicializarGridTareasObras(gridMontajesVista);
|
|||
|
|
with TcxLookupComboBoxProperties(gridMontajesVista.GetColumnByFieldName('RESOURCEID').Properties) do
|
|||
|
|
ListSource := dsInstaladores;
|
|||
|
|
|
|||
|
|
dmTablaTareas.InicializarGridTareasObras(gridRematesVista);
|
|||
|
|
with TcxLookupComboBoxProperties(gridRematesVista.GetColumnByFieldName('RESOURCEID').Properties) do
|
|||
|
|
ListSource := dsInstaladores;
|
|||
|
|
|
|||
|
|
|
|||
|
|
dsInstaladores.DataSet := TablaInstaladores;
|
|||
|
|
with TablaInstaladores do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SelectSQL.Add('select * from INSTALADORES order by CODIGO');
|
|||
|
|
Prepare;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.DestruirTablaCitas;
|
|||
|
|
begin
|
|||
|
|
TablaCitas.Close;
|
|||
|
|
//TablaInstaladores.Close;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.InicializarPantalla;
|
|||
|
|
var
|
|||
|
|
i : integer;
|
|||
|
|
Inicio, Final : Integer;
|
|||
|
|
begin
|
|||
|
|
Inicio := Ord(tcPedido);
|
|||
|
|
Final := Ord(tcEntregaCliente);
|
|||
|
|
|
|||
|
|
with JvItemsPanel1 do
|
|||
|
|
begin
|
|||
|
|
Items.Clear;
|
|||
|
|
for i := Inicio to Final do
|
|||
|
|
Items.Add(LiteralTipoCita[i]);
|
|||
|
|
end;
|
|||
|
|
JvArrayButton1.Rows := Final - Inicio + 1;
|
|||
|
|
JvArrayButton1.Cols := 4;
|
|||
|
|
|
|||
|
|
for i := 1 to JvArrayButton1.Cols do
|
|||
|
|
JvHeaderControl1.Sections[i].Text := LiteralPartidasObra[i-1];
|
|||
|
|
|
|||
|
|
JvArrayButton1.Colors.Clear;
|
|||
|
|
for i := 0 to (JvArrayButton1.Cols * JvArrayButton1.Rows) do
|
|||
|
|
JvArrayButton1.Colors.Append('$00F9FEFF');
|
|||
|
|
|
|||
|
|
AjustarCabeceras;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.JvArrayButton1ArrayButtonClicked(ACol, ARow: Integer);
|
|||
|
|
var
|
|||
|
|
i : integer;
|
|||
|
|
AModified : Boolean;
|
|||
|
|
ATipo : Cardinal;
|
|||
|
|
ObraCerrada : boolean;
|
|||
|
|
begin
|
|||
|
|
ATipo := ARow + Ord(tcPedido);
|
|||
|
|
ObraCerrada := not VarIsNull(TablaObras.FieldByName('FECHAFIN').AsVariant);
|
|||
|
|
|
|||
|
|
with TablaCitas do
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
First;
|
|||
|
|
if Locate('TIPOTAREA;PARTIDA',
|
|||
|
|
VarArrayOf([TextoTipoCita[ATipo], TextoPartidasObra[ACol]]),
|
|||
|
|
[loCaseInsensitive]) then
|
|||
|
|
begin
|
|||
|
|
EditarCita(FieldByName('ID').AsVariant, ObraCerrada);
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
//Si la obra esta cerrada y al cuadro no contiene informaci<63>n no se muestra nada
|
|||
|
|
if not ObraCerrada then
|
|||
|
|
begin
|
|||
|
|
InsertarCitaFase(ATipo, ACol);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
SalvarProveedores;
|
|||
|
|
RellenarArrayBotones;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.InicializarCampos;
|
|||
|
|
var
|
|||
|
|
aField : TcxSchedulerDBStorageField;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
with cxSchedulerDBStorage.CustomFields do
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
BeginUpdate;
|
|||
|
|
Clear;
|
|||
|
|
|
|||
|
|
aField := Add;
|
|||
|
|
aField.FieldName := 'TIPOTAREA';
|
|||
|
|
|
|||
|
|
aField := Add;
|
|||
|
|
aField.FieldName := 'CODIGOCONTRATO';
|
|||
|
|
|
|||
|
|
aField := Add;
|
|||
|
|
aField.FieldName := 'NOMBRECLIENTE';
|
|||
|
|
|
|||
|
|
aField := Add;
|
|||
|
|
aField.FieldName := 'PARTIDA';
|
|||
|
|
|
|||
|
|
aField := Add;
|
|||
|
|
aField.FieldName := 'COMPLETADA';
|
|||
|
|
|
|||
|
|
aField := Add;
|
|||
|
|
aField.FieldName := 'NOMBREPROVEEDOR';
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.TablaCitasAfterPost(DataSet: TDataSet);
|
|||
|
|
begin
|
|||
|
|
dmBaseDatos.Transaccion.CommitRetaining;
|
|||
|
|
/// RellenarArrayBotones;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.TablaCitasBeforePost(DataSet: TDataSet);
|
|||
|
|
begin
|
|||
|
|
if (DataSet.FieldByName('ID').AsVariant = -1) or
|
|||
|
|
(VarIsNull(DataSet.FieldByName('ID').AsVariant)) then
|
|||
|
|
begin
|
|||
|
|
DataSet.Edit;
|
|||
|
|
DataSet.FieldByName('ID').AsVariant := dmTablaCitas.DarNuevoCodigo;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.RellenarArrayBotones;
|
|||
|
|
var
|
|||
|
|
I, ACol, ARow : integer;
|
|||
|
|
ATipo, APartida : String;
|
|||
|
|
AEvent : TcxSchedulerEvent;
|
|||
|
|
AControlEvent : TcxSchedulerControlEvent;
|
|||
|
|
ATipos : TStringList;
|
|||
|
|
APartidas : TStringList;
|
|||
|
|
ACaptions : TStringList;
|
|||
|
|
AColors : TStringList;
|
|||
|
|
ACompletada : Boolean;
|
|||
|
|
AProveedor : String;
|
|||
|
|
AFecIni, AFecFin : TDate;
|
|||
|
|
begin
|
|||
|
|
JvArrayButton1.Captions.Clear;
|
|||
|
|
JvArrayButton1.Colors.Clear;
|
|||
|
|
|
|||
|
|
JvStringGrid1.Cells[0, 0] := 'Proveedores';
|
|||
|
|
for i := 0 to JvArrayButton1.Cols - 1 do
|
|||
|
|
JvStringGrid1.Cells[i + 1, 0] := '';
|
|||
|
|
|
|||
|
|
ATipos := TStringList.Create;
|
|||
|
|
APartidas := TStringList.Create;
|
|||
|
|
ACaptions := TStringList.Create;
|
|||
|
|
AColors := TStringList.Create;
|
|||
|
|
try
|
|||
|
|
for i := Ord(tcPedido) to Ord(tcEntregaCliente) do
|
|||
|
|
ATipos.Add(TextoTipoCita[i]);
|
|||
|
|
|
|||
|
|
for i := Ord(poCocina) to Ord(poVarios) do
|
|||
|
|
APartidas.Add(TextoPartidasObra[i]);
|
|||
|
|
|
|||
|
|
for i := 0 to (JvArrayButton1.Rows * JvArrayButton1.Cols) - 1 do
|
|||
|
|
ACaptions.Add('');
|
|||
|
|
|
|||
|
|
for i := 0 to (JvArrayButton1.Cols * JvArrayButton1.Rows) do
|
|||
|
|
AColors.Add('$00F9FEFF');
|
|||
|
|
|
|||
|
|
with TablaCitas do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
First;
|
|||
|
|
while not EOF do
|
|||
|
|
begin
|
|||
|
|
ARow := ATipos.IndexOf(FieldByName('TIPOTAREA').AsString);
|
|||
|
|
ACol := APartidas.IndexOf(FieldByName('PARTIDA').AsString);
|
|||
|
|
ACompletada := not VarIsNull(FieldByName('COMPLETADA').AsVariant);
|
|||
|
|
AProveedor := FieldByName('NOMBREPROVEEDOR').AsString;
|
|||
|
|
if (ARow >= 0) and (ACol >= 0) then
|
|||
|
|
begin
|
|||
|
|
AFecIni := FieldByName('START').AsDateTime;
|
|||
|
|
AFecFin := FieldByName('FINISH').AsDateTime;
|
|||
|
|
|
|||
|
|
if DateOf(AFecIni) <> DateOf(AFecFin) then
|
|||
|
|
ACaptions[(ARow*JvArrayButton1.Cols)+ACol] := 'Del ' + DateToStr(AFecIni) + ' al ' + DateToStr(AFecFin)
|
|||
|
|
else
|
|||
|
|
ACaptions[(ARow*JvArrayButton1.Cols)+ACol] := DateToStr(AFecIni);
|
|||
|
|
//ACaptions[(ARow*JvArrayButton1.Cols)+ACol] := FieldByName('CAPTION').AsString;
|
|||
|
|
if ACompletada then
|
|||
|
|
begin
|
|||
|
|
AColors[(ARow*JvArrayButton1.Cols)+ACol] := ColorToString(dmConfiguracion.cxContentOdd.Color);
|
|||
|
|
|
|||
|
|
ACaptions[(ARow*JvArrayButton1.Cols)+ACol] := ACaptions[(ARow*JvArrayButton1.Cols)+ACol] + ' (Completada)'
|
|||
|
|
end;
|
|||
|
|
JvStringGrid1.Cells[ACol+1, 0] := AProveedor;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
Next;
|
|||
|
|
end;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
for i := 0 to (JvArrayButton1.Rows * JvArrayButton1.Cols) - 1 do
|
|||
|
|
JvArrayButton1.Captions.Add(ACaptions.Strings[i]);
|
|||
|
|
|
|||
|
|
for i := 0 to (JvArrayButton1.Rows * JvArrayButton1.Cols) - 1 do
|
|||
|
|
JvArrayButton1.Colors.Add(AColors.Strings[i]);
|
|||
|
|
|
|||
|
|
finally
|
|||
|
|
FreeAndNil(ATipos);
|
|||
|
|
FreeAndNil(APartidas);
|
|||
|
|
FreeAndNil(ACaptions);
|
|||
|
|
FreeAndNil(AColors);
|
|||
|
|
JvArrayButton1.Invalidate;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.JvItemsPanel1Resize(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
AjustarCabeceras;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.AjustarCabeceras;
|
|||
|
|
var
|
|||
|
|
i : integer;
|
|||
|
|
Ancho : Integer;
|
|||
|
|
begin
|
|||
|
|
with JvHeaderControl1 do
|
|||
|
|
begin
|
|||
|
|
for i := 0 to (Sections.Count - 1) do
|
|||
|
|
begin
|
|||
|
|
if i = 0 then
|
|||
|
|
Ancho := JvItemsPanel1.Width
|
|||
|
|
else
|
|||
|
|
Ancho := JvArrayButton1.Width div JvArrayButton1.Cols;
|
|||
|
|
|
|||
|
|
Sections[i].MaxWidth := Ancho;
|
|||
|
|
Sections[i].MinWidth := Ancho;
|
|||
|
|
Sections[i].Width := Ancho;
|
|||
|
|
Panel1.Width := JvArrayButton1.Width;
|
|||
|
|
JvStringGrid1.ColWidths[i] := Ancho;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.pagPedidosResize(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
AjustarCabeceras;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actCancelarExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
CancelarModificar;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actAceptarExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
ModificarDatos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.SetCodigoInstalador(const Value: Variant);
|
|||
|
|
var
|
|||
|
|
DatosInstalador : TDatosInstalador;
|
|||
|
|
begin
|
|||
|
|
if (EsCadenaVacia(Value)) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
FCodigoInstalador := Value;
|
|||
|
|
if not TablaObrasInstaladores.Locate('CODIGOINSTALADOR', FCodigoInstalador,[]) then
|
|||
|
|
begin
|
|||
|
|
DatosInstalador := TDatosInstalador.Create;
|
|||
|
|
DatosInstalador.Codigo := FCodigoInstalador;
|
|||
|
|
dmTablaInstaladores.DarDatosInstalador(DatosInstalador);
|
|||
|
|
with TablaObrasInstaladores 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 TfrObra2.actAnadirInstaladorExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
ContenidoModal := TfrInstaladores.Create(Self);
|
|||
|
|
gridInstaladores.SetFocus;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarInstaladorExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if verMensajePregunta(msgObrEliminarDetalles) = mrYes then
|
|||
|
|
begin
|
|||
|
|
//Comprobamos si el instalador a eliminar tiene asociado alg<6C>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 }
|
|||
|
|
TablaObrasInstaladores.Cancel;
|
|||
|
|
Exit
|
|||
|
|
end;
|
|||
|
|
try
|
|||
|
|
TablaObrasInstaladores.Delete;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarTodoInsExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if verMensajePregunta(msgObrEliminarTodosDetalles) = mrYes then
|
|||
|
|
begin
|
|||
|
|
with TablaObrasInstaladores do
|
|||
|
|
begin
|
|||
|
|
if IsEmpty then
|
|||
|
|
Exit;
|
|||
|
|
Last;
|
|||
|
|
while not BOF do
|
|||
|
|
begin
|
|||
|
|
//Comprobamos si el instalador a eliminar tiene asociado alg<6C>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<6C>n entrega, montaje o remate
|
|||
|
|
if not ExisteInstaladorEnOtrasTareas then
|
|||
|
|
Delete;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if not TablaObrasInstaladores.IsEmpty then
|
|||
|
|
VerMensaje(msgObrInsConOtrasTareas2);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarTodoGasExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if verMensajePregunta(msgObrEliminarTodosDetalles) = mrYes then
|
|||
|
|
FTablaObrasGastosMem.EmptyTable;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarGastoExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if verMensajePregunta(msgObrEliminarDetalles) = mrYes then
|
|||
|
|
begin
|
|||
|
|
if FTablaObrasGastosMem.RecordCount = 0 then begin
|
|||
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|||
|
|
recien creado }
|
|||
|
|
FTablaObrasGastosMem.Cancel;
|
|||
|
|
Exit
|
|||
|
|
end;
|
|||
|
|
try
|
|||
|
|
FTablaObrasGastosMem.Delete;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrObra2.ExisteInstaladorEnOtrasTareas: Boolean;
|
|||
|
|
begin
|
|||
|
|
//
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actAnadirGastoExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
with FTablaObrasGastosMem do
|
|||
|
|
begin
|
|||
|
|
Next;
|
|||
|
|
if EOF then
|
|||
|
|
Append
|
|||
|
|
else begin
|
|||
|
|
Prior;
|
|||
|
|
Insert;
|
|||
|
|
end;
|
|||
|
|
FieldByName('CODIGOCONTRATO').AsString := CodigoObra;
|
|||
|
|
FieldByName('CODIGO').AsInteger := RecNo;
|
|||
|
|
FieldByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
|
|||
|
|
FieldByName('USUARIO').AsString := dmBaseDatos.Usuario;
|
|||
|
|
FieldByName('FECHA').AsDateTime := DateOf(Now);
|
|||
|
|
end;
|
|||
|
|
gridOtrosGastos.SetFocus;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.SalvarDatosGastos;
|
|||
|
|
var
|
|||
|
|
NumeroCampo : Integer;
|
|||
|
|
Valor : Variant;
|
|||
|
|
Contador : Integer;
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
with FTablaObrasGastosMem 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 TfrObra2.SalvarProveedores;
|
|||
|
|
var
|
|||
|
|
I, ACol : integer;
|
|||
|
|
APartida : String;
|
|||
|
|
AEvent : TcxSchedulerEvent;
|
|||
|
|
APartidas : TStringList;
|
|||
|
|
AProveedor : String;
|
|||
|
|
begin
|
|||
|
|
APartidas := TStringList.Create;
|
|||
|
|
try
|
|||
|
|
for i := Ord(poCocina) to Ord(poVarios) do
|
|||
|
|
APartidas.Add(TextoPartidasObra[i]);
|
|||
|
|
|
|||
|
|
with cxSchedulerDBStorage do
|
|||
|
|
begin
|
|||
|
|
FullRefresh;
|
|||
|
|
for i := 0 to (EventCount - 1) do
|
|||
|
|
begin
|
|||
|
|
AEvent := Events[i];
|
|||
|
|
APartida := VarToStr(AEvent.GetCustomFieldValueByName('PARTIDA'));
|
|||
|
|
|
|||
|
|
ACol := APartidas.IndexOf(APartida);
|
|||
|
|
if (ACol >= 0) then
|
|||
|
|
begin
|
|||
|
|
AProveedor := JvStringGrid1.Cells[ACol+1, 0];
|
|||
|
|
AEvent.SetCustomFieldValueByName('NOMBREPROVEEDOR', AProveedor);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
FreeAndNil(APartidas);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.AplicarFiltroTipoAGrid(aVista : TcxGridDBTableView; aTipo : TTipoCitas);
|
|||
|
|
var
|
|||
|
|
AItemList : TcxFilterCriteriaItemList;
|
|||
|
|
begin
|
|||
|
|
with aVista.DataController.Filter do
|
|||
|
|
begin
|
|||
|
|
BeginUpdate;
|
|||
|
|
try
|
|||
|
|
Root.Clear;
|
|||
|
|
Root.BoolOperatorKind := fboAnd;
|
|||
|
|
Root.AddItem(aVista.GetColumnByFieldName('TIPOTAREA'), foLike, TextoTipoCita[Ord(aTipo)], 'Tipo');
|
|||
|
|
Root.AddItem(aVista.GetColumnByFieldName('CODIGOCONTRATO'), foLike, FCodigoObra, 'Obra');
|
|||
|
|
Active := True;
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.pagEntregasShow(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
AplicarFiltroTipoAGrid(gridEntregasVista, tcEntrega);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.pagMontajesShow(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
AplicarFiltroTipoAGrid(gridMontajesVista, tcMontaje);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.pagRematesShow(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
AplicarFiltroTipoAGrid(gridRematesVista, tcRemate);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actAnadirEntregaExecute(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
AOpcion : Cardinal;
|
|||
|
|
begin
|
|||
|
|
if pagEntregas.Visible then
|
|||
|
|
AOpcion := Ord(tcEntrega);
|
|||
|
|
|
|||
|
|
if pagMontajes.Visible then
|
|||
|
|
AOpcion := Ord(tcMontaje);
|
|||
|
|
|
|||
|
|
if pagRemates.Visible then
|
|||
|
|
AOpcion := Ord(tcRemate);
|
|||
|
|
|
|||
|
|
InsertarCitaEntrega(AOpcion);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.gridEntregasVistaDblClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if gridEntregasVista.ViewData.RowCount > 0 then
|
|||
|
|
begin
|
|||
|
|
with TablaCitas do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
EditarCita(FieldByName('ID').AsVariant, False);
|
|||
|
|
gridEntregasVista.DataController.RefreshExternalData;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarEntregaExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if verMensajePregunta(msgObrEliminarDetalles) = mrYes then
|
|||
|
|
begin
|
|||
|
|
if TablaCitas.RecordCount = 0 then begin
|
|||
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|||
|
|
recien creado }
|
|||
|
|
TablaCitas.Cancel;
|
|||
|
|
Exit
|
|||
|
|
end;
|
|||
|
|
try
|
|||
|
|
TablaCitas.Delete;
|
|||
|
|
except
|
|||
|
|
on E : EIBError do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
on E : Exception do
|
|||
|
|
TratarExcepcion(E);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarEntregaUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if VarIsNull(TablaObras.FieldByName('FECHAFIN').AsVariant) then
|
|||
|
|
(Sender as TAction).Enabled := (gridEntregasVista.Controller.SelectedRowCount > 0)
|
|||
|
|
else
|
|||
|
|
(Sender as TAction).Enabled := VarIsNull(TablaObras.FieldByName('FECHAFIN').AsVariant);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarRemateUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := (gridRematesVista.Controller.SelectedRowCount > 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarMontajeUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := (gridMontajesVista.Controller.SelectedRowCount > 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actPrevisualizarExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
Imprimir;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
procedure TfrObra2.Imprimir;
|
|||
|
|
var
|
|||
|
|
APartida : TPartidasObra;
|
|||
|
|
ATipoCita : TTipoCitas;
|
|||
|
|
Col, Row : Integer;
|
|||
|
|
i : Integer;
|
|||
|
|
Cadena : String;
|
|||
|
|
begin
|
|||
|
|
with FInformeEstadoObra do
|
|||
|
|
begin
|
|||
|
|
CodigoContrato := Self.FCodigoObra;
|
|||
|
|
for APartida := poCocina to poVarios do
|
|||
|
|
begin
|
|||
|
|
Proveedores[APartida] := JvStringGrid1.Cells[Ord(APartida)+1, 0];
|
|||
|
|
for ATipoCita := tcPedido to tcEntregaCliente do
|
|||
|
|
begin
|
|||
|
|
Col := Ord(APartida);
|
|||
|
|
Row := Ord(ATipoCita) - Ord(tcPedido);
|
|||
|
|
|
|||
|
|
Cadena := JvArrayButton1.Captions[(Row*JvArrayButton1.Cols)+Col];
|
|||
|
|
if JvArrayButton1.Colors[(Row*JvArrayButton1.Cols)+Col] = ColorToString(dmConfiguracion.cxContentOdd.Color) then
|
|||
|
|
Cadena := '#' + Cadena;
|
|||
|
|
EstadoObra[APartida, ATipoCita] := Cadena;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
Imprimir;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.EditarCita(ID: Variant; bSoloLectura: Boolean);
|
|||
|
|
var
|
|||
|
|
AEvent : TcxSchedulerEvent;
|
|||
|
|
AControlEvent : TcxSchedulerControlEvent;
|
|||
|
|
AModified : Boolean;
|
|||
|
|
TareaFase: Boolean;
|
|||
|
|
dsAux : TDataSource;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
AEvent := cxSchedulerDBStorage.GetEventByID(ID);
|
|||
|
|
AControlEvent := TcxSchedulerControlEvent.Create(AEvent);
|
|||
|
|
try
|
|||
|
|
TareaFase := esCitaFase(AEvent.GetCustomFieldValueByName('TIPOTAREA'));
|
|||
|
|
if TareaFase then
|
|||
|
|
begin
|
|||
|
|
dsAux := cxSchedulerDBStorage.Resources.DataSource;
|
|||
|
|
cxSchedulerDBStorage.Resources.DataSource := NIL;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if bSoloLectura then
|
|||
|
|
cxShowEventEditor(AControlEvent, CodigoContrato.Style.LookAndFeel, False, AModified, True, False)
|
|||
|
|
else
|
|||
|
|
cxShowEventEditor(AControlEvent, CodigoContrato.Style.LookAndFeel, False, AModified);
|
|||
|
|
|
|||
|
|
if AModified then
|
|||
|
|
begin
|
|||
|
|
AEvent.Assign(AControlEvent);
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
if TareaFase then
|
|||
|
|
cxSchedulerDBStorage.Resources.DataSource := dsAux;
|
|||
|
|
AControlEvent.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.gridMontajesVistaDblClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if gridMontajesVista.ViewData.RowCount > 0 then
|
|||
|
|
begin
|
|||
|
|
with TablaCitas do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
EditarCita(FieldByName('ID').AsVariant, False);
|
|||
|
|
gridMontajesVista.DataController.RefreshExternalData;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.gridRematesVistaDblClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if gridRematesVista.ViewData.RowCount > 0 then
|
|||
|
|
begin
|
|||
|
|
with TablaCitas do
|
|||
|
|
begin
|
|||
|
|
DisableControls;
|
|||
|
|
EditarCita(FieldByName('ID').AsVariant, False);
|
|||
|
|
gridRematesVista.DataController.RefreshExternalData;
|
|||
|
|
EnableControls;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{procedure TfrObra2.EditarCita(AEvent : TcxSchedulerEvent);
|
|||
|
|
var
|
|||
|
|
AControlEvent : TcxSchedulerControlEvent;
|
|||
|
|
AModified : Boolean;
|
|||
|
|
begin
|
|||
|
|
AControlEvent := TcxSchedulerControlEvent.Create(AEvent);
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
cxShowEventEditor(AControlEvent, CodigoContrato.Style.LookAndFeel,
|
|||
|
|
False, AModified);
|
|||
|
|
if AModified then
|
|||
|
|
begin
|
|||
|
|
AEvent.Assign(AControlEvent);
|
|||
|
|
AEvent.Post;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
AControlEvent.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
procedure TfrObra2.cxSchedulerDBStorageEventModified(Sender: TObject;
|
|||
|
|
AEvent: TcxSchedulerEvent; var AHandled: Boolean);
|
|||
|
|
begin
|
|||
|
|
// ShowMessage('Cambios');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.DeshabilitarModificar;
|
|||
|
|
begin
|
|||
|
|
// FechaFin.Properties.ReadOnly := True;
|
|||
|
|
lblObraCerrada.Visible := True;
|
|||
|
|
Observaciones.Properties.ReadOnly := True;
|
|||
|
|
dsObrasInstaladores.Enabled := False;
|
|||
|
|
dsGastos.Enabled := False;
|
|||
|
|
JvStringGrid1.Enabled := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.HabilitarModificar;
|
|||
|
|
begin
|
|||
|
|
// FechaFin.Properties.ReadOnly := False;
|
|||
|
|
lblObraCerrada.Visible := False;
|
|||
|
|
Observaciones.Properties.ReadOnly := False;
|
|||
|
|
dsObrasInstaladores.Enabled := True;
|
|||
|
|
dsGastos.Enabled := True;
|
|||
|
|
JvStringGrid1.Enabled := True;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actAnadirInstaladorUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := dsObrasInstaladores.Enabled;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarInstaladorUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := dsObrasInstaladores.Enabled;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarTodoInsUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := dsObrasInstaladores.Enabled;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actAnadirGastoUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := dsGastos.Enabled;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarGastoUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := dsGastos.Enabled;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actEliminarTodoGasUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := dsGastos.Enabled;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.actAnadirEntregaUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
(Sender as TAction).Enabled := VarIsNull(TablaObras.FieldByName('FECHAFIN').AsVariant);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.InsertarCitaEntrega(const Opcion: Integer);
|
|||
|
|
var
|
|||
|
|
AControlEvent : TcxSchedulerControlEvent;
|
|||
|
|
AModified : Boolean;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
AControlEvent := TcxSchedulerControlEvent.Create(cxSchedulerDBStorage);
|
|||
|
|
with AControlEvent do
|
|||
|
|
begin
|
|||
|
|
BeginEditing;
|
|||
|
|
Start := Now;
|
|||
|
|
Finish := IncHour(Now);
|
|||
|
|
SetCustomFieldValueByName('TIPOTAREA', TextoTipoCita[Opcion]);
|
|||
|
|
SetCustomFieldValueByName('CODIGOCONTRATO', CodigoObra);
|
|||
|
|
EndEditing;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
cxSchedulerDBStorage.Resources.DataSource := dsInstaladores;
|
|||
|
|
cxShowEventEditor(AControlEvent, CodigoContrato.Style.LookAndFeel,
|
|||
|
|
False, AModified);
|
|||
|
|
if AModified then
|
|||
|
|
AControlEvent.Post;
|
|||
|
|
finally
|
|||
|
|
AControlEvent.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.InsertarCitaFase(Const Tipo:Integer; Const Col: Integer);
|
|||
|
|
var
|
|||
|
|
AControlEvent : TcxSchedulerControlEvent;
|
|||
|
|
AModified : Boolean;
|
|||
|
|
dsAux : TDataSource;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
AControlEvent := TcxSchedulerControlEvent.Create(cxSchedulerDBStorage);
|
|||
|
|
with AControlEvent do
|
|||
|
|
begin
|
|||
|
|
BeginEditing;
|
|||
|
|
Start := Now;
|
|||
|
|
Finish := IncHour(Now);
|
|||
|
|
Caption := LiteralPartidasObra[Col] + ' - ' + LiteralTipoCita[Tipo];
|
|||
|
|
SetCustomFieldValueByName('TIPOTAREA', TextoTipoCita[Tipo]);
|
|||
|
|
SetCustomFieldValueByName('PARTIDA', TextoPartidasObra[Col]);
|
|||
|
|
SetCustomFieldValueByName('CODIGOCONTRATO', CodigoObra);
|
|||
|
|
EndEditing;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
dsAux := cxSchedulerDBStorage.Resources.DataSource;
|
|||
|
|
cxSchedulerDBStorage.Resources.DataSource := NIL;
|
|||
|
|
cxShowEventEditor(AControlEvent, CodigoContrato.Style.LookAndFeel, False, AModified);
|
|||
|
|
if AModified then
|
|||
|
|
AControlEvent.Post;
|
|||
|
|
finally
|
|||
|
|
cxSchedulerDBStorage.Resources.DataSource := dsAux;
|
|||
|
|
AControlEvent.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.JvStringGrid1ExitCell(Sender: TJvStringGrid; AColumn,
|
|||
|
|
ARow: Integer; const EditText: String);
|
|||
|
|
var
|
|||
|
|
Col : Integer;
|
|||
|
|
Row : integer;
|
|||
|
|
ConTexto : Boolean;
|
|||
|
|
begin
|
|||
|
|
if (JvArrayButton1.Captions.Count <> 0) then
|
|||
|
|
begin
|
|||
|
|
ConTexto := False;
|
|||
|
|
Col := AColumn - 1;
|
|||
|
|
for Row := 0 to (Ord(tcEntregaCliente) - Ord(tcPedido)) do
|
|||
|
|
ConTexto := ConTexto or not EsCadenaVacia(JvArrayButton1.Captions[(Row*JvArrayButton1.Cols)+Col]);
|
|||
|
|
if not ConTexto then
|
|||
|
|
begin
|
|||
|
|
Sender.Cells[AColumn, 0] := 'Antes debe hacer un pedido';
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrObra2.VistaPrevia;
|
|||
|
|
var
|
|||
|
|
APartida : TPartidasObra;
|
|||
|
|
ATipoCita : TTipoCitas;
|
|||
|
|
Col, Row : Integer;
|
|||
|
|
i : Integer;
|
|||
|
|
Cadena : String;
|
|||
|
|
begin
|
|||
|
|
with FInformeEstadoObra do
|
|||
|
|
begin
|
|||
|
|
CodigoContrato := Self.FCodigoObra;
|
|||
|
|
for APartida := poCocina to poVarios do
|
|||
|
|
begin
|
|||
|
|
Proveedores[APartida] := JvStringGrid1.Cells[Ord(APartida)+1, 0];
|
|||
|
|
for ATipoCita := tcPedido to tcEntregaCliente do
|
|||
|
|
begin
|
|||
|
|
Col := Ord(APartida);
|
|||
|
|
Row := Ord(ATipoCita) - Ord(tcPedido);
|
|||
|
|
|
|||
|
|
Cadena := JvArrayButton1.Captions[(Row*JvArrayButton1.Cols)+Col];
|
|||
|
|
if JvArrayButton1.Colors[(Row*JvArrayButton1.Cols)+Col] = ColorToString(dmConfiguracion.cxContentOdd.Color) then
|
|||
|
|
Cadena := '#' + Cadena;
|
|||
|
|
EstadoObra[APartida, ATipoCita] := Cadena;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
Previsualizar;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|