From 078f444359fad0d41b89623fd29e80e38987d1cc Mon Sep 17 00:00:00 2001 From: david Date: Wed, 2 Jan 2008 14:37:04 +0000 Subject: [PATCH] =?UTF-8?q?uControllerDetallesArticulos.pas:=20Nueva=20fun?= =?UTF-8?q?cionalidad=20para=20a=C3=B1adir=20un=20art=C3=ADculo=20a=20una?= =?UTF-8?q?=20lista=20de=20detalles=20pudiendo=20elegir=20si=20se=20insert?= =?UTF-8?q?a=20una=20nueva=20fila=20o=20utilizando=20la=20actual.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@88 f4e31baf-9722-1c47-927c-6f952f962d4b --- .../uControllerDetallesArticulos.pas | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas index c437830d..0aee8556 100644 --- a/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas +++ b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas @@ -13,8 +13,8 @@ type TEnumReferencia = (tCliente, tProveedor); IControllerDetallesArticulos = interface(IControllerDetallesBase) - ['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}'] - procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); + ['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}'] + 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; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload; procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); @@ -39,7 +39,7 @@ type public function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; 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 CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable); procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); @@ -70,7 +70,7 @@ begin ADetalles.DataTable.First; with ADetalles.DataTable do begin - while not Eof do + while not EOF do begin Edit; AArticulos.DataTable.First; @@ -129,10 +129,10 @@ function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTyped var AArticulo: IBizArticulo; begin -{ - 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 -} + { + 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 + } Result := False; BeginUpdate(ADetalles); @@ -155,16 +155,20 @@ begin end; end; -procedure TControllerDetallesArticulos.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); +procedure TControllerDetallesArticulos.AnadirArticulos( + ADetalles: IDAStronglyTypedDataTable; const ANuevaFila: Boolean); var AArticulos: IBizArticulo; begin if Assigned(ADetalles) then begin try - AArticulos := (FArticulosController.BuscarTodos as IBizArticulo); - AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir', True); - Add(ADetalles, AArticulos); + AArticulos := (FArticulosController.BuscarTodos as IBizArticulo); + AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir', True); + if ANuevaFila then + Add(ADetalles, AArticulos) + else + RellenarDetalle(ADetalles, AArticulos); finally AArticulos := Nil; end;