FunctionsAddons.cs
1 using sage.ew.db;
2 using Sage.ES.S50.Addons.Virtual;
3 using System;
4 using System.Collections.Generic;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 
9 namespace Sage.ES.S50.Addons
10 {
14  public static partial class FunctionsAddons
15  {
20  public static DataTable _ConsultarAddonsInstalados(string tcCondicion = "")
21  {
22  string lcSql = string.Empty;
23  DataTable ldtAddonsInstal = new DataTable();
24 
25  // Obtener los módulos
26  lcSql = $"SELECT nombre as bd, nombre2 as nombre, activo, libreria, clase, id, CAST(CASE WHEN visible = 1 THEN '1' ELSE '0' END AS char(1)) as visible, " +
27  $"instalado, tipo, descrip, url, {DB.SQLFalse()} as desactivar, observa, 1 as disponible, '' as mensaje, '' as ftp, checkupdat as checksumupdate " +
28  $"FROM {DB.SQLDatabase("COMUNES", "MODULOS")} where visible = {DB.SQLTrue()} and instalado = {DB.SQLTrue()} ";
29 
30  if (!string.IsNullOrWhiteSpace(tcCondicion))
31  lcSql += tcCondicion;
32 
33 
34  DB.SQLExec(lcSql, ref ldtAddonsInstal);
35 
36  // Revisar los add-ons que se instalan en la instalación o actualización y son activables por empresa
37  _RevisarAddonsTipo4(ldtAddonsInstal);
38 
39  List<IAddonVirtual> loList = (from loAddon in AddonsController.Instance.AddonsManager.GetAddonsVirtuales()
40  where loAddon.Visible
41  select loAddon).ToList();
42 
43  foreach (IAddonVirtual loAddon in loList)
44  {
45  DataRow loRow = ldtAddonsInstal.NewRow();
46 
47  loRow["id"] = loAddon.Id;
48  loRow["bd"] = loAddon.Nombre;
49  loRow["nombre"] = loAddon.Nombre2;
50  loRow["activo"] = true;
51  loRow["instalado"] = true;
52  loRow["visible"] = "1";
53  loRow["desactivar"] = false;
54  loRow["tipo"] = 1;
55  loRow["disponible"] = 1;
56  loRow["mensaje"] = "";
57  loRow["descrip"] = loAddon.Descripcion;
58  loRow["observa"] = loAddon.Observaciones;
59 
60  ldtAddonsInstal.Rows.Add(loRow);
61  }
62 
63  //Guardar los cambios realizados en la tabla
64  ldtAddonsInstal.AcceptChanges();
65 
66  return ldtAddonsInstal;
67  }
68 
74  public static DataTable _ConsultarAddonsDeshabilitados(string tcCondicion = "")
75  {
76  string lcSql = "";
77  DataTable ldtAddonsDisabled = new DataTable();
78 
79  // Obtener los módulos deshabilitados
80  lcSql = $"SELECT nombre as bd, nombre2 as nombre, activo, libreria, clase, id, CAST(CASE WHEN visible = 1 THEN '1' ELSE '0' END AS char(1)) as visible, " +
81  $"instalado, tipo, descrip, url, {DB.SQLFalse()} as desactivar, observa " +
82  $"FROM {DB.SQLDatabase("COMUNES", "MODULOS")} where visible = {DB.SQLFalse()} and instalado = {DB.SQLFalse()}";
83 
84  if (!string.IsNullOrWhiteSpace(tcCondicion))
85  lcSql += tcCondicion;
86 
87  DB.SQLExec(lcSql, ref ldtAddonsDisabled);
88 
89 
90  return ldtAddonsDisabled;
91  }
92 
97  public static void _RevisarAddonsTipo4(DataTable dtRevisar)
98  {
99  //Task 173487: Los addons tipo 4 de SDI ahora si que tienen que ser visibles en el panel de addons pero no IDATOS
100  //Bug 215346: Los addons tipo 4 de SDI no se deben mostrar en el panel de addons definitivamente
101 
102  // Consultamos los add-ons no visibles
103  DataRow[] ldRows = dtRevisar.Select("tipo=4");
104 
105  foreach (DataRow loRow in ldRows)
106  {
107  loRow.Delete();
108  }
109  }
110  }
111 }