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/Informes/InformeContratoCliente.pas

213 lines
5.6 KiB
ObjectPascal
Raw Permalink Normal View History

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.