public static Contrato getDetalleContrato(int idContrato) { Contrato res = null; DateTime t; NpgsqlDataReaderWithConection lector = null; try { lector = DBConector.SELECT("SELECT contrato.id_contrato, nombre_cliente, breve_descripcion, fecha_inicio_contrato, fecha_caducidad_contrato, rut_cliente FROM contrato NATURAL JOIN cliente WHERE id_contrato=" + idContrato); while (lector.Read()) { res = new Contrato(); res.id_contrato = lector["id_contrato"]; res.nombreCliente = lector["nombre_cliente"]; res.breve_descripcion = lector["breve_descripcion"]; t = lector.GetDateTime(3); res.dia_ini_contrato = t.Day.ToString(); res.mes_ini_contrato = t.Month.ToString(); res.agno_ini_contrato = t.Year.ToString(); if (lector.IsDBNull(4)) { res.tieneTermino = "false"; } else { res.tieneTermino = "true"; t = lector.GetDateTime(4); res.dia_caducidad_contrato = t.Day.ToString(); res.mes_caducidad_contrato = t.Month.ToString(); res.agno_caducidad_contrato = t.Year.ToString(); } } } catch (Exception) { } if (lector != null) { lector.CloseTodo(); } return res; }
public ActionResult agregarContrato(Contrato nvoContrato, string nombre_cliente, string btn_cargar, string btn_agregarServicio, string precioPorContrato, string condicion_servicio, string btn_agregarContrato, string tieneTermino_contrato) { ViewBag.listaPerfiles = perfilTrabajadorModel.getListaPerfilesTrabajadores(); ViewBag.listaDias = getListaDias(); ViewBag.listaMeses = getListaMeses(); ViewBag.listaServicios = Contrato.getAllServicios(); int idServicio = 0; if (Int32.TryParse(nvoContrato.servicioSeleccionado, out idServicio)) { //ViewBag.selectedServicio = idServicio.ToString(); if (idServicio > 0) { ViewBag.precioReferencia = Contrato.getPrecioServicio(idServicio).ToString(); } else ViewBag.precioReferencia = "0"; } else { ViewBag.precioReferencia = "0"; } if (btn_cargar != null) { ViewBag.listaServiciosAgregados = Session["listaServicios"]; if (btn_cargar.Equals("Cargar")) //Se esta cargando un cliente { if (ModelState.IsValidField("rutCliente")) { int rut = 0; bool satisf = false; if (!Int32.TryParse(nvoContrato.rutCliente, out rut)) { ModelState.Clear(); ModelState.AddModelError("rutCliente", "El rut ingresado no es válido"); ViewBag.nombreCliente = ""; } else { ViewBag.nombreCliente = Contrato.getNombreCliente(rut, out satisf); if (!satisf) { ModelState.Clear(); ModelState.AddModelError("rutCliente", "El rut insertado no existe"); } } } else { string mensaje = "El rut ingresado no es válido"; ModelState.Clear(); ModelState.AddModelError("rutCliente", mensaje); } } } else if (btn_agregarServicio != null) { ModelState.Clear(); int enteroTemp = 0; if (!Int32.TryParse(nvoContrato.servicioSeleccionado, out enteroTemp)) { string mensaje = "El servicio seleccionado no es válido"; ModelState.AddModelError("servicioSeleccionado", mensaje); } else if (enteroTemp < 0) { string mensaje = "El servicio seleccionado no es válido"; ModelState.AddModelError("servicioSeleccionado", mensaje); } else if (!Int32.TryParse(precioPorContrato, out enteroTemp)) { string mensaje = "El precio del servicio no es válido"; ModelState.AddModelError("precioPorContrato", mensaje); } else if (enteroTemp < 0) { string mensaje = "El precio del servicio no es válido"; ModelState.AddModelError("precioPorContrato", mensaje); } else { List<ServicioListado> listaTemp = null; if (Session["listaServicios"] == null) { listaTemp = new List<ServicioListado>(); Session["listaServicios"] = listaTemp; } else { listaTemp = (List<ServicioListado>)Session["listaServicios"]; } idServicio = 0; if (Int32.TryParse(nvoContrato.servicioSeleccionado, out idServicio)) { //ViewBag.selectedServicio = idServicio.ToString(); ViewBag.precioReferencia = Contrato.getPrecioServicio(idServicio).ToString(); } else { ViewBag.precioReferencia = "0"; } ServicioListado servicioNvo = new ServicioListado(); servicioNvo.descripcion = condicion_servicio; int idServicioSeleccionado = 0; Int32.TryParse(nvoContrato.servicioSeleccionado, out idServicioSeleccionado); servicioNvo.nombre_servicio = ServicioListado.getNombreServicio(idServicioSeleccionado); servicioNvo.precio_acordado = precioPorContrato; servicioNvo.id_servicio = nvoContrato.servicioSeleccionado; bool esta = false; foreach (ServicioListado servTemp in listaTemp) { if (servTemp.id_servicio.Equals(servicioNvo.id_servicio)) { esta = true; } } if (esta) { ModelState.AddModelError("servicioSeleccionado", "El servicio seleccionado ya estaba agregado"); } else { listaTemp.Add(servicioNvo); } ViewBag.listaServiciosAgregados = listaTemp; } } else if (btn_agregarContrato != null) //Agrego el contrato { if (ModelState.IsValidField("rutCliente")) { int rut = 0; bool satisf = false; if (!Int32.TryParse(nvoContrato.rutCliente, out rut)) { ModelState.Clear(); ModelState.AddModelError("rutCliente", "El rut ingresado no es válido"); ViewBag.nombreCliente = ""; } else { ViewBag.nombreCliente = Contrato.getNombreCliente(rut, out satisf); if (!satisf) { ModelState.Clear(); ModelState.AddModelError("rutCliente", "El rut insertado no existe"); } else { List<ServicioListado> listaTemp; if (Session["listaServicios"] == null) { ViewBag.respuestaPost = "No posee una lista de servicios para el nuevo contrato"; } else if (((List<ServicioListado>)Session["listaServicios"]).Count == 0) { ViewBag.respuestaPost = "Posee una lista de servicios para el nuevo contrato vacia"; } else { listaTemp = (List<ServicioListado>)Session["listaServicios"]; //ahora compruebo las fechas de contrato int agnoInt = 0; if (Int32.TryParse(nvoContrato.agno_ini_contrato, out agnoInt)) { if ((agnoInt >= 1900) && (agnoInt <= 2100)) { string fecha_ini = nvoContrato.dia_ini_contrato + "-" + nvoContrato.mes_ini_contrato + "-" + nvoContrato.agno_ini_contrato; string fecha_fin = null; //Camino CORRECTO HASTA AHORA if (tieneTermino_contrato.Contains("true")) { //Camino correcto, tomo en cuenta la fecha de fin del contrato fecha_fin = nvoContrato.dia_caducidad_contrato + "-" + nvoContrato.mes_caducidad_contrato + "-" + nvoContrato.agno_caducidad_contrato; } else { //Camino correcto, no tomo en cuenta la fecha de fin de contrato } ViewBag.respuestaPost = "Se ha creado el contrato"; if (Contrato.insertContrato(rut, fecha_ini, fecha_fin, nvoContrato.breve_descripcion, listaTemp) <= 0) { ViewBag.respuestaPost = "No se ha podido realizar la creación del contrato"; } //CAMINO FELIZ return RedirectToAction("Index", "home"); } else { ModelState.AddModelError("agno_ini_contrato", "El año de inicio de contrato no está en el rango"); } } else { ModelState.AddModelError("agno_ini_contrato", "El año de inicio de contrato no es válido"); } } } } } else { string mensaje = "El rut ingresado no es válido"; ModelState.Clear(); ModelState.AddModelError("rutCliente", mensaje); } List<ServicioListado> listaTemp2 = null; if (Session["listaServicios"] == null) { listaTemp2 = new List<ServicioListado>(); Session["listaServicios"] = listaTemp2; } else { listaTemp2 = (List<ServicioListado>)Session["listaServicios"]; } ViewBag.listaServiciosAgregados = listaTemp2; } else { //Verifico si es un botón "quitar" NameValueCollection col = Request.Params; int idServ = 0; string nombreParam = "", idServStr; for (int i = 0; i < Request.Params.Count; i++) { nombreParam = col.GetKey(i); //Con esto accedo al nombre del parámetro if (nombreParam.Contains("quitar_")) //Con esto omito los parámetros que no me importan { if (Session["listaServicios"] != null) { idServStr = nombreParam.Substring("quitar_".Length); if (Int32.TryParse(idServStr, out idServ)) { List<ServicioListado> listaTemp = (List<ServicioListado>)Session["listaServicios"]; bool encontrado = false; int posicion = 0; foreach (ServicioListado temp in listaTemp) { if (temp.id_servicio.Equals(idServStr)) { encontrado = true; break; } posicion++; } if (encontrado) { listaTemp.RemoveAt(posicion); ViewBag.respuestaPost = "Se ha quitado el servicio de la lista de servicios para el contrato"; } else { ViewBag.respuestaPost = "El servicio no estaba agregado a la lista de servicios para el contrato"; } } } } } ViewBag.listaServiciosAgregados = Session["listaServicios"]; ModelState.Clear(); idServicio = 0; if (Int32.TryParse(nvoContrato.servicioSeleccionado, out idServicio)) { //ViewBag.selectedServicio = idServicio.ToString(); ViewBag.precioReferencia = Contrato.getPrecioServicio(idServicio).ToString(); } else { ViewBag.precioReferencia = "0"; } return View(nvoContrato); } return View(nvoContrato); }
public ActionResult Contratos(Contrato contrato) { ModelState.Clear(); int idContrato = -1; if (!Int32.TryParse(contrato.id_contrato, out idContrato)) { ModelState.AddModelError("id_contrato", "N° de contrato no válido"); } ViewBag.listaContratos = Contrato.getAllContratos(); ViewBag.contratoDetallado = Contrato.getDetalleContrato(idContrato); ViewBag.serviciosDelContrato = Contrato.getServiciosDelContrato(idContrato); return View(contrato); }
public static List<Contrato> getContratosSegunCliente(int id_cliente) { List<Contrato> items = new List<Contrato>(); NpgsqlDataReaderWithConection contratos = null; Contrato temp; try { contratos = DBConector.SELECT("SELECT id_contrato, breve_descripcion FROM contrato WHERE fecha_inicio_contrato < '" + DateTime.Now + "' AND (fecha_caducidad_contrato > '" + DateTime.Now + "' OR fecha_caducidad_contrato IS NULL) AND id_cliente = " + id_cliente); while (contratos.Read()) { temp = new Contrato(); temp.breve_descripcion = contratos["breve_descripcion"]; temp.id_contrato = contratos["id_contrato"]; items.Add(temp); } } catch (Exception) { } if (contratos != null) { contratos.CloseTodo(); } return items; }