This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/BaseDatos/TablaTareas.pas

601 lines
18 KiB
ObjectPascal
Raw Permalink Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2005. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 08-06-2005
Versi<EFBFBD>n actual: 1.0.0
Fecha versi<EFBFBD>n actual: 08-06-2005
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit TablaTareas;
interface
uses
//Generales
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
//Particulares
Contnrs, RxMemDS,
//Aplicacion
Framework, StrFunc, Entidades, Constantes, BaseDatos,
//Contador
Contadores, RdxGestorContadores;
type
TDatosTarea = class(TObjeto)
public
Codigo : String;
FechaAlta : String;
UsuarioAlta : String;
Usuario : String;
Tipo : String;
FechaIni : String;
HoraIni : String;
FechaFin : String;
HoraFin : String;
Descripcion : String;
Observaciones : String;
FechaAviso : String;
Completada : String;
EntryId : String;
Borrado : String;
UltimoCambio : String;
constructor Create; overload;
constructor Create(CodigoObra, Codigo : String); overload;
procedure ObtenerDatos; override;
destructor Destroy; override;
end;
type
TdmTablaTareas = class(TDataModule)
private
procedure IniciarSQL;
public
sqlInsertar : TStrings;
sqlModificar : TStrings;
sqlConsultar : TStrings;
sqlEliminar : TStrings;
sqlGrid : TStrings;
sqlTareasObrasGrid : TStrings;
//Metodos que llamaran a contador
function DarNuevoCodigo : String;
function IncrementarCodigo: boolean;
function InsertarContador : boolean;
function ValidarCodigo(Codigo : String) : Boolean;
function FormatearCodigo(Codigo : String) : String;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
function insertarTareaPedidoObra(CodigoContrato, CodigoPedido, CodigoTarea: Variant): Boolean;
function eliminarTareasPedidoObra(CodigoContrato: Variant): Boolean;
procedure rellenarTareasFase(TablaMem : TRxMemoryData; Codigo: Variant);
function insertarTareaInstaladorObra(CodigoContrato, Codigoinstalador, CodigoTarea: Variant): Boolean;
function eliminarTareasInstaladorObra(CodigoContrato: Variant): Boolean;
procedure InicializarGridTareasObras(var vGrid: TcxGridDBTableView);
//Temporal
procedure InicializarGrid(var vGrid: TcxGridDBTableView);
end;
var
dmTablaTareas: TdmTablaTareas;
implementation
{$R *.DFM}
uses
IBErrorCodes, IB, Literales, Mensajes, Excepciones, cxCheckBox, cxDBLookupComboBox;
constructor TdmTablaTareas.Create (AOwner : TComponent);
begin
inherited;
sqlInsertar := TStringList.Create;
sqlModificar := TStringList.Create;
sqlConsultar := TStringList.Create;
sqlEliminar := TStringList.Create;
sqlGrid := TStringList.Create;
sqlTareasObrasGrid := TStringList.Create;
IniciarSQL;
end;
destructor TdmTablaTareas.Destroy;
begin
sqlInsertar.Free;
sqlModificar.Free;
sqlConsultar.Free;
sqlEliminar.Free;
sqlGrid.Free;
sqlTareasObrasGrid.Free;
inherited;
end;
procedure TdmTablaTareas.IniciarSQL;
begin
with sqlInsertar do
begin
Add('INSERT INTO TAREAS (');
Add('CODIGO, FECHAALTA, USUARIOALTA, USUARIO, TIPO, FECHAINI, HORAINI, ');
Add('FECHAFIN, HORAFIN, DESCRIPCION, OBSERVACIONES, FECHAAVISO, COMPLETADA,');
Add('ENTRYID, BORRADO, ULTIMOCAMBIO)');
Add('VALUES (:CODIGO, :FECHAALTA, :USUARIOALTA, :USUARIO, :TIPO, :FECHAINI, :HORAINI, ');
Add(':FECHAFIN, :HORAFIN, :DESCRIPCION, :OBSERVACIONES, :FECHAAVISO, :COMPLETADA,');
Add(':ENTRYID, :BORRADO, :ULTIMOCAMBIO)');
end;
with sqlModificar do
begin
Add('UPDATE TAREAS SET');
Add('FECHAINI = :FECHAINI,');
Add('HORAINI = :HORAINI,');
Add('FECHAFIN = :FECHAFIN,');
Add('HORAFIN = :HORAFIN,');
Add('DESCRIPCION = :DESCRIPCION,');
Add('OBSERVACIONES = :OBSERVACIONES,');
Add('FECHAAVISO = :FECHAAVISO,');
Add('COMPLETADA = :COMPLETADA,');
Add('ENTRYID = :ENTRYID,');
Add('BORRADO = :BORRADO,');
Add('ULTIMOCAMBIO = :ULTIMOCAMBIO');
Add('WHERE (CODIGO = :CODIGO)');
end;
with sqlEliminar do
begin
Add('delete from TAREAS ');
Add('WHERE (CODIGO = :CODIGO)');
end;
with sqlConsultar do
begin
Add('select CODIGO, FECHAALTA, USUARIOALTA, USUARIO, TIPO, FECHAINI, HORAINI, ');
Add('FECHAFIN, HORAFIN, DESCRIPCION, OBSERVACIONES, FECHAAVISO, COMPLETADA,');
Add('ENTRYID, BORRADO, ULTIMOCAMBIO');
Add('from TAREAS, OBRASTAREAS');
Add('WHERE (OBRASTAREAS.CODIGOTAREA = TAREAS.CODIGO)');
Add('AND (CODIGOCONTRATO = :CODIGOCONTRATO)');
Add('AND (CODIGOPEDIDO = :CODIGOPEDIDO)');
end;
with sqlGrid do
begin
Add('select CODIGOPEDIDO, CODIGO, FECHAALTA, USUARIOALTA, USUARIO, TIPO, FECHAINI, HORAINI, ');
Add('FECHAFIN, HORAFIN, DESCRIPCION, OBSERVACIONES, FECHAAVISO, COMPLETADA,');
Add('ENTRYID, BORRADO, ULTIMOCAMBIO');
Add('from TAREAS, OBRASTAREAS');
Add('WHERE (OBRASTAREAS.CODIGOTAREA = TAREAS.CODIGO)');
Add('AND (CODIGOCONTRATO = :CODIGOCONTRATO)');
Add('AND (CODIGOINSTALADOR is null)');
Add('order by CODIGOPEDIDO, CODIGO');
end;
with sqlTareasObrasGrid do
begin
Add('select CODIGO, CODIGOINSTALADOR, FECHAALTA, USUARIOALTA, USUARIO, TIPO, FECHAINI, HORAINI, ');
Add('FECHAFIN, HORAFIN, DESCRIPCION, OBSERVACIONES, FECHAAVISO, COMPLETADA,');
Add('ENTRYID, BORRADO, ULTIMOCAMBIO');
Add('from TAREAS, OBRASTAREAS');
Add('WHERE (OBRASTAREAS.CODIGOTAREA = TAREAS.CODIGO)');
Add('AND (CODIGOCONTRATO = :CODIGOCONTRATO)');
Add('AND (CODIGOPEDIDO is null)');
Add('order by CODIGOINSTALADOR, CODIGO');
end;
end;
{ TDatosTarea }
constructor TDatosTarea.Create(CodigoObra, Codigo: String);
begin
inherited Create;
Codigo := CodigoObra;
// Recuperar los datos
ObtenerDatos;
end;
constructor TDatosTarea.Create;
begin
inherited Create;
end;
destructor TDatosTarea.Destroy;
begin
inherited;
end;
procedure TDatosTarea.ObtenerDatos;
var
oSQL : TIBSQL;
begin
if EsCadenaVacia(Codigo) then
raise Exception.Create(msgObrFaltaObr);
oSQL := TIBSQL.Create(NIL);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select CODIGO, FECHAALTA, USUARIOALTA, USUARIO, TIPO, FECHAINI,');
SQL.Add('HORAINI, FECHAFIN, HORAFIN, DESCRIPCION, OBSERVACIONES, FECHAAVISO,');
SQL.Add('COMPLETADA, ENTRYID, BORRADO, ULTIMOCAMBIO');
SQL.Add('from TAREAS');
SQL.Add('where CODIGO = :CODIGO');
ParamByName('CODIGO').AsString := Codigo;
try
Prepare;
ExecQuery;
// Compruebo si se han recuperado datos
if (RecordCount > 0) then
begin
Codigo := FieldByName('CODIGO').AsString;
FechaAlta := FieldByName('FECHAALTA').AsString;
UsuarioAlta := FieldByName('USUARIOALTA').AsString;
Usuario := FieldByName('USUARIO').AsString;
Tipo := FieldByName('TIPO').AsString;
FechaIni := FieldByName('FECHAINI').AsString;
HoraIni := FieldByName('HORAINI').AsString;
FechaFin := FieldByName('FECHAFIN').AsString;
HoraFin := FieldByName('HORAFIN').AsString;
Descripcion := FieldByName('DESCRIPCION').AsString;
Observaciones := FieldByName('OBSERVACIONES').AsString;
FechaAviso := FieldByName('FECHAAVISO').AsString;
Completada := FieldByName('COMPLETADA').AsString;
EntryId := FieldByName('ENTRYID').AsString;
Borrado := FieldByName('BORRADO').AsString;
UltimoCambio := FieldByName('ULTIMOCAMBIO').AsString;
end;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
function TdmTablaTareas.DarNuevoCodigo: String;
begin
Result := GestorContadores.darNuevoCodigo(contTareas);
end;
function TdmTablaTareas.FormatearCodigo(Codigo: String): String;
begin
Result := GestorContadores.formatearCodigo(contTareas, Codigo);
end;
function TdmTablaTareas.IncrementarCodigo: boolean;
begin
Result := GestorContadores.IncrementarValor(contTareas);
end;
function TdmTablaTareas.InsertarContador: boolean;
begin
Result := GestorContadores.InsertarContador(contTareas);
end;
function TdmTablaTareas.ValidarCodigo(Codigo: String): Boolean;
begin
Result := GestorContadores.validarCodigo(contTareas, Codigo);
end;
procedure TdmTablaTareas.InicializarGrid(var vGrid: TcxGridDBTableView);
var
Columna : TcxGridDBColumn;
begin
with vGrid do begin
OptionsView.Footer := True;
{Columna CODIGOPEDIDO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOPEDIDO';
Columna.Caption := 'C<>digo ped.';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
{Columna CODIGO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGO';
Columna.Caption := 'CODIGO';
Columna.Width := tamColNombre;
Columna.Options.Filtering := False;
{Columna TIPO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'TIPO';
Columna.Caption := 'Tipo';
Columna.Width := tamColTelefono;
Columna.Options.Filtering := False;
{Columna FECHAINI}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'FECHAINI';
Columna.Caption := 'FechaIni';
Columna.Width := tamColTelefono;
Columna.Options.Filtering := False;
{Columna FECHAFIN}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'FECHAFIN';
Columna.Caption := 'FechaFin';
Columna.Width := tamColTelefono;
Columna.Options.Filtering := False;
{Columna DESCRIPCION}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'DESCRIPCION';
Columna.Caption := 'Descripcion';
Columna.Width := tamColTelefono;
Columna.Options.Filtering := False;
{Columna COMPLETADA}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'COMPLETADA';
Columna.Caption := 'Completada';
Columna.Width := tamColTelefono;
Columna.Options.Filtering := False;
end;
end;
function TdmTablaTareas.insertarTareaPedidoObra(CodigoContrato, CodigoPedido, CodigoTarea: Variant): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(CodigoContrato) or EsCadenaVacia(CodigoPedido)
or EsCadenaVacia(CodigoTarea) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('insert into OBRASTAREAS ');
SQL.Add('(CODIGOCONTRATO, CODIGOPEDIDO, CODIGOTAREA)');
SQL.Add('values(:CODIGOCONTRATO, :CODIGOPEDIDO, :CODIGOTAREA)');
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
ParamByName('CODIGOPEDIDO').AsString := CodigoPedido;
ParamByName('CODIGOTAREA').AsString := CodigoTarea;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
function TdmTablaTareas.eliminarTareasPedidoObra(CodigoContrato: Variant): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(CodigoContrato) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('delete from OBRASTAREAS ');
SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
SQL.Add('and CODIGOPEDIDO is not null');
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
procedure TdmTablaTareas.rellenarTareasFase(TablaMem: TRxMemoryData; Codigo: Variant);
var
oSQL : TIBSQL;
begin
if (EsCadenaVacia(Codigo)) or (TablaMem = Nil) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select CODIGO, NOMBRE, TIPO');
SQL.Add('from TAREASFASES');
try
Prepare;
ExecQuery;
while not EOF do begin
TablaMem.Append;
TablaMem.FieldByName('CODIGOPEDIDO').AsInteger := Codigo;
TablaMem.FieldByName('CODIGO').AsInteger := FieldByName('CODIGO').AsInteger;
TablaMem.FieldByName('TIPO').AsString := FieldByName('TIPO').AsString;
TablaMem.FieldByName('DESCRIPCION').AsString := FieldByName('NOMBRE').AsString;
TablaMem.FieldByName('COMPLETADA').AsInteger := 0;
Next;
end;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
procedure TdmTablaTareas.InicializarGridTareasObras(var vGrid: TcxGridDBTableView);
var
Columna : TcxGridDBColumn;
begin
with vGrid do begin
OptionsView.Footer := False;
{Columna ID}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'ID';
Columna.Caption := 'CODIGO';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
Columna.Visible := False;
{Columna CODIGOCONTRATO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOCONTRATO';
Columna.Caption := 'CODIGOCONTRATO';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
Columna.Visible := False;
{Columna TIPOTAREA}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'TIPOTAREA';
Columna.Caption := 'Tipo';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
Columna.Visible := False;
{Columna COMPLETADA}
{ Columna := CreateColumn;
Columna.DataBinding.FieldName := 'COMPLETADA';
Columna.Caption := ' ';
Columna.Width := 20;
Columna.PropertiesClassName := 'TcxCheckBoxProperties';
Columna.Options.Filtering := False;
with TcxCheckBoxProperties(Columna.Properties) do begin
DisplayUnchecked := 'False';
ImmediatePost := True;
ValueChecked := 1;
ValueUnchecked := 0;
end;}
{Columna FECHAINI}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'START';
Columna.Caption := 'Fecha';
Columna.Width := tamColFecha;
Columna.Options.Filtering := False;
Columna.SortOrder := soAscending;
{Columna CODIGOINSTALADOR}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'RESOURCEID';
Columna.Caption := 'Instalador';
Columna.Width := tamColNombre;
Columna.PropertiesClassName := 'TcxLookupComboBoxProperties';
Columna.Options.Filtering := False;
with TcxLookupComboBoxProperties(Columna.Properties) do
begin
KeyFieldNames := 'CODIGO';
ListColumns.Add.FieldName := 'NOMBRE';
ListOptions.AnsiSort := True;
ListOptions.ShowHeader := False;
end;
{Columna DESCRIPCION}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CAPTION';
Columna.Caption := 'Material entregado';
Columna.Width := tamColNombre;
Columna.Options.Filtering := False;
{Columna OBSERVACIONES}
{ Columna := CreateColumn;
Columna.DataBinding.FieldName := 'OBSERVACIONES';
Columna.Caption := 'Observaciones';
Columna.Width := tamColNombre;
Columna.Options.Filtering := False;}
end;
end;
function TdmTablaTareas.eliminarTareasInstaladorObra(CodigoContrato: Variant): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(CodigoContrato) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('delete from OBRASTAREAS ');
SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
SQL.Add('and CODIGOINSTALADOR is not null');
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
function TdmTablaTareas.insertarTareaInstaladorObra(CodigoContrato, Codigoinstalador, CodigoTarea: Variant): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(CodigoContrato) or EsCadenaVacia(CodigoInstalador)
or EsCadenaVacia(CodigoTarea) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('insert into OBRASTAREAS ');
SQL.Add('(CODIGOCONTRATO, CODIGOINSTALADOR, CODIGOTAREA)');
SQL.Add('values(:CODIGOCONTRATO, :CODIGOINSTALADOR, :CODIGOTAREA)');
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
ParamByName('CODIGOINSTALADOR').AsString := CodigoInstalador;
ParamByName('CODIGOTAREA').AsString := CodigoTarea;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
end.