uControllerDetallesArticulos.pas: Nueva funcionalidad para añadir un artículo a una lista de detalles pudiendo elegir si se inserta una nueva fila o utilizando la actual.

git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@88 f4e31baf-9722-1c47-927c-6f952f962d4b
This commit is contained in:
David Arranz 2008-01-02 14:37:04 +00:00
parent 80cf052f33
commit 078f444359

View File

@ -13,8 +13,8 @@ type
TEnumReferencia = (tCliente, tProveedor); TEnumReferencia = (tCliente, tProveedor);
IControllerDetallesArticulos = interface(IControllerDetallesBase) IControllerDetallesArticulos = interface(IControllerDetallesBase)
['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}'] ['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}']
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True);
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload; function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload; function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
@ -39,7 +39,7 @@ type
public public
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload; function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload; function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload;
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); virtual; procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True);
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable); procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable);
procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
@ -70,7 +70,7 @@ begin
ADetalles.DataTable.First; ADetalles.DataTable.First;
with ADetalles.DataTable do with ADetalles.DataTable do
begin begin
while not Eof do while not EOF do
begin begin
Edit; Edit;
AArticulos.DataTable.First; AArticulos.DataTable.First;
@ -129,10 +129,10 @@ function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTyped
var var
AArticulo: IBizArticulo; AArticulo: IBizArticulo;
begin begin
{ {
Añade el artículo con la referencia pasada por parametro a los detalles pasados por parametro Añade el artículo con la referencia pasada por parametro a los detalles pasados por parametro
En el caso de asignar un AClienteID el articulo debe contener el descuento para ese cliente En el caso de asignar un AClienteID el articulo debe contener el descuento para ese cliente
} }
Result := False; Result := False;
BeginUpdate(ADetalles); BeginUpdate(ADetalles);
@ -155,16 +155,20 @@ begin
end; end;
end; end;
procedure TControllerDetallesArticulos.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); procedure TControllerDetallesArticulos.AnadirArticulos(
ADetalles: IDAStronglyTypedDataTable; const ANuevaFila: Boolean);
var var
AArticulos: IBizArticulo; AArticulos: IBizArticulo;
begin begin
if Assigned(ADetalles) then if Assigned(ADetalles) then
begin begin
try try
AArticulos := (FArticulosController.BuscarTodos as IBizArticulo); AArticulos := (FArticulosController.BuscarTodos as IBizArticulo);
AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir', True); AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir', True);
Add(ADetalles, AArticulos); if ANuevaFila then
Add(ADetalles, AArticulos)
else
RellenarDetalle(ADetalles, AArticulos);
finally finally
AArticulos := Nil; AArticulos := Nil;
end; end;