SageAddons.cs
7 using sage.ew.db;
8 using sage.ew.enumerations;
9 using sage.ew.ewbase;
10 using sage.ew.formul;
11 using sage.ew.formul.Forms;
12 using sage.ew.functions;
14 using sage.ew.interficies;
15 using Sage.ES.S50.Addons;
17 using System;
18 using System.Collections.Generic;
19 using System.Windows.Forms;
20 using Unity;
21 
22 namespace sage.addons.offline
23 {
27  public static class OFFLINE
28  {
32  public static string _NombreAddOn = "OFFLINE";
33 
37  public static dynamic _Factura = null;
38 
42  public static bool _VieneDeFacturaDirecta = false;
43 
48  public static addons.offline.offline _Get_Objeto_Offline()
49  {
50  offline looffline = null;
51  object loObjeto = AddonsController.Instance.AddonsManager.GetAddon(_NombreAddOn);
52  if (loObjeto != null)
53  {
54  looffline = (offline)loObjeto;
55  }
56 
57  return looffline;
58  }
59  }
60 
64  public partial class offline : Modulo, IModuloOffline
65  {
66  #region PROPIEDADES PUBLICAS
67 
71  public override string Firma { get; set; }
72 
73 
77  public bool _VisibleCargaOffLine = true;
78 
79 
80  // Añadimos una referencia a los demás objetos del módulo
81 
82  private _ExtensionMante _oExtensionManteGruposEmp;
83 
87  public bool _BajaSuscripcion
88  {
89  get { return LICENCIAS._BajaSuscripcion(OFFLINE._NombreAddOn); }
90  }
91 
92  #endregion PROPIEDADES PUBLICAS
93 
94 
95  #region Members
96 
97  private IOfflineDA _offlineDA;
98  private OfflineConfig _offlineConfig;
99 
100  #endregion Members
101 
102 
103  #region CONSTRUCTORES
104 
108  public offline()
109  {
110  //_offlineDA = DependencyInjector.Instance.Retrieve<IOfflineDA>();
111  _offlineDA = new OfflineDA();
112  Initialize();
113  }
118  [InjectionConstructor]
119  public offline(IOfflineDA offlineDA)
120  {
121  _offlineDA = offlineDA;
122  Initialize();
123  }
124  #endregion CONSTRUCTORES
125 
126 
127  #region Private Metods
128  private void Initialize()
129  {
130  // Asignar los tipos para la configuración del módulo
131  // UserControlConfigType = typeof(Visual.UserControls.ConfigOffline);
132  ModuloConfigType = typeof(OfflineConfig);
133 
134  _UrlAyudaAddon = "https://sage50c.sage.es/help50c/Content/ADDONS/Comunicaciones-offline/guia-uso-addon-comunicaciones-offline.htm";
135  }
136  #endregion
137 
138  #region MÉTODOS
139 
144  public override List<IOpcFlag> _OpcFlags()
145  {
146  List<IOpcFlag> lo = new List<IOpcFlag>();
147 
149 
150  var OfflineMigrado = offlineUnitOfWork.VariablesRepository.GetValorVariable(DataAccess.Repository.EnumVariables.OFFLINEMIGRADO);
151 
152  try
153  {
154  //Task 196172: Se ha migrado o no offline a .NET con el asistente de migración
155  IOpcFlag loOp = new OpcFlag();
156  loOp.Codigo = "OFFLINE_NET_ACTIVO";
157  if (Convert.ToString(OfflineMigrado) == ".T.")
158  loOp.Valor = 1;
159  else
160  loOp.Valor = 0;
161  lo.Add(loOp);
162  }
163  catch (Exception)
164  {
165  //No tiene sentido aquí loguear la excepción porque sólo estamos recabando info del addon para enviar al servidor. Lo importante es evitar cualquier excepción bloqueante en este método
166  }
167 
168  return lo;
169  }
170 
177  public override object _ExtensionManteTRel(string tcKey, IManteTRel _manteTRelPrincipal)
178  {
179  switch (tcKey)
180  {
181  case "d_prod":
182  // suscripción a eventos delete y deleteitem
183  // desuscripción de eventos
184 
185  break;
186  }
187 
188  return base._ExtensionManteTRel(tcKey, _manteTRelPrincipal);
189  }
190 
196  public override object _ExtensionManteTRel(string tcKey)
197  {
198  return base._ExtensionManteTRel(tcKey);
199 
200  }
201 
208  public override object _Extension(string _key, sage.ew.interficies.IMante _mantePrincipal)
209  {
210  // Ya se ha definido una extensión del mantenimiento de empresa para la configuración del módulo.
211  // Se instancia en la base y se recoge en loInstancia.
212  // La clase de negocio es classConfig.cs y la parte visual usercontrolConfig.cs.
213 
214  object loInstancia = null;
215  _key = _key.ToLower().Trim();
216  ExtensionManteFactory factory = new ExtensionManteFactory();
217  if (Enum.TryParse(_key, out ExtensionManteFactory.ExtensionsMantes extensionName))
218  {
219  loInstancia = factory.GetExtensionMante(extensionName, _mantePrincipal);
220  if (extensionName == ExtensionManteFactory.ExtensionsMantes.gruposemp)
221  {
222  _oExtensionManteGruposEmp = (_ExtensionMante)loInstancia;
223  }
224 
225  }
226 
227  return loInstancia;
228  }
229 
235  public override object _Extension(string tcKey)
236  {
237  object loInstancia = null;
238 
239  tcKey = tcKey.ToLower().Trim();
240  ExtensionDocFactory factory = new ExtensionDocFactory();
241  if (Enum.TryParse(tcKey, out ExtensionDocFactory.ExtensionsDoc extensionName))
242  {
243  loInstancia = factory.GetExtensionDoc(extensionName, _TipoProceso);
244  }
245  return loInstancia;
246  }
247 
255  public override object _ExtensionManteTRel(string _key, sage.ew.interficies.IManteTRel _manteTRelPrincipal, int _ordenAddon)
256  {
257  object loInstancia = null;
258 
259  _key = _key.ToLower().Trim();
260 
261  switch (_key)
262  {
263  case "grupoemp":
264  loInstancia = new Negocio.Mantes.ManteExtGruposEmpoffline();
265  break;
266  case "":
267  //loInstancia = new Negocio.Mantes.ManteExtSucurletoffline(_mantePrincipal);
268  break;
269  default:
270  break;
271  }
272 
273  return loInstancia;
274  }
275 
281  public override void _BindForm(string _nombreForm, IFormBase _formBase)
282  {
283  base._BindForm(_nombreForm, _formBase);
284 
285  _nombreForm = _nombreForm.ToLower().Trim();
286 
287  if (_VisibleCargaOffLine)
288  {
289  // Puede que el formulario sea el FormMante base. En ese caso, utilizamos el nombre de _Pantalla
290  if (_nombreForm == "formmante")
291  _nombreForm = _formBase._Pantalla.ToLower().Trim();
292 
293  string nombreListaPrevia = string.Empty;
294 
295  switch (_nombreForm)
296  {
297  case "frmpartescostes":
298  new Visual.Forms.ExtensionFrmDocPartesCostes(_formBase);
299  break;
300  case "frmalbaranproduccion":
301  new Visual.Forms.ExtensionFrmDocAlbaranProduccion(_formBase);
302  break;
303  case "frmalbarantransformacion":
304  new Visual.Forms.ExtensionFrmDocAlbaranTransformacion(_formBase);
305  break;
306 
307  case "frmfactorpuntos":
308  new Visual.Forms.ExtensionFrmFactorPuntos(_formBase);
309  break;
310  case "frmasistente":
311  if (((FormBase)_formBase)._Pantalla.ToUpper() == "APERTURA")
312  {
313  new Visual.Forms.ExtensionFrmAsistenteEjercicio(_formBase);
314  }
315  break;
316 
317  case "frmlistasprevias":
318 
319  switch (GetNombreFrmListaPrevia(_formBase))
320  {
321  case "ListasPreviasDocsPresupuestoVenta":
322  new Visual.Forms.ExtensionListaPreviaDocVentaPresupuesto(_formBase);
323  break;
324  case "ListasPreviasDocsPedidoVenta":
325  new Visual.Forms.ExtensionListaPreviaDocVentaPedido(_formBase);
326  break;
327  case "ListasPreviasDocsPedidoCompra":
328  new Visual.Forms.ExtensionListaPreviaDocCompraPedido(_formBase);
329  break;
330  case "ListasPreviasDocsDepositoVenta":
331  new Visual.Forms.ExtensionListaPreviaDocVentaDeposito(_formBase);
332  break;
333  case "ListasPreviasDocsDepositoCompra":
334  new Visual.Forms.ExtensionListaPreviaDocCompraDeposito(_formBase);
335  break;
336  default:
337  break;
338  }
339  break;
340  case "frmstockini":
341  new Visual.Forms.ExtensionListaPreviaDocStockInicial(_formBase);
342  break;
343  case "frmrenumeracionasientos":
344  new Visual.Forms.ExtensionFrmRenumeracionAsientos(_formBase);
345  break;
346  case "frmofertas":
347  new Visual.Forms.ExtensionFrmOfertas(_formBase);
348  break;
349  case "frmdocventaalbaran":
350  new Visual.Forms.ExtensionFrmDocVentaAlbaran(_formBase);
351  break;
352  case "frmdocventadeposito":
353  new Visual.Forms.ExtensionFrmDocVentaDeposito(_formBase);
354  break;
355  case "frmdoccompradeposito":
356  new Visual.Forms.ExtensionFrmDocCompraDeposito(_formBase);
357  break;
358  case "frmdoccomprapedido":
359  new Visual.Forms.ExtensionFrmDocCompraPedido(_formBase);
360  break;
361  case "frmdocventaped":
362  new Visual.Forms.ExtensionFrmDocVentaPed(_formBase);
363  break;
364  case "frmdocventapresupuesto":
365  new Visual.Forms.ExtensionFrmDocVentaPresupuesto(_formBase);
366  break;
367  case "frmdocventatpv":
368  if (_formBase._Pantalla == "albaven")
369  {
370  new Visual.Forms.ExtensionFrmDocVentaAlbaran(_formBase);
371  }
372  else if (_formBase._Pantalla == "albatpv")
373  {
374  new Visual.Forms.ExtensionFrmDocVentaTpv(_formBase);
375  }
376  else
377  {
378  new Visual.Forms.ExtensionFrmDocVentaFra(_formBase);
379  }
380 
381  break;
382  case "frmdoccomprafactura":
383  new Visual.Forms.ExtensionFrmDocCompraFactura(_formBase);
384  break;
385  case "frmdoccompraalbaran":
386  new Visual.Forms.ExtensionFrmDocCompraAlbaran(_formBase);
387  break;
388  case "frmarqueo":
389  new Visual.Forms.ExtensionFrmArqueo(_formBase);
390  break;
391  case "frmreposidesglose":
392  new Visual.Forms.ExtensionFrmReposiDesglose(_formBase);
393  break;
394  case "frmretirosdesglose":
395  new Visual.Forms.ExtensionFrmRetirosDesglose(_formBase);
396  break;
397  case "frmgruposemp":
398  Negocio.Mantes.FormManteExtGruposEmpoffline manteextGrupoEmpoffline = null;
399  manteextGrupoEmpoffline = new Negocio.Mantes.FormManteExtGruposEmpoffline((sage.ew.formul.Forms.FormMante)_formBase, this);
400  break;
401 
402  case "frmarticulo":
403  case "articulo":
404  {
405  Negocio.Mantes.FormManteExtArticulooffline manteextarticulooffline = null;
406  if (!OFFLINE._Get_Objeto_Offline()._BajaSuscripcion && EnviarArticulos())
407  manteextarticulooffline = new Negocio.Mantes.FormManteExtArticulooffline((sage.ew.formul.Forms.FormMante)_formBase, this);
408 
409  }
410  break;
411  case "frm":
412  case "":
413  //Negocio.Mantes.FormManteExtSucurletoffline formmanteextsucurletoffline = new Negocio.Mantes.FormManteExtSucurletoffline((sage.ew.formul.Forms.FormMante)_formBase, this);
414  break;
415  default:
416  break;
417  }
418  }
419  }
420 
421  private string GetNombreFrmListaPrevia(IFormBase _formBase)
422  {
423  string nombreListaPrevia = string.Empty;
424 
425  frmListasPrevias frmListaPrevia = (frmListasPrevias)_formBase;
426 
427  foreach (TabPage tabPage in frmListaPrevia.listasPreviasTab1.tabForms.TabPages)
428  {
429  if (tabPage.Tag is IBrowser)
430  {
431  nombreListaPrevia = (tabPage.Tag as IBrowser)._ListasPrevias.GetType().Name;
432  break;
433  }
434  else
435  {
436  nombreListaPrevia = tabPage.Tag.ToString();
437  }
438  }
439 
440  return nombreListaPrevia;
441  }
442 
447  public override void _BindListasPreviasDocumentos(IListasPreviasDocumento listasPreviasDocumento)
448  {
449 
450  }
451 
456  public override bool _Load()
457  {
458  // *** QUITAR ANTES DE SALIR EN LA VERSIÓN 7750
459  _offlineDA.UpdateMultConfCodigoTo00();
460  return base._Load();
461  }
462 
467  public override bool _Unload()
468  {
469  return base._Unload();
470  }
471 
476  public override bool _Update()
477  {
478  // No hace falta volver a calcular el riesgo del cliente, ya que se ha actualizado en la recepción de datos o en el proceso de migración.
479  //_offlineDA.CalcularRiesgoClienteOffline();
480 
481  //JBuitrago: Estaba duplicado el codigo
482  _offlineDA.UpdateMultConfCodigoTo00();
483  _offlineDA.UpdateOrdenCargaTo100();
484  _offlineDA.UpdateEjercicios();
485 
486  return base._Update();
487  }
488 
494  public override bool _Desinstalar(TipoExecute tcExecute)
495  {
496  return base._Desinstalar(tcExecute);
497  }
498 
504  public override bool _Instalar(TipoExecute tcExecute)
505  {
506  bool llOk = base._Instalar(tcExecute);
507 
508  if (llOk)
509  {
510  if (tcExecute == TipoExecute.After)
511  {
512  //Descomentar para la 7770 o pruebas
513  //Task 190637
514  _offlineDA.AjustesProcesoInstalacionNet();
515 
516  _offlineDA.UpdateOrdenCargaTo100();
517  }
518  }
519 
520  return llOk;
521  }
522 
529  public override bool _Apertura(string tcEjerAnt, string tcEjerActual)
530  {
531  bool lbOk = true;
532 
533  lbOk = base._Apertura(tcEjerAnt, tcEjerActual);
534 
535  if (lbOk)
536  {
537  Apertura loApertura = new Apertura(_offlineDA.GetComunes(), tcEjerAnt, tcEjerActual);
538 
539  lbOk = loApertura.ProcesarDatosApertura();
540 
541  if (Config._Tipo == Config.eModo.Nuevo)
542  {
543  lbOk = loApertura.CrearEjercicio(tcEjerAnt, tcEjerActual);
544  }
545  else
546  {
547  lbOk = loApertura.TraspasoEjercicio(tcEjerAnt, tcEjerActual);
548  }
549  }
550 
551  return lbOk;
552  }
553 
561  public override bool _AperturaValidar(eModoApertura toModoApertura, string tcEjerAnt, string tcEjerActual)
562  {
563  bool lbOk = base._AperturaValidar(toModoApertura, tcEjerAnt, tcEjerActual);
564 
565  if (Config._Automatico)
566  {
567  if (lbOk)
568  {
570  {
571  if (_offlineConfig._ComprobarConfigCentralSucursal())
572  {
573  Apertura apertura;
574  apertura = new Apertura(DB.DbComunes, tcEjerAnt, tcEjerActual);
575 
576  if (!apertura.ValidaEjercicio(tcEjerActual))
577  {
578  lbOk = false;
579  string _Error_Message = $@"No se puede crear el ejercicio {tcEjerActual} porque en la Central no existe dicho ejercicio. Para poder crear el ejercicio en la sucursal, primero se debe crear en la Central. Consulta con el administrador del sistema.";
580  FUNCTIONS._Notificacion("Creación nuevo ejercicio", "Offline – No creado nuevo ejercicio", $@"{ _Error_Message}", tbPermanente: true);
581  }
582  }
583  }
584  }
585  }
586 
587  return lbOk;
588  }
589 
594  public override void _Menu(ToolStripMenuItem tcMenuItem)
595  {
596 
597  }
598 
599  //private sage.ew.ewbase._ExtensionMante _oExtensionManteOffline;
600 
601  #endregion
602 
608  private bool EnviarArticulos()
609  {
610  return _offlineDA.GetActivoEnvioArticulos();
611  }
612 
619  public override Tuple<bool, string> _ValidateOpenForm(string tcNombreFormulario, TiposNavegacionPantalla tipoNavegacion)
620  {
621  Tuple<bool, string> loRetorno = null;
622  if (tipoNavegacion == TiposNavegacionPantalla.mantenimiento)
623  {
624  switch (tcNombreFormulario)
625  {
626  case "CONFCOMU":
628  var configurado = _offlineConfig.GetValorVariable(EnumVariables.TIPOOFFLINE, 0) == "CENTRAL" ||
629  _offlineConfig.GetValorVariable(EnumVariables.TIPOOFFLINE, 0) == "SUCURSAL";
630 
631  if (!configurado)
632  {
633  loRetorno = new Tuple<bool, string>(false, "El grupo de empresa no está configurado como Central" + Environment.NewLine +
634  "o Sucursal, ejecute el asistente de configuración para " + Environment.NewLine +
635  "configurar el grupo y poder crear configuraciones.");
636  return loRetorno;
637  }
638  break;
639  default:
640  return base._ValidateOpenForm(tcNombreFormulario, tipoNavegacion);
641  }
642  }
643  return base._ValidateOpenForm(tcNombreFormulario, tipoNavegacion);
644  }
645 
651  {
653  {
654  _offlineConfig.InsertDeleteNet(desdeCore._Id, desdeCore._ClaveTab, desdeCore._Db, desdeCore._Tabla, desdeCore._Tipo, desdeCore._Ejercicio, desdeCore._Sql);
655  }
656  }
657  }
658 }
Clase de acceso a datos para Offline
Definition: OfflineDA.cs:18
DataAccess.Model.deletenet InsertDeleteNet(string id, string claveTab, string baseDatos, string tabla, int tipo, int orden, string ejercicio, string where)
Inserta un registro en la tabla DeleteNet a través de la creación de un objeto de la clase deletenet ...
string _ClaveTab
Clave de la tabla
Clase base para el módulo offline
Definition: SageAddons.cs:64
override void _BindListasPreviasDocumentos(IListasPreviasDocumento listasPreviasDocumento)
Vincula las listas previas de la aplicación con los del addon
Definition: SageAddons.cs:447
Nueva interficie madre de IMantes y de la que colgara ewMante. Propiedades: _Codigo, _Nombre, _Error_Message. Metodos: _New, Save, _Delete, _Load, _Existe_Registro, _Clonar
Definition: IMantes.cs:17
DraggableEwTabControl tabForms
TabControl del formulario (da acceso a las pestañas)
bool TraspasoEjercicio(string ejercicioAnterior, string ejercicioActual)
Actualiza valor de campo TRASPEJER de tabla OFFLINE.EJERCICIOS de los registros de ejercicio origen y...
Definition: Apertura.cs:127
static AddonsController Instance
Instancia al objeto singleton Addons
int Valor
Valor del OpcFlag
Definition: IOpcFlag.cs:21
bool _ComprobarConfigCentralSucursal()
Montar instrucción sql para comprobar si tenemos configurado si el grupo trabaja como central o sucur...
Argumentos para los eventos lanzados por el addons en caso de error
virtual string _Pantalla
Nombre del formulario equivalente de Eurowin para bloqueos por usuario.
Definition: clsFormul.cs:429
override object _ExtensionManteTRel(string tcKey)
Definition: SageAddons.cs:196
override List< IOpcFlag > _OpcFlags()
Para obtener las opciones especiales en cada Addon
Definition: SageAddons.cs:144
eModoApertura
Enumeración de las posibles opciones de apertura
Definition: generales.cs:921
PE-93426 Clase base para los módulos de la aplicación
Definition: Modulo.cs:29
string Codigo
Código del OpcFlag
Definition: IOpcFlag.cs:16
object Retrieve(Type T)
Resuelve objeto de tipo T
string _Pantalla
Nombre del formulario equivalente de Eurowin para bloqueos por usuario.
Definition: IFormBase.cs:59
override bool _Apertura(string tcEjerAnt, string tcEjerActual)
Método para realizar apertura un addon
Definition: SageAddons.cs:529
Interficie para OpcFlags
Definition: IOpcFlag.cs:11
Formulario compuesto por varios formaularios anidados como tabs
override object _Extension(string tcKey)
Método para obtener la instancia de la clase de extensiones desde los documentos
Definition: SageAddons.cs:235
override object _Extension(string _key, sage.ew.interficies.IMante _mantePrincipal)
Método para obtener las instancias de clases de extensiones desde los documentos y mantenimientos ...
Definition: SageAddons.cs:208
object GetAddon(int numaddon)
Obtiene el addon por numero
override bool _AperturaValidar(eModoApertura toModoApertura, string tcEjerAnt, string tcEjerActual)
Definition: SageAddons.cs:561
ListasPreviasTab listasPreviasTab1
Tab de las listas previas
bool UpdateOrdenCargaTo100()
actualiza en orden de carda de addon a 100
override object _ExtensionManteTRel(string tcKey, IManteTRel _manteTRelPrincipal)
Definition: SageAddons.cs:177
Clase base para las extensiones de los mantenimientos
override object _ExtensionManteTRel(string _key, sage.ew.interficies.IManteTRel _manteTRelPrincipal, int _ordenAddon)
Método para obtener las instancias de clases de extensiones de mantenimientos de tablas relacionadas ...
Definition: SageAddons.cs:255
Interficie para paginas de documentos
Interface para formularios que deriven de FormBase
Definition: IFormBase.cs:12
void CrearDeletenetDesdeCore(IDeletenetDesdeCore desdeCore)
Método para crear registros en DELETENET desde el Core de Sage50
Definition: SageAddons.cs:650
override bool _Unload()
Se ejecutará este método cuando se cierre eurowin
Definition: SageAddons.cs:467
override bool _Desinstalar(TipoExecute tcExecute)
Método para desinstalar un addon
Definition: SageAddons.cs:494
override void _Menu(ToolStripMenuItem tcMenuItem)
Task 162341: Método para poder manipular menus
Definition: SageAddons.cs:594
void AjustesProcesoInstalacionNet()
Ejecuta los ajustes requeridos para el trabajo en .net
bool CrearEjercicio(string ejercicioAnterior, string ejercicioActual)
Método para la creación del nuevo ejercicio en offline
Definition: Apertura.cs:140
offline(IOfflineDA offlineDA)
Constructor para inyeccion de dependencias
Definition: SageAddons.cs:119
string GetComunes()
Obtiene comunes
override bool _Instalar(TipoExecute tcExecute)
Método para instalar un addon
Definition: SageAddons.cs:504
Formulario base de Eurowin
Definition: clsFormul.cs:400
Interface para métodos específicos de un módulo de tipo Offline
TipoExecute
Tipos de ejecución de los métodos
Definition: IDocModulos.cs:16
bool GetActivoEnvioArticulos()
Obtiene si tenemos configurado el envio de articulos
string GetValorVariable(EnumVariables variable, Int32 idConf=0)
Obtener valor de una variable
override Tuple< bool, string > _ValidateOpenForm(string tcNombreFormulario, TiposNavegacionPantalla tipoNavegacion)
Bug 194641: Comprobar las pantallas que no pueden abrirse y sacar mensaje
Definition: SageAddons.cs:619
Clase de negocio para la configuración del addon de offline
IAddonsManager AddonsManager
Gestor de Addons
Clase para indicar opcflags
Definition: LICENCIAS.cs:4402
Interficie con las operaciones básicas de los ManteTRel
Definition: IMantes.cs:474
bool UpdateEjercicios()
Actualiza la tabla ejercicios del offline con los ejercicios que se tiene en comunes ...
override bool _Update()
Se ejecutará este método cuando se actualize el módulo via FTP
Definition: SageAddons.cs:476
bool UpdateMultConfCodigoTo00()
Actualiza en MultConf codigo a 00
bool ValidaEjercicio(string ejercicioActual)
Valida el ejercicio a crear si es sucursal
Definition: Apertura.cs:155
Interfaz de acceso a datos para Offline
Definition: IOfflineDA.cs:8
Interface para el browser
Definition: IBrowserUI.cs:17
override bool _Load()
Se ejecutará este método cuando se cargue el módulo
Definition: SageAddons.cs:456
override void _BindForm(string _nombreForm, IFormBase _formBase)
Vincula los formularios de la aplicación con los del addon
Definition: SageAddons.cs:281
Base para los mantenimientos de Sage TPV
Definition: FormMante.cs:26
bool ProcesarDatosApertura()
Método para procesar los datos de la apertura
Definition: Apertura.cs:111
TiposNavegacionPantalla
Posibles tipos de navegación ( ATENCIÓN Si se modifica este enum hacer lo mismo en _TiposNavegacion d...
string GetValorVariable(EnumVariables variable, int idConf=0)
Obtiene variable
IVariablesRepository VariablesRepository
Repositorio de variables
Clase Inyector de dependencias para resolver las dependencias
Clase para tareas relacionadas con la Apertura de ejercicio dentro de Fideliza
Definition: Apertura.cs:15
Estructura para generar las partidas de inventario desde el generador de asientos de compra ...
offline()
Inicializa una nueva instancia de la classe
Definition: SageAddons.cs:108