diff --git a/Build/Build.fbp5 b/Build/Build.fbp5 index 21df6f05..f9201b2e 100644 --- a/Build/Build.fbp5 +++ b/Build/Build.fbp5 @@ -1162,1302 +1162,6 @@ Comments= 0 1000 False - - Contabilidad - 0 - - Contabilidad - True - True - False - True - False - - 0 - True - 0 - 1000 - False - - Contabilidad - 0 - - Contabilidad - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Contabilidad\Model\Contabilidad_model.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Contabilidad\Data\Contabilidad_data.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Contabilidad\Controller\Contabilidad_controller.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Contabilidad\Views\Contabilidad_view.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - True - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - %source_path%\Modulos\Contabilidad\Plugin\Contabilidad_plugin.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - Ejercicios - 0 - - Ejercicios - True - True - False - True - False - - 0 - False - 0 - 1000 - False - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - False - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - - - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - False - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - - - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - False - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - - - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - False - True - - False - - False - False - True - True - False - False - False - False - False - False - False - False - 3082 - - 1 - 0 - 0 - False - 0 - - - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - - - 0 - - True - False - False - True - True - 0 - 1252 - 12 - Release - False - - - True - True - - False - - False - False - False - True - False - False - False - False - False - False - False - False - 3081 - - 1 - 0 - 0 - False - 0 - %source_path%\ApplicationBase\Ejercicios\Plugin\Ejercicios_plugin.dpk - True - 0 - - - rcBorland - 1000 - - False - False - False - False - [usPackages,usCompiler,usLinker,usVersionInfo] - False - False - - - - False - False - False - False - False - True - False - False - %package_path% - - - - False - %modules_dcp_path% - False - - False - - False - True - False - False - True - 4194304 - False - False - False - True - %library_path% - 0 - False - 0 - 1048576 - 16384 - - True - True - %output_path% - False - - False - fa8 - False - False - - True - True - False - False - WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; - - False - False - True - - - - General 0 @@ -2470,7 +1174,7 @@ Comments= False 0 - True + False 0 1000 False @@ -4680,7 +3384,416 @@ Comments= True - + + + Contabilidad + 0 + + Contabilidad + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contabilidad\Model\Contabilidad_model.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contabilidad\Data\Contabilidad_data.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contabilidad\Controller\Contabilidad_controller.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Contactos + 0 + + Contactos + True + True + False + True + False + + 0 + False + 0 + 1000 + False + 0 @@ -4751,7 +3864,7 @@ Comments= False False - False + False False False True @@ -4805,7 +3918,7 @@ Comments= True - + 0 @@ -4876,7 +3989,7 @@ Comments= False False - False + False False False True @@ -4930,7 +4043,7 @@ Comments= True - + 0 @@ -5001,7 +4114,7 @@ Comments= False False - False + False False False True @@ -5056,6 +4169,910 @@ Comments= + + Contabilidad + 0 + + Contabilidad + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contabilidad\Views\Contabilidad_view.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contabilidad\Plugin\Contabilidad_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Ejercicios + 0 + + Ejercicios + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + False + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + False + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + False + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + False + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\ApplicationBase\Ejercicios\Plugin\Ejercicios_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + diff --git a/Database/ACANA.FDB b/Database/ACANA.FDB index 49c0dbf6..4f633087 100644 Binary files a/Database/ACANA.FDB and b/Database/ACANA.FDB differ diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas index 87a05131..52c8b801 100644 --- a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas @@ -9,21 +9,13 @@ 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 = '{A693E269-BAF7-46A1-84E5-DBC746856BE3}'; - RID_AlbaranesCliente = '{1D19F302-9D09-4E86-9602-98B88C9FF5E7}'; - RID_AlbaranesCliente_Detalles = '{DFBF54C4-E8F9-47BA-9920-89709FB21148}'; + RID_AlbaranesCliente = '{075163FA-70D9-40DC-999D-5CAB8882B53C}'; + RID_AlbaranesCliente_Detalles = '{40889198-AE9A-45C6-A6DE-31DE39AF5323}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_AlbaranesCliente = 'AlbaranesCliente'; nme_AlbaranesCliente_Detalles = 'AlbaranesCliente_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { AlbaranesCliente fields } fld_AlbaranesClienteID = 'ID'; fld_AlbaranesClienteID_EMPRESA = 'ID_EMPRESA'; @@ -139,44 +131,9 @@ const idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{15B4231D-DD94-42A2-9AC2-4C32AFB4B267}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IAlbaranesCliente } IAlbaranesCliente = interface(IDAStronglyTypedDataTable) - ['{26F46D95-DBBE-40FD-BB99-EEC4B6EE75CD}'] + ['{9E47C30E-71A9-4677-978C-7E91AF2A9ABE}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -667,7 +624,7 @@ type { IAlbaranesCliente_Detalles } IAlbaranesCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{C442C7DF-32BE-4A00-8446-3DA2F08508AC}'] + ['{75F4E552-56D6-47A3-9D76-77310590BF15}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -860,39 +817,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TAlbaranesClienteDataTableRules } constructor TAlbaranesClienteDataTableRules.Create(aDataTable: TDADataTable); var @@ -2043,7 +1967,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_AlbaranesCliente, TAlbaranesClienteDataTableRules); RegisterDataTableRules(RID_AlbaranesCliente_Detalles, TAlbaranesCliente_DetallesDataTableRules); diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas index d9a95d41..74a843f1 100644 --- a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas @@ -9,48 +9,13 @@ 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 = '{95530CA0-F6C5-439B-ACE3-8DD1B50D65AC}'; - RID_AlbaranesClienteDelta = '{9E1A105B-7BE6-4100-BED9-9EB5E4517371}'; - RID_AlbaranesCliente_DetallesDelta = '{4FD893A0-294F-4ACF-8656-9DC37A524688}'; + RID_AlbaranesClienteDelta = '{9D0691A8-4F4E-4F30-84A1-BCBA842729F3}'; + RID_AlbaranesCliente_DetallesDelta = '{424240C2-D81F-4084-B7A9-510E394C566F}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{95530CA0-F6C5-439B-ACE3-8DD1B50D65AC}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IAlbaranesClienteDelta } IAlbaranesClienteDelta = interface(IAlbaranesCliente) - ['{9E1A105B-7BE6-4100-BED9-9EB5E4517371}'] + ['{9D0691A8-4F4E-4F30-84A1-BCBA842729F3}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -542,7 +507,7 @@ type { IAlbaranesCliente_DetallesDelta } IAlbaranesCliente_DetallesDelta = interface(IAlbaranesCliente_Detalles) - ['{4FD893A0-294F-4ACF-8656-9DC37A524688}'] + ['{424240C2-D81F-4084-B7A9-510E394C566F}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_ALBARANValue : Integer; @@ -735,49 +700,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TAlbaranesClienteBusinessProcessorRules } constructor TAlbaranesClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2460,7 +2382,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesClienteDelta, TAlbaranesClienteBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesCliente_DetallesDelta, TAlbaranesCliente_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas index d4c7e8f7..c6d6aeb6 100644 --- a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas +++ b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas @@ -8,73 +8,107 @@ uses const BIZ_SERVER_ALBARAN_CLIENTE = 'Server.AlbaranCliente'; - REF_ALBARANES_CLIENTE = 'REF_ALBARANES_CLIENTE'; - REF_ALBARANES_DEV_CLIENTE = 'REF_ALBARANES_DEV_CLIENTE'; type TBizAlbaranClienteServer = class(TAlbaranesClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schAlbaranesClienteClient_Intf; + schAlbaranesClienteClient_Intf, srvReferencias_Impl; + +const + REF_ALBARANES_CLIENTE = 'REF_ALBARANES_CLIENTE'; + REF_ALBARANES_DEV_CLIENTE = 'REF_ALBARANES_DEV_CLIENTE'; { TBizAlbaranClienteServer } -procedure TBizAlbaranClienteServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - CodigoReferencia: String; - +procedure TBizAlbaranClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + + + +procedure TBizAlbaranClienteServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; + + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA]; - if (Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL] < 0) then - CodigoReferencia := REF_ALBARANES_DEV_CLIENTE - else - CodigoReferencia := REF_ALBARANES_CLIENTE; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [CodigoReferencia, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + CodigoReferencia + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [CodigoReferencia, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; + +function TBizAlbaranClienteServer.DarReferencia: String; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_CLIENTE + else + ACodigoReferencia := REF_ALBARANES_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ACodigoReferencia, ID_EMPRESA) + finally + Free; + end; +end; + + +function TBizAlbaranClienteServer.IncrementarReferencia: Boolean; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_CLIENTE + else + ACodigoReferencia := REF_ALBARANES_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ACodigoReferencia, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_CLIENTE, TBizAlbaranClienteServer); diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm index 6502ed78..62353d58 100644 --- a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm @@ -14,40 +14,6 @@ object srvAlbaranesCliente: TsrvAlbaranesCliente ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + - 'IGO'#10'AND ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -591,32 +557,6 @@ object srvAlbaranesCliente: TsrvAlbaranesCliente JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas index fb958d66..a643c926 100644 --- a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas @@ -30,7 +30,6 @@ type procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); procedure DARemoteServiceCreate(Sender: TObject); - private protected { IsrvAlbaranesCliente methods } function GenerateReport(const ID: String): Binary; @@ -46,6 +45,12 @@ uses // uRptAlbaranesCliente_Server, uBizAlbaranClienteServer; +const + REF_ALBARANES_CLIENTE = 'REF_ALBARANES_CLIENTE'; + REF_ALBARANES_DEV_CLIENTE = 'REF_ALBARANES_DEV_CLIENTE'; + + + procedure Create_srvAlbaranesCliente(out anInstance : IUnknown); begin anInstance := TsrvAlbaranesCliente.Create(NIL); diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas index d7a3411a..076f27c0 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas @@ -9,21 +9,13 @@ 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 = '{E264DAAA-A65A-4F97-8399-054CD6715754}'; - RID_AlbaranesProveedor = '{8070DE55-5BC2-4DCA-B26F-B6E77353CD13}'; - RID_AlbaranesProveedor_Detalles = '{B5916447-B176-439A-8E99-A6CDA1527B86}'; + RID_AlbaranesProveedor = '{5D89B51C-1BBF-4965-9ACB-E1001B5BB710}'; + RID_AlbaranesProveedor_Detalles = '{F59ECE23-B806-40E7-B93E-B6544F6AF9EF}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_AlbaranesProveedor = 'AlbaranesProveedor'; nme_AlbaranesProveedor_Detalles = 'AlbaranesProveedor_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { AlbaranesProveedor fields } fld_AlbaranesProveedorID = 'ID'; fld_AlbaranesProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -133,44 +125,9 @@ const idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{87BCEB3E-3FAF-44FF-A992-70B549FF79CE}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IAlbaranesProveedor } IAlbaranesProveedor = interface(IDAStronglyTypedDataTable) - ['{91E3DC89-DDB4-4727-88A3-1931B49B7F08}'] + ['{3AAA0A9E-4414-45B7-B5CB-A7A2B174ABD0}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -625,7 +582,7 @@ type { IAlbaranesProveedor_Detalles } IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{A644C742-27E7-449C-9A6B-ED24143E13CD}'] + ['{7D0DD573-4F12-44EB-9355-C334C92E18C0}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -818,39 +775,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TAlbaranesProveedorDataTableRules } constructor TAlbaranesProveedorDataTableRules.Create(aDataTable: TDADataTable); var @@ -1938,7 +1862,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_AlbaranesProveedor, TAlbaranesProveedorDataTableRules); RegisterDataTableRules(RID_AlbaranesProveedor_Detalles, TAlbaranesProveedor_DetallesDataTableRules); diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas index 678de95e..2d20cddb 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas @@ -9,48 +9,13 @@ 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 = '{AD9EC61F-92A8-4757-A729-430A9C0F1014}'; - RID_AlbaranesProveedorDelta = '{6120285E-A519-4B85-96C3-9568FD81A17F}'; - RID_AlbaranesProveedor_DetallesDelta = '{CEDDEB44-9AE4-468F-A241-3235B7D100D6}'; + RID_AlbaranesProveedorDelta = '{54AAD20A-09DB-4C98-B452-D36229C7A4F3}'; + RID_AlbaranesProveedor_DetallesDelta = '{903174F0-DB0A-491D-9C1E-222E145262F6}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{AD9EC61F-92A8-4757-A729-430A9C0F1014}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IAlbaranesProveedorDelta } IAlbaranesProveedorDelta = interface(IAlbaranesProveedor) - ['{6120285E-A519-4B85-96C3-9568FD81A17F}'] + ['{54AAD20A-09DB-4C98-B452-D36229C7A4F3}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -506,7 +471,7 @@ type { IAlbaranesProveedor_DetallesDelta } IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles) - ['{CEDDEB44-9AE4-468F-A241-3235B7D100D6}'] + ['{903174F0-DB0A-491D-9C1E-222E145262F6}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_ALBARANValue : Integer; @@ -699,49 +664,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TAlbaranesProveedorBusinessProcessorRules } constructor TAlbaranesProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2331,7 +2253,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesProveedorDelta, TAlbaranesProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesProveedor_DetallesDelta, TAlbaranesProveedor_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS index e4ef8edd..bd82e6bb 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS @@ -8,74 +8,106 @@ uses const BIZ_SERVER_ALBARAN_PROVEEDOR = 'Server.AlbaranProveedor'; - REF_ALBARANES_PROVEEDOR = 'REF_ALBARANES_PROVEEDOR'; - REF_ALBARANES_DEV_PROVEEDOR = 'REF_ALBARANES_DEV_PROVEEDOR'; type TBizAlbaranProveedorServer = class(TFacturasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses - Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, - schAlbaranesProveedorClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, + schAlbaranesProveedorClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses, + srvReferencias_Impl; + +const + REF_ALBARANES_PROVEEDOR = 'REF_ALBARANES_PROVEEDOR'; + REF_ALBARANES_DEV_PROVEEDOR = 'REF_ALBARANES_DEV_PROVEEDOR'; { TBizFacturasClienteServer } -procedure TBizAlbaranProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - CodigoReferencia: String; - +procedure TBizAlbaranProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizAlbaranProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]; - if Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] < 0 then - CodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR - else - CodigoReferencia := REF_ALBARANES_PROVEEDOR; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [CodigoReferencia, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + CodigoReferencia + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [CodigoReferencia, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizAlbaranProveedorServer.DarReferencia: String; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + ACodigoReferencia := REF_ALBARANES_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ACodigoReferencia, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizAlbaranProveedorServer.IncrementarReferencia: Boolean; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + ACodigoReferencia := REF_ALBARANES_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ACodigoReferencia, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_PROVEEDOR, TBizAlbaranProveedorServer); end. + diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm index edda8c75..f980ffd1 100644 --- a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm @@ -14,40 +14,6 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + - 'IGO'#10'AND ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -565,32 +531,6 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas index bb6a5ca9..18a77a3d 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas @@ -3,27 +3,19 @@ unit schFacturasClienteClient_Intf; interface uses - Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; 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 = '{BFD0BE4F-A013-4368-AAB1-D78832815453}'; - RID_FacturasCliente = '{F251FC90-F8DB-4542-BB27-1D9D1C38B5C2}'; - RID_FacturasCliente_Detalles = '{21F1B1B1-A23D-4DE8-A7A9-91B042AA33C4}'; + RID_FacturasCliente = '{F2391B37-1CFC-4278-9886-10B58EB16F64}'; + RID_FacturasCliente_Detalles = '{85136507-38CB-4985-B1C4-DFBDB0D69903}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_FacturasCliente = 'FacturasCliente'; nme_FacturasCliente_Detalles = 'FacturasCliente_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { FacturasCliente fields } fld_FacturasClienteID = 'ID'; fld_FacturasClienteID_EMPRESA = 'ID_EMPRESA'; @@ -129,44 +121,9 @@ const idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{2F985A85-CE21-459E-9476-83CB04A2F9AC}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IFacturasCliente } IFacturasCliente = interface(IDAStronglyTypedDataTable) - ['{153F474D-B1D3-4EC7-A4AE-B83884F61A16}'] + ['{EE310893-B940-40AD-B0F3-7BBF9128C629}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -377,7 +334,7 @@ type end; { TFacturasClienteDataTableRules } - TFacturasClienteDataTableRules = class(TDADataTableRules, IFacturasCliente) + TFacturasClienteDataTableRules = class(TIntfObjectDADataTableRules, IFacturasCliente) private f_OBSERVACIONES: IROStrings; procedure OBSERVACIONES_OnChange(Sender: TObject); @@ -597,7 +554,7 @@ type { IFacturasCliente_Detalles } IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{CC81CA29-10BA-4644-B6C0-86EB1BB27BBD}'] + ['{69194180-6BEA-41D0-8DD9-21E562F1B351}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -689,7 +646,7 @@ type end; { TFacturasCliente_DetallesDataTableRules } - TFacturasCliente_DetallesDataTableRules = class(TDADataTableRules, IFacturasCliente_Detalles) + TFacturasCliente_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IFacturasCliente_Detalles) private protected { Property getters and setters } @@ -790,39 +747,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TFacturasClienteDataTableRules } constructor TFacturasClienteDataTableRules.Create(aDataTable: TDADataTable); var @@ -1863,7 +1787,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_FacturasCliente, TFacturasClienteDataTableRules); RegisterDataTableRules(RID_FacturasCliente_Detalles, TFacturasCliente_DetallesDataTableRules); diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas index 1f111756..d4ccfc90 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas @@ -9,48 +9,13 @@ 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 = '{96BD45A4-7433-4AE5-B411-7B16AB88936D}'; - RID_FacturasClienteDelta = '{4EBF93DA-5847-45E1-960B-069B5239374F}'; - RID_FacturasCliente_DetallesDelta = '{1CB4A035-683D-412C-A365-6CF3A4E86ACD}'; + RID_FacturasClienteDelta = '{156A6AD0-D912-4FCF-AC71-2BB455BBC0AB}'; + RID_FacturasCliente_DetallesDelta = '{F4802AAF-93A6-40A6-8DC8-8BF1B5E4B06A}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{96BD45A4-7433-4AE5-B411-7B16AB88936D}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IFacturasClienteDelta } IFacturasClienteDelta = interface(IFacturasCliente) - ['{4EBF93DA-5847-45E1-960B-069B5239374F}'] + ['{156A6AD0-D912-4FCF-AC71-2BB455BBC0AB}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -481,7 +446,7 @@ type { IFacturasCliente_DetallesDelta } IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles) - ['{1CB4A035-683D-412C-A365-6CF3A4E86ACD}'] + ['{F4802AAF-93A6-40A6-8DC8-8BF1B5E4B06A}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; @@ -674,49 +639,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TFacturasClienteBusinessProcessorRules } constructor TFacturasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2238,7 +2160,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasClienteDelta, TFacturasClienteBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasCliente_DetallesDelta, TFacturasCliente_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas index 892e47fb..cd52abd9 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas @@ -8,13 +8,13 @@ uses const BIZ_SERVER_FACTURAS_CLIENTE = 'Server.FacturasCliente'; - REF_FACTURAS_CLIENTE = 'REF_FACTURAS_CLIENTE'; - REF_ABONOS_CLIENTE = 'REF_ABONOS_CLIENTE'; - CTE_TIPO_ABONO = 'A'; - CTE_TIPO_FACTURA = 'F'; type TBizFacturasClienteServer = class(TFacturasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected procedure Insert_Asiento_Factura(aChange: TDADeltaChange); virtual; procedure Update_Asiento_Factura(aChange: TDADeltaChange); virtual; @@ -28,7 +28,13 @@ implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schFacturasClienteClient_Intf; + schFacturasClienteClient_Intf, srvReferencias_Impl; + +const + REF_FACTURAS_CLIENTE = 'REF_FACTURAS_CLIENTE'; + REF_ABONOS_CLIENTE = 'REF_ABONOS_CLIENTE'; + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; { TBizFacturasClienteServer } @@ -51,59 +57,31 @@ begin // mantengan por si alguna tabla detalle lo necesita // (por ejemplo, DireccionesContacto) CanRemoveFromDelta := False; + + // Actualizamos el contador de referencias. + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; end; procedure TBizFacturasClienteServer.BeforeProcessDelta( Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - Tipo : Variant; - begin - inherited; + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin - - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA]; - Tipo := Sender.CurrentChange.NewValueByName[fld_FacturasClienteTIPO]; - - if Tipo = CTE_TIPO_FACTURA then - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_FACTURAS_CLIENTE, Empresa]) - else - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_ABONOS_CLIENTE, Empresa]); - - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_FACTURAS_CLIENTE + ' / ' + REF_ABONOS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - if Tipo = CTE_TIPO_FACTURA then - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_FACTURAS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]) - else - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_ABONOS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); - - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; @@ -130,6 +108,41 @@ begin end; end; +function TBizFacturasClienteServer.DarReferencia: String; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_CLIENTE + else + ATipo := REF_ABONOS_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ATipo, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizFacturasClienteServer.IncrementarReferencia: Boolean; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_CLIENTE + else + ATipo := REF_ABONOS_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ATipo, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + procedure TBizFacturasClienteServer.Insert_Asiento_Factura(aChange: TDADeltaChange); var ASchema : TDASchema; diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm index fd18bcce..f4af2535 100644 --- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm @@ -15,42 +15,6 @@ object srvFacturasCliente: TsrvFacturasCliente DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -579,31 +543,6 @@ object srvFacturasCliente: TsrvFacturasCliente end> Name = 'Insert_AsientoFactura' end - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas index af4442ac..8f4569f0 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas @@ -9,21 +9,13 @@ 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 = '{5C2671F2-30A9-40DF-85EB-DAC3E5798C81}'; - RID_FacturasProveedor = '{EB88CFA6-A4F3-44A5-99AC-CEEF636BBC0F}'; - RID_FacturasProveedor_Detalles = '{794BFE28-FCFA-451E-809D-4B3204729DB8}'; + RID_FacturasProveedor = '{136699FF-423F-4F03-8EF2-2177BB023D1D}'; + RID_FacturasProveedor_Detalles = '{DEFE9C53-4E75-4151-97EB-0B915C6D0FA3}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_FacturasProveedor = 'FacturasProveedor'; nme_FacturasProveedor_Detalles = 'FacturasProveedor_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { FacturasProveedor fields } fld_FacturasProveedorID = 'ID'; fld_FacturasProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -123,44 +115,9 @@ const idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{2CD8615C-AC9E-463D-A28B-9DF7EA71C261}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IFacturasProveedor } IFacturasProveedor = interface(IDAStronglyTypedDataTable) - ['{19ADA8D8-BA53-426F-9AFA-700B29166843}'] + ['{C77E17AB-983D-4BA0-9307-753EEACE24CA}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -555,7 +512,7 @@ type { IFacturasProveedor_Detalles } IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{8C420A12-5489-4872-A3A6-9DE83225D778}'] + ['{A0C91003-B79C-400B-815C-9CC93FBAB289}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -748,39 +705,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TFacturasProveedorDataTableRules } constructor TFacturasProveedorDataTableRules.Create(aDataTable: TDADataTable); var @@ -1758,7 +1682,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_FacturasProveedor, TFacturasProveedorDataTableRules); RegisterDataTableRules(RID_FacturasProveedor_Detalles, TFacturasProveedor_DetallesDataTableRules); diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas index 19f97ec2..0be45955 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas @@ -9,48 +9,13 @@ 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 = '{29799EE8-6169-4A26-9C4C-02C33D658D97}'; - RID_FacturasProveedorDelta = '{90E2FE05-93D9-4478-B54E-73618BD635BF}'; - RID_FacturasProveedor_DetallesDelta = '{9215693E-0AA6-46A8-AD7B-3EAE75F51EFE}'; + RID_FacturasProveedorDelta = '{49DEF80E-CE30-451C-9F9F-ACC792AF58B2}'; + RID_FacturasProveedor_DetallesDelta = '{2373FE62-65FF-43FC-86C0-82138300CDA1}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{29799EE8-6169-4A26-9C4C-02C33D658D97}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IFacturasProveedorDelta } IFacturasProveedorDelta = interface(IFacturasProveedor) - ['{90E2FE05-93D9-4478-B54E-73618BD635BF}'] + ['{49DEF80E-CE30-451C-9F9F-ACC792AF58B2}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -445,7 +410,7 @@ type { IFacturasProveedor_DetallesDelta } IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles) - ['{9215693E-0AA6-46A8-AD7B-3EAE75F51EFE}'] + ['{2373FE62-65FF-43FC-86C0-82138300CDA1}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; @@ -638,49 +603,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TFacturasProveedorBusinessProcessorRules } constructor TFacturasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2109,7 +2031,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasProveedorDelta, TFacturasProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasProveedor_DetallesDelta, TFacturasProveedor_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas index 1a28edd4..d0bbedfa 100644 --- a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas @@ -8,80 +8,105 @@ uses const BIZ_SERVER_FACTURAS_PROVEEDOR = 'Server.FacturasProveedor'; - REF_FACTURAS_PROVEEDOR = 'REF_FACTURAS_PROVEEDOR'; - REF_ABONOS_PROVEEDOR = 'REF_ABONOS_PROVEEDOR'; - CTE_TIPO_ABONO = 'A'; - CTE_TIPO_FACTURA = 'F'; - type TBizFacturasProveedorServer = class(TFacturasProveedorBusinessProcessorRules) + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schFacturasProveedorClient_Intf; + schFacturasProveedorClient_Intf, srvReferencias_Impl; + +const + REF_FACTURAS_PROVEEDOR = 'REF_FACTURAS_PROVEEDOR'; + REF_ABONOS_PROVEEDOR = 'REF_ABONOS_PROVEEDOR'; + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; { TBizFacturasProveedorServer } -procedure TBizFacturasProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - Tipo : Variant; - +procedure TBizFacturasProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizFacturasProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA]; - Tipo := Sender.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO]; - - if Tipo = CTE_TIPO_FACTURA then - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_FACTURAS_PROVEEDOR, Empresa]) - else - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_ABONOS_PROVEEDOR, Empresa]); - - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_FACTURAS_PROVEEDOR + ' / ' + REF_ABONOS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - if Tipo = CTE_TIPO_FACTURA then - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_FACTURAS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]) - else - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_ABONOS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); - - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizFacturasProveedorServer.DarReferencia: String; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_PROVEEDOR + else + ATipo := REF_ABONOS_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ATipo, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizFacturasProveedorServer.IncrementarReferencia: Boolean; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_PROVEEDOR + else + ATipo := REF_ABONOS_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ATipo, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + + initialization RegisterBusinessProcessorRules(BIZ_SERVER_FACTURAS_PROVEEDOR, TBizFacturasProveedorServer); diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm index 7a90cfb2..579b735e 100644 --- a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm @@ -15,42 +15,6 @@ object srvFacturasProveedor: TsrvFacturasProveedor DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -519,31 +483,6 @@ object srvFacturasProveedor: TsrvFacturasProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas index eabb8b47..eb48722d 100644 --- a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas @@ -9,23 +9,15 @@ 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 = '{CA7994DB-6CC3-4494-8CDA-4D8411DB5D2D}'; - RID_PedidosProveedor = '{684C5776-911B-490A-9C71-D4EDCCAD631E}'; - RID_PedidosProveedor_Detalles = '{FCF3DE95-4073-4679-92C0-87B7E7C46108}'; - RID_PedidosProveedor_Articulos_Pendientes = '{EA978B2E-441A-49F8-AF4D-76517D74CF10}'; + RID_PedidosProveedor = '{74E7C143-965A-4B32-80F9-D2C42B5B1287}'; + RID_PedidosProveedor_Detalles = '{F254F368-78C1-4219-B5A5-3716C3A52772}'; + RID_PedidosProveedor_Articulos_Pendientes = '{5AE8E5D9-5CC5-48B5-986F-F8C8A20284A8}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_PedidosProveedor = 'PedidosProveedor'; nme_PedidosProveedor_Detalles = 'PedidosProveedor_Detalles'; nme_PedidosProveedor_Articulos_Pendientes = 'PedidosProveedor_Articulos_Pendientes'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { PedidosProveedor fields } fld_PedidosProveedorID = 'ID'; fld_PedidosProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -149,44 +141,9 @@ const idx_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR = 5; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{04456888-5D38-48BB-8CED-95617D1F2BB9}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IPedidosProveedor } IPedidosProveedor = interface(IDAStronglyTypedDataTable) - ['{4E3D9B42-CF76-460B-8136-2D0C2B3417D4}'] + ['{659AE890-EF50-4D5D-A340-A46C0FE2C5E3}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -629,7 +586,7 @@ type { IPedidosProveedor_Detalles } IPedidosProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{127BE3FD-DEF4-4C58-ABC5-5A54DCE0608D}'] + ['{858490D5-7CC4-4293-A34B-B2843B15A102}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -820,7 +777,7 @@ type { IPedidosProveedor_Articulos_Pendientes } IPedidosProveedor_Articulos_Pendientes = interface(IDAStronglyTypedDataTable) - ['{34BDDF31-970F-4F58-923B-1C0E66F27A5F}'] + ['{7D012016-CF55-4F5A-9726-B19B2CF79733}'] { Property getters and setters } function GetID_PEDIDOValue: Integer; procedure SetID_PEDIDOValue(const aValue: Integer); @@ -917,39 +874,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TPedidosProveedorDataTableRules } constructor TPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable); var @@ -2154,7 +2078,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_PedidosProveedor, TPedidosProveedorDataTableRules); RegisterDataTableRules(RID_PedidosProveedor_Detalles, TPedidosProveedor_DetallesDataTableRules); RegisterDataTableRules(RID_PedidosProveedor_Articulos_Pendientes, TPedidosProveedor_Articulos_PendientesDataTableRules); diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas index 662cc9b0..ad73ae12 100644 --- a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas @@ -9,49 +9,14 @@ 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 = '{A1F1C534-FD91-42C1-856B-0CAE9DE48B68}'; - RID_PedidosProveedorDelta = '{349D50BE-57FD-468A-8751-0374A571AAA4}'; - RID_PedidosProveedor_DetallesDelta = '{E924668B-8D1B-44C3-9DA2-D033F8C44E06}'; - RID_PedidosProveedor_Articulos_PendientesDelta = '{0B859C3A-9F82-4451-A206-24CEF18A61E9}'; + RID_PedidosProveedorDelta = '{1F3B2168-C09F-472F-8722-9DA783EF59A9}'; + RID_PedidosProveedor_DetallesDelta = '{7716AB41-604A-4367-904A-82479CDE2DA1}'; + RID_PedidosProveedor_Articulos_PendientesDelta = '{8E47806D-955F-4154-97C8-B4543A8837D7}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{A1F1C534-FD91-42C1-856B-0CAE9DE48B68}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IPedidosProveedorDelta } IPedidosProveedorDelta = interface(IPedidosProveedor) - ['{349D50BE-57FD-468A-8751-0374A571AAA4}'] + ['{1F3B2168-C09F-472F-8722-9DA783EF59A9}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -495,7 +460,7 @@ type { IPedidosProveedor_DetallesDelta } IPedidosProveedor_DetallesDelta = interface(IPedidosProveedor_Detalles) - ['{E924668B-8D1B-44C3-9DA2-D033F8C44E06}'] + ['{7716AB41-604A-4367-904A-82479CDE2DA1}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PEDIDOValue : Integer; @@ -685,7 +650,7 @@ type { IPedidosProveedor_Articulos_PendientesDelta } IPedidosProveedor_Articulos_PendientesDelta = interface(IPedidosProveedor_Articulos_Pendientes) - ['{0B859C3A-9F82-4451-A206-24CEF18A61E9}'] + ['{8E47806D-955F-4154-97C8-B4543A8837D7}'] { Property getters and setters } function GetOldID_PEDIDOValue : Integer; function GetOldREFERENCIAValue : String; @@ -782,49 +747,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TPedidosProveedorBusinessProcessorRules } constructor TPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2581,7 +2503,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PedidosProveedorDelta, TPedidosProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PedidosProveedor_DetallesDelta, TPedidosProveedor_DetallesBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PedidosProveedor_Articulos_PendientesDelta, TPedidosProveedor_Articulos_PendientesBusinessProcessorRules); diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas index 5c128d8e..bf2d75f3 100644 --- a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas @@ -8,68 +8,91 @@ uses const BIZ_SERVER_PEDIDOS_PROVEEDOR = 'Server.PedidosProveedor'; - REF_PEDIDOS_PROVEEDOR = 'REF_PEDIDOS_PROVEEDOR'; type TBizPedidosProveedorServer = class(TPedidosProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schPedidosProveedorClient_Intf; + schPedidosProveedorClient_Intf, srvReferencias_Impl; + +const + REF_PEDIDOS_PROVEEDOR = 'REF_PEDIDOS_PROVEEDOR'; { TBizPedidosProveedorServer } -procedure TBizPedidosProveedorServer.BeforeProcessDelta( - Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - +procedure TBizPedidosProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizPedidosProveedorServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA]; - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_PEDIDOS_PROVEEDOR, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_PEDIDOS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_PEDIDOS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizPedidosProveedorServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_PEDIDOS_PROVEEDOR, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizPedidosProveedorServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_PEDIDOS_PROVEEDOR, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_PEDIDOS_PROVEEDOR, TBizPedidosProveedorServer); end. + diff --git a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm index aab23622..6de36cf8 100644 --- a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm +++ b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm @@ -14,40 +14,6 @@ object srvPedidosProveedor: TsrvPedidosProveedor ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + - 'IGO'#10'AND ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -619,32 +585,6 @@ object srvPedidosProveedor: TsrvPedidosProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas index bad4852d..b0d14b02 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas @@ -9,21 +9,13 @@ 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 = '{6594B31A-A292-486E-A784-AF4659E1A953}'; - RID_PresupuestosCliente = '{13857C95-50E8-4EF5-8544-ABFCE393A83E}'; - RID_PresupuestosCliente_Detalles = '{FE4E1E48-710A-404F-B2DD-4547549B420D}'; + RID_PresupuestosCliente = '{E1C79C14-6D88-4DE2-8C1C-9027B44498C9}'; + RID_PresupuestosCliente_Detalles = '{198216A6-7817-4E5D-B053-94EF41471C94}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_PresupuestosCliente = 'PresupuestosCliente'; nme_PresupuestosCliente_Detalles = 'PresupuestosCliente_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { PresupuestosCliente fields } fld_PresupuestosClienteID = 'ID'; fld_PresupuestosClienteID_EMPRESA = 'ID_EMPRESA'; @@ -117,44 +109,9 @@ const idx_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{D7753D57-71A2-4C4D-A580-8D58520FCFD3}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IPresupuestosCliente } IPresupuestosCliente = interface(IDAStronglyTypedDataTable) - ['{4FCC9A5F-7A94-4A3A-940A-4CA0D4176EDB}'] + ['{6413A346-D037-4FA8-B7B4-CBD611916F97}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -513,7 +470,7 @@ type { IPresupuestosCliente_Detalles } IPresupuestosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{5B7F200F-3962-455D-98BB-A24DE98BD18B}'] + ['{862A13D0-9B6A-44BE-BE39-0779D381B015}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -706,39 +663,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TPresupuestosClienteDataTableRules } constructor TPresupuestosClienteDataTableRules.Create(aDataTable: TDADataTable); var @@ -1668,7 +1592,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_PresupuestosCliente, TPresupuestosClienteDataTableRules); RegisterDataTableRules(RID_PresupuestosCliente_Detalles, TPresupuestosCliente_DetallesDataTableRules); diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas index d13a8bcd..81beb540 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas @@ -9,48 +9,13 @@ 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 = '{0B34135E-0FB6-4CBA-AF23-A26B88542C10}'; - RID_PresupuestosClienteDelta = '{847B43BF-5186-406F-92E6-2135D35EF01F}'; - RID_PresupuestosCliente_DetallesDelta = '{1DA22D38-0DB5-450C-AF43-3F7F4D2EA56E}'; + RID_PresupuestosClienteDelta = '{D14C4979-8012-4543-A051-FA40304370C4}'; + RID_PresupuestosCliente_DetallesDelta = '{D3649E01-484C-44F1-8B19-9592C984B428}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{0B34135E-0FB6-4CBA-AF23-A26B88542C10}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IPresupuestosClienteDelta } IPresupuestosClienteDelta = interface(IPresupuestosCliente) - ['{847B43BF-5186-406F-92E6-2135D35EF01F}'] + ['{D14C4979-8012-4543-A051-FA40304370C4}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -412,7 +377,7 @@ type { IPresupuestosCliente_DetallesDelta } IPresupuestosCliente_DetallesDelta = interface(IPresupuestosCliente_Detalles) - ['{1DA22D38-0DB5-450C-AF43-3F7F4D2EA56E}'] + ['{D3649E01-484C-44F1-8B19-9592C984B428}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PRESUPUESTOValue : Integer; @@ -605,49 +570,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TPresupuestosClienteBusinessProcessorRules } constructor TPresupuestosClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2001,7 +1923,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PresupuestosClienteDelta, TPresupuestosClienteBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PresupuestosCliente_DetallesDelta, TPresupuestosCliente_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas index dc0784b0..734b90bc 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas @@ -8,69 +8,95 @@ uses const BIZ_SERVER_PRESUPUESTOS_CLIENTE = 'Server.PresupuestosCliente'; - REF_PRESUPUESTOS_CLIENTE = 'REF_PRESUPUESTOS_CLIENTE'; type TBizPresupuestosClienteServer = class(TPresupuestosClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schPresupuestosClienteClient_Intf; + schPresupuestosClienteClient_Intf, srvReferencias_Impl; + +const + REF_PRESUPUESTOS_CLIENTE = 'REF_PRESUPUESTOS_CLIENTE'; { TBizPresupuestosClienteServer } -procedure TBizPresupuestosClienteServer.BeforeProcessDelta( - Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - +procedure TBizPresupuestosClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizPresupuestosClienteServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; + + FReferenciaAutomatica := False; case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_PresupuestosClienteID_EMPRESA]; - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_PRESUPUESTOS_CLIENTE, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_PRESUPUESTOS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_PRESUPUESTOS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; + +function TBizPresupuestosClienteServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_PRESUPUESTOS_CLIENTE, ID_EMPRESA) + finally + Free; + end; +end; + + +function TBizPresupuestosClienteServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_PRESUPUESTOS_CLIENTE, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_PRESUPUESTOS_CLIENTE, TBizPresupuestosClienteServer); end. + diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm index 2133b44e..1dc27b88 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -13,43 +13,6 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - ConnectionType = 'Interbase' - Default = True - TargetTable = 'REFERENCIAS' - Name = 'IBX' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -487,34 +450,6 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - ConnectionType = 'Interbase' - Default = True - Name = 'IBX' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas index b349b811..5ddb3ee9 100644 --- a/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas +++ b/Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas @@ -11,6 +11,14 @@ type function GetFechaPago: TDateTime; procedure SetFechaPago(const Value: TDateTime); property FechaPago: TDateTime Read GetFechaPago write SetFechaPago; + + function GetIgnorarContabilidad: Integer; + procedure SetIgnorarContabilidad(const Value: Integer); + property IgnorarContabilidad: Integer Read GetIgnorarContabilidad write SetIgnorarContabilidad; + + function GetIdSubCuenta: Integer; + procedure SetIdSubCuenta(const Value: Integer); + property IdSubCuenta: Integer Read GetIdSubCuenta write SetIdSubCuenta; end; implementation diff --git a/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas index b029ae66..cd9c702c 100644 --- a/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas +++ b/Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas @@ -32,8 +32,8 @@ uses type IPagosClienteController = interface(ISujeto) ['{1864471E-74FA-4E96-BA8D-21357DA38B0F}'] - function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; - procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String); + function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''; Const IgnorarContabilidad: Integer = 0; Const IdSubCuenta: Integer = 0): Boolean; + procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String; Const IgnorarContabilidad: Integer); function Eliminar(APagoCliente : IBizPagosCliente): Boolean; function EliminarTodo(APagossCliente : IBizPagosCliente): Boolean; end; @@ -47,8 +47,8 @@ type public constructor Create; virtual; destructor Destroy; override; - function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; - procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String); + function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''; Const IgnorarContabilidad: Integer = 0; Const IdSubCuenta: Integer = 0): Boolean; + procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String; Const IgnorarContabilidad: Integer); function Eliminar(APagoCliente : IBizPagosCliente): Boolean; function EliminarTodo(APagosCliente : IBizPagosCliente): Boolean; end; @@ -63,7 +63,7 @@ uses { TPagosClienteController } -function TPagosClienteController.Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; +function TPagosClienteController.Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''; Const IgnorarContabilidad: Integer = 0; Const IdSubCuenta: Integer = 0): Boolean; { Si el pago introducido es un pago y no una devolución devolvemos true en caso de ser una devolución devolvemos false} begin @@ -79,7 +79,10 @@ begin else APagosCliente.TIPO := CTE_DEVOLUCION; - Result := (APagosCliente.TIPO = CTE_PAGO); + APagosCliente.IGNORAR_CONTABILIDAD := IgnorarContabilidad; + APagosCliente.CUENTA := IntToStr(IdSubCuenta); + + Result := (APagosCliente.TIPO = CTE_PAGO); APagosCliente.Post; end; @@ -136,10 +139,11 @@ begin end; end; -procedure TPagosClienteController.Modificar(APagosCliente: IBizPagosCliente; const Fecha: String); +procedure TPagosClienteController.Modificar(APagosCliente: IBizPagosCliente; const Fecha: String; Const IgnorarContabilidad: Integer); begin APagosCliente.DataTable.Edit; APagosCliente.FECHA_PAGO := StrToDate(Fecha); + APagosCliente.IGNORAR_CONTABILIDAD := IgnorarContabilidad; APagosCliente.DataTable.Post; end; diff --git a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas index 6e3d627c..f583b8fd 100644 --- a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas +++ b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas @@ -161,6 +161,8 @@ end; function TRecibosClienteController.AnadirPago(ARecibosCliente: IBizRecibosCliente; FechaPago: String =''): Boolean; var AEditor : IEditorFechaPago; + AIgnorarContabilidad : Integer; + ASubCuenta: Integer; begin Result := False; @@ -174,7 +176,11 @@ begin if Assigned(AEditor) then try if (AEditor.ShowModal = mrOk) then + begin FechaPago := DateToStr(AEditor.FechaPago); + AIgnorarContabilidad := AEditor.IgnorarContabilidad; + ASubCuenta := AEditor.IdSubcuenta; + end; AEditor.Release; finally AEditor := NIL; @@ -198,7 +204,7 @@ begin Exit; //Finalmente añadimos el pago (cobro o devolucion) - if PagosController.Anadir(ARecibosCliente.Pagos, FechaPago) then + if PagosController.Anadir(ARecibosCliente.Pagos, FechaPago, AIgnorarContabilidad, ASubCuenta) then begin ARecibosCliente.Edit; ARecibosCliente.SITUACION := CTE_COBRADO; @@ -753,21 +759,26 @@ procedure TRecibosClienteController.ModificarPago(ARecibosCliente: IBizRecibosCl var AEditor : IEditorFechaPago; FechaPago: String; + IgnorarContabilidad: Integer; begin try //Pedimos la fecha del pago CreateEditor('EditorFechaPago', IEditorFechaPago, AEditor); if Assigned(AEditor) then - FechaPago:= ''; + AEditor.FechaPago := ARecibosCliente.Pagos.FECHA_PAGO; + AEditor.IgnorarContabilidad := ARecibosCliente.Pagos.IGNORAR_CONTABILIDAD; if (AEditor.ShowModal = mrOk) then + begin FechaPago := DateToStr(AEditor.FechaPago); + IgnorarContabilidad := AEditor.IgnorarContabilidad; + end; AEditor.Release; finally AEditor := NIL; end; if Length(FechaPago) > 0 then - PagosController.Modificar(ARecibosCliente.Pagos, FechaPago); + PagosController.Modificar(ARecibosCliente.Pagos, FechaPago, IgnorarContabilidad); end; function TRecibosClienteController.Nuevo: IBizRecibosCliente; diff --git a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj index 527ef0b3..c04899d5 100644 --- a/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj +++ b/Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj @@ -1,4 +1,5 @@ - + + {f10782d8-a2a3-45bb-9ae0-98f0b23968fc} RecibosCliente_data.dpk @@ -48,10 +49,11 @@ MainSource - - + +
DataModuleRecibosCliente
+ TDAClientDataModule
diff --git a/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm index dc90623f..ababc983 100644 --- a/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm +++ b/Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm @@ -107,6 +107,10 @@ inherited DataModuleRecibosCliente: TDataModuleRecibosCliente Size = 20 DisplayLabel = 'PagosCliente_USUARIO' DictionaryEntry = 'PagosCliente_USUARIO' + end + item + Name = 'IGNORAR_CONTABILIDAD' + DataType = datSmallInt end> Params = <> MasterMappingMode = mmWhere diff --git a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas index 7691331d..7809596c 100644 --- a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas +++ b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas @@ -9,9 +9,9 @@ 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_RecibosCliente = '{5410D8EC-FA59-43E6-96AB-C7C2E1292FBB}'; - RID_PagosCliente = '{A9A33A29-1E9F-40C7-9F00-73776CAA6D93}'; - RID_RecibosCompensadosCli = '{55474263-530A-458F-ADE8-497B260FA9A3}'; + RID_RecibosCliente = '{BD713121-B67A-4555-B1F6-8C79907169A8}'; + RID_PagosCliente = '{51327032-C47B-4B5A-A2FB-4FF7FA518830}'; + RID_RecibosCompensadosCli = '{942FEF94-88F0-4687-9F8F-420A53607386}'; { Data table names } nme_RecibosCliente = 'RecibosCliente'; @@ -93,6 +93,7 @@ const fld_PagosClienteFECHA_ALTA = 'FECHA_ALTA'; fld_PagosClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION'; fld_PagosClienteUSUARIO = 'USUARIO'; + fld_PagosClienteIGNORAR_CONTABILIDAD = 'IGNORAR_CONTABILIDAD'; { PagosCliente field indexes } idx_PagosClienteID = 0; @@ -107,6 +108,7 @@ const idx_PagosClienteFECHA_ALTA = 9; idx_PagosClienteFECHA_MODIFICACION = 10; idx_PagosClienteUSUARIO = 11; + idx_PagosClienteIGNORAR_CONTABILIDAD = 12; { RecibosCompensadosCli fields } fld_RecibosCompensadosCliID = 'ID'; @@ -173,7 +175,7 @@ const type { IRecibosCliente } IRecibosCliente = interface(IDAStronglyTypedDataTable) - ['{11D2AB69-38A8-41B8-8139-2C32F3732B9C}'] + ['{13B23B67-01E0-4206-8F77-7C86FAB5765C}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -544,7 +546,7 @@ type { IPagosCliente } IPagosCliente = interface(IDAStronglyTypedDataTable) - ['{A77D5C00-617A-4A1C-B34F-B24E6AC72E0D}'] + ['{CACDCDCC-257B-4007-87DE-DDB16A31FA1E}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -594,6 +596,10 @@ type procedure SetUSUARIOValue(const aValue: String); function GetUSUARIOIsNull: Boolean; procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetIGNORAR_CONTABILIDADValue: SmallInt; + procedure SetIGNORAR_CONTABILIDADValue(const aValue: SmallInt); + function GetIGNORAR_CONTABILIDADIsNull: Boolean; + procedure SetIGNORAR_CONTABILIDADIsNull(const aValue: Boolean); { Properties } @@ -621,6 +627,8 @@ type property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property IGNORAR_CONTABILIDAD: SmallInt read GetIGNORAR_CONTABILIDADValue write SetIGNORAR_CONTABILIDADValue; + property IGNORAR_CONTABILIDADIsNull: Boolean read GetIGNORAR_CONTABILIDADIsNull write SetIGNORAR_CONTABILIDADIsNull; end; { TPagosClienteDataTableRules } @@ -676,6 +684,10 @@ type procedure SetUSUARIOValue(const aValue: String); virtual; function GetUSUARIOIsNull: Boolean; virtual; procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetIGNORAR_CONTABILIDADValue: SmallInt; virtual; + procedure SetIGNORAR_CONTABILIDADValue(const aValue: SmallInt); virtual; + function GetIGNORAR_CONTABILIDADIsNull: Boolean; virtual; + procedure SetIGNORAR_CONTABILIDADIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -702,6 +714,8 @@ type property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property IGNORAR_CONTABILIDAD: SmallInt read GetIGNORAR_CONTABILIDADValue write SetIGNORAR_CONTABILIDADValue; + property IGNORAR_CONTABILIDADIsNull: Boolean read GetIGNORAR_CONTABILIDADIsNull write SetIGNORAR_CONTABILIDADIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -711,7 +725,7 @@ type { IRecibosCompensadosCli } IRecibosCompensadosCli = interface(IDAStronglyTypedDataTable) - ['{3E3D9FC0-4E90-4A4D-AE58-8B53087B5A5F}'] + ['{318980D4-1AED-437D-A1BB-40D176B7F41A}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1968,6 +1982,27 @@ begin DataTable.Fields[idx_PagosClienteUSUARIO].AsVariant := Null; end; +function TPagosClienteDataTableRules.GetIGNORAR_CONTABILIDADValue: SmallInt; +begin + result := DataTable.Fields[idx_PagosClienteIGNORAR_CONTABILIDAD].AsSmallInt; +end; + +procedure TPagosClienteDataTableRules.SetIGNORAR_CONTABILIDADValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_PagosClienteIGNORAR_CONTABILIDAD].AsSmallInt := aValue; +end; + +function TPagosClienteDataTableRules.GetIGNORAR_CONTABILIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_PagosClienteIGNORAR_CONTABILIDAD].IsNull; +end; + +procedure TPagosClienteDataTableRules.SetIGNORAR_CONTABILIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PagosClienteIGNORAR_CONTABILIDAD].AsVariant := Null; +end; + { TRecibosCompensadosCliDataTableRules } constructor TRecibosCompensadosCliDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas index 20b48aba..4d1c75d6 100644 --- a/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas +++ b/Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas @@ -9,14 +9,14 @@ 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_RecibosClienteDelta = '{E1FDCE22-19B3-498A-BEBA-6CFB34FC22C2}'; - RID_PagosClienteDelta = '{B09875FA-0962-46A9-9A3A-40F618B4230D}'; - RID_RecibosCompensadosCliDelta = '{43471651-957E-47B2-B810-E0227C1BB163}'; + RID_RecibosClienteDelta = '{0886304E-ADCF-4985-93CD-63C479B0592E}'; + RID_PagosClienteDelta = '{D5A42190-E981-46DA-BADE-32C8DD8A03B3}'; + RID_RecibosCompensadosCliDelta = '{46B04689-C995-45CE-B3CA-C602E1142822}'; type { IRecibosClienteDelta } IRecibosClienteDelta = interface(IRecibosCliente) - ['{E1FDCE22-19B3-498A-BEBA-6CFB34FC22C2}'] + ['{0886304E-ADCF-4985-93CD-63C479B0592E}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_RECIBO_COMPENSADOValue : Integer; @@ -386,7 +386,7 @@ type { IPagosClienteDelta } IPagosClienteDelta = interface(IPagosCliente) - ['{B09875FA-0962-46A9-9A3A-40F618B4230D}'] + ['{D5A42190-E981-46DA-BADE-32C8DD8A03B3}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_RECIBOValue : Integer; @@ -400,6 +400,7 @@ type function GetOldFECHA_ALTAValue : DateTime; function GetOldFECHA_MODIFICACIONValue : DateTime; function GetOldUSUARIOValue : String; + function GetOldIGNORAR_CONTABILIDADValue : SmallInt; { Properties } property OldID : Integer read GetOldIDValue; @@ -414,6 +415,7 @@ type property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; property OldUSUARIO : String read GetOldUSUARIOValue; + property OldIGNORAR_CONTABILIDAD : SmallInt read GetOldIGNORAR_CONTABILIDADValue; end; { TPagosClienteBusinessProcessorRules } @@ -493,6 +495,12 @@ type function GetOldUSUARIOIsNull: Boolean; virtual; procedure SetUSUARIOValue(const aValue: String); virtual; procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetIGNORAR_CONTABILIDADValue: SmallInt; virtual; + function GetIGNORAR_CONTABILIDADIsNull: Boolean; virtual; + function GetOldIGNORAR_CONTABILIDADValue: SmallInt; virtual; + function GetOldIGNORAR_CONTABILIDADIsNull: Boolean; virtual; + procedure SetIGNORAR_CONTABILIDADValue(const aValue: SmallInt); virtual; + procedure SetIGNORAR_CONTABILIDADIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -543,6 +551,10 @@ type property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; property OldUSUARIO : String read GetOldUSUARIOValue; property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property IGNORAR_CONTABILIDAD : SmallInt read GetIGNORAR_CONTABILIDADValue write SetIGNORAR_CONTABILIDADValue; + property IGNORAR_CONTABILIDADIsNull : Boolean read GetIGNORAR_CONTABILIDADIsNull write SetIGNORAR_CONTABILIDADIsNull; + property OldIGNORAR_CONTABILIDAD : SmallInt read GetOldIGNORAR_CONTABILIDADValue; + property OldIGNORAR_CONTABILIDADIsNull : Boolean read GetOldIGNORAR_CONTABILIDADIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -552,7 +564,7 @@ type { IRecibosCompensadosCliDelta } IRecibosCompensadosCliDelta = interface(IRecibosCompensadosCli) - ['{43471651-957E-47B2-B810-E0227C1BB163}'] + ['{46B04689-C995-45CE-B3CA-C602E1142822}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_RECIBO_COMPENSADOValue : Integer; @@ -2219,6 +2231,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteUSUARIO] := Null; end; +function TPagosClienteBusinessProcessorRules.GetIGNORAR_CONTABILIDADValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteIGNORAR_CONTABILIDAD]; +end; + +function TPagosClienteBusinessProcessorRules.GetIGNORAR_CONTABILIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteIGNORAR_CONTABILIDAD]); +end; + +function TPagosClienteBusinessProcessorRules.GetOldIGNORAR_CONTABILIDADValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteIGNORAR_CONTABILIDAD]; +end; + +function TPagosClienteBusinessProcessorRules.GetOldIGNORAR_CONTABILIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PagosClienteIGNORAR_CONTABILIDAD]); +end; + +procedure TPagosClienteBusinessProcessorRules.SetIGNORAR_CONTABILIDADValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteIGNORAR_CONTABILIDAD] := aValue; +end; + +procedure TPagosClienteBusinessProcessorRules.SetIGNORAR_CONTABILIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PagosClienteIGNORAR_CONTABILIDAD] := Null; +end; + { TRecibosCompensadosCliBusinessProcessorRules } constructor TRecibosCompensadosCliBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas b/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas index 4768809c..01feb1aa 100644 --- a/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas +++ b/Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas @@ -40,8 +40,11 @@ type end; TBizPagosCliente = class(TPagosClienteDataTableRules, IBizPagosCliente) + private + procedure IniciarValoresIBizPagosClienteNuevo; protected - procedure BeforeInsert(Sender: TDADataTable); override; + procedure BeforeInsert(Sender: TDADataTable); override; + procedure OnNewRecord(Sender: TDADataTable); override; end; implementation @@ -61,6 +64,17 @@ begin AMasterTable.Post; end; +procedure TBizPagosCliente.IniciarValoresIBizPagosClienteNuevo; +begin + IGNORAR_CONTABILIDAD := 0; +end; + +procedure TBizPagosCliente.OnNewRecord(Sender: TDADataTable); +begin + inherited; + IniciarValoresIBizPagosClienteNuevo; +end; + initialization RegisterDataTableRules(BIZ_CLIENT_IBIZPAGOSCLIENTE, TBizPagosCliente); diff --git a/Source/Modulos/Recibos de cliente/Model/uBizPagosClienteServer.pas b/Source/Modulos/Recibos de cliente/Model/uBizPagosClienteServer.pas new file mode 100644 index 00000000..2f3444f5 --- /dev/null +++ b/Source/Modulos/Recibos de cliente/Model/uBizPagosClienteServer.pas @@ -0,0 +1,118 @@ +unit uBizPagosClienteServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schRecibosClienteServer_Intf; + +const + BIZ_SERVER_PAGOS_CLIENTE = 'Server.PagosCliente'; + +type + TBizPagosClienteServer = class(TPagosClienteBusinessProcessorRules) + protected + procedure Insert_Asiento_Pago(aChange: TDADeltaChange); virtual; + procedure Update_Asiento_Pago(aChange: TDADeltaChange); virtual; + procedure Delete_Asiento_Pago(aChange: TDADeltaChange); virtual; + + procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schRecibosClienteClient_Intf; + +{ TBizFacturasClienteServer } + +procedure TBizPagosClienteServer.AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + case aChange.ChangeType of + ctInsert: begin + Insert_Asiento_Pago(aChange); + end; + ctUpdate: begin + Update_Asiento_Pago(aChange); + end; + ctDelete: begin + Delete_Asiento_Pago(aChange); + end; + end; + + // No hay que quitar los deltas para que los datos del contacto se + // mantengan por si alguna tabla detalle lo necesita + // (por ejemplo, DireccionesContacto) + CanRemoveFromDelta := False; +end; + +procedure TBizPagosClienteServer.Delete_Asiento_Pago(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_AsientoPago'); + try + with ACommand do + begin + ParamByName('IdPago').Value := aChange.OldValueByName[fld_PagosClienteID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizPagosClienteServer.Insert_Asiento_Pago(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_AsientoPago'); + try + with ACommand do + begin + ParamByName('IdPago').Value := aChange.NewValueByName[fld_PagosClienteID]; + ParamByName('IdSubCuentaPago').Value := aChange.NewValueByName[fld_PagosClienteCUENTA]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +procedure TBizPagosClienteServer.Update_Asiento_Pago(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_AsientoPago'); + try + with ACommand do + begin + ParamByName('IdPago').Value := aChange.NewValueByName[fld_PagosClienteID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PAGOS_CLIENTE, TBizPagosClienteServer); + +end. diff --git a/Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj b/Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj index bc1f00d9..679e108f 100644 --- a/Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj +++ b/Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj @@ -9,6 +9,8 @@ + + @@ -111,14 +113,32 @@ + + + + + + + + + + + + + + + + + + - + - + - +
\ No newline at end of file diff --git a/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm index dd00f5f6..9ee35130 100644 --- a/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm +++ b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm @@ -358,6 +358,10 @@ object srvRecibosCliente: TsrvRecibosCliente item DatasetField = 'USUARIO' TableField = 'USUARIO' + end + item + DatasetField = 'IGNORAR_CONTABILIDAD' + TableField = 'IGNORAR_CONTABILIDAD' end> end> Name = 'PagosCliente' @@ -431,6 +435,10 @@ object srvRecibosCliente: TsrvRecibosCliente DataType = datString Size = 20 DictionaryEntry = 'PagosCliente_USUARIO' + end + item + Name = 'IGNORAR_CONTABILIDAD' + DataType = datSmallInt end> end item @@ -695,6 +703,48 @@ object srvRecibosCliente: TsrvRecibosCliente JoinDataTables = <> UnionDataTables = <> Commands = < + item + Params = < + item + Name = 'IdPago' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'execute procedure proc_delete_asiento_pago :IdPago'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AsientoPago' + end + item + Params = < + item + Name = 'IdPago' + Value = '' + end + item + Name = 'IdSubCuentaPago' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = + 'execute procedure proc_new_asiento_pago :IdPago, :IdSubCuentaPag' + + 'o'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AsientoPago' + end item Params = < item @@ -876,68 +926,46 @@ object srvRecibosCliente: TsrvRecibosCliente DataType = datAutoInc GeneratorName = 'GEN_PAGOS_CLIENTE_ID' Value = '' - ParamType = daptInput end item Name = 'ID_RECIBO' - DataType = datInteger Value = '' - ParamType = daptInput end item Name = 'TIPO' - DataType = datString - Size = 255 Value = '' - ParamType = daptInput end item Name = 'FECHA_PAGO' - DataType = datDateTime Value = '' - ParamType = daptInput end item Name = 'TITULAR' - DataType = datString - Size = 255 Value = '' - ParamType = daptInput end item Name = 'ENTIDAD' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput end item Name = 'SUCURSAL' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput end item Name = 'DC' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput end item Name = 'CUENTA' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput end item Name = 'USUARIO' - DataType = datString - Size = 20 Value = '' - ParamType = daptInput + end + item + Name = 'IGNORAR_CONTABILIDAD' + Value = '' end> Statements = < item @@ -945,9 +973,10 @@ object srvRecibosCliente: TsrvRecibosCliente TargetTable = 'PAGOS_CLIENTE' SQL = 'INSERT'#10' INTO PAGOS_CLIENTE'#10' (ID, ID_RECIBO, TIPO, FECHA_PAGO' + - ', TITULAR, ENTIDAD, '#10' SUCURSAL, DC, CUENTA, USUARIO)'#10' VALUE' + - 'S'#10' (:ID, :ID_RECIBO, :TIPO, :FECHA_PAGO, :TITULAR, :ENTIDAD, ' + - #10' :SUCURSAL, :DC, :CUENTA, :USUARIO)' + ', TITULAR, ENTIDAD, '#10' SUCURSAL, DC, CUENTA, USUARIO, IGNORAR' + + '_CONTABILIDAD)'#10' VALUES'#10' (:ID, :ID_RECIBO, :TIPO, :FECHA_PAGO' + + ', :TITULAR, :ENTIDAD, '#10' :SUCURSAL, :DC, :CUENTA, :USUARIO, :' + + 'IGNORAR_CONTABILIDAD)'#10 StatementType = stSQL ColumnMappings = <> end> @@ -975,69 +1004,47 @@ object srvRecibosCliente: TsrvRecibosCliente Params = < item Name = 'ID' - DataType = datInteger Value = '' - ParamType = daptInput end item Name = 'ID_RECIBO' - DataType = datInteger Value = '' - ParamType = daptInput end item Name = 'TIPO' - DataType = datString - Size = 255 Value = '' - ParamType = daptInput end item Name = 'FECHA_PAGO' - DataType = datDateTime Value = '' - ParamType = daptInput end item Name = 'TITULAR' - DataType = datString - Size = 255 Value = '' - ParamType = daptInput end item Name = 'ENTIDAD' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput end item Name = 'SUCURSAL' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput end item Name = 'DC' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput end item Name = 'CUENTA' - DataType = datString - Size = 15 Value = '' - ParamType = daptInput + end + item + Name = 'IGNORAR_CONTABILIDAD' + Value = '' end item Name = 'OLD_ID' - DataType = datInteger Value = '' - ParamType = daptInput end> Statements = < item @@ -1047,8 +1054,8 @@ object srvRecibosCliente: TsrvRecibosCliente 'UPDATE PAGOS_CLIENTE'#10' SET '#10' ID = :ID, '#10' ID_RECIBO = :ID_R' + 'ECIBO, '#10' TIPO = :TIPO, '#10' FECHA_PAGO = :FECHA_PAGO, '#10' TI' + 'TULAR = :TITULAR, '#10' ENTIDAD = :ENTIDAD, '#10' SUCURSAL = :SUCU' + - 'RSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA'#10' WHERE'#10' (ID = :OL' + - 'D_ID)' + 'RSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA,'#10' IGNORAR_CONTABIL' + + 'IDAD = :IGNORAR_CONTABILIDAD'#10' WHERE'#10' (ID = :OLD_ID)'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas index bf830ed3..dd0284cb 100644 --- a/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas +++ b/Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas @@ -42,9 +42,9 @@ implementation uses Dialogs, {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, - schRecibosClienteClient_Intf, uRestriccionesUsuarioUtils; + schRecibosClienteClient_Intf, uRestriccionesUsuarioUtils, uBizPagosClienteServer; // uRptRecibosCliente_Server; - //, uBizRecibosClienteServer; + procedure Create_srvRecibosCliente(out anInstance : IUnknown); begin @@ -69,6 +69,7 @@ end; procedure TsrvRecibosCliente.DARemoteServiceCreate(Sender: TObject); begin SessionManager := dmServer.SessionManager; + bpPagosCliente.BusinessRulesID := BIZ_SERVER_PAGOS_CLIENTE; end; procedure TsrvRecibosCliente.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm index b4b83e15..6243c7ea 100644 --- a/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm +++ b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm @@ -3,8 +3,8 @@ object fEditorFechaPago: TfEditorFechaPago Top = 0 BorderStyle = bsDialog Caption = 'Fecha del cobro / devoluci'#243'n' - ClientHeight = 167 - ClientWidth = 283 + ClientHeight = 295 + ClientWidth = 383 Color = clWindow Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -13,7 +13,11 @@ object fEditorFechaPago: TfEditorFechaPago Font.Style = [] OldCreateOrder = False Position = poScreenCenter + OnClose = FormClose OnShow = FormShow + DesignSize = ( + 383 + 295) PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel @@ -26,16 +30,16 @@ object fEditorFechaPago: TfEditorFechaPago 'la devoluci'#243'n:' end object Label2: TLabel - Left = 38 + Left = 39 Top = 67 - Width = 33 + Width = 77 Height = 13 Alignment = taRightJustify - Caption = 'Fecha:' + Caption = 'Fecha del pago:' FocusControl = eFechaPago end object eFechaPago: TcxDateEdit - Left = 77 + Left = 122 Top = 64 Properties.OnChange = eFechaPagoPropertiesChange Style.LookAndFeel.Kind = lfStandard @@ -51,8 +55,8 @@ object fEditorFechaPago: TfEditorFechaPago end object Panel1: TPanel Left = 0 - Top = 126 - Width = 283 + Top = 254 + Width = 383 Height = 41 Align = alBottom TabOrder = 1 @@ -64,6 +68,7 @@ object fEditorFechaPago: TfEditorFechaPago Caption = 'Aceptar' ModalResult = 1 TabOrder = 0 + OnClick = bAceptarClick end object bCancelar: TButton Left = 200 @@ -75,4 +80,81 @@ object fEditorFechaPago: TfEditorFechaPago TabOrder = 1 end end + object eContabilizar: TcxCheckBox + Left = 38 + Top = 120 + Caption = 'Ignorar en contabiliad' + Properties.ValueChecked = 1 + Properties.ValueUnchecked = 0 + Properties.OnChange = eContabilizarPropertiesChange + TabOrder = 2 + Width = 203 + end + object eRefSubCuenta: TcxTextEdit + Left = 39 + Top = 147 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + Properties.ReadOnly = True + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Height = 21 + Width = 215 + end + object eSubCuenta: TcxTextEdit + Left = 38 + Top = 174 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + Properties.ReadOnly = True + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Height = 21 + Width = 297 + end + object BitBtn3: TBitBtn + Left = 260 + Top = 143 + Width = 75 + Height = 25 + Caption = 'Elegir subcuenta' + TabOrder = 5 + OnClick = BitBtn3Click + end + object eIDSubcuenta: TcxTextEdit + Left = 38 + Top = 201 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + Properties.ReadOnly = True + Properties.ValidateOnEnter = True + Properties.OnChange = eIDSubcuentaPropertiesChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = 14745599 + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 6 + Height = 21 + Width = 43 + end end diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas index 722b27cc..4ba1b371 100644 --- a/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas +++ b/Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas @@ -5,7 +5,8 @@ interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, - cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorFechaPago; + cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorFechaPago, + cxCheckBox, uSubCuentasController, Buttons, cxDBEdit; type TfEditorFechaPago = class(TfEditorBasico, IEditorFechaPago) @@ -15,14 +16,35 @@ type bCancelar: TButton; Label2: TLabel; Panel1: TPanel; + eContabilizar: TcxCheckBox; + eRefSubCuenta: TcxTextEdit; + eSubCuenta: TcxTextEdit; + BitBtn3: TBitBtn; + eIDSubcuenta: TcxTextEdit; procedure FormShow(Sender: TObject); procedure eFechaPagoPropertiesChange(Sender: TObject); + procedure eContabilizarPropertiesChange(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure BitBtn3Click(Sender: TObject); + procedure eIDSubcuentaPropertiesChange(Sender: TObject); + procedure bAceptarClick(Sender: TObject); private + FController : ISubcuentasController; + FIdSubCuenta : Integer; + FIgnorarContabilidad : Integer; FFechaPago : TDateTime; function GetFechaPago: TDateTime; procedure SetFechaPago(const Value: TDateTime); + function GetIgnorarContabilidad: Integer; + procedure SetIgnorarContabilidad(const Value: Integer); + function GetIdSubCuenta: Integer; + procedure SetIdSubCuenta(const Value: Integer); + public property FechaPago: TDateTime Read GetFechaPago write SetFechaPago; + property IgnorarContabilidad: Integer Read GetIgnorarContabilidad write SetIgnorarContabilidad; + property IdSubCuenta: Integer Read GetIdSubCuenta write SetIdSubCuenta; + constructor Create(AOwner: TComponent); override; end; var @@ -32,14 +54,59 @@ implementation {$R *.dfm} +uses uBizSubCuentas; + +procedure TfEditorFechaPago.bAceptarClick(Sender: TObject); +begin + if (not eContabilizar.Checked) + and (eIdSubcuenta.Text = '') then + raise Exception.Create ('Es necesario que elija la SubCuenta donde se realizará el pago'); +end; + +procedure TfEditorFechaPago.BitBtn3Click(Sender: TObject); +var + ASubCuenta: IBizSubcuenta; +begin + ASubCuenta := FController.ElegirSubCuenta(FController.BuscarTodos,'sssss', False); + eIDSubcuenta.Text := IntToStr(ASubcuenta.ID); + eRefSubCuenta.Text := ASubcuenta.REF_SUBCUENTA; + eSubCuenta.Text := ASubcuenta.DESCRIPCION; + ASubCuenta := Nil; +end; + +constructor TfEditorFechaPago.Create(AOwner: TComponent); +begin + inherited; + FController := TSubcuentasController.Create; +end; + +procedure TfEditorFechaPago.eContabilizarPropertiesChange(Sender: TObject); +begin + FIgnorarContabilidad := eContabilizar.EditValue; +end; + procedure TfEditorFechaPago.eFechaPagoPropertiesChange(Sender: TObject); begin FechaPago := eFechaPago.Date; end; +procedure TfEditorFechaPago.eIDSubcuentaPropertiesChange(Sender: TObject); +begin + if not VarIsNull(eIDSubCuenta.EditValue) then + FIDSubCuenta := eIDSubCuenta.EditValue; +end; + +procedure TfEditorFechaPago.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + FController := Nil; +end; + procedure TfEditorFechaPago.FormShow(Sender: TObject); begin - eFechaPago.Date := Date; + if (length(eFechaPago.Text) = 0) then + eFechaPago.Date := Date; +// FController. end; function TfEditorFechaPago.GetFechaPago: TDateTime; @@ -47,9 +114,31 @@ begin Result := FFechaPago; end; +function TfEditorFechaPago.GetIdSubCuenta: Integer; +begin + Result := eIDSubCuenta.EditValue; //FIdSubCuenta; +end; + +function TfEditorFechaPago.GetIgnorarContabilidad: Integer; +begin + Result := FIgnorarContabilidad; +end; + procedure TfEditorFechaPago.SetFechaPago(const Value: TDateTime); begin FFechaPago := Value; + eFechaPago.EditValue := FFechaPago; +end; + +procedure TfEditorFechaPago.SetIdSubCuenta(const Value: Integer); +begin + FIdSubCuenta := Value; +end; + +procedure TfEditorFechaPago.SetIgnorarContabilidad(const Value: Integer); +begin + FIgnorarContabilidad := Value; + eContabilizar.EditValue := FIgnorarContabilidad; end; end. diff --git a/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm index 205e5501..02509410 100644 --- a/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm +++ b/Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm @@ -324,8 +324,6 @@ inherited fEditorReciboCliente: TfEditorReciboCliente inherited eImporte: TcxDBCurrencyEdit DataBinding.DataSource = dsDataTable Properties.OnEditValueChanged = frViewReciboCliImportes1eImportePropertiesEditValueChanged - ExplicitWidth = 150 - Width = 150 end inherited eOtrosGastos: TcxDBCurrencyEdit DataBinding.DataSource = dsDataTable diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas index 2a892638..e749ecca 100644 --- a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas @@ -9,19 +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 = '{2A669FBE-2DE4-4257-8CA5-518E3E7FE0A3}'; - RID_RemesasCliente = '{6AD59CC0-CB4B-4B42-87E9-0C30BF117732}'; + RID_RemesasCliente = '{A346376B-965B-4865-A253-9DDF4D88E9C5}'; { Data table names } - nme_darReferencia = 'darReferencia'; nme_RemesasCliente = 'RemesasCliente'; - { darReferencia fields } - fld_darReferenciaVALOR = 'VALOR'; - - { darReferencia field indexes } - idx_darReferenciaVALOR = 0; - { RemesasCliente fields } fld_RemesasClienteID = 'ID'; fld_RemesasClienteID_EMPRESA = 'ID_EMPRESA'; @@ -63,44 +55,9 @@ const idx_RemesasClienteIMPORTE_TOTAL = 17; type - { IdarReferencia } - IdarReferencia = interface(IDAStronglyTypedDataTable) - ['{41ABA49E-1EC4-40B5-8174-E851C8735EF6}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TdarReferenciaDataTableRules } - TdarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IdarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IRemesasCliente } IRemesasCliente = interface(IDAStronglyTypedDataTable) - ['{2DFC502B-A484-4565-BFCB-F4A172BBF594}'] + ['{FDEB4748-8F61-4BFF-BED3-8A4904D1F593}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -341,39 +298,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TdarReferenciaDataTableRules } -constructor TdarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TdarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].AsString; -end; - -procedure TdarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_darReferenciaVALOR].AsString := aValue; -end; - -function TdarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].IsNull; -end; - -procedure TdarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_darReferenciaVALOR].AsVariant := Null; -end; - - { TRemesasClienteDataTableRules } constructor TRemesasClienteDataTableRules.Create(aDataTable: TDADataTable); begin @@ -765,7 +689,6 @@ end; initialization - RegisterDataTableRules(RID_darReferencia, TdarReferenciaDataTableRules); RegisterDataTableRules(RID_RemesasCliente, TRemesasClienteDataTableRules); end. diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas index e2782673..cf123246 100644 --- a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas @@ -9,47 +9,12 @@ 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 = '{93BE415A-B388-496F-B435-1AA6D4F3535C}'; - RID_RemesasClienteDelta = '{090FFD4E-3541-40D8-9577-9A6BBB35ECEB}'; + RID_RemesasClienteDelta = '{F8C1BED7-3DDB-4A8B-9E23-7ACFF1822443}'; type - { IdarReferenciaDelta } - IdarReferenciaDelta = interface(IdarReferencia) - ['{93BE415A-B388-496F-B435-1AA6D4F3535C}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TdarReferenciaBusinessProcessorRules } - TdarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarReferencia, IdarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IRemesasClienteDelta } IRemesasClienteDelta = interface(IRemesasCliente) - ['{090FFD4E-3541-40D8-9577-9A6BBB35ECEB}'] + ['{F8C1BED7-3DDB-4A8B-9E23-7ACFF1822443}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -290,49 +255,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TdarReferenciaBusinessProcessorRules } -constructor TdarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TdarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]); -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]); -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := aValue; -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := Null; -end; - - { TRemesasClienteBusinessProcessorRules } constructor TRemesasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); begin @@ -904,7 +826,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_darReferenciaDelta, TdarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_RemesasClienteDelta, TRemesasClienteBusinessProcessorRules); end. diff --git a/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas index f2307e12..23dd1c08 100644 --- a/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas +++ b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas @@ -8,70 +8,91 @@ uses const BIZ_SERVER_REMESAS_CLIENTE = 'Server.RemesasCliente'; - REF_REMESAS_CLIENTE = 'REF_REMESAS_CLIENTE'; type TBizRemesasClienteServer = class(TRemesasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schRemesasClienteClient_Intf; - + schRemesasClienteClient_Intf, srvReferencias_Impl; +const + REF_REMESAS_CLIENTE = 'REF_REMESAS_CLIENTE'; + { TBizRemesasClienteServer } +procedure TBizRemesasClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + procedure TBizRemesasClienteServer.BeforeProcessDelta( Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - begin - inherited; + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA]; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_REMESAS_CLIENTE, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_REMESAS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_Remesas_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizRemesasClienteServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_REMESAS_CLIENTE, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizRemesasClienteServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_REMESAS_CLIENTE, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_REMESAS_CLIENTE, TBizRemesasClienteServer); end. + diff --git a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm index 5e3e1323..366efbd5 100644 --- a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm @@ -136,42 +136,6 @@ object srvRemesasCliente: TsrvRemesasCliente DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = 'REF_REMESAS_CLIENTE' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '1' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'darReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -363,32 +327,6 @@ object srvRemesasCliente: TsrvRemesasCliente JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas index e7e7f001..2e690c6b 100644 --- a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas @@ -23,9 +23,9 @@ type TsrvRemesasCliente = class(TDataAbstractService, IsrvRemesasCliente) Diagrams: TDADiagrams; bpRemesasCliente: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; schRemesasCliente: TDASchema; DataDictionary: TDADataDictionary; - Bin2DataStreamer: TDABin2DataStreamer; procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); @@ -42,7 +42,7 @@ implementation uses {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, schRemesasClienteClient_Intf, uRestriccionesUsuarioUtils, -// uBizRemesasClienteServer, + uBizRemesasClienteServer, // uRptRemesasCliente_Server, Dialogs; @@ -57,21 +57,19 @@ procedure TsrvRemesasCliente.DARemoteServiceBeforeGetDatasetData( const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); begin -{ if DataSet.Name = nme_RemesasCliente then begin { Aquí se asegura que el usuario sólo accede a los RemesasCliente de las empresas a las que tiene permiso para acceder filtrando DataSet por ID_EMPRESA. } -{ FiltrarAccesoUsuario(Session, Connection, schRemesasCliente, DataSet, fld_RemesasClienteID_EMPRESA); + FiltrarAccesoUsuario(Session, Connection, schRemesasCliente, DataSet, fld_RemesasClienteID_EMPRESA); end; -} end; procedure TsrvRemesasCliente.DARemoteServiceCreate(Sender: TObject); begin SessionManager := dmServer.SessionManager; -// bpRemesasCliente.BusinessRulesID := BIZ_SERVER_REMESAS_CLIENTE; + bpRemesasCliente.BusinessRulesID := BIZ_SERVER_REMESAS_CLIENTE; end; procedure TsrvRemesasCliente.DataAbstractServiceBeforeAcquireConnection( diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas index 933b8deb..72f2ab93 100644 --- a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas +++ b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas @@ -9,19 +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 = '{60F91383-6F77-4AD3-9E84-B27C782A1482}'; - RID_RemesasProveedor = '{044A9E1D-90AB-4E1C-BFCB-98772BB603BE}'; + RID_RemesasProveedor = '{23D3FD39-C8A1-424C-A738-908158D36ED1}'; { Data table names } - nme_darReferencia = 'darReferencia'; nme_RemesasProveedor = 'RemesasProveedor'; - { darReferencia fields } - fld_darReferenciaVALOR = 'VALOR'; - - { darReferencia field indexes } - idx_darReferenciaVALOR = 0; - { RemesasProveedor fields } fld_RemesasProveedorID = 'ID'; fld_RemesasProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -63,44 +55,9 @@ const idx_RemesasProveedorIMPORTE_TOTAL = 17; type - { IdarReferencia } - IdarReferencia = interface(IDAStronglyTypedDataTable) - ['{3EC7EB36-5C81-4D96-924C-BFBAD8D38041}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TdarReferenciaDataTableRules } - TdarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IdarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IRemesasProveedor } IRemesasProveedor = interface(IDAStronglyTypedDataTable) - ['{33E0651A-D061-431F-9EAD-9B9B0458B888}'] + ['{7A79CD94-9A3A-4E75-89AD-C1D0A728A7F5}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -341,39 +298,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TdarReferenciaDataTableRules } -constructor TdarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TdarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].AsString; -end; - -procedure TdarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_darReferenciaVALOR].AsString := aValue; -end; - -function TdarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].IsNull; -end; - -procedure TdarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_darReferenciaVALOR].AsVariant := Null; -end; - - { TRemesasProveedorDataTableRules } constructor TRemesasProveedorDataTableRules.Create(aDataTable: TDADataTable); begin @@ -765,7 +689,6 @@ end; initialization - RegisterDataTableRules(RID_darReferencia, TdarReferenciaDataTableRules); RegisterDataTableRules(RID_RemesasProveedor, TRemesasProveedorDataTableRules); end. diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas index d742efd4..39694294 100644 --- a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas +++ b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas @@ -9,47 +9,12 @@ 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 = '{654CD172-ED14-43A0-85CD-7D5714EF6CA6}'; - RID_RemesasProveedorDelta = '{66615F2E-3E7A-49C6-AE86-A922790A3D92}'; + RID_RemesasProveedorDelta = '{D08A9960-77D0-4CFF-95F2-209EA3322B70}'; type - { IdarReferenciaDelta } - IdarReferenciaDelta = interface(IdarReferencia) - ['{654CD172-ED14-43A0-85CD-7D5714EF6CA6}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TdarReferenciaBusinessProcessorRules } - TdarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarReferencia, IdarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IRemesasProveedorDelta } IRemesasProveedorDelta = interface(IRemesasProveedor) - ['{66615F2E-3E7A-49C6-AE86-A922790A3D92}'] + ['{D08A9960-77D0-4CFF-95F2-209EA3322B70}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -290,49 +255,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TdarReferenciaBusinessProcessorRules } -constructor TdarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TdarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]); -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]); -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := aValue; -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := Null; -end; - - { TRemesasProveedorBusinessProcessorRules } constructor TRemesasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); begin @@ -904,7 +826,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_darReferenciaDelta, TdarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_RemesasProveedorDelta, TRemesasProveedorBusinessProcessorRules); end. diff --git a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas index dee5a38a..db15e5ff 100644 --- a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas +++ b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas @@ -8,68 +8,90 @@ uses const BIZ_SERVER_REMESAS_Proveedor = 'Server.RemesasProveedor'; - REF_REMESAS_PROVEEDOR = 'REF_REMESAS_PROVEEDOR'; type TBizRemesasProveedorServer = class(TRemesasProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schRemesasProveedorClient_Intf; + schRemesasProveedorClient_Intf, srvReferencias_Impl; + +const + REF_REMESAS_PROVEEDOR = 'REF_REMESAS_PROVEEDOR'; { TBizRemesasProveedorServer } -procedure TBizRemesasProveedorServer.BeforeProcessDelta( - Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - +procedure TBizRemesasProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizRemesasProveedorServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_RemesasProveedorID_EMPRESA]; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_REMESAS_PROVEEDOR, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_REMESAS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_REMESAS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; + +function TBizRemesasProveedorServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_REMESAS_PROVEEDOR, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizRemesasProveedorServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_REMESAS_PROVEEDOR, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_REMESAS_Proveedor, TBizRemesasProveedorServer); diff --git a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm index 304f26a5..eb66b629 100644 --- a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm +++ b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm @@ -136,42 +136,6 @@ object srvRemesasProveedor: TsrvRemesasProveedor DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = 'REF_REMESAS_CLIENTE' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '1' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'darReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -363,32 +327,6 @@ object srvRemesasProveedor: TsrvRemesasProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas index a8f1ef13..175a4c54 100644 --- a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas +++ b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas @@ -23,9 +23,9 @@ type TsrvRemesasProveedor = class(TDataAbstractService, IsrvRemesasProveedor) Diagrams: TDADiagrams; bpRemesasProveedor: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; schRemesasProveedor: TDASchema; DataDictionary: TDADataDictionary; - Bin2DataStreamer: TDABin2DataStreamer; procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); @@ -34,7 +34,6 @@ type private protected { IsrvRemesasProveedor methods } - function GetNextAutoInc(const GeneratorName: String): Integer; function GenerateReport(const ID: String): Binary; end; @@ -44,7 +43,8 @@ implementation uses {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, schRemesasProveedorClient_Intf, uRestriccionesUsuarioUtils, -// uBizRemesasProveedorServer, uRptRemesasProveedor_Server, + uBizRemesasProveedorServer, + //uRptRemesasProveedor_Server, Dialogs; procedure Create_srvRemesasProveedor(out anInstance : IUnknown); @@ -58,21 +58,19 @@ procedure TsrvRemesasProveedor.DARemoteServiceBeforeGetDatasetData( const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); begin -{ if DataSet.Name = nme_RemesasProveedor then begin { Aquí se asegura que el usuario sólo accede a los RemesasProveedor de las empresas a las que tiene permiso para acceder filtrando DataSet por ID_EMPRESA. } -{ FiltrarAccesoUsuario(Session, Connection, schRemesasProveedor, DataSet, fld_RemesasProveedorID_EMPRESA); + FiltrarAccesoUsuario(Session, Connection, schRemesasProveedor, DataSet, fld_RemesasProveedorID_EMPRESA); end; -} end; procedure TsrvRemesasProveedor.DARemoteServiceCreate(Sender: TObject); begin SessionManager := dmServer.SessionManager; -// bpRemesasProveedor.BusinessRulesID := BIZ_SERVER_REMESAS_PROVEEDOR; + bpRemesasProveedor.BusinessRulesID := BIZ_SERVER_REMESAS_PROVEEDOR; end; procedure TsrvRemesasProveedor.DataAbstractServiceBeforeAcquireConnection( @@ -95,11 +93,6 @@ begin } end; -function TsrvRemesasProveedor.GetNextAutoInc(const GeneratorName: String): Integer; -begin - Result := uDatabaseUtils.GetNextAutoInc(GeneratorName) -end; - initialization TROClassFactory.Create('srvRemesasProveedor', Create_srvRemesasProveedor, TsrvRemesasProveedor_Invoker); diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 5467a1c5..865ea3de 100644 Binary files a/Source/Servidor/FactuGES_Server.RES and b/Source/Servidor/FactuGES_Server.RES differ diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index 5dab1f5d..e6bde13a 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -54,36 +54,22 @@ uses schFormasPagoClient_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas', schFormasPagoServer_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas', uRptPresupuestosCliente_Server in '..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas' {RptPresupuestosCliente}, - schAlbaranesClienteClient_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas', - schAlbaranesClienteServer_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas', srvRecibosProveedor_Impl in '..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas' {srvRecibosProveedor: TDataAbstractService}, uBizFacturasClienteServer in '..\Modulos\Facturas de cliente\Model\uBizFacturasClienteServer.pas', srvFacturasProveedor_Impl in '..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas' {srvFacturasProveedor: TDataAbstractService}, srvAlbaranesProveedor_Impl in '..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas' {srvAlbaranesProveedor: TDataAbstractService}, srvPedidosProveedor_Impl in '..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas' {srvPedidosProveedor: TDataAbstractService}, uBizPedidosProveedorServer in '..\Modulos\Pedidos a proveedor\Model\uBizPedidosProveedorServer.pas', - schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas', - schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas', - schAlbaranesProveedorClient_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas', - schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas', uBizAlbaranProveedorServer in '..\Modulos\Albaranes de proveedor\Model\uBizAlbaranProveedorServer.PAS', uBizFacturasProveedorServer in '..\Modulos\Facturas de proveedor\Model\uBizFacturasProveedorServer.pas', schAlmacenesClient_Intf in '..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas', schAlmacenesServer_Intf in '..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas', - schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas', - schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas', - schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', - schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas', schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas', schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas', schRecibosProveedorServer_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas', srvRemesasCliente_Impl in '..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas' {srvRemesasCliente: TDataAbstractService}, srvRemesasProveedor_Impl in '..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas' {srvRemesasProveedor: TDataAbstractService}, - schRemesasProveedorClient_Intf in '..\Modulos\Remesas de proveedor\Model\schRemesasProveedorClient_Intf.pas', - schRemesasProveedorServer_Intf in '..\Modulos\Remesas de proveedor\Model\schRemesasProveedorServer_Intf.pas', - schRemesasClienteClient_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas', - schRemesasClienteServer_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas', srvInventario_Impl in '..\Modulos\Inventario\Servidor\srvInventario_Impl.pas' {srvInventario: TDataAbstractService}, srvHistoricoMovimientos_Impl in '..\Modulos\Historico de movimientos\Servidor\srvHistoricoMovimientos_Impl.pas' {srvHistoricoMovimientos: TDataAbstractService}, srvReferencias_Impl in 'srvReferencias_Impl.pas' {srvReferencias: TDataAbstractService}, @@ -96,15 +82,31 @@ uses schEjerciciosServer_Intf in '..\ApplicationBase\Ejercicios\Model\schEjerciciosServer_Intf.pas', schEjerciciosClient_Intf in '..\ApplicationBase\Ejercicios\Model\schEjerciciosClient_Intf.pas', srvContabilidad_Impl in '..\Modulos\Contabilidad\Servidor\srvContabilidad_Impl.pas' {srvContabilidad: TDataAbstractService}, - schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', - schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas', uBizPagosClienteServer in '..\Modulos\Recibos de cliente\Model\uBizPagosClienteServer.pas', schContabilidadServer_Intf in '..\Modulos\Contabilidad\Model\schContabilidadServer_Intf.pas', schContabilidadClient_Intf in '..\Modulos\Contabilidad\Model\schContabilidadClient_Intf.pas', schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas', schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas', schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', - schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas'; + schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', + schAlbaranesClienteClient_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas', + schAlbaranesClienteServer_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas', + schAlbaranesProveedorClient_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas', + schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas', + schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', + schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas', + schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas', + schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas', + schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas', + schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas', + schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', + schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', + schRemesasClienteClient_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas', + schRemesasClienteServer_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas', + uBizRemesasClienteServer in '..\Modulos\Remesas de cliente\Model\uBizRemesasClienteServer.pas', + uBizRemesasProveedorServer in '..\Modulos\Remesas de proveedor\Model\uBizRemesasProveedorServer.pas', + schRemesasProveedorClient_Intf in '..\Modulos\Remesas de proveedor\Model\schRemesasProveedorClient_Intf.pas', + schRemesasProveedorServer_Intf in '..\Modulos\Remesas de proveedor\Model\schRemesasProveedorServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} @@ -116,7 +118,6 @@ begin Application.ShowMainForm := False; Application.CreateForm(TfServerForm, fServerForm); - Application.CreateForm(TdmServer, dmServer); Application.Run; Application.Terminate; end. diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index af897d12..79cadca3 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -29,6 +29,11 @@ FalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.03.0.0.0lunes, 19 de noviembre de 2007 18:58 + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration FactuGES_Server.dpr @@ -157,12 +162,14 @@ +
srvRemesasCliente
TDataAbstractService
+
srvRemesasProveedor
TDataAbstractService @@ -196,6 +203,10 @@
srvLogin
TDARemoteService
+ +
srvReferencias
+ TDataAbstractService +
fAcercaDe
diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc index 0a47fa15..faf54391 100644 --- a/Source/Servidor/FactuGES_Server.rc +++ b/Source/Servidor/FactuGES_Server.rc @@ -14,7 +14,7 @@ BEGIN BEGIN VALUE "FileVersion", "1.0.0.0\0" VALUE "ProductVersion", "1.0.0.0\0" - VALUE "CompileDate", "miércoles, 26 de diciembre de 2007 16:31\0" + VALUE "CompileDate", "miércoles, 26 de diciembre de 2007 20:04\0" END END BLOCK "VarFileInfo"