This repository has been archived on 2024-11-29. You can view files and clone it, but cannot push or open issues or pull requests.
Tecsitel_FactuGES/BaseDatos/TablaFacturasProveedor.pas

684 lines
22 KiB
ObjectPascal
Raw Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2001. 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: 01-10-2001
Versi<EFBFBD>n actual: 1.1.1
Fecha versi<EFBFBD>n actual: 06-03-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
20-10-2001 La tabla detalles se ha cambiado para que mantenga una
relaci<EFBFBD>n de pedidos, no de art<EFBFBD>culos.
31-10-2001 Se han a<EFBFBD>adido los campos IMPORTEDESCUENTO e IMPORTEIVA.
02-11-2001 Se ha a<EFBFBD>adido la columna DESCRIPCION en los detalles.
05-11-2001 A<EFBFBD>adir la columna 'Num. factura proveedor' en el grid
de facturas.
07-04-2002 Adaptar todas las funciones a la transacci<EFBFBD>n <EFBFBD>nica.
06-05-2002 Adaptaci<EFBFBD>n al grid 'TdxDBGrid'.
15-05-2002 P224. A<EFBFBD>adida la funci<EFBFBD>n 'DarListaFacturas'.
27-05-2002 Cambio a un objeto contador (TContadorFacturaProveedor)
16-11-2002 p250. Poner el n<EFBFBD>mero total de facturas dadas de alta
en la inicializaci<EFBFBD>n del grid.
08-04-2003 P263. Agrupar por a<EFBFBD>os las facturas, nueva funci<EFBFBD>n DarListaAnos.
06-03-2004 P272. Adaptaci<EFBFBD>n a multiempresa.
===============================================================================
}
unit TablaFacturasProveedor;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,
Dialogs, DBTables, DB, IBCustomDataSet, IBSQL, BaseDatos, IBDatabase,
dxDBGrid, Contadores;
type
TdmTablaFacturasProveedor = class(TComponent)
private
procedure IniciarSQLFactura;
procedure IniciarSQLDetalles;
procedure IniciarSQLGrids;
public
sqlInsertarFactura : TStrings;
sqlModificarFactura : TStrings;
sqlConsultarFactura : TStrings;
sqlEliminarFactura : TStrings;
sqlConsultarGridFacturas : TStrings;
sqlConsultarGridFacturasProv : 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 ExisteCodigo(Codigo : String) : Boolean;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
procedure InicializarGridDetalles(var Grid: TdxDBGrid);
procedure InicializarGridFacturas(var Grid: TdxDBGrid);
procedure InicializarTablaFacturas(Tabla: TPTabla);
procedure InicializarTablaDetalles(Tabla: TPTabla);
function DarSituaciones : TStrings;
function DarSituacionFactura(CodigoEmpresa: Integer; CodigoPedido: String): String;
function DarListaFacturas(Grid : TdxDBGrid; Tabla: TPTabla): TStringList;
function ModificarSituacionFactura(CodigoEmpresa: Integer; CodigoPedido,
Situacion, FormaPago : String): Boolean;
function DarListaAnos(CodigoEmpresa: Integer;const pTodos: Boolean): TStringList;
end;
var
dmTablaFacturasProveedor: TdmTablaFacturasProveedor;
implementation
uses
Mensajes, IB, dbgrids, StrFunc, Excepciones, dxDBCtrl, dxDBTLCL,
dxTL, Constantes, RdxGestorContadores, RdxEmpresaActiva;
{ 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;
IniciarSQLFactura;
IniciarSQLDetalles;
IniciarSQLGrids;
end;
function TdmTablaFacturasProveedor.DarNuevoCodigo: String;
begin
Result := GestorContadores.DarNuevoCodigo(contFacturasProveedor);
end;
function TdmTablaFacturasProveedor.DarSituaciones: 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 from SITUFACTURAS');
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;
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;
inherited;
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 (CODIGO = :CODIGO) ');
SQL.Add('and (CODIGOEMPRESA = :CODIGOEMPRESA) ');
ParamByName('CODIGO').AsString := Codigo;
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.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.IncrementarCodigo: boolean;
begin
Result := GestorContadores.IncrementarValor(contFacturasProveedor);
end;
procedure TdmTablaFacturasProveedor.InicializarGridDetalles(var Grid: TdxDBGrid);
var
Columna : TdxDBTreeListColumn;
begin
with Grid do begin
DestroyColumns;
{Columna CODIGOFACTURA}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.Visible := False;
Columna.FieldName := 'CODIGOFACTURA';
{Columna NUMCONCEPTO}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.Visible := False;
Columna.FieldName := 'NUMCONCEPTO';
{Columna CODIGOPEDIDO}
Columna := CreateColumn(TdxDBTreeListButtonColumn);
Columna.FieldName := 'CODIGOPEDIDO';
Columna.Caption := 'C<>d. pedido';
Columna.Width := tamColCodigo;
{Columna SITUACION}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'SITUACION';
Columna.ReadOnly := True;
Columna.Caption := 'Situaci<63>n';
Columna.Width := tamColSituacion;
{Columna DESCRIPCION}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'DESCRIPCION';
Columna.Caption := 'Descripci<63>n';
Columna.Width := tamColDescripcion;
{Columna PRECIO}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'PRECIO';
Columna.Caption := 'Precio total';
Columna.Width := tamColPrecio;
end;
end;
procedure TdmTablaFacturasProveedor.InicializarGridFacturas(var Grid: TdxDBGrid);
var
Columna : TdxDBTreeListColumn;
begin
with Grid do begin
DestroyColumns;
ShowSummaryFooter := True;
{Columna CODIGO}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'CODIGO';
Columna.Caption := 'C<>digo';
Columna.Width := tamColCodigo;
Columna.Sorted := csDown;
Columna.SummaryFooterType := cstCount;
Columna.SummaryFooterFormat := 'Total: 0 facturas';
{Columna ANO}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'ANO';
Columna.Caption := 'A<>o';
Columna.Width := tamColFecha;
Columna.Visible := False;
{Columna FECHA}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'FECHAALTA';
Columna.Caption := 'Fecha';
Columna.Width := tamColFecha;
{Columna TIPO}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'TIPO';
Columna.Caption := 'Tipo';
Columna.Width := tamColTipo;
{Columna CODIGOFACTURA}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'CODIGOFACTURA';
Columna.Caption := 'Num. factura';
Columna.Width := tamColCodigo;
{Columna CODIGOPROVEEDOR}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'CODIGOPROVEEDOR';
Columna.Caption := 'C<>d. proveedor';
Columna.Width := tamColCodigo;
{Columna NIFCIF}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'NIFCIF';
Columna.Caption := 'NIF/CIF';
Columna.Width := tamColNIFCIF;
{Columna NOMBRE}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'NOMBRE';
Columna.Caption := 'Nombre';
Columna.Width := tamColNombre;
{Columna FECHAVENCIMIENTO}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'FECHAVENCIMIENTO';
Columna.Caption := 'Fecha vto.';
Columna.Width := tamColFecha;
{Columna SITUACION}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'SITUACION';
Columna.Caption := 'Situaci<63>n';
Columna.Width := tamColSituacion;
{Columna IMPORTETOTAL}
Columna := CreateColumn(TdxDBTreeListColumn);
Columna.FieldName := 'IMPORTETOTAL';
Columna.Caption := 'Importe total';
Columna.Width := tamColPrecio;
end;
end;
procedure TdmTablaFacturasProveedor.InicializarTablaDetalles(
Tabla: TPTabla);
begin
with Tabla^.Fields do
begin
if FindField('PRECIO') <> NIL then
with (FieldByName('PRECIO') as TFloatField) do begin
DisplayFormat := DISPLAY_EUROS2;
EditFormat := EDIT_EUROS2;
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('FECHAVENCIMIENTO') <> NIL then
with (FieldByName('FECHAVENCIMIENTO') as TDateField) do begin
EditMask := MASK_FECHA;
end;
if FindField('BASEIMPONIBLE') <> NIL then
// with (FieldByName('BASEIMPONIBLE') as TFloatField) do begin
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 TFloatField) do begin
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 TFloatField) do begin
with (FieldByName('IMPORTEIVA') as TIBBCDField) do begin
DisplayFormat := DISPLAY_EUROS2;
EditFormat := EDIT_EUROS2;
end;
if FindField('IMPORTETOTAL') <> NIL then
// with (FieldByName('IMPORTETOTAL') as TFloatField) do begin
with (FieldByName('IMPORTETOTAL') as TIBBCDField) do begin
DisplayFormat := DISPLAY_EUROS2;
EditFormat := EDIT_EUROS2;
DisplayLabel := 'Importe total';
end;
end;
end;
procedure TdmTablaFacturasProveedor.IniciarSQLDetalles;
begin
with sqlInsertarDetalles do
begin
Add('insert into DETALLESFACTURASPROVEEDOR ');
Add('(CODIGOEMPRESA, CODIGOFACTURA, NUMCONCEPTO, CODIGOPEDIDO, DESCRIPCION, PRECIO)');
Add('values (:CODIGOEMPRESA, :CODIGOFACTURA, :NUMCONCEPTO, :CODIGOPEDIDO, :DESCRIPCION, :PRECIO)');
end;
with sqlModificarDetalles do
begin
Add('update DETALLESFACTURASPROVEEDOR set ');
Add('NUMCONCEPTO = :NUMCONCEPTO, ');
Add('CODIGOPEDIDO = :CODIGOPEDIDO, ');
Add('DESCRIPCION = :DESCRIPCION, ');
Add('PRECIO = :PRECIO ');
Add('where (CODIGOFACTURA = :CODIGOFACTURA) and ');
Add('(CODIGOEMPRESA = :CODIGOEMPRESA) and ');
Add('(NUMCONCEPTO = :NUMCONCEPTO)');
end;
with sqlEliminarDetalles do
begin
Add('delete from DETALLESFACTURASPROVEEDOR ');
Add('where (CODIGOFACTURA = :CODIGOFACTURA) and ');
Add('(CODIGOEMPRESA = :CODIGOEMPRESA) and ');
Add('(NUMCONCEPTO = :NUMCONCEPTO)');
end;
with sqlConsultarDetalles do
begin
Add('select DET.CODIGOFACTURA, DET.NUMCONCEPTO, DET.CODIGOPEDIDO, ');
Add('PED.SITUACION, DET.DESCRIPCION, DET.PRECIO ');
Add('from DETALLESFACTURASPROVEEDOR DET left join PEDIDOSPROVEEDOR PED ');
Add('on (DET.CODIGOPEDIDO = PED.CODIGO and DET.CODIGOEMPRESA = PED.CODIGOEMPRESA) ');
Add('where (DET.CODIGOFACTURA = :CODIGOFACTURA) and ');
Add('(DET.CODIGOEMPRESA = :CODIGOEMPRESA) and ');
Add('(DET.CODIGOPEDIDO = :CODIGOPEDIDO) ');
Add('order by NUMCONCEPTO');
end;
end;
procedure TdmTablaFacturasProveedor.IniciarSQLFactura;
begin
with sqlInsertarFactura do
begin
Add('insert into FACTURASPROVEEDOR ');
Add('(CODIGOEMPRESA, CODIGO, CODIGOFACTURA, FECHAALTA, FECHAVENCIMIENTO, ');
Add('BANCO, USUARIO, NOTAS, CODIGOPROVEEDOR, ');
Add('NIFCIF, NOMBRE, FAX, PERSONACONTACTO, CODIGOCLIENTE, FORMAPAGO, ');
Add('BASEIMPONIBLE, DESCUENTO, IVA, IMPORTETOTAL, TIPO, SITUACION, ');
Add('IMPORTEDESCUENTO, IMPORTEIVA) ');
Add('values (:CODIGOEMPRESA, :CODIGO, :CODIGOFACTURA, :FECHAALTA, ');
Add(':FECHAVENCIMIENTO, :BANCO, :USUARIO, :NOTAS, ');
Add(':CODIGOPROVEEDOR, :NIFCIF, :NOMBRE, :FAX, :PERSONACONTACTO, ');
Add(':CODIGOCLIENTE, :FORMAPAGO, :BASEIMPONIBLE, :DESCUENTO, ');
Add(':IVA, :IMPORTETOTAL, :TIPO, :SITUACION, :IMPORTEDESCUENTO, :IMPORTEIVA)');
end;
with sqlModificarFactura do
begin
Add('update FACTURASPROVEEDOR set ');
Add('CODIGOFACTURA = :CODIGOFACTURA, ');
Add('FECHAALTA = :FECHAALTA, ');
Add('FECHAVENCIMIENTO = :FECHAVENCIMIENTO, ');
Add('BANCO = :BANCO, ');
Add('USUARIO = :USUARIO, ');
Add('NOTAS = :NOTAS, ');
Add('CODIGOPROVEEDOR = :CODIGOPROVEEDOR, ');
Add('NIFCIF = :NIFCIF, ');
Add('NOMBRE = :NOMBRE, ');
Add('FAX = :FAX, ');
Add('PERSONACONTACTO = :PERSONACONTACTO, ');
Add('CODIGOCLIENTE = :CODIGOCLIENTE, ');
Add('FORMAPAGO = :FORMAPAGO, ');
Add('BASEIMPONIBLE = :BASEIMPONIBLE, ');
Add('DESCUENTO = :DESCUENTO, ');
Add('IMPORTEDESCUENTO = :IMPORTEDESCUENTO, ');
Add('IVA = :IVA, ');
Add('IMPORTEIVA = :IMPORTEIVA, ');
Add('IMPORTETOTAL = :IMPORTETOTAL, ');
Add('TIPO = :TIPO, ');
Add('SITUACION = :SITUACION ');
Add('where (CODIGO = :CODIGO) ');
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA)');
end;
with sqlEliminarFactura do
begin
Add('delete from FACTURASPROVEEDOR ');
Add('where (CODIGO = :CODIGO) ');
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA)');
end;
with sqlConsultarFactura do
begin
Add('select * from FACTURASPROVEEDOR ');
Add('where (CODIGO = :CODIGO) ');
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA)');
end;
end;
procedure TdmTablaFacturasProveedor.IniciarSQLGrids;
begin
with sqlConsultarGridFacturas do
begin
Add('select CODIGO, FECHAALTA, TIPO, CODIGOFACTURA, CODIGOPROVEEDOR, ');
Add('EXTRACT (YEAR FROM FECHAALTA) as ANO, ');
Add('NIFCIF, NOMBRE, FECHAVENCIMIENTO, SITUACION, IMPORTETOTAL');
Add('from FACTURASPROVEEDOR ');
Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
Add('order by CODIGO');
end;
with sqlConsultarGridFacturasProv do
begin
Add('select CODIGO, FECHAALTA, TIPO, CODIGOFACTURA, CODIGOPROVEEDOR, ');
Add('EXTRACT (YEAR FROM FECHAALTA) as ANO, ');
Add('NIFCIF, NOMBRE, FECHAVENCIMIENTO, SITUACION, IMPORTETOTAL');
Add('from FACTURASPROVEEDOR ');
Add('where (CODIGOPROVEEDOR = :CODIGOPROVEEDOR) ');
Add('and (CODIGOEMPRESA = :CODIGOEMPRESA)');
Add('order by CODIGO');
end;
with sqlConsultarGridDetalles do
begin
Add('select DET.CODIGOEMPRESA, DET.CODIGOFACTURA, DET.NUMCONCEPTO, DET.CODIGOPEDIDO, ');
Add('PED.SITUACION, DET.DESCRIPCION, DET.PRECIO, PED.CODIGOPROVEEDOR ');
Add('from DETALLESFACTURASPROVEEDOR DET left join PEDIDOSPROVEEDOR PED ');
Add('on (DET.CODIGOPEDIDO = PED.CODIGO and DET.CODIGOEMPRESA = PED.CODIGOEMPRESA) ');
Add('where (DET.CODIGOFACTURA = :CODIGOFACTURA) ');
Add('and (DET.CODIGOEMPRESA = :CODIGOEMPRESA)');
Add('order by NUMCONCEPTO');
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.DarSituacionFactura(CodigoEmpresa: Integer;
CodigoPedido: String): String;
var
oSQL : TIBSQL;
begin
Result := '-1';
if EsCadenaVacia(CodigoPedido) then
Exit;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select SITUACION ');
SQL.Add('from FACTURASPROVEEDOR ');
SQL.Add('where (CODIGO = :CODIGO) and (CODIGOEMPRESA = :CODIGOEMPRESA)');
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
ParamByName('CODIGO').AsString := CodigoPedido;
try
Prepare;
ExecQuery;
Result := Fields[0].AsString;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
function TdmTablaFacturasProveedor.ModificarSituacionFactura(CodigoEmpresa: Integer;
CodigoPedido, Situacion, FormaPago: String): Boolean;
var
oSQL : TIBSQL;
begin
Result := False;
if EsCadenaVacia(CodigoPedido) 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 (CODIGO = :CODIGO) and (CODIGOEMPRESA = :CODIGOEMPRESA)');
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
ParamByName('CODIGO').AsString := CodigoPedido;
ParamByName('SITUACION').AsString := Situacion;
ParamByName('FORMAPAGO').AsString := FormaPago;
try
Prepare;
ExecQuery;
Result := True;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
function TdmTablaFacturasProveedor.DarListaFacturas(Grid : TdxDBGrid; Tabla: TPTabla): TStringList;
var
i: integer;
ListaFacturas : TStringList;
begin
ListaFacturas := Nil;
if Grid.SelectedCount = 0 then
begin
Result := ListaFacturas;
exit
end;
ListaFacturas := TStringList.Create;
Tabla^.DisableControls;
for i:=0 to Grid.SelectedCount-1 do
begin
Tabla^.GotoBookmark(Pointer(Grid.SelectedRows[i]));
ListaFacturas.Add(Tabla^.FieldByName('CODIGO').AsString);
end;
Tabla^.EnableControls;
Result := ListaFacturas;
end;
function TdmTablaFacturasProveedor.DarListaAnos(CodigoEmpresa: Integer; const pTodos: Boolean): TStringList;
var
oSQL : TIBSQL;
Lista : TStringList;
begin
Lista := TStringList.Create;
oSQL := TIBSQL.Create(Self);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select distinct (EXTRACT (YEAR FROM FECHAALTA)) ANO ');
SQL.Add('from FACTURASPROVEEDOR ');
SQL.Add('where (CODIGOEMPRESA = :CODIGOEMPRESA)');
SQL.Add('order by FECHAALTA desc');
ParamByName('CODIGOEMPRESA').AsInteger := CodigoEmpresa;
try
Prepare;
ExecQuery;
if pTodos then
Lista.Add(CTE_TODOS);
while not EOF do begin
Lista.Add(Fields[0].AsString);
Next;
end;
result := Lista;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
end.