Пример #1
0
        public ActionResult update(int?id, int?menu)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            perfiltipocompra perfilBuscado = context.perfiltipocompra.FirstOrDefault(x => x.id == id);

            if (perfilBuscado == null)
            {
                return(HttpNotFound());
            }

            System.Collections.Generic.List <perfilbodegastipocompra> bodegas = context.perfilbodegastipocompra.Where(x => x.idTipoCompra == perfilBuscado.id).ToList();
            string bodegasString = "";
            bool   primera       = true;

            foreach (perfilbodegastipocompra item in bodegas)
            {
                if (primera)
                {
                    bodegasString += item.idBodega;
                    primera        = !primera;
                }
                else
                {
                    bodegasString += "," + item.idBodega;
                }
            }

            ViewBag.paramcontablenombres =
                new SelectList(
                    context.paramcontablenombres.OrderBy(x => x.descripcion_parametro).Where(x => x.id != 19), "id",
                    "descripcion_parametro");
            ViewBag.cuentas_puc          = context.cuenta_puc.OrderBy(x => x.cntpuc_descp).Where(x => x.esafectable).ToList();
            ViewBag.centroCosto          = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
            ViewBag.vconceptocompra      = context.vconceptocompra.OrderBy(x => x.descripcion).ToList();
            ViewBag.tipoCompra           = perfilBuscado.idTipo;
            ViewBag.bodegasSeleccionadas = bodegasString;
            BuscarFavoritos(menu);
            return(View(perfilBuscado));
        }
Пример #2
0
        public ActionResult Create(perfiltipocompra modelo, int?menu)
        {
            string bodegasSeleccionadas = Request["bodccs_cod"];

            if (ModelState.IsValid)
            {
                perfiltipocompra buscarPorCodigo = context.perfiltipocompra.FirstOrDefault(x => x.idTipo == modelo.idTipo);
                if (buscarPorCodigo != null)
                {
                    TempData["mensaje_error"] =
                        "El codigo ingresado ya se encuentra registrado para ese tipo de compra!";
                }
                else
                {
                    if (string.IsNullOrEmpty(bodegasSeleccionadas))
                    {
                        TempData["mensaje_error"]    = "Debe asignar minimo una bodega!";
                        ViewBag.paramcontablenombres =
                            new SelectList(context.paramcontablenombres.OrderBy(x => x.descripcion_parametro), "id",
                                           "descripcion_parametro");
                        ViewBag.cuentas_puc = context.cuenta_puc.OrderBy(x => x.cntpuc_descp).Where(x => x.esafectable)
                                              .ToList();
                        ViewBag.centroCosto          = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
                        ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
                        BuscarFavoritos(menu);
                        return(View(modelo));
                    }

                    // Primero se crea el registro en la tabla perfiltipocompra para luego asignar las bodegas a ese tipo de documento
                    context.perfiltipocompra.Add(new perfiltipocompra
                    {
                        idTipo      = modelo.idTipo,
                        descripcion = modelo.descripcion
                    });
                    int guardar = context.SaveChanges();
                    if (guardar > 0)
                    {
                        perfiltipocompra buscarUltimoPerfil = context.perfiltipocompra.OrderByDescending(x => x.id).FirstOrDefault();
                        if (buscarUltimoPerfil != null)
                        {
                            // Aqui se empieza a agregar el ultimo perfil contable asignado a una o varias bodegas

                            // Se busca el centro de costo cero, por si en caso que una cuenta no requiera centro, se asigna el centro cero por defecto.
                            centro_costo buscarCentroCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0");
                            int          idCentroCero     = 0;
                            if (buscarCentroCero == null)
                            {
                                //idCentroCero = null;
                            }
                            else
                            {
                                idCentroCero = buscarCentroCero.centcst_id;
                            }

                            string[] bodegasId = bodegasSeleccionadas.Split(',');
                            foreach (string substring in bodegasId)
                            {
                                context.perfilbodegastipocompra.Add(new perfilbodegastipocompra
                                {
                                    idTipoCompra = buscarUltimoPerfil.idTipo, // cambio jm id a idTipo
                                    idBodega     = Convert.ToInt32(substring)
                                });
                            }

                            // Por ultimo se agrega el perfil cuentas documento
                            int parametros = Convert.ToInt32(Request["lista_parametros"]);
                            for (int i = 1; i <= parametros; i++)
                            {
                                string parametro   = Request["parametro" + i];
                                string cuenta      = Request["cuenta" + i];
                                string centroCosto = Request["centroCosto" + i];
                                if (!string.IsNullOrEmpty(parametro) && !string.IsNullOrEmpty(cuenta))
                                {
                                    if (string.IsNullOrEmpty(centroCosto))
                                    {
                                        context.perfilcuentastipocompra.Add(new perfilcuentastipocompra
                                        {
                                            idTipoCompra = buscarUltimoPerfil.idTipo,
                                            idParametro  = Convert.ToInt32(parametro),
                                            cuenta       = Convert.ToInt32(cuenta),
                                            centro       = idCentroCero
                                        });
                                    }
                                    else
                                    {
                                        context.perfilcuentastipocompra.Add(new perfilcuentastipocompra
                                        {
                                            idTipoCompra = buscarUltimoPerfil.idTipo,
                                            idParametro  = Convert.ToInt32(parametro),
                                            cuenta       = Convert.ToInt32(cuenta),
                                            centro       = Convert.ToInt32(centroCosto)
                                        });
                                    }
                                }
                            }

                            // Se guarda las bodegas y los parametros asignadso
                            int guardarBodYParametros = context.SaveChanges();
                            if (guardarBodYParametros > 0)
                            {
                                TempData["mensaje"]      = "El perfil del tipo de compra se ha guardado con exito";
                                ViewBag.tp_doc_registros =
                                    context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                                ViewBag.paramcontablenombres = new SelectList(
                                    context.paramcontablenombres.OrderBy(x => x.descripcion_parametro), "id",
                                    "descripcion_parametro");
                                ViewBag.cuentas_puc = context.cuenta_puc.OrderBy(x => x.cntpuc_descp)
                                                      .Where(x => x.esafectable).ToList();
                                ViewBag.vconceptocompra = context.vconceptocompra.OrderBy(x => x.descripcion).ToList();
                                ViewBag.centroCosto     = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
                                BuscarFavoritos(menu);
                                return(View());
                            }
                        }
                    }
                }
            }

            ViewBag.tp_doc_registros     = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
            ViewBag.paramcontablenombres =
                new SelectList(context.paramcontablenombres.OrderBy(x => x.descripcion_parametro), "id",
                               "descripcion_parametro");
            ViewBag.cuentas_puc          = context.cuenta_puc.OrderBy(x => x.cntpuc_descp).Where(x => x.esafectable).ToList();
            ViewBag.centroCosto          = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
            ViewBag.vconceptocompra      = context.vconceptocompra.OrderBy(x => x.descripcion).ToList();
            ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
            BuscarFavoritos(menu);
            return(View(modelo));
        }
Пример #3
0
        public ActionResult update(perfiltipocompra modelo, int?menu)
        {
            // Seleccion de bodegassdfsdf
            string bodegasSeleccionadas = Request["bodccs_cod"];
            string tipoConcepto         = Request["tipoConceptoCompra"];

            if (ModelState.IsValid)
            {
                perfiltipocompra buscarPorCodigo = context.perfiltipocompra.FirstOrDefault(x => x.idTipo == modelo.idTipo);
                int idActual = buscarPorCodigo != null ? buscarPorCodigo.id : 0;
                if (buscarPorCodigo != null)
                {
                    if (buscarPorCodigo.id != modelo.id)
                    {
                        TempData["mensaje_error"]    = "El perfil contable por documento ya se encuentra registrado!";
                        ViewBag.tp_doc_registros     = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                        ViewBag.paramcontablenombres =
                            new SelectList(context.paramcontablenombres.OrderBy(x => x.descripcion_parametro), "id",
                                           "descripcion_parametro");
                        ViewBag.cuentas_puc = context.cuenta_puc.OrderBy(x => x.cntpuc_descp).Where(x => x.esafectable)
                                              .ToList();
                        ViewBag.centroCosto                  = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
                        ViewBag.vconceptocompra              = context.vconceptocompra.OrderBy(x => x.descripcion).ToList();
                        ViewBag.bodegasSeleccionadas         = bodegasSeleccionadas;
                        ViewBag.conceptosCompraSeleccionadas = tipoConcepto;
                        BuscarFavoritos(menu);
                        return(View(modelo));
                    }
                }

                //else {
                if (string.IsNullOrEmpty(bodegasSeleccionadas))
                {
                    TempData["mensaje_error"]    = "Debe asignar minimo una bodega!";
                    ViewBag.tp_doc_registros     = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                    ViewBag.paramcontablenombres =
                        new SelectList(context.paramcontablenombres.OrderBy(x => x.descripcion_parametro), "id",
                                       "descripcion_parametro");
                    ViewBag.cuentas_puc = context.cuenta_puc.OrderBy(x => x.cntpuc_descp).Where(x => x.esafectable)
                                          .ToList();
                    ViewBag.centroCosto                  = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
                    ViewBag.vconceptocompra              = context.vconceptocompra.OrderBy(x => x.descripcion).ToList();
                    ViewBag.bodegasSeleccionadas         = bodegasSeleccionadas;
                    ViewBag.conceptosCompraSeleccionadas = tipoConcepto;
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }

                string[] bodegasId = bodegasSeleccionadas.Split(',');
                // Primero se actualiza el registro en la tabla perfiltipocompra para luego asignar las bodegas a ese tipo de documento
                perfiltipocompra bucarPerfilId = context.perfiltipocompra.FirstOrDefault(x => x.id == modelo.id);
                bucarPerfilId.idTipo               = modelo.idTipo;
                bucarPerfilId.descripcion          = modelo.descripcion;
                context.Entry(bucarPerfilId).State = EntityState.Modified;
                int guardar = context.SaveChanges();
                if (guardar > 0)
                {
                    // Aqui se empieza a actualizar el ultimo perfil contable asignado a una o varias bodegas
                    const string query = "DELETE FROM [dbo].[perfilbodegastipocompra] WHERE [idTipoCompra]={0}";
                    int          rows  = context.Database.ExecuteSqlCommand(query, modelo.idTipo);

                    // Se busca el centro de costo cero, por si en caso que una cuenta no requiera centro, se asigna el centro cero por defecto.
                    centro_costo buscarCentroCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0");
                    int          idCentroCero     = 0;
                    if (buscarCentroCero == null)
                    {
                        //idCentroCero = null;
                    }
                    else
                    {
                        idCentroCero = buscarCentroCero.centcst_id;
                    }

                    foreach (string substring in bodegasId)
                    {
                        context.perfilbodegastipocompra.Add(new perfilbodegastipocompra
                        {
                            idTipoCompra = modelo.idTipo,
                            idBodega     = Convert.ToInt32(substring)
                        });
                    }

                    context.SaveChanges();

                    // Por ultimo se actualiza el perfilcuentastipocompra
                    const string query2     = "DELETE FROM [dbo].[perfilcuentastipocompra] WHERE [idTipoCompra]={0}";
                    int          rows2      = context.Database.ExecuteSqlCommand(query2, modelo.idTipo);
                    int          parametros = Convert.ToInt32(Request["lista_parametros"]);
                    for (int i = 1; i <= parametros; i++)
                    {
                        string parametro   = Request["parametro" + i];
                        string cuenta      = Request["cuenta" + i];
                        string centroCosto = Request["centroCosto" + i];
                        if (!string.IsNullOrEmpty(parametro) && !string.IsNullOrEmpty(cuenta))
                        {
                            if (!string.IsNullOrEmpty(centroCosto))
                            {
                                context.perfilcuentastipocompra.Add(new perfilcuentastipocompra
                                {
                                    idTipoCompra = modelo.idTipo, //tenia el id ya corregido
                                    idParametro  = Convert.ToInt32(parametro),
                                    cuenta       = Convert.ToInt32(cuenta),
                                    centro       = Convert.ToInt32(centroCosto)
                                });
                            }
                            else
                            {
                                context.perfilcuentastipocompra.Add(new perfilcuentastipocompra
                                {
                                    idTipoCompra = modelo.idTipo, //tenia el id ya corregido
                                    idParametro  = Convert.ToInt32(parametro),
                                    cuenta       = Convert.ToInt32(cuenta),
                                    centro       = idCentroCero
                                });
                            }
                        }
                    }

                    // Se guarda las bodegas y los parametros asignadso
                    int guardarBodYParametros = context.SaveChanges();
                    if (guardarBodYParametros > 0)
                    {
                        TempData["mensaje"]          = "El perfil del tipo de compra se ha guardado con exito";
                        ViewBag.tp_doc_registros     = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                        ViewBag.paramcontablenombres =
                            new SelectList(context.paramcontablenombres.OrderBy(x => x.descripcion_parametro), "id",
                                           "descripcion_parametro");
                        ViewBag.cuentas_puc = context.cuenta_puc.OrderBy(x => x.cntpuc_descp).Where(x => x.esafectable)
                                              .ToList();
                        ViewBag.centroCosto                  = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
                        ViewBag.vconceptocompra              = context.vconceptocompra.OrderBy(x => x.descripcion).ToList();
                        ViewBag.bodegasSeleccionadas         = bodegasSeleccionadas;
                        ViewBag.conceptosCompraSeleccionadas = tipoConcepto;
                        BuscarFavoritos(menu);
                        return(View(modelo));
                    }
                }

                //}
            }

            ViewBag.tp_doc_registros     = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
            ViewBag.paramcontablenombres =
                new SelectList(
                    context.paramcontablenombres.OrderBy(x => x.descripcion_parametro).Where(x => x.id != 19), "id",
                    "descripcion_parametro");
            ViewBag.cuentas_puc                  = context.cuenta_puc.OrderBy(x => x.cntpuc_descp).Where(x => x.esafectable).ToList();
            ViewBag.centroCosto                  = context.centro_costo.OrderBy(x => x.centcst_nombre).ToList();
            ViewBag.vconceptocompra              = context.vconceptocompra.OrderBy(x => x.descripcion).ToList();
            ViewBag.bodegasSeleccionadas         = bodegasSeleccionadas;
            ViewBag.conceptosCompraSeleccionadas = tipoConcepto;
            BuscarFavoritos(menu);
            return(View(modelo));
        }