public ActionResult getTotalRequisicion(FormCollection fc) { //Solo SI el campo (fechaPropuesta) en la tabla licitaciones no ha pasado, se puede editar. JArray jsonConceptos = JArray.Parse(fc["conceptosAgregados"].ToString()); using (var db = new sgopEntities()) { double?total = 0; //Verifica que el IDConcepto sea correcto try { for (int i = 0; i < jsonConceptos.Count; i++) { var concepto = db.catalogoConceptos.Find(Convert.ToInt32(jsonConceptos[i]["idConcepto"])); total += Convert.ToDouble(jsonConceptos[i]["cantidad"]) * concepto.precioUnitario; } db.Dispose(); return(Content(total.ToString())); } catch (Exception) { db.Dispose(); return(Content("error")); } } }
public ActionResult AprobarRequisicion(FormCollection fc) { using (var db = new sgopEntities()) { try { //Guarda los valores enviados en las variables int noRequisicion = Convert.ToInt32(fc["noRequisicion"]); int idLicitacion = Convert.ToInt32(fc["idLicitacion"]); int idRequisicion = Convert.ToInt32(fc["idRequisicion"]); int idConcepto = Convert.ToInt32(fc["idConcepto"]); int idMaterial = Convert.ToInt32(fc["idMaterial"]); Rangos rango = new Rangos(); //Busca la requisición parcial para actualizarla a aprobada var reqParcial = db.requisicionesParciales.Where(rp => rp.idRequisicion == idRequisicion && rp.noRequisicion == noRequisicion && rp.idConcepto == idConcepto && rp.idMaterial == idMaterial && rp.cantidad > 0 && rp.aprobada.Equals("0")).First(); int idRequisicionParcial = reqParcial.idRequisicionParcial; reqParcial.aprobada = "1"; db.Entry(reqParcial).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); int noDcoumento = rango.getSiguienteID("FACTURACLIENTE");//Obtiene el noDocumento siguiente //Agrega la requisicion a la tabla control pagos controlPagos tCP = new controlPagos(); tCP.idRequisicionParcial = idRequisicionParcial; tCP.noDocumento = noDcoumento; tCP.idRequisicion = idRequisicion; tCP.clDocumento = "F"; tCP.fechaDocumento = DateTime.Now; tCP.usuarioCreacion = 1;//Cambiar cuando se agregue la sesión db.controlPagos.Add(tCP); db.SaveChanges(); db.Dispose(); return(Content(noDcoumento.ToString())); } catch (Exception e) { db.Dispose(); return(Content("error")); } } }
public ActionResult crearLicitacion(FormCollection fc) { Rangos rangos = new Rangos(); int idLicitacion = rangos.getSiguienteID("LICITACIONES"); string noLicitacion = fc["noLicitacion"]; int idMunicipio = Convert.ToInt32(fc["idMunicipio"]); string localidad = fc["localidad"]; string nombreObra = fc["nombreObra"]; string fechaVisita = fc["fechaVisita"].ToString(); string fechaAclaraciones = fc["fechaAclaraciones"]; string fechaPropuesta = fc["fechaPropuesta"]; string fechaFallo = fc["fechaFallo"]; int idEmpresa = Convert.ToInt32(fc["idEmpresa"]); //Conectamos BD para Llenar Table "Licitaciones" using (sgopEntities bd = new sgopEntities()) { //Formulario licitaciones tlicitaciones = new licitaciones(); tlicitaciones.idLicitacion = idLicitacion; tlicitaciones.noLicitacion = noLicitacion; tlicitaciones.idMunicipio = idMunicipio; tlicitaciones.localidad = localidad; tlicitaciones.nombreObra = nombreObra; tlicitaciones.idEmpresa = idEmpresa; //Convertir Stringo TO date string iDate = fechaVisita; DateTime oDate = Convert.ToDateTime(iDate); string iDate1 = fechaAclaraciones; DateTime oDate1 = Convert.ToDateTime(iDate1); string iDate2 = fechaPropuesta; DateTime oDate2 = Convert.ToDateTime(iDate2); string iDate3 = fechaFallo; DateTime oDate3 = Convert.ToDateTime(iDate3); // Sustituimos la conversion tlicitaciones.fechaVisita = oDate; tlicitaciones.fechaAclaraciones = oDate1; tlicitaciones.fechaPropuesta = oDate2; tlicitaciones.fechaFallo = oDate3; //Las opciones que no estan en formulario tlicitaciones.fechaModificacion = DateTime.Now; tlicitaciones.idEstatus = 1; tlicitaciones.actaVisita = ""; tlicitaciones.actaAclaraciones = ""; tlicitaciones.actaPropuesta = ""; tlicitaciones.actaFallo = ""; tlicitaciones.idRequisicion = 0; tlicitaciones.fechaCreacion = DateTime.Now; tlicitaciones.usuarioCreacion = 1; tlicitaciones.usuarioModificacion = 1; bd.licitaciones.Add(tlicitaciones); bd.SaveChanges(); bd.Dispose(); return(Json(new { a = true, b = "Guardado Con Exito" })); } } //Mandar ah llenar tabla licitaciones
public ActionResult Guarda_Licitacion(FormCollection fc) { int idLicitacion = Convert.ToInt32(fc["idLicitacion"]); string noLicitacion = fc["noLicitacion"]; int idMunicipio = Convert.ToInt32(fc["idMunicipio"]); string localidad = fc["localidad"]; //string nombreObra = fc["nombreObra"]; string fechaVisita = fc["fechaVisita"]; string fechaAclaraciones = fc["fechaAclaraciones"]; int idEmpresa = Convert.ToInt32(fc["idEmpresa"]); int idEstatus = Convert.ToInt32(fc["idEstatus"]); string fechaPropuesta = fc["fechaPropuesta"]; string fechaFallo = fc["fechaFallo"]; //Conectamos BD para Llenar Table "Licitaciones" using (sgopEntities bd = new sgopEntities()) { //Formulario var tlicitaciones = bd.licitaciones.Find(idLicitacion); tlicitaciones.noLicitacion = noLicitacion; tlicitaciones.idMunicipio = idMunicipio; tlicitaciones.localidad = localidad; //tlicitaciones.nombreObra = nombreObra; tlicitaciones.idEmpresa = idEmpresa; tlicitaciones.idEstatus = idEstatus; //Convertir Stringo TO date string iDate = fechaVisita; DateTime oDate = Convert.ToDateTime(iDate); string iDate1 = fechaAclaraciones; DateTime oDate1 = Convert.ToDateTime(iDate1); string iDate2 = fechaPropuesta; DateTime oDate2 = Convert.ToDateTime(iDate2); string iDate3 = fechaFallo; DateTime oDate3 = Convert.ToDateTime(iDate3); // Sustituimos la conversion de fechas de formulario tlicitaciones.fechaVisita = oDate; tlicitaciones.fechaAclaraciones = oDate1; tlicitaciones.fechaPropuesta = oDate2; tlicitaciones.fechaFallo = oDate3; //Las opciones que no estan en formulario tlicitaciones.fechaModificacion = DateTime.Now; //* tlicitaciones.fechaPropuesta = DateTime.Now; //tlicitaciones.fechaFallo = DateTime.Now; ///bd.licitaciones.Add(tlicitaciones); bd.Entry(tlicitaciones).State = System.Data.Entity.EntityState.Modified; bd.SaveChanges(); bd.Dispose(); return(Json(new { a = true, b = "Guardado Con Exito" })); } //------------------------------------------------------- }//recibe el FORMULARIO y confirma la modificacion
public ActionResult controlPagos(FormCollection formularioBusqueda) { licitacionesViewModel licitaciondb = new licitacionesViewModel(); int idLicitacion = Convert.ToInt32(formularioBusqueda["idLicitacion"].ToString()); int idRequisicionParcial; List <controlPagosViewModel> lstControlPagos = new List <controlPagosViewModel>(); if (formularioBusqueda["idRequisicionParcial"] != null) { idRequisicionParcial = Convert.ToInt32(formularioBusqueda["idRequisicionParcial"].ToString()); } else { idRequisicionParcial = 0; } using (var conexion = new sgopEntities()) { try { licitaciones consultaLicitacionesDB = conexion.licitaciones.Where(auxLicitaciones => auxLicitaciones.idLicitacion == idLicitacion).First(); licitaciondb.idLicitacion = consultaLicitacionesDB.idLicitacion; licitaciondb.idRequisicion = consultaLicitacionesDB.idRequisicion; licitaciondb.nombreObra = consultaLicitacionesDB.nombreObra; licitaciondb.localidad = consultaLicitacionesDB.localidad; licitaciondb.noLicitacion = consultaLicitacionesDB.noLicitacion; catalogoMunicipios consultaMunicipiosDB = conexion.catalogoMunicipios.Where( auxMunicipios => auxMunicipios.idMunicipio == consultaLicitacionesDB.idMunicipio).First(); licitaciondb.municipio = consultaMunicipiosDB.descripcion; licitaciondb.lstRequisicionesParciales = (from ca in conexion.requisicionesParciales join cb in conexion.controlPagos on ca.idRequisicionParcial equals cb.idRequisicionParcial where ca.idRequisicion == licitaciondb.idRequisicion && cb.idRequisicion == licitaciondb.idRequisicion select ca.noRequisicion ).Distinct().ToList(); lstControlPagos = consultaDocumentosPagos( conexion, Convert.ToInt32(licitaciondb.idRequisicion), idRequisicionParcial); ViewBag.lstControlPagos = lstControlPagos; conexion.Dispose(); return(View(licitaciondb)); } catch (Exception ex) { return(Content("Error al consultar la base de datos")); } } }
public ActionResult DesencriptaIDConcepto(FormCollection fc) { using (var db = new sgopEntities()) { try { MethodEncrypt me = new MethodEncrypt(); int idConcepto = Convert.ToInt32(me.getDecrypt(fc["idConceptoEncrypt"])); string[] data = new string[2]; var concepto = db.catalogoConceptos.Find(idConcepto); data[0] = idConcepto.ToString(); data[1] = (concepto.precioUnitario * Convert.ToDouble(fc["cantidad"])).ToString(); db.Dispose(); return(Json(data)); } catch (Exception) { return(Content("")); } } }
public ActionResult AddConceptoTablaTemp(FormCollection fc) { //Solo SI el campo (fechaPropuesta) en la tabla licitaciones no ha pasado, se puede editar. int IDConcepto = 0; double cantidad = 0; double? total = 0, subtotal; MethodEncrypt me = new MethodEncrypt(); string [] contenidoTabla = new string[4];//Guarda el body y el footer de la tabla catalogoConceptos concepto; DateTime fechaPropuesta = DateTime.Parse(fc["fechaPropuesta"]); JArray jsonConceptos = JArray.Parse(fc["conceptosAgregados"].ToString()); using (var db = new sgopEntities()) { //Verifica que el IDConcepto sea correcto try { for (int i = 0; i < jsonConceptos.Count; i++) { concepto = db.catalogoConceptos.Find(Convert.ToInt32(jsonConceptos[i]["idConcepto"])); total += Convert.ToDouble(jsonConceptos[i]["cantidad"]) * concepto.precioUnitario; } IDConcepto = Convert.ToInt32(me.getDecrypt(fc["idConceptoEncrypt"].ToString())); concepto = db.catalogoConceptos.Where(cc => cc.idConcepto == IDConcepto).First(); cantidad = Convert.ToDouble(fc["cantidad"].ToString()); subtotal = cantidad * concepto.precioUnitario; total += subtotal; //Body de la tabla contenidoTabla[0] = "<tr id='fila." + fc["idConceptoEncrypt"].ToString() + "'>"; contenidoTabla[0] += "<td>" + concepto.clave + "</td>"; contenidoTabla[0] += "<td>" + concepto.descripcion + "</td>"; contenidoTabla[0] += "<td>" + concepto.unidad + "</td>"; contenidoTabla[0] += "<td id='cantConcepto." + fc["idConceptoEncrypt"].ToString() + "'>" + cantidad + "</td>"; contenidoTabla[0] += "<td>" + concepto.precioUnitario + "</td>"; contenidoTabla[0] += "<td id='subtotal." + fc["idConceptoEncrypt"].ToString() + "'>" + subtotal + "</td>"; contenidoTabla[0] += "<td class='text-center'>"; contenidoTabla[0] += "<button onclick='editarCantidad(\"" + fc["idConceptoEncrypt"].ToString() + "\",\"" + cantidad + "\",\"" + concepto.descripcion + "\");' class='btn btn-success'>Editar <i class='fa fa-edit'></i></button>"; contenidoTabla[0] += "<button onclick='quitarConcepto(\"" + fc["idConceptoEncrypt"].ToString() + "\",\"" + concepto.descripcion + "\");' class='btn btn-danger'>Quitar <i class='fa fa-trash'></i></button>"; contenidoTabla[0] += "</td>"; contenidoTabla[0] += "</tr>"; //Footer de la tabla contenidoTabla[1] = "<tr>"; contenidoTabla[1] += "<td colspan='5' class='text-muted font-weight-bolder'>TOTAL</td>"; contenidoTabla[1] += "<td class='text-muted font-weight-bolder' id='total'>" + total + "</td>"; if (fechaPropuesta >= DateTime.Now) { contenidoTabla[1] += "<td class='text-muted font-weight-bolder'></td>"; } contenidoTabla[1] += "</tr>"; //IDConcepto AGREGADO contenidoTabla[2] = IDConcepto.ToString(); //cantidad AGREGADA contenidoTabla[3] = cantidad.ToString(); db.Dispose(); return(Json(contenidoTabla)); } catch (Exception) { contenidoTabla[0] = "error"; contenidoTabla[1] = "error"; db.Dispose(); return(Json(contenidoTabla)); } } }
public ActionResult Borrar_Doc(FormCollection fc) { JArray json = JArray.Parse(fc[0].ToString()); //int idLicitacion = Convert.ToInt32(fc["idLicitacion"]); //string id_licitacion = json[0]["id_licitacion"].ToString(); int id_licitacion = Convert.ToInt32(json[0]["id_licitacion"].ToString()); string visita = json[0]["visita"].ToString(); string aclaracion = json[0]["aclaracion"].ToString(); string propuesta = json[0]["propuesta"].ToString(); string fallo = json[0]["fallo"].ToString(); //****MSJ int bande = 0; //*** string visitaBorra = ""; string aclaracionBorra = ""; string propuestaBorra = ""; string falloBorra = ""; // SubirDoc subir = new SubirDoc(); // subir.Subir(path, doc1); BorrarArchivoJ borrar = new BorrarArchivoJ(); using (var db = new sgopEntities()) { var olicitacion = db.licitaciones.Find(id_licitacion); if (visita.Equals("1")) { visitaBorra = olicitacion.actaVisita; borrar.borrar(visitaBorra); olicitacion.actaVisita = ""; bande = 1; } if (aclaracion.Equals("1")) { aclaracionBorra = olicitacion.actaAclaraciones; borrar.borrar(aclaracionBorra); olicitacion.actaAclaraciones = ""; bande = 1; } if (propuesta.Equals("1")) { propuestaBorra = olicitacion.actaPropuesta; borrar.borrar(propuestaBorra); olicitacion.actaPropuesta = ""; bande = 1; } if (fallo.Equals("1")) { falloBorra = olicitacion.actaFallo; borrar.borrar(falloBorra); olicitacion.actaFallo = ""; bande = 1; } db.Entry(olicitacion).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); db.Dispose(); } if (bande == 0) { return(Json(new { a = false, b = "Gu" })); } else { return(Json(new { a = true, b = "Gu" })); } //return RedirectToAction("Index"); // return Content(""); }
public ActionResult Index(FormCollection fc) { int idLicitacion; MethodEncrypt me = new MethodEncrypt(); LicitacionesRequisicionesViewModel model = new LicitacionesRequisicionesViewModel(); List <CatalogoConceptosViewModel> lstConceptos = new List <CatalogoConceptosViewModel>(); List <CatalogoConceptosViewModel> lstUnidades = new List <CatalogoConceptosViewModel>(); List <LicitacionesRequisicionesViewModel> lstRequisiciones = new List <LicitacionesRequisicionesViewModel>(); using (var db = new sgopEntities()) { try { idLicitacion = Convert.ToInt32(fc["idLicitacion"].ToString()); var licitacion = db.licitaciones.Where(lic => lic.idLicitacion == idLicitacion).First(); var municipio = db.catalogoMunicipios.Where(mun => mun.idMunicipio == licitacion.idMunicipio).First(); var empresa = db.catalogoEmpresas.Where(emp => emp.idEmpresa == licitacion.idEmpresa).First(); model.idLicitacion = licitacion.idLicitacion; model.idLicitacionEncrypt = me.getEncrypt(fc["idLicitacion"].ToString()); model.idEmpresa = licitacion.idEmpresa; model.razonSocial = empresa.razonSocial; model.noLicitacion = licitacion.noLicitacion; model.nombreObra = licitacion.nombreObra; model.idMunicipio = licitacion.idMunicipio; model.nombreMunicipio = municipio.descripcion; model.localidad = licitacion.localidad; model.fechaVisita = licitacion.fechaVisita; model.fechaAclaraciones = licitacion.fechaAclaraciones; model.fechaPropuesta = licitacion.fechaPropuesta; model.fechaFallo = licitacion.fechaFallo; model.actaVisita = licitacion.actaVisita; model.actaAclaraciones = licitacion.actaAclaraciones; model.actaPropuesta = licitacion.actaPropuesta; model.actaFallo = licitacion.actaFallo; model.idEstatus = licitacion.idEstatus; model.idRequisicion = licitacion.idRequisicion; model.fechaCreacion = licitacion.fechaCreacion; model.usuarioCreacion = licitacion.usuarioCreacion; model.fechaModificacion = licitacion.fechaModificacion; model.usuarioModificacion = licitacion.usuarioModificacion; lstConceptos = (from cc in db.catalogoConceptos select new CatalogoConceptosViewModel { idConcepto = cc.idConcepto, idConceptoEncrypt = "", clave = cc.clave, descripcion = cc.descripcion, unidad = cc.unidad, precioUnitario = cc.precioUnitario }).ToList(); lstUnidades = (from c in db.catalogoConceptos orderby c.unidad ascending select new CatalogoConceptosViewModel { unidad = c.unidad }).Distinct().ToList(); lstRequisiciones = (from req in db.requisiciones join con in db.catalogoConceptos on req.idConcepto equals con.idConcepto where req.idRequisicionRango == licitacion.idRequisicion select new LicitacionesRequisicionesViewModel { idRequisicion = req.idRequisicion, idRequisicionRango = req.idRequisicionRango, idConcepto = req.idConcepto, idConceptoEncrypt = "", cantidad = req.cantidad, total = req.total, clave = con.clave, descripcion = con.descripcion, unidad = con.unidad, precioUnitario = con.precioUnitario }).ToList(); foreach (var item in lstRequisiciones) { item.idConceptoEncrypt = me.getEncrypt(item.idConcepto.ToString()); } ViewBag.lstConceptos = lstConceptos; ViewBag.lstRequisiciones = lstRequisiciones; ViewBag.lstUnidades = lstUnidades; db.Dispose(); } catch (Exception) { db.Dispose(); return(Redirect(Url.Content("~/Home"))); } } return(View(model)); }
public ActionResult GuardaRequisicion(FormCollection fc) { using (var db = new sgopEntities()) { try { MethodEncrypt me = new MethodEncrypt(); Rangos rango = new Rangos(); int idLicitacion = Convert.ToInt32(me.getDecrypt(fc["idLicitacionEncrypt"])); JArray jsonConceptosAgregados = JArray.Parse(fc["conceptosAgregar"].ToString()); var licitacion = db.licitaciones.Where(lic => lic.idLicitacion == idLicitacion).First(); List <RequisicionesMaterialesViewModel> lstMateriales = new List <RequisicionesMaterialesViewModel>(); int idRequisicionRango = (int)licitacion.idRequisicion; //Si la licitacion no tiene agregada la requisicion obtiene una nueva if (idRequisicionRango == 0) { idRequisicionRango = rango.getSiguienteID("REQUISICIONES"); //Actualiza la requisicion de la licitacion licitacion.idRequisicion = idRequisicionRango; db.Entry(licitacion).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } else { var requisicionesList = (db.requisiciones.Where(req => req.idRequisicionRango == idRequisicionRango)).ToList(); var reqMatList = db.requisicionesMateriales.Where(reqMat => reqMat.idRequisicion == idRequisicionRango).ToList(); //Si la cantidad de la lista enviada es diferente a la cantidad de las requisiciones que hay en la base de datos //Entonces elimina todas las requisiciones totales y materiales if (requisicionesList.Count != jsonConceptosAgregados.Count) { //Requisiciones totales foreach (var item in requisicionesList) { int? idConcepto = item.idConcepto; requisiciones requisicion = db.requisiciones.Where(req => req.idConcepto == idConcepto && req.idRequisicionRango == idRequisicionRango).First(); db.requisiciones.Remove(requisicion); db.SaveChanges(); } //Requisiciones Materiales foreach (var item in reqMatList) { requisicionesMateriales requisicionMat = db.requisicionesMateriales.Where(reqMat => reqMat.idRequisicion == idRequisicionRango).First(); db.requisicionesMateriales.Remove(requisicionMat); db.SaveChanges(); } } } for (int i = 0; i < jsonConceptosAgregados.Count; i++) { int idConcepto = Convert.ToInt32(jsonConceptosAgregados[i]["idConcepto"]); double cantidad = Convert.ToDouble(jsonConceptosAgregados[i]["cantidad"]); //Trae la requisicion donde haya ese idConcepto y ese idRequisicion try { //Si la encuentra, actualiza la cantidad de la requisicion con ese idConcepto y ese idRequisicion var requisicion = db.requisiciones.Where(r => r.idConcepto == idConcepto && r.idRequisicionRango == idRequisicionRango).First(); requisicion.cantidad = cantidad; db.Entry(requisicion).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); //Trae la lista de las requisiciones materiales para ese idConcepto y idRequisicion var requisicionMatLista = db.requisicionesMateriales.Where(rm => rm.idConcepto == idConcepto && rm.idRequisicion == idRequisicionRango).ToList(); //Recorre la lista foreach (var reqm in requisicionMatLista) { //Busca en la tabla relacionConceptosMateriales el idConcepto y idMaterial para obtener la cantidad necesaria var relConcMat = db.relacionConceptosMateriales.Where(rcm => rcm.idConcepto == idConcepto && rcm.idMaterial == reqm.idMaterial).First(); //Busca la requisicionMaterial que se va a actualizar var requisicionMat = db.requisicionesMateriales.Find(reqm.idRequisicionMaterial); requisicionMat.total = cantidad * relConcMat.cantidad;//Actualiza el total db.Entry(requisicionMat).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } catch (Exception) { //Si no la encuentra, guarda una nueva requisicion con ese idConcepto y ese idRequisicion var concepto = db.catalogoConceptos.Find(idConcepto); requisiciones tRequisiciones = new requisiciones(); tRequisiciones.idRequisicionRango = idRequisicionRango; tRequisiciones.idConcepto = idConcepto; tRequisiciones.cantidad = cantidad; tRequisiciones.total = concepto.precioUnitario * cantidad; db.requisiciones.Add(tRequisiciones); db.SaveChanges(); //Obtiene todos los materiales que se necesitan para ese idConcepto lstMateriales = (from mat in db.relacionConceptosMateriales where mat.idConcepto == idConcepto select new RequisicionesMaterialesViewModel { idRelacion = mat.idRelacion, idConcepto = mat.idConcepto, idMaterial = mat.idMaterial, cantidadMaterial = mat.cantidad }).ToList(); foreach (var relacion in lstMateriales) { requisicionesMateriales tReqMat = new requisicionesMateriales(); tReqMat.idRequisicion = idRequisicionRango; tReqMat.idConcepto = idConcepto; tReqMat.idMaterial = relacion.idMaterial; tReqMat.total = cantidad * relacion.cantidadMaterial; db.requisicionesMateriales.Add(tReqMat); db.SaveChanges(); } } } db.Dispose(); return(Content("requisicionGuardada")); } catch (Exception) { db.Dispose(); return(Content("noExisteLicitacion")); } } }
//Metodo para obtener el ID de acuerdo a lo que se envíe //Puede recibir: "LICITACIONES", "FACTURAPROPIA", "FACTURACLIENTE", "PROYECTOS", "REQUISICIONES", "EGRESOS", "INGRESOS" public int getSiguienteID(string idAObtener) { using (var db = new sgopEntities()) { List <RangosViewModel> listaID = null; rangos rango; int idDefinido, idSiguiente = 0, i = 0; int idMayor, idMenor; int[] idsArr = null; //Obtiene el rango de acuerdo al valor que se envía para buscar try { rango = db.rangos.Where(r => r.pertenceA.Equals(idAObtener)).First(); idDefinido = Convert.ToInt32(rango.rangoInicial); idSiguiente = idDefinido; } catch (Exception) { return(-1); } if (idAObtener.Equals("LICITACIONES")) { listaID = (from lic in db.licitaciones orderby lic.idLicitacion ascending select new RangosViewModel { idUsar = lic.idLicitacion }).ToList(); idsArr = new int[listaID.Count]; db.Dispose(); } else if (idAObtener.Equals("FACTURAPROPIA")) { listaID = (from cc in db.controlCobros where cc.clDocumento == "F" orderby cc.noDocumento ascending select new RangosViewModel { idUsar = cc.noDocumento }).ToList(); idsArr = new int[listaID.Count]; db.Dispose(); } else if (idAObtener.Equals("INGRESOS")) { listaID = (from cc in db.controlCobros where cc.clDocumento == "I" orderby cc.noDocumento ascending select new RangosViewModel { idUsar = cc.noDocumento }).ToList(); idsArr = new int[listaID.Count]; db.Dispose(); } else if (idAObtener.Equals("FACTURACLIENTE")) { listaID = (from cp in db.controlPagos where cp.clDocumento == "F" orderby cp.noDocumento ascending select new RangosViewModel { idUsar = cp.noDocumento }).ToList(); idsArr = new int[listaID.Count]; db.Dispose(); } else if (idAObtener.Equals("EGRESOS")) { listaID = (from cp in db.controlPagos where cp.clDocumento == "E" orderby cp.noDocumento ascending select new RangosViewModel { idUsar = cp.noDocumento }).ToList(); idsArr = new int[listaID.Count]; db.Dispose(); } else if (idAObtener.Equals("PROYECTOS")) { listaID = (from proy in db.proyectos orderby proy.idProyecto ascending select new RangosViewModel { idUsar = proy.idProyecto }).ToList(); idsArr = new int[listaID.Count]; db.Dispose(); } else if (idAObtener.Equals("REQUISICIONES")) { listaID = (from req in db.requisiciones orderby req.idRequisicionRango ascending select new RangosViewModel { idUsar = req.idRequisicionRango }).Distinct().ToList(); idsArr = new int[listaID.Count]; db.Dispose(); } else { db.Dispose(); return(-1); } if (listaID.Count > 0) { foreach (var item in listaID) { idsArr[i] = (int)item.idUsar; i++; } idMayor = idsArr.Max(); idMenor = idsArr.Min(); if (idDefinido < idMenor || idDefinido > idMayor) { idSiguiente = idDefinido; } else { foreach (var item in listaID) { if (item.idUsar == idSiguiente) { idSiguiente += 1; } if (item.idUsar > idSiguiente) { return(idSiguiente); } } } return(idSiguiente); } else { return(idDefinido); } } }
public ActionResult getPaggedDataConceptos(int pageNumber = 1, int pageSize = 10, string busqueda = "", string buscarPor = "", string conceptosAgregados = "") { List <CatalogoConceptosViewModel> listConceptos = new List <CatalogoConceptosViewModel>(); List <CatalogoConceptosViewModel> listConceptosAux = new List <CatalogoConceptosViewModel>(); List <CatalogoConceptosViewModel> listConceptosAux2 = new List <CatalogoConceptosViewModel>(); List <CatalogoConceptosViewModel> listConceptosAux3 = new List <CatalogoConceptosViewModel>(); MethodEncrypt me = new MethodEncrypt(); using (var db = new sgopEntities()) { if (busqueda.Equals("")) { listConceptos = (from cc in db.catalogoConceptos select new CatalogoConceptosViewModel { idConcepto = cc.idConcepto, idConceptoEncrypt = "", clave = cc.clave, descripcion = cc.descripcion, unidad = cc.unidad, precioUnitario = cc.precioUnitario }).ToList(); foreach (var item in listConceptos) { item.idConceptoEncrypt = me.getEncrypt(item.idConcepto.ToString()); } listConceptosAux = listConceptos; } else { listConceptos = (from cc in db.catalogoConceptos select new CatalogoConceptosViewModel { idConcepto = cc.idConcepto, idConceptoEncrypt = "", clave = cc.clave, descripcion = cc.descripcion, unidad = cc.unidad, precioUnitario = cc.precioUnitario }).ToList(); foreach (var item in listConceptos) { item.idConceptoEncrypt = me.getEncrypt(item.idConcepto.ToString()); if (item.clave.ToLower().Contains(busqueda.ToLower()) || item.descripcion.ToLower().Contains(busqueda.ToLower())) { listConceptosAux.Add(item); } } } if (buscarPor.Equals("todas")) { if (conceptosAgregados == "") { var pagedData = Pagination.PagedResult(listConceptosAux, pageNumber, pageSize); db.Dispose(); return(Json(pagedData, JsonRequestBehavior.AllowGet)); } else { JArray jsonConceptos = JArray.Parse(conceptosAgregados); listConceptosAux2 = listConceptosAux; for (int i = 0; i < jsonConceptos.Count; i++) { foreach (var item in listConceptosAux) { if (item.idConcepto == Convert.ToInt32(jsonConceptos[i]["idConcepto"])) { listConceptosAux2.Remove(item); break; } } } var pagedData = Pagination.PagedResult(listConceptosAux2, pageNumber, pageSize); db.Dispose(); return(Json(pagedData, JsonRequestBehavior.AllowGet)); } } else { foreach (var item in listConceptosAux) { if (item.unidad.ToLower().Equals(buscarPor.ToLower())) { listConceptosAux2.Add(item); } } if (conceptosAgregados == "") { var pagedData = Pagination.PagedResult(listConceptosAux2, pageNumber, pageSize); db.Dispose(); return(Json(pagedData, JsonRequestBehavior.AllowGet)); } else { JArray jsonConceptos = JArray.Parse(conceptosAgregados); listConceptosAux3 = listConceptosAux2; for (int i = 0; i < jsonConceptos.Count; i++) { foreach (var item in listConceptosAux2) { if (item.idConcepto == Convert.ToInt32(jsonConceptos[i]["idConcepto"])) { listConceptosAux3.Remove(item); break; } } } var pagedData = Pagination.PagedResult(listConceptosAux3, pageNumber, pageSize); db.Dispose(); return(Json(pagedData, JsonRequestBehavior.AllowGet)); } } } }
public ActionResult controlCobrosString(FormCollection formularioBusqueda) { licitacionesViewModel licitaciondb = new licitacionesViewModel(); int idLicitacion = Convert.ToInt32(formularioBusqueda["idLicitacion"].ToString()); int noEstimacion; List <ControlCobrosViewModel> lstControlCobros = new List <ControlCobrosViewModel>(); if (formularioBusqueda["noEstimacion"] != null) { noEstimacion = Convert.ToInt32(formularioBusqueda["noEstimacion"].ToString()); } else { noEstimacion = 0; } using (var conexion = new sgopEntities()) { try { licitaciones consultaLicitacionesDB = conexion.licitaciones.Where(auxLicitaciones => auxLicitaciones.idLicitacion == idLicitacion).First(); licitaciondb.idLicitacion = consultaLicitacionesDB.idLicitacion; licitaciondb.idRequisicion = consultaLicitacionesDB.idRequisicion; licitaciondb.nombreObra = consultaLicitacionesDB.nombreObra; licitaciondb.localidad = consultaLicitacionesDB.localidad; licitaciondb.noLicitacion = consultaLicitacionesDB.noLicitacion; catalogoMunicipios consultaMunicipiosDB = conexion.catalogoMunicipios.Where( auxMunicipios => auxMunicipios.idMunicipio == consultaLicitacionesDB.idMunicipio).First(); licitaciondb.municipio = consultaMunicipiosDB.descripcion; licitaciondb.lstEstimaciones = (from ca in conexion.controlCobros where ca.idRequisicion == licitaciondb.idRequisicion select ca.noEstimacion ).Distinct().ToList(); lstControlCobros = consultaDocumentosCobros( conexion, Convert.ToInt32(licitaciondb.idRequisicion), noEstimacion); int contador = 0; DateTime auxiliarFechas; string cadenaRegreso = ""; foreach (var registro in lstControlCobros) { contador = contador + 1; cadenaRegreso = cadenaRegreso + "<tr>"; if (registro.docCompensacion != null) { cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle' onclick='abrirModalCompensado();'>" + registro.noDocumento + "</td>"; } else { cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle' onclick='abrirModalCompensar(" + registro.noDocumento + ");'>" + registro.noDocumento + "</td>"; } cadenaRegreso = cadenaRegreso + "<td class='text-muted text-left small align-middle'> Estimacion No. " + registro.noEstimacion + "</td>"; cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'>" + registro.importe + "</td>"; cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'>" + registro.clDocumento + "</td>"; if (registro.fechaDocumento != null) { auxiliarFechas = (DateTime)registro.fechaDocumento; cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'>" + auxiliarFechas.ToString("MM/dd/yyyy") + "</td>"; } else { cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'>" + registro.fechaDocumento + "</td>"; } cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'>" + registro.docCompensacion + "</td>"; if (registro.fechaCompensacion != null) { auxiliarFechas = (DateTime)registro.fechaCompensacion; cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'>" + auxiliarFechas.ToString("MM/dd/yyyy") + "</td>"; } else { cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'>" + registro.fechaCompensacion + "</td>"; } cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small align-middle'><div class='custom-control custom-checkbox'>"; if (registro.factura != null) { cadenaRegreso = cadenaRegreso + "<input type = 'checkbox' class='custom-control-input' id='" + contador + "' name='" + contador + "' checked disabled/>"; } else { cadenaRegreso = cadenaRegreso + "<input type = 'checkbox' class='custom-control-input' id='" + contador + "' name='" + contador + "' disabled/>"; } cadenaRegreso = cadenaRegreso + "<label class='custom-control-label' for='" + contador + "'></div></label></td>"; cadenaRegreso = cadenaRegreso + "<td class='text-muted text-center small'><a class='btn btn-sm text-sm-center text-primary' data-toggle='modal' data-target='#modalCargarFactura'>"; cadenaRegreso = cadenaRegreso + "<i class='far fa-file'></i></a></td></tr>"; } conexion.Dispose(); return(Content(cadenaRegreso)); } catch (Exception ex) { return(Content("Error al consultar la base de datos")); } } }
}//recibe el FORMULARIO y confirma la modificacion public ActionResult Carga_Doc(HttpPostedFileBase doc1, HttpPostedFileBase doc2, HttpPostedFileBase doc3, HttpPostedFileBase doc4, FormCollection fc) { int idLicitacion = Convert.ToInt32(fc["idLicitacion"]); var link1 = ""; var link3 = ""; var link2 = ""; var link4 = ""; SubirDoc subir = new SubirDoc(); //Path para crear la direccion con el numero de la licitacion// string path1 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion; DirectoryInfo dir = new DirectoryInfo(path1); if (dir.Exists) { // var a = 1 + 1; string path3 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaVisita"); DirectoryInfo dir3 = new DirectoryInfo(path3); string path4 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaAclaraciones"); DirectoryInfo dir4 = new DirectoryInfo(path4); string path5 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaPropuesta"); DirectoryInfo dir5 = new DirectoryInfo(path5); string path6 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaFallo"); DirectoryInfo dir6 = new DirectoryInfo(path6); if (dir3.Exists) { if (doc1 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaVisita/"); path += doc1.FileName; subir.Subir(path, doc1); link1 = path; bool bande = subir.confirmacion; //******************************// } } else { dir3.Create(); if (doc1 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaVisita/"); path += doc1.FileName; subir.Subir(path, doc1); link1 = path; bool bande = subir.confirmacion; //******************************// } } if (dir4.Exists) { if (doc2 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaAclaraciones/"); path += doc2.FileName; subir.Subir(path, doc2); link2 = path; bool bande = subir.confirmacion; //******************************// } } else { dir4.Create(); if (doc2 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaAclaraciones/"); path += doc2.FileName; subir.Subir(path, doc2); link2 = path; bool bande = subir.confirmacion; //******************************// } } if (dir5.Exists) { if (doc3 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaPropuesta/"); path += doc3.FileName; subir.Subir(path, doc3); link3 = path; bool bande = subir.confirmacion; //******************************// } } else { dir5.Create(); if (doc3 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaPropuesta/"); path += doc3.FileName; subir.Subir(path, doc3); link3 = path; bool bande = subir.confirmacion; //******************************// } } if (dir6.Exists) { if (doc4 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaFallo/"); path += doc4.FileName; subir.Subir(path, doc4); link4 = path; bool bande = subir.confirmacion; //******************************// } } else { dir6.Create(); if (doc4 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaFallo/"); path += doc4.FileName; subir.Subir(path, doc4); link4 = path; bool bande = subir.confirmacion; //******************************// } } } else { // var n = 2 + 2; dir.Create(); string path3 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaVisita"); DirectoryInfo dir3 = new DirectoryInfo(path3); string path4 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaAclaraciones"); DirectoryInfo dir4 = new DirectoryInfo(path4); string path5 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaPropuesta"); DirectoryInfo dir5 = new DirectoryInfo(path5); string path6 = this.Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaFallo"); DirectoryInfo dir6 = new DirectoryInfo(path6); if (dir3.Exists) { if (doc1 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaVisita/"); path += doc1.FileName; subir.Subir(path, doc1); link1 = path; bool bande = subir.confirmacion; //******************************// } } else { dir3.Create(); if (doc1 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaVisita/"); path += doc1.FileName; subir.Subir(path, doc1); link1 = path; bool bande = subir.confirmacion; //******************************// } } if (dir4.Exists) { if (doc2 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaAclaraciones/"); path += doc2.FileName; subir.Subir(path, doc2); link2 = path; bool bande = subir.confirmacion; //******************************// } } else { dir4.Create(); if (doc2 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaAclaraciones/"); path += doc2.FileName; subir.Subir(path, doc2); link2 = path; bool bande = subir.confirmacion; //******************************// } } if (dir5.Exists) { if (doc3 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaPropuesta/"); path += doc3.FileName; subir.Subir(path, doc3); link3 = path; bool bande = subir.confirmacion; //******************************// } } else { dir5.Create(); if (doc3 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaPropuesta/"); path += doc3.FileName; subir.Subir(path, doc3); link3 = path; bool bande = subir.confirmacion; //******************************// } } if (dir6.Exists) { if (doc4 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaFallo/"); path += doc4.FileName; subir.Subir(path, doc4); link4 = path; bool bande = subir.confirmacion; //******************************// } } else { dir6.Create(); if (doc4 != null) { //METE DOCUMENTO EN LA LICITACION// string path = Server.MapPath("~/Res/docLicitacion/") + idLicitacion + ("/ActaFallo/"); path += doc4.FileName; subir.Subir(path, doc4); link4 = path; bool bande = subir.confirmacion; //******************************// } } } //**********************************************************************// using (var db = new sgopEntities()) { var olicitacion = db.licitaciones.Find(idLicitacion); if (doc1 != null) { olicitacion.actaVisita = link1; } if (doc2 != null) { olicitacion.actaAclaraciones = link2; } if (doc3 != null) { olicitacion.actaPropuesta = link3; } if (doc3 != null) { olicitacion.actaFallo = link4; } db.Entry(olicitacion).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); db.Dispose(); } //****************************BASE**************************************// return(RedirectToAction("Index")); }
// GET: EjecucionesMensuales public ActionResult Index() { using (var db = new sgopEntities()) { try { int idLicitacion = Convert.ToInt32(100002); //Del idLicitacion se obtiene el idRequisicion var requisicion = db.licitaciones.Where(req => req.idLicitacion == idLicitacion).First(); int idRequisicion = (int)requisicion.idRequisicion; //Del idLicitacion se obtiene el mes del contrato y el año del contrato var proyecto = db.proyectos.Where(proy => proy.idLicitacion == idLicitacion).First(); ViewBag.mesContrato = proyecto.fechaInicioContrato.Value.Month; ViewBag.anioContrato = proyecto.fechaInicioContrato.Value.Year; List <LicitacionesRequisicionesViewModel> lstConceptosEnRequisicion = new List <LicitacionesRequisicionesViewModel>(); List <EjecucionesMensualesViewModel> lstEjecuciones = new List <EjecucionesMensualesViewModel>(); LicitacionesRequisicionesViewModel model = new LicitacionesRequisicionesViewModel(); MethodEncrypt me = new MethodEncrypt(); //Obtiene la lista de conceptos que hay en esa requisicion ViewBag.lstConceptosEnRequisicion = (from req in db.requisiciones join conc in db.catalogoConceptos on req.idConcepto equals conc.idConcepto where req.idRequisicionRango == idRequisicion select new LicitacionesRequisicionesViewModel { idRequisicionRango = req.idRequisicionRango, idConcepto = req.idConcepto, cantidad = req.cantidad, total = req.total, descripcion = conc.descripcion, clave = conc.clave, unidad = conc.unidad, precioUnitario = conc.precioUnitario }).ToList(); //sirve para saber cuantas columnas se van a agregar a la tabla var lstEjecuciones2 = (from em in db.ejecucionesMensuales group em by em.idConcepto into g select new EjecucionesMensualesViewModel { idConcepto = g.Key, cantidad = 0 }).ToList(); //Obtiene la lista de ejecuciones mensuales que hay con esa requisicion lstEjecuciones = (from eM in db.ejecucionesMensuales join cc in db.catalogoConceptos on eM.idConcepto equals cc.idConcepto where eM.idRequisicion == idRequisicion select new EjecucionesMensualesViewModel { idEjecucion = eM.idEjecucion, periodo = eM.periodo, idRequisicion = eM.idRequisicion, idConcepto = eM.idConcepto, cantidad = eM.cantidad, clave = cc.clave, periodoMes = 0, periodoAnio = 0 }).ToList(); //sirve para saber cuantas columnas se van a agregar a la tabla foreach (var item in lstEjecuciones2) { foreach (var item2 in lstEjecuciones) { if (item.idConcepto == item2.idConcepto) { item.cantidad += 1; } } } //Descompone el periodo en mes y año foreach (var item in lstEjecuciones) { item.periodoMes = Convert.ToInt32(item.periodo.Substring(0, 2)); item.periodoAnio = Convert.ToInt32(item.periodo.Substring(3, 2)); } ViewBag.lstEjecuciones = lstEjecuciones; ViewBag.cantColumnas = lstEjecuciones2.Max(e => e.cantidad);//Cantidad de columnas a agregar var licitacion = db.licitaciones.Where(lic => lic.idLicitacion == idLicitacion).First(); var municipio = db.catalogoMunicipios.Where(mun => mun.idMunicipio == licitacion.idMunicipio).First(); var empresa = db.catalogoEmpresas.Where(emp => emp.idEmpresa == licitacion.idEmpresa).First(); model.idLicitacion = licitacion.idLicitacion; model.idLicitacionEncrypt = me.getEncrypt(licitacion.idLicitacion.ToString()); model.idRequisicionRango = licitacion.idRequisicion; model.idEmpresa = licitacion.idEmpresa; model.razonSocial = empresa.razonSocial; model.noLicitacion = licitacion.noLicitacion; model.nombreObra = licitacion.nombreObra; model.idMunicipio = licitacion.idMunicipio; model.nombreMunicipio = municipio.descripcion; model.localidad = licitacion.localidad; model.fechaVisita = licitacion.fechaVisita; model.fechaAclaraciones = licitacion.fechaAclaraciones; model.fechaPropuesta = licitacion.fechaPropuesta; model.fechaFallo = licitacion.fechaFallo; model.actaVisita = licitacion.actaVisita; model.actaAclaraciones = licitacion.actaAclaraciones; model.actaPropuesta = licitacion.actaPropuesta; model.actaFallo = licitacion.actaFallo; model.idEstatus = licitacion.idEstatus; model.idRequisicion = licitacion.idRequisicion; model.fechaCreacion = licitacion.fechaCreacion; model.usuarioCreacion = licitacion.usuarioCreacion; model.fechaModificacion = licitacion.fechaModificacion; model.usuarioModificacion = licitacion.usuarioModificacion; db.Dispose(); return(View(model)); } catch (Exception) { db.Dispose(); return(Content("noExisteLicitacion")); } } }
public ActionResult Index(FormCollection fc) { using (var db = new sgopEntities()) { try { int idLicitacion = Convert.ToInt32(fc["idLicitacion"]); //Del idLicitacion se obtiene el idRequisicion var requisicion = db.licitaciones.Where(req => req.idLicitacion == idLicitacion).First(); int idRequisicion = (int)requisicion.idRequisicion; double acumulado = 0; LicitacionesRequisicionesViewModel model = new LicitacionesRequisicionesViewModel(); List <RequisicionesParcialesViewModel> lstReqParciales = new List <RequisicionesParcialesViewModel>(); List <RequisicionesParcialesViewModel> lstReqParcialesDistinct = new List <RequisicionesParcialesViewModel>(); List <LicitacionesRequisicionesViewModel> lstRequisiciones = new List <LicitacionesRequisicionesViewModel>(); MethodEncrypt me = new MethodEncrypt(); var licitacion = db.licitaciones.Where(lic => lic.idLicitacion == idLicitacion).First(); var municipio = db.catalogoMunicipios.Where(mun => mun.idMunicipio == licitacion.idMunicipio).First(); var empresa = db.catalogoEmpresas.Where(emp => emp.idEmpresa == licitacion.idEmpresa).First(); var proyecto = db.proyectos.Where(proy => proy.idLicitacion == idLicitacion).First(); model.idLicitacion = licitacion.idLicitacion; model.idProyecto = proyecto.idProyecto; model.idLicitacionEncrypt = me.getEncrypt(licitacion.idLicitacion.ToString()); model.idRequisicionRango = licitacion.idRequisicion; model.idEmpresa = licitacion.idEmpresa; model.razonSocial = empresa.razonSocial; model.noLicitacion = licitacion.noLicitacion; model.nombreObra = licitacion.nombreObra; model.idMunicipio = licitacion.idMunicipio; model.nombreMunicipio = municipio.descripcion; model.localidad = licitacion.localidad; model.fechaVisita = licitacion.fechaVisita; model.fechaAclaraciones = licitacion.fechaAclaraciones; model.fechaPropuesta = licitacion.fechaPropuesta; model.fechaFallo = licitacion.fechaFallo; model.actaVisita = licitacion.actaVisita; model.actaAclaraciones = licitacion.actaAclaraciones; model.actaPropuesta = licitacion.actaPropuesta; model.actaFallo = licitacion.actaFallo; model.idEstatus = licitacion.idEstatus; model.idRequisicion = licitacion.idRequisicion; model.fechaCreacion = licitacion.fechaCreacion; model.usuarioCreacion = licitacion.usuarioCreacion; model.fechaModificacion = licitacion.fechaModificacion; model.usuarioModificacion = licitacion.usuarioModificacion; //Obtiene las requisiciones parciales con el idRequisicion lstReqParciales = (from reqp in db.requisicionesParciales join mat in db.catalogoMateriales on reqp.idMaterial equals mat.idMaterial join cc in db.catalogoConceptos on reqp.idConcepto equals cc.idConcepto where reqp.idRequisicion == idRequisicion && reqp.noRequisicion == 1 select new RequisicionesParcialesViewModel { idRequisicionParcial = reqp.idRequisicionParcial, idRequisicionRango = reqp.idRequisicion, idRequisicionRangoEncrypt = "", noRequisicion = reqp.noRequisicion, idConcepto = reqp.idConcepto, idMaterial = reqp.idMaterial, cantidad = reqp.cantidad, aprobada = reqp.aprobada, descripcionMaterial = mat.descripcion, claveConcepto = cc.clave, descripcionConcepto = cc.descripcion, unidadConcepto = cc.unidad, precioUnitario = cc.precioUnitario, cantReqXcantMat = 0, cantidadDisponible = 0 }).ToList(); //Recorre la lista de requisiciones parciales para guardar las cantidades totales foreach (var item in lstReqParciales) { //Busca en la relacionConceptosMateriales el idConcepto y idMaterial, para obtener la cantidad necesaria de material para ese concepto por unidad var relConcMat = db.relacionConceptosMateriales.Where(au => au.idConcepto == item.idConcepto && au.idMaterial == item.idMaterial).First(); //Busca en las requisiciones el idConcepto y el idRequisicionRango, para obtener la cantidad que se necesita de ese concepto var req = db.requisiciones.Where(au => au.idConcepto == item.idConcepto && au.idRequisicionRango == idRequisicion).First(); item.idRequisicionRangoEncrypt = me.getEncrypt(item.idRequisicionRango.ToString()); //Encripta el idRequisicion item.cantReqXcantMat = relConcMat.cantidad * req.cantidad; //Guarda la cantidad total de ese concepto a requerir item.cantidadDisponible = item.cantReqXcantMat; //La cantidad disponible es la misma de la multiplicacion (mas adelante se actualiza) } //Recorre la lista de las requisiciones parciales encontradas foreach (var reqPar in lstReqParciales) { //Recorre la lista de requisiciones parciales encontradas foreach (var reqParcDi in lstReqParciales) { //Compara el idConcepto y idMaterial de ambas listas if (reqPar.idConcepto == reqParcDi.idConcepto && reqPar.idMaterial == reqParcDi.idMaterial) { acumulado += (double)reqParcDi.cantidad;//Guarda la cantidad de la requisicion parcial } } reqPar.cantidadDisponible -= acumulado;//A la cantidad disponible le resta la misma cantidad menos el acumulado acumulado = 0; } //Guarda esta variable para hacer el recorrido en la vista y pintar los conceptos y materiales ViewBag.lstReqParcialesDistinct = (from reqp in db.requisicionesParciales orderby reqp.noRequisicion descending where reqp.idRequisicion == idRequisicion select new RequisicionesParcialesViewModel { noRequisicion = reqp.noRequisicion }).Distinct().ToList(); //Guarda esta variable para hacer el recorrido en la vista y pintar los conceptos y materiales ViewBag.lstRequisicionesDistinct = (from req in db.requisiciones join rcm in db.relacionConceptosMateriales on req.idConcepto equals rcm.idConcepto join cm in db.catalogoMateriales on rcm.idMaterial equals cm.idMaterial join con in db.catalogoConceptos on req.idConcepto equals con.idConcepto where req.idRequisicionRango == idRequisicion select new LicitacionesRequisicionesViewModel { idConcepto = req.idConcepto }).Distinct().ToList(); //Busca los materiales necesarios para cada concepto que hay en la requisicion con el idRequisicion que se le envía lstRequisiciones = (from req in db.requisiciones join rcm in db.relacionConceptosMateriales on req.idConcepto equals rcm.idConcepto join cm in db.catalogoMateriales on rcm.idMaterial equals cm.idMaterial join con in db.catalogoConceptos on req.idConcepto equals con.idConcepto where req.idRequisicionRango == idRequisicion select new LicitacionesRequisicionesViewModel { idRequisicion = req.idRequisicion, idRequisicionRango = req.idRequisicionRango, idRequisicionEncrypt = "", idConcepto = req.idConcepto, idConceptoEncrypt = "", cantReq = req.cantidad, cantMat = rcm.cantidad, cantReqXcantMat = 0, total = req.total, clave = con.clave, descripcion = con.descripcion, descripcionMaterial = cm.descripcion, unidad = con.unidad, precioUnitario = con.precioUnitario, idMaterial = cm.idMaterial }).ToList(); foreach (var item in lstRequisiciones) { item.idConceptoEncrypt = me.getEncrypt(item.idConcepto.ToString()); //Encripta el idConcepto item.idRequisicionEncrypt = me.getEncrypt(item.idRequisicionRango.ToString()); //Encripta el idRequisicion item.cantReqXcantMat = item.cantReq * item.cantMat; //Multiplica la cantidad pedida en la requisicion por la cantidad necesaria de material } ViewBag.lstRequisiciones = lstRequisiciones; //Guarda la variable para recorrerla en la vista ViewBag.lstReqParciales = lstReqParciales; //Guarda la variable para recorrerla en la vista db.Dispose(); return(View(model)); } catch (Exception) { db.Dispose(); return(Content("noExisteLicitacion")); } } }
public ActionResult GuardaRequisicion(FormCollection fc) { MethodEncrypt me = new MethodEncrypt(); List <RequisicionesParcialesViewModel> lstReqParciales = new List <RequisicionesParcialesViewModel>(); int idLicitacion = 0; int idRequisicion = 0; int hayRequisiciones = 0; int noReqInt = 1; JArray jsonRequisiciones = null; //VERIFICA QUE EXISTA LA LICITACION Y LA REQUISICION using (var db = new sgopEntities()) { try { idLicitacion = Convert.ToInt32(fc["idLicitacion"]); db.licitaciones.Where(lic => lic.idLicitacion == idLicitacion).First(); idRequisicion = Convert.ToInt32(fc["idRequisicion"]); db.licitaciones.Where(lic => lic.idLicitacion == idLicitacion && lic.idRequisicion == idRequisicion).First(); db.Dispose(); } catch (Exception) { db.Dispose(); return(Content("noExisteLicitacionReq")); } } //VERIFICA SI ES REQUISICION NUEVA O YA EXISTENTE if (fc["noRequisicion"] != null && fc["noRequisicion"].Equals("nueva")) { jsonRequisiciones = JArray.Parse(fc["requisicionesAgregadas"].ToString()); if (jsonRequisiciones.Count == 0) { return(Content("nadaParaGuardar")); } using (var db = new sgopEntities()) { //Verifica que haya al menos un material por agregar for (int i = 0; i < jsonRequisiciones.Count; i++) { if (jsonRequisiciones[i]["agregado"].ToString().Equals("1")) { hayRequisiciones = 1; } } if (hayRequisiciones == 0) { return(Content("nadaParaGuardar")); } lstReqParciales = (from reqp in db.requisicionesParciales orderby reqp.noRequisicion descending where reqp.idRequisicion == idRequisicion select new RequisicionesParcialesViewModel { noRequisicion = reqp.noRequisicion }).Distinct().ToList(); foreach (var item in lstReqParciales) { noReqInt += 1; } for (int i = 0; i < jsonRequisiciones.Count; i++) { //Si no se eliminó de la tabla, agrega la requisicion if (jsonRequisiciones[i]["agregado"].ToString().Equals("1")) { int idConcepto = Convert.ToInt32(jsonRequisiciones[i]["idConcepto"]); int idMaterial = Convert.ToInt32(jsonRequisiciones[i]["idMaterial"]); double cantidad = Convert.ToDouble(jsonRequisiciones[i]["cantidad"]); requisicionesParciales tReqParc = new requisicionesParciales(); tReqParc.idRequisicion = idRequisicion; tReqParc.noRequisicion = noReqInt; tReqParc.idConcepto = idConcepto; tReqParc.idMaterial = idMaterial; tReqParc.cantidad = cantidad; tReqParc.aprobada = "0"; db.requisicionesParciales.Add(tReqParc); db.SaveChanges(); } } } } else { jsonRequisiciones = JArray.Parse(fc["requisicionesAgregadas"].ToString()); if (jsonRequisiciones.Count == 0) { return(Content("nadaParaGuardar")); } try { noReqInt = Convert.ToInt32(fc["noRequisicion"]); } catch (Exception) { return(Content("noExisteLicitacionReq")); } using (var db = new sgopEntities()) { for (int i = 0; i < jsonRequisiciones.Count; i++) { int idConcepto = Convert.ToInt32(jsonRequisiciones[i]["idConcepto"]); int idMaterial = Convert.ToInt32(jsonRequisiciones[i]["idMaterial"]); double cantidad = Convert.ToDouble(jsonRequisiciones[i]["cantidad"]); //Si existe la requisicion parcial con el idRequisicion, noRequisicion, idConcepto y idMaterial enviados //Actualiza la requisicion try { //Si no se eliminó de la tabla, actualiza la cantidad de la requisicion if (jsonRequisiciones[i]["agregado"].ToString().Equals("1")) { var reqParc = db.requisicionesParciales.Where(rp => rp.idRequisicion == idRequisicion && rp.noRequisicion == noReqInt && rp.idConcepto == idConcepto && rp.idMaterial == idMaterial).First(); if (reqParc.aprobada.Equals("0")) { reqParc.cantidad = cantidad; db.Entry(reqParc).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } //Si se eliminó de la tabla, pone la requisicion en 0 else { try { var reqParc = db.requisicionesParciales.Where(rp => rp.idRequisicion == idRequisicion && rp.noRequisicion == noReqInt && rp.idConcepto == idConcepto && rp.idMaterial == idMaterial).First(); if (reqParc.aprobada.Equals("0")) { reqParc.cantidad = 0; db.Entry(reqParc).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } catch (Exception) { } } } //Si no existe, agrega una nueva requisicion catch (Exception) { requisicionesParciales tReqParc = new requisicionesParciales(); tReqParc.idRequisicion = idRequisicion; tReqParc.noRequisicion = noReqInt; tReqParc.idConcepto = idConcepto; tReqParc.idMaterial = idMaterial; tReqParc.cantidad = cantidad; tReqParc.aprobada = "0"; db.requisicionesParciales.Add(tReqParc); db.SaveChanges(); } } } } return(Content("requisicionGuardada")); }