From 807d058e16d09a61abc23696580ca848de7f71e5 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 3 Dec 2007 12:38:11 +0000 Subject: [PATCH] git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@174 c93665c3-c93d-084d-9b98-7d5f4a9c3376 --- Source/Base/Utiles/uCalculosUtils.pas | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/Base/Utiles/uCalculosUtils.pas b/Source/Base/Utiles/uCalculosUtils.pas index b5eb6dea..4022049d 100644 --- a/Source/Base/Utiles/uCalculosUtils.pas +++ b/Source/Base/Utiles/uCalculosUtils.pas @@ -69,6 +69,7 @@ end; procedure DesglosarPorte(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); var Unidades: Integer; + Cantidad_Articulos: Integer; ImporteUnidad: Currency; ImporteSobrante: Currency; ABookmark : TBookmark; @@ -82,10 +83,14 @@ begin ADetalles.DataTable.First; Unidades := 0; + Cantidad_Articulos := 0; while not ADetalles.DataTable.eof do begin if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + begin Unidades := Unidades + ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsInteger; + Inc(Cantidad_Articulos); + end; ADetalles.DataTable.Next; end; @@ -101,15 +106,17 @@ begin if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then begin ADetalles.DataTable.Edit; - ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad; + if (Cantidad_Articulos > 1) then + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad + else + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad + ImporteSobrante; + Dec(Cantidad_Articulos); ADetalles.DataTable.Post; end; ADetalles.DataTable.Next; end; - ADetalles.DataTable.Edit; - ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad + ImporteSobrante; - ADetalles.DataTable.Post; + finally ADetalles.DataTable.EnableEventHandlers;