/Inventario_HardSoft/Inventario_HardSoft/Controlador/Ctrl_Proyecto.cs

# · C# · 276 lines · 232 code · 41 blank · 3 comment · 13 complexity · 1489d99cb91dc2b974a2d467c3960f20 MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Inventario_HardSoft.ADO;
  6. using System.Windows.Forms;
  7. using System.Data;
  8. namespace Inventario_HardSoft.Controlador
  9. {
  10. class Ctrl_Proyecto
  11. {
  12. ConexionDataContext conexion;
  13. Contador conta;
  14. public Ctrl_Proyecto()
  15. {
  16. conexion = new ConexionDataContext();
  17. conta = new Contador();
  18. }
  19. internal List<PROYECTO> getList_Proyectos()
  20. {
  21. List<PROYECTO> listProy = conexion.PROYECTO.Where(x => x.ESTADO=="Ejecucion").ToList<PROYECTO>();
  22. return listProy;
  23. }
  24. internal List<PROYECTO> getList_ProyectosEjecutandoseFinalizado()
  25. {
  26. List<PROYECTO> listProy = conexion.PROYECTO.ToList<PROYECTO>();
  27. return listProy;
  28. }
  29. internal void Proyectos(DataGridView dgSw, string p)
  30. {
  31. int i = 1;
  32. var consulta = from proyec in conexion.PROYECTO
  33. join user in conexion.USUARIO on proyec.IDUSUARIO equals user.IDUSUARIO
  34. join acti in conexion.ACTIVIDAD on proyec.IDPROYECTO equals acti.IDPROYECTO into tempActividad
  35. from actividades in tempActividad.DefaultIfEmpty()
  36. where (proyec.NOMBPROYECTO == p)
  37. select new
  38. {
  39. proyec.IDPROYECTO,
  40. proyec.NOMBPROYECTO,
  41. user.NOMBRE,
  42. proyec.FECHAINICIO,
  43. proyec.FECHAESTIMADATERMINO,
  44. proyec.COSTO,
  45. proyec.OBJETIVO,
  46. proyec.ESTADO,
  47. actividades.IDACTIVIDAD,
  48. actividades.FECHAESTIMADAACTIVIDAD,
  49. actividades.OBSERVACION,
  50. actividades.FECHADECONSULTA
  51. };
  52. foreach (var c in consulta)
  53. {
  54. object[] obj = new object[] {
  55. c.IDPROYECTO,i,c.NOMBRE,c.NOMBPROYECTO,c.ESTADO,
  56. c.COSTO,c.OBJETIVO,
  57. c.FECHAINICIO.GetValueOrDefault(DateTime.MinValue),
  58. c.FECHAESTIMADATERMINO.GetValueOrDefault(DateTime.MinValue),
  59. c.IDACTIVIDAD, c.FECHAESTIMADAACTIVIDAD.GetValueOrDefault(DateTime.MinValue),
  60. c.OBSERVACION,
  61. c.FECHADECONSULTA.GetValueOrDefault(DateTime.MinValue)
  62. };
  63. obj[7] = ((DateTime)obj[7]).Equals(DateTime.MinValue) ? String.Empty : ((DateTime)obj[7]).ToShortDateString();
  64. obj[8] = ((DateTime)obj[8]).Equals(DateTime.MinValue) ? String.Empty : ((DateTime)obj[8]).ToShortDateString();
  65. obj[10] = ((DateTime)obj[10]).Equals(DateTime.MinValue) ? String.Empty : ((DateTime)obj[10]).ToShortDateString();
  66. obj[12] = ((DateTime)obj[12]).Equals(DateTime.MinValue) ? String.Empty : ((DateTime)obj[12]).ToShortDateString();
  67. //grid_Proyect.Rows.Add(obj);
  68. dgSw.Rows.Add(obj);
  69. i++;
  70. i++;
  71. }
  72. }
  73. internal DataTable getProyecto(string proy)
  74. {
  75. DataTable dt = new DataTable();
  76. try
  77. {
  78. var query = conexion.PROYECTO.Join(conexion.USUARIO, p => p.IDUSUARIO, u => u.IDUSUARIO,
  79. (p, u) => new
  80. {
  81. p.IDPROYECTO,
  82. p.NOMBPROYECTO,
  83. p.FECHAINICIO,
  84. p.OBJETIVO,
  85. p.FECHAESTIMADATERMINO,
  86. p.ESTADO,
  87. p.COSTO,
  88. u.NOMBRE
  89. }
  90. ).Single(x => x.NOMBPROYECTO == proy);
  91. dt.Columns.Add(new DataColumn("idproyecto", typeof(string)));
  92. dt.Columns.Add(new DataColumn("nombreproyecto", typeof(string)));
  93. dt.Columns.Add(new DataColumn("fechainicio", typeof(string)));
  94. dt.Columns.Add(new DataColumn("objetivo", typeof(string)));
  95. dt.Columns.Add(new DataColumn("fechaestimadatermino", typeof(string)));
  96. dt.Columns.Add(new DataColumn("estado", typeof(string)));
  97. dt.Columns.Add(new DataColumn("costo", typeof(string)));
  98. dt.Columns.Add(new DataColumn("nombretercero", typeof(string)));
  99. DataRow dr = dt.NewRow();
  100. dr["idproyecto"] = query.IDPROYECTO;
  101. dr["nombreproyecto"] = query.NOMBPROYECTO;
  102. dr["fechainicio"] = query.FECHAINICIO.GetValueOrDefault(DateTime.MinValue).Equals(DateTime.MinValue) ? String.Empty: query.FECHAINICIO.Value.ToShortDateString();
  103. dr["objetivo"] = query.OBJETIVO;
  104. dr["fechaestimadatermino"] = query.FECHAESTIMADATERMINO.GetValueOrDefault(DateTime.MinValue).Equals(DateTime.MinValue) ? string.Empty: query.FECHAINICIO.Value.ToShortDateString();
  105. dr["estado"] = query.ESTADO;
  106. dr["costo"] = query.COSTO;
  107. dr["nombretercero"] = query.NOMBRE;
  108. dt.Rows.Add(dr);
  109. }
  110. catch (ArgumentNullException)
  111. {
  112. throw new ArgumentNullException();
  113. }
  114. return dt;
  115. }
  116. internal List<ACTIVIDAD> getListActividad(string idproy)
  117. {
  118. return conexion.ACTIVIDAD.Where(x => x.IDPROYECTO == idproy && x.ELIMINADO == 0).ToList<ACTIVIDAD>();
  119. }
  120. internal void actualizaActividad(string idproy, DateTime fRealTermino, string observacion,DateTime fConsulta)
  121. {
  122. ACTIVIDAD act;
  123. var consulta2 = from proyec in conexion.PROYECTO
  124. join user in conexion.USUARIO on proyec.IDUSUARIO equals user.IDUSUARIO
  125. join acti in conexion.ACTIVIDAD on proyec.IDPROYECTO equals acti.IDPROYECTO into tempActividad
  126. from actividades in tempActividad.DefaultIfEmpty()
  127. where (proyec.IDPROYECTO == idproy)
  128. select proyec ;
  129. //int idproyec = Convert.ToInt32(conexion.INVENTARIO_CONTADOR.Single(x => x.IDENTIFICADOR == "HARDSOFT").CONT_IDACTIVIDAD);
  130. //String idproyec = consulta2.Single().IDPROYECTO;
  131. String numero = Convert.ToString(conta.getNumContador_IdActividad());
  132. String numero2 = numero.Trim().PadLeft(7, '0');
  133. String idActiv = "ACT_" + numero2;
  134. act = new ACTIVIDAD
  135. {
  136. IDPROYECTO = idproy,
  137. IDACTIVIDAD = idActiv,
  138. FECHAESTIMADAACTIVIDAD = fRealTermino,
  139. OBSERVACION = observacion,
  140. FECHADECONSULTA = fConsulta,
  141. };
  142. conexion.ACTIVIDAD.InsertOnSubmit(act);
  143. conexion.SubmitChanges();
  144. conexion.increm_ContadorIdActividad();
  145. }
  146. internal bool agregarActividad(ACTIVIDAD a)
  147. {
  148. try
  149. {
  150. String numero = Convert.ToString(conta.getNumContador_IdActividad());
  151. String numero2 = numero.Trim().PadLeft(7, '0');
  152. String idActiv = "ACT_" + numero2;
  153. a.IDACTIVIDAD = idActiv;
  154. conexion.ACTIVIDAD.InsertOnSubmit(a);
  155. conexion.SubmitChanges();
  156. conexion.increm_ContadorIdActividad();
  157. return true;
  158. }
  159. catch (Exception e)
  160. {
  161. throw e.InnerException;
  162. }
  163. }
  164. internal bool contieneActividad(string observ, string idpr)
  165. {
  166. bool result = false;
  167. List<ACTIVIDAD> activ = this.getListActividad(idpr);
  168. foreach (ACTIVIDAD a in activ)
  169. {
  170. if (string.Equals(a.OBSERVACION,observ,StringComparison.CurrentCultureIgnoreCase))
  171. {
  172. result = true;
  173. break;
  174. }
  175. else
  176. {
  177. result = false;
  178. }
  179. }
  180. return result;
  181. }
  182. internal bool actualizaActividad(ACTIVIDAD act)
  183. {
  184. bool result = false;
  185. try
  186. {
  187. ACTIVIDAD actividad = conexion.ACTIVIDAD.Single(x => x.IDACTIVIDAD == act.IDACTIVIDAD);
  188. actividad.FECHADECONSULTA = act.FECHADECONSULTA;
  189. actividad.OBSERVACION = act.OBSERVACION;
  190. actividad.FECHAESTIMADAACTIVIDAD = act.FECHAESTIMADAACTIVIDAD;
  191. conexion.SubmitChanges();
  192. result = true;
  193. }
  194. catch (ArgumentNullException)
  195. {
  196. throw new ArgumentNullException();
  197. }
  198. return result;
  199. }
  200. internal bool eliminarActividad(string idactividad)
  201. {
  202. bool result = false;
  203. try
  204. {
  205. ACTIVIDAD actividad = conexion.ACTIVIDAD.Single(x => x.IDACTIVIDAD == idactividad);
  206. actividad.ELIMINADO = 1;
  207. conexion.SubmitChanges();
  208. result = true;
  209. }
  210. catch (ArgumentNullException)
  211. {
  212. throw new ArgumentNullException();
  213. }
  214. return result;
  215. }
  216. internal bool finalizaProyecto(string idProy, string idActi)
  217. {
  218. bool result = false;
  219. try
  220. {
  221. PROYECTO proyecto = conexion.PROYECTO.Single(x => x.IDPROYECTO == idProy);
  222. proyecto.ESTADO = "Finalizado";
  223. ACTIVIDAD actividad = conexion.ACTIVIDAD.Single(x => x.IDACTIVIDAD == idActi && x.ELIMINADO == 0);
  224. actividad.ESTADO = "Cierre";
  225. conexion.SubmitChanges();
  226. result = true;
  227. }
  228. catch(ArgumentNullException)
  229. {
  230. throw new ArgumentNullException();
  231. }
  232. return result;
  233. }
  234. }
  235. }