ManteExtArticuloecommerce.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data;
6 using System.Reflection;
7 using System.Windows.Forms;
8 using System.IO;
9 
10 using sage.ew.ewbase;
11 using sage.ew.formul.Forms;
12 using sage.ew.interficies;
13 using sage.ew.db;
14 using sage.ew.global;
15 using sage.ew.functions;
16 using sage.ew.articulo;
18 using sage.ew.listados.Clases;
19 using sage.ew.empresa;
20 
21 namespace sage.addons.ecommerce.Negocio.Mantes
22 {
27  {
28  // Objeto de negocio del mantenimiento principal
29  private ewMante mantePrincipal = null;
30 
31  // Formulario del mantenimiento
32  private FormMante formMante = null;
33 
34  private string cEmpresa = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
35 
36  private Empresa _oEmpresa = EW_GLOBAL._Empresa;
37 
41  public Visual.UserControls.ecommerceARTICULO usercontrolTabManteBase = null;
42 
43  #region DELEGADOS
44 
53  public delegate void _Mensaje(string tcMensaje, string tcCaption, MessageBoxButtons loButton, MessageBoxIcon loIcon);
54 
58  public event _Mensaje _EventoMensaje;
59 
68  public delegate DialogResult _Pregunta(string tcMensaje, string tcCaption, MessageBoxButtons loButton, MessageBoxIcon loIcon);
69 
73  public event _Pregunta _EventoPregunta;
74 
75  #endregion
76 
77  #region ManteTRels
78 
82  public Negocio.Clases.art_rela ManteTRelart_rela = null;
83 
87  public sage.ew.ewbase.Clases.Imagenes ManteTRelImagenes = null;
88 
89 
90 
91  #endregion ManteTRels
92 
93 
97 
98  public string _EMPRESA
99  {
100  get
101  {
102  return _privateEMPRESA;
103  }
104  set
105  {
106  _privateEMPRESA = value;
107  }
108  }
109  private string _privateEMPRESA = string.Empty;
110 
114 
115  public string _ARTICULO
116  {
117  get
118  {
119  return _privateARTICULO;
120  }
121  set
122  {
123  _privateARTICULO = value;
124  }
125  }
126  private string _privateARTICULO = String.Empty;
127 
131 
132  public bool _PUBLICAR
133  {
134  get
135  {
136  return _privatePUBLICAR;
137  }
138  set
139  {
140 
141  if (_privatePUBLICAR != value)
142  {
143  if (value)
144  {
145  if (_privateFEC_ENV == null)
146  {
147  _privateFEC_ENV = DateTime.Now;
148  }
149  }
150  else
151  {
152  DateTime? dUltSincro;
153  object dUltSincroObject = DB.SQLValor("CFG_ECOMM", "EMPRESA", cEmpresa, "ULT_SINCRO", "ECOMMERCE");
154  if (dUltSincroObject is DBNull)
155  dUltSincro = null;
156  else
157  dUltSincro = Convert.ToDateTime(dUltSincroObject);
158 
159  // Si ART_ECOMM.FEC_ENV posterior a CFG_ECOMM.ULT_SINCRO actualizar campo FEC_ENV a .NULL.
160  // SI ART_ECOMM.FEC_ENV es anterior a CFG_ECOMM.ULT_SINCRO dejar el campo FEC_ENV tal cual está.
161  if (dUltSincro != null && _FEC_ENV > dUltSincro)
162  {
163  _privateFEC_ENV = null;
164  }
165  }
166  }
167 
168  _privatePUBLICAR = value;
169  }
170  }
171  private bool _privatePUBLICAR = false;
172 
176 
177  public DateTime? _FEC_ENV
178  {
179  get
180  {
181  return _privateFEC_ENV;
182  }
183  set
184  {
185  _privateFEC_ENV = value;
186  }
187  }
188  private DateTime? _privateFEC_ENV;
189 
193  public DateTime? _ULT_SINC
194  {
195  get
196  {
197  return _privateULT_SINC;
198  }
199  set
200  {
201  _privateULT_SINC = value;
202  }
203  }
204  private DateTime? _privateULT_SINC;
205 
209  public string _SH_DESC
210  {
211  get
212  {
213  return _privateSH_DESC;
214  }
215  set
216  {
217  _privateSH_DESC = value;
218  }
219  }
220  private string _privateSH_DESC = string.Empty;
221 
222 
227  : this()
228  {
229  this._Mante = _mantePrincipal;
230 
231  // Asociar mantenimientos de tablas relacionadas
232  Negocio.Clases.art_rela mtrelart_rela = new Negocio.Clases.art_rela();
233  this.ManteTRelart_rela = mtrelart_rela;
234  this._Mante._AddManteTRel(mtrelart_rela);
235 
236  ImagenesEcommerce mtrelImagenes = new ImagenesEcommerce();
237  this.ManteTRelImagenes = mtrelImagenes;
238  this._Mante._AddManteTRel(mtrelImagenes);
239 
240  // Asociar mantenimientos de tablas relacionadas
241  }
242 
247  {
248  this._Tabla = "art_ecomm";
249  this._DataBase = "ECOMMERCE";
250  this._Clave = "ARTICULO";
251  }
252 
257  : this()
258  {
259  #region Código generado por el asistente de componentes. No borrar.
260 
261  formMante = toForm;
262  mantePrincipal = toForm._ewMante;
263 
264  #endregion Código generado por el asistente de componentes. No borrar.
265  }
266 
271  public override bool _Load()
272  {
273  bool llOk = base._Load();
274 
275  if (llOk && _eBeforeAfter == TipoExecute.After)
276  {
277  llOk = CargarDatos();
278 
279  if (usercontrolTabManteBase != null)
280  {
281  usercontrolTabManteBase._Binding();
282  }
283  }
284 
285  return llOk;
286  }
287 
293  public override bool _New(string tcCodigo = "")
294  {
295  bool llOk = base._New(tcCodigo);
296 
297  if (llOk)
298  {
299  if (_eBeforeAfter == TipoExecute.Before)
300  llOk = CargarDatos();
301  else
302  {
303  DataTable ldtTemp = new DataTable();
304 
305  string whereclause = GetWhereClause();
306 
307  string sql = "Select EMPRESA, ARTICULO, PUBLICAR, FEC_ENV, ULT_SINC, SH_DESC " +
308  "From " + DB.SQLDatabase(this._DataBase, this._Tabla) + " " +
309  whereclause;
310 
311  DB.SQLExec(sql, ref ldtTemp);
312 
313  bool lbDefectoArticulos = Convert.ToBoolean(DB.SQLValor("CFG_ECOMM", "EMPRESA", cEmpresa, "CLIARTDEF", "ECOMMERCE"));
314 
315  if (ldtTemp == null || ldtTemp.Rows.Count == 0) //No podemos utilizar el RowExists() por problemas de llamadas recursivas a _Save()/_Load()
316  {
317  this._EMPRESA = cEmpresa;
318  this._PUBLICAR = false;
319  this._FEC_ENV = null;
320  this._ULT_SINC = null;
321  this._SH_DESC = string.Empty;
322  }
323 
324  this._PUBLICAR = lbDefectoArticulos;
325 
326  if (usercontrolTabManteBase != null)
327  {
328  usercontrolTabManteBase._Binding();
329  usercontrolTabManteBase._BloquearControles(false);
330  }
331  }
332  }
333 
334  return llOk;
335  }
336 
341  public override bool _Save()
342  {
343  bool llOk = base._Save();
344 
345  if (llOk && _eBeforeAfter == TipoExecute.Before)
346  {
347  if (string.IsNullOrWhiteSpace(_EMPRESA))
348  {
349  _EMPRESA = cEmpresa;
350  }
351  }
352 
353  if (llOk && _eBeforeAfter == TipoExecute.After)
354  {
355  string sql = "";
356  string message = string.Empty;
357  string whereclause = GetWhereClause();
358 
359  // al dar de baja el artículo se desmarcará el check de envío a eCommerce de dicho artículo
360  // y recomendando realizar una sincronización de datos para actualizar dicha información en eCommerce
361  if (_PUBLICAR && !_IsNew) //Bug 133642
362  {
363  //" WHERE " + (Convert.ToBoolean(oDicFactuCnf["cajas"]) ? " (unicaja = 0 OR tipo_pvp = 2) " : " 1=1 ") +
364  //" AND nombre != '' " +
365  //" AND peso = '' " +
366  //" AND desglose = 0 " +
367  //" AND baja = 0 " +
368  //(_oEmpresa._GetOpcEmp("10015") ? " AND pverde = 0 " : "") +
369  //(_oEmpresa._TrabajaSuplidos ? " AND suplidos = 0 " : "");
370 
371 
372  bool lMensajeGenerico = false;
373  string lcMensajeGenerico = "El artículo se desmarcará para ser enviado al eCommerce debido a:" + Environment.NewLine;
374 
375  if (string.IsNullOrEmpty(((Articulo)_Mante)._Nombre))
376  {
377  if (!lMensajeGenerico)
378  {
379  message += lcMensajeGenerico;
380  lMensajeGenerico = true;
381  }
382  message += "Sin nombre definido." + Environment.NewLine;
383  }
384 
385  if (((sage.ew.articulo.Articulo)_Mante)._Baja)
386  {
387  if (!lMensajeGenerico)
388  {
389  message += lcMensajeGenerico;
390  lMensajeGenerico = true;
391  }
392  message += "Artículo de baja." + Environment.NewLine;
393  }
394 
395  if (((sage.ew.articulo.Articulo)_Mante)._Peso != 0M && Convert.ToBoolean(EW_GLOBAL._GetVariable("wl_cajas")) && ((sage.ew.articulo.Articulo)_Mante)._Unicaja != 0M)
396  {
397  if (!lMensajeGenerico)
398  {
399  message += lcMensajeGenerico;
400  lMensajeGenerico = true;
401  }
402  message += "Es tipo peso y cajas." + Environment.NewLine;
403  }
404  else
405  {
406  if (((sage.ew.articulo.Articulo)_Mante)._Peso != 0M)
407  {
408  if (!lMensajeGenerico)
409  {
410  message += lcMensajeGenerico;
411  lMensajeGenerico = true;
412  }
413  message += "Es tipo peso." + Environment.NewLine;
414  }
415  else
416  {
417  if (Convert.ToBoolean(EW_GLOBAL._GetVariable("wl_cajas")) && ((sage.ew.articulo.Articulo)_Mante)._Unicaja != 0M && ((sage.ew.articulo.Articulo)_Mante)._Tipo_PVP != 2)
418  {
419  if (!lMensajeGenerico)
420  {
421  message += lcMensajeGenerico;
422  lMensajeGenerico = true;
423  }
424  message += "Es tipo cajas y el precio de venta tiene que estar definido por caja." + Environment.NewLine;
425  }
426  }
427  }
428 
429  if (((sage.ew.articulo.Articulo)_Mante)._Tipo_Desglose != 0)
430  {
431  if (!lMensajeGenerico)
432  {
433  message += lcMensajeGenerico;
434  lMensajeGenerico = true;
435  }
436  message += "Es tipo escandallo y tiene definido desglose." + Environment.NewLine;
437  }
438 
439  if (_oEmpresa._GetOpcEmp("10015") && ((sage.ew.articulo.Articulo)_Mante)._PVerde)
440  {
441  if (!lMensajeGenerico)
442  {
443  message += lcMensajeGenerico;
444  lMensajeGenerico = true;
445  }
446  message += "Es tipo punto verde." + Environment.NewLine;
447  }
448 
449  //Artículos Suplidos. Task 141534
450  if (_oEmpresa._TrabajaSuplidos && ((sage.ew.articulo.Articulo)_Mante)._Suplidos)
451  {
452  if (!lMensajeGenerico)
453  {
454  message += lcMensajeGenerico;
455  lMensajeGenerico = true;
456  }
457  message += "Es suplidos." + Environment.NewLine;
458  }
459 
460  if (!string.IsNullOrWhiteSpace(message))
461  {
462  _PUBLICAR = false;
463 
464  message += "Se recomienda realizar una sincronización.";
465 
466  //Bug 172408: Mostramos mensaje mediante un delegado que sólo existirá si hay parte visual, si no hay parte visual (cuando se sincroniza, por ejemplo) el mensaje no aparecerá
467  _EventoMensaje?.Invoke(message, "eCommerce", MessageBoxButtons.OK, MessageBoxIcon.Warning);
468  }
469  }
470 
471  if (!_PUBLICAR)
472  {
473  // Comprobar si aparece como artículo relacionado de otro
474  DataTable ldtResult = new DataTable();
475  string lcSql = "SELECT CODIGO FROM " + DB.SQLDatabase(this._DataBase, "ART_RELA") + " WHERE COD_RELA = " + DB.SQLString(_ARTICULO.Trim());
476  bool lOk = DB.SQLExec(lcSql, ref ldtResult);
477  if (lOk)
478  {
479  if (ldtResult != null && ldtResult.Rows.Count > 0)
480  {
481  int toShow = Math.Min(3, ldtResult.Rows.Count);
482  string msg = "Ha desmarcado la opción de enviar y aparece relacionado con " + (toShow > 1 ? "los siguientes artículos:" : "el siguiente artículo:") + Environment.NewLine + Environment.NewLine;
483 
484  int andMore = ldtResult.Rows.Count - 3;
485 
486  for (Int32 i = 0; i < toShow; i++)
487  {
488  msg += ldtResult.Rows[i]["CODIGO"].ToString().Trim() + Environment.NewLine;
489  }
490  if (andMore > 0)
491  {
492  msg += "... y " + andMore.ToString() + " más." + Environment.NewLine;
493  }
494 
495  ldtResult.Clear();
496  msg += Environment.NewLine + "Si acepta, se borrará la relación con " + (toShow > 1 ? "esos artículos" : "el artículo") + ". ¿Deseas continuar?";
497 
498  DialogResult loResult;
499  if (_EventoPregunta != null)
500  {
501  //Bug 172408: Mostramos mensaje mediante un delegado que sólo existirá si hay parte visual, si no hay parte visual (cuando se sincroniza, por ejemplo) el mensaje no aparecerá
502  loResult = _EventoPregunta(msg, "eCommerce", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
503  }
504  else
505  {
506  loResult = DialogResult.Yes;
507  }
508 
509 
510  if (loResult == DialogResult.Yes)
511  {
512  lcSql = "DELETE FROM " + DB.SQLDatabase(this._DataBase, "ART_RELA") + " WHERE COD_RELA = " + DB.SQLString(_ARTICULO.Trim());
513  lOk = DB.SQLExec(lcSql, ref ldtResult);
514  }
515  else
516  {
517  return false;
518  }
519  }
520  }
521  }
522 
523  sql = "Update " + DB.SQLDatabase(_DataBase, _Tabla) + " " +
524  "Set EMPRESA = " + DB.SQLString(_EMPRESA) + ", ARTICULO = " + DB.SQLString(_ARTICULO) + ", PUBLICAR = " + DB.SQLString(_PUBLICAR) + ", FEC_ENV = " + DB.SQLString(this._FEC_ENV) + ", ULT_SINC = " + DB.SQLString(_ULT_SINC) + ", SH_DESC = " + DB.SQLString(_SH_DESC) + " " +
525  whereclause;
526 
527  int lnFilasAfectadas;
528  llOk = DB.SQLExec(sql, out lnFilasAfectadas); //No podemos utilizar el RowExists() por problemas de llamadas recursivas a _Save()/_Load()
529 
530  if (lnFilasAfectadas == 0)
531  {
532  sql = "Insert Into " + DB.SQLDatabase(_DataBase, _Tabla) + " " +
533  "(EMPRESA, ARTICULO, PUBLICAR, FEC_ENV, ULT_SINC, SH_DESC) " +
534  "Values (" + DB.SQLString(_EMPRESA) + ", " + DB.SQLString(_ARTICULO) + ", " + DB.SQLString(_PUBLICAR) + ", " + DB.SQLString(_FEC_ENV) + ", " + DB.SQLString(_ULT_SINC) + "," + DB.SQLString(_SH_DESC) + ")";
535  llOk = DB.SQLExec(sql);
536  }
537 
538 
539  if (llOk)
540  {
541  TratamientoImagenes(); //Task 127341
542  TratamientoTallasColores();
543  }
544 
545  if (usercontrolTabManteBase != null)
546  {
547  usercontrolTabManteBase._Binding();
548  }
549  }
550 
551 
552 
553  return llOk;
554  }
555 
560  public override bool _Delete()
561  {
562  bool llOk = base._Delete();
563 
564  if (llOk && _eBeforeAfter == TipoExecute.After)
565  {
566  string sql = "";
567  string whereclause = GetWhereClause();
568 
569  sql = "Delete From " + DB.SQLDatabase(_DataBase, _Tabla) + " " + whereclause;
570  llOk = DB.SQLExec(sql);
571 
572  sql = "Delete From " + DB.SQLDatabase(_DataBase, "TALL_COLO") + " WHERE articulo = " + DB.SQLString(_ARTICULO); ;
573  llOk = llOk && DB.SQLExec(sql);
574  }
575 
576  return llOk;
577  }
578 
583  public override void _Bloquear_Controles(bool tlReadOnly)
584  {
585  if (usercontrolTabManteBase != null)
586  {
587  usercontrolTabManteBase._BloquearControles(tlReadOnly);
588  }
589  }
590 
595  public override string GetWhereClause()
596  {
597  return base.GetWhereClause() + " And EMPRESA = " + DB.SQLString(cEmpresa);
598  }
599 
603  private void TratamientoImagenes()
604  {
605  string lcSql;
606  DataTable ldtImagenes = new DataTable();
607 
608  //Comprobar si existe la carpeta de thumbnails, si no existe crearla
609  string lcIniservidor = EW_GLOBAL._GetVariable("wc_iniservidor").ToString();
610  string lcRutaImagenesThumbnails = string.Empty;
611  string lcRutaImagenes = string.Empty;
612 
613  string lcIniServ = Convert.ToString(sage.ew.global.EW_GLOBAL._GetVariable("wc_iniservidor")).TrimEnd();
614  if (string.IsNullOrWhiteSpace(lcIniServ))
615  {
616  lcIniServ = Path.GetTempPath().TrimEnd();
617  }
618  lcRutaImagenesThumbnails = Path.Combine(lcIniServ, @"COMUNES\FOTOS\THUMBNAILS\");
619  lcRutaImagenes = Path.Combine(lcIniServ, @"COMUNES\FOTOS\");
620 
621  if (!System.IO.Directory.Exists(lcRutaImagenesThumbnails))
622  {
623  System.IO.Directory.CreateDirectory(lcRutaImagenesThumbnails);
624  }
625 
626  if (!_PUBLICAR)
627  {
628  lcSql = " UPDATE " + DB.SQLDatabase("ECOMMERCE", "FOTO_ECOMM") + " SET ENVIAR = 0 WHERE empresa = " + DB.SQLString(cEmpresa) + " AND articulo = " + DB.SQLString(((sage.ew.articulo.Articulo)_Mante)._Codigo);
629  DB.SQLExec(lcSql);
630  }
631 
632  lcSql = "SELECT a.imagen, f.enviar " +
633  "FROM " + DB.SQLDatabase("GESTION", "ART_FOTO") + " AS a " +
634  "INNER JOIN " + DB.SQLDatabase("ECOMMERCE", "FOTO_ECOMM") + " AS f ON a.articulo = f.articulo AND a.linea = f.linea " +
635  "WHERE f.empresa = " + DB.SQLString(cEmpresa) + " AND f.articulo = " + DB.SQLString(((sage.ew.articulo.Articulo)_Mante)._Codigo) +
636  " AND f.enviar = 1";
637 
638  DB.SQLExec(lcSql, ref ldtImagenes);
639 
640  if (ldtImagenes != null && ldtImagenes.Rows.Count > 0)
641  {
642  //Para cada una de las imágenes de artículos marcadas en este artículo que estamos guardando las tenemos que transformar de resolución y guardar en THUMBNAILS
643 
644  foreach (DataRow ldr in ldtImagenes.Rows)
645  {
646  Negocio.Clases.ecommerceConfig.ConvertirGuardarImagen(lcRutaImagenes, Convert.ToString(ldr["imagen"]), lcRutaImagenesThumbnails);
647  }
648  }
649  }
650 
654  private void TratamientoTallasColores()
655  {
656  // Si el artículo está marcado para enviar y trabaja con tallas y colores
657  if (_PUBLICAR && ((sage.ew.articulo.Articulo)_Mante)._Con_TallasyColores)
658  {
660  }
661  }
662 
663 
668  private bool CargarDatos()
669  {
670  bool llOk = true;
671 
672  this._EMPRESA = cEmpresa;
673 
674  string whereclause = GetWhereClause();
675 
676  string sql = "Select EMPRESA, ARTICULO, PUBLICAR, FEC_ENV, ULT_SINC, SH_DESC " +
677  "From " + DB.SQLDatabase(this._DataBase, this._Tabla) + " " +
678  whereclause;
679 
680  if (!string.IsNullOrWhiteSpace(sql))
681  {
682  DataTable art_ecommresult = new DataTable();
683  if (string.IsNullOrWhiteSpace(_Mante._Codigo))
684  llOk = false;
685  else
686  llOk = DB.SQLExec(sql, ref art_ecommresult);
687 
688  if (llOk && art_ecommresult.Rows.Count > 0)
689  {
690  this._EMPRESA = Convert.ToString(art_ecommresult.Rows[0]["EMPRESA"]);
691  this._ARTICULO = Convert.ToString(art_ecommresult.Rows[0]["ARTICULO"]);
692  this._PUBLICAR = Convert.ToBoolean(art_ecommresult.Rows[0]["PUBLICAR"]);
693 
694  if (art_ecommresult.Rows[0]["FEC_ENV"] != DBNull.Value)
695  this._FEC_ENV = Convert.ToDateTime(art_ecommresult.Rows[0]["FEC_ENV"]);
696  else
697  this._FEC_ENV = null;
698 
699  if (art_ecommresult.Rows[0]["ULT_SINC"] != DBNull.Value)
700  this._ULT_SINC = Convert.ToDateTime(art_ecommresult.Rows[0]["ULT_SINC"]);
701  else
702  this._ULT_SINC = null;
703 
704  this._SH_DESC = Convert.ToString(art_ecommresult.Rows[0]["SH_DESC"]);
705 
706  rowexist = true;
707  }
708  else
709  {
710  this._EMPRESA = cEmpresa;
711  this._PUBLICAR = false;
712  this._FEC_ENV = null;
713  this._ULT_SINC = null;
714  this._SH_DESC = string.Empty;
715 
716  rowexist = false;
717  }
718  }
719 
720  return llOk;
721  }
722 
723 
724 
725  }
726 
731  {
732  private ManteExtArticuloecommerce extensionMante = null;
733 
737  public bool _VisibleArticuloEcommerce = true;
738 
742  private string cEmpresa = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
743 
749  public FormManteExtArticuloecommerce(FormMante _formMante, IModulo toAddon)
750  : base(_formMante, toAddon)
751  {
752  #region Código generado por el asistente de componentes. No borrar.
753 
754  extensionMante = (ManteExtArticuloecommerce)_ExtensionMante;
755 
756  if (extensionMante == null)
757  return;
758 
759  Visual.UserControls.ecommerceARTICULO extensionFormMante = new Visual.UserControls.ecommerceARTICULO(extensionMante);
760  extensionMante.usercontrolTabManteBase = extensionFormMante;
761 
762  extensionMante.ManteTRelart_rela._Grid = extensionFormMante.mantegridart_rela; //Task 127340: Si lo asociamos así no hay problema con que el control esté dentro de un tabcontrol
763 
764  extensionMante._Load();
765 
766  _VisibleArticuloEcommerce = Negocio.Clases.ecommerceConfig._ComprobarEsEmpresaActivaEcommerce(cEmpresa);
767 
768  if (_VisibleArticuloEcommerce)
769  _AgregarTabAddon(extensionFormMante);
770 
771  #endregion Código generado por el asistente de componentes. No borrar.
772 
773  extensionMante._EventoMensaje += ExtensionMante__EventoMensaje;
774  extensionMante._EventoPregunta += ExtensionMante__EventoPregunta;
775  }
776 
785  private DialogResult ExtensionMante__EventoPregunta(string tcMensaje, string tcCaption, MessageBoxButtons loButton, MessageBoxIcon loIcon)
786  {
787  return FUNCTIONS._MessageBox(tcMensaje, tcCaption, loButton, loIcon);
788  }
789 
797  private void ExtensionMante__EventoMensaje(string tcMensaje, string tcCaption, MessageBoxButtons loButton, MessageBoxIcon loIcon)
798  {
799  FUNCTIONS._MessageBox(tcMensaje, tcCaption, loButton, loIcon);
800  }
801  }
802 }
PE-93426 Interficie para los módulos de la aplicación
Definition: IModulo.cs:22
Clase de negocio base para mantenimientos
Definition: clsEwBase.cs:1643
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
Classe empresa basada en sage.ew.ewmante
Definition: clsEmpresa.cs:48
Object _Grid
ewgrid o Mantegrid enlazado a Items
FormManteExtArticuloecommerce(FormMante _formMante, IModulo toAddon)
Iniciarliza una nueva instancia de la clase
Clase Artículo
Definition: articulo.cs:33
PE-94313: Clase para gestionar el mantenimiento de las imagenes de los artículos PE-97714: Sacamos la...
Definition: Imagen.cs:14
Visual.UserControls.ecommerceARTICULO usercontrolTabManteBase
Referencia al UserControl asociado a esta clase
bool _GetOpcEmp(string tcCodigo, string tcEmpresa="")
Obtiene el valor de un OPCFLAG para una determinada empresa
Definition: clsEmpresa.cs:2670
Negocio.Clases.art_rela ManteTRelart_rela
Instancia del ManteTRel de art_rela
static bool ActualizarTablaTallasColores(Articulo toArticulo)
Actualizar la relación de artículos con sus tallas y colores
Task 127340: Clase derivada del ManteTRel de Imagenes para su gestión dentro del modulo de eCommerce ...
override bool _New(string tcCodigo="")
Se dispara cuando se va crea un nuevo registro
Clase EW_GLOBAL para gestionar las variables públicas de Eurowin, variables de empresa, variables de anchuras de campo, variables de mascaras, etc.
Definition: EW_GLOBAL.cs:46
ManteExtArticuloecommerce(FormMante toForm)
Inicializa una nueva instancia de la clase y asigna objetos
Clase base para las extensiones de los mantenimientos
override void _Bloquear_Controles(bool tlReadOnly)
Bloquear controles de las extensiones de los mantes
override bool _Load()
Se dispara cuando se cargan los datos en el mantenimiento principal
_Pregunta _EventoPregunta
Evento delegado para poder hacer mostrar un messagebox desde la parte visual si se ha suscrito a est...
_Mensaje _EventoMensaje
Evento delegado para poder hacer mostrar un messagebox desde la parte visual si se ha suscrito a est...
bool _TrabajaSuplidos
Indica si trabajar con suplidos en facturas emitidas
Definition: clsEmpresa.cs:9944
TipoExecute
Tipos de ejecución de los métodos
Definition: IDocModulos.cs:16
Clase de negocio para la configuración del módulo de ecommerce
Definition: classConfig.cs:27
virtual ewMante _ewMante
Clase mantenimiento asociada al formulario
Definition: FormMante.cs:323
Base para los mantenimientos de Sage TPV
Definition: FormMante.cs:26
ManteExtArticuloecommerce(sage.ew.interficies.IMante _mantePrincipal)
Inicializa una nueva instancia de la clase
ManteExtArticuloecommerce()
Inicializa una nueva instancia de la clase
Clase base para el módulo ecommerce
Definition: SageAddons.cs:51