frmSelDesktop.cs
1 using sage.ew.formul.Forms;
2 using sage.ew.functions;
3 using sage.ew.global;
5 using sage.ew.objetos;
6 using sage.ew.usuario;
7 using System;
8 using System.Collections.Generic;
9 using System.ComponentModel;
10 using System.Data;
11 using System.Drawing;
12 using System.Linq;
13 using System.Security.Cryptography;
14 using System.Text;
15 using System.Windows.Forms;
16 
17 namespace sage._50.Forms
18 {
22  public partial class frmSelDesktop : ew.formul.Forms.FormDialog
23  {
24  #region Propiedades privadas
25  private List<string> _oModulos = new List<string>();
26  private DataTable _dtModulos = null;
27  private DataTable _dtModVisible = new DataTable();
28  private Usuario _oUsuario = null;
29  private int _nIdDesktop = 0;
30  private bool _lDesktopBaseAddon = false;
31  ControladorDesktop _oControladorDesktop = null;
35  private string _cUsuario
36  {
37  get { return Convert.ToString(EW_GLOBAL._GetVariable("wc_usuario", "")); }
38  }
39 
40  private string _cNameProducto = Convert.ToString(EW_GLOBAL._GetVariable("wc_nameproducto"));
41  #endregion Propiedades privadas
42 
43  #region Constructor
44  public frmSelDesktop()
48  {
49  InitializeComponent();
50 
51  if (!DesignMode)
52  {
53  _Pantalla = "SELDESKTOP";
54 
55  _oUsuario = Usuario._This;
56 
57  if (_NivelAcceso == ew.formul._TiposAccesosPantalla.SoloLectura)
58  ewbuttonRestablecer.Visible = false;
59 
60  _MostrarCrearAccesoDirecto = false;
61  _MostrarAccesoFavoritos = false;
62 
63  SubscripcionEventos();
64  }
65  }
66  #endregion Constructor
67 
68  #region Métodos protected override
69  protected override void OnHandleCreated(EventArgs e)
74  {
75  base.OnHandleCreated(e);
76 
77  Text = $"Seleccionar escritorio por defecto del Menú {DescripcionAddon()}";
78 
79  Informacion();
80 
81  selectorDesktopAddon._Refresh();
82 
83  SelDesktopAddon();
84  }
85  #endregion Métodos protected override
86 
87  #region Métodos privados
88  private void Informacion()
92  {
93  ewlabelInformacion.AutoSize = true;
94  ewlabelInformacion.MaximumSize = new Size(ewPanelTitulo.Width, 0);
95 
96  ewlabelInformacion.Text = "Si quieres asociar un escritorio para este Menú solo debes seleccionarlo y pulsar Aceptar. " +
97  $"A partir de este momento, cada vez que cambies de menú en {_cNameProducto} y vayas a las opciones del Menú de " + DescripcionAddon() + " " +
98  "te cargará el escritorio que tu hayas seleccionado de forma automática.";
99  }
100 
104  private void SelDesktopAddon()
105  {
106  ControladorDesktop loControlador = (ControladorDesktop)EW_GLOBAL._GetVariable("wo_ControladorDesktop");
107 
108  if (loControlador != null)
109  _oControladorDesktop = loControlador;
110 
111  int lnIdDesktop = 0;
112  bool llDesktopBase = false;
113 
114  Dictionary<string, object> loDictValues = new Dictionary<string, object>();
115  loDictValues.Add("ADDON", Convert.ToString(EW_GLOBAL._GetVariable("wc_modulo", "")));
116 
117  _oControladorDesktop._GetIdDesktopAddon(loDictValues, ref lnIdDesktop, ref llDesktopBase);
118 
119  if (lnIdDesktop > 0)
120  {
121  _nIdDesktop = lnIdDesktop;
122  _lDesktopBaseAddon = llDesktopBase;
123 
124  selectorDesktopAddon._IdDesktopSeleccionado = _nIdDesktop;
125  }
126  }
127 
131  private List<string> _lstModulos
132  {
133  get
134  {
135  if (_oModulos.Count == 0)
136  {
137  FUNCTIONS._Modulos(_oUsuario, ref _oModulos, ref _dtModulos, ref _dtModVisible);
138  }
139 
140  return _oModulos;
141  }
142  }
143 
150  private string DescripcionAddon()
151  {
152  string lcAddon = Convert.ToString(EW_GLOBAL._GetVariable("wc_modulo", ""));
153 
154  List<string> lstModulos = _lstModulos.AsEnumerable().Where(item => item.ToUpper() == lcAddon).ToList<string>();
155 
156  if (lstModulos.Count > 0)
157  lcAddon = lstModulos.First();
158 
159  return lcAddon;
160  }
161 
165  private void SubscripcionEventos()
166  {
167  btDocAceptar1.Click += Aceptar_Click;
168  btDocCancelar1.Click += Cancelar_Click;
169  FormClosing += FrmSelDesktop_FormClosing;
170 
171  ewbuttonRestablecer.Click += Restablacer_Click;
172  }
173 
179  private void FrmSelDesktop_FormClosing(object sender, FormClosingEventArgs e)
180  {
181  if (_lCancel && e.CloseReason != CloseReason.UserClosing)
182  e.Cancel = true;
183  }
184 
185  private bool _lCancel = false;
186 
192  private void Cancelar_Click(object sender, EventArgs e)
193  {
194  _lCancel = false;
195  }
196 
202  private void Aceptar_Click(object sender, EventArgs e)
203  {
204  bool llOk = Aceptar();
205 
206  _lCancel = !llOk;
207  }
208 
214  private void Restablacer_Click(object sender, EventArgs e)
215  {
216  bool llOk = Aceptar(true);
217 
218  if (llOk)
219  {
220  _lCancel = false;
221  Close();
222  }
223  }
224 
228  private bool Aceptar(bool tlRestablecer = false)
229  {
230  bool llOk = true;
231 
232  int lnIdDesktop = selectorDesktopAddon._IdDesktopSeleccionado;
233 
234  if (lnIdDesktop == 0 && _nIdDesktop == 0) // Si no hay cambios entre el escritorio seleccionado y el anterior ya podemos salir
235  return true;
236 
237  string lcAddon = Convert.ToString(EW_GLOBAL._GetVariable("wc_modulo", ""));
238 
239  if (lnIdDesktop == 0 || tlRestablecer)
240  llOk = DeleteUsrDesktopAddon(_nIdDesktop, lcAddon); // Borramos por el id del escritorio establecido al entrar al formulario
241  else
242  llOk = SaveUsrDesktopAddon(lnIdDesktop, lcAddon);
243 
244  return llOk;
245  }
246 
251  private void SelectorDesktopAddon__Click_Accept_Select_Desktop(ItemSelectorDesktopAddon toItemSelectorDesktopAddon)
252  {
253  btDocAceptar1.PerformClick();
254  }
255 
262  private bool SaveUsrDesktopAddon(int tnIdDesktop,string tcAddon)
263  {
264  if (_nIdDesktop > 0 && tnIdDesktop == _nIdDesktop) // Si es el mismo escritorio ya podemos salir
265  return true;
266 
267  bool llOk = (_MessageBox("¿Desea seleccionar este escritorio como escritorio por defecto cuando se active el Menú de " + DescripcionAddon() + "?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, DialogResult.Yes) == DialogResult.Yes);
268 
269  if (llOk)
270  {
271  ControladorDesktop loControlador = (ControladorDesktop)EW_GLOBAL._GetVariable("wo_ControladorDesktop");
272 
273  if (loControlador != null)
274  {
275  Dictionary<string, object> loDictValues = DictValues(tnIdDesktop, tcAddon);
276 
277  loControlador._SaveUsrDesktopAddon(loDictValues);
278  }
279  }
280 
281  return llOk;
282  }
289  private bool DeleteUsrDesktopAddon(int tnIdDesktop, string tcAddon)
290  {
291  if (_lDesktopBaseAddon)
292  {
293  _MessageBox("Este es un diseño base y siempre estará asociado a la carga del Menú de " + DescripcionAddon() + ".", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
294  return false;
295  }
296 
297  bool llOk = (_MessageBox("¿Desea no establecer este escritorio como escritorio por defecto cuando se active el Menú de " + DescripcionAddon() + "?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, DialogResult.Yes) == DialogResult.Yes);
298 
299  if (llOk)
300  {
301  ControladorDesktop loControlador = (ControladorDesktop)EW_GLOBAL._GetVariable("wo_ControladorDesktop");
302 
303  if (loControlador != null)
304  {
305  Dictionary<string, object> loDictValues = DictValues(tnIdDesktop, tcAddon);
306 
307  loControlador._DeleteUsrDesktopAddon(loDictValues);
308  }
309  }
310 
311  return llOk;
312  }
313 
320  private Dictionary<string, object> DictValues(int tnIdDesktop, string tcAddon)
321  {
322  Dictionary<string, object> loDictValues = new Dictionary<string, object>();
323  loDictValues.Add("ADDON", tcAddon);
324  loDictValues.Add("IDDESKTOP", tnIdDesktop);
325 
326  return loDictValues;
327  }
328  #endregion Métodos privados
329  }
330 }
static sage.ew.usuario.Usuario _This
Instancia estática del objeto usuario con los datos del usuario actual (wc_usuario) ...
Definition: clsUsuario.cs:341
Pretederminamos el diseño de un escritorio para un usuario/Addon
Clase ItemSelectorDesktop que se presenta en el selector del desktop
Clase FormDialog basada en FormBase
Definition: FormDialog.cs:17
bool _GetIdDesktopAddon(Dictionary< string, object > toDictValues, ref int tnIdDesktop, ref bool tlDesktopBase)
Devuelve el Id del Addon para ver si se ha de cargar un escritorio al cambiar de Menú ...
bool _DeleteUsrDesktopAddon(Dictionary< string, object > toDictValues)
Eliminar el registro que predetermina un desktop por usuario / Addon
Clase controlador que se utilizará en el escritorio de Sage 50
Formulario para la selección del desktop de los Addons
PAra eliminar el registro que predetermina un registro para un usuario/Addon
bool _SaveUsrDesktopAddon(Dictionary< string, object > toDictValues)
Predetermina un desktop por usuario / Addon
Definición de la clase Usuario
Definition: clsUsuario.cs:113