tiposervicio.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data;
6 using System.ComponentModel;
7 
8 using sage.ew.global;
9 using sage.ew.db;
10 using sage.ew.ewbase;
11 using System.Windows.Forms;
12 using sage.ew.ewbase.Attributes;
13 using System.ComponentModel.DataAnnotations;
15 using sage.ew.empresa;
16 using sage.ew.cliente;
17 using sage.ew.interficies;
18 
19 namespace sage.addons.services.Negocio.Mantes
20 {
21  public partial class TipoServicio
23  {
27  public bool _EnUso = false;
28 
32  private String _cCodigoEmpresa = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
33 
37  private EstadosTipo _oEstadosTipo;
38 
42  private ReportTemplatesServicios _oReportTemplates = null;
43 
47  private ListCamposAdicionalesBase _oListCamposAdicionales = null;
48 
52  [FieldName("Codigo")]
53  [DisplayName("CODIGO")]
54  public override string _Codigo
55  {
56  get
57  {
58  return base._Codigo;
59  }
60  set
61  {
62 
63  base._Codigo = (! String.IsNullOrEmpty(value) ? value.ToString().PadLeft(2, '0') : value);
64  }
65  }
66 
70  public String _EstadoDefecto
71  {
72  get
73  {
74  return (from loEstado in _EstadosTipo._Items
75  where loEstado._EstadoDefecto
76  select loEstado._Estado).FirstOrDefault();
77  }
78  }
79 
83  public String _EstadoCierre
84  {
85  get
86  {
87  return (from loEstado in _EstadosTipo._Items
88  where loEstado._EstadoCierre
89  select loEstado._Estado).FirstOrDefault();
90  }
91  }
92 
96  public ReportTemplatesServicios _ReportTemplates
97  {
98  get
99  {
100  if (_oReportTemplates == null)
101  {
102  _oReportTemplates = new ReportTemplatesServicios(_cCodigoEmpresa, true);
103  ((ReportTemplatesServicios)_oReportTemplates)._TipoServicio = _Codigo;
104  }
105  return _oReportTemplates;
106  }
107  }
108 
112  public ListCamposAdicionalesBase _ListCamposAdicionales
113  {
114  get
115  {
116  if (_oListCamposAdicionales == null || _oListCamposAdicionales._GetCodigo() != this._Codigo)
117  {
118  _oListCamposAdicionales = new ListCamposAdicionalesTipoServicio(this._Codigo);
119  _oListCamposAdicionales._Load();
120  }
121 
122  return _oListCamposAdicionales;
123  }
124  set
125  {
126  _oListCamposAdicionales = value;
127  }
128  }
129 
133  public EstadosTipo _EstadosTipo
134  {
135  get
136  {
137  if (_oEstadosTipo == null)
138  {
139  _oEstadosTipo = new EstadosTipo(_Codigo);
140  _oEstadosTipo._Load();
141  }
142  else
143  {
144  if (Convert.ToString(_oEstadosTipo._Claves._TipoServicio._Valor) != _Codigo)
145  {
146  _oEstadosTipo._Claves._TipoServicio._Valor = _Codigo;
147  _oEstadosTipo._Load();
148  }
149  }
150  _AddManteTRel(_oEstadosTipo);
151 
152  return _oEstadosTipo;
153  }
154  }
155 
156  private void Inicializar()
157  {
158  // Asignamos las propiedades para el mantenimiento
159  this._Clave = "Codigo";
160  this._DataBase = "SERVICES";
161  this._Tabla = "tiposerv";
162  this._TituloMantenimiento = "Mantenimiento de Tipo de Servicios";
163 
164  this._Pantalla = "tiposerv";
165  this._FormManteBaseType = typeof(Visual.Forms.frmTipoServicio);
166 
167  this._Codigo = string.Empty;
168  }
169 
170  public override void _Load()
171  {
172  base._Load();
173  _oReportTemplates = null;
174  }
175 
176  public override bool _Save()
177  {
178  if(base._Save())
179  {
180  _ListCamposAdicionales._Save();
181  _ReportTemplates._Save();
182 
183  ((ListCamposAdicionalesTipoServicio)_ListCamposAdicionales)._CreateValuesCampos();
184 
185  return true;
186  }
187 
188  return false;
189  }
190 
191  private Boolean _CanDelete()
192  {
193  DataTable ldtInf = new DataTable();
194  String lcSql, lcMensaje = String.Empty;
195 
196  _Error_Message = "";
197 
198  lcSql = String.Format("SELECT COUNT(*) AS registros, Max(NUMERO) FROM {0} WHERE TIPOSERV = '" + _Codigo + "'", DB.SQLDatabase("SERVICES", "C_SERVICIOS"));
199  DB.SQLExec(lcSql, ref ldtInf);
200 
201  List<DataRow> loInf = ldtInf.AsEnumerable().Where(y => y.Field<Int32>("registros") != 0).ToList();
202 
203  if (loInf.Count > 0 )
204  {
205  for (int lnInd = 0; lnInd < loInf.Count(); lnInd++)
206  {
207  if (!string.IsNullOrWhiteSpace(lcMensaje)) lcMensaje = lcMensaje + " y ";
208  lcMensaje = lcMensaje + Convert.ToString(loInf[lnInd][1]);
209  }
210 
211  _Error_Message = "Este código de tipo de servicio está asignado al servicio número " + lcMensaje.Trim() + ". No se puede borrar el tipo de servicio.";
212  }
213 
214  return String.IsNullOrEmpty(_Error_Message);
215 
216  }
217 
218  #region ISageReportsFilterProvider
219 
225  public Dictionary<String, object> _Obtener_Filtros_SageReports(Dictionary<String, object> tdicParametros = null)
226  {
227  String lcTipo = "";
228  Dictionary<string, object> loDicResult;
229 
230  if( tdicParametros is Dictionary<string, object> && tdicParametros.ContainsKey("CamposAdicionales") && !Convert.ToBoolean(tdicParametros.ContainsKey("CamposAdicionales")))
231  {
232  loDicResult = new Dictionary<String, object>();
233  }
234  else
235  {
236  loDicResult = _ListCamposAdicionales._Obtener_Filtros_SageReports();
237  }
238 
239  if (tdicParametros is Dictionary<string, object> && tdicParametros.ContainsKey("ParamKey"))
240  {
241  lcTipo = Convert.ToString(tdicParametros["ParamKey"]).Trim();
242  }
243 
244  loDicResult.Add(String.Format("wc_CodigoTipoServicio{0}", lcTipo), _Codigo);
245  loDicResult.Add(String.Format("wc_NombreTipoServicio{0}", lcTipo), _Nombre);
246 
247  return loDicResult;
248  }
249 
250  #endregion ISageReportsFilterProvider
251 
252  public String _GetEstadoDefecto()
253  {
254  return _GetEstado(_EstadoDefecto, SERVICES._ServicesConfig._EstadoDefecto);
255  }
256 
257  public String _GetEstadoCierre()
258  {
259  return _GetEstado(_EstadoCierre, SERVICES._ServicesConfig._EstadoCierre);
260  }
261 
262  private String _GetEstado(String tcEstado, String tcEstadoConfig)
263  {
264  String lcEstadoDefecto = "";
265 
266  if (!String.IsNullOrEmpty(tcEstado))
267  {
268  lcEstadoDefecto = tcEstado;
269  }
270  else if (!String.IsNullOrEmpty(tcEstadoConfig))
271  {
272  lcEstadoDefecto = tcEstadoConfig;
273  }
274 
275  return lcEstadoDefecto;
276  }
277 
278  public String _GetSQLFiltroEstados(String tcCondicionDefecto)
279  {
280  if (_EstadosTipo.Count() > 0 && !String.IsNullOrEmpty(_Codigo))
281  {
282  tcCondicionDefecto = String.Format(" CODIGO IN (SELECT ESTADO FROM {0} WHERE TIPO_SER = {1} AND EMPRESA = {2}) ", DB.SQLDatabase(_DataBase, "SERV_EST"), DB.SQLString(_Codigo), DB.SQLString(EW_GLOBAL._GetVariable("wc_empresa")));
283  }
284 
285  return tcCondicionDefecto;
286 
287  }
288 
293  public override bool _Delete()
294  {
295  if (_CanDelete())
296  {
297  if (base._Delete())
298  {
299  _ListCamposAdicionales._Delete();
300  _ReportTemplates._Delete();
301 
302  return true;
303  }
304  }
305 
306  return false;
307  }
308 
309 
313  public TipoServicio()
314  {
315  Inicializar();
316  }
317 
322  public TipoServicio(string tcCodigo)
323  {
324  Inicializar();
325 
326  this._Codigo = tcCodigo;
327  this._Load();
328  }
329 
333  public class EstadosTipo : ewManteTRel<EstadosTipo.EstadoTipo, EstadosTipo.Clave>
334  {
335 
339  public EstadosTipo()
340  {
341  CrearEstructura();
342  }
343 
347  public EstadosTipo(String tcCodigoTipoServicio)
348  {
349  CrearEstructura();
350 
351  this._Claves._TipoServicio._Valor = tcCodigoTipoServicio;
352  }
353 
354  private void CrearEstructura()
355  {
356  // Definir la base
357  this._DataBase = "SERVICES";
358  this._Tabla = "SERV_EST";
359 
360  // Omplim els camps i relació de propietats
361  this._AddCampoTRel("_Empresa", "EMPRESA", ewCampoTRel.Visible.No, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.No);
362  this._AddCampoTRel("_TipoServicio", "TIPO_SER", ewCampoTRel.Visible.No, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.No);
363  this._AddCampoTRel("_Linea", "LINEA", ewCampoTRel.Visible.No, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.No);
364 
365  ewCampoTRel loDefEstado = this._AddCampoTRel("_Estado", "ESTADO", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Código", tnAnchoColumna: 5);
366  {
367  // Validacions
368  loDefEstado._PermiteDuplicados = false;
369  loDefEstado._Validar_Dato_BaseDatos = "SERVICES";
370  loDefEstado._Validar_Dato_Tabla = "ESTSERV";
371  loDefEstado._Validar_Dato_Clave = "CODIGO";
372  loDefEstado._Validar_Dato_Campos = "NOMBRE";
373  loDefEstado._Validar_Asignar_Cargando = true;
374  loDefEstado._Validar_Dato_CampoTRel_Asignar = "_Nombre";
375  loDefEstado._Error_Validar_Dato = "El estado relacionado en el tipo de servicio no existe en el mantenimiento de estados";
376  //PE-97774
377  loDefEstado._Browser = new sage.ew.botones.btBrowser();
378  loDefEstado._Browser._Campos = "Codigo, Nombre";
379  loDefEstado._Browser._Campo_Predet = "Nombre";
380  loDefEstado._Browser._Clave = "Codigo";
381  loDefEstado._Browser._DataBase = "SERVICES";
382  loDefEstado._Browser._Tabla = "ESTSERV";
383  loDefEstado._Browser._Titulo = "Listado de estados";
384  loDefEstado._Browser._Titulos_Campos = "Código, Nombre";
385  loDefEstado._Browser.NombreMantenimiento = "ESTSERV";
386 
387  // Configurar el manteniment
388  loDefEstado._Mante = new sage.ew.botones.btMante();
389  loDefEstado._Mante._NombreManteNet = "ESTSERV";
390 
391  }
392 
393  this._AddCampoTRel("_Nombre", "", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.No, ewCampoTRel.Editable.No, "Descripción");
394  this._AddCampoTRel("_EstadoDefecto", "EDEFECTO", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Predet.", gridColumnsTypes.Lógico, tnAnchoColumna: 5);
395  this._AddCampoTRel("_EstadoCierre", "ECIERRE", ewCampoTRel.Visible.Si, ewCampoTRel.Updatable.Si, ewCampoTRel.Editable.Si, "Cierre", gridColumnsTypes.Lógico, tnAnchoColumna: 5);
396  }
397 
401  public class Clave
402  : IClaves
403  {
407  public ClaveTRel _Empresa { get; set; }
408 
412  public ClaveTRel _TipoServicio { get; set; }
413 
417  public ClaveTRel _Linea{ get; set; }
418 
422  public Clave()
423  {
424  // Definim les propietats de cada una de les claus
425  _TipoServicio = new ClaveTRel();
426  _TipoServicio._EsFiltro = true;
427 
428  _Empresa = new ClaveTRel();
429  _Empresa._EsFiltro = true;
430 
431  _Linea = new ClaveTRel();
432  _Linea._EsCampoLinea = true;
433  _Linea._EsFiltro = false;
434 
435  // i posem valors per defecte
436  _TipoServicio._Valor = "";
437  _Empresa._Valor = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
438 
439  }
440  }
441 
445  public class EstadoTipo
446  : ILinTRel
447  {
448  private Int32 _nLinea;
449  private EstadosTipo _oParent;
450  private String _cNombre = "";
451  private String _cEstado = "";
452  private String _cEmpresa = "";
453  private String _cTipoServicio = "";
454  private Boolean _bDefecto = false;
455  private Boolean _bCierre = false;
456 
460  public String _TipoServicio
461  {
462  get
463  {
464  return _cTipoServicio;
465  }
466  set
467  {
468  _cTipoServicio = value;
469  }
470  }
471 
475  public String _Empresa
476  {
477  get
478  {
479  return _cEmpresa;
480  }
481  set
482  {
483  _cEmpresa = value;
484  }
485  }
486 
490  public String _Estado
491  {
492  get
493  {
494  //PE-98326 Añadimos el trim, ya que al leer los colores vienen con espacios y no hace correctamente las validaciones
495  return _cEstado.Trim();
496  }
497  set
498  {
499  if (_cEstado != value)
500  {
501  // S'ha de comprovar que no repeteixin l'article
502  if (_oParent != null)
503  {
504  if (_oParent.CamposTRel_Validar_Valor("_Estado", value, this))
505  {
506  value = _cEstado;
507  }
508  }
509  _cEstado = value;
510  }
511  }
512  }
513 
514  public Int32 _Linea
515  {
516  get
517  {
518  return _nLinea;
519  }
520  set
521  {
522  _nLinea = value;
523  }
524  }
525 
529  public String _Nombre
530  {
531  get
532  {
533  return _cNombre;
534  }
535  set
536  {
537  _cNombre = value;
538  }
539  }
540 
541  public Boolean _EstadoDefecto
542  {
543  get
544  {
545  return _bDefecto;
546  }
547  set
548  {
549  if (value) _oParent._DesmarcaEstadosDefecto();
550  _bDefecto = value;
551  }
552  }
553 
554  public Boolean _EstadoCierre
555  {
556  get
557  {
558  return _bCierre;
559  }
560  set
561  {
562  if (value) _oParent._DesmarcaEstadoCierre();
563  _bCierre = value;
564  }
565  }
566 
570  public object _Parent
571  {
572  get
573  {
574  return _oParent;
575  }
576  set
577  {
578  _oParent = (EstadosTipo)value;
579  }
580  }
581 
585  public EstadoTipo()
586  {
587  _cEmpresa = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
588  }
589 
594  public bool Fila_Plena()
595  {
596  return !String.IsNullOrEmpty(_Estado.Trim());
597  }
598  }
599 
600  private void _DesmarcaEstadosDefecto()
601  {
602  _Items.ToList().ForEach(f => f._EstadoDefecto = false);
603  }
604 
605  private void _DesmarcaEstadoCierre()
606  {
607  _Items.ToList().ForEach(f => f._EstadoCierre = false);
608  }
609 
615  public Boolean _ContainsEstado(String tcEstado)
616  {
617  tcEstado = tcEstado.Trim();
618 
619  return (from loItem in _Items
620  where loItem._Estado.Trim() == tcEstado
621  select loItem).Count() > 0;
622  }
623  }
624  }
625 
626 }
Clase de negocio base para mantenimientos
Definition: clsEwBase.cs:1643
Definir la estructura de las líneas de los colores de artículos
sage.ew.botones.btMante _Mante
Mantenimiento para la columna del grid o campo enlazado
bool _PermiteDuplicados
Indica si se permiten valores duplicados comparando el campo con todos los registros cargados ...
string _Validar_Dato_Clave
Clave por la cual se buscará el valor a la tabla de validación
Definición de la interficie que han de cumplir aquellas clases que quieran proveer de información de ...
Definition: IDocPrint.cs:444
Definición de los objetos campo para las tablas relacionadas
Clase para gestionar los colores por artículo
string _Validar_Dato_BaseDatos
Base de datos donde se validará si el dato existe
Browser, basat en sage.ew.objetos.ewbutton
Es como el tipo de entrada asientos pero por negocio, sin formulario, pq quiero que me haga las propu...
override void _Load()
Carga en la lista de campos, todos los campos de la _Tabla
virtual String _GetCodigo()
Devuelve el codigo
string _Validar_Dato_Tabla
Tabla donde se validará si el dato existe
sage.ew.botones.btBrowser _Browser
Browser para la columna del grid o campo enlazado
override bool _Delete()
Elimina el registro actual
EstadosTipo()
Inicializa una nueva intancia de la clase
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
Dictionary< String, object > _Obtener_Filtros_SageReports(Dictionary< String, object > tdicParametros=null)
Obtienes los datos para la impresión de los tecnicos
Muestra el mantenimiento correspondiente a _Form con el registro correspondiente al _Codigo ...
Boolean _ContainsEstado(String tcEstado)
Mira si el codigo de estado pasado existe en la lista
Editable
Premitirá modificar su valor
TipoServicio(string tcCodigo)
Constructor con código
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
Campos clave para recuperar las tallas de los artículos
String _GetSQLFiltroEstados(String tcCondicionDefecto)
EstadosTipo(String tcCodigoTipoServicio)
Inicializa una nueva intancia de la clase
override bool _Save()
Vuelca a la tabla el valor de los campos, pero solo los modificados
string _Validar_Dato_Campos
Campos que se recuperarán en la consulta de validación
Este es el espacio de nombres de su módulo. Puede encontrar más información y ayuda en el fichero rea...
Interfaz para la definición de las claves para tablas relacionadas
Definition: IClaves.cs:11
Clase para el acceso a las tablas relacionadas de los mantenimientos.
Clave()
Inicializa una nueva intancia de la clase
gridColumnsTypes
Definición de los tipos de columnas para los grids o campos enlazados
Visible
Visible en el grid
bool _Validar_Asignar_Cargando
Indica si se buscará el dato en la tabla correspondiente mientras se ejecuta el _Load() ...
string _Error_Validar_Dato
Mensaje de error que se mostrará al insertar un dato no válido
bool CamposTRel_Validar_Valor(ewCampoTRel toCampo, object toValor, object toLinia, out object toNewValor)
Valida el valor introducido en el campo