From 0b5b1ac930d448facb783ca2926ed12aa8f26beb Mon Sep 17 00:00:00 2001 From: roberto Date: Tue, 3 Jul 2007 18:57:02 +0000 Subject: [PATCH] =?UTF-8?q?Varios=20cambios=20a=20petici=C3=B3n=20de=20Lui?= =?UTF-8?q?s=20Le=C3=B3n,=20comisiones,=20albaranes=20de=20cliente,=20info?= =?UTF-8?q?rme=20de=20facturas=20de=20cliente,=20entre=20otros?= 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.LuisLeon_FactuGES/trunk@73 c93665c3-c93d-084d-9b98-7d5f4a9c3376 --- Database/FACTUGES.FDB | Bin 3727360 -> 3727360 bytes Database/VISTAS.SQL | 13 +- .../Debug/Servidor/Informes/InfComisiones.fr3 | 30 +- .../Informes/InfComisionesDesglosado.fr3 | 55 ++ .../Servidor/Informes/InfFacturaCliente.fr3 | 58 +- Output/Debug/Servidor/config.ini | 2 +- .../Views/uViewAlbaranCliente.dfm | 113 ++-- .../Views/uViewAlbaranCliente.pas | 83 ++- .../Data/uDataModuleAlbaranesProveedor.dfm | 33 +- .../schAlbaranesProveedorClient_Intf.pas | 248 ++++++--- .../schAlbaranesProveedorServer_Intf.pas | 160 ++++-- .../Servidor/srvAlbaranesProveedor_Impl.dfm | 235 ++++++-- .../Views/uEditorAlbaranProveedor.dfm | 40 +- .../Views/uEditorAlbaranProveedor.pas | 2 +- .../Views/uEditorAlbaranesProveedor.pas | 4 +- .../Views/uViewAlbaranProveedor.dfm | 110 +++- .../Views/uViewAlbaranProveedor.pas | 8 +- .../Views/uViewAlbaranesDevProveedor.dfm | 29 +- .../Views/uViewAlbaranesDevProveedor.pas | 2 +- .../Views/uViewAlbaranesProveedor.dfm | 27 +- .../Views/uViewAlbaranesProveedor.pas | 6 +- .../Controller/uComisionesController.pas | 35 +- .../uComisionesReportController.pas | 16 +- .../Comisiones/Data/uDataModuleComisiones.pas | 6 +- .../Data/uIDataModuleComisionesReport.pas | 2 +- .../Reports/uRptComisiones_Server.dfm | 527 +++++++++++++++++- .../Reports/uRptComisiones_Server.pas | 22 +- .../Servidor/srvComisiones_Impl.pas | 6 +- .../Comisiones/Views/uEditorComision.dfm | 30 +- .../Comisiones/Views/uEditorComision.pas | 10 +- .../Comisiones/Views/uEditorComisiones.pas | 10 +- .../Views/uEditorComisionesReport.dfm | 3 - .../Views/uEditorComisionesReport.pas | 2 +- .../Controller/uFacturasClienteController.pas | 6 +- .../Reports/uRptFacturasCliente_Server.dfm | 7 +- .../uFacturasProveedorController.pas | 17 +- Source/Servicios/FactuGES.RODL | 2 + Source/Servicios/FactuGES_Intf.pas | 10 +- Source/Servicios/FactuGES_Invk.pas | 7 +- Source/Servicios/RODLFILE.res | Bin 23417 -> 23496 bytes 40 files changed, 1484 insertions(+), 492 deletions(-) create mode 100644 Output/Debug/Servidor/Informes/InfComisionesDesglosado.fr3 diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB index 3a294fe01fe57b3095e16cc30d46c9981a6bf78a..6be52e897262ac31f99d410c38400b0b6bfef24a 100644 GIT binary patch delta 178979 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 oz<?-Jv;-zWniiF-bl0}64uk~ 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

    Fb)LR2i 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 diff --git a/Database/VISTAS.SQL b/Database/VISTAS.SQL index 22c538a8..28cc580a 100644 --- a/Database/VISTAS.SQL +++ b/Database/VISTAS.SQL @@ -326,13 +326,15 @@ CREATE VIEW V_ALBARANES_PROVEEDOR( NOMBRE, FECHA_ALBARAN, REFERENCIA, + REFERENCIA_PROVEEDOR, TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO, REF_PED_PROVEEDOR, ID_FACTURA, - REF_FAC_PROVEEDOR, + REF_FACTURA, + REF_FACTURA_PROV, CALLE, CODIGO_POSTAL, POBLACION, @@ -362,13 +364,15 @@ SELECT V_PROVEEDORES.NOMBRE, ALBARANES_PROVEEDOR.FECHA_ALBARAN, ALBARANES_PROVEEDOR.REFERENCIA, + ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, CASE WHEN (ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0) THEN 'D' ELSE 'A' END AS TIPO, ALBARANES_PROVEEDOR.ID_ALMACEN, ALMACENES.NOMBRE AS NOMBRE_ALMACEN, ALBARANES_PROVEEDOR.ID_PEDIDO, PEDIDOS_PROVEEDOR.REFERENCIA AS REF_PED_PROVEEDOR, ALBARANES_PROVEEDOR.ID_FACTURA, - FACTURAS_PROVEEDOR.REFERENCIA AS REF_FAC_PROVEEDOR, + FACTURAS_PROVEEDOR.REFERENCIA AS REF_FACTURA, + ALBARANES_PROVEEDOR.REF_FACTURA_PROV, ALBARANES_PROVEEDOR.CALLE, ALBARANES_PROVEEDOR.CODIGO_POSTAL, ALBARANES_PROVEEDOR.POBLACION, @@ -859,8 +863,9 @@ LEFT JOIN FACTURAS_CLIENTE_DETALLES ON (FACTURAS_CLIENTE_DETALLES.ID_FACTURA = V LEFT JOIN ARTICULOS ON (ARTICULOS.ID = FACTURAS_CLIENTE_DETALLES.ID_ARTICULO) LEFT JOIN AGENTES_COMISIONES ON ((AGENTES_COMISIONES.ID_AGENTE = V_FACTURAS_CLIENTE.ID_AGENTE) AND (AGENTES_COMISIONES.ID_PROVEEDOR = ARTICULOS.ID_PROVEEDOR)) - -WHERE (FACTURAS_CLIENTE_DETALLES.TIPO_DETALLE = 'Concepto'); +WHERE (FACTURAS_CLIENTE_DETALLES.TIPO_DETALLE = 'Concepto') +AND (ARTICULOS.ID is not null) +AND (ARTICULOS.COMISIONABLE = 1); /* Situación de los albaranes de cliente */ diff --git a/Output/Debug/Servidor/Informes/InfComisiones.fr3 b/Output/Debug/Servidor/Informes/InfComisiones.fr3 index ba51d5a1..4204bffd 100644 --- a/Output/Debug/Servidor/Informes/InfComisiones.fr3 +++ b/Output/Debug/Servidor/Informes/InfComisiones.fr3 @@ -1,7 +1,7 @@ - + - + @@ -9,45 +9,39 @@ - + - - - + - + - - - + + - - + + - + - - + - - - + diff --git a/Output/Debug/Servidor/Informes/InfComisionesDesglosado.fr3 b/Output/Debug/Servidor/Informes/InfComisionesDesglosado.fr3 new file mode 100644 index 00000000..a829c84c --- /dev/null +++ b/Output/Debug/Servidor/Informes/InfComisionesDesglosado.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Output/Debug/Servidor/Informes/InfFacturaCliente.fr3 b/Output/Debug/Servidor/Informes/InfFacturaCliente.fr3 index 2aacde81..35543853 100644 --- a/Output/Debug/Servidor/Informes/InfFacturaCliente.fr3 +++ b/Output/Debug/Servidor/Informes/InfFacturaCliente.fr3 @@ -1,45 +1,45 @@ - + - - - + + + - - + + - - - - - - + + + + + + - - - + + + - - - - - - + + + + + + - + - + - + - - - + + + - + @@ -47,7 +47,7 @@ - + diff --git a/Output/Debug/Servidor/config.ini b/Output/Debug/Servidor/config.ini index 1af74a60..970246b8 100644 --- a/Output/Debug/Servidor/config.ini +++ b/Output/Debug/Servidor/config.ini @@ -1,3 +1,3 @@ [CONFIG] -APPPATH=E:\Codigo\Output\Servidor\FactuGES_Server.exe +APPPATH=E:\Codigo (Luis León)\Output\Debug\Servidor\FactuGES_Server.exe LIBPATH=GDS32.DLL diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm index fa5b1391..2867ddc3 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm @@ -54,8 +54,8 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Width = 119 end object memObservaciones: TcxDBMemo - Left = 432 - Top = 414 + Left = 431 + Top = 387 Anchors = [akLeft, akTop, akRight, akBottom] DataBinding.DataField = 'OBSERVACIONES' DataBinding.DataSource = DADataSource @@ -67,7 +67,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 22 + TabOrder = 21 Height = 253 Width = 186 end @@ -98,7 +98,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Width = 143 end inline frViewClienteAlbaran: TfrViewDatosYSeleccionCliente - Left = 432 + Left = 431 Top = 28 Width = 350 Height = 212 @@ -112,7 +112,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente ParentFont = False TabOrder = 17 ReadOnly = False - ExplicitLeft = 432 + ExplicitLeft = 431 ExplicitTop = 28 inherited dxLayoutControl1: TdxLayoutControl Align = alTop @@ -137,12 +137,12 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Width = 327 end inherited edtCodigoPostal: TcxDBTextEdit - Left = 259 - ExplicitLeft = 259 + Left = 260 + ExplicitLeft = 260 end inherited Button3: TBitBtn - Left = 149 - ExplicitLeft = 149 + Left = 150 + ExplicitLeft = 150 end end inherited DADataSource: TDADataSource @@ -201,7 +201,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Width = 162 end object eCodigoPostal: TcxDBTextEdit - Left = 337 + Left = 336 Top = 251 DataBinding.DataField = 'CODIGO_POSTAL' DataBinding.DataSource = DADataSource @@ -278,7 +278,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Width = 122 end object bElegirDireccion: TBitBtn - Left = 230 + Left = 229 Top = 359 Width = 172 Height = 23 @@ -287,7 +287,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente TabOrder = 14 end object Button1: TButton - Left = 270 + Left = 269 Top = 138 Width = 132 Height = 23 @@ -347,7 +347,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Width = 32 end object bFormasPago: TButton - Left = 270 + Left = 269 Top = 109 Width = 132 Height = 23 @@ -356,11 +356,12 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente OnClick = bFormasPagoClick end object eFechaRecepcion: TcxDBDateEdit - Left = 583 - Top = 357 + Left = 565 + Top = 330 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_RECEPCION' DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True Style.BorderColor = clWindowFrame Style.BorderStyle = ebs3D Style.Color = clWindow @@ -375,34 +376,9 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 21 + TabOrder = 20 Width = 123 end - object eFechaEnvio: TcxDBTextEdit - Left = 583 - Top = 303 - Anchors = [akLeft, akTop, akRight] - DataBinding.DataField = 'FECHA_ENVIO' - DataBinding.DataSource = DADataSource - Enabled = False - Properties.ReadOnly = False - Properties.ValidateOnEnter = True - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.Color = clWindow - Style.HotTrack = False - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleDisabled.TextColor = clWindowText - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 19 - Width = 122 - end object cbConAlmacen: TCheckBox Left = 32 Top = 418 @@ -441,15 +417,6 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente TabOrder = 16 Width = 69 end - object cbFechaRecepcion: TCheckBox - Left = 442 - Top = 330 - Width = 340 - Height = 21 - Caption = 'El cliente ha recibido y firmado este albar'#225'n el d'#237'a:' - TabOrder = 20 - OnClick = cbFechaRecepcionClick - end object eRefFacturaCli: TcxDBTextEdit Left = 116 Top = 167 @@ -477,12 +444,13 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Width = 207 end object eFechaPrevista: TcxDBDateEdit - Left = 583 + Left = 565 Top = 276 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_PREVISTA_ENVIO' DataBinding.DataSource = DADataSource Properties.ImmediatePost = True + Properties.OnValidate = eFechaPrevistaPropertiesValidate Style.BorderColor = clWindowFrame Style.BorderStyle = ebs3D Style.Color = clWindow @@ -527,6 +495,31 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente TabOrder = 1 Width = 284 end + object eFechaEnvio: TcxDBDateEdit + Left = 565 + Top = 303 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.OnValidate = eFechaEnvioPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 19 + Width = 217 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -722,33 +715,21 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente object dxLayoutControl1Item24: TdxLayoutItem AutoAligns = [aaVertical] AlignHorz = ahClient - Caption = 'Fecha prevista de salida:' + Caption = 'Fecha prevista de envio:' Offsets.Left = 10 Control = eFechaPrevista ControlOptions.ShowBorder = False end - object dxLayoutControl1Item17: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Fecha de salida del material:' + object dxLayoutControl1Item21: TdxLayoutItem + Caption = 'Fecha de envio:' Offsets.Left = 10 Control = eFechaEnvio ControlOptions.ShowBorder = False end - object dxLayoutControl1Item21: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Offsets.Left = 10 - ShowCaption = False - Control = cbFechaRecepcion - ControlOptions.AutoColor = True - ControlOptions.ShowBorder = False - end object dxLayoutControl1Item16: TdxLayoutItem AutoAligns = [] AlignHorz = ahClient Caption = 'Fecha de recepci'#243'n:' - CaptionOptions.AlignHorz = taRightJustify Offsets.Left = 10 Control = eFechaRecepcion ControlOptions.ShowBorder = False diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas index f6aa7a36..99c7413e 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas @@ -78,8 +78,6 @@ type dxLayoutControl1Item16: TdxLayoutItem; eFechaRecepcion: TcxDBDateEdit; dxLayoutControl1Group11: TdxLayoutGroup; - dxLayoutControl1Item17: TdxLayoutItem; - eFechaEnvio: TcxDBTextEdit; dxLayoutControl1Item19: TdxLayoutItem; cbConAlmacen: TCheckBox; dxLayoutControl1Item20: TdxLayoutItem; @@ -88,8 +86,6 @@ type dxLayoutControl1Item18: TdxLayoutItem; Label1: TLabel; dxLayoutControl1Group12: TdxLayoutGroup; - dxLayoutControl1Item21: TdxLayoutItem; - cbFechaRecepcion: TCheckBox; dxLayoutControl1Group10: TdxLayoutGroup; dxLayoutControl1Item22: TdxLayoutItem; eRefFacturaCli: TcxDBTextEdit; @@ -98,6 +94,8 @@ type eFechaPrevista: TcxDBDateEdit; dxLayoutControl1Item23: TdxLayoutItem; eRefCliente: TcxDBTextEdit; + dxLayoutControl1Item21: TdxLayoutItem; + eFechaEnvio: TcxDBDateEdit; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure actElegirDireccionExecute(Sender: TObject); @@ -108,12 +106,15 @@ type procedure frViewClienteAlbaranactAnadirContactoUpdate(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); procedure cbConAlmacenClick(Sender: TObject); - procedure cbFechaRecepcionClick(Sender: TObject); + procedure eFechaPrevistaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure eFechaEnvioPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); protected FAlbaran : IBizAlbaranCliente; FAlmacenesController : IAlmacenesController; FPedidoAsociado : IBizPedidoCliente; - FPedidoController : IPedidosClienteController; + FPedidoController : IPedidosClienteController; FViewClienteAlbaran : TfrViewDatosYSeleccionCliente; FFormasPagoController : IFormasPagoController; @@ -134,7 +135,8 @@ implementation uses uClientesController, uBizDireccionesContacto, uAlbaranesClienteController, - schAlbaranesClienteClient_Intf, uBizFormasPago, uBizAlmacenes, uDateUtils; + schAlbaranesClienteClient_Intf, uBizFormasPago, uBizAlmacenes, uDateUtils, + uDialogUtils; procedure TfrViewAlbaranCliente.actElegirDireccionExecute(Sender: TObject); @@ -207,20 +209,6 @@ begin end; end; -procedure TfrViewAlbaranCliente.cbFechaRecepcionClick(Sender: TObject); -begin - inherited; - if cbFechaRecepcion.Checked then - begin - eFechaRecepcion.Enabled := True; - end - else begin - eFechaRecepcion.Enabled := False; - FAlbaran.Edit; - FAlbaran.FECHA_RECEPCION := 0; - end; -end; - procedure TfrViewAlbaranCliente.CustomViewCreate(Sender: TObject); begin inherited; @@ -242,6 +230,39 @@ begin FAlmacenesController := NIL; end; +procedure TfrViewAlbaranCliente.eFechaEnvioPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + if VarIsNull(DisplayValue) or (DisplayValue = '') then + begin + if (ShowConfirmMessage('Si elimina la fecha prevista de envio, se eliminarán tambien las fechas de envio y recepción en caso de tenerlas. ¿Desea continuar?', '') = IDYES) then + eFechaRecepcion.Enabled := false + else + DisplayValue := DateToStr(eFechaEnvio.Date); + end + else + eFechaRecepcion.Enabled := true; +end; + +procedure TfrViewAlbaranCliente.eFechaPrevistaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if VarIsNull(DisplayValue) or (DisplayValue = '') then + begin + if (ShowConfirmMessage('Si elimina la fecha prevista de envio, se eliminarán tambien las fechas de envio y recepción en caso de tenerlas. ¿Desea continuar?', '') = IDYES) then + begin + eFechaEnvio.Enabled := false; + eFechaRecepcion.Enabled := false; + end + else + DisplayValue := DateToStr(eFechaPrevista.Date); + end + else + eFechaEnvio.Enabled := true; +end; + procedure TfrViewAlbaranCliente.frViewClienteAlbaranactAnadirContactoUpdate( Sender: TObject); begin @@ -286,12 +307,26 @@ begin cbConAlmacen.Checked := (FAlbaran.ID_ALMACEN > 0); cbAlmacen.Enabled := cbConAlmacen.Checked; - cbFechaRecepcion.Checked := not EsFechaVacia(FAlbaran.FECHA_RECEPCION); - eFechaRecepcion.Enabled := cbFechaRecepcion.Checked; eReferenciaPedidoCli.Enabled := False; eRefFacturaCli.Enabled := False; - + + if EsFechaVacia(FAlbaran.FECHA_PREVISTA_ENVIO) then + begin + eFechaEnvio.Enabled := false; + eFechaRecepcion.Enabled := false; + end + else + begin + eFechaEnvio.Enabled := true; + if EsFechaVacia(FAlbaran.FECHA_ENVIO) then + eFechaRecepcion.Enabled := false + else + eFechaRecepcion.Enabled := true; + end; + + + FPedidoAsociado := NIL; if (FAlbaran.ID_PEDIDO > 0) then begin diff --git a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm index c2d6c6a4..99ec2d19 100644 --- a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm @@ -154,6 +154,20 @@ object DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor Lookup = False LookupCache = False end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. provedor' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end item Name = 'TIPO' DataType = datString @@ -233,13 +247,28 @@ object DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor LookupCache = False end item - Name = 'REF_FAC_PROVEEDOR' + Name = 'REF_FACTURA' DataType = datString Size = 255 BlobType = dabtUnknown DisplayWidth = 0 + DisplayLabel = 'Referencia factura' Alignment = taLeftJustify - DictionaryEntry = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. factura prov' + Alignment = taLeftJustify + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA_PROV' InPrimaryKey = False Calculated = False Lookup = False diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas index dcd56cb8..4e18898c 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas @@ -9,11 +9,11 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferencia = '{5A05B7DE-83D2-48DC-9867-D025C26EF607}'; - RID_AlbaranesProveedor = '{17BC6E11-4D60-418A-A90E-F19D9D2F137D}'; - RID_AlbaranesProveedor_Detalles = '{93185DF7-4D33-422F-BF7D-0FC43C571F40}'; - RID_AlbaranesProveedor_Detalles_Refresh = '{671BF3C5-1B40-4883-9A26-A2C26CCEE774}'; - RID_AlbaranesProveedor_Refresh = '{46514DC4-3CC0-4300-97F0-F2CCE70B5666}'; + RID_DarReferencia = '{B11C1A92-7445-40B1-804D-75362337E091}'; + RID_AlbaranesProveedor = '{A8D01A62-F911-438F-910D-CCE57A97679A}'; + RID_AlbaranesProveedor_Detalles = '{74BC0CAC-88BE-4D83-ABE6-CCF245762256}'; + RID_AlbaranesProveedor_Detalles_Refresh = '{B8EE8C6A-F540-4124-94D2-76924081B2F3}'; + RID_AlbaranesProveedor_Refresh = '{FEBB25BC-1C6E-43E2-AEC6-B2B9656D858F}'; { Data table names } nme_DarReferencia = 'DarReferencia'; @@ -35,13 +35,15 @@ const fld_AlbaranesProveedorNOMBRE = 'NOMBRE'; fld_AlbaranesProveedorFECHA_ALBARAN = 'FECHA_ALBARAN'; fld_AlbaranesProveedorREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedorREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; fld_AlbaranesProveedorTIPO = 'TIPO'; fld_AlbaranesProveedorID_ALMACEN = 'ID_ALMACEN'; fld_AlbaranesProveedorNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; fld_AlbaranesProveedorID_PEDIDO = 'ID_PEDIDO'; fld_AlbaranesProveedorREF_PED_PROVEEDOR = 'REF_PED_PROVEEDOR'; fld_AlbaranesProveedorID_FACTURA = 'ID_FACTURA'; - fld_AlbaranesProveedorREF_FAC_PROVEEDOR = 'REF_FAC_PROVEEDOR'; + fld_AlbaranesProveedorREF_FACTURA = 'REF_FACTURA'; + fld_AlbaranesProveedorREF_FACTURA_PROV = 'REF_FACTURA_PROV'; fld_AlbaranesProveedorCALLE = 'CALLE'; fld_AlbaranesProveedorCODIGO_POSTAL = 'CODIGO_POSTAL'; fld_AlbaranesProveedorPOBLACION = 'POBLACION'; @@ -71,34 +73,36 @@ const idx_AlbaranesProveedorNOMBRE = 3; idx_AlbaranesProveedorFECHA_ALBARAN = 4; idx_AlbaranesProveedorREFERENCIA = 5; - idx_AlbaranesProveedorTIPO = 6; - idx_AlbaranesProveedorID_ALMACEN = 7; - idx_AlbaranesProveedorNOMBRE_ALMACEN = 8; - idx_AlbaranesProveedorID_PEDIDO = 9; - idx_AlbaranesProveedorREF_PED_PROVEEDOR = 10; - idx_AlbaranesProveedorID_FACTURA = 11; - idx_AlbaranesProveedorREF_FAC_PROVEEDOR = 12; - idx_AlbaranesProveedorCALLE = 13; - idx_AlbaranesProveedorCODIGO_POSTAL = 14; - idx_AlbaranesProveedorPOBLACION = 15; - idx_AlbaranesProveedorPROVINCIA = 16; - idx_AlbaranesProveedorPERSONA_CONTACTO = 17; - idx_AlbaranesProveedorTELEFONO = 18; - idx_AlbaranesProveedorIMPORTE_NETO = 19; - idx_AlbaranesProveedorIMPORTE_PORTE = 20; - idx_AlbaranesProveedorDESCUENTO = 21; - idx_AlbaranesProveedorIMPORTE_DESCUENTO = 22; - idx_AlbaranesProveedorBASE_IMPONIBLE = 23; - idx_AlbaranesProveedorIVA = 24; - idx_AlbaranesProveedorIMPORTE_IVA = 25; - idx_AlbaranesProveedorIMPORTE_TOTAL = 26; - idx_AlbaranesProveedorOBSERVACIONES = 27; - idx_AlbaranesProveedorINCIDENCIAS = 28; - idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS = 29; - idx_AlbaranesProveedorFECHA_ALTA = 30; - idx_AlbaranesProveedorFECHA_MODIFICACION = 31; - idx_AlbaranesProveedorUSUARIO = 32; - idx_AlbaranesProveedorID_FORMA_PAGO = 33; + idx_AlbaranesProveedorREFERENCIA_PROVEEDOR = 6; + idx_AlbaranesProveedorTIPO = 7; + idx_AlbaranesProveedorID_ALMACEN = 8; + idx_AlbaranesProveedorNOMBRE_ALMACEN = 9; + idx_AlbaranesProveedorID_PEDIDO = 10; + idx_AlbaranesProveedorREF_PED_PROVEEDOR = 11; + idx_AlbaranesProveedorID_FACTURA = 12; + idx_AlbaranesProveedorREF_FACTURA = 13; + idx_AlbaranesProveedorREF_FACTURA_PROV = 14; + idx_AlbaranesProveedorCALLE = 15; + idx_AlbaranesProveedorCODIGO_POSTAL = 16; + idx_AlbaranesProveedorPOBLACION = 17; + idx_AlbaranesProveedorPROVINCIA = 18; + idx_AlbaranesProveedorPERSONA_CONTACTO = 19; + idx_AlbaranesProveedorTELEFONO = 20; + idx_AlbaranesProveedorIMPORTE_NETO = 21; + idx_AlbaranesProveedorIMPORTE_PORTE = 22; + idx_AlbaranesProveedorDESCUENTO = 23; + idx_AlbaranesProveedorIMPORTE_DESCUENTO = 24; + idx_AlbaranesProveedorBASE_IMPONIBLE = 25; + idx_AlbaranesProveedorIVA = 26; + idx_AlbaranesProveedorIMPORTE_IVA = 27; + idx_AlbaranesProveedorIMPORTE_TOTAL = 28; + idx_AlbaranesProveedorOBSERVACIONES = 29; + idx_AlbaranesProveedorINCIDENCIAS = 30; + idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS = 31; + idx_AlbaranesProveedorFECHA_ALTA = 32; + idx_AlbaranesProveedorFECHA_MODIFICACION = 33; + idx_AlbaranesProveedorUSUARIO = 34; + idx_AlbaranesProveedorID_FORMA_PAGO = 35; { AlbaranesProveedor_Detalles fields } fld_AlbaranesProveedor_DetallesID = 'ID'; @@ -171,13 +175,15 @@ const fld_AlbaranesProveedor_RefreshNOMBRE = 'NOMBRE'; fld_AlbaranesProveedor_RefreshFECHA_ALBARAN = 'FECHA_ALBARAN'; fld_AlbaranesProveedor_RefreshREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedor_RefreshREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; fld_AlbaranesProveedor_RefreshTIPO = 'TIPO'; fld_AlbaranesProveedor_RefreshID_ALMACEN = 'ID_ALMACEN'; fld_AlbaranesProveedor_RefreshNOMBRE_ALMACEN = 'NOMBRE_ALMACEN'; fld_AlbaranesProveedor_RefreshID_PEDIDO = 'ID_PEDIDO'; fld_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR = 'REF_PED_PROVEEDOR'; fld_AlbaranesProveedor_RefreshID_FACTURA = 'ID_FACTURA'; - fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR = 'REF_FAC_PROVEEDOR'; + fld_AlbaranesProveedor_RefreshREF_FACTURA = 'REF_FACTURA'; + fld_AlbaranesProveedor_RefreshREF_FACTURA_PROV = 'REF_FACTURA_PROV'; fld_AlbaranesProveedor_RefreshCALLE = 'CALLE'; fld_AlbaranesProveedor_RefreshCODIGO_POSTAL = 'CODIGO_POSTAL'; fld_AlbaranesProveedor_RefreshPOBLACION = 'POBLACION'; @@ -207,39 +213,41 @@ const idx_AlbaranesProveedor_RefreshNOMBRE = 3; idx_AlbaranesProveedor_RefreshFECHA_ALBARAN = 4; idx_AlbaranesProveedor_RefreshREFERENCIA = 5; - idx_AlbaranesProveedor_RefreshTIPO = 6; - idx_AlbaranesProveedor_RefreshID_ALMACEN = 7; - idx_AlbaranesProveedor_RefreshNOMBRE_ALMACEN = 8; - idx_AlbaranesProveedor_RefreshID_PEDIDO = 9; - idx_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR = 10; - idx_AlbaranesProveedor_RefreshID_FACTURA = 11; - idx_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR = 12; - idx_AlbaranesProveedor_RefreshCALLE = 13; - idx_AlbaranesProveedor_RefreshCODIGO_POSTAL = 14; - idx_AlbaranesProveedor_RefreshPOBLACION = 15; - idx_AlbaranesProveedor_RefreshPROVINCIA = 16; - idx_AlbaranesProveedor_RefreshPERSONA_CONTACTO = 17; - idx_AlbaranesProveedor_RefreshTELEFONO = 18; - idx_AlbaranesProveedor_RefreshIMPORTE_NETO = 19; - idx_AlbaranesProveedor_RefreshIMPORTE_PORTE = 20; - idx_AlbaranesProveedor_RefreshDESCUENTO = 21; - idx_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO = 22; - idx_AlbaranesProveedor_RefreshBASE_IMPONIBLE = 23; - idx_AlbaranesProveedor_RefreshIVA = 24; - idx_AlbaranesProveedor_RefreshIMPORTE_IVA = 25; - idx_AlbaranesProveedor_RefreshIMPORTE_TOTAL = 26; - idx_AlbaranesProveedor_RefreshOBSERVACIONES = 27; - idx_AlbaranesProveedor_RefreshINCIDENCIAS = 28; - idx_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS = 29; - idx_AlbaranesProveedor_RefreshFECHA_ALTA = 30; - idx_AlbaranesProveedor_RefreshFECHA_MODIFICACION = 31; - idx_AlbaranesProveedor_RefreshUSUARIO = 32; - idx_AlbaranesProveedor_RefreshID_FORMA_PAGO = 33; + idx_AlbaranesProveedor_RefreshREFERENCIA_PROVEEDOR = 6; + idx_AlbaranesProveedor_RefreshTIPO = 7; + idx_AlbaranesProveedor_RefreshID_ALMACEN = 8; + idx_AlbaranesProveedor_RefreshNOMBRE_ALMACEN = 9; + idx_AlbaranesProveedor_RefreshID_PEDIDO = 10; + idx_AlbaranesProveedor_RefreshREF_PED_PROVEEDOR = 11; + idx_AlbaranesProveedor_RefreshID_FACTURA = 12; + idx_AlbaranesProveedor_RefreshREF_FACTURA = 13; + idx_AlbaranesProveedor_RefreshREF_FACTURA_PROV = 14; + idx_AlbaranesProveedor_RefreshCALLE = 15; + idx_AlbaranesProveedor_RefreshCODIGO_POSTAL = 16; + idx_AlbaranesProveedor_RefreshPOBLACION = 17; + idx_AlbaranesProveedor_RefreshPROVINCIA = 18; + idx_AlbaranesProveedor_RefreshPERSONA_CONTACTO = 19; + idx_AlbaranesProveedor_RefreshTELEFONO = 20; + idx_AlbaranesProveedor_RefreshIMPORTE_NETO = 21; + idx_AlbaranesProveedor_RefreshIMPORTE_PORTE = 22; + idx_AlbaranesProveedor_RefreshDESCUENTO = 23; + idx_AlbaranesProveedor_RefreshIMPORTE_DESCUENTO = 24; + idx_AlbaranesProveedor_RefreshBASE_IMPONIBLE = 25; + idx_AlbaranesProveedor_RefreshIVA = 26; + idx_AlbaranesProveedor_RefreshIMPORTE_IVA = 27; + idx_AlbaranesProveedor_RefreshIMPORTE_TOTAL = 28; + idx_AlbaranesProveedor_RefreshOBSERVACIONES = 29; + idx_AlbaranesProveedor_RefreshINCIDENCIAS = 30; + idx_AlbaranesProveedor_RefreshINCIDENCIAS_ACTIVAS = 31; + idx_AlbaranesProveedor_RefreshFECHA_ALTA = 32; + idx_AlbaranesProveedor_RefreshFECHA_MODIFICACION = 33; + idx_AlbaranesProveedor_RefreshUSUARIO = 34; + idx_AlbaranesProveedor_RefreshID_FORMA_PAGO = 35; type { IDarReferencia } IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{6BCD4068-462A-4DFD-AD5A-F4C827370E02}'] + ['{5197CB29-BF7E-4281-9E0F-7BB774770672}'] { Property getters and setters } function GetVALORValue: String; procedure SetVALORValue(const aValue: String); @@ -268,7 +276,7 @@ type { IAlbaranesProveedor } IAlbaranesProveedor = interface(IDAStronglyTypedDataTable) - ['{3F464120-F9AA-47F0-A1EB-7B3BD57C9FE1}'] + ['{2CFF37C0-A76F-4D9C-BB24-0AC1F3BAF19D}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -282,6 +290,8 @@ type procedure SetFECHA_ALBARANValue(const aValue: DateTime); function GetREFERENCIAValue: String; procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); function GetTIPOValue: String; procedure SetTIPOValue(const aValue: String); function GetID_ALMACENValue: Integer; @@ -294,8 +304,10 @@ type procedure SetREF_PED_PROVEEDORValue(const aValue: String); function GetID_FACTURAValue: Integer; procedure SetID_FACTURAValue(const aValue: Integer); - function GetREF_FAC_PROVEEDORValue: String; - procedure SetREF_FAC_PROVEEDORValue(const aValue: String); + function GetREF_FACTURAValue: String; + procedure SetREF_FACTURAValue(const aValue: String); + function GetREF_FACTURA_PROVValue: String; + procedure SetREF_FACTURA_PROVValue(const aValue: String); function GetCALLEValue: String; procedure SetCALLEValue(const aValue: String); function GetCODIGO_POSTALValue: String; @@ -347,13 +359,15 @@ type property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; property TIPO: String read GetTIPOValue write SetTIPOValue; property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; - property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; property CALLE: String read GetCALLEValue write SetCALLEValue; property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; @@ -394,6 +408,8 @@ type procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; function GetREFERENCIAValue: String; virtual; procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; function GetTIPOValue: String; virtual; procedure SetTIPOValue(const aValue: String); virtual; function GetID_ALMACENValue: Integer; virtual; @@ -406,8 +422,10 @@ type procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; function GetID_FACTURAValue: Integer; virtual; procedure SetID_FACTURAValue(const aValue: Integer); virtual; - function GetREF_FAC_PROVEEDORValue: String; virtual; - procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; function GetCALLEValue: String; virtual; procedure SetCALLEValue(const aValue: String); virtual; function GetCODIGO_POSTALValue: String; virtual; @@ -458,13 +476,15 @@ type property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; property TIPO: String read GetTIPOValue write SetTIPOValue; property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; - property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; property CALLE: String read GetCALLEValue write SetCALLEValue; property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; @@ -495,7 +515,7 @@ type { IAlbaranesProveedor_Detalles } IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{594F6700-525A-419A-B59D-C7E0367E2274}'] + ['{8A62B0E3-DBC8-4606-A047-4203B88513F1}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -602,7 +622,7 @@ type { IAlbaranesProveedor_Detalles_Refresh } IAlbaranesProveedor_Detalles_Refresh = interface(IDAStronglyTypedDataTable) - ['{AE1B5612-9B95-4A74-8727-52AE39DD42F4}'] + ['{0773BFA8-2FAA-412C-A3A9-0978B8A03973}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -709,7 +729,7 @@ type { IAlbaranesProveedor_Refresh } IAlbaranesProveedor_Refresh = interface(IDAStronglyTypedDataTable) - ['{43490787-1D12-4B92-A0B2-7E6E78344AEE}'] + ['{F75AB4AE-10D5-4DA0-B8CA-39161C02E8BC}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -723,6 +743,8 @@ type procedure SetFECHA_ALBARANValue(const aValue: DateTime); function GetREFERENCIAValue: String; procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); function GetTIPOValue: String; procedure SetTIPOValue(const aValue: String); function GetID_ALMACENValue: Integer; @@ -735,8 +757,10 @@ type procedure SetREF_PED_PROVEEDORValue(const aValue: String); function GetID_FACTURAValue: Integer; procedure SetID_FACTURAValue(const aValue: Integer); - function GetREF_FAC_PROVEEDORValue: String; - procedure SetREF_FAC_PROVEEDORValue(const aValue: String); + function GetREF_FACTURAValue: String; + procedure SetREF_FACTURAValue(const aValue: String); + function GetREF_FACTURA_PROVValue: String; + procedure SetREF_FACTURA_PROVValue(const aValue: String); function GetCALLEValue: String; procedure SetCALLEValue(const aValue: String); function GetCODIGO_POSTALValue: String; @@ -788,13 +812,15 @@ type property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; property TIPO: String read GetTIPOValue write SetTIPOValue; property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; - property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; property CALLE: String read GetCALLEValue write SetCALLEValue; property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; @@ -835,6 +861,8 @@ type procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; function GetREFERENCIAValue: String; virtual; procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; function GetTIPOValue: String; virtual; procedure SetTIPOValue(const aValue: String); virtual; function GetID_ALMACENValue: Integer; virtual; @@ -847,8 +875,10 @@ type procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; function GetID_FACTURAValue: Integer; virtual; procedure SetID_FACTURAValue(const aValue: Integer); virtual; - function GetREF_FAC_PROVEEDORValue: String; virtual; - procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; function GetCALLEValue: String; virtual; procedure SetCALLEValue(const aValue: String); virtual; function GetCODIGO_POSTALValue: String; virtual; @@ -899,13 +929,15 @@ type property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; property TIPO: String read GetTIPOValue write SetTIPOValue; property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; - property REF_FAC_PROVEEDOR: String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; property CALLE: String read GetCALLEValue write SetCALLEValue; property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; @@ -1031,6 +1063,16 @@ begin DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].AsString := aValue; end; +function TAlbaranesProveedorDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsString := aValue; +end; + function TAlbaranesProveedorDataTableRules.GetTIPOValue: String; begin result := DataTable.Fields[idx_AlbaranesProveedorTIPO].AsString; @@ -1091,14 +1133,24 @@ begin DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].AsInteger := aValue; end; -function TAlbaranesProveedorDataTableRules.GetREF_FAC_PROVEEDORValue: String; +function TAlbaranesProveedorDataTableRules.GetREF_FACTURAValue: String; begin - result := DataTable.Fields[idx_AlbaranesProveedorREF_FAC_PROVEEDOR].AsString; + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsString; end; -procedure TAlbaranesProveedorDataTableRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURAValue(const aValue: String); begin - DataTable.Fields[idx_AlbaranesProveedorREF_FAC_PROVEEDOR].AsString := aValue; + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURA_PROVValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsString := aValue; end; function TAlbaranesProveedorDataTableRules.GetCALLEValue: String; @@ -1689,6 +1741,16 @@ begin DataTable.Fields[idx_AlbaranesProveedor_RefreshREFERENCIA].AsString := aValue; end; +function TAlbaranesProveedor_RefreshDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshREFERENCIA_PROVEEDOR].AsString := aValue; +end; + function TAlbaranesProveedor_RefreshDataTableRules.GetTIPOValue: String; begin result := DataTable.Fields[idx_AlbaranesProveedor_RefreshTIPO].AsString; @@ -1749,14 +1811,24 @@ begin DataTable.Fields[idx_AlbaranesProveedor_RefreshID_FACTURA].AsInteger := aValue; end; -function TAlbaranesProveedor_RefreshDataTableRules.GetREF_FAC_PROVEEDORValue: String; +function TAlbaranesProveedor_RefreshDataTableRules.GetREF_FACTURAValue: String; begin - result := DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR].AsString; + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FACTURA].AsString; end; -procedure TAlbaranesProveedor_RefreshDataTableRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +procedure TAlbaranesProveedor_RefreshDataTableRules.SetREF_FACTURAValue(const aValue: String); begin - DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR].AsString := aValue; + DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FACTURA].AsString := aValue; +end; + +function TAlbaranesProveedor_RefreshDataTableRules.GetREF_FACTURA_PROVValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FACTURA_PROV].AsString; +end; + +procedure TAlbaranesProveedor_RefreshDataTableRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_RefreshREF_FACTURA_PROV].AsString := aValue; end; function TAlbaranesProveedor_RefreshDataTableRules.GetCALLEValue: String; diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas index 7ef4a506..d3a68407 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas @@ -9,16 +9,16 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferenciaDelta = '{180D29B7-ECFB-4220-A71C-E353AE49D624}'; - RID_AlbaranesProveedorDelta = '{DA1EC824-AB6A-4817-9DE0-00CCF46AB7A8}'; - RID_AlbaranesProveedor_DetallesDelta = '{04D610A6-9357-416C-8E6A-D2CC470106A8}'; - RID_AlbaranesProveedor_Detalles_RefreshDelta = '{4CF01E9A-B11E-4E9C-AAC8-D8AE44FDAFA0}'; - RID_AlbaranesProveedor_RefreshDelta = '{3DE95ADD-450F-48CE-9885-43BECF24C910}'; + RID_DarReferenciaDelta = '{F1B43432-A3E7-44D4-AF56-D2CA222CA3B3}'; + RID_AlbaranesProveedorDelta = '{A1201763-99E7-462F-86AD-AAA14EFE7A60}'; + RID_AlbaranesProveedor_DetallesDelta = '{9DD8A677-8A3F-4948-8C8C-1B40BB98AE6F}'; + RID_AlbaranesProveedor_Detalles_RefreshDelta = '{5663912C-0DD4-4B61-9F49-A9EFD19CA7CE}'; + RID_AlbaranesProveedor_RefreshDelta = '{978B6667-02B7-49EC-B0E0-96D2672CCE4B}'; type { IDarReferenciaDelta } IDarReferenciaDelta = interface(IDarReferencia) - ['{180D29B7-ECFB-4220-A71C-E353AE49D624}'] + ['{F1B43432-A3E7-44D4-AF56-D2CA222CA3B3}'] { Property getters and setters } function GetOldVALORValue : String; @@ -47,7 +47,7 @@ type { IAlbaranesProveedorDelta } IAlbaranesProveedorDelta = interface(IAlbaranesProveedor) - ['{DA1EC824-AB6A-4817-9DE0-00CCF46AB7A8}'] + ['{A1201763-99E7-462F-86AD-AAA14EFE7A60}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -55,13 +55,15 @@ type function GetOldNOMBREValue : String; function GetOldFECHA_ALBARANValue : DateTime; function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; function GetOldTIPOValue : String; function GetOldID_ALMACENValue : Integer; function GetOldNOMBRE_ALMACENValue : String; function GetOldID_PEDIDOValue : Integer; function GetOldREF_PED_PROVEEDORValue : String; function GetOldID_FACTURAValue : Integer; - function GetOldREF_FAC_PROVEEDORValue : String; + function GetOldREF_FACTURAValue : String; + function GetOldREF_FACTURA_PROVValue : String; function GetOldCALLEValue : String; function GetOldCODIGO_POSTALValue : String; function GetOldPOBLACIONValue : String; @@ -91,13 +93,15 @@ type property OldNOMBRE : String read GetOldNOMBREValue; property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; property OldTIPO : String read GetOldTIPOValue; property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; property OldID_FACTURA : Integer read GetOldID_FACTURAValue; - property OldREF_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; property OldCALLE : String read GetOldCALLEValue; property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; property OldPOBLACION : String read GetOldPOBLACIONValue; @@ -144,6 +148,9 @@ type function GetREFERENCIAValue: String; virtual; function GetOldREFERENCIAValue: String; virtual; procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; function GetTIPOValue: String; virtual; function GetOldTIPOValue: String; virtual; procedure SetTIPOValue(const aValue: String); virtual; @@ -162,9 +169,12 @@ type function GetID_FACTURAValue: Integer; virtual; function GetOldID_FACTURAValue: Integer; virtual; procedure SetID_FACTURAValue(const aValue: Integer); virtual; - function GetREF_FAC_PROVEEDORValue: String; virtual; - function GetOldREF_FAC_PROVEEDORValue: String; virtual; - procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + function GetOldREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + function GetOldREF_FACTURA_PROVValue: String; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; function GetCALLEValue: String; virtual; function GetOldCALLEValue: String; virtual; procedure SetCALLEValue(const aValue: String); virtual; @@ -242,6 +252,8 @@ type property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; property TIPO : String read GetTIPOValue write SetTIPOValue; property OldTIPO : String read GetOldTIPOValue; property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; @@ -254,8 +266,10 @@ type property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; property OldID_FACTURA : Integer read GetOldID_FACTURAValue; - property REF_FAC_PROVEEDOR : String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; - property OldREF_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + property REF_FACTURA : String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property REF_FACTURA_PROV : String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; property CALLE : String read GetCALLEValue write SetCALLEValue; property OldCALLE : String read GetOldCALLEValue; property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; @@ -307,7 +321,7 @@ type { IAlbaranesProveedor_DetallesDelta } IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles) - ['{04D610A6-9357-416C-8E6A-D2CC470106A8}'] + ['{9DD8A677-8A3F-4948-8C8C-1B40BB98AE6F}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_ALBARANValue : Integer; @@ -427,7 +441,7 @@ type { IAlbaranesProveedor_Detalles_RefreshDelta } IAlbaranesProveedor_Detalles_RefreshDelta = interface(IAlbaranesProveedor_Detalles_Refresh) - ['{4CF01E9A-B11E-4E9C-AAC8-D8AE44FDAFA0}'] + ['{5663912C-0DD4-4B61-9F49-A9EFD19CA7CE}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_ALBARANValue : Integer; @@ -547,7 +561,7 @@ type { IAlbaranesProveedor_RefreshDelta } IAlbaranesProveedor_RefreshDelta = interface(IAlbaranesProveedor_Refresh) - ['{3DE95ADD-450F-48CE-9885-43BECF24C910}'] + ['{978B6667-02B7-49EC-B0E0-96D2672CCE4B}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -555,13 +569,15 @@ type function GetOldNOMBREValue : String; function GetOldFECHA_ALBARANValue : DateTime; function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; function GetOldTIPOValue : String; function GetOldID_ALMACENValue : Integer; function GetOldNOMBRE_ALMACENValue : String; function GetOldID_PEDIDOValue : Integer; function GetOldREF_PED_PROVEEDORValue : String; function GetOldID_FACTURAValue : Integer; - function GetOldREF_FAC_PROVEEDORValue : String; + function GetOldREF_FACTURAValue : String; + function GetOldREF_FACTURA_PROVValue : String; function GetOldCALLEValue : String; function GetOldCODIGO_POSTALValue : String; function GetOldPOBLACIONValue : String; @@ -591,13 +607,15 @@ type property OldNOMBRE : String read GetOldNOMBREValue; property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; property OldTIPO : String read GetOldTIPOValue; property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; property OldID_FACTURA : Integer read GetOldID_FACTURAValue; - property OldREF_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; property OldCALLE : String read GetOldCALLEValue; property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; property OldPOBLACION : String read GetOldPOBLACIONValue; @@ -644,6 +662,9 @@ type function GetREFERENCIAValue: String; virtual; function GetOldREFERENCIAValue: String; virtual; procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; function GetTIPOValue: String; virtual; function GetOldTIPOValue: String; virtual; procedure SetTIPOValue(const aValue: String); virtual; @@ -662,9 +683,12 @@ type function GetID_FACTURAValue: Integer; virtual; function GetOldID_FACTURAValue: Integer; virtual; procedure SetID_FACTURAValue(const aValue: Integer); virtual; - function GetREF_FAC_PROVEEDORValue: String; virtual; - function GetOldREF_FAC_PROVEEDORValue: String; virtual; - procedure SetREF_FAC_PROVEEDORValue(const aValue: String); virtual; + function GetREF_FACTURAValue: String; virtual; + function GetOldREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + function GetOldREF_FACTURA_PROVValue: String; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; function GetCALLEValue: String; virtual; function GetOldCALLEValue: String; virtual; procedure SetCALLEValue(const aValue: String); virtual; @@ -742,6 +766,8 @@ type property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; property OldREFERENCIA : String read GetOldREFERENCIAValue; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; property TIPO : String read GetTIPOValue write SetTIPOValue; property OldTIPO : String read GetOldTIPOValue; property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; @@ -754,8 +780,10 @@ type property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; property OldID_FACTURA : Integer read GetOldID_FACTURAValue; - property REF_FAC_PROVEEDOR : String read GetREF_FAC_PROVEEDORValue write SetREF_FAC_PROVEEDORValue; - property OldREF_FAC_PROVEEDOR : String read GetOldREF_FAC_PROVEEDORValue; + property REF_FACTURA : String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property REF_FACTURA_PROV : String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; property CALLE : String read GetCALLEValue write SetCALLEValue; property OldCALLE : String read GetOldCALLEValue; property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; @@ -938,6 +966,21 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA] := aValue; end; +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR] := aValue; +end; + function TAlbaranesProveedorBusinessProcessorRules.GetTIPOValue: String; begin result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO]; @@ -1028,19 +1071,34 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA] := aValue; end; -function TAlbaranesProveedorBusinessProcessorRules.GetREF_FAC_PROVEEDORValue: String; +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURAValue: String; begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FAC_PROVEEDOR]; + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA]; end; -function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FAC_PROVEEDORValue: String; +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURAValue: String; begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FAC_PROVEEDOR]; + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA]; end; -procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURAValue(const aValue: String); begin - BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FAC_PROVEEDOR] := aValue; + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA] := aValue; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV] := aValue; end; function TAlbaranesProveedorBusinessProcessorRules.GetCALLEValue: String; @@ -1908,6 +1966,21 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREFERENCIA] := aValue; end; +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshREFERENCIA_PROVEEDOR]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREFERENCIA_PROVEEDOR] := aValue; +end; + function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetTIPOValue: String; begin result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshTIPO]; @@ -1998,19 +2071,34 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshID_FACTURA] := aValue; end; -function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetREF_FAC_PROVEEDORValue: String; +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetREF_FACTURAValue: String; begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR]; + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FACTURA]; end; -function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldREF_FAC_PROVEEDORValue: String; +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldREF_FACTURAValue: String; begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR]; + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshREF_FACTURA]; end; -procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetREF_FAC_PROVEEDORValue(const aValue: String); +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetREF_FACTURAValue(const aValue: String); begin - BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FAC_PROVEEDOR] := aValue; + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FACTURA] := aValue; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FACTURA_PROV]; +end; + +function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetOldREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_RefreshREF_FACTURA_PROV]; +end; + +procedure TAlbaranesProveedor_RefreshBusinessProcessorRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_RefreshREF_FACTURA_PROV] := aValue; end; function TAlbaranesProveedor_RefreshBusinessProcessorRules.GetCALLEValue: String; diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm index 1e08a66c..7ac8104c 100644 --- a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm @@ -71,14 +71,14 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor TargetTable = 'ALBARANES_PROVEEDOR' SQL = 'SELECT '#10' ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN,' + - ' '#10' REFERENCIA, TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO,'#10' ' + - ' REF_PED_PROVEEDOR, ID_FACTURA, REF_FAC_PROVEEDOR, CALLE, CODI' + - 'GO_POSTAL,'#10' POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO,' + - ' IMPORTE_NETO, '#10' IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO,' + - ' BASE_IMPONIBLE, '#10' IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACI' + - 'ONES, INCIDENCIAS, '#10' INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_M' + - 'ODIFICACION, '#10' USUARIO, ID_FORMA_PAGO'#10' FROM'#10' V_ALBARANES_' + - 'PROVEEDOR' + ' REFERENCIA, REFERENCIA_PROVEEDOR,'#10' TIPO, ID_ALMACEN, NOMBRE_' + + 'ALMACEN, ID_PEDIDO, REF_PED_PROVEEDOR,'#10' ID_FACTURA, REF_FACTU' + + 'RA, REF_FACTURA_PROV, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA' + + ','#10' PERSONA_CONTACTO, TELEFONO, IMPORTE_NETO, IMPORTE_PORTE, D' + + 'ESCUENTO,'#10' IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IV' + + 'A, IMPORTE_TOTAL,'#10' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_AC' + + 'TIVAS, FECHA_ALTA, FECHA_MODIFICACION,'#10' USUARIO, ID_FORMA_PAG' + + 'O'#10' FROM'#10' V_ALBARANES_PROVEEDOR' StatementType = stSQL ColumnMappings = < item @@ -209,13 +209,21 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor DatasetField = 'REF_PED_PROVEEDOR' TableField = 'REF_PED_PROVEEDOR' end - item - DatasetField = 'REF_FAC_PROVEEDOR' - TableField = 'REF_FAC_PROVEEDOR' - end item DatasetField = 'TIPO' TableField = 'TIPO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'REF_FACTURA_PROV' + TableField = 'REF_FACTURA_PROV' end> end> Name = 'AlbaranesProveedor' @@ -282,6 +290,17 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor Lookup = False LookupCache = False end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end item Name = 'TIPO' DataType = datString @@ -346,11 +365,22 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor LookupCache = False end item - Name = 'REF_FAC_PROVEEDOR' + Name = 'REF_FACTURA' DataType = datString Size = 255 BlobType = dabtUnknown - DictionaryEntry = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA_PROV' InPrimaryKey = False Calculated = False Lookup = False @@ -1080,15 +1110,16 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor Connection = 'IBX' TargetTable = 'ALBARANES_PROVEEDOR' SQL = - 'SELECT '#10' ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN,' + - ' '#10' REFERENCIA, TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO,'#10' ' + - ' REF_PED_PROVEEDOR, ID_FACTURA, REF_FAC_PROVEEDOR, CALLE, CODI' + - 'GO_POSTAL,'#10' POBLACION, PROVINCIA, PERSONA_CONTACTO, TELEFONO,' + - ' IMPORTE_NETO, '#10' IMPORTE_PORTE, DESCUENTO, IMPORTE_DESCUENTO,' + - ' BASE_IMPONIBLE, '#10' IVA, IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACI' + - 'ONES, INCIDENCIAS, '#10' INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_M' + - 'ODIFICACION, '#10' USUARIO, ID_FORMA_PAGO'#10' FROM'#10' V_ALBARANES_' + - 'PROVEEDOR'#10'WHERE V_ALBARANES_PROVEEDOR.ID = :ID' + 'SELECT'#10' ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN, ' + + 'REFERENCIA, REFERENCIA_PROVEEDOR,'#10' TIPO, ID_ALMACEN, NOMBRE_A' + + 'LMACEN, ID_PEDIDO, REF_PED_PROVEEDOR,'#10' ID_FACTURA, REF_FACTUR' + + 'A, REF_FACTURA_PROV, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA,' + + #10' PERSONA_CONTACTO, TELEFONO, IMPORTE_NETO, IMPORTE_PORTE, DE' + + 'SCUENTO,'#10' IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA' + + ', IMPORTE_TOTAL,'#10' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACT' + + 'IVAS, FECHA_ALTA, FECHA_MODIFICACION,'#10' USUARIO, ID_FORMA_PAGO' + + #10' FROM'#10' V_ALBARANES_PROVEEDOR'#10'WHERE V_ALBARANES_PROVEEDOR.ID' + + ' = :ID' StatementType = stSQL ColumnMappings = < item @@ -1219,13 +1250,21 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor DatasetField = 'REF_PED_PROVEEDOR' TableField = 'REF_PED_PROVEEDOR' end - item - DatasetField = 'REF_FAC_PROVEEDOR' - TableField = 'REF_FAC_PROVEEDOR' - end item DatasetField = 'TIPO' TableField = 'TIPO' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'REF_FACTURA_PROV' + TableField = 'REF_FACTURA_PROV' end> end> Name = 'AlbaranesProveedor_Refresh' @@ -1295,6 +1334,17 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor Lookup = False LookupCache = False end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end item Name = 'TIPO' DataType = datString @@ -1359,7 +1409,7 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor LookupCache = False end item - Name = 'REF_FAC_PROVEEDOR' + Name = 'REF_FACTURA' DataType = datString Size = 255 BlobType = dabtUnknown @@ -1370,6 +1420,17 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor Lookup = False LookupCache = False end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DictionaryEntry = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end item Name = 'CALLE' DataType = datString @@ -1680,6 +1741,22 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor Value = '' ParamType = daptInput end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end item Name = 'CALLE' DataType = datString @@ -1848,21 +1925,23 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor SQL = 'INSERT INTO ALBARANES_PROVEEDOR ('#10' ID,'#10' ID_EMPRESA,'#10' ID' + '_PROVEEDOR,'#10' FECHA_ALBARAN,'#10' ID_PEDIDO,'#10' ID_FACTURA,'#10' ' + - ' REFERENCIA,'#10' CALLE,'#10' CODIGO_POSTAL,'#10' POBLACION,'#10' P' + - 'ROVINCIA,'#10' PERSONA_CONTACTO,'#10' TELEFONO,'#10' BASE_IMPONIBLE' + - ','#10' DESCUENTO,'#10' IMPORTE_DESCUENTO,'#10' IVA,'#10' IMPORTE_IVA' + - ','#10' IMPORTE_TOTAL,'#10' OBSERVACIONES,'#10' INCIDENCIAS,'#10' INC' + - 'IDENCIAS_ACTIVAS,'#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' US' + - 'UARIO,'#10' ID_ALMACEN,'#10' ID_FORMA_PAGO,'#10' IMPORTE_NETO,'#10' ' + - 'IMPORTE_PORTE)'#10' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :ID_PROV' + - 'EEDOR,'#10' :FECHA_ALBARAN,'#10' :ID_PEDIDO,'#10' :ID_FACTURA,'#10' ' + - ':REFERENCIA,'#10' :CALLE,'#10' :CODIGO_POSTAL,'#10' :POBLACION,'#10' ' + - ' :PROVINCIA,'#10' :PERSONA_CONTACTO,'#10' :TELEFONO,'#10' :BASE_IMP' + - 'ONIBLE,'#10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' :I' + - 'MPORTE_IVA,'#10' :IMPORTE_TOTAL,'#10' :OBSERVACIONES,'#10' :INCIDEN' + - 'CIAS,'#10' :INCIDENCIAS_ACTIVAS,'#10' :FECHA_ALTA,'#10' :FECHA_MODI' + - 'FICACION,'#10' :USUARIO,'#10' :ID_ALMACEN,'#10' :ID_FORMA_PAGO,'#10' ' + - ' :IMPORTE_NETO,'#10' :IMPORTE_PORTE);' + ' REFERENCIA,'#10' REFERENCIA_PROVEEDOR,'#10' REF_FACTURA_PROV,'#10' ' + + ' CALLE,'#10' CODIGO_POSTAL,'#10' POBLACION,'#10' PROVINCIA,'#10' PE' + + 'RSONA_CONTACTO,'#10' TELEFONO,'#10' BASE_IMPONIBLE,'#10' DESCUENTO,' + + #10' IMPORTE_DESCUENTO,'#10' IVA,'#10' IMPORTE_IVA,'#10' IMPORTE_TO' + + 'TAL,'#10' OBSERVACIONES,'#10' INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS' + + ','#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUARIO,'#10' ID_AL' + + 'MACEN,'#10' ID_FORMA_PAGO,'#10' IMPORTE_NETO,'#10' IMPORTE_PORTE)'#10' ' + + ' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :ID_PROVEEDOR,'#10' :FECH' + + 'A_ALBARAN,'#10' :ID_PEDIDO,'#10' :ID_FACTURA,'#10' :REFERENCIA,'#10' ' + + ' :REFERENCIA_PROVEEDOR,'#10' :REF_FACTURA_PROV,'#10' :CALLE,'#10' :' + + 'CODIGO_POSTAL,'#10' :POBLACION,'#10' :PROVINCIA,'#10' :PERSONA_CONT' + + 'ACTO,'#10' :TELEFONO,'#10' :BASE_IMPONIBLE,'#10' :DESCUENTO,'#10' :I' + + 'MPORTE_DESCUENTO,'#10' :IVA,'#10' :IMPORTE_IVA,'#10' :IMPORTE_TOTAL' + + ','#10' :OBSERVACIONES,'#10' :INCIDENCIAS,'#10' :INCIDENCIAS_ACTIVAS' + + ','#10' :FECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' :I' + + 'D_ALMACEN,'#10' :ID_FORMA_PAGO,'#10' :IMPORTE_NETO,'#10' :IMPORTE_P' + + 'ORTE);' StatementType = stSQL ColumnMappings = <> end> @@ -1934,6 +2013,22 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor Value = '' ParamType = daptInput end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end item Name = 'CALLE' DataType = datString @@ -2110,19 +2205,20 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor 'UPDATE ALBARANES_PROVEEDOR'#10' SET'#10' ID_EMPRESA = :ID_EMPRESA,'#10' ' + ' ID_PROVEEDOR = :ID_PROVEEDOR,'#10' FECHA_ALBARAN = :FECHA_ALBA' + 'RAN,'#10' ID_PEDIDO = :ID_PEDIDO,'#10' ID_FACTURA = :ID_FACTURA,'#10' ' + - ' REFERENCIA = :REFERENCIA,'#10' CALLE = :CALLE,'#10' CODIGO_POST' + - 'AL = :CODIGO_POSTAL,'#10' POBLACION = :POBLACION,'#10' PROVINCIA =' + - ' :PROVINCIA,'#10' PERSONA_CONTACTO = :PERSONA_CONTACTO,'#10' TELEF' + - 'ONO = :TELEFONO,'#10' BASE_IMPONIBLE = :BASE_IMPONIBLE,'#10' DESCU' + - 'ENTO = :DESCUENTO,'#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO,'#10' ' + - ' IVA = :IVA,'#10' IMPORTE_IVA = :IMPORTE_IVA,'#10' IMPORTE_TOTAL' + - ' = :IMPORTE_TOTAL,'#10' OBSERVACIONES = :OBSERVACIONES,'#10' INCID' + - 'ENCIAS = :INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS = :INCIDENCIAS_AC' + - 'TIVAS,'#10' FECHA_ALTA = :FECHA_ALTA,'#10' FECHA_MODIFICACION = :F' + - 'ECHA_MODIFICACION,'#10' USUARIO = :USUARIO,'#10' ID_ALMACEN = :ID_' + - 'ALMACEN,'#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' IMPORTE_NETO = ' + - ':IMPORTE_NETO,'#10' IMPORTE_PORTE = :IMPORTE_PORTE'#10' WHERE'#10' (ID ' + - '= :OLD_ID);' + ' REFERENCIA = :REFERENCIA,'#10' REFERENCIA_PROVEEDOR = :REFEREN' + + 'CIA_PROVEEDOR,'#10' REF_FACTURA_PROV = :REF_FACTURA_PROV,'#10' CAL' + + 'LE = :CALLE,'#10' CODIGO_POSTAL = :CODIGO_POSTAL,'#10' POBLACION =' + + ' :POBLACION,'#10' PROVINCIA = :PROVINCIA,'#10' PERSONA_CONTACTO = ' + + ':PERSONA_CONTACTO,'#10' TELEFONO = :TELEFONO,'#10' BASE_IMPONIBLE ' + + '= :BASE_IMPONIBLE,'#10' DESCUENTO = :DESCUENTO,'#10' IMPORTE_DESCU' + + 'ENTO = :IMPORTE_DESCUENTO,'#10' IVA = :IVA,'#10' IMPORTE_IVA = :IM' + + 'PORTE_IVA,'#10' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' OBSERVACIONES' + + ' = :OBSERVACIONES,'#10' INCIDENCIAS = :INCIDENCIAS,'#10' INCIDENCI' + + 'AS_ACTIVAS = :INCIDENCIAS_ACTIVAS,'#10' FECHA_ALTA = :FECHA_ALTA,' + + #10' FECHA_MODIFICACION = :FECHA_MODIFICACION,'#10' USUARIO = :US' + + 'UARIO,'#10' ID_ALMACEN = :ID_ALMACEN,'#10' ID_FORMA_PAGO = :ID_FOR' + + 'MA_PAGO,'#10' IMPORTE_NETO = :IMPORTE_NETO,'#10' IMPORTE_PORTE = :' + + 'IMPORTE_PORTE'#10' WHERE'#10' (ID = :OLD_ID);' StatementType = stSQL ColumnMappings = <> end> @@ -2911,6 +3007,33 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor DisplayWidth = 0 DisplayLabel = 'REF_FAC_PROVEEDOR' Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. provedor' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_REF_FACTURA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Referencia factura' + Alignment = taLeftJustify + end + item + Name = 'AlbaranesProveedor_REF_FACTURA_PROV' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + DisplayLabel = 'Ref. factura prov' + Alignment = taLeftJustify end> Left = 48 Top = 128 diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm index 54c88327..918fe88d 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm @@ -181,42 +181,6 @@ inherited fEditorAlbaranProveedor: TfEditorAlbaranProveedor inherited ToolBar1: TToolBar Width = 757 ExplicitWidth = 757 - inherited UpDown1: TUpDown - Left = 237 - ExplicitLeft = 237 - end - inherited ToolButton13: TToolButton - Left = 254 - ExplicitLeft = 254 - end - inherited ToolButton6: TToolButton - Left = 262 - ExplicitLeft = 262 - end - inherited ToolButton7: TToolButton - Left = 296 - ExplicitLeft = 296 - end - inherited ToolButton8: TToolButton - Left = 330 - ExplicitLeft = 330 - end - inherited ToolButton12: TToolButton - Left = 364 - ExplicitLeft = 364 - end - inherited ToolButton9: TToolButton - Left = 372 - ExplicitLeft = 372 - end - inherited ToolButton10: TToolButton - Left = 406 - ExplicitLeft = 406 - end - inherited ToolButton11: TToolButton - Left = 440 - ExplicitLeft = 440 - end end inherited cxGrid: TcxGrid Width = 757 @@ -237,6 +201,10 @@ inherited fEditorAlbaranProveedor: TfEditorAlbaranProveedor object pagInicidencias: TTabSheet Caption = 'Incidencias' ImageIndex = 2 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 inline frViewIncidenciasCli: TfrViewIncidencias Left = 0 Top = 0 diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas index 3c8ad3e1..b3c19058 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas @@ -93,7 +93,7 @@ begin inherited; if (Sender as TAction).Enabled then (Sender as TAction).Enabled := HayDatos - and (Albaran.REF_FAC_PROVEEDOR = ''); + and (Albaran.REF_FACTURA = ''); end; procedure TfEditorAlbaranProveedor.AsignarVista; diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas index a63de2ee..9665b331 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas @@ -72,7 +72,7 @@ begin inherited; if (Sender as TAction).Enabled then (Sender as TAction).Enabled := HayDatos - and (Albaranes.REF_FAC_PROVEEDOR = ''); + and (Albaranes.REF_FACTURA = ''); end; procedure TfEditorAlbaranesProveedor.actGenerarFacturaExecute(Sender: TObject); @@ -86,7 +86,7 @@ procedure TfEditorAlbaranesProveedor.actGenerarFacturaUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos - and (Albaranes.REF_FAC_PROVEEDOR = '') + and (Albaranes.REF_FACTURA = '') and ViewGrid.esSeleccionCeldaDatos; end; diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm index 9f02e26e..85fb6e02 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm @@ -18,8 +18,8 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor 688 461) object edtFechaAlbaran: TcxDBDateEdit - Left = 116 - Top = 55 + Left = 119 + Top = 82 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_ALBARAN' DataBinding.DataSource = DADataSource @@ -36,7 +36,7 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 1 + TabOrder = 2 Width = 119 end object memObservaciones: TcxDBMemo @@ -53,12 +53,12 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 9 + TabOrder = 11 Height = 253 Width = 186 end object eReferencia: TcxDBTextEdit - Left = 116 + Left = 119 Top = 28 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'REFERENCIA' @@ -90,7 +90,7 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 8 + TabOrder = 10 ReadOnly = False ExplicitLeft = 316 ExplicitTop = 28 @@ -135,7 +135,7 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor end inline frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv Left = 22 - Top = 195 + Top = 249 Width = 445 Height = 175 Font.Charset = DEFAULT_CHARSET @@ -144,10 +144,10 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 7 + TabOrder = 9 ReadOnly = False ExplicitLeft = 22 - ExplicitTop = 195 + ExplicitTop = 249 ExplicitWidth = 445 ExplicitHeight = 175 inherited dxLayoutControl1: TdxLayoutControl @@ -169,9 +169,9 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor end inherited bModificar: TBitBtn Left = 126 - Top = 209 + Top = 155 ExplicitLeft = 126 - ExplicitTop = 209 + ExplicitTop = 155 end inherited txtDireccion: TStaticText Height = 110 @@ -184,8 +184,8 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor end end object cbFormaPago: TcxDBLookupComboBox - Left = 116 - Top = 138 + Left = 119 + Top = 192 DataBinding.DataField = 'ID_FORMA_PAGO' DataBinding.DataSource = DADataSource Properties.KeyFieldNames = 'ID' @@ -209,21 +209,21 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 5 + TabOrder = 7 Width = 90 end object bFormasPago: TButton Left = 154 - Top = 138 + Top = 192 Width = 132 Height = 21 Caption = 'Ver las formas de pago...' - TabOrder = 6 + TabOrder = 8 OnClick = bFormasPagoClick end object eReferenciaPedidoCli: TcxTextEdit - Left = 116 - Top = 82 + Left = 119 + Top = 109 Anchors = [akLeft, akTop, akRight] Enabled = False Properties.ReadOnly = False @@ -241,22 +241,22 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 2 + TabOrder = 3 Width = 69 end object Button1: TButton Left = 154 - Top = 82 + Top = 109 Width = 132 Height = 23 Action = actVerPedido - TabOrder = 3 + TabOrder = 4 end - object eRefFacturaProv: TcxDBTextEdit - Left = 116 - Top = 111 + object eRefFactura: TcxDBTextEdit + Left = 119 + Top = 138 Anchors = [akLeft, akTop, akRight] - DataBinding.DataField = 'REF_FAC_PROVEEDOR' + DataBinding.DataField = 'REF_FACTURA' DataBinding.DataSource = DADataSource Enabled = False Properties.ReadOnly = False @@ -275,9 +275,55 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 4 + TabOrder = 5 Width = 216 end + object eReferenciaProveedor: TcxDBTextEdit + Left = 119 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_PROVEEDOR' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 170 + end + object eReferenciaFacturaProveedor: TcxDBTextEdit + Left = 119 + Top = 165 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FACTURA_PROV' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Width = 170 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -298,6 +344,11 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor Control = eReferencia ControlOptions.ShowBorder = False end + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'Ref. proveedor:' + Control = eReferenciaProveedor + ControlOptions.ShowBorder = False + end object dxLayoutControl1Item2: TdxLayoutItem Caption = 'Fecha del albar'#225'n:' Control = edtFechaAlbaran @@ -325,7 +376,12 @@ inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor end object dxLayoutControl1Item10: TdxLayoutItem Caption = 'Ref. factura:' - Control = eRefFacturaProv + Control = eRefFactura + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + Caption = 'Ref. factura prov.:' + Control = eReferenciaFacturaProveedor ControlOptions.ShowBorder = False end object dxLayoutControl1Group4: TdxLayoutGroup diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas index 9653c3da..522b85af 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas @@ -61,7 +61,11 @@ type dxLayoutControl1Group5: TdxLayoutGroup; actVerPedido: TAction; dxLayoutControl1Item10: TdxLayoutItem; - eRefFacturaProv: TcxDBTextEdit; + eRefFactura: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eReferenciaProveedor: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eReferenciaFacturaProveedor: TcxDBTextEdit; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure actElegirDireccionExecute(Sender: TObject); @@ -235,7 +239,7 @@ begin frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := FAlbaran; eReferenciaPedidoCli.Enabled := False; - eRefFacturaProv.Enabled := False; + eRefFactura.Enabled := False; FPedidoAsociado := NIL; if (FAlbaran.ID_PEDIDO > 0) then diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm index a6d8fbc8..221ac35f 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm @@ -2,10 +2,32 @@ inherited frViewAlbaranesDevProveedor: TfrViewAlbaranesDevProveedor OnCreate = CustomViewCreate inherited cxGrid: TcxGrid inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewREF_FACTURA + end> + DataController.Summary.FooterSummaryItems = < + item + Format = '0 pedidos' + Kind = skCount + end + item + Format = '0 albaranes' + Kind = skCount + Column = cxGridViewREFERENCIA + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewREF_FACTURA + end> inherited cxGridViewCALLE: TcxGridDBColumn Visible = False end - inherited cxGridViewREF_FAC_PROVEEDOR: TcxGridDBColumn + inherited cxGridViewREF_FACTURA: TcxGridDBColumn Caption = 'Ref. abono' end end @@ -14,7 +36,6 @@ inherited frViewAlbaranesDevProveedor: TfrViewAlbaranesDevProveedor inherited TBXDock1: TTBXDock inherited TBXDockablePanel1: TTBXDockablePanel inherited dxLayoutControl1: TdxLayoutControl - ExplicitWidth = 124 inherited txtFiltroTodo: TcxTextEdit ExplicitWidth = 453 Width = 453 @@ -24,8 +45,8 @@ inherited frViewAlbaranesDevProveedor: TfrViewAlbaranesDevProveedor Width = 237 end inherited edtFechaFinFiltro: TcxDateEdit - ExplicitWidth = 199 - Width = 199 + ExplicitWidth = 239 + Width = 239 end end end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas index b6dbcf32..2ead872b 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas @@ -12,7 +12,7 @@ uses cxGridPopupMenu, dxPScxCommon, dxPScxGridLnk, uDADataTable, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, - cxControls, cxGridCustomView, cxGrid; + cxControls, cxGridCustomView, cxGrid, cxTextEdit; type IViewAlbaranesDevProveedor = interface(IViewAlbaranesProveedor) diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm index 4292ca24..d64eb0d0 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm @@ -61,6 +61,9 @@ inherited frViewAlbaranesProveedor: TfrViewAlbaranesProveedor DataBinding.FieldName = 'REFERENCIA' Width = 65 end + object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + end object cxGridViewFECHA_ALBARAN: TcxGridDBColumn Caption = 'Fecha' DataBinding.FieldName = 'FECHA_ALBARAN' @@ -104,11 +107,20 @@ inherited frViewAlbaranesProveedor: TfrViewAlbaranesProveedor DataBinding.FieldName = 'TELEFONO' Visible = False end - object cxGridViewREF_FAC_PROVEEDOR: TcxGridDBColumn + object cxGridViewREF_FACTURA: TcxGridDBColumn Caption = 'Ref. factura' - DataBinding.FieldName = 'REF_FAC_PROVEEDOR' + DataBinding.FieldName = 'REF_FACTURA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify Width = 24 end + object cxGridViewREF_FACTURA_PROV: TcxGridDBColumn + DataBinding.FieldName = 'REF_FACTURA_PROV' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn Caption = 'Importe total' DataBinding.FieldName = 'IMPORTE_TOTAL' @@ -133,9 +145,20 @@ inherited frViewAlbaranesProveedor: TfrViewAlbaranesProveedor ExplicitWidth = 596 inherited dxLayoutControl1: TdxLayoutControl Width = 592 + ExplicitWidth = 592 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end inherited edtFechaFinFiltro: TcxDateEdit Left = 367 ExplicitLeft = 367 + ExplicitWidth = 121 + Width = 121 end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas index 81177144..e24014c0 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas @@ -11,7 +11,7 @@ uses cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGridLnk, uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes, cxGrid, uBizAlbaranesProveedor, cxCurrencyEdit, Forms, uViewFiltroBase, - ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg; + ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxTextEdit; type IViewAlbaranesProveedor = interface(IViewGrid) @@ -35,7 +35,7 @@ type cxGridViewTELEFONO: TcxGridDBColumn; cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn; cxGridViewREF_PED_PROVEEDOR: TcxGridDBColumn; - cxGridViewREF_FAC_PROVEEDOR: TcxGridDBColumn; + cxGridViewREF_FACTURA: TcxGridDBColumn; cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; actProveedor: TAction; actAlmacen: TAction; @@ -43,6 +43,8 @@ type TBXSeparatorItem1: TTBXSeparatorItem; TBXItem3: TTBXItem; TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + cxGridViewREF_FACTURA_PROV: TcxGridDBColumn; procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; diff --git a/Source/Modulos/Comisiones/Controller/uComisionesController.pas b/Source/Modulos/Comisiones/Controller/uComisionesController.pas index 11fac65c..200e7b63 100644 --- a/Source/Modulos/Comisiones/Controller/uComisionesController.pas +++ b/Source/Modulos/Comisiones/Controller/uComisionesController.pas @@ -13,12 +13,12 @@ type function BuscarTodos: IBizComisiones; procedure VerTodos(AComision: IBizComisiones); procedure Ver(AComision: IBizComisiones); - procedure Anadir(AComision : IBizComisiones); + function Anadir(AComision : IBizComisiones): Boolean; function Eliminar(AComision : IBizComisiones): Boolean; function Guardar(AComision : IBizComisiones): Boolean; procedure DescartarCambios(AComision : IBizComisiones); - procedure Preview(AComision : IBizComisiones); - procedure Print(AComision : IBizComisiones); + procedure Preview(AComision : IBizComisiones; const DesglosadoProv: Boolean); + procedure Print(AComision : IBizComisiones; const DesglosadoProv: Boolean); function ElegirFacturasComision(AComision : IBizComisiones): Boolean; procedure EliminarFactura(AComision : IBizComisiones); @@ -51,12 +51,12 @@ type function Eliminar(AComision : IBizComisiones): Boolean; function Guardar(AComision : IBizComisiones): Boolean; procedure DescartarCambios(AComision : IBizComisiones); - procedure Anadir(AComision : IBizComisiones); + function Anadir(AComision : IBizComisiones): Boolean; function BuscarTodos: IBizComisiones; procedure VerTodos(AComision: IBizComisiones); procedure Ver(AComision: IBizComisiones); - procedure Preview(AComision : IBizComisiones); - procedure Print(AComision : IBizComisiones); + procedure Preview(AComision : IBizComisiones; const DesglosadoProv: Boolean); + procedure Print(AComision : IBizComisiones; const DesglosadoProv: Boolean); function ElegirFacturasComision(AComision : IBizComisiones): Boolean; procedure EliminarFactura(AComision : IBizComisiones); procedure AsignarImporteTotal(AComision : IBizComisiones; Const ImporteTotal: Variant); @@ -72,9 +72,16 @@ uses { TComisionesController } -procedure TComisionesController.Anadir(AComision: IBizComisiones); +function TComisionesController.Anadir(AComision: IBizComisiones): Boolean; begin + if not Assigned(AComision) then + raise Exception.Create ('Comision no asignado (Anadir)'); + + if not AComision.DataTable.Active then + AComision.DataTable.Active := True; + AComision.Insert; + Result := True; end; procedure TComisionesController.AsignarDataModule; @@ -88,7 +95,7 @@ begin raise Exception.Create ('Comision no asignado'); AsignarIDDetalles(AComision.Facturas, IDNuevo, AComision.EsNuevo); - + if AComision.EsNuevo then begin AComision.Edit; @@ -459,31 +466,31 @@ begin end; end; end; -procedure TComisionesController.Preview(AComision: IBizComisiones); +procedure TComisionesController.Preview(AComision: IBizComisiones; const DesglosadoProv: Boolean); var AReportController : IComisionesReportController; begin AReportController := TComisionesReportController.Create; try if Assigned(AComision) then - AReportController.Preview(AComision.ID) + AReportController.Preview(AComision.ID, DesglosadoProv) else - AReportController.Preview(Null) + AReportController.Preview(Null, DesglosadoProv) finally AReportController := NIL; end; end; -procedure TComisionesController.Print(AComision: IBizComisiones); +procedure TComisionesController.Print(AComision: IBizComisiones; const DesglosadoProv: Boolean); var AReportController : IComisionesReportController; begin AReportController := TComisionesReportController.Create; try if Assigned(AComision) then - AReportController.Preview(AComision.ID) + AReportController.Preview(AComision.ID, DesglosadoProv) else - AReportController.Preview(Null); + AReportController.Preview(Null, DesglosadoProv); finally AReportController := NIL; end; diff --git a/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas b/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas index 5487bc26..3032b1ac 100644 --- a/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas +++ b/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas @@ -10,8 +10,8 @@ uses type IComisionesReportController = interface ['{7ABB74C2-050C-4737-BC4C-C5F20883CED8}'] - procedure Preview(const AComisionID : Variant); - procedure Print(const AComisionID : Variant); + procedure Preview(const AComisionID : Variant; const DesglosadoProv: Boolean); + procedure Print(const AComisionID : Variant; const DesglosadoProv: Boolean); end; TComisionesReportController = class(TInterfacedObject, IComisionesReportController) @@ -22,8 +22,8 @@ type constructor Create; destructor Destroy; override; - procedure Preview(const AComisionID : Variant); - procedure Print(const AComisionID : Variant); + procedure Preview(const AComisionID : Variant; const DesglosadoProv: Boolean); + procedure Print(const AComisionID : Variant; const DesglosadoProv: Boolean); end; @@ -53,7 +53,7 @@ begin inherited; end; -procedure TComisionesReportController.Preview(const AComisionID : Variant); +procedure TComisionesReportController.Preview(const AComisionID : Variant; const DesglosadoProv: Boolean); var AStream: Binary; AEditor : IEditorComisionesPreview; @@ -62,7 +62,7 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetReport(AComisionID, '', '', Null); + AStream := FDataModule.GetReport(AComisionID, DesglosadoProv,'', '', Null); try CreateEditor('EditorComisionesPreview', IEditorComisionesPreview, AEditor); AEditor.DataModule := FDataModule; @@ -78,7 +78,7 @@ begin AEditor.Preview; end; -procedure TComisionesReportController.Print(const AComisionID : Variant); +procedure TComisionesReportController.Print(const AComisionID : Variant; const DesglosadoProv: Boolean); var AStream: Binary; AEditor : IEditorComisionesPreview; @@ -87,7 +87,7 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetReport(AComisionID, '', '', Null); + AStream := FDataModule.GetReport(AComisionID, DesglosadoProv, '', '', Null); try CreateEditor('EditorComisionesPreview', IEditorComisionesPreview, AEditor); AEditor.DataModule := FDataModule; diff --git a/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas index 1caa675d..d55371b9 100644 --- a/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas +++ b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas @@ -36,7 +36,7 @@ type function NewItem : IBizComisiones; // Report - function GetReport(const AComisionID: Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; + function GetReport(const AComisionID: Variant; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; end; implementation @@ -155,9 +155,9 @@ begin Result := (RORemoteService as IsrvComisiones).GetNextAutoInc(aGeneratorName) end; -function TDataModuleComisiones.GetReport(const AComisionID: Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; +function TDataModuleComisiones.GetReport(const AComisionID: Variant; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; begin - Result := (RORemoteService as IsrvComisiones).GenerateReport(AComisionID, FechaIni, FechaFin, AAgenteID); + Result := (RORemoteService as IsrvComisiones).GenerateReport(AComisionID, DesglosadoProv, FechaIni, FechaFin, AAgenteID); end; function TDataModuleComisiones.NewItem: IBizComisiones; diff --git a/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas b/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas index ab642766..ce025e5b 100644 --- a/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas +++ b/Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas @@ -8,7 +8,7 @@ uses type IDataModuleComisionesReport = interface ['{F498AC70-AA38-4C06-B301-85A4AC0B210B}'] - function GetReport(const AComisionID: Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; + function GetReport(const AComisionID: Variant; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; end; implementation diff --git a/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm index fb77dd2d..190ded51 100644 --- a/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm +++ b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm @@ -63,6 +63,490 @@ object RptComisiones: TRptComisiones ConnectionManager = dmServer.ConnectionManager DataDictionary = DataDictionary Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_AGENTES_COMISIONES_DET_FAC' + SQL = + 'select'#10' COMISIONES_LIQUIDADAS.FECHA AS FECHA_COMISION,'#10' ' + + ' COMISIONES_LIQUIDADAS.REFERENCIA AS REFERENCIA_COMISION,'#10' ' + + ' COMISIONES_LIQUIDADAS.DESCRIPCION,'#10' COMISIONES_LIQUIDA' + + 'DAS.IMPORTE_TOTAL,'#10#10' V_AGENTES_COMISIONES_DET_FAC.ID_EMPRE' + + 'SA, EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, COALESCE(EMPRESAS.RAZON' + + '_SOCIAL, EMPRESAS.NOMBRE) as RAZON_SOCIAL,'#10' EMPRESAS.CALLE' + + ' as CALLE_EMPRESA, EMPRESAS.POBLACION as POBLACION_EMPRESA,'#10' ' + + ' EMPRESAS.PROVINCIA as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POST' + + 'AL as CODIGO_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRESA' + + 'S.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGIN' + + 'A_WEB, EMPRESAS.REGISTRO_MERCANTIL,'#10#10' V_AGENTES_COMISIONES' + + '_DET_FAC.ID_AGENTE, CONTACTOS1.NOMBRE as AGENTE,'#10' V_AGENTE' + + 'S_COMISIONES_DET_FAC.ID_FACTURA,'#10' V_AGENTES_COMISIONES_DET' + + '_FAC.ID_COMISION_LIQUIDADA,'#10' V_AGENTES_COMISIONES_DET_FAC.' + + 'FECHA,'#10' V_AGENTES_COMISIONES_DET_FAC.REFERENCIA,'#10' V_' + + 'AGENTES_COMISIONES_DET_FAC.SITUACION,'#10' V_AGENTES_COMISIONE' + + 'S_DET_FAC.ID_CLIENTE,'#10' CONTACTOS2.NOMBRE as CLIENTE,'#10#10' ' + + ' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOTAL) as IMPORTE_CO' + + 'MISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_COMI' + + 'SION) as IMPORTE_COMISION'#10#10#10'from V_AGENTES_COMISIONES_DET_FAC'#10'LE' + + 'FT JOIN COMISIONES_LIQUIDADAS ON (COMISIONES_LIQUIDADAS.ID = V_A' + + 'GENTES_COMISIONES_DET_FAC.ID_COMISION_LIQUIDADA)'#10'LEFT JOIN EMPRE' + + 'SAS ON EMPRESAS.ID = V_AGENTES_COMISIONES_DET_FAC.ID_EMPRESA'#10'LEF' + + 'T JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID = V_AGENTES_COMISI' + + 'ONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CONTACTOS2 ON (CONTA' + + 'CTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIENTE)'#10'LEFT JOIN CO' + + 'NTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTES_COMISIONES_DET_' + + 'FAC.ID_PROVEEDOR)'#10'WHERE (V_AGENTES_COMISIONES_DET_FAC.ID_COMISIO' + + 'N_LIQUIDADA IS NOT NULL)'#10'GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,' + + ' 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26'#10 + + 'ORDER BY 1' + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_COMISION' + TableField = 'REFERENCIA_COMISION' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID_AGENTE' + TableField = 'ID_AGENTE' + end + item + DatasetField = 'AGENTE' + TableField = 'AGENTE' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'ID_COMISION_LIQUIDADA' + TableField = 'ID_COMISION_LIQUIDADA' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'CLIENTE' + TableField = 'CLIENTE' + end + item + DatasetField = 'IMPORTE_COMISIONABLE' + TableField = 'IMPORTE_COMISIONABLE' + end + item + DatasetField = 'IMPORTE_COMISION' + TableField = 'IMPORTE_COMISION' + end + item + DatasetField = 'FECHA_COMISION' + TableField = 'FECHA_COMISION' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'NIF_CIF_EMPRESA' + TableField = 'NIF_CIF_EMPRESA' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = 'RAZON_SOCIAL' + end + item + DatasetField = 'CALLE_EMPRESA' + TableField = 'CALLE_EMPRESA' + end + item + DatasetField = 'POBLACION_EMPRESA' + TableField = 'POBLACION_EMPRESA' + end + item + DatasetField = 'PROVINCIA_EMPRESA' + TableField = 'PROVINCIA_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL_EMPRESA' + TableField = 'CODIGO_POSTAL_EMPRESA' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'REGISTRO_MERCANTIL' + TableField = 'REGISTRO_MERCANTIL' + end> + end> + Name = 'InformeComisiones' + Fields = < + item + Name = 'FECHA_COMISION' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA_COMISION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'NIF_CIF_EMPRESA' + DataType = datString + Size = 15 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CALLE_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'POBLACION_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PROVINCIA_EMPRESA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CODIGO_POSTAL_EMPRESA' + DataType = datString + Size = 10 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FAX' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_AGENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_FACTURA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'FECHA' + DataType = datDateTime + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end + item + Name = 'IMPORTE_COMISION' + DataType = datFloat + BlobType = dabtUnknown + DisplayWidth = 0 + Alignment = taLeftJustify + InPrimaryKey = False + Calculated = False + Lookup = False + LookupCache = False + end> + BusinessRulesClient.ScriptLanguage = rslPascalScript + BusinessRulesServer.ScriptLanguage = rslPascalScript + end item Params = <> Statements = < @@ -89,20 +573,20 @@ object RptComisiones: TRptComisiones 'S_DET_FAC.ID_CLIENTE,'#10' CONTACTOS2.NOMBRE as CLIENTE,'#10' ' + ' V_AGENTES_COMISIONES_DET_FAC.ID_PROVEEDOR,'#10' CONTACTOS3.N' + 'OMBRE as PROVEEDOR,'#10' V_AGENTES_COMISIONES_DET_FAC.COMISION' + - ','#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOTAL) as IMPO' + - 'RTE_COMISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORT' + - 'E_COMISION) as IMPORTE_COMISION'#10' '#10#10'from V_AGENTES_COMISION' + - 'ES_DET_FAC'#10'LEFT JOIN COMISIONES_LIQUIDADAS ON (COMISIONES_LIQUID' + - 'ADAS.ID = V_AGENTES_COMISIONES_DET_FAC.ID_COMISION_LIQUIDADA)'#10'LE' + - 'FT JOIN EMPRESAS ON EMPRESAS.ID = V_AGENTES_COMISIONES_DET_FAC.I' + - 'D_EMPRESA'#10'LEFT JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID = V_A' + - 'GENTES_COMISIONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CONTACT' + - 'OS2 ON (CONTACTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIENTE)' + - #10'LEFT JOIN CONTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTES_CO' + - 'MISIONES_DET_FAC.ID_PROVEEDOR)'#10'WHERE (V_AGENTES_COMISIONES_DET_F' + - 'AC.ID_COMISION_LIQUIDADA IS NOT NULL)'#10'GROUP BY 1, 2, 3, 4, 5, 6,' + - ' 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23' + - ', 24, 25, 26, 27, 28, 29'#10'ORDER BY 1' + ','#10#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOTAL) as IMP' + + 'ORTE_COMISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPOR' + + 'TE_COMISION) as IMPORTE_COMISION'#10#10#10'from V_AGENTES_COMISIONES_DET' + + '_FAC'#10'LEFT JOIN COMISIONES_LIQUIDADAS ON (COMISIONES_LIQUIDADAS.I' + + 'D = V_AGENTES_COMISIONES_DET_FAC.ID_COMISION_LIQUIDADA)'#10'LEFT JOI' + + 'N EMPRESAS ON EMPRESAS.ID = V_AGENTES_COMISIONES_DET_FAC.ID_EMPR' + + 'ESA'#10'LEFT JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID = V_AGENTES' + + '_COMISIONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CONTACTOS2 ON' + + ' (CONTACTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIENTE)'#10'LEFT ' + + 'JOIN CONTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTES_COMISION' + + 'ES_DET_FAC.ID_PROVEEDOR)'#10'WHERE (V_AGENTES_COMISIONES_DET_FAC.ID_' + + 'COMISION_LIQUIDADA IS NOT NULL)'#10'GROUP BY 1, 2, 3, 4, 5, 6, 7, 8,' + + ' 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, ' + + '25, 26, 27, 28, 29'#10'ORDER BY 1' StatementType = stSQL ColumnMappings = < item @@ -230,7 +714,7 @@ object RptComisiones: TRptComisiones TableField = 'REGISTRO_MERCANTIL' end> end> - Name = 'InformeComisiones' + Name = 'InformeComisionesDesglosado' Fields = < item Name = 'FECHA_COMISION' @@ -901,7 +1385,7 @@ object RptComisiones: TRptComisiones PreviewOptions.Zoom = 1.000000000000000000 PrintOptions.Printer = 'Default' ReportOptions.CreateDate = 37871.995398692100000000 - ReportOptions.LastChange = 39185.834399409720000000 + ReportOptions.LastChange = 39266.688905347220000000 ReportOptions.VersionBuild = '1' ReportOptions.VersionMajor = '12' ReportOptions.VersionMinor = '13' @@ -939,17 +1423,14 @@ object RptComisiones: TRptComisiones '' 'procedure Memo26OnBeforePrint(Sender: TfrxComponent);' 'begin' - '{' ' if ( <> '#39#39') then' - ' Memo26.Visible := True' + ' Memo31.Visible := True' ' else' - ' Memo26.Visible := False;' - ' }' + ' Memo31.Visible := False;' 'end;' '' 'BEGIN' '' - '' 'END.') ShowProgress = False StoreInDFM = False @@ -967,11 +1448,11 @@ object RptComisiones: TRptComisiones end item Name = 'FechaIni' - Value = 'sdadsasd' + Value = Null end item Name = 'FechaFin' - Value = 'asdasdasdad' + Value = Null end> Style = < item diff --git a/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas index 9c4cc623..b7b7a587 100644 --- a/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas +++ b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas @@ -29,7 +29,7 @@ type private FConnection: IDAConnection; public - function GenerarComision(const AComisionID : Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; + function GenerarComision(const AComisionID : Variant; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; end; implementation @@ -41,21 +41,23 @@ uses const rptComision = 'InfComisiones.fr3'; + rptComisionDesglosado = 'InfComisionesDesglosado.fr3'; { Dataset names for schReport } ds_InformeComisiones = 'InformeComisiones'; + ds_InformeComisionesDesglosado = 'InformeComisionesDesglosado'; + { TRptComision } - procedure TRptComisiones.DataModuleCreate(Sender: TObject); begin schReport.ConnectionManager := dmServer.ConnectionManager; FConnection := dmServer.DarNuevaConexion; - frxReport.EngineOptions.NewSilentMode := simReThrow; + frxReport.EngineOptions.NewSilentMode := simReThrow; end; -function TRptComisiones.GenerarComision(const AComisionID : Variant; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; +function TRptComisiones.GenerarComision(const AComisionID : Variant; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; var dsMaster: IDADataset; AStream: TMemoryStream; @@ -64,7 +66,11 @@ begin Result := Binary.Create; FConnection.BeginTransaction; try - dsMaster := schReport.NewDataset(FConnection, ds_InformeComisiones,[], [], False); + if DesglosadoProv then + dsMaster := schReport.NewDataset(FConnection, ds_InformeComisionesDesglosado,[], [], False) + else + dsMaster := schReport.NewDataset(FConnection, ds_InformeComisiones,[], [], False); + with dsMaster.Where do begin if not VarIsNull(AComisionID) then @@ -100,7 +106,11 @@ begin DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); DABINAdapter.ReadDataset(AStream, tbl_Comisiones, TRUE, '', TRUE, TRUE); - frxReport.LoadFromFile(DarRutaInformes + rptComision, True); + if DesglosadoProv then + frxReport.LoadFromFile(DarRutaInformes + rptComisionDesglosado, True) + else + frxReport.LoadFromFile(DarRutaInformes + rptComision, True); + frxReport.Variables['FechaIni'] := QuotedStr(FechaIni); frxReport.Variables['FechaFin'] := QuotedStr(FechaFin); frxReport.PrepareReport; diff --git a/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas b/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas index 786ba72d..b96dd994 100644 --- a/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas +++ b/Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas @@ -32,7 +32,7 @@ type { IsrvComisiones methods } protected function GetNextAutoInc(const GeneratorName: String): Integer; - function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; + function GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; end; implementation @@ -61,13 +61,13 @@ begin bpComisiones.BusinessRulesID := BIZ_SERVER_COMISIONES; end; -function TsrvComisiones.GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; +function TsrvComisiones.GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; var AReportGenerator : TRptComisiones; begin AReportGenerator := TRptComisiones.Create(nil); try - Result := AReportGenerator.GenerarComision(AComisionID, FechaIni, FechaFin, AAgenteID); + Result := AReportGenerator.GenerarComision(AComisionID, DesglosadoProv, FechaIni, FechaFin, AAgenteID); finally FreeAndNIL(AReportGenerator); end; diff --git a/Source/Modulos/Comisiones/Views/uEditorComision.dfm b/Source/Modulos/Comisiones/Views/uEditorComision.dfm index 4c8d45ce..2007cc2d 100644 --- a/Source/Modulos/Comisiones/Views/uEditorComision.dfm +++ b/Source/Modulos/Comisiones/Views/uEditorComision.dfm @@ -148,9 +148,23 @@ inherited fEditorComision: TfEditorComision DesignSize = ( 603 127) + inherited eReferencia: TcxDBTextEdit + ExplicitWidth = 164 + Width = 164 + end + inherited eDescripcion: TcxDBTextEdit + ExplicitWidth = 108 + Width = 108 + end inherited edtFecha: TcxDBDateEdit - Left = 354 - ExplicitLeft = 354 + Left = 355 + ExplicitLeft = 355 + ExplicitWidth = 170 + Width = 170 + end + inherited cbAgente: TcxDBLookupComboBox + ExplicitWidth = 319 + Width = 319 end end end @@ -202,18 +216,6 @@ inherited fEditorComision: TfEditorComision inherited ToolBar1: TToolBar Width = 607 ExplicitWidth = 607 - inherited ToolButton1: TToolButton - ExplicitWidth = 62 - end - inherited ToolButton4: TToolButton - ExplicitWidth = 74 - end - inherited ToolButton2: TToolButton - ExplicitWidth = 67 - end - inherited ToolButton7: TToolButton - ExplicitWidth = 117 - end inherited ToolButton3: TToolButton ExplicitWidth = 98 end diff --git a/Source/Modulos/Comisiones/Views/uEditorComision.pas b/Source/Modulos/Comisiones/Views/uEditorComision.pas index 18933bf2..c8309dc4 100644 --- a/Source/Modulos/Comisiones/Views/uEditorComision.pas +++ b/Source/Modulos/Comisiones/Views/uEditorComision.pas @@ -134,7 +134,10 @@ end; procedure TfEditorComision.ImprimirInterno; begin inherited; - FController.Print(FComision); + if (Application.MessageBox('¿Desea previsualizar la liquidación de comisiones sin desglosar?', 'Atención', MB_YESNO) = IDYES) then + FController.Print(FComision, False) + else + FController.Print(FComision, True); end; procedure TfEditorComision.JvFormStorageRestorePlacement(Sender: TObject); @@ -170,7 +173,10 @@ end; procedure TfEditorComision.PrevisualizarInterno; begin inherited; - FController.Preview(FComision); + if (Application.MessageBox('¿Desea previsualizar la liquidación de comisiones sin desglosar?', 'Atención', MB_YESNO) = IDYES) then + FController.Preview(FComision, False) + else + FController.Preview(FComision, True); end; procedure TfEditorComision.SetComision(const Value: IBizComisiones); diff --git a/Source/Modulos/Comisiones/Views/uEditorComisiones.pas b/Source/Modulos/Comisiones/Views/uEditorComisiones.pas index a96c4289..210059ae 100644 --- a/Source/Modulos/Comisiones/Views/uEditorComisiones.pas +++ b/Source/Modulos/Comisiones/Views/uEditorComisiones.pas @@ -83,7 +83,10 @@ end; procedure TfEditorComisiones.ImprimirInterno; begin // inherited; - FController.Print(Nil); + if (Application.MessageBox('¿Desea previsualizar la liquidación de comisiones sin desglosar?', 'Atención', MB_YESNO) = IDYES) then + FController.Print(Nil, False) + else + FController.Print(Nil, True); end; function TfEditorComisiones.GetController: IComisionesController; @@ -115,7 +118,10 @@ end; procedure TfEditorComisiones.PrevisualizarInterno; begin // inherited; - FController.Preview(Nil); + if (Application.MessageBox('¿Desea previsualizar la liquidación de comisiones sin desglosar?', 'Atención', MB_YESNO) = IDYES) then + FController.Preview(Nil, False) + else + FController.Preview(Nil, True); end; procedure TfEditorComisiones.SetComisiones(const Value: IBizComisiones); diff --git a/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm index db21f14b..a67e3383 100644 --- a/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm +++ b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm @@ -1,7 +1,5 @@ inherited fEditorComisionesPreview: TfEditorComisionesPreview Caption = 'Previsualizar la factura' - ExplicitWidth = 320 - ExplicitHeight = 240 PixelsPerInch = 96 TextHeight = 13 object pnlFiltrar: TTBXDockablePanel [3] @@ -19,7 +17,6 @@ inherited fEditorComisionesPreview: TfEditorComisionesPreview ShowCaptionWhenDocked = False SupportedDocks = [dkStandardDock, dkMultiDock] TabOrder = 3 - ExplicitWidth = 128 object Label1: TLabel Left = 261 Top = 50 diff --git a/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas index 41003383..2b191fe8 100644 --- a/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas +++ b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas @@ -74,7 +74,7 @@ var begin ShowHourglassCursor; try - AStream := FDataModule.GetReport(Null, edtFechaFiltro1.Text, edtFechaFiltro2.Text, cbAgentes.EditValue); + AStream := FDataModule.GetReport(Null, False, edtFechaFiltro1.Text, edtFechaFiltro2.Text, cbAgentes.EditValue); try Report.PreviewPages.Clear; LoadFromStream(AStream); diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas index 19ef7817..beea3599 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -146,7 +146,8 @@ begin ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); ADestino.Edit; ADestino.REFERENCIA := AOrigen.REFERENCIA; - ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; ADestino.CONCEPTO := AOrigen.CONCEPTO; ADestino.CANTIDAD := AOrigen.CANTIDAD; ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; @@ -190,7 +191,8 @@ begin ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); ADestino.Edit; ADestino.REFERENCIA := AOrigen.REFERENCIA; - ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; ADestino.CONCEPTO := AOrigen.CONCEPTO; ADestino.CANTIDAD := AOrigen.CANTIDAD; ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index 33e2f96b..1697b7ab 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -1252,7 +1252,7 @@ object RptFacturasCliente: TRptFacturasCliente PreviewOptions.Zoom = 1.000000000000000000 PrintOptions.Printer = 'Default' ReportOptions.CreateDate = 37871.995398692100000000 - ReportOptions.LastChange = 39258.717259837960000000 + ReportOptions.LastChange = 39266.753072372690000000 ReportOptions.VersionBuild = '1' ReportOptions.VersionMajor = '12' ReportOptions.VersionMinor = '13' @@ -1268,7 +1268,10 @@ object RptFacturasCliente: TRptFacturasCliente ' or ( <> '#39#39') then' ' DatosCliente.Lines.Add( + '#39' ' + - #39' + );' + ' '#39' + );' + '' + ' if ( <> '#39#39') then' + ' DatosCliente.Lines.Add();' 'end;' '' 'procedure BandaDetallesOnBeforePrint(Sender: TfrxComponent);' diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas index 8ffee4e8..06e381ef 100644 --- a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas @@ -142,7 +142,8 @@ begin ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); ADestino.Edit; ADestino.REFERENCIA := AOrigen.REFERENCIA; - ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; ADestino.CONCEPTO := AOrigen.CONCEPTO; ADestino.CANTIDAD := AOrigen.CANTIDAD; ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; @@ -185,7 +186,8 @@ begin ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); ADestino.Edit; ADestino.REFERENCIA := AOrigen.REFERENCIA; - ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; ADestino.CONCEPTO := AOrigen.CONCEPTO; ADestino.CANTIDAD := AOrigen.CANTIDAD; ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; @@ -218,6 +220,7 @@ var AFacturaActual : IBizFacturaProveedor; AAlbaranesController : IAlbaranesProveedorController; I: Integer; + bEnEdicion : Boolean; begin Result := False; @@ -255,6 +258,16 @@ begin Anadir(AFacturas); AAlbaranesController.RecuperarProveedor(AListaAlbaranes); AFacturas.Proveedor := AListaAlbaranes.Proveedor; + + //Siempre asignaremos por defecto la referencia de factura de proveedor que tenga el primer albaran del proveedor + bEnEdicion := (AFacturas.DataTable.State in dsEditModes); + if not bEnEdicion then + AFacturas.Edit; + AFacturas.REFERENCIA_PROVEEDOR := AListaAlbaranes.REF_FACTURA_PROV; + AFacturas.Post; + if bEnEdicion then + AFacturas.Edit; + AFacturaActual := AFacturas; end; diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index 7203590c..70283c81 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -34,6 +34,8 @@ + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas index 6da3361d..d8d7379f 100644 --- a/Source/Servicios/FactuGES_Intf.pas +++ b/Source/Servicios/FactuGES_Intf.pas @@ -159,7 +159,8 @@ type IsrvComisiones = interface(IDARemoteService) ['{461DBBE7-293D-497A-8CD1-840401883BCE}'] function GetNextAutoInc(const GeneratorName: String): Integer; - function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; + function GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: String; const FechaFin: String; + const AAgenteID: Variant): Binary; end; { CosrvComisiones } @@ -173,7 +174,8 @@ type function __GetInterfaceName:string; override; function GetNextAutoInc(const GeneratorName: String): Integer; - function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; + function GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: String; const FechaFin: String; + const AAgenteID: Variant): Binary; end; { IsrvLogin } @@ -856,7 +858,8 @@ begin end end; -function TsrvComisiones_Proxy.GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; +function TsrvComisiones_Proxy.GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: String; const FechaFin: String; + const AAgenteID: Variant): Binary; var __request, __response : TMemoryStream; begin @@ -867,6 +870,7 @@ begin try __Message.Initialize(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); __Message.Write('AComisionID', TypeInfo(Variant), AComisionID, []); + __Message.Write('DesglosadoProv', TypeInfo(Boolean), DesglosadoProv, []); __Message.Write('FechaIni', TypeInfo(String), FechaIni, []); __Message.Write('FechaFin', TypeInfo(String), FechaFin, []); __Message.Write('AAgenteID', TypeInfo(Variant), AAgenteID, []); diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas index 05730b7c..f0fbda48 100644 --- a/Source/Servicios/FactuGES_Invk.pas +++ b/Source/Servicios/FactuGES_Invk.pas @@ -248,9 +248,11 @@ begin end; procedure TsrvComisiones_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerateReport(const AComisionID: Variant; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; } +{ function GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: String; const FechaFin: String; + const AAgenteID: Variant): Binary; } var AComisionID: Variant; + DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant; @@ -260,11 +262,12 @@ begin lResult := nil; try __Message.Read('AComisionID', TypeInfo(Variant), AComisionID, []); + __Message.Read('DesglosadoProv', TypeInfo(Boolean), DesglosadoProv, []); __Message.Read('FechaIni', TypeInfo(String), FechaIni, []); __Message.Read('FechaFin', TypeInfo(String), FechaFin, []); __Message.Read('AAgenteID', TypeInfo(Variant), AAgenteID, []); - lResult := (__Instance as IsrvComisiones).GenerateReport(AComisionID, FechaIni, FechaFin, AAgenteID); + lResult := (__Instance as IsrvComisiones).GenerateReport(AComisionID, DesglosadoProv, FechaIni, FechaFin, AAgenteID); __Message.Initialize(__Transport, 'FactuGES', 'srvComisiones', 'GenerateReportResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res index 3bfb8c51bcec4c23f3a65122873552ff3da1bf94..19e990466cf3317ffc6b67ac6dd2a705a15826f7 100644 GIT binary patch delta 38 ucmeyljq${G#t90H6&n@vMfqG(i_>%RixX4w1B&v?Cck5G+&n?_r7Hk0M-R3D delta 19 bcmX@Ho$=>3#t90Hnj01KMK|9Ued!7SRIms(