18 using System.Collections.Generic;
19 using System.Windows.Forms;
22 namespace sage.addons.offline
27 public static class OFFLINE
32 public static string _NombreAddOn =
"OFFLINE";
37 public static dynamic _Factura = null;
42 public static bool _VieneDeFacturaDirecta =
false;
48 public static addons.offline.offline _Get_Objeto_Offline()
50 offline looffline = null;
54 looffline = (offline)loObjeto;
66 #region PROPIEDADES PUBLICAS 71 public override string Firma {
get;
set; }
77 public bool _VisibleCargaOffLine =
true;
87 public bool _BajaSuscripcion
89 get {
return LICENCIAS._BajaSuscripcion(OFFLINE._NombreAddOn); }
92 #endregion PROPIEDADES PUBLICAS 103 #region CONSTRUCTORES 118 [InjectionConstructor]
121 _offlineDA = offlineDA;
124 #endregion CONSTRUCTORES 127 #region Private Metods 128 private void Initialize()
134 _UrlAyudaAddon =
"https://sage50c.sage.es/help50c/Content/ADDONS/Comunicaciones-offline/guia-uso-addon-comunicaciones-offline.htm";
146 List<IOpcFlag> lo =
new List<IOpcFlag>();
156 loOp.
Codigo =
"OFFLINE_NET_ACTIVO";
157 if (Convert.ToString(OfflineMigrado) ==
".T.")
188 return base._ExtensionManteTRel(tcKey, _manteTRelPrincipal);
198 return base._ExtensionManteTRel(tcKey);
214 object loInstancia = null;
215 _key = _key.ToLower().Trim();
216 ExtensionManteFactory factory =
new ExtensionManteFactory();
217 if (Enum.TryParse(_key, out ExtensionManteFactory.ExtensionsMantes extensionName))
219 loInstancia = factory.GetExtensionMante(extensionName, _mantePrincipal);
220 if (extensionName == ExtensionManteFactory.ExtensionsMantes.gruposemp)
237 object loInstancia = null;
239 tcKey = tcKey.ToLower().Trim();
240 ExtensionDocFactory factory =
new ExtensionDocFactory();
241 if (Enum.TryParse(tcKey, out ExtensionDocFactory.ExtensionsDoc extensionName))
243 loInstancia = factory.GetExtensionDoc(extensionName, _TipoProceso);
257 object loInstancia = null;
259 _key = _key.ToLower().Trim();
264 loInstancia =
new Negocio.Mantes.ManteExtGruposEmpoffline();
283 base._BindForm(_nombreForm, _formBase);
285 _nombreForm = _nombreForm.ToLower().Trim();
287 if (_VisibleCargaOffLine)
290 if (_nombreForm ==
"formmante")
291 _nombreForm = _formBase.
_Pantalla.ToLower().Trim();
293 string nombreListaPrevia =
string.Empty;
297 case "frmpartescostes":
298 new Visual.Forms.ExtensionFrmDocPartesCostes(_formBase);
300 case "frmalbaranproduccion":
301 new Visual.Forms.ExtensionFrmDocAlbaranProduccion(_formBase);
303 case "frmalbarantransformacion":
304 new Visual.Forms.ExtensionFrmDocAlbaranTransformacion(_formBase);
307 case "frmfactorpuntos":
308 new Visual.Forms.ExtensionFrmFactorPuntos(_formBase);
311 if (((
FormBase)_formBase)._Pantalla.ToUpper() ==
"APERTURA")
313 new Visual.Forms.ExtensionFrmAsistenteEjercicio(_formBase);
317 case "frmlistasprevias":
319 switch (GetNombreFrmListaPrevia(_formBase))
321 case "ListasPreviasDocsPresupuestoVenta":
322 new Visual.Forms.ExtensionListaPreviaDocVentaPresupuesto(_formBase);
324 case "ListasPreviasDocsPedidoVenta":
325 new Visual.Forms.ExtensionListaPreviaDocVentaPedido(_formBase);
327 case "ListasPreviasDocsPedidoCompra":
328 new Visual.Forms.ExtensionListaPreviaDocCompraPedido(_formBase);
330 case "ListasPreviasDocsDepositoVenta":
331 new Visual.Forms.ExtensionListaPreviaDocVentaDeposito(_formBase);
333 case "ListasPreviasDocsDepositoCompra":
334 new Visual.Forms.ExtensionListaPreviaDocCompraDeposito(_formBase);
341 new Visual.Forms.ExtensionListaPreviaDocStockInicial(_formBase);
343 case "frmrenumeracionasientos":
344 new Visual.Forms.ExtensionFrmRenumeracionAsientos(_formBase);
347 new Visual.Forms.ExtensionFrmOfertas(_formBase);
349 case "frmdocventaalbaran":
350 new Visual.Forms.ExtensionFrmDocVentaAlbaran(_formBase);
352 case "frmdocventadeposito":
353 new Visual.Forms.ExtensionFrmDocVentaDeposito(_formBase);
355 case "frmdoccompradeposito":
356 new Visual.Forms.ExtensionFrmDocCompraDeposito(_formBase);
358 case "frmdoccomprapedido":
359 new Visual.Forms.ExtensionFrmDocCompraPedido(_formBase);
361 case "frmdocventaped":
362 new Visual.Forms.ExtensionFrmDocVentaPed(_formBase);
364 case "frmdocventapresupuesto":
365 new Visual.Forms.ExtensionFrmDocVentaPresupuesto(_formBase);
367 case "frmdocventatpv":
370 new Visual.Forms.ExtensionFrmDocVentaAlbaran(_formBase);
372 else if (_formBase.
_Pantalla ==
"albatpv")
374 new Visual.Forms.ExtensionFrmDocVentaTpv(_formBase);
378 new Visual.Forms.ExtensionFrmDocVentaFra(_formBase);
382 case "frmdoccomprafactura":
383 new Visual.Forms.ExtensionFrmDocCompraFactura(_formBase);
385 case "frmdoccompraalbaran":
386 new Visual.Forms.ExtensionFrmDocCompraAlbaran(_formBase);
389 new Visual.Forms.ExtensionFrmArqueo(_formBase);
391 case "frmreposidesglose":
392 new Visual.Forms.ExtensionFrmReposiDesglose(_formBase);
394 case "frmretirosdesglose":
395 new Visual.Forms.ExtensionFrmRetirosDesglose(_formBase);
398 Negocio.Mantes.FormManteExtGruposEmpoffline manteextGrupoEmpoffline = null;
405 Negocio.Mantes.FormManteExtArticulooffline manteextarticulooffline = null;
406 if (!OFFLINE._Get_Objeto_Offline()._BajaSuscripcion && EnviarArticulos())
421 private string GetNombreFrmListaPrevia(
IFormBase _formBase)
423 string nombreListaPrevia =
string.Empty;
431 nombreListaPrevia = (tabPage.Tag as
IBrowser)._ListasPrevias.GetType().Name;
436 nombreListaPrevia = tabPage.Tag.ToString();
440 return nombreListaPrevia;
469 return base._Unload();
486 return base._Update();
496 return base._Desinstalar(tcExecute);
506 bool llOk = base._Instalar(tcExecute);
529 public override bool _Apertura(
string tcEjerAnt,
string tcEjerActual)
533 lbOk = base._Apertura(tcEjerAnt, tcEjerActual);
541 if (Config._Tipo == Config.eModo.Nuevo)
563 bool lbOk = base._AperturaValidar(toModoApertura, tcEjerAnt, tcEjerActual);
565 if (Config._Automatico)
574 apertura =
new Apertura(DB.DbComunes, tcEjerAnt, tcEjerActual);
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);
594 public override void _Menu(ToolStripMenuItem tcMenuItem)
608 private bool EnviarArticulos()
621 Tuple<bool, string> loRetorno = null;
624 switch (tcNombreFormulario)
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.");
640 return base._ValidateOpenForm(tcNombreFormulario, tipoNavegacion);
643 return base._ValidateOpenForm(tcNombreFormulario, tipoNavegacion);
Clase de acceso a datos para Offline
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
override void _BindListasPreviasDocumentos(IListasPreviasDocumento listasPreviasDocumento)
Vincula las listas previas de la aplicación con los del addon
Nueva interficie madre de IMantes y de la que colgara ewMante. Propiedades: _Codigo, _Nombre, _Error_Message. Metodos: _New, Save, _Delete, _Load, _Existe_Registro, _Clonar
bool TraspasoEjercicio(string ejercicioAnterior, string ejercicioActual)
Actualiza valor de campo TRASPEJER de tabla OFFLINE.EJERCICIOS de los registros de ejercicio origen y...
string _Sql
Where de la query
static AddonsController Instance
Instancia al objeto singleton Addons
int Valor
Valor del OpcFlag
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
override object _ExtensionManteTRel(string tcKey)
override List< IOpcFlag > _OpcFlags()
Para obtener las opciones especiales en cada Addon
eModoApertura
Enumeración de las posibles opciones de apertura
PE-93426 Clase base para los módulos de la aplicación
string Codigo
Código del OpcFlag
object Retrieve(Type T)
Resuelve objeto de tipo T
override bool _Apertura(string tcEjerAnt, string tcEjerActual)
Método para realizar apertura un addon
override object _Extension(string tcKey)
Método para obtener la instancia de la clase de extensiones desde los documentos
EnumVariables
Enumerado de variables
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 ...
object GetAddon(int numaddon)
Obtiene el addon por numero
override bool _AperturaValidar(eModoApertura toModoApertura, string tcEjerAnt, string tcEjerActual)
bool UpdateOrdenCargaTo100()
actualiza en orden de carda de addon a 100
override object _ExtensionManteTRel(string tcKey, IManteTRel _manteTRelPrincipal)
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 ...
Interficie para paginas de documentos
void CrearDeletenetDesdeCore(IDeletenetDesdeCore desdeCore)
Método para crear registros en DELETENET desde el Core de Sage50
override bool _Unload()
Se ejecutará este método cuando se cierre eurowin
override bool _Desinstalar(TipoExecute tcExecute)
Método para desinstalar un addon
override void _Menu(ToolStripMenuItem tcMenuItem)
Task 162341: Método para poder manipular menus
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
offline(IOfflineDA offlineDA)
Constructor para inyeccion de dependencias
string GetComunes()
Obtiene comunes
override bool _Instalar(TipoExecute tcExecute)
Método para instalar un addon
Interface para métodos específicos de un módulo de tipo Offline
TipoExecute
Tipos de ejecución de los métodos
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
Clase de negocio para la configuración del addon de offline
IAddonsManager AddonsManager
Gestor de Addons
Clase para indicar opcflags
Interficie con las operaciones básicas de los ManteTRel
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
bool UpdateMultConfCodigoTo00()
Actualiza en MultConf codigo a 00
bool ValidaEjercicio(string ejercicioActual)
Valida el ejercicio a crear si es sucursal
static DependencyInjector Instance
Instancia
Interfaz de acceso a datos para Offline
Interface para el browser
override bool _Load()
Se ejecutará este método cuando se cargue el módulo
override void _BindForm(string _nombreForm, IFormBase _formBase)
Vincula los formularios de la aplicación con los del addon
string _Ejercicio
Ejercicio
bool ProcesarDatosApertura()
Método para procesar los datos de la apertura
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
Interfaz UnitOfWor Offline
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
Estructura para generar las partidas de inventario desde el generador de asientos de compra ...
offline()
Inicializa una nueva instancia de la classe