git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
280 lines
7.7 KiB
ObjectPascal
280 lines
7.7 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 TablaObrasGastos;
|
|
|
|
interface
|
|
|
|
uses
|
|
//Generales
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|
//Particulares
|
|
Contnrs, IBCustomDataSet, cxCurrencyEdit,
|
|
|
|
//Aplicacion
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos,
|
|
|
|
//Contador
|
|
Contadores, RdxGestorContadores;
|
|
|
|
type
|
|
TDatosObraGasto = class(TObjeto)
|
|
public
|
|
CodigoContrato : String;
|
|
Codigo : Integer;
|
|
FechaAlta : String;
|
|
Usuario : String;
|
|
Fecha : String;
|
|
Descripcion : String;
|
|
Importe : Double;
|
|
|
|
constructor Create; overload;
|
|
constructor Create(CodigoObra: String; Codigo : Integer); overload;
|
|
procedure ObtenerDatos; override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
type
|
|
TdmTablaObrasGastos = 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
|
|
dmTablaObrasGastos: TdmTablaObrasGastos;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
IBErrorCodes, IB, Literales, Mensajes, Excepciones, MaskUtils;
|
|
|
|
constructor TdmTablaObrasGastos.Create (AOwner : TComponent);
|
|
begin
|
|
inherited;
|
|
sqlInsertar := TStringList.Create;
|
|
sqlModificar := TStringList.Create;
|
|
sqlConsultar := TStringList.Create;
|
|
sqlEliminar := TStringList.Create;
|
|
sqlGrid := TStringList.Create;
|
|
IniciarSQL;
|
|
end;
|
|
|
|
destructor TdmTablaObrasGastos.Destroy;
|
|
begin
|
|
sqlInsertar.Free;
|
|
sqlModificar.Free;
|
|
sqlConsultar.Free;
|
|
sqlEliminar.Free;
|
|
sqlGrid.Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TdmTablaObrasGastos.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 CODIGO}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'CODIGO';
|
|
Columna.Caption := 'Código';
|
|
Columna.Width := tamColCodigo;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Visible := False;
|
|
{Columna FECHA}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'Fecha';
|
|
Columna.Caption := 'Fecha';
|
|
Columna.Width := tamColFecha;
|
|
Columna.Options.Filtering := False;
|
|
Columna.SortOrder := soAscending;
|
|
{Columna DESCRIPCION}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'DESCRIPCION';
|
|
Columna.Caption := 'Concepto';
|
|
Columna.Width := tamColCorreo;
|
|
Columna.Options.Filtering := False;
|
|
{Columna IMPORTE}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'IMPORTE';
|
|
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 TdmTablaObrasGastos.IniciarSQL;
|
|
begin
|
|
with sqlInsertar do
|
|
begin
|
|
Add('INSERT INTO OBRASGASTOS (');
|
|
Add('CODIGOCONTRATO, CODIGO, FECHAALTA, ');
|
|
Add('USUARIO, FECHA, DESCRIPCION, IMPORTE)');
|
|
Add('VALUES (:CODIGOCONTRATO, :CODIGO,');
|
|
Add(':FECHAALTA, :USUARIO, :FECHA, :DESCRIPCION,');
|
|
Add(':IMPORTE)');
|
|
end;
|
|
|
|
with sqlModificar do
|
|
begin
|
|
Add('UPDATE OBRASGASTOS SET');
|
|
Add('FECHA = :FECHA,');
|
|
Add('DESCRIPCION = :DESCRIPCION,');
|
|
Add('IMPORTE = :IMPORTE');
|
|
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND ');
|
|
Add('(CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlEliminar do
|
|
begin
|
|
Add('delete from OBRASGASTOS ');
|
|
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND ');
|
|
Add('(CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlConsultar do
|
|
begin
|
|
Add('select CODIGOCONTRATO, CODIGO, FECHAALTA, USUARIO,');
|
|
Add('FECHA, DESCRIPCION, IMPORTE');
|
|
Add('from OBRASGASTOS');
|
|
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO) AND ');
|
|
Add('(CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlGrid do
|
|
begin
|
|
Add('select CODIGOCONTRATO, CODIGO, FECHAALTA, USUARIO,');
|
|
Add('FECHA, DESCRIPCION, IMPORTE');
|
|
Add('from OBRASGASTOS');
|
|
Add('WHERE (CODIGOCONTRATO = :CODIGOCONTRATO)');
|
|
end;
|
|
end;
|
|
|
|
|
|
{ TDatosObraGasto }
|
|
|
|
constructor TDatosObraGasto.Create(CodigoObra: String; Codigo: Integer);
|
|
begin
|
|
inherited Create;
|
|
CodigoContrato := CodigoObra;
|
|
Codigo := Codigo;
|
|
// Recuperar los datos
|
|
ObtenerDatos;
|
|
end;
|
|
|
|
constructor TDatosObraGasto.Create;
|
|
begin
|
|
inherited Create;
|
|
end;
|
|
|
|
destructor TDatosObraGasto.Destroy;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TDatosObraGasto.ObtenerDatos;
|
|
var
|
|
oSQL : TIBSQL;
|
|
begin
|
|
if EsCadenaVacia(CodigoContrato) then
|
|
raise Exception.Create(msgObrFaltaObr);
|
|
|
|
oSQL := TIBSQL.Create(NIL);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select CODIGOCONTRATO, CODIGO, FECHAALTA, USUARIO,');
|
|
SQL.Add('FECHA, DESCRIPCION, IMPORTE');
|
|
SQL.Add('from OBRASGASTOS');
|
|
SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO');
|
|
SQL.Add('where CODIGO = :CODIGO');
|
|
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|
ParamByName('CODIGO').AsInteger := Codigo;
|
|
|
|
try
|
|
Prepare;
|
|
ExecQuery;
|
|
|
|
// Compruebo si se han recuperado datos
|
|
if (RecordCount > 0) then
|
|
begin
|
|
CodigoContrato := FieldByName('CODIGOCONTRATO').AsString;
|
|
Codigo := FieldByName('CODIGO').AsInteger;
|
|
FechaAlta := FieldByName('FECHAALTA').AsString;
|
|
Usuario := FieldByName('USUARIO').AsString;
|
|
Fecha := FieldByName('FECHA').AsString;
|
|
Descripcion := FieldByName('DESCRIPCION').AsString;
|
|
Importe := FieldByName('IMPORTE').AsFloat;
|
|
end;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end.
|