git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
441 lines
13 KiB
ObjectPascal
441 lines
13 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: 26-01-2003
|
|
Versión actual: 1.0.1
|
|
Fecha versión actual: 16-04-2003
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
16-04-2003 En el grid de pagos a proveedor se ha puesto visible la
|
|
columna de tipo de pago.
|
|
===============================================================================
|
|
}
|
|
|
|
unit TablaPagosProveedor;
|
|
|
|
interface
|
|
|
|
uses
|
|
//Generales
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|
//Particulares
|
|
IBCustomDataSet,
|
|
|
|
//Aplicacion
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos, RdxEmpresaActiva,
|
|
|
|
// Contador
|
|
Contadores, RdxGestorContadores;
|
|
|
|
type
|
|
{Es el tipo padre de pagos de cliente y proveedor que solo difieren codigoCliente o codigoProveedor}
|
|
TDatosPago = class(TPersistent)
|
|
public
|
|
Codigo : String;
|
|
FechaAlta : String;
|
|
Usuario : String;
|
|
FechaPago : String;
|
|
TipoLibro : String;
|
|
NumEntrada : String;
|
|
TipoPago : String;
|
|
Importe : Double;
|
|
FormaPago : String;
|
|
Descripcion : 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;
|
|
Correo : String;
|
|
end;
|
|
|
|
type
|
|
TDatosPagoProveedor = class(TDatosPago)
|
|
public
|
|
CodigoProveedor : String;
|
|
end;
|
|
|
|
type
|
|
TdmTablaPagosProveedor = class(TDataModule)
|
|
private
|
|
procedure IniciarSQL;
|
|
|
|
protected
|
|
public
|
|
sqlInsertar : TStrings;
|
|
sqlModificar : TStrings;
|
|
sqlConsultar : TStrings;
|
|
sqlEliminar : TStrings;
|
|
sqlGrid : 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 DarDatosPagoProveedor(PagoProveedor : TDatosPagoProveedor) : Boolean;
|
|
function DarPagoProveedorMax : String;
|
|
function DarPagoProveedorMin : String;
|
|
|
|
procedure InicializarGridPagosProveedores(var vGrid: TcxGridDBTableView);
|
|
procedure InicializarTablaPagosProveedores(Tabla: TPTabla);
|
|
end;
|
|
|
|
var
|
|
dmTablaPagosProveedor: TdmTablaPagosProveedor;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
TablaEmpresas;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// PRIVATE
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
procedure TdmTablaPagosProveedor.IniciarSQL;
|
|
begin
|
|
with sqlInsertar do
|
|
begin
|
|
Add('INSERT INTO PAGOSPROVEEDOR (CODIGOEMPRESA, CODIGO, FECHAALTA, USUARIO, FECHAPAGO, ');
|
|
Add('TIPOLIBRO, NUMENTRADA, TIPOPAGO, FORMAPAGO, DESCRIPCION, IMPORTE, CODIGOPROVEEDOR, 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, :CODIGOPROVEEDOR, :NIFCIF, :NOMBRE, :CALLE, ');
|
|
Add(':NUMERO, :PISO, :CODIGOPOSTAL, :POBLACION, :PROVINCIA, :TELEFONO1, :TELEFONO2, ');
|
|
Add(':MOVIL1, :MOVIL2, :FAX, :CORREO) ');
|
|
end;
|
|
|
|
with sqlModificar do
|
|
begin
|
|
Add('update PAGOSPROVEEDOR set ');
|
|
Add('FECHAPAGO = :FECHAPAGO, ');
|
|
Add('TIPOLIBRO = :TIPOLIBRO, ');
|
|
Add('NUMENTRADA = :NUMENTRADA, ');
|
|
Add('TIPOPAGO = :TIPOPAGO, ');
|
|
Add('FORMAPAGO = :FORMAPAGO, ');
|
|
Add('DESCRIPCION = :DESCRIPCION, ');
|
|
Add('IMPORTE = :IMPORTE, ');
|
|
Add('CODIGOPROVEEDOR = :CODIGOPROVEEDOR, ');
|
|
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 PAGOSPROVEEDOR ');
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
Add('and CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlConsultar do
|
|
begin
|
|
Add('SELECT * FROM PAGOSPROVEEDOR ');
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
Add('and CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlGrid do
|
|
begin
|
|
Add('SELECT CODIGO, TIPOPAGO, CODIGOPROVEEDOR, NOMBRE, TELEFONO1, FECHAPAGO, FORMAPAGO, IMPORTE ');
|
|
Add('FROM PAGOSPROVEEDOR ');
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
end;
|
|
end;
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// PUBLIC
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
constructor TdmTablaPagosProveedor.Create (AOwner : TComponent);
|
|
begin
|
|
inherited;
|
|
sqlInsertar := TStringList.Create;
|
|
sqlModificar := TStringList.Create;
|
|
sqlConsultar := TStringList.Create;
|
|
sqlEliminar := TStringList.Create;
|
|
sqlGrid := TStringList.Create;
|
|
|
|
IniciarSQL;
|
|
end;
|
|
|
|
destructor TdmTablaPagosProveedor.Destroy;
|
|
begin
|
|
sqlInsertar.Free;
|
|
sqlModificar.Free;
|
|
sqlConsultar.Free;
|
|
sqlEliminar.Free;
|
|
sqlGrid.Free;
|
|
inherited;
|
|
end;
|
|
|
|
function TdmTablaPagosProveedor.DarDatosPagoProveedor(PagoProveedor: TDatosPagoProveedor): Boolean;
|
|
var
|
|
oSQL : TIBSQL;
|
|
begin
|
|
Result := False;
|
|
|
|
if EsCadenaVacia(PagoProveedor.Codigo) then
|
|
Exit;
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select * ');
|
|
SQL.Add('from PAGOSPROVEEDOR ');
|
|
SQL.Add('where (CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
SQL.Add('and CODIGO = :CODIGO)');
|
|
try
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
ParamByName('CODIGO').AsString := PagoProveedor.Codigo;
|
|
Prepare;
|
|
ExecQuery;
|
|
|
|
// Compruebo si se han recuperado datos
|
|
if (RecordCount > 0) then
|
|
begin
|
|
with PagoProveedor 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;
|
|
CodigoProveedor := FieldByName('CODIGOPROVEEDOR').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 TdmTablaPagosProveedor.DarPagoProveedorMax: 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 PAGOSPROVEEDOR ');
|
|
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 TdmTablaPagosProveedor.DarPagoProveedorMin: 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 PAGOSPROVEEDOR ');
|
|
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 TdmTablaPagosProveedor.InicializarGridPagosProveedores (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;
|
|
Columna.SortOrder := soDescending;
|
|
|
|
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 := 'Tipo pago';
|
|
Columna.Width := tamColCodigo;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Visible := True;
|
|
{Columna FECHAPAGO}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'FECHAPAGO';
|
|
Columna.Caption := 'Fecha pago';
|
|
Columna.Width := tamColFecha;
|
|
Columna.Options.Filtering := False;
|
|
{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 TdmTablaPagosProveedor.InicializarTablaPagosProveedores(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;
|
|
|
|
function TdmTablaPagosProveedor.DarNuevoCodigo: String;
|
|
begin
|
|
Result := GestorContadores.darNuevoCodigo(contPagosProveedor);
|
|
end;
|
|
|
|
function TdmTablaPagosProveedor.FormatearCodigo(Codigo: String): String;
|
|
begin
|
|
Result := GestorContadores.formatearCodigo(contPagosProveedor, Codigo);
|
|
end;
|
|
|
|
function TdmTablaPagosProveedor.IncrementarCodigo: boolean;
|
|
begin
|
|
Result := GestorContadores.IncrementarValor(contPagosProveedor);
|
|
end;
|
|
|
|
function TdmTablaPagosProveedor.InsertarContador: boolean;
|
|
begin
|
|
Result := GestorContadores.InsertarContador(contPagosProveedor);
|
|
end;
|
|
|
|
function TdmTablaPagosProveedor.ValidarCodigo(Codigo: String): Boolean;
|
|
begin
|
|
Result := GestorContadores.validarCodigo(contPagosProveedor, Codigo);
|
|
end;
|
|
|
|
end.
|