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

1439 lines
44 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2002. 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: 02-12-2002
Versión actual: 1.0.0
Fecha versión actual: 02-12-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit TablaPresupuestos;
interface
uses
//Generales
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
//Particulares
IBCustomDataSet, cxGrid, cxGridDBCardView, cxButtonEdit,
StdCtrls, cxMemo, cxEdit, TablaPropiedades,
//Aplicacion
Framework, StrFunc, Entidades, Constantes, BaseDatos,
// Contador
Contadores, RdxGestorContadores;
type
TListaDetallesPresupuesto = class;
TDatosDetallePresupuesto = class;
TListaPropiedadesPresupuesto = class;
TDatosPresupuesto = class(TObjeto)
private
FListaDetallesPresupuesto : TListaDetallesPresupuesto;
protected
procedure ObtenerDatos; override;
procedure AssignTo(Dest: TPersistent); override;
public
Codigo : string;
FechaAlta : TDateTime;
Usuario : string;
FechaPresupuesto : TDateTime;
CodigoDocumento : string;
Situacion : string;
FechaDecision : TDateTime;
CodigoCliente : string;
NIFCIF : string;
Nombre : string;
Calle : string;
Numero : string;
Piso : string;
CodigoPostal : string;
Poblacion : string;
Provincia : string;
Telefono1 : string;
Telefono2 : string;
Movil1 : string;
Movil2 : string;
Fax : string;
PersonaContacto : string;
Observaciones : string;
Vendedor : string;
BaseImponible : double;
Descuento : integer;
ImporteDescuento : double;
Iva : integer;
ImporteIva : double;
ImporteTotal : double;
VigenciaPresupuesto : TDateTime;
PlazoEntrega : String;
FormaPago : String;
Desgloses : String;
Aumento : String;
constructor Create(CodigoPresupuesto : String); overload;
constructor Create; overload; override;
destructor Destroy; override;
property ListaDetallesPresupuesto : TListaDetallesPresupuesto read FListaDetallesPresupuesto;
end;
TListaDetallesPresupuesto = class(TListaObjetos)
private
FCodigoPresupuesto : String;
function GetDetallePresupuesto(Index: Integer): TDatosDetallePresupuesto;
protected
procedure AssignTo(Dest: TPersistent); override;
procedure ObtenerLista; override;
public
constructor Create(CodigoPresupuesto : String); overload;
constructor Create; overload; override;
property Items[Index: Integer] : TDatosDetallePresupuesto read GetDetallePresupuesto;
end;
TDatosDetallePresupuesto = class(TObjeto)
private
FListaPropiedades : TListaPropiedadesPresupuesto;
protected
procedure ObtenerDatos; override;
procedure AssignTo(Dest: TPersistent); override;
public
NumConcepto : Integer;
CodigoArticulo : string;
Referencia : string;
TipoConcepto : string;
Descripcion : String;
Cantidad : integer;
ImporteUnidad : double;
ImporteTotal : double;
constructor Create; override;
destructor Destroy; override;
property ListaPropiedades : TListaPropiedadesPresupuesto read FListaPropiedades;
end;
TListaPropiedadesPresupuesto = class(TListaObjetos)
private
FCodigoArticulo : String;
function GetPropiedad(Index: Integer): TDatosPropiedad;
protected
procedure AssignTo(Dest: TPersistent); override;
procedure ObtenerLista; override;
public
constructor Create(CodigoArticulo : String); overload;
constructor Create; overload; override;
property Items[Index: Integer] : TDatosPropiedad read GetPropiedad;
end;
/////////////////////////////////////////////////////////////////////////////////
TdmTablaPresupuestos = class(TDataModule)
private
procedure IniciarSQLPresupuesto;
procedure IniciarSQLDetalles;
procedure IniciarSQLGrids;
public
sqlConsultarGridPresupuestos : TStrings;
sqlConsultarGridPresupuestosCli : TStrings;
sqlConsultarGridPresupuestosContratar : TStrings;
sqlInsertarPresupuesto : TStrings;
sqlModificarPresupuesto : TStrings;
sqlConsultarPresupuesto : TStrings;
sqlEliminarPresupuesto : TStrings;
sqlInsertarDetalles : TStrings;
sqlModificarDetalles : TStrings;
sqlConsultarDetalles : TStrings;
sqlEliminarDetalles : TStrings;
sqlConsultarGridDetalles : TStrings;
sqlInsertarPropiedades : TStrings;
sqlModificarPropiedades : TStrings;
sqlConsultarPropiedades : TStrings;
sqlEliminarPropiedades : TStrings;
sqlConsultarGridPropiedades : TStrings;
sqlConsultarGridPropiedadesModal : TStrings;
//Metodos que llamaran a contador
function DarNuevoCodigo : String;
function InsertarContador : boolean;
function IncrementarCodigo : boolean;
function ValidarCodigo(Codigo : String) : Boolean;
function FormatearCodigo(Codigo : String) : String;
function FormatearNumConcepto(NumConcepto : String) : String;
function AceptarPresupuesto(Codigo: String; FechaAceptacion: TDateTime): Boolean;
function RechazarPresupuesto(Codigo: String; FechaAnulacion: TDateTime): Boolean;
function DarContratoDelPresupuesto (CodigoPresupuesto: String): String;
function DarSituacionPresupuesto(Codigo: String) : String;
function DarSituaciones : TStrings;
function AsignarContrato(CodigoPresupuesto, CodigoContrato : String): Boolean;
function CopiarPresupuesto(CodigoPresupuesto : String) : String;
procedure InicializarGridDetalles(var Grid: TcxGridDBTableView);
procedure InicializarGridPrecios(var Grid: TcxGridDBTableView);
procedure InicializarGridPropiedades(var vGrid: TcxGridDBCardView);
procedure InicializarGridPresupuestos(var Grid: TcxGrid);
procedure InicializarTablaPresupuestos(Tabla: TPTabla);
procedure InicializarTablaDetalles(Tabla: TPTabla);
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
end;
var
dmTablaPresupuestos: TdmTablaPresupuestos;
implementation
{$R *.DFM}
uses
Literales;
{ TdmTablaPresupuestos }
function TdmTablaPresupuestos.RechazarPresupuesto(Codigo: String;
FechaAnulacion: TDateTime): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(Codigo) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('update PRESUPUESTOSCLIENTE set ');
SQL.Add('SITUACION = ''RECHAZADO'', ');
SQL.Add('FECHADECISION = :FECHADECISION ');
SQL.Add('where CODIGO = :CODIGO');
ParamByName('CODIGO').AsString := Codigo;
ParamByName('FECHADECISION').AsDate := FechaAnulacion;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
constructor TdmTablaPresupuestos.Create(AOwner: TComponent);
begin
inherited;
{ Cabecera }
sqlInsertarPresupuesto := TStringList.Create;
sqlModificarPresupuesto := TStringList.Create;
sqlConsultarPresupuesto := TStringList.Create;
sqlEliminarPresupuesto := TStringList.Create;
{ Detalles }
sqlInsertarDetalles := TStringList.Create;
sqlModificarDetalles := TStringList.Create;
sqlConsultarDetalles := TStringList.Create;
sqlEliminarDetalles := TStringList.Create;
sqlConsultarGridDetalles := TStringList.Create;
{ Propiedades }
sqlInsertarPropiedades := TStringList.Create;
sqlModificarPropiedades := TStringList.Create;
sqlConsultarPropiedades := TStringList.Create;
sqlEliminarPropiedades := TStringList.Create;
sqlConsultarGridPropiedades := TStringList.Create;
sqlConsultarGridPropiedadesModal := TStringList.Create;
{ Grids }
sqlConsultarGridPresupuestos := TStringList.Create;
sqlConsultarGridPresupuestosCli := TStringList.Create;
sqlConsultarGridPresupuestosContratar := TStringList.Create;
IniciarSQLPresupuesto;
IniciarSQLDetalles;
IniciarSQLGrids;
end;
function TdmTablaPresupuestos.DarNuevoCodigo: String;
begin
Result := GestorContadores.darNuevoCodigo(contPresupuestosCliente);
end;
function TdmTablaPresupuestos.DarSituaciones: TStrings;
var
Lista : TStringList;
begin
Result := NIL;
Lista := TStringList.Create;
with Lista do
begin
Clear;
Append('PENDIENTE');
Append('ACEPTADO');
Append('RECHAZADO');
end;
Result := Lista;
end;
destructor TdmTablaPresupuestos.Destroy;
begin
{ Cabecera }
sqlInsertarPresupuesto.Free;
sqlModificarPresupuesto.Free;
sqlConsultarPresupuesto.Free;
sqlEliminarPresupuesto.Free;
{ Detalles }
sqlInsertarDetalles.Free;
sqlModificarDetalles.Free;
sqlConsultarDetalles.Free;
sqlEliminarDetalles.Free;
sqlConsultarGridDetalles.Free;
{ Propiedades }
sqlInsertarPropiedades.Free;
sqlModificarPropiedades.Free;
sqlConsultarPropiedades.Free;
sqlEliminarPropiedades.Free;
sqlConsultarGridPropiedades.Free;
sqlConsultarGridPropiedadesModal.Free;
{ Grids }
sqlConsultarGridPresupuestos.Free;
sqlConsultarGridPresupuestosCli.Free;
sqlConsultarGridPresupuestosContratar.Free;
inherited;
end;
function TdmTablaPresupuestos.FormatearCodigo(Codigo: String): String;
begin
Result := GestorContadores.formatearCodigo(contPresupuestosCliente, Codigo);
end;
function TdmTablaPresupuestos.FormatearNumConcepto(
NumConcepto: String): String;
var
Concepto : Integer;
begin
Concepto := StrToInt(NumConcepto);
Result := format('%.10d', [Concepto]);
end;
function TdmTablaPresupuestos.IncrementarCodigo: boolean;
begin
Result := GestorContadores.IncrementarValor(contPresupuestosCliente);
end;
procedure TdmTablaPresupuestos.InicializarGridDetalles(var Grid: TcxGridDBTableView);
var
Columna : TcxGridDBColumn;
begin
with Grid do
begin
OptionsView.Footer := True;
{Columna CODIGOPRESUPUESTO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOPRESUPUESTO';
Columna.Visible := False;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
{Columna NUMCONCEPTO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'NUMCONCEPTO';
Columna.Visible := False;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
{Columna TIPOCONCEPTO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'TIPOCONCEPTO';
Columna.Visible := False;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
{Columna CODIGOARTICULO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOARTICULO';
Columna.Caption := 'Cód. artículo';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.PropertiesClassName := 'TcxButtonEditProperties';
with TcxButtonEditProperties(Columna.Properties) do
begin
Buttons[0].Kind := bkEllipsis;
end;
Columna.Visible := False;
{Columna REFERENCIA}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'REFERENCIA';
Columna.Caption := 'Referencia';
Columna.Width := tamColReferencia;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.PropertiesClassName := 'TcxButtonEditProperties';
with TcxButtonEditProperties(Columna.Properties) do
begin
Buttons[0].Kind := bkEllipsis;
end;
{Columna DESCRIPCION}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'DESCRIPCION';
Columna.Caption := 'Descripción servicio/artículo';
Columna.Width := tamColDescripcion;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.PropertiesClassName := 'TcxMemoProperties';
with TcxMemoProperties(Columna.Properties) do
begin
ScrollBars := ssVertical;
end;
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
try
try
BeginUpdate;
Column := Columna;
FieldName := Columna.DataBinding.FieldName;
Format := 'Total: #,0 conceptos';
Kind := skCount;
finally
EndUpdate;
end;
except
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
end;
{Columna CANTIDAD}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CANTIDAD';
Columna.Caption := 'Cantidad';
Columna.Width := tamColCantidad;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.PropertiesClassName := 'TcxCalcEditProperties';
Columna.HeaderAlignmentHorz := taRightJustify;
{Columna IMPORTEUNIDAD}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'IMPORTEUNIDAD';
Columna.Caption := 'Importe unidad';
Columna.Width := tamColImporte;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.PropertiesClassName := 'TcxCalcEditProperties';
Columna.HeaderAlignmentHorz := taRightJustify;
{Columna IMPORTETOTAL}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'IMPORTETOTAL';
Columna.Caption := 'Importe total';
Columna.Width := tamColImporte;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.Options.Editing := False;
Columna.HeaderAlignmentHorz := taRightJustify;
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
try
try
BeginUpdate;
Column := Columna;
FieldName := Columna.DataBinding.FieldName;
Format := '#,0.00 €';
Kind := skSum;
finally
EndUpdate;
end;
except
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
end;
end;
end;
procedure TdmTablaPresupuestos.InicializarGridPresupuestos(var Grid: TcxGrid);
var
Columna : TcxGridDBColumn;
begin
with (Grid.ActiveView as TcxGridDBTableView) do
begin
OptionsView.Footer := True;
{Columna CODIGO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGO';
Columna.Caption := 'Código';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
Columna.SortOrder := soDescending;
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
try
try
BeginUpdate;
Column := Columna;
FieldName := Columna.DataBinding.FieldName;
Format := 'Total: 0 presupuestos';
Kind := skCount;
finally
EndUpdate;
end;
except
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
end;
{Columna DESCRIPCION}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'DESCRIPCION';
Columna.Caption := 'Documento';
Columna.Width := tamColDocumentos;
Columna.Options.Filtering := False;
{Columna FECHAPRESUPUESTO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'FECHAPRESUPUESTO';
Columna.Caption := 'Fecha';
Columna.Width := tamColFecha;
Columna.Options.Filtering := False;
{Columna SITUACION}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'SITUACION';
Columna.Caption := 'Situación';
Columna.Width := tamColSituacion;
Columna.Options.Filtering := False;
{Columna CODIGOCLIENTE}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOCLIENTE';
Columna.Caption := 'Cód. cliente';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
{Columna NIFCIF}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'NIFCIF';
Columna.Caption := 'NIF/CIF';
Columna.Width := tamColNIFCIF;
Columna.Options.Filtering := False;
{Columna NOMBRE}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'NOMBRE';
Columna.Caption := 'Nombre';
Columna.Width := tamColNombre;
Columna.Options.Filtering := False;
{Columna IMPORTETOTAL}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'IMPORTETOTAL';
Columna.Caption := 'Importe total';
Columna.Width := tamColImporte;
Columna.Options.Filtering := False;
{Columna CODIGOCONTRATO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOCONTRATO';
Columna.Caption := 'Contrato asociado';
Columna.Width := tamColCodigo;
Columna.Options.Filtering := False;
end;
end;
procedure TdmTablaPresupuestos.InicializarTablaDetalles(Tabla: TPTabla);
begin
with Tabla^.Fields do
begin
if FindField('IMPORTEUNIDAD') <> NIL then
with (FieldByName('IMPORTEUNIDAD') as TFloatField) do begin
DisplayFormat := DISPLAY_EUROS4;
EditFormat := EDIT_EUROS4;
end;
if FindField('IMPORTETOTAL') <> NIL then
with (FieldByName('IMPORTETOTAL') as TFloatField) do begin
DisplayFormat := DISPLAY_EUROS2;
EditFormat := EDIT_EUROS2;
end;
end;
end;
procedure TdmTablaPresupuestos.InicializarTablaPresupuestos(
Tabla: TPTabla);
begin
with Tabla^.Fields do
begin
if FindField('BASEIMPONIBLE') <> NIL then
with (FieldByName('BASEIMPONIBLE') as TIBBCDField) do begin
DisplayFormat := DISPLAY_EUROS4;
EditFormat := EDIT_EUROS4;
end;
if FindField('DESCUENTO') <> NIL then
with (FieldByName('DESCUENTO') as TFloatField) do begin
DisplayFormat := DISPLAY_DTO;
EditFormat := EDIT_DTO;
end;
if FindField('IMPORTEDESCUENTO') <> NIL then
with (FieldByName('IMPORTEDESCUENTO') as TIBBCDField) do begin
DisplayFormat := DISPLAY_EUROS4;
EditFormat := EDIT_EUROS4;
end;
if FindField('IVA') <> NIL then
with (FieldByName('IVA') as TFloatField) do begin
DisplayFormat := DISPLAY_DTO;
EditFormat := EDIT_DTO;
end;
if FindField('IMPORTEIVA') <> NIL then
with (FieldByName('IMPORTEIVA') as TIBBCDField) do begin
DisplayFormat := DISPLAY_EUROS4;
EditFormat := EDIT_EUROS4;
end;
if FindField('IMPORTETOTAL') <> NIL then
with (FieldByName('IMPORTETOTAL') as TIBBCDField) do begin
DisplayFormat := DISPLAY_EUROS2;
EditFormat := EDIT_EUROS2;
end;
end;
end;
procedure TdmTablaPresupuestos.IniciarSQLDetalles;
begin
with sqlInsertarDetalles do
begin
Add('insert into DETALLESPRESUPUESTOSARTICULOS ( ');
Add('CODIGOPRESUPUESTO, NUMCONCEPTO, TIPOCONCEPTO, ');
Add('CODIGOARTICULO, REFERENCIA, ');
Add('DESCRIPCION, CANTIDAD, IMPORTEUNIDAD, ');
Add('IMPORTETOTAL, OBSERVACIONES) values ( ');
Add(':CODIGOPRESUPUESTO, :NUMCONCEPTO, :TIPOCONCEPTO, ');
Add(':CODIGOARTICULO, :REFERENCIA, ');
Add(':DESCRIPCION, :CANTIDAD, ');
Add(':IMPORTEUNIDAD, :IMPORTETOTAL, :OBSERVACIONES);');
end;
with sqlModificarDetalles do
begin
Add('update DETALLESPRESUPUESTOSARTICULOS set ');
Add('CODIGOARTICULO = :CODIGOARTICULO, ');
Add('REFERENCIA = :REFERENCIA, ');
Add('TIPOCONCEPTO = :TIPOCONCEPTO, ');
Add('DESCRIPCION = :DESCRIPCION, ');
Add('CANTIDAD = :CANTIDAD, ');
Add('IMPORTEUNIDAD = :IMPORTEUNIDAD, ');
Add('IMPORTETOTAL = :IMPORTETOTAL, ');
Add('OBSERVACIONES = :OBSERVACIONES ');
Add('where (CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO) ');
Add('and (NUMCONCEPTO = :NUMCONCEPTO);');
end;
with sqlEliminarDetalles do
begin
Add('delete from DETALLESPRESUPUESTOSARTICULOS ');
Add('where (CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO) and ');
Add('(NUMCONCEPTO = :NUMCONCEPTO)');
end;
with sqlConsultarDetalles do
begin
Add('select * from DETALLESPRESUPUESTOSARTICULOS ');
Add('where (CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO) and ');
Add('(NUMCONCEPTO = :NUMCONCEPTO)');
end;
with sqlInsertarPropiedades do
begin
Add('insert into DETALLESPRESUPUESTOSPROPIEDADES ( ');
Add('CODIGOPRESUPUESTO, NUMCONCEPTO, NUMPROPIEDAD, CODIGOPROPIEDAD, ');
Add('VALOR) ');
Add('values ( ');
Add(':CODIGOPRESUPUESTO, :NUMCONCEPTO, :NUMPROPIEDAD, ');
Add(':CODIGOPROPIEDAD, :VALOR)');
end;
with sqlModificarPropiedades do
begin
Add('update DETALLESPRESUPUESTOSPROPIEDADES set ');
Add('CODIGOPROPIEDAD = :CODIGOPROPIEDAD, ');
Add('VALOR = :VALOR ');
Add('where (CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO) and ');
Add('(NUMCONCEPTO = :NUMCONCEPTO) and ');
Add('(NUMPROPIEDAD = :NUMPROPIEDAD)');
end;
with sqlEliminarPropiedades do
begin
Add('delete from DETALLESPRESUPUESTOSPROPIEDADES ');
Add('where (CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO) and ');
Add('(NUMCONCEPTO = :NUMCONCEPTO) and ');
Add('(NUMPROPIEDAD = :NUMPROPIEDAD);');
end;
with sqlConsultarPropiedades do
begin
Add('select * from DETALLESPRESUPUESTOSPROPIEDADES ');
Add('where (CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO) and ');
Add('(NUMCONCEPTO = :NUMCONCEPTO) and ');
Add('(NUMPROPIEDAD = :NUMPROPIEDAD);');
end;
end;
procedure TdmTablaPresupuestos.IniciarSQLGrids;
begin
with sqlConsultarGridPresupuestosContratar do
begin
Add('select PRE.CODIGO, PRE.SITUACION, PRE.FECHAPRESUPUESTO, ');
Add('PRE.FECHADECISION, PRE.CODIGOCLIENTE, PRE.NIFCIF, PRE.NOMBRE, ');
Add('PRE.IMPORTETOTAL, PRE.CODIGODOCUMENTO, DOC.DESCRIPCION');
Add('from PRESUPUESTOSCLIENTE PRE, DOCUMENTOS DOC ');
Add('where DOC.CODIGO = PRE.CODIGODOCUMENTO and ');
Add('CODIGOCONTRATO is null and ');
Add('UPPER(SITUACION) = ''ACEPTADO''');
Add('order by PRE.FECHAPRESUPUESTO, PRE.CODIGO desc');
end;
with sqlConsultarGridPresupuestos do
begin
Add('select PRE.CODIGO, PRE.SITUACION, PRE.FECHAPRESUPUESTO, ');
Add('PRE.FECHADECISION, PRE.CODIGOCLIENTE, PRE.NIFCIF, PRE.NOMBRE, ');
Add('PRE.IMPORTETOTAL, PRE.CODIGODOCUMENTO, DOC.DESCRIPCION, PRE.CODIGOCONTRATO ');
Add('from PRESUPUESTOSCLIENTE PRE, DOCUMENTOS DOC ');
Add('where DOC.CODIGO = PRE.CODIGODOCUMENTO ');
Add('order by PRE.FECHAPRESUPUESTO, PRE.CODIGO desc');
end;
with sqlConsultarGridDetalles do
begin
Add('select CODIGOPRESUPUESTO, NUMCONCEPTO, CODIGOARTICULO, REFERENCIA, TIPOCONCEPTO, ');
Add('DESCRIPCION, CANTIDAD, IMPORTEUNIDAD, IMPORTETOTAL, OBSERVACIONES ');
Add('from DETALLESPRESUPUESTOSARTICULOS ');
Add('where CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO ');
Add('order by CODIGOPRESUPUESTO, NUMCONCEPTO');
end;
with sqlConsultarGridPropiedades do
begin
Add('select CODIGOPRESUPUESTO, NUMCONCEPTO, NUMPROPIEDAD, ');
Add('CODIGOPROPIEDAD, VALOR ');
Add('from DETALLESPRESUPUESTOSPROPIEDADES ');
Add('where CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO ');
Add('order by NUMCONCEPTO, NUMPROPIEDAD');
end;
with sqlConsultarGridPropiedadesModal do
begin
Add('select CODIGOPRESUPUESTO, NUMCONCEPTO, NUMPROPIEDAD, ');
Add('CODIGOPROPIEDAD, VALOR ');
Add('from DETALLESPRESUPUESTOSPROPIEDADES ');
Add('where CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO and ');
Add('NUMCONCEPTO = :NUMCONCEPTO ');
Add('order by CODIGOPRESUPUESTO, NUMCONCEPTO, NUMPROPIEDAD');
end;
end;
procedure TdmTablaPresupuestos.IniciarSQLPresupuesto;
begin
with sqlInsertarPresupuesto do
begin
Add('insert into PRESUPUESTOSCLIENTE ( ');
Add('CODIGO, FECHAALTA, USUARIO, ');
Add('FECHAPRESUPUESTO, SITUACION, FECHADECISION, ');
Add('CODIGOCLIENTE, NIFCIF, NOMBRE, CALLE, ');
Add('NUMERO, PISO, CODIGOPOSTAL, POBLACION, ');
Add('PROVINCIA, TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, FAX, PERSONACONTACTO, VENDEDOR, ');
Add('BASEIMPONIBLE, DESCUENTO, ');
Add('IMPORTEDESCUENTO, IVA, IMPORTEIVA, ');
Add('IMPORTETOTAL, CODIGODOCUMENTO, VIGENCIAPRESUPUESTO, ');
Add('OBSERVACIONES, PLAZOENTREGA, FORMAPAGO, DESGLOSES, AUMENTO) values (');
Add(':CODIGO, :FECHAALTA, :USUARIO, ');
Add(':FECHAPRESUPUESTO, :SITUACION, ');
Add(':FECHADECISION, :CODIGOCLIENTE, ');
Add(':NIFCIF, :NOMBRE, :CALLE, :NUMERO, ');
Add(':PISO, :CODIGOPOSTAL, :POBLACION, ');
Add(':PROVINCIA, :TELEFONO1, :TELEFONO2, :MOVIL1, :MOVIL2, :FAX, :PERSONACONTACTO, :VENDEDOR, ');
Add(':BASEIMPONIBLE, :DESCUENTO, ');
Add(':IMPORTEDESCUENTO, :IVA, :IMPORTEIVA, ');
Add(':IMPORTETOTAL, :CODIGODOCUMENTO, :VIGENCIAPRESUPUESTO, ');
Add(':OBSERVACIONES, :PLAZOENTREGA, :FORMAPAGO, :DESGLOSES, :AUMENTO) ');
end;
with sqlModificarPresupuesto do
begin
Add('update PRESUPUESTOSCLIENTE set ');
Add('CODIGODOCUMENTO = :CODIGODOCUMENTO, ');
Add('FECHAPRESUPUESTO = :FECHAPRESUPUESTO, ');
Add('SITUACION = :SITUACION, ');
Add('FECHADECISION = :FECHADECISION, ');
Add('CODIGOCLIENTE = :CODIGOCLIENTE, ');
Add('NIFCIF = :NIFCIF, ');
Add('NOMBRE = :NOMBRE, ');
Add('CALLE = :CALLE, ');
Add('NUMERO = :NUMERO, ');
Add('PISO = :PISO, ');
Add('CODIGOPOSTAL = :CODIGOPOSTAL, ');
Add('POBLACION = :POBLACION, ');
Add('PROVINCIA = :PROVINCIA, ');
Add('VENDEDOR = :VENDEDOR, ');
Add('TELEFONO1 = :TELEFONO1, ');
Add('TELEFONO2 = :TELEFONO2, ');
Add('MOVIL1 = :MOVIL1, ');
Add('MOVIL2 = :MOVIL2, ');
Add('FAX = :FAX, ');
Add('PERSONACONTACTO = :PERSONACONTACTO, ');
Add('BASEIMPONIBLE = :BASEIMPONIBLE, ');
Add('DESCUENTO = :DESCUENTO, ');
Add('IMPORTEDESCUENTO = :IMPORTEDESCUENTO, ');
Add('IVA = :IVA, ');
Add('IMPORTEIVA = :IMPORTEIVA, ');
Add('IMPORTETOTAL = :IMPORTETOTAL, ');
Add('VIGENCIAPRESUPUESTO = :VIGENCIAPRESUPUESTO, ');
Add('OBSERVACIONES = :OBSERVACIONES, ');
Add('PLAZOENTREGA = :PLAZOENTREGA, ');
Add('FORMAPAGO = :FORMAPAGO, ');
Add('DESGLOSES = :DESGLOSES, ');
Add('AUMENTO = :AUMENTO ');
Add('where (CODIGO = :CODIGO)');
end;
with sqlEliminarPresupuesto do
begin
Add('delete from PRESUPUESTOSCLIENTE ');
Add('where CODIGO = :CODIGO');
end;
with sqlConsultarPresupuesto do
begin
Add('SELECT * FROM PRESUPUESTOSCLIENTE ');
Add('where CODIGO = :CODIGO');
end;
end;
function TdmTablaPresupuestos.InsertarContador: boolean;
begin
Result := GestorContadores.InsertarContador(contPresupuestosCliente);
end;
function TdmTablaPresupuestos.ValidarCodigo(Codigo: String): Boolean;
begin
Result := GestorContadores.ValidarCodigo(contPresupuestosCliente, Codigo);
end;
function TdmTablaPresupuestos.DarSituacionPresupuesto(
Codigo: String): String;
var
oSQL : TIBSQL;
begin
Result := '';
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select SITUACION ');
SQL.Add('from PRESUPUESTOSCLIENTE ');
SQL.Add('where CODIGO = :CODIGO');
ParamByName('CODIGO').AsString := Codigo;
try
Prepare;
ExecQuery;
Result := UpperCase(FieldByName('SITUACION').AsString);
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
function TdmTablaPresupuestos.DarContratoDelPresupuesto (CodigoPresupuesto: String): String;
var
oSQL : TIBSQL;
begin
Result := '';
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select CODIGOCONTRATO ');
SQL.Add('from PRESUPUESTOSCLIENTE ');
SQL.Add('where CODIGO = :CODIGO');
ParamByName('CODIGO').AsString := CodigoPresupuesto;
try
Prepare;
ExecQuery;
Result := FieldByName('CODIGOCONTRATO').AsString;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
procedure TdmTablaPresupuestos.InicializarGridPropiedades(var vGrid: TcxGridDBCardView);
var
Columna : TcxGridDBCardViewRow;
begin
with vGrid do
begin
{Columna CODIGOPRESUPUESTO}
Columna := CreateRow;
Columna.DataBinding.FieldName := 'CODIGOPRESUPUESTO';
Columna.Visible := False;
{Columna NUMCONCEPTO}
Columna := CreateRow;
Columna.DataBinding.FieldName := 'NUMCONCEPTO';
Columna.Visible := False;
Columna.SortOrder := soAscending;
{Columna NUMPROPIEDAD}
Columna := CreateRow;
Columna.DataBinding.FieldName := 'NUMPROPIEDAD';
Columna.Visible := False;
Columna.SortOrder := soAscending;
{Columna CODIGOPROPIEDAD}
{ Columna := CreateRow;
Columna.DataBinding.FieldName := 'CODIGOPROPIEDAD';
Columna.Caption := 'Codigo propiedad';
Columna.PropertiesClassName := 'TcxComboBoxProperties';}
{Columna VALOR}
{ Columna := CreateRow;
Columna.DataBinding.FieldName := 'VALOR';
Columna.Caption := 'Valor';
Columna.PropertiesClassName := 'TcxComboBoxProperties';}
end;
end;
function TdmTablaPresupuestos.AsignarContrato(CodigoPresupuesto,
CodigoContrato: String): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(CodigoPresupuesto) or EsCadenaVacia(CodigoContrato) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('update PRESUPUESTOSCLIENTE set ');
SQL.Add('CODIGOCONTRATO = :CODIGOCONTRATO ');
SQL.Add('where CODIGO = :CODIGO');
ParamByName('CODIGO').AsString := CodigoPresupuesto;
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
function TdmTablaPresupuestos.AceptarPresupuesto(Codigo: String;
FechaAceptacion: TDateTime): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(Codigo) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('update PRESUPUESTOSCLIENTE set ');
SQL.Add('SITUACION = ''ACEPTADO'', ');
SQL.Add('FECHADECISION = :FECHADECISION ');
SQL.Add('where CODIGO = :CODIGO');
ParamByName('CODIGO').AsString := Codigo;
ParamByName('FECHADECISION').AsDate := FechaAceptacion;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
procedure TdmTablaPresupuestos.InicializarGridPrecios(
var Grid: TcxGridDBTableView);
var
Columna : TcxGridDBColumn;
begin
with Grid do
begin
OptionsView.Footer := False;
{Columna CODIGOPRESUPUESTO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'CODIGOPRESUPUESTO';
Columna.Visible := False;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
{Columna NUMCONCEPTO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'NUMCONCEPTO';
Columna.Visible := False;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
{Columna TIPOCONCEPTO}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'TIPOCONCEPTO';
Columna.Visible := False;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
{Columna DESCRIPCION}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'DESCRIPCION';
Columna.Caption := 'Concepto';
Columna.Width := tamColDescripcion;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.PropertiesClassName := 'TcxMemoProperties';
with TcxMemoProperties(Columna.Properties) do
begin
ScrollBars := ssVertical;
end;
{Columna IMPORTEUNIDAD}
Columna := CreateColumn;
Columna.DataBinding.FieldName := 'IMPORTEUNIDAD';
Columna.Caption := 'Importe';
Columna.Width := tamColImporte;
Columna.Options.Filtering := False;
Columna.Options.Sorting := False;
Columna.PropertiesClassName := 'TcxCalcEditProperties';
Columna.HeaderAlignmentHorz := taRightJustify;
end;
end;
function TdmTablaPresupuestos.CopiarPresupuesto(
CodigoPresupuesto: String): String;
var
oSQL : TIBSQL;
oSQL2 : TIBSQL;
oSQL3 : TIBSQL;
CodigoAux : String;
CodConAux : String;
begin
Result := '';
CodigoAux := DarNuevoCodigo;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
with SQL do
begin
Add('INSERT INTO PRESUPUESTOSCLIENTE ( ');
Add('CODIGO, FECHAALTA, ');
Add('USUARIO, CODIGODOCUMENTO, ');
Add('FECHAPRESUPUESTO, CODIGOCONTRATO, ');
Add('SITUACION, FECHADECISION, ');
Add('CODIGOCLIENTE, NIFCIF, ');
Add('NOMBRE, CALLE, ');
Add('NUMERO, PISO, ');
Add('CODIGOPOSTAL, POBLACION, ');
Add('PROVINCIA, TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, FAX, PERSONACONTACTO, ');
Add('OBSERVACIONES, VENDEDOR, ');
Add('BASEIMPONIBLE, DESCUENTO, ');
Add('IMPORTEDESCUENTO, IVA, ');
Add('IMPORTEIVA, IMPORTETOTAL, ');
Add('VIGENCIAPRESUPUESTO, PLAZOENTREGA, ');
Add('FORMAPAGO, DESGLOSES, AUMENTO) ');
Add('SELECT ''' + CodigoAux + ''', current_date, ');
Add('''' + dmBaseDatos.Usuario + ''', CODIGODOCUMENTO,');
Add('current_date, NULL,');
Add('''PENDIENTE'', NULL, ');
Add('CODIGOCLIENTE,');
Add('NIFCIF, NOMBRE,');
Add('CALLE, NUMERO,');
Add('PISO, CODIGOPOSTAL,');
Add('POBLACION, PROVINCIA,');
Add('TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, FAX, PERSONACONTACTO, ');
Add('OBSERVACIONES, VENDEDOR, ');
Add('BASEIMPONIBLE, DESCUENTO, IMPORTEDESCUENTO,');
Add('IVA, IMPORTEIVA,');
Add('IMPORTETOTAL, VIGENCIAPRESUPUESTO, PLAZOENTREGA, FORMAPAGO, ');
Add('DESGLOSES, AUMENTO ');
Add('from PRESUPUESTOSCLIENTE ');
Add('where CODIGO = :CODIGO');
end;
ParamByName('CODIGO').AsString := CodigoPresupuesto;
end;
oSQL2 := TIBSQL.Create(Self);
with oSQL2 do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
with SQL do
begin
Add(' INSERT INTO DETALLESPRESUPUESTOSARTICULOS ( ');
Add(' CODIGOPRESUPUESTO, ');
Add(' NUMCONCEPTO, ');
Add(' TIPOCONCEPTO, ');
Add(' CODIGOARTICULO, ');
Add(' REFERENCIA, ');
Add(' DESCRIPCION, ');
Add(' CANTIDAD, ');
Add(' IMPORTEUNIDAD, ');
Add(' IMPORTETOTAL, ');
Add(' OBSERVACIONES) ');
Add('select ''' + CodigoAux + ''', NUMCONCEPTO,');
Add('TIPOCONCEPTO, CODIGOARTICULO, REFERENCIA, ');
Add('DESCRIPCION, CANTIDAD,');
Add('IMPORTEUNIDAD, IMPORTETOTAL, OBSERVACIONES ');
Add('from DETALLESPRESUPUESTOSARTICULOS ');
Add('where CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO');
end;
ParamByName('CODIGOPRESUPUESTO').AsString := CodigoPresupuesto;
end;
oSQL3 := TIBSQL.Create(Self);
with oSQL3 do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('insert into DETALLESPRESUPUESTOSPROPIEDADES (');
SQL.Add('CODIGOPRESUPUESTO, NUMCONCEPTO, NUMPROPIEDAD, ');
SQL.Add('CODIGOPROPIEDAD, VALOR) ');
SQL.Add('select ''' + CodigoAux + ''', NUMCONCEPTO, ');
SQL.Add('NUMPROPIEDAD, CODIGOPROPIEDAD, VALOR ');
SQL.Add('from DETALLESPRESUPUESTOSPROPIEDADES ');
SQL.Add('where CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO');
ParamByName('CODIGOPRESUPUESTO').AsString := CodigoPresupuesto;
end;
try
oSQL.Prepare;
oSQL2.Prepare;
oSQL3.Prepare;
oSQL.ExecQuery;
oSQL2.ExecQuery;
oSQL3.ExecQuery;
IncrementarCodigo;
Result := CodigoAux;
finally
oSQL.Close;
oSQL.Transaction := NIL;
oSQL.Free;
oSQL2.Close;
oSQL2.Transaction := NIL;
oSQL2.Free;
oSQL3.Close;
oSQL3.Transaction := NIL;
oSQL3.Free;
end;
end;
{ TListaDetallesPresupuesto }
procedure TListaDetallesPresupuesto.AssignTo(Dest: TPersistent);
begin
if not (Dest is TDatosDetallePresupuesto) then
AssignError(Dest);
{ (Dest as TDatosDetallePresupusto).Codigo := Codigo;
(Dest as TDatosDetallePresupusto).Descripcion := Descripcion;
(Dest as TDatosDetallePresupusto).Familia := Familia;
(Dest as TDatosDetallePresupusto).ListaPropiedades.Assign(ListaPropiedades);}
end;
constructor TListaDetallesPresupuesto.Create(CodigoPresupuesto: String);
begin
inherited Create;
FCodigoPresupuesto := CodigoPresupuesto;
ObtenerLista;
end;
constructor TListaDetallesPresupuesto.Create;
begin
inherited;
FCodigoPresupuesto := '';
end;
function TListaDetallesPresupuesto.GetDetallePresupuesto(
Index: Integer): TDatosDetallePresupuesto;
begin
Result := TDatosDetallePresupuesto(FLista.Items[Index]);
end;
procedure TListaDetallesPresupuesto.ObtenerLista;
var
oSQL1 : TIBSQL;
oSQL2 : TIBSQL;
Detalle : TDatosDetallePresupuesto;
Propiedad : TDatosPropiedad;
begin
oSQL1 := TIBSQL.Create(nil);
oSQL2 := TIBSQL.Create(nil);
with oSQL1 do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select * from DETALLESPRESUPUESTOSARTICULOS');
SQL.Add('where CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO');
SQL.Add('order by NUMCONCEPTO');
ParamByName('CODIGOPRESUPUESTO').AsString := FCodigoPresupuesto;
end;
with oSQL2 do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select * from DETALLESPRESUPUESTOSPROPIEDADES');
SQL.Add('where CODIGOPRESUPUESTO = :CODIGOPRESUPUESTO');
SQL.Add('order by NUMCONCEPTO');
ParamByName('CODIGOPRESUPUESTO').AsString := FCodigoPresupuesto;
end;
try
oSQL1.Prepare;
oSQL1.ExecQuery;
oSQL2.Prepare;
oSQL2.ExecQuery;
while not oSQL1.EOF do begin
Detalle := TDatosDetallePresupuesto.Create;
with Detalle do
begin
NumConcepto := oSQL1.FieldByName('NUMCONCEPTO').AsInteger;
CodigoArticulo := oSQL1.FieldByName('CODIGOARTICULO').AsString;
Referencia := oSQL1.FieldByName('REFERENCIA').AsString;
TipoConcepto := oSQL1.FieldByName('TIPOCONCEPTO').AsString;
Descripcion := oSQL1.FieldByName('DESCRIPCION').AsString;
Cantidad := oSQL1.FieldByName('CANTIDAD').AsInteger;
ImporteUnidad := oSQL1.FieldByName('IMPORTEUNIDAD').AsInteger;
ImporteTotal := oSQL1.FieldByName('IMPORTETOTAL').AsInteger;
end;
while (not oSQL2.EOF) and
(oSQL2.FieldByName('NUMCONCEPTO').AsInteger = Detalle.NumConcepto) do
begin
Propiedad := TDatosPropiedad.Create;
with Propiedad do
begin
CodigoPropiedad := oSQL2.FieldByName('CODIGOPROPIEDAD').AsInteger;
Valor := oSQL2.FieldByName('VALOR').AsString;
end;
Detalle.ListaPropiedades.Add(Propiedad);
oSQL2.Next;
end;
FLista.Add(Detalle);
oSQL1.Next;
end;
finally
with oSQL1 do
begin
Close;
Transaction := NIL;
Free;
end;
with oSQL2 do
begin
Close;
Transaction := NIL;
Free;
end;
end;
end;
{ TDatosDetallePresupuesto }
procedure TDatosDetallePresupuesto.AssignTo(Dest: TPersistent);
begin
inherited;
end;
constructor TDatosDetallePresupuesto.Create;
begin
inherited;
FListaPropiedades := TListaPropiedadesPresupuesto.Create;
end;
destructor TDatosDetallePresupuesto.Destroy;
begin
FListaPropiedades.Free;
FListaPropiedades := NIL;
inherited;
end;
procedure TDatosDetallePresupuesto.ObtenerDatos;
begin
inherited;
end;
{ TDatosPresupuesto }
procedure TDatosPresupuesto.AssignTo(Dest: TPersistent);
begin
inherited;
end;
constructor TDatosPresupuesto.Create(CodigoPresupuesto: String);
begin
inherited Create;
Codigo := CodigoPresupuesto;
ObtenerDatos;
FListaDetallesPresupuesto := TListaDetallesPresupuesto.Create(Codigo);
end;
constructor TDatosPresupuesto.Create;
begin
inherited Create;
FListaDetallesPresupuesto := TListaDetallesPresupuesto.Create;
end;
destructor TDatosPresupuesto.Destroy;
begin
FListaDetallesPresupuesto.Free;
FListaDetallesPresupuesto := NIL;
inherited;
end;
procedure TDatosPresupuesto.ObtenerDatos;
var
oSQL : TIBSQL;
begin
if EsCadenaVacia(Codigo) then
Exit;
oSQL := TIBSQL.Create(nil);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select * from PRESUPUESTOSCLIENTE ');
SQL.Add('where CODIGO = :CODIGO');
try
ParamByName('CODIGO').AsString := Codigo;
Prepare;
ExecQuery;
if (RecordCount > 0) then
begin
FechaAlta := FieldByName('FECHAALTA').AsDateTime;
Usuario := FieldByName('USUARIO').AsString;
FechaPresupuesto := FieldByName('FECHAPRESUPUESTO').AsDateTime;
CodigoDocumento := FieldByName('CODIGODOCUMENTO').AsString;
Situacion := FieldByName('SITUACION').AsString;
FechaDecision := FieldByName('FECHADECISION').AsDateTime;
CodigoCliente := FieldByName('CODIGOCLIENTE').AsString;
NIFCIF := FieldByName('NIFCIF').AsString;
Nombre := FieldByName('NOMBRE').AsString;
Calle := FieldByName('CALLE').AsString;
Numero := FieldByName('NUMERO').AsString;
Piso := FieldByName('PISO').AsString;
CodigoPostal := FieldByName('CODIGOPOSTAL').AsString;
Poblacion := FieldByName('POBLACION').AsString;
Provincia := FieldByName('PROVINCIA').AsString;
Telefono1 := FieldByName('TELEFONO1').AsString;
Telefono2 := FieldByName('TELEFONO2').AsString;
Movil1 := FieldByName('MOVIL1').AsString;
Movil2 := FieldByName('MOVIL2').AsString;
Fax := FieldByName('FAX').AsString;
PersonaContacto := FieldByName('PERSONACONTACTO').AsString;
Observaciones := FieldByName('OBSERVACIONES').AsString;
Vendedor := FieldByName('VENDEDOR').AsString;
BaseImponible := FieldByName('BASEIMPONIBLE').AsDouble;
Descuento := FieldByName('DESCUENTO').AsInteger;
ImporteDescuento := FieldByName('IMPORTEDESCUENTO').AsDouble;
Iva := FieldByName('IVA').AsInteger;
ImporteIva := FieldByName('IMPORTEIVA').AsDouble;
ImporteTotal := FieldByName('IMPORTETOTAL').AsDouble;
VigenciaPresupuesto := FieldByName('VIGENCIAPRESUPUESTO').AsDateTime;
PlazoEntrega := FieldByName('PLAZOENTREGA').AsString;
FormaPago := FieldByName('FORMAPAGO').AsString;
Desgloses := FieldByName('DESGLOSES').AsString;
Aumento := FieldByName('AUMENTO').AsString;
end
else begin
raise Exception.CreateFmt(msgCliNoExistePre, [Codigo]);
end;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
{ TListaPropiedadesPresupuesto }
procedure TListaPropiedadesPresupuesto.AssignTo(Dest: TPersistent);
begin
inherited;
end;
constructor TListaPropiedadesPresupuesto.Create(CodigoArticulo: String);
begin
end;
constructor TListaPropiedadesPresupuesto.Create;
begin
inherited;
end;
function TListaPropiedadesPresupuesto.GetPropiedad(
Index: Integer): TDatosPropiedad;
begin
end;
procedure TListaPropiedadesPresupuesto.ObtenerLista;
begin
inherited;
end;
end.