git-svn-id: https://192.168.0.254/svn/Proyectos.Miguelo_FactuGES/trunk@4 172823e9-465a-9d4b-80ba-0a9f016f4eb1
624 lines
20 KiB
ObjectPascal
624 lines
20 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: 16-11-2002
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual: 16-11-2002
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit ListadoBeneficios;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Db, StdCtrls, RdxMemo, RdxCampos, RdxTitulos, Forms, RdxPaneles,
|
|
RdxBotones, Controls, ExtCtrls, RdxBarras, Classes, RdxFrameComisiones,
|
|
RdxFrame, RXDBCtrl, RxMemDS, ComCtrls, cxDBEdit, cxMaskEdit, cxButtonEdit,
|
|
Configuracion, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, AdvPanel,
|
|
cxSpinEdit, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDBData,
|
|
cxGridLevel, cxClasses, cxGridCustomView, cxGridCustomTableView,
|
|
cxGridTableView, cxGridDBTableView, cxGrid, cxDropDownEdit, cxCalendar,
|
|
InformeComisionesVendedores, vistaPrevia,
|
|
RdxDBFrame, RdxFrameListadoBeneficios, InformeListadoPagosCliente,
|
|
InformeListadoPagosClientes, RdxPageControl, IBCustomDataSet, IBDatabase,
|
|
cxDataStorage, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, ActnList,
|
|
Grids, DBGrids, InformeListadoBeneficiosContrato, InformeDetalleBeneficiosContrato;
|
|
|
|
type
|
|
TfrListadoBeneficios = class(TRdxFrameListadoBeneficios)
|
|
dsFacturasCliente: TDataSource;
|
|
Titulo: TRdxPanelTituloOperacion;
|
|
pnlCuerpo: TPanel;
|
|
dsFacturasProveedor: TDataSource;
|
|
Paginas: TRdxPagesControl;
|
|
pagBeneficiosContrato: TTabSheet;
|
|
pnlDatos: TAdvPanel;
|
|
Panel3: TPanel;
|
|
eCodigoContrato: TLabel;
|
|
eNIFCIF: TLabel;
|
|
NIFCIF: TcxTextEdit;
|
|
Panel2: TPanel;
|
|
Panel1: TPanel;
|
|
Splitter1: TSplitter;
|
|
gridFacturasProveedor: TcxGrid;
|
|
gridFacturasProveedorDBTableView1: TcxGridDBTableView;
|
|
gridFacturasProveedorLevel1: TcxGridLevel;
|
|
gridFacturasCliente: TcxGrid;
|
|
gridFacturasClienteDBTableView1: TcxGridDBTableView;
|
|
gridFacturasClienteLevel1: TcxGridLevel;
|
|
Panel5: TPanel;
|
|
dsObrasGastos: TDataSource;
|
|
eNombre: TLabel;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Panel4: TPanel;
|
|
pagListaBeneficiosContrato: TTabSheet;
|
|
Panel6: TPanel;
|
|
brSimple: TRdxBarraInferior;
|
|
bVistaPrevia: TRdxBoton;
|
|
bImprimir: TRdxBoton;
|
|
bCancelar: TRdxBoton;
|
|
dsTablaBeneficios: TDataSource;
|
|
gridBeneficios: TcxGrid;
|
|
gridBeneficiosDBTableView1: TcxGridDBTableView;
|
|
gridBeneficiosLevel1: TcxGridLevel;
|
|
TablaBeneficiosAux: TIBDataSet;
|
|
TablaBeneficiosAuxCODIGO: TIBStringField;
|
|
TablaBeneficiosAuxFECHACONTRATO: TDateField;
|
|
TablaBeneficiosAuxIMPCLI: TIBBCDField;
|
|
TablaBeneficiosAuxIMPORTETOTAL: TIBBCDField;
|
|
TablaBeneficiosAuxPORCENTAJE: TIBBCDField;
|
|
TablaBeneficiosAuxBENEFICIO: TIBBCDField;
|
|
Nombre: TcxTextEdit;
|
|
Panel8: TPanel;
|
|
Panel11: TPanel;
|
|
Label3: TLabel;
|
|
Panel9: TPanel;
|
|
bEliminar: TRdxBoton;
|
|
bAnadir: TRdxBoton;
|
|
bEliminarTodo: TRdxBoton;
|
|
TablaBeneficiosAuxNIFCIF: TIBStringField;
|
|
TablaBeneficiosAuxNOMBRE: TIBStringField;
|
|
CodContrato: TcxTextEdit;
|
|
Acciones: TActionList;
|
|
actAnadir: TAction;
|
|
actEliminar: TAction;
|
|
actEliminarTodo: TAction;
|
|
gridObrasGastos: TcxGrid;
|
|
gridObrasGastosDBTableView1: TcxGridDBTableView;
|
|
gridObrasGastosLevel1: TcxGridLevel;
|
|
Panel10: TPanel;
|
|
PorcentajeBeneficio: TLabel;
|
|
eePorcentajeBeneficio: TLabel;
|
|
eeTotalFacProveedor: TLabel;
|
|
eeTotalObrasGastos: TLabel;
|
|
eeTotalFacCliente: TLabel;
|
|
eeTotalBeneficio: TLabel;
|
|
eTotalFacCliente: TLabel;
|
|
eTotalFacProveedor: TLabel;
|
|
eTotalObrasGastos: TLabel;
|
|
ePorcentajeBeneficio: TLabel;
|
|
eTotalBeneficio: TLabel;
|
|
TablaBeneficiosAuxIMPOTROS: TIBBCDField;
|
|
TablaBeneficiosAuxIMPPROV: TIBBCDField;
|
|
RdxBoton1: TRdxBoton;
|
|
actRecalcular: TAction;
|
|
procedure bCancelarClick(Sender: TObject);
|
|
procedure bImprimirClick(Sender: TObject);
|
|
procedure bVistaPreviaClick(Sender: TObject);
|
|
procedure Panel1Resize(Sender: TObject);
|
|
procedure gridFacturasDBTableView1CustomDrawCell(
|
|
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
|
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|
procedure IBDataSet1CalcFields(DataSet: TDataSet);
|
|
procedure gridFacturasProveedorResize(Sender: TObject);
|
|
procedure actAnadirExecute(Sender: TObject);
|
|
procedure actEliminarExecute(Sender: TObject);
|
|
procedure actEliminarTodoExecute(Sender: TObject);
|
|
procedure gridObrasGastosExit(Sender: TObject);
|
|
procedure gridBeneficiosDBTableView1DblClick(Sender: TObject);
|
|
procedure PaginasChange(Sender: TObject);
|
|
procedure actRecalcularExecute(Sender: TObject);
|
|
private
|
|
ContadorAux: Integer;
|
|
FInformeListadoBeneficiosContrato : TdmInformeListadoBeneficiosContrato;
|
|
FInformeDetalleBeneficiosContrato : TdmInformeDetalleBeneficiosContrato;
|
|
|
|
procedure Filtrar;
|
|
procedure BuscarFacturasCliente;
|
|
procedure BuscarFacturasProveedor;
|
|
procedure BuscarObrasGastos;
|
|
protected
|
|
procedure ActivarModoConsultar; override;
|
|
procedure RecargarDatosDetalle; override;
|
|
public
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
published
|
|
end;
|
|
|
|
var
|
|
frListadoBeneficios: TfrListadoBeneficios;
|
|
|
|
implementation
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
Mensajes, IB, Colores, BaseDatos, Sysutils, Constantes,
|
|
StrFunc, TablaPoblaciones, Excepciones, IBErrorCodes,
|
|
Variants, Entidades, NumFunc, Literales, TablaFacturasCliente,
|
|
TablaPagosCliente, DateFunc, cxCheckBox, cxDateUtils, Graphics,
|
|
ContratosClientes, RdxFrameContratos, TablaClientes, TablaContratos,
|
|
TablaFacturasProveedor, RdxEmpresaActiva, TablaObrasGastos;
|
|
|
|
|
|
procedure TfrListadoBeneficios.ActivarModoConsultar;
|
|
begin
|
|
Visible := True;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.BuscarFacturasCliente;
|
|
begin
|
|
if Transaccion = NIL then
|
|
Exit;
|
|
try
|
|
TablaFacturasCliente.Close;
|
|
|
|
// Buscar la fila a tratar si es necesario
|
|
if not EsCadenaVacia(CodigoContrato) then begin
|
|
TablaFacturasCliente.Params.ByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|
TablaFacturasCliente.Params.ByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
end;
|
|
|
|
TablaFacturasCliente.Prepare;
|
|
TablaFacturasCliente.Open;
|
|
dmTablaFacturasCliente.InicializarTablaFacturas(@TablaFacturasCliente);
|
|
gridFacturasCliente.ActiveView.DataController.GotoFirst;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.BuscarFacturasProveedor;
|
|
begin
|
|
if Transaccion = NIL then
|
|
Exit;
|
|
try
|
|
TablaFacturasProveedor.Close;
|
|
|
|
// Buscar la fila a tratar si es necesario
|
|
if not EsCadenaVacia(CodigoContrato) then begin
|
|
TablaFacturasProveedor.Params.ByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|
TablaFacturasProveedor.Params.ByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
end;
|
|
|
|
TablaFacturasProveedor.Prepare;
|
|
TablaFacturasProveedor.Open;
|
|
dmTablaFacturasProveedor.InicializarTablaFacturas(@TablaFacturasProveedor);
|
|
gridFacturasProveedor.ActiveView.DataController.GotoFirst;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
constructor TfrListadoBeneficios.Create (AOwner : TComponent);
|
|
var
|
|
Columna : TcxGridDBColumn;
|
|
|
|
begin
|
|
inherited Create(AOwner);
|
|
FInformeListadoBeneficiosContrato := TdmInformeListadoBeneficiosContrato.Create(Self);
|
|
FInformeDetalleBeneficiosContrato := TdmInformeDetalleBeneficiosContrato.Create(Self);
|
|
|
|
Entidad := entListadoBeneficios;
|
|
BaseDatos := dmBaseDatos.BD;
|
|
Transaccion := dmBaseDatos.Transaccion;
|
|
|
|
TablaBeneficios := TablaBeneficiosAux;
|
|
TablaFacturasProveedor := TIBDataSet.Create(Self);
|
|
TablaFacturasCliente := TIBDataSet.Create(Self);
|
|
TablaObrasGastos := TIBDataSet.Create(Self);
|
|
|
|
dsTablaBeneficios.DataSet := TablaBeneficios;
|
|
dsFacturasProveedor.DataSet := TablaFacturasProveedor;
|
|
dsFacturasCliente.DataSet := TablaFacturasCliente;
|
|
dsObrasGastos.DataSet := TablaObrasGastos;
|
|
|
|
with TablaBeneficios do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaContratos.sqlConsultarGridBeneficios);
|
|
RefreshSQL.Assign(dmTablaContratos.sqlConsultarGridBeneficios);
|
|
AutoCalcFields := True;
|
|
OnCalcFields := IBDataSet1CalcFields;
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaFacturasProveedor do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaFacturasProveedor.sqlConsultarGridFacturasProvContrato);
|
|
RefreshSQL.Assign(dmTablaFacturasProveedor.sqlConsultarGridFacturasProvContrato);
|
|
end;
|
|
|
|
with TablaFacturasCliente do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaFacturasCliente.sqlConsultarGridFacturasCliContrato);
|
|
RefreshSQL.Assign(dmTablaFacturasCliente.sqlConsultarGridFacturasCliContrato);
|
|
end;
|
|
|
|
with TablaObrasGastos do
|
|
begin
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaObrasGastos.sqlGrid);
|
|
InsertSQL.Assign(dmTablaObrasGastos.sqlInsertar);
|
|
ModifySQL.Assign(dmTablaObrasGastos.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaObrasGastos.sqlEliminar);
|
|
end;
|
|
|
|
dmTablaContratos.InicializarGridBeneficios(gridBeneficios);
|
|
dmTablaContratos.InicializarTablaBeneficios(@TablaBeneficios);
|
|
dmTablaFacturasCliente.InicializarGridFacturasCliContrato(gridFacturasCliente);
|
|
dmTablaFacturasProveedor.InicializarGridFacturasProvContrato(gridFacturasProveedor);
|
|
dmTablaObrasGastos.InicializarGrid(gridObrasGastosDBTableView1);
|
|
|
|
Filtrar;
|
|
Paginas.ActivePageIndex := 0;
|
|
end;
|
|
|
|
destructor TfrListadoBeneficios.Destroy;
|
|
begin
|
|
FInformeListadoBeneficiosContrato.Free;
|
|
FInformeDetalleBeneficiosContrato.Free;
|
|
|
|
TablaBeneficios.Close;
|
|
TablaBeneficios.UnPrepare;
|
|
TablaBeneficios.Free;
|
|
|
|
TablaFacturasProveedor.Close;
|
|
TablaFacturasProveedor.UnPrepare;
|
|
TablaFacturasProveedor.Free;
|
|
|
|
TablaFacturasCliente.Close;
|
|
TablaFacturasCliente.UnPrepare;
|
|
TablaFacturasCliente.Free;
|
|
|
|
TablaObrasGastos.Close;
|
|
TablaObrasGastos.UnPrepare;
|
|
TablaObrasGastos.Free;
|
|
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.bImprimirClick(Sender: TObject);
|
|
begin
|
|
if (Paginas.ActivePageIndex = 0) then
|
|
begin
|
|
FInformeListadoBeneficiosContrato.Preview := nil;
|
|
FInformeListadoBeneficiosContrato.Imprimir;
|
|
end
|
|
else begin
|
|
FInformeDetalleBeneficiosContrato.CodigoContrato := CodigoContrato;
|
|
FInformeDetalleBeneficiosContrato.NIFCIF := NIFCIF.Text;
|
|
FInformeDetalleBeneficiosContrato.Nombre := Nombre.Text;
|
|
FInformeDetalleBeneficiosContrato.Preview := nil;
|
|
FInformeDetalleBeneficiosContrato.Imprimir;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.bCancelarClick(Sender: TObject);
|
|
begin
|
|
CloseFrame;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.bVistaPreviaClick(Sender: TObject);
|
|
var
|
|
FVistaPrevia : TfrVistaPrevia;
|
|
|
|
begin
|
|
if (Paginas.ActivePageIndex = 0) then
|
|
begin
|
|
FVistaPrevia := TfrVistaPrevia.Create(Self);
|
|
FInformeListadoBeneficiosContrato.Preview := FVistaPrevia.Preview;
|
|
FInformeListadoBeneficiosContrato.Previsualizar;
|
|
CaptionModal := 'Informe de lista de beneficios por contrato';
|
|
end
|
|
else begin
|
|
FInformeDetalleBeneficiosContrato.CodigoContrato := CodigoContrato;
|
|
FInformeDetalleBeneficiosContrato.NIFCIF := NIFCIF.Text;
|
|
FInformeDetalleBeneficiosContrato.Nombre := Nombre.Text;
|
|
FVistaPrevia := TfrVistaPrevia.Create(Self);
|
|
FInformeDetalleBeneficiosContrato.Preview := FVistaPrevia.Preview;
|
|
FInformeDetalleBeneficiosContrato.Previsualizar;
|
|
CaptionModal := 'Informe de detalle de beneficios por contrato';
|
|
end;
|
|
|
|
WidthModal := 800;
|
|
HeightModal := 600;
|
|
ModoModal := Consultar;
|
|
EntidadModal := entListadoPagosCliente;
|
|
ContenidoModal := FVistaPrevia;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.gridFacturasDBTableView1CustomDrawCell(
|
|
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
|
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|
var
|
|
IndiceCol : Integer;
|
|
begin
|
|
if not AViewInfo.Selected then
|
|
begin
|
|
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName('BENEFICIO').Index;
|
|
if Copy(Trim(AViewInfo.GridRecord.DisplayTexts[IndiceCol]), 1, 1) = '-' then
|
|
ACanvas.Canvas.Font.Color := $000000CC;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.Panel1Resize(Sender: TObject);
|
|
begin
|
|
gridFacturasProveedor.Width := (Panel1.ClientWidth - Splitter1.Width) div 2;
|
|
gridFacturasCliente.Width := gridFacturasProveedor.Width;
|
|
gridObrasGastos.Width := gridFacturasProveedor.Width;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.RecargarDatosDetalle;
|
|
var
|
|
TotalProv: double;
|
|
TotalObrasGastos: double;
|
|
TotalCli: double;
|
|
TotalBeneficio: double;
|
|
TotalPorcentaje: double;
|
|
|
|
begin
|
|
CodContrato.Text := CodigoContrato;
|
|
NifCif.Text := TablaBeneficios.FieldByName('NIFCIF').AsString;
|
|
Nombre.Text := TablaBeneficios.FieldByName('Nombre').AsString;
|
|
|
|
BuscarFacturasCliente;
|
|
BuscarFacturasProveedor;
|
|
BuscarObrasGastos;
|
|
|
|
if (not varIsNull(gridFacturasProveedor.ActiveView.DataController.Summary.FooterSummaryValues[0])) then
|
|
TotalProv := gridFacturasProveedor.ActiveView.DataController.Summary.FooterSummaryValues[0]
|
|
else
|
|
TotalProv := 0;
|
|
eeTotalFacProveedor.Caption := msgCliListBeneCon1;
|
|
eTotalFacProveedor.Caption := '- ' + FormatFloat(DISPLAY_EUROS2, TotalProv);
|
|
|
|
if (not varIsNull(gridObrasGastos.ActiveView.DataController.Summary.FooterSummaryValues[0])) then
|
|
TotalObrasGastos := gridObrasGastos.ActiveView.DataController.Summary.FooterSummaryValues[0]
|
|
else
|
|
TotalObrasGastos := 0;
|
|
eeTotalObrasGastos.Caption := msgCliListBeneCon2;
|
|
eTotalObrasGastos.Caption := '- ' + FormatFloat(DISPLAY_EUROS2, TotalObrasGastos);
|
|
|
|
if (not varIsNull(gridFacturasCliente.ActiveView.DataController.Summary.FooterSummaryValues[0])) then
|
|
TotalCli := gridFacturasCliente.ActiveView.DataController.Summary.FooterSummaryValues[0]
|
|
else
|
|
TotalCli := 0;
|
|
eeTotalFacCliente.Caption := msgCliListBeneCon3;
|
|
eTotalFacCliente.Caption := FormatFloat(DISPLAY_EUROS2, TotalCli);
|
|
|
|
TotalBeneficio := TotalCli - (TotalProv + TotalObrasGastos);
|
|
TotalPorcentaje := darPorcentaje(TotalCli, TotalBeneficio);
|
|
eeTotalBeneficio.Caption := msgCliListBeneCon4;
|
|
eTotalBeneficio.Caption := FormatFloat(DISPLAY_EUROS2, TotalBeneficio);
|
|
eePorcentajeBeneficio.Caption := msgCliListBeneCon5;
|
|
if (TotalPorcentaje = -1) then
|
|
ePorcentajeBeneficio.Caption := 'N/A'
|
|
else
|
|
ePorcentajeBeneficio.Caption := FormatFloat(DISPLAY_CTO, TotalPorcentaje);
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.Filtrar;
|
|
var
|
|
Columna1, Columna2 : TcxGridDBColumn;
|
|
AItemList: TcxFilterCriteriaItemList;
|
|
|
|
begin
|
|
with gridBeneficios.ActiveView.DataController.Filter do
|
|
begin
|
|
BeginUpdate;
|
|
try
|
|
Root.Clear;
|
|
Columna1 := (gridBeneficios.ActiveView as TcxGridDBTableView).GetColumnByFieldName('IMPPROV');
|
|
Columna2 := (gridBeneficios.ActiveView as TcxGridDBTableView).GetColumnByFieldName('IMPCLI');
|
|
AItemList := Root.AddItemList(fboOr);
|
|
AItemList.AddItem(Columna1, foNotEqual, '0', 'Nulo');
|
|
AItemList.AddItem(Columna2, foNotEqual, '0', 'Nulo');
|
|
Active := True;
|
|
finally
|
|
EndUpdate;
|
|
gridBeneficios.ActiveView.DataController.GotoFirst;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.IBDataSet1CalcFields(DataSet: TDataSet);
|
|
var
|
|
Aux: Double;
|
|
|
|
begin
|
|
with DataSet do
|
|
begin
|
|
if VarIsNull(FieldByName('IMPPROV').AsVariant) then
|
|
FieldByName('IMPPROV').AsFloat := 0;
|
|
|
|
if VarIsNull(FieldByName('IMPCLI').AsVariant) then
|
|
FieldByName('IMPCLI').AsFloat := 0;
|
|
|
|
FieldByName('BENEFICIO').AsFloat := (FieldByName('IMPCLI').AsFloat - FieldByName('IMPPROV').AsFloat) - FieldByName('IMPOTROS').AsFloat;
|
|
|
|
Aux := darPorcentaje(FieldByName('IMPCLI').AsFloat, FieldByName('BENEFICIO').AsFloat);
|
|
if (Aux = -1) then
|
|
// then FieldByName('PORCENTAJE').AsString := 'N/A';
|
|
else FieldByName('PORCENTAJE').AsFloat := darPorcentaje(FieldByName('IMPCLI').AsFloat, FieldByName('BENEFICIO').AsFloat);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.gridBeneficiosDBTableView1DblClick(Sender: TObject);
|
|
begin
|
|
CodigoContrato := TablaBeneficios.FieldByName('CODIGO').AsString;
|
|
Paginas.ActivePageIndex := 1;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.gridFacturasProveedorResize(Sender: TObject);
|
|
begin
|
|
gridObrasGastos.Width := gridFacturasProveedor.Width;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.BuscarObrasGastos;
|
|
begin
|
|
try
|
|
TablaObrasGastos.Close;
|
|
// Buscar la fila a tratar si es necesario
|
|
if not EsCadenaVacia(CodigoContrato) then begin
|
|
TablaObrasGastos.Params.ByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|
end;
|
|
TablaObrasGastos.Prepare;
|
|
TablaObrasGastos.Open;
|
|
// dmTablaObrasGastos.InicializarTablaObrasGastos(@TablaObrasGastos);
|
|
if TablaObrasGastos.RecordCount = -1 then
|
|
ContadorAux := 0
|
|
else
|
|
ContadorAux := TablaObrasGastos.RecordCount;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.actAnadirExecute(Sender: TObject);
|
|
begin
|
|
try
|
|
with TablaObrasGastos do
|
|
begin
|
|
Next;
|
|
if EOF then Append
|
|
else begin
|
|
Prior;
|
|
Insert;
|
|
end;
|
|
|
|
TablaObrasGastos.FieldByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|
TablaObrasGastos.FieldByName('CODIGO').AsInteger := ContadorAux;
|
|
TablaObrasGastos.FieldByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
|
|
TablaObrasGastos.FieldByName('USUARIO').AsString := dmBaseDatos.Usuario;
|
|
TablaObrasGastos.FieldByName('FECHA').AsDateTime := dmBaseDatos.DarFecha;
|
|
Inc(ContadorAux);
|
|
end;
|
|
gridObrasGastos.SetFocus;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.actEliminarExecute(Sender: TObject);
|
|
begin
|
|
if (VerMensajePregunta(msgDeseaBorrar) <> IDYES) then
|
|
Exit;
|
|
|
|
if TablaObrasGastos.RecordCount = 0 then begin
|
|
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
|
recien creado }
|
|
TablaObrasGastos.Cancel;
|
|
Exit
|
|
end;
|
|
try
|
|
TablaObrasGastos.Delete;
|
|
commit;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.actEliminarTodoExecute(Sender: TObject);
|
|
begin
|
|
if (VerMensajePregunta(msgDeseaBorrarTodo) <> IDYES) then
|
|
Exit;
|
|
|
|
try
|
|
with TablaObrasGastos do
|
|
begin
|
|
if IsEmpty then
|
|
Exit;
|
|
DisableControls;
|
|
Last;
|
|
while not BOF do
|
|
begin
|
|
Delete;
|
|
Prior;
|
|
end;
|
|
if not IsEmpty then
|
|
Delete;
|
|
EnableControls;
|
|
commit;
|
|
end;
|
|
except
|
|
on E : EIBError do
|
|
TratarExcepcion(E);
|
|
on E : Exception do
|
|
TratarExcepcion(E);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.gridObrasGastosExit(Sender: TObject);
|
|
begin
|
|
commit;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.PaginasChange(Sender: TObject);
|
|
begin
|
|
if gridBeneficiosDBTableView1.ViewData.RecordCount = 0 then
|
|
begin
|
|
Paginas.ActivePageIndex := 0;
|
|
exit;
|
|
end;
|
|
|
|
if (Paginas.ActivePageIndex = 1) then
|
|
CodigoContrato := TablaBeneficios.FieldByName('CODIGO').AsString;
|
|
end;
|
|
|
|
procedure TfrListadoBeneficios.actRecalcularExecute(Sender: TObject);
|
|
begin
|
|
RecargarDatosDetalle;
|
|
end;
|
|
|
|
end.
|