/Inventario_HardSoft/Inventario_HardSoft/Sisco.LogicaNegocio/EquipoBLL.cs

# · C# · 232 lines · 188 code · 44 blank · 0 comment · 34 complexity · 00d391485c718c307b51118a570fdff7 MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Sisco.LogicaNegocio
  7. {
  8. public class EquipoBLL
  9. {
  10. public List<AccesoDatos.EQUIPO> Listar()
  11. {
  12. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  13. return equipoDAO.Listar();
  14. }
  15. public List<AccesoDatos.EQUIPO> ListarEquipo(AccesoDatos.USUARIO usuario)
  16. {
  17. List<AccesoDatos.EQUIPO> lista = this.Listar();
  18. return lista.Where(x => (x.IDUSUARIO.HasValue ? x.IDUSUARIO.Value : 0) == usuario.ID && x.ELIMINADO == 0).ToList();
  19. }
  20. public List<AccesoDatos.EQUIPO> ListarEquipo(AccesoDatos.TIPOEQUIPO tipoEquipo)
  21. {
  22. List<AccesoDatos.EQUIPO> lista = this.Listar();
  23. return lista.Where(x => (x.IDTIPOEQUIPO.HasValue ? x.IDTIPOEQUIPO.Value : 0) == tipoEquipo.ID && x.ELIMINADO == 0).ToList();
  24. }
  25. public List<AccesoDatos.EQUIPO> ListarEquiposconProgramas(AccesoDatos.USUARIO usuario)
  26. {
  27. List<AccesoDatos.EQUIPO> lista = this.ListarEquipo(usuario);
  28. return lista.Where(x => x.TIPOEQUIPO1.PERMITEPROGRAMA == 1).ToList();
  29. }
  30. public List<AccesoDatos.EQUIPO> ListarEquiposxEstado(AccesoDatos.TIPOEQUIPO tipoEquipo, AccesoDatos.EQUIPO_ESTADO equipoEstado)
  31. {
  32. List<AccesoDatos.EQUIPO> lista = ListarEquipo(tipoEquipo);
  33. return lista.Where(x => (x.IDESTADO.HasValue ? x.IDESTADO.Value : 0) == equipoEstado.ID).ToList();
  34. }
  35. public List<AccesoDatos.EQUIPO> Buscar(string atributo, string valor)
  36. {
  37. List<AccesoDatos.EQUIPO> resultado = new List<AccesoDatos.EQUIPO>();
  38. if (!string.IsNullOrWhiteSpace(valor))
  39. {
  40. List<AccesoDatos.EQUIPO> lista = this.Listar();
  41. switch (atributo)
  42. {
  43. case "TIPOEQUIPO":
  44. resultado = lista.Where(x => (x.TIPOEQUIPO1 != null ? x.TIPOEQUIPO1.NOMBRETIPO : string.Empty).Equals(valor) && x.ELIMINADO == 0).ToList();
  45. break;
  46. case "MARCA":
  47. resultado = lista.Where(x => x.MARCA.Equals(valor) && x.ELIMINADO == 0).ToList();
  48. break;
  49. case "MODELO":
  50. resultado = lista.Where(x => x.MODELO.Equals(valor) && x.ELIMINADO == 0).ToList();
  51. break;
  52. case "SERIE":
  53. resultado = lista.Where(x => x.SERIE.Equals(valor) && x.ELIMINADO == 0).ToList();
  54. break;
  55. }
  56. }
  57. else
  58. {
  59. resultado = this.Listar();
  60. }
  61. return resultado;
  62. }
  63. public List<AccesoDatos.EQUIPO> BuscarEquipo(int idTipoEquipo, string marca, string serie)
  64. {
  65. List<AccesoDatos.EQUIPO> resultado;
  66. List<AccesoDatos.EQUIPO> lista = this.Listar();
  67. resultado = lista.Where(x => (x.IDTIPOEQUIPO.HasValue ? x.IDTIPOEQUIPO.Value : 0).Equals(idTipoEquipo) && x.MARCA.Equals(marca,StringComparison.CurrentCultureIgnoreCase) && x.SERIE.Equals(serie,StringComparison.CurrentCultureIgnoreCase) && x.ELIMINADO == 0).ToList();
  68. return resultado;
  69. }
  70. public int Registrar(AccesoDatos.EQUIPO nuevoEquipo, AccesoDatos.USUARIO usuarioSistema)
  71. {
  72. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  73. LogicaNegocio.TipoMotivoBLL tipoMotivoBLL = new TipoMotivoBLL();
  74. AccesoDatos.TIPOMOTIVO tipoMotivo = tipoMotivoBLL.GetTipoMotivo("MI", "Primer ingreso a almacén");
  75. AccesoDatos.MOVIMIENTO nuevoMovimiento =
  76. new AccesoDatos.MOVIMIENTO()
  77. {
  78. IDTIPOMOTIVO = tipoMotivo != null ? tipoMotivo.ID : 0,
  79. FECHAREGISTRO = DateTime.Now,
  80. ELIMINADO = 0,
  81. IDUSUARIORESPONSABLE = usuarioSistema.ID,
  82. NOMBREUSUARIORESPONSABLE = usuarioSistema.NOMBRECOMPLETO,
  83. REGISTRADOPOR = usuarioSistema.NOMBRECOMPLETO,
  84. OBSERVACION = string.Format("Registro de equipo")
  85. };
  86. return equipoDAO.Registrar(nuevoEquipo, nuevoMovimiento);
  87. }
  88. public List<AccesoDatos.EQUIPO> ListarEquiposDisponibles(AccesoDatos.TIPOEQUIPO selectedTipoEquipo)
  89. {
  90. List<AccesoDatos.EQUIPO> lista = this.Listar();
  91. return lista.Where(x => (x.TIPOEQUIPO1 != null ? x.TIPOEQUIPO1.NOMBRETIPO : string.Empty).Equals(selectedTipoEquipo.NOMBRETIPO) && x.ASIGNADO == 0 && x.ELIMINADO == 0).ToList();
  92. }
  93. public int AsignarEquipos(int idUsuario, List<AccesoDatos.EQUIPO> updateEquipos , AccesoDatos.USUARIO usuarioSistema)
  94. {
  95. int resultado = 0;
  96. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  97. LogicaNegocio.EstadoEquipoBLL estadoEquipoBLL;
  98. LogicaNegocio.TipoMotivoBLL tipoMotivoBLL;
  99. LogicaNegocio.UsuarioBLL usuarioBLL;
  100. foreach (AccesoDatos.EQUIPO equipo in updateEquipos)
  101. {
  102. tipoMotivoBLL = new TipoMotivoBLL();
  103. usuarioBLL = new UsuarioBLL();
  104. estadoEquipoBLL = new EstadoEquipoBLL();
  105. AccesoDatos.TIPOMOTIVO tipoMotivo = tipoMotivoBLL.GetTipoMotivo("MF", "Asignación del equipo");
  106. AccesoDatos.USUARIO usuario = usuarioBLL.GetUsuario(idUsuario);
  107. AccesoDatos.EQUIPO_ESTADO equipoEstado = estadoEquipoBLL.GetEstadoEquipo("Asignado");
  108. AccesoDatos.MOVIMIENTO nuevoMovimiento = new AccesoDatos.MOVIMIENTO()
  109. {
  110. IDTIPOMOTIVO = tipoMotivo != null ? tipoMotivo.ID : 0,
  111. FECHAREGISTRO = DateTime.Now,
  112. ELIMINADO = 0,
  113. IDUSUARIORESPONSABLE = usuarioSistema.ID,
  114. NOMBREUSUARIORESPONSABLE = usuarioSistema.NOMBRECOMPLETO,
  115. REGISTRADOPOR = usuarioSistema.NOMBRECOMPLETO,
  116. OBSERVACION = string.Format("Asignación de equipo. Se asigna a usuario: {0}", (usuario.NOMBRECOMPLETO != null ? usuario.NOMBRECOMPLETO.Trim() : string.Empty))
  117. };
  118. resultado = resultado + equipoDAO.AsignarEquipo(idUsuario, equipo, equipoEstado, nuevoMovimiento,usuarioSistema);
  119. }
  120. return resultado;
  121. }
  122. public object BuscarEquipo(string valMarca, string valModelo, string valSerie, int? valIdTipoEquipo, DateTime? valFechaRegistroDesde, DateTime? valFechaRegistroHasta, int? valEstado)
  123. {
  124. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  125. return equipoDAO.BuscarEquipo(valMarca, valModelo, valSerie, valIdTipoEquipo, valFechaRegistroDesde, valFechaRegistroHasta, valEstado);
  126. }
  127. public System.Data.DataTable Rep_ListarEquipo(string marca, string modelo, string serie, int? tipoEquipo, int? estadoEquipo)
  128. {
  129. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  130. return equipoDAO.USP_ListarEquipo(marca, modelo, serie, tipoEquipo, estadoEquipo);
  131. }
  132. public int Modificar(AccesoDatos.EQUIPO selectedEquipo, AccesoDatos.EQUIPO updEquipo)
  133. {
  134. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  135. return equipoDAO.Modificar(selectedEquipo, updEquipo);
  136. }
  137. public int LiberarEquipo(AccesoDatos.EQUIPO selectedEquipo, AccesoDatos.USUARIO usuarioSistema)
  138. {
  139. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  140. LogicaNegocio.TipoMotivoBLL tipoMotivoBLL = new TipoMotivoBLL();
  141. LogicaNegocio.UsuarioBLL usuarioBLL = new UsuarioBLL();
  142. LogicaNegocio.EstadoEquipoBLL estadoEquipoBLL = new EstadoEquipoBLL();
  143. AccesoDatos.EQUIPO updEquipo = new AccesoDatos.EQUIPO()
  144. {
  145. IDESTADO = estadoEquipoBLL.GetEstadoEquipo("Liberado").ID
  146. };
  147. AccesoDatos.TIPOMOTIVO tipoMotivo = tipoMotivoBLL.GetTipoMotivo("ME", "Liberación del equipo"); //ME: Movimiento Externo
  148. AccesoDatos.USUARIO usuario = selectedEquipo.IDUSUARIO.HasValue ? usuarioBLL.GetUsuario(selectedEquipo.IDUSUARIO.Value) : new AccesoDatos.USUARIO();
  149. AccesoDatos.MOVIMIENTO nuevoMovimiento =
  150. new AccesoDatos.MOVIMIENTO()
  151. {
  152. IDTIPOMOTIVO = tipoMotivo != null ? tipoMotivo.ID : 0,
  153. FECHAREGISTRO = DateTime.Now,
  154. ELIMINADO = 0,
  155. IDUSUARIORESPONSABLE = usuarioSistema.ID,
  156. NOMBREUSUARIORESPONSABLE = usuarioSistema.NOMBRECOMPLETO,
  157. REGISTRADOPOR = usuarioSistema.NOMBRECOMPLETO,
  158. OBSERVACION = string.Format("Liberación de equipo. Pertenecía a usuario: {0}", (usuario.NOMBRECOMPLETO != null ? usuario.NOMBRECOMPLETO.Trim() : string.Empty))
  159. };
  160. return equipoDAO.Liberar(selectedEquipo, updEquipo, nuevoMovimiento, usuarioSistema);
  161. }
  162. public int DarBajaEquipo(AccesoDatos.EQUIPO selectedEquipo, AccesoDatos.USUARIO usuarioSistema)
  163. {
  164. AccesoDatos.EquipoDAO equipoDAO = new AccesoDatos.EquipoDAO();
  165. LogicaNegocio.TipoMotivoBLL tipoMotivoBLL = new TipoMotivoBLL();
  166. LogicaNegocio.UsuarioBLL usuarioBLL = new UsuarioBLL();
  167. LogicaNegocio.EstadoEquipoBLL estadoEquipoBLL = new EstadoEquipoBLL();
  168. AccesoDatos.EQUIPO updEquipo = new AccesoDatos.EQUIPO()
  169. {
  170. IDESTADO = estadoEquipoBLL.GetEstadoEquipo("Dado de Baja").ID
  171. };
  172. AccesoDatos.TIPOMOTIVO tipoMotivo = tipoMotivoBLL.GetTipoMotivo("ME", "Dado de Baja equipo");
  173. AccesoDatos.USUARIO usuario = selectedEquipo.IDUSUARIO.HasValue ? usuarioBLL.GetUsuario(selectedEquipo.IDUSUARIO.Value) : new AccesoDatos.USUARIO();
  174. AccesoDatos.MOVIMIENTO nuevoMovimiento =
  175. new AccesoDatos.MOVIMIENTO()
  176. {
  177. IDTIPOMOTIVO = tipoMotivo != null ? tipoMotivo.ID : 0,
  178. FECHAREGISTRO = DateTime.Now,
  179. ELIMINADO = 0,
  180. IDUSUARIORESPONSABLE = usuarioSistema.ID,
  181. NOMBREUSUARIORESPONSABLE = usuarioSistema.NOMBRECOMPLETO,
  182. REGISTRADOPOR = usuarioSistema.NOMBRECOMPLETO,
  183. OBSERVACION = string.Format("Dado de baja a equipo")
  184. };
  185. return equipoDAO.DarBajaEquipo(selectedEquipo, updEquipo, nuevoMovimiento, usuarioSistema);
  186. }
  187. }
  188. }