git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
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.
|