213 lines
5.6 KiB
ObjectPascal
213 lines
5.6 KiB
ObjectPascal
|
|
unit InformeContratoCliente;
|
||
|
|
|
||
|
|
interface
|
||
|
|
|
||
|
|
uses
|
||
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
|
|
Dialogs, InformeBase, FR_IBXDB, FR_Shape, FR_DSet, FR_DBSet, FR_Class,
|
||
|
|
DB, IBCustomDataSet, IBQuery, RdxEmpresaActiva, Entidades, FR_Rich, TablaDocumentos;
|
||
|
|
|
||
|
|
type
|
||
|
|
TdmInformeContratoCliente = class(TdmInformeBase)
|
||
|
|
TablaCab: TfrDBDataSet;
|
||
|
|
TablaDet: TfrDBDataSet;
|
||
|
|
TablaContrato: TIBQuery;
|
||
|
|
TablaDetallesContrato: TIBQuery;
|
||
|
|
TablaPropiedadesContrato: TIBQuery;
|
||
|
|
TablaProp: TfrDBDataSet;
|
||
|
|
dsDetallesContrato: TDataSource;
|
||
|
|
dsPropiedadesContrato: TDataSource;
|
||
|
|
dsContrato: TDataSource;
|
||
|
|
TablaPrecios1: TIBQuery;
|
||
|
|
TablaPrec1: TfrDBDataSet;
|
||
|
|
dsPrecios1: TDataSource;
|
||
|
|
frRichObject1: TfrRichObject;
|
||
|
|
private
|
||
|
|
FCodigoContrato : Variant;
|
||
|
|
FEntidad: TRdxEntidad;
|
||
|
|
FDocumento : TDocumento;
|
||
|
|
procedure SetEntidad(const Value: TRdxEntidad);
|
||
|
|
protected
|
||
|
|
procedure PrepararInforme; override;
|
||
|
|
procedure PrepararConsultas; override;
|
||
|
|
procedure RellenarBanda(Band: TfrBand); override;
|
||
|
|
public
|
||
|
|
constructor Create(AOwner: TComponent); override;
|
||
|
|
destructor Destroy; override;
|
||
|
|
published
|
||
|
|
property CodigoContrato : variant read FCodigoContrato write FCodigoContrato;
|
||
|
|
property Entidad : TRdxEntidad read FEntidad write SetEntidad;
|
||
|
|
end;
|
||
|
|
|
||
|
|
var
|
||
|
|
dmInformeContratoCliente: TdmInformeContratoCliente;
|
||
|
|
|
||
|
|
implementation
|
||
|
|
|
||
|
|
{$R *.dfm}
|
||
|
|
|
||
|
|
uses
|
||
|
|
StrFunc, Constantes, ComCtrls;
|
||
|
|
|
||
|
|
{ TdmInformeContratoCliente }
|
||
|
|
|
||
|
|
constructor TdmInformeContratoCliente.Create(AOwner: TComponent);
|
||
|
|
begin
|
||
|
|
inherited;
|
||
|
|
FDocumento := TDocumento.Create('MCOCINA');
|
||
|
|
end;
|
||
|
|
|
||
|
|
destructor TdmInformeContratoCliente.Destroy;
|
||
|
|
begin
|
||
|
|
FDocumento.Free;
|
||
|
|
FDocumento := NIL;
|
||
|
|
inherited;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TdmInformeContratoCliente.PrepararConsultas;
|
||
|
|
begin
|
||
|
|
inherited;
|
||
|
|
|
||
|
|
with TablaContrato do
|
||
|
|
begin
|
||
|
|
Database := FBaseDatos;
|
||
|
|
Transaction := FTransaccion;
|
||
|
|
SQL.Clear;
|
||
|
|
SQL.Add('select * from CONTRATOSCLIENTE ');
|
||
|
|
SQL.Add('where CODIGO = :CODIGO');
|
||
|
|
ParamByName('CODIGO').AsString := FCodigoContrato;
|
||
|
|
Prepare;
|
||
|
|
Open;
|
||
|
|
end;
|
||
|
|
|
||
|
|
with TablaDetallesContrato do
|
||
|
|
begin
|
||
|
|
Database := FBaseDatos;
|
||
|
|
Transaction := FTransaccion;
|
||
|
|
SQL.Clear;
|
||
|
|
SQL.Add('select * from DETALLESCONTRATOSARTICULOS ');
|
||
|
|
SQL.Add('where CODIGOCONTRATO = :CODIGO ');
|
||
|
|
|
||
|
|
case Entidad of
|
||
|
|
entContratoCocina,
|
||
|
|
entContratoBano : SQL.Add('and NUMCONCEPTO = 0');
|
||
|
|
|
||
|
|
entContratoArmarios : SQL.Add('and NUMCONCEPTO < 2');
|
||
|
|
end;
|
||
|
|
Params.ParseSQL(SQL.Text, True);
|
||
|
|
Prepare;
|
||
|
|
Open;
|
||
|
|
end;
|
||
|
|
|
||
|
|
with TablaPropiedadesContrato do
|
||
|
|
begin
|
||
|
|
Database := FBaseDatos;
|
||
|
|
Transaction := FTransaccion;
|
||
|
|
SQL.Clear;
|
||
|
|
SQL.Add('select CODIGOCONTRATO, NUMCONCEPTO, NUMPROPIEDAD, ');
|
||
|
|
SQL.Add('PROP.DESCRIPCION as DESCRIPCION, CODIGOPROPIEDAD, VALOR ');
|
||
|
|
SQL.Add('from DETALLESCONTRATOSPROPIEDADES, PROPIEDADES PROP ');
|
||
|
|
SQL.Add('where CODIGOCONTRATO = :CODIGOCONTRATO and ');
|
||
|
|
SQL.Add('NUMCONCEPTO = :NUMCONCEPTO and ');
|
||
|
|
SQL.Add('PROP.CODIGO = CODIGOPROPIEDAD ');
|
||
|
|
SQL.Add('order by NUMPROPIEDAD');
|
||
|
|
Params.ParseSQL(SQL.Text, True);
|
||
|
|
Prepare;
|
||
|
|
Open;
|
||
|
|
end;
|
||
|
|
|
||
|
|
TablaCab.Open;
|
||
|
|
TablaDet.Open;
|
||
|
|
TablaProp.Open;
|
||
|
|
|
||
|
|
with TablaPrecios1 do
|
||
|
|
begin
|
||
|
|
Database := FBaseDatos;
|
||
|
|
Transaction := FTransaccion;
|
||
|
|
SQL.Clear;
|
||
|
|
SQL.Add('select * ');
|
||
|
|
SQL.Add('from DETALLESCONTRATOSARTICULOS ');
|
||
|
|
SQL.Add('where CODIGOCONTRATO = :CODIGO and ');
|
||
|
|
SQL.Add('TIPOCONCEPTO = ''PRECIO'' ');
|
||
|
|
SQL.Add('order by NUMCONCEPTO');
|
||
|
|
Params.ParseSQL(SQL.Text, True);
|
||
|
|
Prepare;
|
||
|
|
end;
|
||
|
|
TablaPrec1.Open;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TdmInformeContratoCliente.PrepararInforme;
|
||
|
|
begin
|
||
|
|
inherited;
|
||
|
|
|
||
|
|
if Entidad = entContratoCocina then
|
||
|
|
begin
|
||
|
|
if (EsCadenaVacia(FDocumento.ContratoVenta)) then
|
||
|
|
FReport.Pages.Pages[1].Visible := False;
|
||
|
|
|
||
|
|
if (EsCadenaVacia(FDocumento.Recomendaciones)) then
|
||
|
|
FReport.Pages.Pages[2].Visible := False;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TdmInformeContratoCliente.RellenarBanda(Band: TfrBand);
|
||
|
|
var
|
||
|
|
iCont : Integer;
|
||
|
|
Objeto : TfrView;
|
||
|
|
CadenaAux : String;
|
||
|
|
begin
|
||
|
|
with Band do
|
||
|
|
begin
|
||
|
|
for iCont := 0 to Objects.Count - 1 do
|
||
|
|
begin
|
||
|
|
Objeto := Objects[iCont];
|
||
|
|
if ((Objeto is TfrMemoView) and (Pos('Conforme', Objeto.Name) > 0)) then
|
||
|
|
begin
|
||
|
|
with (Objeto as TfrMemoView), EmpresaActiva do
|
||
|
|
begin
|
||
|
|
Memo.Clear;
|
||
|
|
Memo.Add('CONFORME ' + NombreComercial);
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
if ((Objeto is TfrRichView) and (Pos('rtfContrato', Objeto.Name) > 0)) then
|
||
|
|
begin
|
||
|
|
with (Objeto as TfrRichView).RichEdit do
|
||
|
|
begin
|
||
|
|
Clear;
|
||
|
|
SelStart := GetTextLen;
|
||
|
|
SelText := FDocumento.ContratoVenta + #13#10;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
if ((Objeto is TfrRichView) and (Pos('rtfRecomendaciones', Objeto.Name) > 0)) then
|
||
|
|
begin
|
||
|
|
with (Objeto as TfrRichView).RichEdit do
|
||
|
|
begin
|
||
|
|
Clear;
|
||
|
|
SelStart := GetTextLen;
|
||
|
|
SelText := FDocumento.Recomendaciones + #13#10;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TdmInformeContratoCliente.SetEntidad(
|
||
|
|
const Value: TRdxEntidad);
|
||
|
|
begin
|
||
|
|
if FEntidad = Value then
|
||
|
|
Exit;
|
||
|
|
FEntidad := Value;
|
||
|
|
case FEntidad of
|
||
|
|
entContratoCocina : FNombreInforme := 'ContratoCocina.frf';
|
||
|
|
entContratoBano : FNombreInforme := 'ContratoBano.frf';
|
||
|
|
entContratoArmarios : FNombreInforme := 'ContratoArmarios.frf';
|
||
|
|
else
|
||
|
|
FNombreInforme := 'ContratoCliente.frf';
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
end.
|