clsOperario.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using System.Data;
5 
6 using sage.ew.ewbase;
7 using sage.ew.db;
8 using sage.ew.global;
9 using sage.ew.reports;
10 using sage.ew.objetos;
11 using sage.ew.formul.Forms;
12 using sage.ew.perfiles.Forms;
13 using sage.ew.usuario;
14 using sage.ew.formul;
15 using sage.ew.interficies;
16 using sage.ew.tpv.Clases;
17 using sage.ew.functions;
18 using sage.ew.ewbase.Clases;
19 using System.Windows.Forms;
20 
21 namespace sage.ew.ewbase
22 {
27  {
28 
29  #region CONSTANTES
30 
31  // PE-76031. Añadir todas las opciones de operarios
35  public const string OPC_PERMITIR_BORRAR_MODIFICAR_LINEAS = "01";
36 
40  public const string OPC_PERMITIR_MODIFICAR_CABECERA = "02";
41 
45  public const string OPC_VENTA_HABITUAL_TICKETS = "03";
46 
50  public const string OPC_VENTA_HABITUAL_ALBARANES = "04";
51 
55  public const string OPC_VENTA_HABITUAL_FACTURAS = "05";
56 
60  public const string OPC_PERMITIR_MODIFICAR_PRECIOS = "06";
61 
65  public const string OPC_PERMITIR_MODIFICAR_DESCUENTOS = "07";
66 
70  public const string OPC_PERMITIR_DESARQUEAR = "08";
71 
75  public const string OPC_PERMITIR_UNIDADES_0 = "09";
76 
80  public const string OPC_PERMITIR_PRECIOS_0 = "10";
81 
85  public const string OPC_PERMITIR_BORRAR_MODIFICAR_COBROS = "11";
86 
90  public const string OPC_TACTIL_NO_BORRAR_LINEAS_DESPUES_IMPRIMIR = "12";
91 
95  public const string OPC_TACTIL_PERMITIR_BORRAR_LINEAS = "13";
96 
100  public const string OPC_PERMITIR_MODIFICAR_UNIDADES = "14";
101  // FI PE-76031
102 
103  #endregion CONSTANTES
104 
108  protected internal string _lcUsuario = Convert.ToString(EW_GLOBAL._GetVariable("wc_usuario"));
109 
110 
111  #region PROPIEDADES
112 
113  //PE-82182
114  //protected string _cCodigo = string.Empty;
115 
116  //PE-82182 Hago que reemplace la base sino no funcionaran los metodos
117 
121  public override string _Codigo
122  {
123  get
124  {
125  return base._Codigo;
126  }
127  set
128  {
129  base._Codigo = value;
130  this._Load();
131  }
132  }
133 
137  public bool _Permitir_Borrar_Modificar_Lineas
138  {
139  get
140  {
141  return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Borrar_Modificar_Lineas);
142  }
143  set
144  {
145  this._lPermitir_Borrar_Modificar_Lineas = value;
146 
147  _Exportar_Null();
148  }
149  }
150  private bool _lPermitir_Borrar_Modificar_Lineas = false;
151 
155  public bool _Permitir_Modificar_Cabecera
156  {
157  get { return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Modificar_Cabecera); }
158  set
159  {
160  this._lPermitir_Modificar_Cabecera = value;
161 
162  _Exportar_Null();
163  }
164  }
165  private bool _lPermitir_Modificar_Cabecera = false;
166 
170  public bool _Venta_Habitual_Tickets
171  {
172  get { return (this._lVenta_Habitual_Tickets); }
173  set
174  {
175  this._lVenta_Habitual_Tickets = value;
176 
177  _Exportar_Null();
178  }
179  }
180  private bool _lVenta_Habitual_Tickets = false;
181 
185  public bool _Venta_Habitual_Albaranes
186  {
187  get { return (this._lVenta_Habitual_Albaranes); }
188  set
189  {
190  this._lVenta_Habitual_Albaranes = value;
191 
192  _Exportar_Null();
193  }
194  }
195  private bool _lVenta_Habitual_Albaranes = false;
196 
200  public bool _Venta_Habitual_Facturas
201  {
202  get { return (this._lVenta_Habitual_Facturas); }
203  set
204  {
205  this._lVenta_Habitual_Facturas = value;
206 
207  _Exportar_Null();
208  }
209  }
210  private bool _lVenta_Habitual_Facturas = false;
211 
215  public bool _Permitir_Modificar_Precios
216  {
217  get
218  {
219  return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Modificar_Precios);
220  }
221  set
222  {
223  this._lPermitir_Modificar_Precios = value;
224 
225  _Exportar_Null();
226  }
227  }
228  private bool _lPermitir_Modificar_Precios = false;
229 
233  public bool _Permitir_Modificar_Descuentos
234  {
235  get
236  {
237  return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Modificar_Descuentos);
238  }
239  set
240  {
241  this._lPermitir_Modificar_Descuentos = value;
242 
243  _Exportar_Null();
244  }
245  }
246  private bool _lPermitir_Modificar_Descuentos = false;
247 
251  public bool _Permitir_DesArquear
252  {
253  get { return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_DesArquear); }
254  set
255  {
256  this._lPermitir_DesArquear = value;
257 
258  _Exportar_Null();
259  }
260  }
261  private bool _lPermitir_DesArquear = false;
262 
266  public bool _Permitir_Unidades_0
267  {
268  get
269  {
270  return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Unidades_0);
271  }
272  set
273  {
274  this._lPermitir_Unidades_0 = value;
275 
276  _Exportar_Null();
277  }
278  }
279  private bool _lPermitir_Unidades_0 = false;
280 
284  public bool _Permitir_Precios_0
285  {
286  get
287  {
288  return ((!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Precios_0);
289  }
290  set
291  {
292  this._lPermitir_Precios_0 = value;
293 
294  _Exportar_Null();
295  }
296  }
297  private bool _lPermitir_Precios_0 = false;
298 
302  public bool _Permitir_Borrar_Modificar_Cobros
303  {
304  get { return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Borrar_Modificar_Cobros); }
305  set
306  {
307  this._lPermitir_Borrar_Modificar_Cobros = value;
308 
309  _Exportar_Null();
310  }
311  }
312  private bool _lPermitir_Borrar_Modificar_Cobros = false;
313 
317  public bool _No_Borrar_Lineas_Despues_Imprimir_TACTIL
318  {
319  get { return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lNo_Borrar_Lineas_Despues_Imprimir_TACTIL); }
320  set
321  {
322  this._lNo_Borrar_Lineas_Despues_Imprimir_TACTIL = value;
323 
324  _Exportar_Null();
325  }
326  }
327  private bool _lNo_Borrar_Lineas_Despues_Imprimir_TACTIL = false;
328 
332  public bool _Permitir_Borrar_Lineas_TACTIL
333  {
334  get { return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Borrar_Lineas_TACTIL); }
335  set
336  {
337  this._lPermitir_Borrar_Lineas_TACTIL = value;
338 
339  _Exportar_Null();
340  }
341  }
342  private bool _lPermitir_Borrar_Lineas_TACTIL = false;
343 
344 
349  public bool _Permitir_Modificar_Unidades
350  {
351  get
352  {
353  return ( (!_lManteOperarios && _lcUsuario == "SUPERVISOR") || this._lPermitir_Modificar_Unidades);
354  }
355  set
356  {
357  this._lPermitir_Modificar_Unidades = value;
358 
359  _Exportar_Null();
360  }
361  }
362  private bool _lPermitir_Modificar_Unidades = false;
363 
368  public bool _ManteOperarios
369  {
370  get
371  {
372  return (this._lManteOperarios);
373  }
374  set
375  {
376  this._lManteOperarios = value;
377 
378  _Exportar_Null();
379  }
380  }
381  private bool _lManteOperarios=false;
382 
386  public string _Password
387  {
388  get
389  {
390  if (_lisCampos.ContainsKey("CLAVE"))
391  {
392  return _lisCampos["CLAVE"]._NewVal.ToString().Trim();
393  }
394  else
395  {
396  return String.Empty;
397  }
398  }
399  set
400  {
401  if (_lisCampos.ContainsKey("CLAVE"))
402  {
403  _lisCampos["CLAVE"]._NewVal = value;
404 
405  _Exportar_Null();
406  }
407  }
408  }
409 
410  #region IDocumentoImprimible
411 
415  public String _Fecha
416  {
417  get
418  {
419  return DateTime.Now.ToShortDateString();
420  }
421  }
422 
426  public String _Empresa
427  {
428  get
429  {
430  return Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
431  }
432  set
433  {
434  ;
435  }
436  }
437 
441  public String _ReportBase
442  {
443  get
444  {
445  return "operario_tarjeta";
446  }
447  set
448  {
449  ;
450  }
451  }
452 
456  public String _ReportTitlePreview
457  {
458  get
459  {
460  return String.Format("Operario {1}({0})", _Codigo, _Nombre);
461  }
462  set
463  {
464  ;
465  }
466  }
467 
468  private IDocPrint _oDocPrintTPV;
469 
473  public IDocPrint _DocPrint
474  {
475  get
476  {
477  if (_oDocPrintTPV == null)
478  {
479  _oDocPrintTPV = new DocPrintOperario((IDocumentoImprimible)this);
480  ((DocPrintOperario)_oDocPrintTPV)._TipoPathReport = Report.TipoReport.Etiqueta;
481  }
482  return _oDocPrintTPV;
483  }
484  set
485  {
486  if (value is IDocPrint) _oDocPrintTPV = value;
487  }
488  }
489  #endregion IDocumentoImprimible
490 
491  #endregion PROPIEDADES
492 
493 
494  #region CONSTRUCTORES
495 
499  public Operario()
500  {
501  // Asignamos las propiedades para operario
502  this._Clave = "Codigo";
503  this._DataBase = "Comunes";
504  this._Tabla = "Operario";
505 
506  this._Pantalla = "OPERARIOS"; // PARTE 88499
507 
508  this._Codigo = string.Empty;
509 
510  this._FormManteBaseType = typeof(frmOperario);
511  }
512 
517  public Operario(string tcCodigo)
518  {
519  // Asignamos las propiedades para operario
520  this._Clave = "Codigo";
521  this._DataBase = "Comunes";
522  this._Tabla = "Operario";
523 
524  this._Pantalla = "OPERARIOS"; // PARTE 88499
525 
526  // Asignamos el código al operario y cargamos sus opciones
527  this._Codigo = tcCodigo;
528  this._Load();
529 
530  this._FormManteBaseType = typeof(frmOperario);
531  }
532 
533  #endregion CONSTRUCTORES
534 
535 
536 
537  #region METODOS
538 
543  public virtual new Operario _Clonar()
544  {
545  Operario _OpeDup = new Operario();
546 
547  _OpeDup._Clave = this._Clave;
548  _OpeDup._Codigo = this._Codigo;
549  _OpeDup._DataBase = this._DataBase;
550  _OpeDup._lTodos = this._lTodos;
551  _OpeDup._Tabla = this._Tabla;
552  _OpeDup._Load();
553 
554  return _OpeDup;
555  }
556 
561  public override bool _Save()
562  {
563  //Guardem el registre de l'operari
564  bool llOk = base._Save();
565  if (!llOk)
566  return false;
567 
568  //Guardem els permissos
569  DataTable dtOperario = new DataTable();
570  DB.SQLExec("SELECT * " +
571  "FROM " + DB.SQLDatabase("COMUNES", "OPC_USER") + " " +
572  "WHERE operario = " + DB.SQLString(this._Codigo), ref dtOperario);
573  if ((dtOperario != null) && (dtOperario.Rows.Count > 0))
574  {
575  // Establecemos la clave primaria para las busquedas de las opcciones de operarios
576  DataColumn[] dcClave = new DataColumn[1];
577  dcClave[0] = dtOperario.Columns["opctpv"];
578  dtOperario.PrimaryKey = dcClave;
579 
580  //Actualitzar o insertar segons existeixi o no el registre a la BD
581  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_BORRAR_MODIFICAR_COBROS, _Permitir_Borrar_Modificar_Cobros, (dtOperario.Rows.Find(OPC_PERMITIR_BORRAR_MODIFICAR_COBROS) == null));
582  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_BORRAR_MODIFICAR_LINEAS, _Permitir_Borrar_Modificar_Lineas, (dtOperario.Rows.Find(OPC_PERMITIR_BORRAR_MODIFICAR_LINEAS) == null));
583  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_DESARQUEAR, _Permitir_DesArquear, (dtOperario.Rows.Find(OPC_PERMITIR_DESARQUEAR) == null));
584  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_CABECERA, _Permitir_Modificar_Cabecera, (dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_CABECERA) == null));
585  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_DESCUENTOS, _Permitir_Modificar_Descuentos, (dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_DESCUENTOS) == null));
586  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_PRECIOS, _Permitir_Modificar_Precios, (dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_PRECIOS) == null));
587  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_PRECIOS_0, _Permitir_Precios_0, (dtOperario.Rows.Find(OPC_PERMITIR_PRECIOS_0) == null)); // PE-80624
588  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_UNIDADES_0, _Permitir_Unidades_0, (dtOperario.Rows.Find(OPC_PERMITIR_UNIDADES_0) == null)); // PE-80624
589  llOk = llOk && _SaveOpcUser(OPC_TACTIL_NO_BORRAR_LINEAS_DESPUES_IMPRIMIR, _No_Borrar_Lineas_Despues_Imprimir_TACTIL, (dtOperario.Rows.Find(OPC_TACTIL_NO_BORRAR_LINEAS_DESPUES_IMPRIMIR) == null));
590  llOk = llOk && _SaveOpcUser(OPC_TACTIL_PERMITIR_BORRAR_LINEAS, _Permitir_Borrar_Lineas_TACTIL, (dtOperario.Rows.Find(OPC_TACTIL_PERMITIR_BORRAR_LINEAS) == null));
591  llOk = llOk && _SaveOpcUser(OPC_VENTA_HABITUAL_ALBARANES, _Venta_Habitual_Albaranes, (dtOperario.Rows.Find(OPC_VENTA_HABITUAL_ALBARANES) == null));
592  llOk = llOk && _SaveOpcUser(OPC_VENTA_HABITUAL_FACTURAS, _Venta_Habitual_Facturas, (dtOperario.Rows.Find(OPC_VENTA_HABITUAL_FACTURAS) == null));
593  llOk = llOk && _SaveOpcUser(OPC_VENTA_HABITUAL_TICKETS, _Venta_Habitual_Tickets, (dtOperario.Rows.Find(OPC_VENTA_HABITUAL_TICKETS) == null));
594  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_UNIDADES, _Permitir_Modificar_Unidades, (dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_UNIDADES) == null));
595  }
596  else
597  {
598  //Insertar tots els permisos
599  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_BORRAR_MODIFICAR_COBROS, _Permitir_Borrar_Modificar_Cobros, true); // PE-80624
600  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_BORRAR_MODIFICAR_LINEAS, _Permitir_Borrar_Modificar_Lineas, true);
601  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_DESARQUEAR, _Permitir_DesArquear, true);
602  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_CABECERA, _Permitir_Modificar_Cabecera, true);
603  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_DESCUENTOS, _Permitir_Modificar_Descuentos, true);
604  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_PRECIOS, _Permitir_Modificar_Precios, true);
605  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_PRECIOS_0, _Permitir_Precios_0, true); // PE-80624
606  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_UNIDADES_0, _Permitir_Unidades_0, true); // PE-80624
607  llOk = llOk && _SaveOpcUser(OPC_TACTIL_NO_BORRAR_LINEAS_DESPUES_IMPRIMIR, true);
608  llOk = llOk && _SaveOpcUser(OPC_TACTIL_PERMITIR_BORRAR_LINEAS, _Permitir_Borrar_Lineas_TACTIL, true);
609  llOk = llOk && _SaveOpcUser(OPC_VENTA_HABITUAL_ALBARANES, _Venta_Habitual_Albaranes, true);
610  llOk = llOk && _SaveOpcUser(OPC_VENTA_HABITUAL_FACTURAS, _Venta_Habitual_Facturas, true);
611  llOk = llOk && _SaveOpcUser(OPC_VENTA_HABITUAL_TICKETS, _Venta_Habitual_Tickets, true);
612  llOk = llOk && _SaveOpcUser(OPC_PERMITIR_MODIFICAR_UNIDADES, _Permitir_Modificar_Unidades, true);
613  }
614 
615  return llOk;
616  }
617 
625  public bool _SaveOpcUser(string tcCodigo, bool tlValor, bool tlNew = false)
626  {
627  if (tlNew)
628  return this._InsertOpcUser(tcCodigo, tlValor);
629  else
630  return this._UpdateOpcUser(tcCodigo, tlValor);
631  }
632 
639  protected bool _InsertOpcUser(string tcCodigo, bool tlValor)
640  {
641  string lcSql = "insert into " + DB.SQLDatabase("COMUNES", "OPC_USER") + " (OPCTPV,OPERARIO,VALOR) "
642  + " values (" + DB.SQLString(tcCodigo) + ", " + DB.SQLString(this._Codigo) + ", " + DB.SQLString(tlValor) + ")";
643  return DB.SQLExec(lcSql);
644  }
645 
652  protected bool _UpdateOpcUser(string tcCodigo, bool tlValor)
653  {
654  string lcSql = "update " + DB.SQLDatabase("COMUNES", "OPC_USER")
655  + " set VALOR = " + DB.SQLString(tlValor)
656  + " where OPERARIO = " + DB.SQLString(this._Codigo) + " and OPCTPV = " + DB.SQLString(tcCodigo);
657  return DB.SQLExec(lcSql);
658  }
659 
663  public override void _Load()
664  {
665  base._Load();
666 
667  if (string.IsNullOrWhiteSpace(this._Codigo) || this._Estado == _EstadosMantenimiento.EntrandoNuevo) // PE-103163
668  {
669  //PE-99466 Creo variable por si se vuelve a cambiar de criterio
670  // PE-103163. En caso de crear un operario nuevo, hay que marcar algunas opciones por defecto
671  bool llDefaultValueNew = (this._Estado == _EstadosMantenimiento.EntrandoNuevo ? true : false);
672 
673  _Permitir_Borrar_Modificar_Lineas = llDefaultValueNew;
674  _Permitir_Modificar_Precios = llDefaultValueNew;
675  _Permitir_Modificar_Descuentos = llDefaultValueNew;
676  _Permitir_Unidades_0 = llDefaultValueNew;
677  _Permitir_Modificar_Unidades = llDefaultValueNew;
678  _Permitir_Modificar_Cabecera = llDefaultValueNew;
679  _Venta_Habitual_Tickets = llDefaultValueNew; // 94568, 103377
680  _Venta_Habitual_Albaranes = false; // 94568
681  _Venta_Habitual_Facturas = false; // 94568
682  _Permitir_DesArquear = llDefaultValueNew;
683  _Permitir_Precios_0 = llDefaultValueNew;
684  _Permitir_Borrar_Modificar_Cobros = llDefaultValueNew;
685  _Permitir_Borrar_Lineas_TACTIL = llDefaultValueNew;
686  _No_Borrar_Lineas_Despues_Imprimir_TACTIL = false;
687  _Password = string.Empty;
688  }
689  else
690  {
691  DataTable dtOperario = new DataTable();
692  DB.SQLExec("SELECT * " +
693  "FROM " + DB.SQLDatabase("COMUNES", "OPC_USER") + " " +
694  "WHERE operario = " + DB.SQLString(this._Codigo), ref dtOperario);
695 
696  if ((dtOperario != null) && (dtOperario.Rows.Count > 0))
697  {
698  // Establecemos la clave primaria para las busquedas de las opcciones de operarios
699  DataRow drOpc;
700  DataColumn[] dcClave = new DataColumn[1];
701  dcClave[0] = dtOperario.Columns["opctpv"];
702  dtOperario.PrimaryKey = dcClave;
703 
704  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_BORRAR_MODIFICAR_LINEAS);
705  if (drOpc != null)
706  _Permitir_Borrar_Modificar_Lineas = Convert.ToBoolean(drOpc["valor"]);
707 
708  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_PRECIOS);
709  if (drOpc != null)
710  _Permitir_Modificar_Precios = Convert.ToBoolean(drOpc["valor"]);
711 
712  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_DESCUENTOS);
713  if (drOpc != null)
714  _Permitir_Modificar_Descuentos = Convert.ToBoolean(drOpc["valor"]);
715 
716  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_UNIDADES_0);
717  if (drOpc != null)
718  _Permitir_Unidades_0 = Convert.ToBoolean(drOpc["valor"]); // PE-80624
719 
720  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_PRECIOS_0);
721  if (drOpc != null)
722  _Permitir_Precios_0 = Convert.ToBoolean(drOpc["valor"]); // PE-80624
723 
724  // PE-76031
725  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_CABECERA);
726  if (drOpc != null)
727  _Permitir_Modificar_Cabecera = Convert.ToBoolean(drOpc["valor"]);
728 
729  drOpc = dtOperario.Rows.Find(OPC_VENTA_HABITUAL_TICKETS);
730  if (drOpc != null)
731  _Venta_Habitual_Tickets = Convert.ToBoolean(drOpc["valor"]);
732 
733  drOpc = dtOperario.Rows.Find(OPC_VENTA_HABITUAL_ALBARANES);
734  if (drOpc != null)
735  _Venta_Habitual_Albaranes = Convert.ToBoolean(drOpc["valor"]);
736 
737  drOpc = dtOperario.Rows.Find(OPC_VENTA_HABITUAL_FACTURAS);
738  if (drOpc != null)
739  _Venta_Habitual_Facturas = Convert.ToBoolean(drOpc["valor"]);
740 
741  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_DESARQUEAR);
742  if (drOpc != null)
743  _Permitir_DesArquear = Convert.ToBoolean(drOpc["valor"]);
744 
745  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_BORRAR_MODIFICAR_COBROS);
746  if (drOpc != null)
747  _Permitir_Borrar_Modificar_Cobros = Convert.ToBoolean(drOpc["valor"]); //78163 // PE-80624
748 
749  drOpc = dtOperario.Rows.Find(OPC_TACTIL_NO_BORRAR_LINEAS_DESPUES_IMPRIMIR);
750  if (drOpc != null)
751  _No_Borrar_Lineas_Despues_Imprimir_TACTIL = Convert.ToBoolean(drOpc["valor"]);
752 
753  drOpc = dtOperario.Rows.Find(OPC_TACTIL_PERMITIR_BORRAR_LINEAS);
754  if (drOpc != null)
755  _Permitir_Borrar_Lineas_TACTIL = Convert.ToBoolean(drOpc["valor"]); //78163
756  // FI PE-76031
757 
758  drOpc = dtOperario.Rows.Find(OPC_PERMITIR_MODIFICAR_UNIDADES);
759  if (drOpc != null)
760  _Permitir_Modificar_Unidades = Convert.ToBoolean(drOpc["valor"]);
761 
762  drOpc = null;
763  dcClave = null;
764  }
765  dtOperario = null;
766  }
767  }
768 
773  public override bool _Delete()
774  {
775  //Comprobem si hi ha registres
776  if (!_Existen_Registros("GESTION", new List<string>() { "C_ALBVEN", "C_PEDIVE" }, "OPERARIO"))
777  {
778  //Borrem operari
779  if (base._Delete())
780  {
781  //Borrem permissos
782  string lcSql = "DELETE FROM " + DB.SQLDatabase("COMUNES", "OPC_USER") + " WHERE OPERARIO = " + DB.SQLString(this._Codigo);
783  if (!DB.SQLExec(lcSql))
784  this._Error_Message = "Ha sucedido un error borrando los permisos del operario";
785  return true;
786  }
787  else
788  this._Error_Message = "Ha sucedido un error borrando el operario";
789  }
790  else
791  this._Error_Message = String.Format("Existen registros vinculados {0} ({1})", _Nombre, _Codigo);
792 
793  return false;
794  }
795 
799  //public void _Modificar_Tarjeta()
800  //{
801  // _Imprimir_Tarjeta(true);
802  //}
803 
804 
808  public void _Imprimir_Tarjeta(bool tlEditar=false)
809  {
810  if (_Show_Print()) _DocPrint._Print();
811  }
812 
817  private bool _ComprobarAcceso()
818  {
819  string lcError = "";
820  _TiposAccesosPantalla lnAcceso = Usuario._This._Acceso("ACTIV_OPE");
821  switch (lnAcceso)
822  {
823  case _TiposAccesosPantalla.Completo:
824  return true;
825  case _TiposAccesosPantalla.BajaSuscripcion:
826  lcError = "ACCESO DENEGADO a la función 'Activar / Desactivar operario', el módulo de TPV está de baja de suscripción.";
827  break;
828  case _TiposAccesosPantalla.SoloLectura:
829  case _TiposAccesosPantalla.Denegado:
830  lcError = "ACCESO DENEGADO. No tiene acceso al módulo de TPV. Si desea acceder a este módulo consulte con su supervisor";
831  break;
832  }
833  if (!string.IsNullOrWhiteSpace(lcError))
834  sage.ew.functions.FUNCTIONS._MessageBox(lcError, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Stop, System.Windows.Forms.MessageBoxDefaultButton.Button1);
835  return false;
836  }
837 
843  {
844  return string.IsNullOrWhiteSpace(EW_GLOBAL._GetVariable("wc_OperarioTPV").ToString()) ? this._ActivarOperario() : this._DesactivarOperario();
845  }
846 
851  public bool _DesactivarOperario()
852  {
853  if(this._ComprobarAcceso())
854  {
855  //string lcOperario = sage.ew.netvfp.NETVFP._Ejecutar_Funcion_VFP("tpv_ActOper_Net", new object[1] { "cambiar_operario" });
856  EW_GLOBAL._SetVariable("wc_operariotpv", "");
857  this._Codigo = "";
858  return true;
859  }
860  return false;
861  }
862 
868  public bool _ActivarOperario()
869  {
870  if (this._ComprobarAcceso())
871  {
872  //Mostrem el formulari de seleccio de l'usuari
873  string lcOperario = "";
874  formul.Forms.frmSelOper frmSelOperario = new formul.Forms.frmSelOper();
875  frmSelOperario._ShowDialog(); //Bug 114218 Cambiar .ShowDialog() por ._ShowDialog()
876  if (frmSelOperario.DialogResult == System.Windows.Forms.DialogResult.OK)
877  {
878  lcOperario = frmSelOperario._Operario;
879  }
880  frmSelOperario = null;
881 
882  //Carregeum l'operari
883  this._Codigo = lcOperario;
884  this._Load();
885  if (this._Existe_Registro())
886  {
887  //PE-100021: Actualizamos el valor en EW_GLOBAL de wc_operariotpv que se cambiaba en FOX pero no se enteraba del nuevo valor en .NET
888  EW_GLOBAL._SetVariable("wc_operariotpv", lcOperario);
889  return true;
890  }
891  }
892  return false;
893  }
894 
895  #region IDocumentoImprimible
896 
902  public bool _Show_Print(int tnAbrirEn = 1)
903  {
904  frmReportAction loForm;
905  DocPrintTPV loDocPrint = (DocPrintTPV)_DocPrint;
906  Usuario loUsuario = sage.ew.usuario.Usuario._This;
907 
908  loForm = new frmReportAction();
909  loForm._UserControlAdicional = loDocPrint._UserControlAdicional;
910  loForm._ReportBase = _ReportBase;
911  loForm._Nombre = ((IDocumentoImprimible)this)._Nombre;
912  loForm._PrinterCopies = Convert.ToInt16(loDocPrint._Numero_Copias);
913  loForm._MostrarExportacionCSV = false;
914  loForm._MostrarOpcionColores = false;
915  loForm._Printer = loDocPrint._Printer;
916  loForm._ShowEditMode = true;
917  loForm._ShowDialog();
918 
919  if (loForm.DialogResult == DialogResult.OK)
920  {
921  loDocPrint._Vista_Preliminar = loForm._VistaPreliminar;
922  loDocPrint._Ruta_Fichero = loForm._FilePath;
923  loDocPrint._Numero_Copias = loForm._PrinterCopies;
924  loDocPrint._Printer = loForm._Printer;
925  loDocPrint._Exportar = loForm._Exportar;
926  loDocPrint._EditMode = loForm._EditMode;
927  loDocPrint._FieldRandomBackColor = loForm._FieldRandomBackColor;
928  loDocPrint._Formato_exportacion = loForm._FormatoExportacion;
929 
930  return true;
931  }
932  else
933  {
934  return false;
935  }
936  }
937 
943  public Dictionary<string, object> _Obtener_Filtros_SageReports(Dictionary<string, object> tdicParametros = null)
944  {
945  return new Dictionary<string, object>();
946  }
947 
953  public DataTable _Obtener_Datos_SageReports(Dictionary<string, object> tdicParametros = null)
954  {
955  String lcCodigoBarras = "";
956  DataTable loDtOper = new DataTable();
957 
958  // Montamos el código de barras para la tarjeta de fichaje
959  lcCodigoBarras = String.Format("@{0}#{1}@\r", this._Codigo.Trim(), this._Password.Trim());
960 
961  loDtOper.TableName = "articulo";
962  loDtOper.Columns.Add("operario");
963  loDtOper.Columns.Add("barras");
964  loDtOper.Rows.Add(new string[] { this._Nombre, lcCodigoBarras });
965 
966  return loDtOper;
967 
968  }
969 
970  #endregion IDocumentoImprimible
971 
972  #endregion METODOS
973  }
974 
978  public class DocPrintOperario
979  : DocPrintTPV
980  {
985  protected override Report.ReportAction _ObtenerAccion()
986  {
987  return base.Obtener_accion();
988  }
989 
994  public override Report _CrearReport()
995  {
996  Report loReport = null;
997 
998  loReport = base._CrearReport();
999  loReport._TableName = "articulo";
1000 
1001  return loReport;
1002  }
1003 
1009  :base(toDoc)
1010  {
1011 
1012  }
1013  }
1014 
1018  public class PermisoOperario : ewMante
1019  {
1020  #region CONSTRUCTORES
1021 
1026  {
1027  // Asignamos las propiedades para operario
1028  this._Clave = "Codigo";
1029  this._DataBase = "Comunes";
1030  this._Tabla = "Opcoper";
1031  this._Codigo = string.Empty;
1032  }
1033 
1034 
1039  public PermisoOperario(string tcCodigo)
1040  {
1041  // Asignamos las propiedades para operario
1042  this._Clave = "Codigo";
1043  this._DataBase = "Comunes";
1044  this._Tabla = "Opcoper";
1045 
1046  // Asignamos el código al operario y cargamos sus opciones
1047  this._Codigo = tcCodigo;
1048  this._Load();
1049  }
1050  #endregion
1051  }
1052 
1053 
1058  {
1059  // Propiedades
1063  public dynamic _Documento
1064  {
1065  get { return _oDocumento; }
1066  set { _oDocumento = value; }
1067  }
1068  private dynamic _oDocumento = null;
1069 
1070  // Delegados
1075  public delegate void _Click_Before_Handler(ref Boolean tlOk);
1080  public delegate void _Click_After_Handler(Boolean tlOk);
1081 
1082  // Eventos
1086  public event _Click_Before_Handler _Click_Before;
1090  public event _Click_After_Handler _Click_After;
1091 
1092  // Constructor
1096  public btSelOper()
1097  {
1098  this.Text = "Cambiar operario";
1099  //this.Image = sage.ew.images.Properties.Resources.usr_users;
1100  this.Click += new EventHandler(btSelOper_Click);
1101  }
1102 
1103 
1104  //Click
1110  public void btSelOper_Click(object sender, EventArgs e)
1111  {
1112  Boolean llOk = true;
1113 
1114  // Llamar al evento "before" antes de comunicar con vfp
1115  if (_Click_Before != null) _Click_Before(ref llOk);
1116 
1117  if (llOk)
1118  {
1119  string lcOperarioBefore="", lcOperarioAfter="";
1120 
1121  // Obtener formulario del perfil
1122  frmGestionPerfil frmPerfil = (frmGestionPerfil)this.FindForm();
1123  if (frmPerfil != null)
1124  {
1125  // Obtener el operario antes del cambio
1126  lcOperarioBefore = frmPerfil._Operacio_Entrar;
1127 
1128  // Mostrar formulario para el cambio de operario
1129  frmSelOper frmSelOperario = new frmSelOper(lcOperarioBefore);
1130  frmSelOperario._ShowDialog(); // PE-93350 //Bug 114218 Cambiar .ShowDialog() por ._ShowDialog()
1131 
1132  if (frmSelOperario != null)
1133  {
1134  lcOperarioAfter = frmSelOperario._Operario;
1135 
1136  // Actualizar el valor por defecto
1137  if (lcOperarioBefore != lcOperarioAfter)
1138  {
1139  frmPerfil._Cambiar_Operario_Defecto(lcOperarioAfter);
1140  this._Documento._Cabecera._lcOperarioOld = lcOperarioAfter;
1141  }
1142  }
1143  frmSelOperario = null;
1144  }
1145 
1146  // Llamar al evento "after" después de comunicar con vfp
1147  if (_Click_After != null) _Click_After(llOk);
1148  }
1149  }
1150  }
1151 
1152 }
Boolean _ShowEditMode
PE-103580 Indica si debemos ocultar la edición del report
DocPrint.eFormato_exportacion _FormatoExportacion
DEvuelve el tipo de exportación
Clase de negocio base para mantenimientos
Definition: clsEwBase.cs:1643
_Click_Before_Handler _Click_Before
_Click_Before_Handler
virtual new Operario _Clonar()
Metodo Virtual _Clonar del Operario
Definition: clsOperario.cs:543
override bool _Save()
PE-82182 : Guardar datos del operario
Definition: clsOperario.cs:561
override string _DataBase
PE-88540 Override de los campos _Tabla y _Database
Definition: clsEwBase.cs:1798
static sage.ew.usuario.Usuario _This
Instancia estática del objeto usuario con los datos del usuario actual (wc_usuario) ...
Definition: clsUsuario.cs:341
override Report _CrearReport()
Crea el report
Definition: clsOperario.cs:994
Operario(string tcCodigo)
Constructor de operario con código
Definition: clsOperario.cs:517
frmGestionPerfil; Formulari de gestión de perfiles
override Report.ReportAction _ObtenerAccion()
Obtener acción normal
Definition: clsOperario.cs:985
virtual void _ShowDialog()
PE92638 Fa el ShowDialog però abans comprova l&#39;accès al formulari
Definition: clsFormul.cs:4664
int _Numero_Copias
Nos indicará el número de copias a imprimir
Definition: DocPrint.cs:650
string _Operario
Propiedad donde indicaremos el operario seleccionado
Definition: frmSelOper.cs:44
Operario()
Constructor de operario sin código
Definition: clsOperario.cs:499
String _Nombre
Nombre del documento
PermisoOperario()
Constructor de permiso de operario
override void _ShowDialog()
PE92638 Fa el ShowDialog però abans comprova l&#39;accès al formulari
Boolean _FieldRandomBackColor
Establece en el modo edición, si pondrá color al fondo de los campos
void _Imprimir_Tarjeta(bool tlEditar=false)
Método para la impresión del report de tarjeta de fichaje del operario (PE-93159) ...
Definition: clsOperario.cs:808
override string _Codigo
Override del Codigo
Definition: clsOperario.cs:122
override bool _Delete()
Elimina el registro actual
Definition: clsOperario.cs:773
bool _MostrarExportacionCSV
Indica si muestra la opción de exportar a CSV
Interfaz utilizada en los controles que se añaden en los perfiles
_Click_After_Handler _Click_After
_Click_After_Handler
Clase para la impresión
Definition: clsOperario.cs:978
bool _FieldRandomBackColor
Propiedad _FieldRandomBackColor
Definition: DocPrint.cs:696
_TiposAccesosPantalla
Tipos de accesos a las pantallas
Definition: clsFormul.cs:338
string _Clave
Nombre del campo clave único de la tabla. Por defecto "codigo"
Definition: clsEwBase.cs:2140
ReportAction
PE-84803 enum para las acciones a realizar
Definition: Report.cs:92
PE-87187 : MAntenimiento de operarios
Definition: frmOperario.cs:21
bool _DesactivarOperario()
Método para desactivar al operario si el usuario tiene permiso.
Definition: clsOperario.cs:851
Clase derivada de DocPrint para la impresión de TPV
Definition: DocPrintTPV.cs:26
bool _Show_Print(int tnAbrirEn=1)
_Show_Print
Definition: clsOperario.cs:902
bool _Exportar
Indica si la acción es de exportación
Clase para uso de funciones genéricas
Definition: functions.cs:146
override void _Load()
Método para la carga de las opciones del operario
Definition: clsOperario.cs:663
Dictionary< string, object > _Obtener_Filtros_SageReports(Dictionary< string, object > tdicParametros=null)
_Obtener_Filtros_SageReports
Definition: clsOperario.cs:943
Boolean _MostrarOpcionColores
Indica si se debe mostrar la opción para poner colores a las columnas
Botón que muestra el formulario de Estadísticas de Artículos. PE-75898
void btSelOper_Click(object sender, EventArgs e)
btSelOper_Click
override string _Tabla
PE-88540 Override de los campos _Tabla y _Database
Definition: clsEwBase.cs:1811
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
Definition: clsEwBase.cs:1671
Clase permiso operario, de momento se utiliza unicamente para obtener las descripciones de los permis...
Definición de la interfície necesaria para las páginas(tabPage) a utilizar en formularios de tipo For...
Definition: IDocPrint.cs:16
Base para los botones de Eurowin
DataTable _Obtener_Datos_SageReports(Dictionary< string, object > tdicParametros=null)
_Obtener_Datos_SageReports
Definition: clsOperario.cs:953
String _TableName
Gets o sets el name de la tabla report
Definition: Report.cs:652
TipoReport
Enum para saber TipoReport
Definition: Report.cs:57
PermisoOperario(string tcCodigo)
Constructor de permiso operario
bool _InsertOpcUser(string tcCodigo, bool tlValor)
Inserción de un registro en la tabla "OPC_USER" segun operario
Definition: clsOperario.cs:639
Boolean _VistaPreliminar
Indica si la acción es de preview
_TiposAccesosPantalla _Acceso(string tcNombrePantalla, bool tbIgnorarHera=false)
Método que nos devolverá un entero con la siguiente información:
Definition: clsUsuario.cs:1798
bool _ActivarOperario()
Método para activar o cambiar el operario activo. Si el eusuario tiene acceso, muestra el formulario ...
Definition: clsOperario.cs:868
bool _SaveOpcUser(string tcCodigo, bool tlValor, bool tlNew=false)
Inserta o actualiza un registro segun el parametro tlNew
Definition: clsOperario.cs:625
virtual bool _Vista_Preliminar
Nos indicará si se realizará una vista preliminar del documento
Definition: DocPrint.cs:619
bool _ActivarDesactivarOperario()
Activa o desactiva el usuario segun exista codigo en wc_OperarioTPV o no
Definition: clsOperario.cs:842
Clase para el control de operarios
Definition: clsOperario.cs:26
Definición de la interficie que deben cumplir los documentos de cualquier tipo para poder interactuar...
Definition: IDocPrint.cs:376
override String _Printer
Impresora configurada en el terminal o caja seún el tipo
Definition: DocPrintTPV.cs:109
string _Ruta_Fichero
Nos indicará la ruta donde nos guardará el fichero del documento en formato PDF
Definition: DocPrint.cs:665
bool _EditMode
Modo de edición
Definition: DocPrint.cs:681
UserControl _UserControlAdicional
Control adicional
bool _Exportar
Determina si el documento
Definition: DocPrint.cs:726
bool _lTodos
Si es carreguen tots els camps, guardarà true per a que al refrescar es tornin a carregar tots i no u...
Definition: clsEwBase.cs:1337
Formulario de selección de operarios
Definition: frmSelOper.cs:18
virtual UserControl _UserControlAdicional
Opiones de impresión
Definition: DocPrint.cs:574
eFormato_exportacion _Formato_exportacion
Formato de exportación
Definition: DocPrint.cs:711
frmPerfil: Formulario utilizado en la creación de un perfil para especificar el nombre y el perfil ba...
Definition: frmPerfil.cs:14
bool _UpdateOpcUser(string tcCodigo, bool tlValor)
Actualización de un registro de la tabla "OPC_USER"
Definition: clsOperario.cs:652
DocPrintOperario(IDocumentoImprimible toDoc)
Constructor
Definición de la clase Usuario
Definition: clsUsuario.cs:113