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/TablaObrasInstaladores.pas
2007-06-26 08:08:27 +00:00

281 lines
8.1 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2005. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 08-06-2005
Versión actual: 1.0.0
Fecha versión actual: 08-06-2005
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit TablaObrasInstaladores;
interface
uses
//Generales
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
//Particulares
Contnrs, cxCurrencyEdit,
//Aplicacion
Framework, StrFunc, Entidades, Constantes, BaseDatos,
//Contador
Contadores, RdxGestorContadores;
type
TDatosObraInstalador = class(TObjeto)
public
CodigoContrato : String;
CodigoInstalador : String;
FechaAlta : String;
Usuario : String;
Nombre : String;
Descripcion : String;
Precio : Double;
constructor Create; overload;
constructor Create(CodigoObra, CodigoInstalador : String); overload;
procedure ObtenerDatos; override;
destructor Destroy; override;
end;
type
TdmTablaObrasInstaladores = class(TDataModule)
private
procedure IniciarSQL;
public
sqlInsertar : TStrings;
sqlModificar : TStrings;
sqlConsultar : TStrings;
sqlEliminar : TStrings;
sqlGrid : TStrings;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
procedure InicializarGrid(var vGrid: TcxGridDBTableView);
end;
var
dmTablaObrasInstaladores: TdmTablaObrasInstaladores;
implementation
{$R *.DFM}
uses
IBErrorCodes, IB, Literales, Mensajes, Excepciones;
constructor TdmTablaObrasInstaladores.Create (AOwner : TComponent);
begin
inherited;
sqlInsertar := TStringList.Create;
sqlModificar := TStringList.Create;
sqlConsultar := TStringList.Create;
sqlEliminar := TStringList.Create;
sqlGrid := TStringList.Create;
IniciarSQL;
end;
destructor TdmTablaObrasInstaladores.Destroy;
begin
sqlInsertar.Free;
sqlModificar.Free;
sqlConsultar.Free;
sqlEliminar.Free;
sqlGrid.Free;
inherited;
end;
procedure TdmTablaObrasInstaladores.InicializarGrid(var vGrid: TcxGridDBTableView);
var
Columna : TcxGridDBColumn;
begin
with vGrid do begin
OptionsView.Footer := True;
{Columna CODIGOCONTRATO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOCONTRATO';
Columna.Caption := 'Código contrato';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
Columna.Visible := False;
{Columna CODIGOINSTALADOR}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOINSTALADOR';
Columna.Caption := 'Código';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
Columna.Visible := False;
{Columna NOMBRE}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'NOMBRE';
Columna.Caption := 'Nombre';
Columna.Width := tamColCorreo;
Columna.Options.Filtering := False;
Columna.SortOrder := soAscending;
{Columna DESCRIPCION}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'DESCRIPCION';
Columna.Caption := 'Trabajo';
Columna.Width := tamColNombre;
Columna.Options.Filtering := False;
{Columna PRECIO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'PRECIO';
Columna.Caption := 'Precio';
Columna.Width := tamColImporte;
Columna.Options.Filtering := False;
Columna.PropertiesClassName := 'TcxCurrencyEditProperties';
with TcxCurrencyEditProperties(Columna.Properties) do
begin
DisplayFormat := DISPLAY_EUROS2;
EditFormat := EDIT_EUROS2;
end;
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
try
try
BeginUpdate;
Column := Columna;
FieldName := Columna.DataBinding.FieldName;
Format := 'Total: #,0.00# €';
Kind := skSum;
finally
EndUpdate;
end;
except
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
end;
end;
end;
procedure TdmTablaObrasInstaladores.IniciarSQL;
begin
with sqlInsertar do
begin
Add('INSERT INTO OBRASINSTALADORES (');
Add('CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, ');
Add('USUARIO, NOMBRE, DESCRIPCION, PRECIO)');
Add('VALUES (:CODIGOCONTRATO, :CODIGOINSTALADOR,');
Add(':FECHAALTA, :USUARIO, :NOMBRE, :DESCRIPCION,');
Add(':PRECIO)');
end;
with sqlModificar do
begin
Add('UPDATE OBRASINSTALADORES SET');
Add('NOMBRE = :NOMBRE,');
Add('DESCRIPCION = :DESCRIPCION,');
Add('PRECIO = :PRECIO');
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND ');
Add('(CODIGOINSTALADOR = :CODIGOINSTALADOR)');
end;
with sqlEliminar do
begin
Add('delete from OBRASINSTALADORES ');
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND ');
Add('(CODIGOINSTALADOR = :CODIGOINSTALADOR)');
end;
with sqlConsultar do
begin
Add('select CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, USUARIO,');
Add('NOMBRE, DESCRIPCION, PRECIO');
Add('from OBRASINSTALADORES');
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND ');
Add('(CODIGOINSTALADOR = :CODIGOINSTALADOR)');
end;
with sqlGrid do
begin
Add('select CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, USUARIO,');
Add('NOMBRE, DESCRIPCION, PRECIO');
Add('from OBRASINSTALADORES');
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO)');
end;
end;
{ TDatosObraInstalador }
constructor TDatosObraInstalador.Create(CodigoObra, CodigoInstalador: String);
begin
inherited Create;
CodigoContrato := CodigoObra;
CodigoInstalador := CodigoInstalador;
// Recuperar los datos
ObtenerDatos;
end;
constructor TDatosObraInstalador.Create;
begin
inherited Create;
end;
destructor TDatosObraInstalador.Destroy;
begin
inherited;
end;
procedure TDatosObraInstalador.ObtenerDatos;
var
oSQL : TIBSQL;
begin
if EsCadenaVacia(CodigoContrato) and EsCadenaVacia(CodigoInstalador) then
raise Exception.Create(msgObrFaltaObr);
oSQL := TIBSQL.Create(NIL);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select CODIGOCONTRATO, CODIGOINSTALADOR, FECHAALTA, USUARIO,');
SQL.Add('NOMBRE, DESCRIPCION, PRECIO');
SQL.Add('from OBRASINSTALADORES');
SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
SQL.Add('where CODIGOINSTALADOR = :CODIGOINSTALADOR');
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
ParamByName('CODIGOINSTALADOR').AsString := CodigoInstalador;
try
Prepare;
ExecQuery;
// Compruebo si se han recuperado datos
if (RecordCount > 0) then
begin
CodigoContrato := FieldByName('CODIGOCONTRATO').AsString;
CodigoInstalador := FieldByName('CODIGOINSTALADOR').AsString;
FechaAlta := FieldByName('FECHAALTA').AsString;
Usuario := FieldByName('USUARIO').AsString;
Nombre := FieldByName('NOMBRE').AsString;
Descripcion := FieldByName('DESCRIPCION').AsString;
Precio := FieldByName('PRECIO').AsFloat;
end;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
end.