clsLineaDescuento.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using sage.ew.ewbase;
6 using System.ComponentModel;
7 using sage.ew.db;
8 using System.Data;
9 using sage.ew.global;
10 using System.Windows.Forms; // PARTE 93077
12 using sage.ew.interficies;
13 
14 namespace sage.ew.cliente
15 {
20  public class LineaDescuento : ewMante
21  {
22  #region PROPIEDADES
23 
24  // PARTE 93077
25  private Descuentos _oDescuentos;
30  public Descuentos _Descuentos
31  {
32  get
33  {
34  if (_oDescuentos == null)
35  {
36  _oDescuentos = new Descuentos(_Codigo);
37  _oDescuentos._ewMantePrincipal = this;
38  _oDescuentos._Load();
39  }
40  return _oDescuentos;
41  }
42  }
43  // FPARTE 93077
44 
45  #endregion
46 
47 
48  #region CONSTRUCTORS
49 
53  public LineaDescuento()
54  {
55  _Cargar_Propiedades();
56  }
57 
62  public LineaDescuento(string tcCodigo)
63  {
64  _Cargar_Propiedades();
65  _Codigo = tcCodigo;
66  }
67 
68  private void _Cargar_Propiedades()
69  {
70  // Asignamos las propiedades para Linea Descuento
71  this._lTodos = true;
72  this._Clave = "Codigo";
73  this._DataBase = "Gestion";
74  this._Tabla = "lineas";
75  this._TituloMantenimiento = "Mantenimiento de Líneas de descuento";
76 
77  //PE-97970 Se cambia el nombre de la pantalla, ya que el mante esta definido como LINEAS y hace la validación dos veces
78  //this._Pantalla = "LIN_DESC";
79  this._Pantalla = "LINEAS";
80 
81  this._FormManteBaseType = typeof(Forms.frmLineasDescuento);
82  }
83 
84  #endregion CONSTRUCTORS
85 
86  #region METODOS PRIVADOS
87 
88 
89  #endregion METODOS PRIVADOS
90 
91  #region METODOS PUBLICOS
92 
93 
97  public override void _Load()
98  {
99  // PARTE 93077
100  base._Load();
101 
102  if (_oDescuentos != null)
103  {
104  if (_oDescuentos._Grid != null)
105  {
106  _oDescuentos._Claves._LinDesc._Valor = this._Codigo;
107  _oDescuentos._Load();
108  }
109  else
110  {
111  _oDescuentos = null;
112  }
113  }
114  // FPARTE 93077
115  }
116 
121  public override bool _Delete()
122  {
123  bool llOk = true;
124  string lcClientes = string.Empty;
125  DataTable ldtCheck = new DataTable();
126 
127  string lcSql = string.Empty;
128  lcSql = "SELECT COUNT(*) as lin_des FROM " + DB.SQLDatabase("CLIENTES") + " WHERE lin_des = '" + _Codigo + "'";
129  DB.SQLExec(lcSql, ref ldtCheck);
130 
131  // Verificamos que realmente se pueda eliminar la linia de descuento
132  if (ldtCheck != null && ldtCheck.Rows.Count > 0 && System.Convert.ToInt32(ldtCheck.Rows[0]["lin_des"]) != 0)
133  {
134  this._Error_Message = "Este código de línea de descuento está asignado a clientes. No se puede borrar la linea de descuento.";
135  return false;
136  }
137 
138  if (llOk)
139  {
140  // PARTE 93077
141  llOk = base._Delete();
142 
143  if (llOk && _Descuentos != null)
144  {
145  _Descuentos._Delete();
146  }
147  // FPARTE 93077
148  }
149 
150  return llOk;
151  }
152 
157  public override bool _Save()
158  {
159  // PARTE 93077
160  Boolean llOk = true;
161 
162  llOk = base._Save();
163 
164  if (llOk && _oDescuentos != null)
165  {
166  _oDescuentos._Save();
167  }
168 
169  return llOk;
170  }
171 
177  public LineaDescuento _Clonar(string tcLinea)
178  {
179  LineaDescuento loLinDesNuevo = new LineaDescuento();
180  loLinDesNuevo._Clave = this._Clave;
181  loLinDesNuevo._Codigo = tcLinea;
182 
183  loLinDesNuevo._Load();
184  loLinDesNuevo._Clave = this._Clave;
185  loLinDesNuevo._Codigo = tcLinea;
186 
187  // PE-99024. Asignamos el código directamente al campo porque al guardar no lo tiene
188  loLinDesNuevo._Campo("CODIGO", tcLinea);
189 
190  // PARTE 93189: Al duplicar que no machaque el nombre si la línea existe.
191  if (string.IsNullOrWhiteSpace(loLinDesNuevo._Nombre))
192  loLinDesNuevo._Nombre = this._Nombre;
193 
194  // Comos podemos tener artículos los tenemos de eliminar
195  if (loLinDesNuevo._Descuentos._Items.Count > 0)
196  loLinDesNuevo._Descuentos._Delete(); // Eliminamos todos los registros
197 
198  // Guardamos las líneas de descuento
199  foreach (Descuentos.Descuento loDescuento in _Descuentos._Items)
200  {
201  loDescuento._LinDesc = tcLinea;
202  loLinDesNuevo._Descuentos._SaveItem(loDescuento);
203  }
204 
205  // Volvemos a cargar la línea de descuento actual
206  this._Descuentos._Load();
207 
208  return loLinDesNuevo;
209  }
210  // FPARTE 93077
211 
212  #endregion METODOS PUBLICOS
213 
214  #region CLASES
215 
219  public class Descuentos : ewManteTRel<Descuentos.Descuento, Descuentos.Clave>
220  {
221  private Boolean _bHera = Convert.ToBoolean(EW_GLOBAL._GetVariable("wl_hera"));
222 
223 
224 
228  public Descuentos()
229  {
230  CrearEstructura();
231  }
232 
236  public Descuentos(string tcCodigoLinDesc)
237  {
238  CrearEstructura();
239 
240  this._Claves._LinDesc._Valor = tcCodigoLinDesc;
241  }
242 
243  private void CrearEstructura()
244  {
245  //Bug 126465
246  int lnVAlbDtos = Convert.ToInt32(EW_GLOBAL._GetVariable("wn_vAlbDtos"));
247 
248  // Events
249  this._Error_Validar_Valor += new _Error_Validar_Valor_Handler(Descuentos__Error_Validar_Valor);
250 
251  // Definir la base
252  this._DataBase = "Gestion";
253  this._Tabla = "Lin_Desc";
254  this._Condicion = "";
255  this._Titulo_Browser = "Buscar línea de descuento";
256 
257  // Camps clau
258  this._AddCampoTRel("_LinDesc", "Codigo", ewCampoTRel.Visible.No, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.No);
259  this._AddCampoTRel("_Linea", "Linea", ewCampoTRel.Visible.No, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.No, "", gridColumnsTypes.Número);
260 
261  // Camps amb manteniment
262  ewCampoTRel _Def_Articulo = this._AddCampoTRel("_Articulo", "Articulo", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Artículo");
263  {
264  // Validacions
265  _Def_Articulo._Validar_Dato_BaseDatos = "Gestion";
266  _Def_Articulo._Validar_Dato_Tabla = "Articulo";
267  _Def_Articulo._Validar_Dato_Clave = "Codigo";
268  _Def_Articulo._Validar_Dato_Campos = "Nombre";
269  _Def_Articulo._Validar_Asignar_Cargando = true;
270  _Def_Articulo._Validar_Dato_CampoTRel_Asignar = "_Definicion";
271  _Def_Articulo._Error_Validar_Dato = "El código de artículo indicado no existe.";
272  // Configurar el browser
273  _Def_Articulo._Browser = new sage.ew.botones.btBrowArticulo();
274 
275  // Configurar el manteniment
276  _Def_Articulo._Mante = new sage.ew.botones.btManteArticulos();
277  }
278 
279  ewCampoTRel _Def_Familia = this._AddCampoTRel("_Familia", "Familia", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Familia", tnAnchoColumna: Math.Max(Convert.ToInt16(4), Convert.ToInt16(EW_GLOBAL._GetLenCampo(KeyDiccionarioLenCampos.wn_familias))));
280  {
281  // Validacions
282  _Def_Familia._Validar_Dato_BaseDatos = "Gestion";
283  _Def_Familia._Validar_Dato_Tabla = "Familias";
284  _Def_Familia._Validar_Dato_Clave = "Codigo";
285  _Def_Familia._Validar_Dato_Campos = "Nombre";
286  _Def_Familia._Validar_Asignar_Cargando = true;
287  _Def_Familia._Validar_Dato_CampoTRel_Asignar = "_Definicion";
288  _Def_Familia._Error_Validar_Dato = "El código de familia indicado no existe.";
289  _Def_Familia._Relleno = '0'; //Bug 132771
290 
291  // Configurar el browser
292  _Def_Familia._Browser = new sage.ew.botones.btBrowFamilia();
293 
294  // Configurar el manteniment
295  _Def_Familia._Mante = new sage.ew.botones.btMante();
296  _Def_Familia._Mante._NombreManteNet = "FAMILIAS";
297  }
298 
299  ewCampoTRel _Def_SubFamilia = this._AddCampoTRel("_Subfamilia", "Subfamilia", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Subfamilia", tnAnchoColumna: Math.Max(Convert.ToInt16(5), Convert.ToInt16(EW_GLOBAL._GetLenCampo(KeyDiccionarioLenCampos.wn_subfamilia))));
300  {
301  // Validacions
302  _Def_SubFamilia._Validar_Dato_BaseDatos = "Gestion";
303  _Def_SubFamilia._Validar_Dato_Tabla = "Subfam";
304  _Def_SubFamilia._Validar_Dato_Clave = "Codigo";
305  _Def_SubFamilia._Validar_Dato_Campos = "Nombre";
306  _Def_SubFamilia._Validar_Asignar_Cargando = true;
307  _Def_SubFamilia._Validar_Dato_CampoTRel_Asignar = "_Definicion";
308  _Def_SubFamilia._Error_Validar_Dato = "El código de subfamilia indicado no existe.";
309  _Def_SubFamilia._Visible = !_bHera;
310  _Def_SubFamilia._Relleno = '0'; //Bug 132771
311 
312  // Configurar el browser
313  _Def_SubFamilia._Browser = new sage.ew.botones.btBrowSubfamilia();
314 
315  // Configurar el manteniment
316  _Def_SubFamilia._Mante = new sage.ew.botones.btMante();
317  _Def_SubFamilia._Mante._NombreManteNet = "SUBFAMI";
318  }
319 
320  ewCampoTRel _Def_Marca = this._AddCampoTRel("_Marca", "Marca", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Marca", tnAnchoColumna: Math.Max(Convert.ToInt16(4), Convert.ToInt16(EW_GLOBAL._GetLenCampo(KeyDiccionarioLenCampos.wn_marcas))));
321  {
322  // Validacions
323  _Def_Marca._Validar_Dato_BaseDatos = "Gestion";
324  _Def_Marca._Validar_Dato_Tabla = "Marcas";
325  _Def_Marca._Validar_Dato_Clave = "Codigo";
326  _Def_Marca._Validar_Dato_Campos = "Nombre";
327  _Def_Marca._Validar_Asignar_Cargando = true;
328  _Def_Marca._Validar_Dato_CampoTRel_Asignar = "_Definicion";
329  _Def_Marca._Error_Validar_Dato = "El código de marca indicado no existe.";
330  _Def_Marca._Visible = !_bHera;
331  _Def_Marca._Relleno = '0'; //Bug 132771
332 
333  // Configurar el browser
334  _Def_Marca._Browser = new sage.ew.botones.btBrowMarca();
335 
336  // Configurar el manteniment
337  _Def_Marca._Mante = new sage.ew.botones.btMante();
338  _Def_Marca._Mante._NombreManteNet = "MARCAS";
339  }
340 
341  #region Columna divisa
342 
343  //Task
344  DataTable loDivisas = Divisa._Monedas();
345  List<object> lstLista = new List<object>();
346  foreach (DataRow item in loDivisas.Rows)
347  lstLista.Add(item["codigo"].ToString() + "|" + item["nombre"].ToString());
348 
349  ewCampoTRel _Def_Divisa = this._AddCampoTRel("_Moneda", "Moneda", DataGridViewAutoSizeColumnMode.DisplayedCells, true, true, true, "Divisa", teTipoColumna: gridColumnsTypes.Combo, toComboValues: lstLista);
350  {
351  // Validacions
352  _Def_Divisa._Validar_Dato_BaseDatos = "Gestion";
353  _Def_Divisa._Validar_Dato_Tabla = "Moneda";
354  _Def_Divisa._Validar_Dato_Clave = "Codigo";
355  _Def_Divisa._Validar_Dato_Campos = "Nombre";
356  _Def_Divisa._Validar_Asignar_Cargando = true;
357  _Def_Divisa._Error_Validar_Dato = "El código de divisa indicado no existe.";
358 
359  // Configurar el browser
360  _Def_Divisa._Browser = new sage.ew.botones.btBrowser();
361  _Def_Divisa._Browser._Campos = "Codigo,Nombre";
362  _Def_Divisa._Browser._Campo_Predet = "Nombre";
363  _Def_Divisa._Browser._Clave = "Codigo";
364  _Def_Divisa._Browser._DataBase = "Gestion";
365  _Def_Divisa._Browser._Tabla = "Moneda";
366  _Def_Divisa._Browser._Titulo = "Listado de divisas";
367  _Def_Divisa._Browser._Titulos_Campos = "Código,Nombre";
368 
369  // Configurar el manteniment
370  _Def_Divisa._Mante = new sage.ew.botones.btMante();
371  _Def_Divisa._Mante._NombreManteNet = "MONMANTE";
372  }
373 
374  #endregion Columna divisa
375 
376  // PARTE 93189
377  if (_bHera)
378  {
379  // En modo Hera ajustamos la columna de definición al espacio que nos quede disponible
380  this._AddCampoTRel("_Definicion", "", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.No, ewCampoTRel.Editable.No, System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill, "Definición", gridColumnsTypes.Texto); // PARTE 93189
381  }
382  else
383  {
384  // En modo EW no van a caber todas las columnas, tendremos la correspondiente barra de desplazamiento
385  this._AddCampoTRel("_Definicion", "", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.No, ewCampoTRel.Editable.No, "Definición", gridColumnsTypes.Texto, null);
386  }
387 
388  this._AddCampoTRel("_Fecha_Ini", "Fecha_In", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Fecha inicial", gridColumnsTypes.Fecha,null,10);
389 
390  this._AddCampoTRel("_Fecha_Fin", "Fecha_Fin", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Fecha final", gridColumnsTypes.Fecha, null, 10);
391 
392  this._AddCampoTRel("_Uni_Ini", "Uni_Ini", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Desde unid.", gridColumnsTypes.Número, new ewMascara(KeyDiccionarioMascara.wc_unidades), 6);
393 
394  this._AddCampoTRel("_Uni_Fin", "Uni_Fin", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Hasta unid.", gridColumnsTypes.Número, new ewMascara(KeyDiccionarioMascara.wc_unidades), 6);
395 
396  this._AddCampoTRel("_Dto1", "Dto1", lnVAlbDtos < 1 ? ewCampoTRel.Visible.No : ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, _bHera ? "Descuento" : "Dto. 1", gridColumnsTypes.Número, new ewMascara(KeyDiccionarioMascara.wc_tpc), _bHera ? 6 : 4);
397 
398  this._AddCampoTRel("_Dto2", "Dto2", (_bHera || lnVAlbDtos < 2) ? ewCampoTRel.Visible.No : ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Dto. 2", gridColumnsTypes.Número, new ewMascara(KeyDiccionarioMascara.wc_tpc), 4);
399 
400  //Task 113401 Máscara máxima
401  ewMascara loDivisaMascaraPrecio = new ewMascara();
402  ewMascara loDivisaMascaraImporte = new ewMascara();
403  Divisa._obtenerMascarasMaximas(out loDivisaMascaraPrecio, out loDivisaMascaraImporte);
404 
405  this._AddCampoTRel("_PVP", "PVP", _bHera ? ewCampoTRel.Visible.No : ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "PVP", gridColumnsTypes.Número, loDivisaMascaraPrecio, 4);
406  // FPARTE 93189
407  }
408 
409  private void Descuentos__Error_Validar_Valor(string tcErrorMessage)
410  {
411  //if (_Error_Validar_Descuento != null)
412  //{
413  // _Error_Validar_Descuento(tcErrorMessage);
414  // _Refresh();
415  //}
416  }
417 
421  public class Clave : IClaves
422  {
426  public ClaveTRel _LinDesc { get; set; }
427 
431  public ClaveTRel _Linea { get; set; }
432 
436  public Clave()
437  {
438  // Definim les propietats de cada una de les claus
439  _LinDesc = new ClaveTRel();
440  _LinDesc._EsFiltro = true; // Actuarà com a filtre per recuperar els registres
441  _LinDesc._Valor = "";
442 
443  _Linea = new ClaveTRel();
444  _Linea._EsCampoLinea = true;
445  _Linea._Valor = 0;
446 
447  // Per defecte, totes les ClaveTRel son EsClave = true
448  }
449  }
450 
454  public class Descuento : ILinTRel
455  {
456  // Definició dels camps
457 
458  private string _cCodigoLinea = "";
462  public string _LinDesc
463  {
464  get { return _cCodigoLinea; }
465  set { _cCodigoLinea = value; }
466  }
467 
468  private Int32 _nLinea = 0;
472  public Int32 _Linea
473  {
474  get { return _nLinea; }
475  set { _nLinea = value; }
476  }
477 
478  private string _cArticulo = "";
482  public string _Articulo
483  {
484  get { return _cArticulo; }
485  set
486  {
487  if (_cArticulo != value)
488  {
489  if (loParent != null)
490  {
491  if (loParent.CamposTRel_Validar_Valor("_Articulo", value, this))
492  {
493  value = _cArticulo;
494  }
495  }
496  }
497 
498  if (_cArticulo != value)
499  {
500  _cArticulo = value;
501 
502  // Si hi ha valor, buidem tots els altres codis
503  if (!string.IsNullOrWhiteSpace(value))
504  {
505  _Familia = "";
506  _Marca = "";
507  _Subfamilia = "";
508  }
509  }
510  }
511  }
512 
513  private string _cFamilia = "";
517  public string _Familia
518  {
519  get { return _cFamilia; }
520  set
521  {
522  if (_cFamilia != value)
523  {
524  if (loParent != null)
525  {
526  object loNewValor;
527  if (loParent.CamposTRel_Validar_Valor("_Familia", value, this, out loNewValor))
528  {
529  value = _cFamilia;
530  }
531  else
532  value = loNewValor.ToString();
533  }
534  }
535 
536  if (_cFamilia != value)
537  {
538  _cFamilia = value;
539 
540  // Si hi ha valor, buidem tots els altres codis
541  if (!string.IsNullOrWhiteSpace(value))
542  {
543  _Articulo = "";
544  _Marca = "";
545  _Subfamilia = "";
546  }
547  }
548  }
549  }
550 
551  private string _cSubfamilia = "";
555  public string _Subfamilia
556  {
557  get { return _cSubfamilia; }
558  set
559  {
560  if (_cSubfamilia != value)
561  {
562  // S'ha de comprovar que no repeteixin la familia
563  if (loParent != null)
564  {
565  object loNewValor;
566  if (loParent.CamposTRel_Validar_Valor("_Subfamilia", value, this, out loNewValor))
567  {
568  value = _cSubfamilia;
569  }
570  else
571  value = loNewValor.ToString();
572  }
573  }
574 
575  if (_cSubfamilia != value)
576  {
577  _cSubfamilia = value;
578 
579  // Si hi ha valor, buidem tots els altres codis
580  if (!string.IsNullOrWhiteSpace(value))
581  {
582  _Articulo = "";
583  _Familia = "";
584  _Marca = "";
585  }
586  }
587  }
588  }
589 
590  private string _cMarca = "";
594  public string _Marca
595  {
596  get { return _cMarca; }
597  set
598  {
599  if (_cMarca != value)
600  {
601  // S'ha de comprovar que no repeteixin la familia
602  if (loParent != null)
603  {
604  object loNewValor;
605  if (loParent.CamposTRel_Validar_Valor("_Marca", value, this, out loNewValor))
606  {
607  value = _cMarca;
608  }
609  else
610  value = loNewValor.ToString();
611  }
612  }
613 
614  if (_cMarca != value)
615  {
616  _cMarca = value;
617 
618  // Si hi ha valor, buidem tots els altres codis
619  if (!string.IsNullOrWhiteSpace(value))
620  {
621  _Articulo = "";
622  _Familia = "";
623  _Subfamilia = "";
624  }
625  }
626  }
627  }
628 
629  private string _cDefinicion = "";
633  public string _Definicion
634  {
635  get { return _cDefinicion; }
636  set { _cDefinicion = value; }
637  }
638 
639 
640  private decimal _nUni_Ini;
644  public decimal _Uni_Ini
645  {
646  get { return _nUni_Ini; }
647  set
648  {
649  if (!loParent._bIsLoading && (loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EditandoRegistro || loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EntrandoNuevo)
650  && _nUni_Fin < value) //Bug 126534
651  {
652  if (_nUni_Ini == 0 && _nUni_Fin == 0) //Bug 127115: Si uni_ini y uni_fin están vacías, entonces al poner unidades ini, cambiamos también las uni_fin al mismo valor
653  {
654  _nUni_Ini = value;
655  _nUni_Fin = value;
656  }
657  else
658  {
659  ((objetos.UserControls.Mantegrid)loParent._Grid)._Show_Error_Message("No se puede introducir unidades desde mayor que unidades hasta ");
660  value = _nUni_Ini;
661  }
662  }
663  else
664  {
665  _nUni_Ini = value;
666  }
667  }
668  }
669 
670  private decimal _nUni_Fin;
674  public decimal _Uni_Fin
675  {
676  get { return _nUni_Fin; }
677  set
678  {
679  if (!loParent._bIsLoading && (loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EditandoRegistro || loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EntrandoNuevo)
680  && _nUni_Ini > value) //Bug 126534
681  {
682  ((objetos.UserControls.Mantegrid)loParent._Grid)._Show_Error_Message("No se puede introducir unidades hasta menor que unidades desde ");
683  value = _nUni_Fin;
684  }
685  else
686  {
687  _nUni_Fin = value;
688  }
689  }
690  }
691 
692  private decimal _dDto1;
696  public decimal _Dto1
697  {
698  get
699  {
700  return _dDto1;
701  }
702  set
703  {
704  _dDto1 = value;
705  }
706  }
707 
708 
709  private decimal _dDto2;
713  public decimal _Dto2
714  {
715  get
716  {
717  return _dDto2;
718  }
719  set
720  {
721  _dDto2 = value;
722  }
723  }
724 
725  private DateTime _dFecha_ini = DateTime.Now;
729  public DateTime _Fecha_Ini
730  {
731  get
732  {
733  _dFecha_ini = _dFecha_ini.Date; //PE-102690: la parte horaria ha de ser 00:00:00 ya que es un campo fecha
734  return _dFecha_ini;
735  }
736  set
737  {
738  if (!loParent._bIsLoading && (loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EditandoRegistro || loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EntrandoNuevo)
739  && _dFecha_fin < value) //Bug 126534
740  {
741  ((objetos.UserControls.Mantegrid)loParent._Grid)._Show_Error_Message("No se puede introducir fecha inicial mayor que fecha final ");
742  value = _dFecha_ini;
743  }
744  else
745  {
746  _dFecha_ini = value;
747  _dFecha_ini = _dFecha_ini.Date; //PE-102690: la parte horaria ha de ser 00:00:00 ya que es un campo fecha
748  }
749  }
750  }
751 
752  private DateTime _dFecha_fin = DateTime.Now;
756  public DateTime _Fecha_Fin
757  {
758  get
759  {
760  _dFecha_fin = _dFecha_fin.Date; //PE-102690: la parte horaria ha de ser 00:00:00 ya que es un campo fecha
761  return _dFecha_fin;
762  }
763  set
764  {
765  if (!loParent._bIsLoading && (loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EditandoRegistro || loParent._ewMantePrincipal._Estado == _EstadosMantenimiento.EntrandoNuevo)
766  && _dFecha_ini > value) //Bug 126534
767  {
768  ((objetos.UserControls.Mantegrid)loParent._Grid)._Show_Error_Message("No se puede introducir fecha final menor que fecha inicial ");
769  value = _dFecha_fin;
770  }
771  else
772  {
773  _dFecha_fin = value;
774  _dFecha_fin = _dFecha_fin.Date; //PE-102690: la parte horaria ha de ser 00:00:00 ya que es un campo fecha
775  }
776  }
777  }
778 
779  private decimal _dPVP;
783  public decimal _PVP
784  {
785  get
786  {
787  return _dPVP;
788  }
789  set
790  {
791  _dPVP = value;
792  }
793  }
794 
795 
799  public string _Moneda
800  {
801  get
802  {
803  if (String.IsNullOrWhiteSpace(_cMoneda)) //Task 113401 => Valores vacios hacen petar el grid
804  _cMoneda = Convert.ToString(EW_GLOBAL._GetVariable("wc_Moneda"));
805  return _cMoneda;
806 
807  }
808  set
809  {
810  //No permetem nuls
811  if (value == null)
812  value = _cMoneda;
813  _cMoneda = value;
814 
815  }
816  }
817  private string _cMoneda = Convert.ToString(EW_GLOBAL._GetVariable("wc_Moneda"));
818 
819  private Descuentos loParent;
823  public object _Parent
824  {
825  get { return loParent; }
826  set { loParent = (Descuentos)value; }
827  }
828 
832  public Descuento()
833  {
834 
835  }
836 
837 
843  {
844  Descuento loDescuentoNuevo = new Descuento();
845 
846  loDescuentoNuevo._cCodigoLinea = this._cCodigoLinea;
847  loDescuentoNuevo._nLinea = this._nLinea;
848  loDescuentoNuevo._cDefinicion = this._cDefinicion;
849  loDescuentoNuevo._cArticulo = this._cArticulo;
850  loDescuentoNuevo._cFamilia = this._cFamilia;
851  loDescuentoNuevo._cSubfamilia = this._cSubfamilia;
852  loDescuentoNuevo._cMarca = this._cMarca;
853  loDescuentoNuevo._dDto1 = this._dDto1;
854  loDescuentoNuevo._dDto2 = this._dDto2;
855  loDescuentoNuevo._nUni_Ini = this._nUni_Ini;
856  loDescuentoNuevo._nUni_Fin = this._nUni_Fin;
857  loDescuentoNuevo._dPVP = this._dPVP;
858  loDescuentoNuevo._dFecha_ini = this._dFecha_ini;
859  loDescuentoNuevo._dFecha_fin = this._dFecha_fin;
860  loDescuentoNuevo._Moneda = this._cMoneda;
861 
862  return loDescuentoNuevo;
863  }
864 
869  public bool Fila_Plena()
870  {
871  bool lbFilaPlena;
872 
873  lbFilaPlena = !string.IsNullOrWhiteSpace(_Articulo) || !string.IsNullOrWhiteSpace(_Familia) || !string.IsNullOrWhiteSpace(_Marca) || !string.IsNullOrWhiteSpace(_Subfamilia);
874 
875  return lbFilaPlena;
876  }
877  }
878  }
879  #endregion
880  }
881 }
Descuento _Clonar()
Método para clonar un objeto Descuento
Descuentos()
Inicializa una nueva intancia de la clase
Clase de negocio base para mantenimientos
Definition: clsEwBase.cs:1643
sage.ew.botones.btMante _Mante
Mantenimiento para la columna del grid o campo enlazado
Campos clave para registros únicos
string _Validar_Dato_Clave
Clave por la cual se buscará el valor a la tabla de validación
override object _Campo(string tcNombreCampo)
Override del metodo _Campo para los mantenimientos
Definition: clsEwBase.cs:3443
string _Moneda
Moneda en que se inserta el importe de unidades
Object _Grid
ewgrid o Mantegrid enlazado a Items
Definición de los objetos campo para las tablas relacionadas
override bool _Delete()
Borra la linea de descuento cargado
string _Validar_Dato_BaseDatos
Base de datos donde se validará si el dato existe
Browser, basat en sage.ew.objetos.ewbutton
LineaDescuento(string tcCodigo)
Constructor vacío
bool Fila_Plena()
Devuelve si la línea está completa
static DataTable _Monedas()
Devuelve un datatable con todas las divisas (PE-66901)
Definition: Divisa.cs:1366
Definir la estructura de las líneas de las líneas de descuento
Descuento()
Inicializa una nueva intancia de la clase
BindingList< _LinTRel > _Items
Lista bindable de todos los items de la tabla relacionada
KeyDiccionarioMascara
Clave para diccionario de máscaras
LineaDescuento _Clonar(string tcLinea)
PE-84197: método para clonar una linea de descuento a partir la propia y asignandole un nuevo código ...
KeyDiccionarioLenCampos
Clave del diccionario LenCampos
Definition: Diccionarios.cs:11
virtual bool _Delete()
Elimina todos los registros de la tabla
string _Validar_Dato_Tabla
Tabla donde se validará si el dato existe
Muestra el browser de subfamilias
Descuentos _Descuentos
Enlace con la tabla relacionada Art_Comi
sage.ew.botones.btBrowser _Browser
Browser para la columna del grid o campo enlazado
string _Clave
Nombre del campo clave único de la tabla. Por defecto "codigo"
Definition: clsEwBase.cs:2140
Mostra el manteniment d&#39;articles carregant el registre corresponent al _Codigo
Muestra el browser de marcas
Definición de los objetos campo para las tablas relacionadas
Updatable
Actualizable. Existe el campo en la tabla.
_ClaveTRel _Claves
Objeto que contine las claves para registros únicos
Descuentos(string tcCodigoLinDesc)
Inicializa una nueva intancia de la clase
virtual string _Nombre
Campo nombre del mantenimiento. En este hay que basar los demás campos en las clases heredadas ...
Definition: clsEwBase.cs:2655
virtual string _Codigo
Valor del campo clave que
Definition: clsEwBase.cs:2513
bool _Visible
Indica si el campo serà visible cuando se enlaza a un grid
Muestra el mantenimiento correspondiente a _Form con el registro correspondiente al _Codigo ...
Clave()
Inicializa una nueva instancia de la clase
Muestra el browser de familias
Proporciona características adicionales de las máscaras de Eurowin
Definition: clsEwBase.cs:6212
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
Definition: clsEwBase.cs:1671
Editable
Premitirá modificar su valor
string _Validar_Dato_CampoTRel_Asignar
Destino del valor recuperado en la consulta de validación
virtual void _Load()
Lee el contenido de la tabla filtrado por _CampoClave y ordenando por Linea si se ha indicado ...
Interfaz para objetos línea
Definition: ILinTRel.cs:11
Muestra el browser de artículos
override bool _Save()
PE-83974: Guardar la linea de descuento LINEAS y antes de eso guardar los descuentos en la tabla LIN_...
ewMante _ewMantePrincipal
Instancia del mantenimiento del que depende la tabla relacionada
LineaDescuento()
Constructor vacío
string _Validar_Dato_Campos
Campos que se recuperarán en la consulta de validación
Interfaz para la definición de las claves para tablas relacionadas
Definition: IClaves.cs:11
Clase de negocio para la DIVISA (Moneda)
Definition: Divisa.cs:76
Clase para el acceso a las tablas relacionadas de los mantenimientos.
gridColumnsTypes
Definición de los tipos de columnas para los grids o campos enlazados
virtual bool _Save()
Guarda todos los registros en la tabla. Primero borra los registros cargados en _Load y luego inserta...
char _Relleno
Introduce tantos carácteres al inicio del campo hasta la longitud del campo
PE-81910 Clase utilizada para consultar los datos de Linea de Descuento
static void _obtenerMascarasMaximas(out ewMascara toDivisaMascaraPrecio, out ewMascara toDivisaMascaraImporte, string tcDivisa="")
Obtener la máscara máximas de todas las monedas existentes
Definition: Divisa.cs:1657
override void _Load()
PE-83974: Cargar los datos de las lineas de descuento
Visible
Visible en el grid
bool _Validar_Asignar_Cargando
Indica si se buscará el dato en la tabla correspondiente mientras se ejecuta el _Load() ...
virtual Boolean _SaveItem(_LinTRel toItem)
Inserta el registro en la tabla
string _Error_Validar_Dato
Mensaje de error que se mostrará al insertar un dato no válido