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"));
                }
            }
        }
Ejemplo n.º 2
0
        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
Ejemplo n.º 5
0
        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"));
                }
            }
        }
Ejemplo n.º 11
0
    //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));
                    }
                }
            }
        }
Ejemplo n.º 13
0
        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"));
        }
Ejemplo n.º 15
0
        // 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"));
                }
            }
        }
Ejemplo n.º 16
0
        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"));
                }
            }
        }
Ejemplo n.º 17
0
        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"));
        }