git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
818 lines
25 KiB
ObjectPascal
818 lines
25 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2005. Rodax Software.
|
|
===============================================================================
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
|
bajo el que se suministra.
|
|
-----------------------------------------------------------------------------
|
|
Web: www.rodax-software.com
|
|
===============================================================================
|
|
Fecha primera versión: 30-10-2005
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual: 30-10-2005
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit TablaAlbaranesCliente;
|
|
|
|
interface
|
|
|
|
uses
|
|
//Generales
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|
//Particulares
|
|
IBCustomDataSet, cxGrid, StdCtrls, cxButtonEdit, cxEdit, cxMemo,
|
|
|
|
//Aplicacion
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos, RdxEmpresaActiva,
|
|
|
|
//Contador
|
|
Contadores, RdxGestorContadores;
|
|
|
|
type
|
|
TDatosAlbaranCliente = class(TObjeto)
|
|
private
|
|
//
|
|
protected
|
|
procedure ObtenerDatos; override;
|
|
procedure AssignTo(Dest: TPersistent); override;
|
|
public
|
|
Codigo : String;
|
|
FechaAlta : TDateTime;
|
|
Usuario : String;
|
|
FechaAlbaran : TDateTime;
|
|
CodigoCliente : 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;
|
|
BaseImponible : double;
|
|
Descuento : integer;
|
|
ImporteDescuento : double;
|
|
Iva : integer;
|
|
ImporteIva : double;
|
|
ImporteTotal : double;
|
|
Observaciones : String;
|
|
constructor Create(CodigoAlbaran : String); overload;
|
|
constructor Create; overload; override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
TListaAlbaranesCliente = class(TListaObjetos)
|
|
private
|
|
FSQL : String;
|
|
function GetAlbaran(Index: Integer): TDatosAlbaranCliente;
|
|
protected
|
|
procedure AssignTo(Dest: TPersistent); override;
|
|
procedure ObtenerLista; override;
|
|
public
|
|
constructor Create(oSQL : String); overload;
|
|
constructor Create; overload; override;
|
|
property Items[Index: Integer] : TDatosAlbaranCliente read GetAlbaran;
|
|
end;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
TdmTablaAlbaranesCliente = class(TDataModule)
|
|
private
|
|
procedure IniciarSQLAlbaran;
|
|
procedure IniciarSQLDetalles;
|
|
procedure IniciarSQLGrids;
|
|
public
|
|
sqlInsertar : TStrings;
|
|
sqlModificar : TStrings;
|
|
sqlConsultar : TStrings;
|
|
sqlEliminar : TStrings;
|
|
sqlConsultarGrid : TStrings;
|
|
sqlInsertarDetalles : TStrings;
|
|
sqlModificarDetalles : TStrings;
|
|
sqlConsultarDetalles : TStrings;
|
|
sqlEliminarDetalles : TStrings;
|
|
sqlConsultarGridDetalles : TStrings;
|
|
|
|
//Metodos que llamaran a contador
|
|
function DarNuevoCodigo : String;
|
|
function IncrementarCodigo : boolean;
|
|
function DecrementarCodigo : boolean;
|
|
function InsertarContador : boolean;
|
|
function ValidarCodigo(Codigo : String) : Boolean;
|
|
function FormatearCodigo(Codigo : String) : String;
|
|
|
|
function FormatearNumConcepto(NumConcepto : String) : String;
|
|
function ExisteCodigo(Codigo : String) : Boolean;
|
|
procedure InicializarGridDetalles(var Grid: TcxGrid);
|
|
procedure InicializarGrid(var Grid: TcxGrid);
|
|
procedure InicializarTabla(Tabla: TPTabla);
|
|
procedure InicializarTablaDetalles(Tabla: TPTabla);
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
function EsUltima(Codigo : String): Boolean;
|
|
end;
|
|
|
|
var
|
|
dmTablaAlbaranesCliente: TdmTablaAlbaranesCliente;
|
|
|
|
implementation
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
TablaEmpresas;
|
|
|
|
{ TdmTablaAlbaranesCliente }
|
|
|
|
constructor TdmTablaAlbaranesCliente.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
{ Cabecera }
|
|
sqlInsertar := TStringList.Create;
|
|
sqlModificar := TStringList.Create;
|
|
sqlConsultar := TStringList.Create;
|
|
sqlEliminar := TStringList.Create;
|
|
|
|
{ Detalles }
|
|
sqlInsertarDetalles := TStringList.Create;
|
|
sqlModificarDetalles := TStringList.Create;
|
|
sqlConsultarDetalles := TStringList.Create;
|
|
sqlEliminarDetalles := TStringList.Create;
|
|
|
|
{ Grids }
|
|
sqlConsultarGrid := TStringList.Create;
|
|
sqlConsultarGridDetalles := TStringList.Create;
|
|
|
|
IniciarSQLAlbaran;
|
|
IniciarSQLDetalles;
|
|
IniciarSQLGrids;
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.DarNuevoCodigo: String;
|
|
begin
|
|
Result := GestorContadores.darNuevoCodigo(contAlbaranesCliente);
|
|
end;
|
|
|
|
destructor TdmTablaAlbaranesCliente.Destroy;
|
|
begin
|
|
{ Cabecera }
|
|
sqlInsertar.Free;
|
|
sqlModificar.Free;
|
|
sqlConsultar.Free;
|
|
sqlEliminar.Free;
|
|
|
|
{ Detalles }
|
|
sqlInsertarDetalles.Free;
|
|
sqlModificarDetalles.Free;
|
|
sqlConsultarDetalles.Free;
|
|
sqlEliminarDetalles.Free;
|
|
|
|
{ Grids }
|
|
sqlConsultarGrid.Free;
|
|
sqlConsultarGridDetalles.Free;
|
|
inherited;
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.ExisteCodigo(Codigo: String): Boolean;
|
|
var
|
|
oSQL : TIBSQL;
|
|
Contador : String;
|
|
begin
|
|
Result := False;
|
|
oSQL := TIBSQL.Create(Self);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select CODIGO ');
|
|
SQL.Add('from ALBARANESCLIENTE ');
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA');
|
|
SQL.Add(' and CODIGO = :CODIGO');
|
|
try
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
ParamByName('CODIGO').AsString := Codigo;
|
|
Prepare;
|
|
ExecQuery;
|
|
Contador := Fields[0].AsString;
|
|
Result := (Codigo = Contador);
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.FormatearCodigo(Codigo: String): String;
|
|
begin
|
|
Result := GestorContadores.formatearCodigo(contAlbaranesCliente, Codigo);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.FormatearNumConcepto(
|
|
NumConcepto: String): String;
|
|
var
|
|
Concepto : Integer;
|
|
begin
|
|
Concepto := StrToInt(NumConcepto);
|
|
Result := format('%.10d', [Concepto]);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.IncrementarCodigo: boolean;
|
|
begin
|
|
Result := GestorContadores.IncrementarValor(contAlbaranesCliente);
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesCliente.InicializarGridDetalles(var Grid: TcxGrid);
|
|
var
|
|
Columna : TcxGridDBColumn;
|
|
begin
|
|
with (Grid.ActiveView as TcxGridDBTableView) 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 CODIGOALBARAN}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'CODIGOALBARAN';
|
|
Columna.Visible := False;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
{Columna NUMCONCEPTO}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'NUMCONCEPTO';
|
|
Columna.Visible := False;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
{Columna CODIGOARTICULO}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'CODIGOARTICULO';
|
|
Columna.Caption := 'Cód. artículo';
|
|
Columna.Width := tamColCodigo;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
Columna.Visible := False;
|
|
Columna.PropertiesClassName := 'TcxButtonEditProperties';
|
|
with TcxButtonEditProperties(Columna.Properties) do
|
|
begin
|
|
Buttons[0].Kind := bkEllipsis;
|
|
end;
|
|
|
|
{Columna REFERENCIA}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'REFERENCIA';
|
|
Columna.Caption := 'Referencia';
|
|
Columna.Width := tamColReferencia;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
Columna.PropertiesClassName := 'TcxButtonEditProperties';
|
|
with TcxButtonEditProperties(Columna.Properties) do
|
|
begin
|
|
Buttons[0].Kind := bkEllipsis;
|
|
end;
|
|
|
|
{Columna DESCRIPCION}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'DESCRIPCION';
|
|
Columna.Caption := 'Descripción servicio/artículo';
|
|
Columna.Width := tamColDescripcion;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
Columna.PropertiesClassName := 'TcxMemoProperties';
|
|
with TcxMemoProperties(Columna.Properties) do
|
|
ScrollBars := ssVertical;
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
try
|
|
try
|
|
BeginUpdate;
|
|
Column := Columna;
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
Format := 'Total: #,0 conceptos';
|
|
Kind := skCount;
|
|
finally
|
|
EndUpdate;
|
|
end;
|
|
except
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
end;
|
|
|
|
{Columna CANTIDAD}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'CANTIDAD';
|
|
Columna.Caption := 'Cantidad';
|
|
Columna.Width := tamColCantidad;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
Columna.PropertiesClassName := 'TcxCalcEditProperties';
|
|
|
|
{Columna IMPORTEUNIDAD}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'IMPORTEUNIDAD';
|
|
Columna.Caption := 'Importe unidad';
|
|
Columna.Width := tamColImporte;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
Columna.PropertiesClassName := 'TcxCalcEditProperties';
|
|
|
|
{Columna IMPORTETOTAL}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'IMPORTETOTAL';
|
|
Columna.Caption := 'Importe total';
|
|
Columna.Width := tamColImporte;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Sorting := False;
|
|
Columna.Options.Editing := False;
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
try
|
|
try
|
|
BeginUpdate;
|
|
Column := Columna;
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
Format := DISPLAY_EUROS2;
|
|
Kind := skSum;
|
|
finally
|
|
EndUpdate;
|
|
end;
|
|
except
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesCliente.InicializarGrid(var Grid: TcxGrid);
|
|
var
|
|
Columna : TcxGridDBColumn;
|
|
begin
|
|
with (Grid.ActiveView as TcxGridDBTableView) do
|
|
begin
|
|
OptionsView.Footer := True;
|
|
{Columna CODIGO}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'CODIGO';
|
|
Columna.Caption := 'Código';
|
|
Columna.Width := tamColCodigo;
|
|
Columna.Options.Filtering := False;
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
try
|
|
try
|
|
BeginUpdate;
|
|
Column := Columna;
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
Format := 'Total: 0 albaranes';
|
|
Kind := skCount;
|
|
finally
|
|
EndUpdate;
|
|
end;
|
|
except
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
end;
|
|
|
|
{Columna FECHAALBARAN}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'FECHAALBARAN';
|
|
Columna.Caption := 'Fecha';
|
|
Columna.Width := tamColFecha;
|
|
Columna.Options.Filtering := False;
|
|
Columna.SortOrder := soDescending;
|
|
{Columna CODIGOCLIENTE}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'CODIGOCLIENTE';
|
|
Columna.Caption := 'Cód. cliente';
|
|
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 := tamColNombre;
|
|
Columna.Options.Filtering := False;
|
|
{Columna IMPORTETOTAL}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'IMPORTETOTAL';
|
|
Columna.Caption := 'Importe total';
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
Columna.Width := tamColImporte;
|
|
Columna.Options.Filtering := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesCliente.InicializarTablaDetalles(Tabla: TPTabla);
|
|
begin
|
|
with Tabla^.Fields do
|
|
begin
|
|
if FindField('CANTIDAD') <> NIL then
|
|
with (FieldByName('CANTIDAD') as TNumericField) do begin
|
|
DisplayFormat := DISPLAY_CANTIDAD;
|
|
EditFormat := EDIT_CANTIDAD;
|
|
end;
|
|
|
|
if FindField('IMPORTEUNIDAD') <> NIL then
|
|
with (FieldByName('IMPORTEUNIDAD') as TFloatField) do begin
|
|
DisplayFormat := DISPLAY_EUROS4;
|
|
EditFormat := EDIT_EUROS4;
|
|
end;
|
|
|
|
if FindField('IMPORTETOTAL') <> NIL then
|
|
with (FieldByName('IMPORTETOTAL') as TFloatField) do begin
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
EditFormat := EDIT_EUROS2;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesCliente.InicializarTabla(
|
|
Tabla: TPTabla);
|
|
begin
|
|
with Tabla^.Fields do
|
|
begin
|
|
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_DTO;
|
|
EditFormat := EDIT_DTO;
|
|
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 TNumericField) do begin
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
EditFormat := EDIT_EUROS2;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesCliente.IniciarSQLDetalles;
|
|
begin
|
|
with sqlInsertarDetalles do
|
|
begin
|
|
Add('INSERT INTO DETALLESALBARANESCLIENTE ( ');
|
|
Add('CODIGOEMPRESA, CODIGOALBARAN, NUMCONCEPTO, ');
|
|
Add('CODIGOARTICULO, REFERENCIA, DESCRIPCION, CANTIDAD, ');
|
|
Add('IMPORTEUNIDAD, IMPORTETOTAL) ');
|
|
Add('VALUES ( ');
|
|
Add(':CODIGOEMPRESA, :CODIGOALBARAN, :NUMCONCEPTO, ');
|
|
Add(':CODIGOARTICULO, :REFERENCIA, :DESCRIPCION, :CANTIDAD, ');
|
|
Add(':IMPORTEUNIDAD, :IMPORTETOTAL) ');
|
|
end;
|
|
|
|
with sqlModificarDetalles do
|
|
begin
|
|
Add('UPDATE DETALLESALBARANESCLIENTE SET ');
|
|
Add('CODIGOARTICULO = :CODIGOARTICULO, ');
|
|
Add('REFERENCIA = :REFERENCIA, ');
|
|
Add('DESCRIPCION = :DESCRIPCION, ');
|
|
Add('CANTIDAD = :CANTIDAD, ');
|
|
Add('IMPORTEUNIDAD = :IMPORTEUNIDAD, ');
|
|
Add('IMPORTETOTAL = :IMPORTETOTAL ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA) AND ');
|
|
Add('(CODIGOALBARAN = :CODIGOALBARAN) AND ');
|
|
Add('(NUMCONCEPTO = :NUMCONCEPTO) ');
|
|
end;
|
|
|
|
with sqlEliminarDetalles do
|
|
begin
|
|
Add('delete from DETALLESALBARANESCLIENTE ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA) AND ');
|
|
Add('(CODIGOALBARAN = :CODIGOALBARAN) AND ');
|
|
Add('(NUMCONCEPTO = :NUMCONCEPTO) ');
|
|
end;
|
|
|
|
with sqlConsultarDetalles do
|
|
begin
|
|
Add('select CODIGOALBARAN, NUMCONCEPTO, CODIGOARTICULO, REFERENCIA, ');
|
|
Add('DESCRIPCION, CANTIDAD, IMPORTEUNIDAD, IMPORTETOTAL ');
|
|
Add('from DETALLESALBARANESCLIENTE ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA) AND ');
|
|
Add('(CODIGOALBARAN = :CODIGOALBARAN) AND ');
|
|
Add('(NUMCONCEPTO = :NUMCONCEPTO) ');
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesCliente.IniciarSQLGrids;
|
|
begin
|
|
with sqlConsultarGrid do
|
|
begin
|
|
Add('select CODIGO, FECHAALTA, FECHAALBARAN,');
|
|
Add('CODIGOCLIENTE, NIFCIF, NOMBRE, IMPORTETOTAL ');
|
|
Add('from ALBARANESCLIENTE ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
end;
|
|
|
|
with sqlConsultarGridDetalles do
|
|
begin
|
|
Add('select CODIGOEMPRESA, CODIGOALBARAN, NUMCONCEPTO, CODIGOARTICULO, REFERENCIA, ');
|
|
Add('DESCRIPCION, CANTIDAD, IMPORTEUNIDAD, IMPORTETOTAL ');
|
|
Add('from DETALLESALBARANESCLIENTE ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
Add('AND (CODIGOALBARAN = :CODIGOALBARAN)');
|
|
Add('order by CODIGOALBARAN, NUMCONCEPTO');
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaAlbaranesCliente.IniciarSQLAlbaran;
|
|
begin
|
|
with sqlInsertar do
|
|
begin
|
|
Add('INSERT INTO ALBARANESCLIENTE ');
|
|
Add('(CODIGOEMPRESA, CODIGO, FECHAALTA, FECHAALBARAN, ');
|
|
Add('CODIGOCLIENTE, NIFCIF, NOMBRE, ');
|
|
Add('CALLE, NUMERO, PISO, ');
|
|
Add('CODIGOPOSTAL, POBLACION, PROVINCIA, ');
|
|
Add('TELEFONO1, TELEFONO2, MOVIL1, ');
|
|
Add('MOVIL2, FAX, PERSONACONTACTO, ');
|
|
Add('BASEIMPONIBLE, DESCUENTO, IMPORTEDESCUENTO, ');
|
|
Add('IVA, IMPORTEIVA, IMPORTETOTAL, OBSERVACIONES,');
|
|
Add('USUARIO) VALUES ');
|
|
Add('(:CODIGOEMPRESA, :CODIGO, :FECHAALTA, ');
|
|
Add(':FECHAALBARAN, ');
|
|
Add(':CODIGOCLIENTE, :NIFCIF, ');
|
|
Add(':NOMBRE, :CALLE, :NUMERO, ');
|
|
Add(':PISO, :CODIGOPOSTAL, ');
|
|
Add(':POBLACION, :PROVINCIA, ');
|
|
Add(':TELEFONO1, :TELEFONO2, ');
|
|
Add(':MOVIL1, :MOVIL2, ');
|
|
Add(':FAX, :PERSONACONTACTO, ');
|
|
Add(':BASEIMPONIBLE, :DESCUENTO, ');
|
|
Add(':IMPORTEDESCUENTO, :IVA, ');
|
|
Add(':IMPORTEIVA, :IMPORTETOTAL, ');
|
|
Add(':OBSERVACIONES, :USUARIO)');
|
|
end;
|
|
|
|
with sqlModificar do
|
|
begin
|
|
Add('UPDATE ALBARANESCLIENTE SET ');
|
|
Add('FECHAALBARAN = :FECHAALBARAN, ');
|
|
Add('CODIGOCLIENTE = :CODIGOCLIENTE, ');
|
|
Add('NIFCIF = :NIFCIF, ');
|
|
Add('NOMBRE = :NOMBRE, ');
|
|
Add('CALLE = :CALLE, ');
|
|
Add('NUMERO = :NUMERO, ');
|
|
Add('PISO = :PISO, ');
|
|
Add('CODIGOPOSTAL = :CODIGOPOSTAL, ');
|
|
Add('POBLACION = :POBLACION, ');
|
|
Add('PROVINCIA = :PROVINCIA, ');
|
|
Add('TELEFONO1 = :TELEFONO1, ');
|
|
Add('TELEFONO2 = :TELEFONO2, ');
|
|
Add('MOVIL1 = :MOVIL1, ');
|
|
Add('MOVIL2 = :MOVIL2, ');
|
|
Add('FAX = :FAX, ');
|
|
Add('PERSONACONTACTO = :PERSONACONTACTO, ');
|
|
Add('BASEIMPONIBLE = :BASEIMPONIBLE, ');
|
|
Add('DESCUENTO = :DESCUENTO, ');
|
|
Add('IMPORTEDESCUENTO = :IMPORTEDESCUENTO, ');
|
|
Add('IVA = :IVA, ');
|
|
Add('IMPORTEIVA = :IMPORTEIVA, ');
|
|
Add('IMPORTETOTAL = :IMPORTETOTAL, ');
|
|
Add('OBSERVACIONES = :OBSERVACIONES ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
Add(' AND (CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlEliminar do
|
|
begin
|
|
Add('delete from ALBARANESCLIENTE ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
Add(' AND (CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlConsultar do
|
|
begin
|
|
Add('SELECT * FROM ALBARANESCLIENTE ');
|
|
Add('WHERE (CODIGOEMPRESA = :CODIGOEMPRESA)');
|
|
Add(' AND (CODIGO = :CODIGO)');
|
|
end;
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.InsertarContador: boolean;
|
|
begin
|
|
Result := GestorContadores.InsertarContador(contAlbaranesCliente);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.ValidarCodigo(Codigo: String): Boolean;
|
|
begin
|
|
Result := GestorContadores.validarCodigo(contAlbaranesCliente, Codigo);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.DecrementarCodigo: boolean;
|
|
begin
|
|
Result := GestorContadores.decrementarValor(contAlbaranesCliente);
|
|
end;
|
|
|
|
function TdmTablaAlbaranesCliente.EsUltima(Codigo: 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('select count(*) ');
|
|
SQL.Add('from ALBARANESCLIENTE ');
|
|
SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA ');
|
|
SQL.Add('and CODIGO > :CODIGO ');
|
|
try
|
|
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
|
|
ParamByName('CODIGO').AsString := Codigo;
|
|
Prepare;
|
|
ExecQuery;
|
|
if Fields[0].AsInteger = 0 then
|
|
Result := True;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
{ TDatosAlbaranCliente }
|
|
|
|
procedure TDatosAlbaranCliente.AssignTo(Dest: TPersistent);
|
|
begin
|
|
inherited;
|
|
//
|
|
end;
|
|
|
|
constructor TDatosAlbaranCliente.Create(CodigoAlbaran: String);
|
|
begin
|
|
inherited Create;
|
|
Codigo := CodigoAlbaran;
|
|
ObtenerDatos;
|
|
end;
|
|
|
|
constructor TDatosAlbaranCliente.Create;
|
|
begin
|
|
inherited Create;
|
|
end;
|
|
|
|
destructor TDatosAlbaranCliente.Destroy;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TDatosAlbaranCliente.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 ALBARANESCLIENTE ');
|
|
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
|
|
FechaAlta := FieldByName('FECHAALTA').AsDateTime;
|
|
Usuario := FieldByName('USUARIO').AsString;
|
|
FechaAlbaran := FieldByName('FECHAALBARAN').AsDateTime;
|
|
CodigoCliente := FieldByName('CODIGOCLIENTE').AsString;
|
|
NifCif := FieldByName('NIFCIF').AsString;
|
|
Nombre := FieldByName('NOMBRE').AsString;
|
|
Calle := FieldByName('CALLE').AsString;
|
|
Numero := FieldByName('NUMERO').AsString;
|
|
Piso := FieldByName('PISO').AsString;
|
|
CodigoPostal := FieldByName('CODIGOPOSTAL').AsString;
|
|
Poblacion := FieldByName('POBLACION').AsString;
|
|
Provincia := FieldByName('PROVINCIA').AsString;
|
|
Telefono1 := FieldByName('TELEFONO1').AsString;
|
|
Telefono2 := FieldByName('TELEFONO2').AsString;
|
|
Movil1 := FieldByName('MOVIL1').AsString;
|
|
Movil2 := FieldByName('MOVIL2').AsString;
|
|
Fax := FieldByName('FAX').AsString;
|
|
PersonaContacto := FieldByName('PERSONACONTACTO').AsString;
|
|
BaseImponible := FieldByName('BASEIMPONIBLE').AsFloat;
|
|
Descuento := FieldByName('DESCUENTO').AsInteger;
|
|
Iva := FieldByName('IVA').AsInteger;
|
|
ImporteDescuento := FieldByName('IMPORTEDESCUENTO').AsFloat;
|
|
ImporteIva := FieldByName('IMPORTEIVA').AsFloat;
|
|
ImporteTotal := FieldByName('IMPORTETOTAL').AsFloat;
|
|
end;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
{ TListaAlbaranesCliente }
|
|
|
|
procedure TListaAlbaranesCliente.AssignTo(Dest: TPersistent);
|
|
begin
|
|
inherited;
|
|
//
|
|
end;
|
|
|
|
constructor TListaAlbaranesCliente.Create(oSQL: String);
|
|
begin
|
|
inherited Create;
|
|
FSQL := oSQL;
|
|
ObtenerLista;
|
|
end;
|
|
|
|
constructor TListaAlbaranesCliente.Create;
|
|
begin
|
|
inherited Create;
|
|
FSQL := 'select CODIGO from ALBARANESCLIENTE';
|
|
FSQL := FSQL + ' where CODIGOEMPRESA = :CODIGOEMPRESA';
|
|
ObtenerLista;
|
|
end;
|
|
|
|
function TListaAlbaranesCliente.GetAlbaran(Index: Integer): TDatosAlbaranCliente;
|
|
begin
|
|
Result := TDatosAlbaranCliente(FLista.Items[Index]);
|
|
end;
|
|
|
|
procedure TListaAlbaranesCliente.ObtenerLista;
|
|
var
|
|
oSQL : TIBSQL;
|
|
Albaran : TDatosAlbaranCliente;
|
|
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
|
|
Albaran := TDatosAlbaranCliente.Create(FieldByName('CODIGO').AsString);
|
|
FLista.Add(Albaran);
|
|
Next;
|
|
end;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end.
|