636 lines
20 KiB
ObjectPascal
636 lines
20 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
Copyright (<EFBFBD>) 2002. Rodax Software.
|
|||
|
|
===============================================================================
|
|||
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|||
|
|
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
|
|||
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|||
|
|
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
|
|||
|
|
bajo el que se suministra.
|
|||
|
|
-----------------------------------------------------------------------------
|
|||
|
|
Web: www.rodax-software.com
|
|||
|
|
===============================================================================
|
|||
|
|
Fecha primera versi<EFBFBD>n: 26-01-2003
|
|||
|
|
Versi<EFBFBD>n actual: 1.0.1
|
|||
|
|
Fecha versi<EFBFBD>n actual: 22-04-2004
|
|||
|
|
===============================================================================
|
|||
|
|
Modificaciones:
|
|||
|
|
|
|||
|
|
Fecha Comentarios
|
|||
|
|
---------------------------------------------------------------------------
|
|||
|
|
22-04-2004 Arreglado un fallo con el c<EFBFBD>digo de empresa al insertar
|
|||
|
|
un cobro a cliente nuevo.
|
|||
|
|
===============================================================================
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
unit TablaPagosCliente;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
//Generales
|
|||
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|||
|
|
//Particulares
|
|||
|
|
IBCustomDataSet, cxGrid, TablaPagosProveedor,
|
|||
|
|
|
|||
|
|
//Aplicacion
|
|||
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos, RdxEmpresaActiva,
|
|||
|
|
|
|||
|
|
// Contador
|
|||
|
|
Contadores, RdxGestorContadores;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TDatosPagoCliente = class(TDatosPago)
|
|||
|
|
public
|
|||
|
|
CodigoCliente : String;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TdmTablaPagosCliente = class(TDataModule)
|
|||
|
|
private
|
|||
|
|
procedure IniciarSQL;
|
|||
|
|
|
|||
|
|
protected
|
|||
|
|
public
|
|||
|
|
sqlInsertar : TStrings;
|
|||
|
|
sqlModificar : TStrings;
|
|||
|
|
sqlConsultar : TStrings;
|
|||
|
|
sqlEliminar : TStrings;
|
|||
|
|
sqlGrid : TStrings;
|
|||
|
|
sqlGridPagosCliente : TStrings;
|
|||
|
|
sqlGridPagosPendCliente : TStrings;
|
|||
|
|
|
|||
|
|
//Metodos que llamaran a contador
|
|||
|
|
function DarNuevoCodigo : String;
|
|||
|
|
function IncrementarCodigo: boolean;
|
|||
|
|
function InsertarContador : boolean;
|
|||
|
|
function ValidarCodigo(Codigo : String) : Boolean;
|
|||
|
|
function FormatearCodigo(Codigo : String) : String;
|
|||
|
|
|
|||
|
|
constructor Create (AOwner : TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
|
|||
|
|
function DarDatosPagoCliente(PagoCliente : TDatosPagoCliente) : Boolean;
|
|||
|
|
function DarPagoClienteMax : String;
|
|||
|
|
function DarPagoClienteMin : String;
|
|||
|
|
|
|||
|
|
procedure Inicializargridlistadopagoscliente(var Grid: TcxGrid);
|
|||
|
|
procedure InicializarGridPagosClientes(var vGrid: TcxGridDBTableView);
|
|||
|
|
procedure InicializarTablaPagosClientes(Tabla: TPTabla);
|
|||
|
|
procedure InicializarGridPagosPendClientes(var vGrid: TcxGridDBTableView);
|
|||
|
|
procedure InicializarTablaPagosPendClientes(Tabla: TPTabla);
|
|||
|
|
function ExistePagoConCliente(Codigo : Variant) : Boolean;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
dmTablaPagosCliente: TdmTablaPagosCliente;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.DFM}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Variants, TablaEmpresas;
|
|||
|
|
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// PRIVATE
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
procedure TdmTablaPagosCliente.IniciarSQL;
|
|||
|
|
begin
|
|||
|
|
with sqlInsertar do
|
|||
|
|
begin
|
|||
|
|
Add('INSERT INTO PAGOSCLIENTE (CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, FECHAPAGO, ');
|
|||
|
|
Add('TIPOLIBRO, NUMENTRADA, TIPOPAGO, FORMAPAGO, DESCRIPCION, IMPORTE, CODIGOCLIENTE, NIFCIF, NOMBRE, CALLE, ');
|
|||
|
|
Add('NUMERO, PISO, CODIGOPOSTAL, POBLACION, PROVINCIA, TELEFONO1, TELEFONO2, ');
|
|||
|
|
Add('MOVIL1, MOVIL2, FAX, CORREO) ');
|
|||
|
|
Add('VALUES (:CODIGOEMPRESA, :CODIGO, :FECHAALTA, :USUARIO, :FECHAPAGO, ');
|
|||
|
|
Add(':TIPOLIBRO, :NUMENTRADA, :TIPOPAGO, :FORMAPAGO, :DESCRIPCION, :IMPORTE, :CODIGOCLIENTE, :NIFCIF, :NOMBRE, :CALLE, ');
|
|||
|
|
Add(':NUMERO, :PISO, :CODIGOPOSTAL, :POBLACION, :PROVINCIA, :TELEFONO1, :TELEFONO2, ');
|
|||
|
|
Add(':MOVIL1, :MOVIL2, :FAX, :CORREO) ');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlModificar do
|
|||
|
|
begin
|
|||
|
|
Add('update PAGOSCLIENTE set ');
|
|||
|
|
Add('FECHAPAGO = :FECHAPAGO, ');
|
|||
|
|
Add('TIPOLIBRO = :TIPOLIBRO, ');
|
|||
|
|
Add('NUMENTRADA = :NUMENTRADA, ');
|
|||
|
|
Add('TIPOPAGO = :TIPOPAGO, ');
|
|||
|
|
Add('FORMAPAGO = :FORMAPAGO, ');
|
|||
|
|
Add('DESCRIPCION = :DESCRIPCION, ');
|
|||
|
|
Add('IMPORTE = :IMPORTE, ');
|
|||
|
|
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('TELEFONO1 = :TELEFONO1, ');
|
|||
|
|
Add('TELEFONO2 = :TELEFONO2, ');
|
|||
|
|
Add('MOVIL1 = :MOVIL1, ');
|
|||
|
|
Add('MOVIL2 = :MOVIL2, ');
|
|||
|
|
Add('FAX = :FAX, ');
|
|||
|
|
Add('CORREO = :CORREO ');
|
|||
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|||
|
|
Add('and CODIGO = :CODIGO)');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlEliminar do
|
|||
|
|
begin
|
|||
|
|
Add('DELETE FROM PAGOSCLIENTE ');
|
|||
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|||
|
|
Add('and CODIGO = :CODIGO)');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlConsultar do
|
|||
|
|
begin
|
|||
|
|
Add('SELECT * FROM PAGOSCLIENTE ');
|
|||
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|||
|
|
Add('and CODIGO = :CODIGO)');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlGrid do
|
|||
|
|
begin
|
|||
|
|
Add('SELECT CODIGO, TIPOPAGO, CODIGOCLIENTE, NOMBRE, TELEFONO1, FECHAPAGO, FORMAPAGO, IMPORTE ');
|
|||
|
|
Add('FROM PAGOSCLIENTE ');
|
|||
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlGridPagosCliente do
|
|||
|
|
begin
|
|||
|
|
Add('SELECT CODIGO, TIPOPAGO, CODIGOCLIENTE, NOMBRE, TELEFONO1, FECHAPAGO, FORMAPAGO, IMPORTE ');
|
|||
|
|
Add('FROM PAGOSCLIENTE ');
|
|||
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|||
|
|
Add('and CODIGOCLIENTE = :CODIGOCLIENTE)');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
with sqlGridPagosPendCliente do
|
|||
|
|
begin
|
|||
|
|
Add('select c.codigo as codigocliente, c.nombre, ');
|
|||
|
|
Add('(select sum(f2.importetotal)');
|
|||
|
|
Add('from facturascliente f2');
|
|||
|
|
Add('where f2.codigocliente = c.codigo and');
|
|||
|
|
Add('f2.codigoempresa = :CODIGOEMPRESA) totalfacturas,');
|
|||
|
|
Add('(select sum(p.importe)');
|
|||
|
|
Add('from pagoscliente p');
|
|||
|
|
Add('where p.codigocliente = c.codigo and');
|
|||
|
|
Add('p.codigoempresa = :CODIGOEMPRESA) totalpagos,');
|
|||
|
|
Add('0.00 debe');
|
|||
|
|
|
|||
|
|
Add('from clientes c');
|
|||
|
|
Add('where (((select sum(f2.importetotal)');
|
|||
|
|
Add('from facturascliente f2');
|
|||
|
|
Add('where f2.codigocliente = c.codigo and');
|
|||
|
|
Add('f2.codigoempresa = :CODIGOEMPRESA) is not null) or ((select sum(p.importe)');
|
|||
|
|
Add('from pagoscliente p');
|
|||
|
|
Add('where p.codigocliente = c.codigo and');
|
|||
|
|
Add('p.codigoempresa = :CODIGOEMPRESA) is not null))');
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// PUBLIC
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
constructor TdmTablaPagosCliente.Create (AOwner : TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
sqlInsertar := TStringList.Create;
|
|||
|
|
sqlModificar := TStringList.Create;
|
|||
|
|
sqlConsultar := TStringList.Create;
|
|||
|
|
sqlEliminar := TStringList.Create;
|
|||
|
|
sqlGrid := TStringList.Create;
|
|||
|
|
sqlGridPagosCliente := TStringList.Create;
|
|||
|
|
sqlGridPagosPendCliente := TStringList.Create;
|
|||
|
|
|
|||
|
|
IniciarSQL;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TdmTablaPagosCliente.Destroy;
|
|||
|
|
begin
|
|||
|
|
sqlInsertar.Free;
|
|||
|
|
sqlModificar.Free;
|
|||
|
|
sqlConsultar.Free;
|
|||
|
|
sqlEliminar.Free;
|
|||
|
|
sqlGrid.Free;
|
|||
|
|
sqlGridPagosCliente.Free;
|
|||
|
|
sqlGridPagosPendCliente.Free;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.DarDatosPagoCliente(PagoCliente: TDatosPagoCliente): Boolean;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
|
|||
|
|
if EsCadenaVacia(PagoCliente.Codigo) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select * ');
|
|||
|
|
SQL.Add('from PAGOSCLIENTE ');
|
|||
|
|
SQL.Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|||
|
|
SQL.Add('and CODIGO = :CODIGO)');
|
|||
|
|
try
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
ParamByName('CODIGO').AsString := PagoCliente.Codigo;
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
|
|||
|
|
// Compruebo si se han recuperado datos
|
|||
|
|
if (RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
with PagoCliente do
|
|||
|
|
begin
|
|||
|
|
FechaAlta := FieldByName('FECHAALTA').AsString;
|
|||
|
|
Usuario := FieldByName('USUARIO').AsString;
|
|||
|
|
FechaPago := FieldByName('FECHAPAGO').AsString;
|
|||
|
|
TipoLibro := FieldByName('TIPOLIBRO').AsString;
|
|||
|
|
NumEntrada := FieldByName('NUMENTRADA').AsString;
|
|||
|
|
TipoPago := FieldByName('TIPOPAGO').AsString;
|
|||
|
|
Importe := FieldByName('IMPORTE').AsDouble;
|
|||
|
|
FormaPago := FieldByName('FORMAPAGO').AsString;
|
|||
|
|
Descripcion := FieldByName('DESCRIPCION').AsString;
|
|||
|
|
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('MOVIL1').AsString;
|
|||
|
|
Correo := FieldByName('MOVIL2').AsString;
|
|||
|
|
Result := True;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.DarPagoClienteMax: String;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
Result := '';
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select max(CODIGO) ');
|
|||
|
|
SQL.Add('from PAGOSCLIENTE ');
|
|||
|
|
SQL.Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|||
|
|
try
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
Result := Fields[0].AsString;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.DarPagoClienteMin: String;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
Result := '';
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select min(CODIGO) ');
|
|||
|
|
SQL.Add('from PAGOSCLIENTE ');
|
|||
|
|
SQL.Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|||
|
|
try
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
Result := Fields[0].AsString;
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaPagosCliente.InicializarGridPagosClientes (var vGrid: TcxGridDBTableView);
|
|||
|
|
var
|
|||
|
|
Columna : TcxGridDBColumn;
|
|||
|
|
begin
|
|||
|
|
with vGrid do begin
|
|||
|
|
OptionsView.Footer := True;
|
|||
|
|
|
|||
|
|
{Columna CODIGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'CODIGO';
|
|||
|
|
Columna.Caption := 'C<>digo';
|
|||
|
|
Columna.Width := tamColCodigo;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
|
|||
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|||
|
|
try
|
|||
|
|
try
|
|||
|
|
BeginUpdate;
|
|||
|
|
Column := Columna;
|
|||
|
|
FieldName := Columna.DataBinding.FieldName;
|
|||
|
|
Format := 'Total: 0 pagos';
|
|||
|
|
Kind := skCount;
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
except
|
|||
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{Columna TIPOPAGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'TIPOPAGO';
|
|||
|
|
Columna.Caption := 'Movimiento';
|
|||
|
|
Columna.Width := tamColCodigo;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
{Columna FECHAPAGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'FECHAPAGO';
|
|||
|
|
Columna.Caption := 'Fecha pago';
|
|||
|
|
Columna.Width := tamColFecha;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.SortOrder := soDescending;
|
|||
|
|
{Columna FORMAPAGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'FORMAPAGO';
|
|||
|
|
Columna.Caption := 'Forma de pago';
|
|||
|
|
Columna.Width := tamColFormaPago;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
{Columna NOMBRE}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|||
|
|
Columna.Caption := 'Nombre de cliente';
|
|||
|
|
Columna.Width := tamColNombre;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
{Columna TELEFONO1}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'TELEFONO1';
|
|||
|
|
Columna.Caption := 'Telefono';
|
|||
|
|
Columna.Width := tamColTelefono;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
{Columna IMPORTE}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'IMPORTE';
|
|||
|
|
Columna.Caption := 'Importe';
|
|||
|
|
Columna.Width := tamColImporte;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaPagosCliente.InicializarTablaPagosClientes(Tabla: TPTabla);
|
|||
|
|
begin
|
|||
|
|
with Tabla^.Fields do
|
|||
|
|
begin
|
|||
|
|
if FindField('IMPORTE') <> NIL then
|
|||
|
|
with (FieldByName('IMPORTE') as TIBBCDField) do begin
|
|||
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|||
|
|
EditFormat := EDIT_EUROS2;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaPagosCliente.InicializarGridListadoPagosCliente(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 TIPOPAGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'TIPOPAGO';
|
|||
|
|
Columna.Caption := 'Tipo pago';
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.Visible := False;
|
|||
|
|
{Columna FECHAPAGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'FECHAPAGO';
|
|||
|
|
Columna.Caption := 'Fecha';
|
|||
|
|
Columna.Width := tamColFecha;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.SortOrder := soDescending;
|
|||
|
|
{Columna FORMAPAGO}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'FORMAPAGO';
|
|||
|
|
Columna.Caption := 'Forma pago';
|
|||
|
|
Columna.Width := tamColSituacion;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
{Columna IMPORTE}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'IMPORTE';
|
|||
|
|
Columna.Caption := 'Importe total';
|
|||
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|||
|
|
Columna.Width := tamColImporte;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|||
|
|
try
|
|||
|
|
try
|
|||
|
|
BeginUpdate;
|
|||
|
|
Column := Columna;
|
|||
|
|
FieldName := Columna.DataBinding.FieldName;
|
|||
|
|
Format := 'Total: #,0.00# <20>';
|
|||
|
|
Kind := skSum;
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
except
|
|||
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaPagosCliente.InicializarGridPagosPendClientes(var vGrid: TcxGridDBTableView);
|
|||
|
|
var
|
|||
|
|
Columna : TcxGridDBColumn;
|
|||
|
|
begin
|
|||
|
|
with vGrid do begin
|
|||
|
|
|
|||
|
|
{Columna CODIGOCLIENTE}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'CODIGOCLIENTE';
|
|||
|
|
Columna.Caption := 'C<>digo';
|
|||
|
|
Columna.Width := tamColCodigo;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
{Columna NOMBRE}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|||
|
|
Columna.Caption := 'Nombre';
|
|||
|
|
Columna.Width := tamColNombre;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.SortOrder := soAscending;
|
|||
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|||
|
|
try
|
|||
|
|
try
|
|||
|
|
BeginUpdate;
|
|||
|
|
Column := Columna;
|
|||
|
|
FieldName := Columna.DataBinding.FieldName;
|
|||
|
|
Format := 'Total: 0 Clientes adeudan';
|
|||
|
|
Kind := skCount;
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
except
|
|||
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|||
|
|
end;
|
|||
|
|
{Columna TOTALFACTURAS}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'TOTALFACTURAS';
|
|||
|
|
Columna.Caption := 'Importe total de facturas';
|
|||
|
|
Columna.Width := tamColImporte;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|||
|
|
{Columna TOTALPAGOS}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'TOTALPAGOS';
|
|||
|
|
Columna.Caption := 'Importe total pagado';
|
|||
|
|
Columna.Width := tamColImporte;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|||
|
|
{Columna DEBE}
|
|||
|
|
Columna := CreateColumn;
|
|||
|
|
Columna.DataBinding.FieldName := 'DEBE';
|
|||
|
|
Columna.Caption := 'Debe';
|
|||
|
|
Columna.Width := tamColImporte;
|
|||
|
|
Columna.Options.Filtering := False;
|
|||
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|||
|
|
|
|||
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|||
|
|
try
|
|||
|
|
try
|
|||
|
|
BeginUpdate;
|
|||
|
|
Column := Columna;
|
|||
|
|
FieldName := Columna.DataBinding.FieldName;
|
|||
|
|
Format := 'Total: #,0.00# <20>';
|
|||
|
|
Kind := skSum;
|
|||
|
|
finally
|
|||
|
|
EndUpdate;
|
|||
|
|
end;
|
|||
|
|
except
|
|||
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.DarNuevoCodigo: String;
|
|||
|
|
begin
|
|||
|
|
Result := GestorContadores.darNuevoCodigo(contPagosCliente);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.FormatearCodigo(Codigo: String): String;
|
|||
|
|
begin
|
|||
|
|
Result := GestorContadores.formatearCodigo(contPagosCliente, Codigo);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.IncrementarCodigo: boolean;
|
|||
|
|
begin
|
|||
|
|
Result := GestorContadores.IncrementarValor(contPagosCliente);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.InsertarContador: boolean;
|
|||
|
|
begin
|
|||
|
|
Result := GestorContadores.InsertarContador(contPagosCliente);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.ValidarCodigo(Codigo: String): Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := GestorContadores.validarCodigo(contPagosCliente, Codigo);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TdmTablaPagosCliente.InicializarTablaPagosPendClientes(
|
|||
|
|
Tabla: TPTabla);
|
|||
|
|
begin
|
|||
|
|
with Tabla^.Fields do
|
|||
|
|
begin
|
|||
|
|
if FindField('TOTALFACTURAS') <> NIL then
|
|||
|
|
with (FieldByName('TOTALFACTURAS') as TIBBCDField) do begin
|
|||
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|||
|
|
EditFormat := EDIT_EUROS2;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if FindField('TOTALPAGOS') <> NIL then
|
|||
|
|
with (FieldByName('TOTALPAGOS') as TIBBCDField) do begin
|
|||
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|||
|
|
EditFormat := EDIT_EUROS2;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if FindField('DEBE') <> NIL then
|
|||
|
|
with (FieldByName('DEBE') as TIBBCDField) do begin
|
|||
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|||
|
|
EditFormat := EDIT_EUROS2;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TdmTablaPagosCliente.ExistePagoConCliente(Codigo: Variant): Boolean;
|
|||
|
|
var
|
|||
|
|
oSQL : TIBSQL;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
if VarIsNull(Codigo) then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
oSQL := TIBSQL.Create(Self);
|
|||
|
|
with oSQL do
|
|||
|
|
begin
|
|||
|
|
Database := dmBaseDatos.BD;
|
|||
|
|
Transaction := dmBaseDatos.Transaccion;
|
|||
|
|
SQL.Add('select CODIGOCLIENTE ');
|
|||
|
|
SQL.Add('from PAGOSCLIENTE ');
|
|||
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|||
|
|
SQL.Add(' and CODIGOCLIENTE = :CODIGOCLIENTE');
|
|||
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|||
|
|
ParamByName('CODIGOCLIENTE').AsString := Codigo;
|
|||
|
|
try
|
|||
|
|
Prepare;
|
|||
|
|
ExecQuery;
|
|||
|
|
Result := (RecordCount > 0);
|
|||
|
|
finally
|
|||
|
|
Close;
|
|||
|
|
Transaction := NIL;
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|