684 lines
22 KiB
ObjectPascal
684 lines
22 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
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.
|