2007-06-26 08:08:27 +00:00
|
|
|
|
{
|
|
|
|
|
|
===============================================================================
|
|
|
|
|
|
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: 05-12-2002
|
|
|
|
|
|
Versi<EFBFBD>n actual: 1.0.1
|
|
|
|
|
|
Fecha versi<EFBFBD>n actual: 02-02-2004
|
|
|
|
|
|
===============================================================================
|
|
|
|
|
|
Modificaciones:
|
|
|
|
|
|
|
|
|
|
|
|
Fecha Comentarios
|
|
|
|
|
|
---------------------------------------------------------------------------
|
|
|
|
|
|
02-02-2004 Se ha eliminado el atributo SERIE (P8 MULTIEMPRESA)
|
|
|
|
|
|
Se ha adaptado a los nuevos contadores
|
2007-11-07 09:56:27 +00:00
|
|
|
|
|
2007-06-26 08:08:27 +00:00
|
|
|
|
===============================================================================
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
unit TablaFacturasProveedor;
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
//Generales
|
|
|
|
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|
|
|
|
|
//Particulares
|
|
|
|
|
|
IBCustomDataSet, cxGrid, cxGridCustomTableView, cxCurrencyEdit,
|
|
|
|
|
|
|
|
|
|
|
|
//Aplicacion
|
|
|
|
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos, RdxEmpresaActiva,
|
|
|
|
|
|
|
|
|
|
|
|
//Contador
|
|
|
|
|
|
Contadores, RdxGestorContadores;
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
TTipoFacturaProveedor = (tipTodas, tipGeneral, tipInmovilizado);
|
|
|
|
|
|
|
|
|
|
|
|
TDatosFacturaProveedor = class(TObjeto)
|
|
|
|
|
|
private
|
|
|
|
|
|
//
|
|
|
|
|
|
protected
|
|
|
|
|
|
procedure ObtenerDatos; override;
|
|
|
|
|
|
procedure AssignTo(Dest: TPersistent); override;
|
|
|
|
|
|
public
|
|
|
|
|
|
Codigo : String;
|
|
|
|
|
|
Referencia : String;
|
|
|
|
|
|
FechaAlta : TDateTime;
|
|
|
|
|
|
Usuario : String;
|
|
|
|
|
|
FechaFactura : TDateTime;
|
|
|
|
|
|
FechaVencimiento : TDateTime;
|
|
|
|
|
|
Situacion : String;
|
|
|
|
|
|
Observaciones : String;
|
|
|
|
|
|
CodigoProveedor : 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;
|
|
|
|
|
|
PersonaContacto : String;
|
|
|
|
|
|
FormaPago : String;
|
|
|
|
|
|
BaseImponible : double;
|
|
|
|
|
|
Descuento : integer;
|
|
|
|
|
|
ImporteDescuento : double;
|
|
|
|
|
|
Iva : integer;
|
|
|
|
|
|
ImporteIva : double;
|
|
|
|
|
|
ImporteTotal : double;
|
|
|
|
|
|
TipoFactura : String;
|
|
|
|
|
|
ClaseFactura : String;
|
|
|
|
|
|
CodigoTrimestre : String;
|
|
|
|
|
|
constructor Create(CodigoFactura : String); overload;
|
|
|
|
|
|
constructor Create; overload; override;
|
|
|
|
|
|
destructor Destroy; override;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
TListaFacturasProveedor = class(TListaObjetos)
|
|
|
|
|
|
private
|
|
|
|
|
|
FSQL : String;
|
|
|
|
|
|
function GetFactura(Index: Integer): TDatosFacturaProveedor;
|
|
|
|
|
|
protected
|
|
|
|
|
|
procedure AssignTo(Dest: TPersistent); override;
|
|
|
|
|
|
procedure ObtenerLista; override;
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create(oSQL : String); overload;
|
|
|
|
|
|
constructor Create; overload; override;
|
|
|
|
|
|
property Items[Index: Integer] : TDatosFacturaProveedor read GetFactura;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
TdmTablaFacturasProveedor = class(TComponent)
|
|
|
|
|
|
private
|
|
|
|
|
|
procedure IniciarSQLFactura;
|
|
|
|
|
|
procedure IniciarSQLDetalles;
|
|
|
|
|
|
procedure IniciarSQLGrids;
|
|
|
|
|
|
public
|
|
|
|
|
|
sqlInsertarFactura : TStrings;
|
|
|
|
|
|
sqlModificarFactura : TStrings;
|
|
|
|
|
|
sqlConsultarFactura : TStrings;
|
|
|
|
|
|
sqlEliminarFactura : TStrings;
|
|
|
|
|
|
sqlConsultarGridFacturas : TStrings;
|
|
|
|
|
|
sqlConsultarGridFacturasProv : TStrings;
|
|
|
|
|
|
sqlConsultarTiposFactura : TStrings;
|
|
|
|
|
|
sqlConsultarGridFacturasTrimestre : TStrings;
|
|
|
|
|
|
sqlConsultarGridFacturasProvContrato : TStrings;
|
|
|
|
|
|
|
|
|
|
|
|
sqlInsertarDetalles : TStrings;
|
|
|
|
|
|
sqlModificarDetalles : TStrings;
|
|
|
|
|
|
sqlConsultarDetalles : TStrings;
|
|
|
|
|
|
sqlEliminarDetalles : TStrings;
|
|
|
|
|
|
sqlConsultarGridDetalles : 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;
|
|
|
|
|
|
|
|
|
|
|
|
function ExisteFacturaConContrato(CodigoContrato : String) : Boolean;
|
|
|
|
|
|
|
|
|
|
|
|
function FormatearNumConcepto(NumConcepto : String) : String;
|
|
|
|
|
|
function ExisteCodigo(Codigo : String) : Boolean;
|
|
|
|
|
|
constructor Create (AOwner : TComponent); override;
|
|
|
|
|
|
destructor Destroy; override;
|
|
|
|
|
|
procedure InicializarGridDetalles(var Grid: TcxGridDBTableView);
|
|
|
|
|
|
procedure InicializarGridFacturas(var Grid: TcxGrid);
|
|
|
|
|
|
procedure InicializarGridFacturasPendientes(var Grid: TcxGrid);
|
|
|
|
|
|
procedure InicializarGridFacturasTrimestre(var Grid: TcxGrid);
|
|
|
|
|
|
procedure InicializarGridFacturasProvContrato(var Grid: TcxGrid);
|
|
|
|
|
|
procedure InicializarTablaFacturas(Tabla: TPTabla);
|
|
|
|
|
|
procedure InicializarTablaDetalles(Tabla: TPTabla);
|
|
|
|
|
|
function DarSituaciones : TStrings;
|
|
|
|
|
|
function ModificarSituacionFactura(Codigo, Situacion, FormaPago : String): Boolean;
|
|
|
|
|
|
|
|
|
|
|
|
//Trimestres
|
|
|
|
|
|
function DarIvas : TStrings;
|
|
|
|
|
|
function DarTiposOp : TStrings;
|
|
|
|
|
|
function DarTiposOpDes : TStrings;
|
|
|
|
|
|
function DarTiposOpDesTrimestral(var ListaCodigos: TStrings): TStrings;
|
|
|
|
|
|
function ComprobarTrimestreFactura(CodigoFactura: String): Boolean;
|
|
|
|
|
|
function AsignarTrimestre(CodigoFactura: String; CodigoTrimestre: String): Boolean;
|
2007-11-07 09:56:27 +00:00
|
|
|
|
function ModificarSituacionFacturas(Codigos: TStrings; Situacion: String): Boolean;
|
2007-06-26 08:08:27 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
var
|
|
|
|
|
|
dmTablaFacturasProveedor: TdmTablaFacturasProveedor;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
Literales, TablaEmpresas;
|
|
|
|
|
|
|
|
|
|
|
|
{ TdmTablaFacturasProveedor }
|
|
|
|
|
|
|
|
|
|
|
|
constructor TdmTablaFacturasProveedor.Create(AOwner: TComponent);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
{ Cabecera }
|
|
|
|
|
|
sqlInsertarFactura := TStringList.Create;
|
|
|
|
|
|
sqlModificarFactura := TStringList.Create;
|
|
|
|
|
|
sqlConsultarFactura := TStringList.Create;
|
|
|
|
|
|
sqlEliminarFactura := TStringList.Create;
|
|
|
|
|
|
|
|
|
|
|
|
{ Detalles }
|
|
|
|
|
|
sqlInsertarDetalles := TStringList.Create;
|
|
|
|
|
|
sqlModificarDetalles := TStringList.Create;
|
|
|
|
|
|
sqlConsultarDetalles := TStringList.Create;
|
|
|
|
|
|
sqlEliminarDetalles := TStringList.Create;
|
|
|
|
|
|
|
|
|
|
|
|
{ Grids }
|
|
|
|
|
|
sqlConsultarGridFacturas := TStringList.Create;
|
|
|
|
|
|
sqlConsultarGridFacturasProv := TStringList.Create;
|
|
|
|
|
|
sqlConsultarGridDetalles := TStringList.Create;
|
|
|
|
|
|
sqlConsultarTiposFactura := TStringList.Create;
|
|
|
|
|
|
sqlConsultarGridFacturasTrimestre := TStringList.Create;
|
|
|
|
|
|
sqlConsultarGridFacturasProvContrato := TStringList.Create;
|
|
|
|
|
|
|
|
|
|
|
|
IniciarSQLFactura;
|
|
|
|
|
|
IniciarSQLDetalles;
|
|
|
|
|
|
IniciarSQLGrids;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
destructor TdmTablaFacturasProveedor.Destroy;
|
|
|
|
|
|
begin
|
|
|
|
|
|
{ Cabecera }
|
|
|
|
|
|
sqlInsertarFactura.Free;
|
|
|
|
|
|
sqlModificarFactura.Free;
|
|
|
|
|
|
sqlConsultarFactura.Free;
|
|
|
|
|
|
sqlEliminarFactura.Free;
|
|
|
|
|
|
|
|
|
|
|
|
{ Detalles }
|
|
|
|
|
|
sqlInsertarDetalles.Free;
|
|
|
|
|
|
sqlModificarDetalles.Free;
|
|
|
|
|
|
sqlConsultarDetalles.Free;
|
|
|
|
|
|
sqlEliminarDetalles.Free;
|
|
|
|
|
|
|
|
|
|
|
|
{ Grids }
|
|
|
|
|
|
sqlConsultarGridFacturas.Free;
|
|
|
|
|
|
sqlConsultarGridFacturasProv.Free;
|
|
|
|
|
|
sqlConsultarGridDetalles.Free;
|
|
|
|
|
|
sqlConsultarTiposFactura.Free;
|
|
|
|
|
|
sqlConsultarGridFacturasTrimestre.Free;
|
|
|
|
|
|
sqlConsultarGridFacturasProvContrato.Free;
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.DarNuevoCodigo: String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := GestorContadores.darNuevoCodigo(contFacturasProveedor);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.DarSituaciones: TStrings;
|
|
|
|
|
|
var
|
|
|
|
|
|
Lista : TStringList;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := NIL;
|
|
|
|
|
|
Lista := TStringList.Create;
|
|
|
|
|
|
with Lista do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Clear;
|
|
|
|
|
|
Append('PENDIENTE');
|
|
|
|
|
|
Append('PAGADA');
|
|
|
|
|
|
end;
|
|
|
|
|
|
Result := Lista;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.ExisteCodigo(Codigo: String): Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
Contador : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := False;
|
|
|
|
|
|
if EsCadenaVacia(Codigo) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select CODIGO ');
|
|
|
|
|
|
SQL.Add('from FACTURASPROVEEDOR ');
|
|
|
|
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
SQL.Add('and CODIGO = :CODIGO');
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
ParamByName('CODIGO').AsString := Codigo;
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
Contador := Fields[0].AsString;
|
|
|
|
|
|
Result := (Codigo = Contador);
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.FormatearCodigo(Codigo: String): String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := GestorContadores.FormatearCodigo(contFacturasProveedor, Codigo);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.FormatearNumConcepto(
|
|
|
|
|
|
NumConcepto: String): String;
|
|
|
|
|
|
var
|
|
|
|
|
|
Concepto : Integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Concepto := StrToInt(NumConcepto);
|
|
|
|
|
|
Result := format('%.10d', [Concepto]);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.IncrementarCodigo: boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := GestorContadores.IncrementarValor(contFacturasProveedor);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.InicializarGridDetalles(var Grid: TcxGridDBTableView);
|
|
|
|
|
|
var
|
|
|
|
|
|
Columna : TcxGridDBColumn;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with Grid do
|
|
|
|
|
|
begin
|
|
|
|
|
|
OptionsView.Footer := True;
|
|
|
|
|
|
{Columna CODIGOEMPRESA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGOEMPRESA';
|
|
|
|
|
|
Columna.Visible := False;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Options.Sorting := False;
|
|
|
|
|
|
{Columna CODIGOFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGOFACTURA';
|
|
|
|
|
|
Columna.Visible := False;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Options.Sorting := False;
|
|
|
|
|
|
{Columna CODIGOCONTRATO}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGOCONTRATO';
|
|
|
|
|
|
Columna.Caption := 'C<>d. contrato';
|
|
|
|
|
|
Columna.Width := tamColCodigo;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Options.Sorting := False;
|
|
|
|
|
|
Columna.Options.Editing := False;
|
|
|
|
|
|
{Columna.PropertiesClassName := 'TcxButtonEditProperties';
|
|
|
|
|
|
with TcxButtonEditProperties(Columna.Properties) do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Buttons[0].Kind := bkEllipsis;
|
|
|
|
|
|
end;}
|
|
|
|
|
|
|
|
|
|
|
|
{Columna NOMBRE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|
|
|
|
|
Columna.Caption := 'Nombre';
|
|
|
|
|
|
Columna.Width := tamColNombre;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Options.Sorting := False;
|
|
|
|
|
|
Columna.Options.Editing := False;
|
|
|
|
|
|
|
|
|
|
|
|
{Columna IMPORTE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'IMPORTE';
|
|
|
|
|
|
Columna.Caption := 'Importe';
|
|
|
|
|
|
Columna.Width := tamColImporte;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Options.Sorting := False;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.InicializarGridFacturas(var Grid: TcxGrid);
|
|
|
|
|
|
var
|
|
|
|
|
|
Columna : TcxGridDBColumn;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with (Grid.ActiveView as TcxGridDBTableView) do
|
|
|
|
|
|
begin
|
|
|
|
|
|
ClearItems;
|
|
|
|
|
|
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 facturas';
|
|
|
|
|
|
Kind := skCount;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
{Columna FECHAFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'FECHAFACTURA';
|
|
|
|
|
|
Columna.Caption := 'Fecha';
|
|
|
|
|
|
Columna.Width := tamColFecha;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.SortOrder := soDescending;
|
|
|
|
|
|
{Columna CLASEFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CLASEFACTURA';
|
|
|
|
|
|
Columna.Caption := 'Clase factura';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Visible := False;
|
|
|
|
|
|
{Columna REFERENCIA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'REFERENCIA';
|
|
|
|
|
|
Columna.Caption := 'N<> factura';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColCodigo;
|
|
|
|
|
|
{Columna CODIGOPROVEEDOR}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGOPROVEEDOR';
|
|
|
|
|
|
Columna.Caption := 'C<>d. proveedor';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColCodigo;
|
|
|
|
|
|
{Columna NIFCIF}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NIFCIF';
|
|
|
|
|
|
Columna.Caption := 'NIF/CIF';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColNIFCIF;
|
|
|
|
|
|
{Columna NOMBRE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|
|
|
|
|
Columna.Caption := 'Nombre';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColNombre;
|
|
|
|
|
|
{Columna DESCRIPCION}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'DESCRIPCION';
|
|
|
|
|
|
Columna.Caption := 'Tipo factura';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColNombre;
|
|
|
|
|
|
{Columna SITUACION}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'SITUACION';
|
|
|
|
|
|
Columna.Caption := 'Situaci<63>n';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColSituacion;
|
|
|
|
|
|
{Columna IMPORTETOTAL}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'IMPORTETOTAL';
|
|
|
|
|
|
Columna.Caption := 'Importe';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColImporte;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.InicializarTablaDetalles(
|
|
|
|
|
|
Tabla: TPTabla);
|
|
|
|
|
|
begin
|
|
|
|
|
|
with Tabla^.Fields do
|
|
|
|
|
|
begin
|
|
|
|
|
|
if FindField('IMPORTE') <> NIL then
|
|
|
|
|
|
with (FieldByName('IMPORTE') as TFloatField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_EUROS4;
|
|
|
|
|
|
EditFormat := EDIT_EUROS4;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.InicializarTablaFacturas(Tabla: TPTabla);
|
|
|
|
|
|
begin
|
|
|
|
|
|
with Tabla^.Fields do
|
|
|
|
|
|
begin
|
|
|
|
|
|
if FindField('FECHAALTA') <> NIL then
|
|
|
|
|
|
with (FieldByName('FECHAALTA') as TDateField) do begin
|
|
|
|
|
|
EditMask := MASK_FECHA;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('FECHAFACTURA') <> NIL then
|
|
|
|
|
|
with (FieldByName('FECHAFACTURA') as TDateField) do begin
|
|
|
|
|
|
EditMask := MASK_FECHA;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('FECHAVENCIMIENTO') <> NIL then
|
|
|
|
|
|
with (FieldByName('FECHAVENCIMIENTO') as TDateField) do begin
|
|
|
|
|
|
EditMask := MASK_FECHA;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('BASEIMPONIBLE') <> NIL then
|
|
|
|
|
|
with (FieldByName('BASEIMPONIBLE') as TIBBCDField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
|
|
|
|
EditFormat := EDIT_EUROS2;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('DESCUENTO') <> NIL then
|
|
|
|
|
|
with (FieldByName('DESCUENTO') as TFloatField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_DTO;
|
|
|
|
|
|
EditFormat := EDIT_DTO;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('IMPORTEDESCUENTO') <> NIL then
|
|
|
|
|
|
with (FieldByName('IMPORTEDESCUENTO') as TIBBCDField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
|
|
|
|
EditFormat := EDIT_EUROS2;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('IVA') <> NIL then
|
|
|
|
|
|
with (FieldByName('IVA') as TFloatField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_IVA;
|
|
|
|
|
|
EditFormat := EDIT_IVA;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('IMPORTEIVA') <> NIL then
|
|
|
|
|
|
with (FieldByName('IMPORTEIVA') as TIBBCDField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
|
|
|
|
EditFormat := EDIT_EUROS2;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('IMPORTETOTAL') <> NIL then
|
|
|
|
|
|
with (FieldByName('IMPORTETOTAL') as TIBBCDField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
|
|
|
|
EditFormat := EDIT_EUROS2;
|
|
|
|
|
|
DisplayLabel := 'Importe total';
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
if FindField('IMPORTE') <> NIL then
|
|
|
|
|
|
with (FieldByName('IMPORTE') as TIBBCDField) do begin
|
|
|
|
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
|
|
|
|
EditFormat := EDIT_EUROS2;
|
|
|
|
|
|
DisplayLabel := 'Importe';
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.IniciarSQLDetalles;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with sqlInsertarDetalles do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('insert into DETALLESFACTURASPROVCONTRATOS ');
|
|
|
|
|
|
Add('(CODIGOEMPRESA, CODIGOFACTURA, CODIGOCONTRATO, IMPORTE) values ');
|
|
|
|
|
|
Add('(:CODIGOEMPRESA, :CODIGOFACTURA, :CODIGOCONTRATO, :IMPORTE)');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlModificarDetalles do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('update DETALLESFACTURASPROVCONTRATOS set ');
|
|
|
|
|
|
Add('IMPORTE = :IMPORTE ');
|
|
|
|
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
|
|
|
|
Add('and (CODIGOFACTURA = :CODIGOFACTURA)');
|
|
|
|
|
|
Add('and (CODIGOCONTRATO = :CODIGOCONTRATO)');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlEliminarDetalles do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('delete from DETALLESFACTURASPROVCONTRATOS ');
|
|
|
|
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
|
|
|
|
Add(' and (CODIGOFACTURA = :CODIGOFACTURA)');
|
|
|
|
|
|
Add(' and (CODIGOCONTRATO = :CODIGOCONTRATO)');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlConsultarDetalles do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select CODIGOFACTURA, CODIGOCONTRATO, IMPORTE ');
|
|
|
|
|
|
Add('from DETALLESFACTURASPROVCONTRATOS ');
|
|
|
|
|
|
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
|
|
|
|
Add(' and (CODIGOFACTURA = :CODIGOFACTURA)');
|
|
|
|
|
|
Add(' and (CODIGOCONTRATO = :CODIGOCONTRATO)');
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.IniciarSQLFactura;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with sqlInsertarFactura do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('insert into FACTURASPROVEEDOR ');
|
|
|
|
|
|
Add('(CODIGOEMPRESA, CODIGO, CLASEFACTURA, REFERENCIA, FECHAALTA, FECHAFACTURA, FECHAVENCIMIENTO, ');
|
|
|
|
|
|
Add('SITUACION, USUARIO, OBSERVACIONES, CODIGOPROVEEDOR, ');
|
|
|
|
|
|
Add('NIFCIF, NOMBRE, CALLE, NUMERO, PISO, CODIGOPOSTAL, ');
|
|
|
|
|
|
Add('POBLACION, PROVINCIA, TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, ');
|
|
|
|
|
|
Add('FAX, PERSONACONTACTO, FORMAPAGO, BASEIMPONIBLE, DESCUENTO, ');
|
|
|
|
|
|
Add('IMPORTEDESCUENTO, IVA, IMPORTEIVA, IMPORTETOTAL, TIPOFACTURA, ');
|
|
|
|
|
|
Add('CODIGOTRIMESTRE) values ');
|
|
|
|
|
|
Add('(:CODIGOEMPRESA, :CODIGO, :CLASEFACTURA, :REFERENCIA, :FECHAALTA, :FECHAFACTURA, :FECHAVENCIMIENTO, ');
|
|
|
|
|
|
Add(':SITUACION, :USUARIO, :OBSERVACIONES, :CODIGOPROVEEDOR, ');
|
|
|
|
|
|
Add(':NIFCIF, :NOMBRE, :CALLE, :NUMERO, :PISO, :CODIGOPOSTAL, ');
|
|
|
|
|
|
Add(':POBLACION, :PROVINCIA, :TELEFONO1, :TELEFONO2, :MOVIL1, :MOVIL2, ');
|
|
|
|
|
|
Add(':FAX, :PERSONACONTACTO, :FORMAPAGO, :BASEIMPONIBLE, :DESCUENTO, ');
|
|
|
|
|
|
Add(':IMPORTEDESCUENTO, :IVA, :IMPORTEIVA, :IMPORTETOTAL, :TIPOFACTURA, ');
|
|
|
|
|
|
Add(':CODIGOTRIMESTRE)');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlModificarFactura do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('update FACTURASPROVEEDOR set ');
|
|
|
|
|
|
Add('CLASEFACTURA = :CLASEFACTURA, ');
|
|
|
|
|
|
Add('REFERENCIA = :REFERENCIA, ');
|
|
|
|
|
|
Add('TIPOFACTURA = :TIPOFACTURA, ');
|
|
|
|
|
|
Add('FECHAFACTURA = :FECHAFACTURA, ');
|
|
|
|
|
|
Add('FECHAVENCIMIENTO = :FECHAVENCIMIENTO, ');
|
|
|
|
|
|
Add('SITUACION = :SITUACION, ');
|
|
|
|
|
|
Add('OBSERVACIONES = :OBSERVACIONES, ');
|
|
|
|
|
|
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('PERSONACONTACTO = :PERSONACONTACTO, ');
|
|
|
|
|
|
Add('FORMAPAGO = :FORMAPAGO, ');
|
|
|
|
|
|
Add('BASEIMPONIBLE = :BASEIMPONIBLE, ');
|
|
|
|
|
|
Add('DESCUENTO = :DESCUENTO, ');
|
|
|
|
|
|
Add('IMPORTEDESCUENTO = :IMPORTEDESCUENTO, ');
|
|
|
|
|
|
Add('IVA = :IVA, ');
|
|
|
|
|
|
Add('IMPORTEIVA = :IMPORTEIVA, ');
|
|
|
|
|
|
Add('IMPORTETOTAL = :IMPORTETOTAL, ');
|
|
|
|
|
|
Add('CODIGOTRIMESTRE = :CODIGOTRIMESTRE ');
|
|
|
|
|
|
Add('WHERE CODIGOEMPRESA = :CODIGOEMPRESA ');
|
|
|
|
|
|
Add(' AND CODIGO = :CODIGO ');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlEliminarFactura do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('delete from FACTURASPROVEEDOR ');
|
|
|
|
|
|
Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
Add(' and CODIGO = :CODIGO');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlConsultarFactura do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select * from FACTURASPROVEEDOR ');
|
|
|
|
|
|
Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
Add(' and CODIGO = :CODIGO');
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.IniciarSQLGrids;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with sqlConsultarGridFacturas do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select FP.CODIGO, CLASEFACTURA, FECHAFACTURA, REFERENCIA, CODIGOPROVEEDOR, ');
|
|
|
|
|
|
Add('NIFCIF, NOMBRE, DESCRIPCION, FECHAVENCIMIENTO, SITUACION, IMPORTETOTAL ');
|
|
|
|
|
|
Add('from FACTURASPROVEEDOR FP, TIPOSFACTURAS TF ');
|
|
|
|
|
|
Add('where TIPOFACTURA = TF.CODIGO ');
|
|
|
|
|
|
Add('and CODIGOEMPRESA = :CODIGOEMPRESA ');
|
|
|
|
|
|
Add('order by FP.CODIGO');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlConsultarGridFacturasProv do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select CODIGO, CLASEFACTURA, FECHAALTA, TIPO, CODIGOFACTURA, CODIGOPROVEEDOR, ');
|
|
|
|
|
|
Add('NIFCIF, NOMBRE, FECHAVENCIMIENTO, SITUACION, IMPORTETOTAL ');
|
|
|
|
|
|
Add('from FACTURASPROVEEDOR ');
|
|
|
|
|
|
Add(' where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
Add(' and CODIGOPROVEEDOR = :CODIGOPROVEEDOR');
|
|
|
|
|
|
Add(' order by CODIGO');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlConsultarGridDetalles do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select CODIGOEMPRESA, CODIGOFACTURA, CODIGOCONTRATO, IMPORTE ');
|
|
|
|
|
|
Add('from DETALLESFACTURASPROVCONTRATOS ');
|
|
|
|
|
|
Add(' where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
Add(' and CODIGOFACTURA = :CODIGOFACTURA');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlConsultarTiposFactura do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select CODIGO, DESCRIPCION ');
|
|
|
|
|
|
Add('from TIPOSFACTURAS ');
|
|
|
|
|
|
Add('where ENTIDAD = ''PROVEEDOR'' order by DESCRIPCION ');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlConsultarGridFacturasTrimestre do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select FP.CODIGO, FP.SITUACION, FP.FECHAFACTURA, FP.TIPOFACTURA, FP.CLASEFACTURA, ');
|
|
|
|
|
|
Add('FP.CODIGOPROVEEDOR, FP.NIFCIF, FP.NOMBRE, FP.BASEIMPONIBLE, FP.IMPORTEDESCUENTO, FP.IMPORTEIVA, ');
|
|
|
|
|
|
Add('FP.IMPORTETOTAL, FP.CODIGOTRIMESTRE, T.SITUACION as SITUACIONTRIMESTRE ');
|
|
|
|
|
|
Add('from FACTURASPROVEEDOR FP, TRIMESTRES T');
|
|
|
|
|
|
Add(' where FP.CODIGOEMPRESA = T.CODIGOEMPRESA ');
|
|
|
|
|
|
Add(' and FP.CODIGOTRIMESTRE = T.CODIGO ');
|
|
|
|
|
|
Add(' and FP.CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
with sqlConsultarGridFacturasProvContrato do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add('select det.codigofactura, fac.fechafactura, fac.nifcif, fac.nombre,');
|
|
|
|
|
|
Add('fac.importetotal, det.importe, det.codigocontrato');
|
|
|
|
|
|
Add('from detallesfacturasprovcontratos det, facturasproveedor fac');
|
|
|
|
|
|
Add('where fac.codigoempresa = det.codigoempresa');
|
|
|
|
|
|
Add(' and fac.codigo = det.codigofactura');
|
|
|
|
|
|
Add(' and det.codigocontrato = :CODIGOCONTRATO');
|
|
|
|
|
|
Add(' and fac.codigoempresa = :CODIGOEMPRESA');
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.InsertarContador: boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := GestorContadores.InsertarContador(contFacturasProveedor);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.ValidarCodigo(Codigo: String): Boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := GestorContadores.validarCodigo(contFacturasProveedor, Codigo);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.ModificarSituacionFactura(Codigo,
|
|
|
|
|
|
Situacion, FormaPago: String): Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := False;
|
|
|
|
|
|
if EsCadenaVacia(Codigo) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('update FACTURASPROVEEDOR ');
|
|
|
|
|
|
SQL.Add('set SITUACION = :SITUACION, ');
|
|
|
|
|
|
SQL.Add('FORMAPAGO = :FORMAPAGO ');
|
|
|
|
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
SQL.Add('and CODIGO = :CODIGO');
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
ParamByName('CODIGO').AsString := Codigo;
|
|
|
|
|
|
ParamByName('SITUACION').AsString := Situacion;
|
|
|
|
|
|
ParamByName('FORMAPAGO').AsString := FormaPago;
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
Result := True;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.DarIvas: TStrings;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
Lista : TStringList;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := NIL;
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
Lista := TStringList.Create;
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select distinct(IVA) ');
|
|
|
|
|
|
SQL.Add('from FACTURASPROVEEDOR ');
|
|
|
|
|
|
SQL.Add('where IVA is not null ');
|
|
|
|
|
|
SQL.Add('and CODIGOEMPRESA = :CODIGOEMPRESA ');
|
|
|
|
|
|
SQL.Add('order by IVA descending');
|
|
|
|
|
|
try
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
while not EOF do begin
|
|
|
|
|
|
Lista.Append(Fields[0].AsString);
|
|
|
|
|
|
Next;
|
|
|
|
|
|
end;
|
|
|
|
|
|
Result := Lista;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.DarTiposOp: TStrings;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
Lista : TStringList;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := NIL;
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
Lista := TStringList.Create;
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select CODIGO ');
|
|
|
|
|
|
SQL.Add('from TIPOSFACTURAS ');
|
|
|
|
|
|
SQL.Add('where ENTIDAD = ''PROVEEDOR'' ');
|
|
|
|
|
|
SQL.Add('order by CODIGO');
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
while not EOF do begin
|
|
|
|
|
|
Lista.Append(Fields[0].AsString);
|
|
|
|
|
|
Next;
|
|
|
|
|
|
end;
|
|
|
|
|
|
Result := Lista;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.DarTiposOpDes: TStrings;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
Lista : TStringList;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := NIL;
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
Lista := TStringList.Create;
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select DESCRIPCION ');
|
|
|
|
|
|
SQL.Add('from TIPOSFACTURAS ');
|
|
|
|
|
|
SQL.Add('where ENTIDAD = ''PROVEEDOR'' ');
|
|
|
|
|
|
SQL.Add('order by CODIGO');
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
while not EOF do begin
|
|
|
|
|
|
Lista.Append(Fields[0].AsString);
|
|
|
|
|
|
Next;
|
|
|
|
|
|
end;
|
|
|
|
|
|
Result := Lista;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.AsignarTrimestre(CodigoFactura, CodigoTrimestre: String): Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := False;
|
|
|
|
|
|
if EsCadenaVacia(CodigoFactura) or EsCadenaVacia(CodigoTrimestre) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('update FACTURASPROVEEDOR ');
|
|
|
|
|
|
SQL.Add('set CODIGOTRIMESTRE = :CODIGOTRIMESTRE ');
|
|
|
|
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
SQL.Add('and CODIGO = :CODIGO');
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
ParamByName('CODIGO').AsString := CodigoFactura;
|
|
|
|
|
|
ParamByName('CODIGOTRIMESTRE').AsString := CodigoTrimestre;
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
Result := True;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.InicializarGridFacturasTrimestre(var Grid: TcxGrid);
|
|
|
|
|
|
var
|
|
|
|
|
|
Columna : TcxGridDBColumn;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with (Grid.ActiveView as TcxGridDBTableView) do
|
|
|
|
|
|
begin
|
|
|
|
|
|
ClearItems;
|
|
|
|
|
|
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 facturas';
|
|
|
|
|
|
Kind := skCount;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{Columna CODIGOTRIMESTRE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGOTRIMESTRE';
|
|
|
|
|
|
Columna.Caption := 'C<>d. Trim';
|
|
|
|
|
|
Columna.Width := tamColCodigo;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Visible := False;
|
|
|
|
|
|
{Columna TIPOFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'TIPOFACTURA';
|
|
|
|
|
|
Columna.Caption := 'Tipo factura';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Visible := False;
|
|
|
|
|
|
{Columna CLASEFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CLASEFACTURA';
|
|
|
|
|
|
Columna.Caption := 'Clase factura';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Visible := False;
|
|
|
|
|
|
{Columna FECHAFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'FECHAFACTURA';
|
|
|
|
|
|
Columna.Caption := 'Fecha';
|
|
|
|
|
|
Columna.Width := tamColFecha;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.SortOrder := soDescending;
|
|
|
|
|
|
{Columna CODIGOPROVEEDOR}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGOPROVEEDOR';
|
|
|
|
|
|
Columna.Caption := 'C<>d. proveedor';
|
|
|
|
|
|
Columna.Width := tamColCodigo;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
{Columna NIFCIF}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NIFCIF';
|
|
|
|
|
|
Columna.Caption := 'NIF/CIF';
|
|
|
|
|
|
Columna.Width := tamColNIFCIF;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
{Columna NOMBRE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|
|
|
|
|
Columna.Caption := 'Nombre';
|
|
|
|
|
|
Columna.Width := tamColNombreCorto;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
{Columna SITUACION}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'SITUACION';
|
|
|
|
|
|
Columna.Caption := 'Situaci<63>n';
|
|
|
|
|
|
Columna.Width := tamColSituacion;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
|
|
|
|
|
|
{Columna BASEIMPONIBLE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'BASEIMPONIBLE';
|
|
|
|
|
|
Columna.Caption := 'Base imponible';
|
|
|
|
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
|
|
|
|
Columna.Width := tamColImporte;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.PropertiesClassName := 'TcxCurrencyEdit';
|
|
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
|
|
|
|
try
|
|
|
|
|
|
try
|
|
|
|
|
|
BeginUpdate;
|
|
|
|
|
|
Column := Columna;
|
|
|
|
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
|
|
|
|
Format := '0,0.00 <20>';
|
|
|
|
|
|
Kind := skSum;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{Columna IMPORTEDESCUENTO}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'IMPORTEDESCUENTO';
|
|
|
|
|
|
Columna.Caption := 'Importe DTO.';
|
|
|
|
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
|
|
|
|
Columna.Width := tamColImporte;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.PropertiesClassName := 'TcxCurrencyEdit';
|
|
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
|
|
|
|
try
|
|
|
|
|
|
try
|
|
|
|
|
|
BeginUpdate;
|
|
|
|
|
|
Column := Columna;
|
|
|
|
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
|
|
|
|
Format := '0,0.00 <20>';
|
|
|
|
|
|
Kind := skSum;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{Columna IMPORTEIVA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'IMPORTEIVA';
|
|
|
|
|
|
Columna.Caption := 'Importe IVA';
|
|
|
|
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
|
|
|
|
Columna.Width := tamColImporte;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.PropertiesClassName := 'TcxCurrencyEdit';
|
|
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
|
|
|
|
try
|
|
|
|
|
|
try
|
|
|
|
|
|
BeginUpdate;
|
|
|
|
|
|
Column := Columna;
|
|
|
|
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
|
|
|
|
Format := '0,0.00 <20>';
|
|
|
|
|
|
Kind := skSum;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{Columna IMPORTETOTAL}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'IMPORTETOTAL';
|
|
|
|
|
|
Columna.Caption := 'Importe total';
|
|
|
|
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
|
|
|
|
Columna.Width := tamColImporte;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.PropertiesClassName := 'TcxCurrencyEdit';
|
|
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
|
|
|
|
try
|
|
|
|
|
|
try
|
|
|
|
|
|
BeginUpdate;
|
|
|
|
|
|
Column := Columna;
|
|
|
|
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
|
|
|
|
Format := '0,0.00 <20>';
|
|
|
|
|
|
Kind := skSum;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.ComprobarTrimestreFactura(CodigoFactura: String): Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := False;
|
|
|
|
|
|
if EsCadenaVacia(CodigoFactura) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select TR.SITUACION ');
|
|
|
|
|
|
SQL.Add('from FACTURASPROVEEDOR FC, TRIMESTRES TR ');
|
|
|
|
|
|
SQL.Add('where FC.CODIGOEMPRESA = TR.CODIGOEMPRESA ');
|
|
|
|
|
|
SQL.Add('and FC.CODIGOTRIMESTRE = TR.CODIGO ');
|
|
|
|
|
|
SQL.Add('and FC.CODIGO = :CODIGO ');
|
|
|
|
|
|
SQL.Add('and FC.CODIGOEMPRESA = :CODIGOEMPRESA ');
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
ParamByName('CODIGO').AsString := CodigoFactura;
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
Result := (Fields[0].AsString = 'A');
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.ExisteFacturaConContrato(
|
|
|
|
|
|
CodigoContrato: String): Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := False;
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select count(CODIGOFACTURA) ');
|
|
|
|
|
|
SQL.Add('from DETALLESFACTURASPROVCONTRATOS ');
|
|
|
|
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
SQL.Add('and CODIGOCONTRATO = :CODIGOCONTRATO');
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
ParamByName('CODIGOCONTRATO').AsString := CodigoContrato;
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
Result := not (Fields[0].AsInteger = 0);
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.InicializarGridFacturasPendientes(
|
|
|
|
|
|
var Grid: TcxGrid);
|
|
|
|
|
|
var
|
|
|
|
|
|
Columna : TcxGridDBColumn;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with (Grid.ActiveView as TcxGridDBTableView) do
|
|
|
|
|
|
begin
|
|
|
|
|
|
ClearItems;
|
|
|
|
|
|
OptionsView.Footer := True;
|
|
|
|
|
|
{Columna CODIGO}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGO';
|
|
|
|
|
|
Columna.Caption := 'C<>digo';
|
|
|
|
|
|
Columna.Width := tamColNombre;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Visible := False;
|
|
|
|
|
|
|
|
|
|
|
|
{Columna REFERENCIA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'REFERENCIA';
|
|
|
|
|
|
Columna.Caption := 'Referencia';
|
|
|
|
|
|
Columna.Width := tamColNombre;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
|
|
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
|
|
|
|
try
|
|
|
|
|
|
try
|
|
|
|
|
|
BeginUpdate;
|
|
|
|
|
|
Column := Columna;
|
|
|
|
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
|
|
|
|
Format := '0 facturas';
|
|
|
|
|
|
Kind := skCount;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
{Columna NOMBRE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|
|
|
|
|
Columna.Caption := 'Nombre';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.Width := tamColNombreCorto;
|
|
|
|
|
|
{Columna IMPORTETOTAL}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'IMPORTETOTAL';
|
|
|
|
|
|
Columna.Caption := 'Importe';
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
|
|
|
|
Columna.Width := tamColNombre;
|
|
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
|
|
|
|
try
|
|
|
|
|
|
try
|
|
|
|
|
|
BeginUpdate;
|
|
|
|
|
|
Column := Columna;
|
|
|
|
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
|
|
|
|
Format := '0,0.00 <20>';
|
|
|
|
|
|
Kind := skSum;
|
|
|
|
|
|
finally
|
|
|
|
|
|
EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
except
|
|
|
|
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmTablaFacturasProveedor.DarTiposOpDesTrimestral(var ListaCodigos: TStrings): TStrings;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
Lista : TStringList;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := NIL;
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
ListaCodigos := TStringList.Create;
|
|
|
|
|
|
Lista := TStringList.Create;
|
|
|
|
|
|
//tipTodas, tipGeneral, tipInmovilizado
|
|
|
|
|
|
Lista.Append(msgTipFacturas0);
|
|
|
|
|
|
Lista.Append(msgTipFacturas1);
|
|
|
|
|
|
Lista.Append(msgTipFacturas2);
|
|
|
|
|
|
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select CODIGO, DESCRIPCION ');
|
|
|
|
|
|
SQL.Add('from TIPOSFACTURAS ');
|
|
|
|
|
|
SQL.Add('where ENTIDAD = ''PROVEEDOR'' ');
|
|
|
|
|
|
SQL.Add('order by CODIGO');
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
while not EOF do begin
|
|
|
|
|
|
ListaCodigos.Append(Fields[0].AsString);
|
|
|
|
|
|
Lista.Append(Fields[1].AsString);
|
|
|
|
|
|
Next;
|
|
|
|
|
|
end;
|
|
|
|
|
|
Result := Lista;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2007-11-07 09:56:27 +00:00
|
|
|
|
function TdmTablaFacturasProveedor.ModificarSituacionFacturas(Codigos: TStrings; Situacion: String): Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
Indice : Integer;
|
|
|
|
|
|
Cadena : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := False;
|
|
|
|
|
|
if Codigos.Count = 0 then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
//Formateamos los c<>digos para optimizar la sentencia SQL
|
|
|
|
|
|
for Indice:=0 to Codigos.Count-1 do
|
|
|
|
|
|
begin
|
|
|
|
|
|
if (Indice <> 0) then
|
|
|
|
|
|
Cadena := Cadena + ',';
|
|
|
|
|
|
Cadena := Cadena + '''' + Codigos.Strings[Indice] + '''';
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('update FACTURASPROVEEDOR ');
|
|
|
|
|
|
SQL.Add('set SITUACION = :SITUACION ');
|
|
|
|
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA ');
|
|
|
|
|
|
SQL.Add('and CODIGO IN (' + Cadena + ')');
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
ParamByName('SITUACION').AsString := Situacion;
|
|
|
|
|
|
try
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
Result := True;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2007-06-26 08:08:27 +00:00
|
|
|
|
{ TDatosFacturaProveedor }
|
|
|
|
|
|
|
|
|
|
|
|
procedure TDatosFacturaProveedor.AssignTo(Dest: TPersistent);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
//
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor TDatosFacturaProveedor.Create(CodigoFactura: String);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create;
|
|
|
|
|
|
Codigo := CodigoFactura;
|
|
|
|
|
|
ObtenerDatos;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor TDatosFacturaProveedor.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
destructor TDatosFacturaProveedor.Destroy;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TDatosFacturaProveedor.ObtenerDatos;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if EsCadenaVacia(Codigo) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
oSQL := TIBSQL.Create(nil);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Add('select * from FACTURASPROVEEDOR ');
|
|
|
|
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
|
|
|
|
SQL.Add(' and CODIGO = :CODIGO');
|
|
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
ParamByName('CODIGO').AsString := Codigo;
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
|
|
|
|
|
|
if (RecordCount > 0) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
Referencia := FieldByName('REFERENCIA').AsString;
|
|
|
|
|
|
FechaAlta := FieldByName('FECHAALTA').AsDateTime;
|
|
|
|
|
|
Usuario := FieldByName('USUARIO').AsString;
|
|
|
|
|
|
FechaFactura := FieldByName('FECHAFACTURA').AsDateTime;
|
|
|
|
|
|
FechaVencimiento := FieldByName('FECHAVENCIMIENTO').AsDateTime;
|
|
|
|
|
|
Situacion := FieldByName('SITUACION').AsString;
|
|
|
|
|
|
Observaciones := FieldByName('OBSERVACIONES').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('FAX').AsString;
|
|
|
|
|
|
PersonaContacto := FieldByName('PERSONACONTACTO').AsString;
|
|
|
|
|
|
FormaPago := FieldByName('FORMAPAGO').AsString;
|
|
|
|
|
|
BaseImponible := FieldByName('BASEIMPONIBLE').AsDouble;
|
|
|
|
|
|
Descuento := FieldByName('DESCUENTO').AsInteger;
|
|
|
|
|
|
ImporteDescuento := FieldByName('IMPORTEDESCUENTO').AsDouble;
|
|
|
|
|
|
Iva := FieldByName('IVA').AsInteger;
|
|
|
|
|
|
ImporteIva := FieldByName('IMPORTEIVA').AsDouble;
|
|
|
|
|
|
ImporteTotal := FieldByName('IMPORTETOTAL').AsDouble;
|
|
|
|
|
|
TipoFactura := FieldByName('TIPOFACTURA').AsString;
|
|
|
|
|
|
ClaseFactura := FieldByName('CLASEFACTURA').AsString;
|
|
|
|
|
|
CodigoTrimestre := FieldByName('CODIGOTRIMESTRE').AsString;
|
|
|
|
|
|
end
|
|
|
|
|
|
else begin
|
|
|
|
|
|
raise Exception.CreateFmt(msgProvNoExisteFacProv, [Codigo]);
|
|
|
|
|
|
end;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{ TListaFacturasProveedor }
|
|
|
|
|
|
|
|
|
|
|
|
procedure TListaFacturasProveedor.AssignTo(Dest: TPersistent);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
//
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor TListaFacturasProveedor.Create(oSQL: String);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create;
|
|
|
|
|
|
FSQL := oSQL;
|
|
|
|
|
|
ObtenerLista;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor TListaFacturasProveedor.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create;
|
|
|
|
|
|
FSQL := 'select CODIGO from FACTURASPROVEEDOR';
|
|
|
|
|
|
FSQL := FSQL + ' where CODIGOEMPRESA = :CODIGOEMPRESA';
|
|
|
|
|
|
ObtenerLista;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TListaFacturasProveedor.GetFactura(
|
|
|
|
|
|
Index: Integer): TDatosFacturaProveedor;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := TDatosFacturaProveedor(FLista.Items[Index]);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TListaFacturasProveedor.ObtenerLista;
|
|
|
|
|
|
var
|
|
|
|
|
|
oSQL : TIBSQL;
|
|
|
|
|
|
Factura : TDatosFacturaProveedor;
|
|
|
|
|
|
begin
|
|
|
|
|
|
oSQL := TIBSQL.Create(nil);
|
|
|
|
|
|
with oSQL do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Database := dmBaseDatos.BD;
|
|
|
|
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
|
|
|
|
SQL.Text := FSQL;
|
|
|
|
|
|
try
|
|
|
|
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
|
|
|
|
Prepare;
|
|
|
|
|
|
ExecQuery;
|
|
|
|
|
|
while not EOF do begin
|
|
|
|
|
|
Factura := TDatosFacturaProveedor.Create(FieldByName('CODIGO').AsString);
|
|
|
|
|
|
FLista.Add(Factura);
|
|
|
|
|
|
Next;
|
|
|
|
|
|
end;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Close;
|
|
|
|
|
|
Transaction := NIL;
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmTablaFacturasProveedor.InicializarGridFacturasProvContrato(var Grid: TcxGrid);
|
|
|
|
|
|
var
|
|
|
|
|
|
Columna : TcxGridDBColumn;
|
|
|
|
|
|
begin
|
|
|
|
|
|
with (Grid.ActiveView as TcxGridDBTableView) do
|
|
|
|
|
|
begin
|
|
|
|
|
|
ClearItems;
|
|
|
|
|
|
OptionsView.Footer := True;
|
|
|
|
|
|
{Columna CODIGOFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'CODIGOFACTURA';
|
|
|
|
|
|
Columna.Caption := 'C<>digo';
|
|
|
|
|
|
Columna.Width := tamColCodigo;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
{Columna FECHAFACTURA}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'FECHAFACTURA';
|
|
|
|
|
|
Columna.Caption := 'Fecha';
|
|
|
|
|
|
Columna.Width := tamColFecha;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
{Columna NIFCIF}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NIFCIF';
|
|
|
|
|
|
Columna.Caption := 'NIF/CIF';
|
|
|
|
|
|
Columna.Width := tamColNIFCIF;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
{Columna NOMBRE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|
|
|
|
|
Columna.Caption := 'Nombre';
|
|
|
|
|
|
Columna.Width := tamColNombreCorto;
|
|
|
|
|
|
Columna.Options.Filtering := False;
|
|
|
|
|
|
{Columna IMPORTE}
|
|
|
|
|
|
Columna := CreateColumn;
|
|
|
|
|
|
Columna.DataBinding.FieldName := 'IMPORTE';
|
|
|
|
|
|
Columna.Caption := 'Importe';
|
|
|
|
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
|
|
|
|
Columna.Width := tamColImporteLargo;
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
|
|
end.
|