From e34e8d9aa61b9819ebe4d7a2f91d83bb8f2025e8 Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 6 Feb 2008 18:02:35 +0000 Subject: [PATCH] Arreglo final de cantidades en los detalles para ordenes de devolucion, y abonos (Cambiar en Luis y Acana) git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@253 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- .../uDetallesAlbaranClienteController.pas | 10 +-- .../Views/uEditorAlbaranCliente.pas | 3 - .../Views/uViewDetallesAlbaranCliente.dfm | 72 +++++++++++++++---- .../Views/uViewDetallesAlbaranCliente.pas | 18 ++--- .../uDetallesAlbaranProveedorController.pas | 10 +-- .../Views/uEditorAlbaranProveedor.pas | 3 - .../Views/uViewDetallesAlbaranProveedor.dfm | 3 +- .../Views/uViewDetallesAlbaranProveedor.pas | 18 ++--- .../uControllerDetallesArticulos.pas | 39 ++++++---- .../FacturasCliente_controller.dproj | 63 +++------------- .../uDetallesFacturaClienteController.pas | 10 +-- .../Views/FacturasCliente_view.dproj | 2 +- .../Views/uEditorFacturaCliente.dfm | 49 +++++-------- .../Views/uEditorFacturaCliente.pas | 5 -- .../Views/uViewDetallesFacturaCliente.dfm | 1 - .../Views/uViewDetallesFacturaCliente.pas | 18 ++--- .../uDetallesFacturaProveedorController.pas | 10 +-- .../Views/uEditorFacturaProveedor.pas | 5 -- .../Views/uViewDetallesFacturaProveedor.dfm | 1 - .../Views/uViewDetallesFacturaProveedor.pas | 18 ++--- 20 files changed, 175 insertions(+), 183 deletions(-) diff --git a/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas index 038c49c3..60890c0f 100644 --- a/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas +++ b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas @@ -9,7 +9,7 @@ uses type IDetallesAlbaranClienteController = interface(IControllerDetallesArticulos) ['{6AD99D47-2856-47B1-9620-DD115726B0E1}'] - procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True); overload; + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; @@ -31,7 +31,7 @@ type function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; public - procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True); overload; + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; constructor Create; override; destructor Destroy; override; @@ -60,7 +60,7 @@ begin end; end; -procedure TDetallesAlbaranClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean); +procedure TDetallesAlbaranClienteController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente; const ANuevaFila :Boolean; const ACantidad: Integer); var AArticulos: IBizArticulo; begin @@ -73,12 +73,12 @@ begin if ANuevaFila then begin AArticulos := (FArticulosController as IArticulosAlbaranClienteController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a este albarán de cliente', True); - Add(ADetalles, AArticulos) + Add(ADetalles, AArticulos, ACantidad) end else begin AArticulos := (FArticulosController as IArticulosAlbaranClienteController).ElegirArticulos(AArticulos, 'Elija el artículo que desea añadir a este albarán de cliente', False); - RellenarDetalle(ADetalles, AArticulos); + RellenarDetalle(ADetalles, AArticulos, ACantidad); end; finally diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas index 4b198fca..28386638 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas @@ -275,9 +275,6 @@ begin if (FAlbaran.Detalles.RecordCount > 0) then begin FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Cliente); - //En caso de ser una orden de devolucion también debe cambiar el signo a los detalles - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - Controller.DetallesController.CambiarSignoDetalles(FAlbaran.Detalles); end; finally diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm index c90d6d2e..405b644b 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm @@ -2,29 +2,75 @@ inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente inherited ToolBar1: TToolBar Height = 95 ExplicitHeight = 95 - inherited ToolButton12: TToolButton [10] + inherited FontName: TJvFontComboBox [4] + Left = 56 + Top = 22 + ExplicitLeft = 56 + ExplicitTop = 22 end - inherited ToolButton7: TToolButton [11] + inherited ToolButton14: TToolButton [5] + Left = 201 + Wrap = False + ExplicitLeft = 201 + end + inherited FontSize: TEdit + Left = 266 + Top = 22 + ExplicitLeft = 266 + ExplicitTop = 22 + end + inherited UpDown1: TUpDown + Left = 308 + Top = 22 + ExplicitLeft = 308 + ExplicitTop = 22 + end + inherited ToolButton13: TToolButton + Left = 325 + Top = 22 + ExplicitLeft = 325 + ExplicitTop = 22 + end + inherited ToolButton11: TToolButton [9] + Left = 333 + Top = 22 + ExplicitLeft = 333 + ExplicitTop = 22 + end + inherited ToolButton12: TToolButton [10] + Left = 0 + Top = 22 + Wrap = True + ExplicitLeft = 0 + ExplicitTop = 22 + ExplicitHeight = 27 + end + inherited ToolButton9: TToolButton [11] Left = 0 Top = 49 + ExplicitLeft = 0 ExplicitTop = 49 end - inherited ToolButton8: TToolButton [12] - Left = 67 + inherited ToolButton10: TToolButton [12] + Left = 145 Top = 49 - ExplicitLeft = 67 + ExplicitLeft = 145 ExplicitTop = 49 end - inherited ToolButton9: TToolButton - Left = 150 - ExplicitLeft = 150 + inherited ToolButton6: TToolButton [13] + Left = 270 + Top = 49 + ExplicitLeft = 270 + ExplicitTop = 49 end - inherited ToolButton10: TToolButton - Left = 295 + inherited ToolButton7: TToolButton [14] + Left = 336 + Top = 49 Wrap = True - ExplicitLeft = 295 + ExplicitLeft = 336 + ExplicitTop = 49 end - inherited ToolButton11: TToolButton + inherited ToolButton8: TToolButton [15] Left = 0 Top = 71 ExplicitLeft = 0 @@ -34,6 +80,7 @@ inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente inherited cxGrid: TcxGrid Top = 121 Height = 183 + ExplicitHeight = 210 inherited cxGridView: TcxGridDBTableView inherited cxGridViewTIPO: TcxGridDBColumn Visible = False @@ -43,6 +90,7 @@ inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente end inherited TBXDock1: TTBXDock Top = 95 + ExplicitTop = 68 inherited TBXToolbar1: TTBXToolbar DockPos = 0 inherited TBXSubmenuItem1: TTBXSubmenuItem diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas index 4af2bb27..cbf1f4a4 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas @@ -46,18 +46,18 @@ uses uDetallesAlbaranClienteController, uViewDetallesBase; function TfrViewDetallesAlbaranCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; begin - Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID); - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - (Controller as IDetallesAlbaranClienteController).CambiarSignoDetalles(Detalles, False); + Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID, -1) + else + Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID); end; procedure TfrViewDetallesAlbaranCliente.AnadirArticulosInterno; begin - (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente); - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - (Controller as IDetallesAlbaranClienteController).CambiarSignoDetalles(Detalles, False); + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, true, -1) + else + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente); end; function TfrViewDetallesAlbaranCliente.GetAlbaran: IBizAlbaranCliente; @@ -67,10 +67,10 @@ end; procedure TfrViewDetallesAlbaranCliente.RellenarArticulosInterno; begin - (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False); - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - (Controller as IDetallesAlbaranClienteController).CambiarSignoDetalles(Detalles, False); + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False, -1) + else + (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False); end; procedure TfrViewDetallesAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas index ed3b03a2..bbc02d18 100644 --- a/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas +++ b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas @@ -9,7 +9,7 @@ uses type IDetallesAlbaranProveedorController = interface(IControllerDetallesArticulos) ['{6E35D49A-C78D-481D-93E9-859CD27EB79F}'] - procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True); overload; + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; @@ -31,7 +31,7 @@ type function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; public - procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True); overload; + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload; procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; constructor Create; override; destructor Destroy; override; @@ -61,7 +61,7 @@ begin end; end; -procedure TDetallesAlbaranProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean); +procedure TDetallesAlbaranProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor; const ANuevaFila :Boolean; const ACantidad: Integer); var AArticulos: IBizArticulo; begin @@ -74,12 +74,12 @@ begin if ANuevaFila then begin AArticulos := (FArticulosController as IArticulosAlbaranProveedorController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a este albarán de proveedor', True, AProveedor); - Add(ADetalles, AArticulos) + Add(ADetalles, AArticulos, ACantidad) end else begin AArticulos := (FArticulosController as IArticulosAlbaranProveedorController).ElegirArticulos(AArticulos, 'Elija el artículo que desea añadir a este albarán de proveedor', False, AProveedor); - RellenarDetalle(ADetalles, AArticulos); + RellenarDetalle(ADetalles, AArticulos, ACantidad); end; finally diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas index e5bc3c67..fb1d8781 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas @@ -239,9 +239,6 @@ begin if (FAlbaran.Detalles.RecordCount > 0) then begin FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Proveedor); - //En caso de ser una orden de devolucion también debe cambiar el signo a los detalles - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - Controller.DetallesController.CambiarSignoDetalles(FAlbaran.Detalles); end; end; end; diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm index 00cdae0c..b9700f08 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm @@ -80,7 +80,7 @@ inherited frViewDetallesAlbaranProveedor: TfrViewDetallesAlbaranProveedor inherited cxGrid: TcxGrid Top = 121 Height = 183 - ExplicitHeight = 205 + ExplicitTop = 99 inherited cxGridView: TcxGridDBTableView inherited cxGridViewIMPORTENETO: TcxGridDBColumn Properties.ReadOnly = False @@ -89,7 +89,6 @@ inherited frViewDetallesAlbaranProveedor: TfrViewDetallesAlbaranProveedor end inherited TBXDock1: TTBXDock Top = 95 - ExplicitTop = 68 inherited TBXToolbar1: TTBXToolbar inherited TBXSubmenuItem1: TTBXSubmenuItem Visible = False diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas index c7ec0e0f..b932889e 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas @@ -45,18 +45,18 @@ uses uDetallesAlbaranProveedorController, uViewDetallesBase; function TfrViewDetallesAlbaranProveedor.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; begin - Result := (Controller as IDetallesAlbaranProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia); - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - (Controller as IDetallesAlbaranProveedorController).CambiarSignoDetalles(Detalles, False); + Result := (Controller as IDetallesAlbaranProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, -1, -1) + else + Result := (Controller as IDetallesAlbaranProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia); end; procedure TfrViewDetallesAlbaranProveedor.AnadirArticulosInterno; begin - (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor); - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - (Controller as IDetallesAlbaranProveedorController).CambiarSignoDetalles(Detalles); + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor, true, -1) + else + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor); end; function TfrViewDetallesAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; @@ -66,10 +66,10 @@ end; procedure TfrViewDetallesAlbaranProveedor.RellenarArticulosInterno; begin - (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor, False); - if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then - (Controller as IDetallesAlbaranProveedorController).CambiarSignoDetalles(Detalles); + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor, False, -1) + else + (Controller as IDetallesAlbaranProveedorController).AnadirArticulos(Detalles, Albaran.Proveedor, False); end; procedure TfrViewDetallesAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor); diff --git a/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas index 7d4e0733..e9519f82 100644 --- a/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas +++ b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas @@ -15,7 +15,7 @@ type IControllerDetallesArticulos = interface(IControllerDetallesBase) ['{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; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1; const ACantidad: Integer = 1): Boolean; overload; procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True); procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String); @@ -30,13 +30,14 @@ type procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; procedure RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; - procedure RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; - procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; + procedure RellenarCantidad(ADetalles: IDAStronglyTypedDataTable; const ACantidad: Integer); virtual; + procedure RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Integer = 1); virtual; + procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Integer = 1); overload; procedure AsignarController; virtual; 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; const ACantidad: Integer = 1): Boolean; overload; procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True); virtual; procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True); @@ -57,6 +58,8 @@ uses DB, Dialogs, cxControls, SysUtils, uDAInterfaces, uCalculosUtils, schArticu { TControllerDetallesArticulos } procedure TControllerDetallesArticulos.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +var + ACantidad: Integer; begin if (Assigned(ADetalles) and Assigned(AArticulos)) then begin @@ -74,7 +77,11 @@ begin AArticulos.DataTable.First; try if AArticulos.DataTable.Locate(CAMPO_ID, FieldByName(CAMPO_ID_ARTICULOS).AsVariant, []) then - RellenarDetalle(ADetalles, AArticulos); + begin + //Para mantener la cantidad que ya tuviera el detalle se debe guardar y volver a poner + ACantidad := ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsInteger; + RellenarDetalle(ADetalles, AArticulos, ACantidad); + end; except on E: Exception do ShowMessage(E.Message); @@ -90,7 +97,7 @@ begin end; end; -procedure TControllerDetallesArticulos.Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +procedure TControllerDetallesArticulos.Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Integer); begin if Assigned(ADetalles) and Assigned(AArticulos) then begin @@ -110,7 +117,7 @@ begin while not EOF do begin Self.Add(ADetalles, TIPO_DETALLE_CONCEPTO); - RellenarDetalle(ADetalles, AArticulos); + RellenarDetalle(ADetalles, AArticulos, ACantidad); Next; end; end; @@ -250,7 +257,7 @@ begin end; end; -function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; +function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1; const ACantidad: Integer = 1): Boolean; var AArticulo: IBizArticulo; begin @@ -264,7 +271,7 @@ begin try case TipoReferencia of tCliente: AArticulo := FArticulosController.BuscarReferencia(Referencia, AClienteID); - tProveedor: AArticulo := FArticulosController.BuscarReferenciaProveedor(Referencia, AClienteID) + tProveedor: AArticulo := FArticulosController.BuscarReferenciaProveedor(Referencia, AClienteID) end; if Assigned(AArticulo) then @@ -272,7 +279,7 @@ begin AArticulo.DataTable.Active := True; if (AArticulo.RecordCount > 0) then begin - RellenarDetalle(ADetalles, AArticulo); + RellenarDetalle(ADetalles, AArticulo, ACantidad); Result := True; end; end; @@ -287,7 +294,15 @@ begin // Procedimiento que en los hijos se sobreescribirá para rellenar otros campos según necesidades end; -procedure TControllerDetallesArticulos.RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +procedure TControllerDetallesArticulos.RellenarCantidad(ADetalles: IDAStronglyTypedDataTable; const ACantidad: Integer); +begin + if Assigned(ADetalles) then + begin + ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsInteger := ACantidad; + end; +end; + +procedure TControllerDetallesArticulos.RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Integer); begin if Assigned(ADetalles) then begin @@ -297,6 +312,7 @@ begin ADetalles.DataTable.Edit; RellenarGenerales(ADetalles, AArticulos); + RellenarCantidad(ADetalles, ACantidad); RellenarImportes(ADetalles, AArticulos); RellenarOtros(ADetalles, AArticulos); @@ -315,7 +331,6 @@ begin ADetalles.DataTable.FieldByName(CAMPO_REFERENCIA).AsVariant := AArticulos.REFERENCIA; ADetalles.DataTable.FieldByName(CAMPO_REFERENCIA_PROVEEDOR).AsVariant := AArticulos.REFERENCIA_PROV; ADetalles.DataTable.FieldByName(CAMPO_CONCEPTO).AsVariant := AArticulos.DESCRIPCION; - ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsInteger := 1; end; end; diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj index 1cbc678a..37905b86 100644 --- a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj @@ -41,62 +41,22 @@ Delphi.Personality Package - - False - True - False - - - True - False - False - - - True - False - 1 - 0 - 0 - 0 - False - False - False - False - False - 3082 - 1252 - - - - - 1.0.0.0 - - - - - - 1.0.0.0 - - - - FacturasCliente_controller.dpk - - +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0FacturasCliente_controller.dpk MainSource - - - - - - - - - + + + + + + + + + @@ -109,10 +69,9 @@ -