示例#1
0
        public long BuscarConsecutivo(int grupo)
        {
            long consecutivo = -1;

            icb_doc_consecutivos doc_consecutivos =
                context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_grupoconsecutivo == grupo);

            if (doc_consecutivos == null)
            {
                TempData["mensaje_error"] = "No existe un consecutivo parametrizado para la bodega seleccionada";
            }
            else
            {
                // para año y mes
                if (doc_consecutivos.doccons_requiere_anio && doc_consecutivos.doccons_requiere_mes)
                {
                    doc_consecutivos = context.icb_doc_consecutivos.FirstOrDefault(x =>
                                                                                   x.doccons_grupoconsecutivo == grupo && x.doccons_ano == DateTime.Now.Year &&
                                                                                   x.doccons_mes == DateTime.Now.Month);
                    if (doc_consecutivos != null)
                    {
                        consecutivo = doc_consecutivos.doccons_siguiente;
                    }
                }
                //para solo año
                else if (doc_consecutivos.doccons_requiere_anio && doc_consecutivos.doccons_requiere_mes == false)
                {
                    doc_consecutivos = context.icb_doc_consecutivos.FirstOrDefault(x =>
                                                                                   x.doccons_grupoconsecutivo == grupo && x.doccons_ano == DateTime.Now.Year);
                    if (doc_consecutivos != null)
                    {
                        consecutivo = doc_consecutivos.doccons_siguiente;
                    }
                    else
                    {
                        TempData["mensaje_error"] =
                            "No existe un consecutivo parametrizado para la bodega seleccionada";
                    }
                }
                //para ninguno
                else
                {
                    consecutivo = doc_consecutivos.doccons_siguiente;
                }
            }

            return(consecutivo);
        }
示例#2
0
        public int ActualizarConsecutivo(int grupo, long consecutivo)
        {
            icb_doc_consecutivos doc_consecutivos =
                context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_grupoconsecutivo == grupo);

            // para año y mes
            if (doc_consecutivos.doccons_requiere_anio && doc_consecutivos.doccons_requiere_mes)
            {
                IQueryable <icb_doc_consecutivos> gconsecutivos = context.icb_doc_consecutivos.Where(x =>
                                                                                                     x.doccons_grupoconsecutivo == grupo && x.doccons_ano == DateTime.Now.Year &&
                                                                                                     x.doccons_mes == DateTime.Now.Month);
                foreach (icb_doc_consecutivos item in gconsecutivos)
                {
                    item.doccons_siguiente    = consecutivo + 1;
                    context.Entry(item).State = EntityState.Modified;
                }
            }
            //para solo año
            else if (doc_consecutivos.doccons_requiere_anio && doc_consecutivos.doccons_requiere_mes == false)
            {
                IQueryable <icb_doc_consecutivos> gconsecutivos = context.icb_doc_consecutivos.Where(x =>
                                                                                                     x.doccons_grupoconsecutivo == grupo && x.doccons_ano == DateTime.Now.Year);
                foreach (icb_doc_consecutivos item in gconsecutivos)
                {
                    item.doccons_siguiente    = consecutivo + 1;
                    context.Entry(item).State = EntityState.Modified;
                }
            }
            //para ninguno
            else
            {
                IQueryable <icb_doc_consecutivos> gconsecutivos = context.icb_doc_consecutivos.Where(x => x.doccons_grupoconsecutivo == grupo);
                foreach (icb_doc_consecutivos item in gconsecutivos)
                {
                    item.doccons_siguiente    = consecutivo + 1;
                    context.Entry(item).State = EntityState.Modified;
                }
            }

            int result = context.SaveChanges();

            return(result);
        }
示例#3
0
        public ActionResult Create(documentos_posfechados modelo, int?menu)
        {
            int idtipodoc = Convert.ToInt32(Request["idtipodoc"]);

            ViewBag.txtNitCliente      = Request["txtNitCliente"];
            ViewBag.perfilSeleccionado = Convert.ToInt32(Request["idperfil"]);

            icb_sysparameter buscarParametroTpDoc = context.icb_sysparameter.FirstOrDefault(x => x.syspar_cod == "P49");
            string           idTipoDocPosfechados = buscarParametroTpDoc != null ? buscarParametroTpDoc.syspar_value : "0";
            int idDocPosfechados = Convert.ToInt32(idTipoDocPosfechados);

            if (ModelState.IsValid)
            {
                long numeroConsecutivo = 0;
                int  anioActual        = DateTime.Now.Year;
                int  mesActual         = DateTime.Now.Month;
                int  bodegaActual      = Convert.ToInt32(Session["user_bodega"]);
                icb_doc_consecutivos numeroConsecutivoAux = context.icb_doc_consecutivos.OrderByDescending(x => x.doccons_ano)
                                                            .FirstOrDefault(x => x.doccons_idtpdoc == idtipodoc && x.doccons_bodega == bodegaActual);
                grupoconsecutivos grupoConsecutivo =
                    context.grupoconsecutivos.FirstOrDefault(x =>
                                                             x.documento_id == idtipodoc && x.bodega_id == bodegaActual);
                if (numeroConsecutivoAux != null)
                {
                    if (numeroConsecutivoAux.doccons_requiere_mes)
                    {
                        if (numeroConsecutivoAux.doccons_mes != mesActual)
                        {
                            // Requiere mes pero no hay consecutivo para el anio actual
                            TempData["mensaje_error"] =
                                "No existe un numero consecutivo asignado para este tipo de documento en el mes actual que es requerido";
                            ViewBag.banco = new SelectList(context.bancos, "id", "Descripcion", modelo.banco);

                            ViewBag.idtipodoc =
                                new SelectList(context.tp_doc_registros.Where(x => x.tipo == idDocPosfechados),
                                               "tpdoc_id", "tpdoc_nombre", idtipodoc);
                            TempData["modelo_invalido"] = "modelo_invalido";
                            BuscarFavoritos(menu);
                            return(View(modelo));
                        }

                        //requiereAnio = true;
                        numeroConsecutivo = numeroConsecutivoAux.doccons_siguiente;
                    }
                    else if (numeroConsecutivoAux.doccons_requiere_anio)
                    {
                        if (numeroConsecutivoAux.doccons_ano != anioActual)
                        {
                            // Requiere anio pero no hay consecutivo para el anio actual
                            TempData["mensaje_error"] =
                                "No existe un numero consecutivo asignado para este tipo de documento en el año actual que es requerido";
                            ViewBag.banco     = new SelectList(context.bancos, "id", "Descripcion", modelo.banco);
                            ViewBag.idtipodoc =
                                new SelectList(context.tp_doc_registros.Where(x => x.tipo == idDocPosfechados),
                                               "tpdoc_id", "tpdoc_nombre", idtipodoc);
                            TempData["modelo_invalido"] = "modelo_invalido";
                            BuscarFavoritos(menu);
                            return(View(modelo));
                        }

                        numeroConsecutivo = numeroConsecutivoAux.doccons_siguiente;
                    }
                    else
                    {
                        numeroConsecutivo = numeroConsecutivoAux.doccons_siguiente;
                    }
                }
                else
                {
                    TempData["mensaje_error"] = "No existe un numero consecutivo asignado para este tipo de documento";
                    ViewBag.banco             = new SelectList(context.bancos, "id", "Descripcion", modelo.banco);
                    ViewBag.idtipodoc         = new SelectList(context.tp_doc_registros.Where(x => x.tipo == idDocPosfechados),
                                                               "tpdoc_id", "tpdoc_nombre", idtipodoc);
                    TempData["modelo_invalido"] = "modelo_invalido";
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }

                // Si llega hasta aqui significa que si existe un numero consecutivo para el documento en la bodega actual.

                var parametrosCuentasVerificar = (from perfil in context.perfil_cuentas_documento
                                                  join nombreParametro in context.paramcontablenombres
                                                  on perfil.id_nombre_parametro equals nombreParametro.id
                                                  join cuenta in context.cuenta_puc
                                                  on perfil.cuenta equals cuenta.cntpuc_id
                                                  where perfil.id_perfil == modelo.idperfil
                                                  select new
                {
                    perfil.id,
                    perfil.id_nombre_parametro,
                    perfil.cuenta,
                    perfil.centro,
                    perfil.id_perfil,
                    nombreParametro.descripcion_parametro,
                    cuenta.cntpuc_numero
                }).ToList();

                List <DocumentoDescuadradoModel> listaDescuadrados = new List <DocumentoDescuadradoModel>();
                decimal calcularDebito  = 0;
                decimal calcularCredito = 0;

                foreach (var parametro in parametrosCuentasVerificar)
                {
                    //var tipoParametro = 0;

                    cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta);
                    if (buscarCuenta != null)
                    {
                        if (parametro.id_nombre_parametro == 15)
                        {
                            if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                            {
                                calcularDebito += modelo.Valor;
                                listaDescuadrados.Add(new DocumentoDescuadradoModel
                                {
                                    NumeroCuenta         = parametro.cntpuc_numero,
                                    DescripcionParametro = parametro.descripcion_parametro,
                                    ValorDebito          = modelo.Valor,
                                    ValorCredito         = 0
                                });
                            }

                            if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                            {
                                calcularCredito += modelo.Valor;
                                listaDescuadrados.Add(new DocumentoDescuadradoModel
                                {
                                    NumeroCuenta         = parametro.cntpuc_numero,
                                    DescripcionParametro = parametro.descripcion_parametro,
                                    ValorDebito          = 0,
                                    ValorCredito         = modelo.Valor
                                });
                            }
                        }
                        else
                        {
                            listaDescuadrados.Add(new DocumentoDescuadradoModel
                            {
                                NumeroCuenta         = parametro.cntpuc_numero,
                                DescripcionParametro = parametro.descripcion_parametro,
                                ValorDebito          = 0,
                                ValorCredito         = 0
                            });
                            TempData["documento_descuadrado"] =
                                "El documento no tiene los movimientos calculados correctamente";
                            ViewBag.documentoDescuadrado = listaDescuadrados;
                            ViewBag.calculoDebito        = calcularDebito;
                            ViewBag.calculoCredito       = calcularCredito;
                            ViewBag.banco     = new SelectList(context.bancos, "id", "Descripcion", modelo.banco);
                            ViewBag.idtipodoc =
                                new SelectList(context.tp_doc_registros.Where(x => x.tipo == idDocPosfechados),
                                               "tpdoc_id", "tpdoc_nombre", idtipodoc);
                            TempData["modelo_invalido"] = "modelo_invalido";
                            BuscarFavoritos(menu);
                            return(View(modelo));
                        }
                    }
                }

                if (calcularCredito != calcularDebito)
                {
                    TempData["documento_descuadrado"] =
                        "El documento no tiene los movimientos calculados correctamente";
                    ViewBag.documentoDescuadrado = listaDescuadrados;
                    ViewBag.calculoDebito        = calcularDebito;
                    ViewBag.calculoCredito       = calcularCredito;
                    ViewBag.banco     = new SelectList(context.bancos, "id", "Descripcion", modelo.banco);
                    ViewBag.idtipodoc = new SelectList(context.tp_doc_registros.Where(x => x.tipo == idDocPosfechados),
                                                       "tpdoc_id", "tpdoc_nombre", idtipodoc);
                    TempData["modelo_invalido"] = "modelo_invalido";
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }
                // Fin de la validacion para el calculo del debito y credito del movimiento contable

                encab_documento crearEncabezado = new encab_documento
                {
                    tipo         = idtipodoc,
                    bodega       = bodegaActual,
                    nit          = modelo.idtercero,
                    numero       = numeroConsecutivo,
                    fecha        = DateTime.Now,
                    fec_creacion = DateTime.Now,
                    valor_total  = modelo.Valor,
                    impoconsumo  = 0
                };
                context.encab_documento.Add(crearEncabezado);
                int save = context.SaveChanges();

                if (save > 0)
                {
                    encab_documento buscarUltimoEncabezado =
                        context.encab_documento.OrderByDescending(x => x.idencabezado).FirstOrDefault();


                    modelo.idencabdoc = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.idencabezado : 0;
                    context.documentos_posfechados.Add(modelo);

                    List <perfil_cuentas_documento> parametrosCuentas = context.perfil_cuentas_documento.Where(x => x.id_perfil == modelo.idperfil)
                                                                        .ToList();
                    centro_costo centroValorCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0");
                    int          idCentroCero    = centroValorCero != null?Convert.ToInt32(centroValorCero.centcst_id) : 0;

                    icb_terceros terceroValorCero = context.icb_terceros.FirstOrDefault(x => x.doc_tercero == "0");
                    int          idTerceroCero    = centroValorCero != null?Convert.ToInt32(terceroValorCero.tercero_id) : 0;

                    int secuencia = 1;
                    foreach (perfil_cuentas_documento parametro in parametrosCuentas)
                    {
                        decimal    valorCredito = 0;
                        decimal    valorDebito  = 0;
                        cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta);
                        if (buscarCuenta != null)
                        {
                            if (parametro.id_nombre_parametro == 15)
                            {
                                valorCredito = modelo.Valor;
                                valorDebito  = modelo.Valor;
                            }

                            mov_contable movNuevo = new mov_contable
                            {
                                id_encab =
                                    buscarUltimoEncabezado != null ? buscarUltimoEncabezado.idencabezado : 0,
                                fec_creacion      = DateTime.Now,
                                userid_creacion   = Convert.ToInt32(Session["user_usuarioid"]),
                                idparametronombre = parametro.id_nombre_parametro,
                                cuenta            = parametro.cuenta,
                                centro            = parametro.centro,
                                fec = DateTime.Now,
                                seq = secuencia
                            };

                            if (buscarCuenta.concepniff == 1)
                            {
                                if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                {
                                    movNuevo.debitoniif = valorDebito;
                                    movNuevo.debito     = valorDebito;
                                }

                                if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                {
                                    movNuevo.credito     = valorCredito;
                                    movNuevo.creditoniif = valorCredito;
                                }
                            }

                            if (buscarCuenta.concepniff == 4)
                            {
                                if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                {
                                    movNuevo.debitoniif = valorDebito;
                                }

                                if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                {
                                    movNuevo.creditoniif = valorCredito;
                                }
                            }

                            if (buscarCuenta.concepniff == 5)
                            {
                                if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                {
                                    movNuevo.debito = valorDebito;
                                }

                                if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                {
                                    movNuevo.credito = valorCredito;
                                }
                            }

                            if (buscarCuenta.manejabase)
                            {
                                movNuevo.basecontable = modelo.Valor;
                            }

                            if (buscarCuenta.tercero)
                            {
                                movNuevo.nit = modelo.idtercero;
                            }

                            if (buscarCuenta.documeto)
                            {
                                movNuevo.documento = buscarUltimoEncabezado.numero.ToString();
                            }

                            movNuevo.detalle = "Cheque posfechado " + buscarUltimoEncabezado.documento;
                            secuencia++;


                            cuentas_valores buscar_cuentas_valores = context.cuentas_valores.FirstOrDefault(x =>
                                                                                                            x.centro == parametro.centro && x.cuenta == parametro.cuenta && x.nit == movNuevo.nit);
                            DateTime fechaHoy = DateTime.Now;
                            if (buscar_cuentas_valores != null)
                            {
                                buscar_cuentas_valores.ano    = fechaHoy.Year;
                                buscar_cuentas_valores.mes    = fechaHoy.Month;
                                buscar_cuentas_valores.cuenta = movNuevo.cuenta;
                                buscar_cuentas_valores.centro = movNuevo.centro;
                                //buscar_cuentas_valores.nit = movNuevo.nit ?? idTerceroCero;
                                buscar_cuentas_valores.nit                  = movNuevo.nit;
                                buscar_cuentas_valores.debito              += movNuevo.debito;
                                buscar_cuentas_valores.credito             += movNuevo.credito;
                                buscar_cuentas_valores.debitoniff          += movNuevo.debitoniif;
                                buscar_cuentas_valores.creditoniff         += movNuevo.creditoniif;
                                context.Entry(buscar_cuentas_valores).State = EntityState.Modified;
                            }
                            else
                            {
                                cuentas_valores crearCuentaValor = new cuentas_valores
                                {
                                    ano    = fechaHoy.Year,
                                    mes    = fechaHoy.Month,
                                    cuenta = movNuevo.cuenta,
                                    centro = movNuevo.centro,
                                    //crearCuentaValor.nit = movNuevo.nit ?? idTerceroCero;
                                    nit         = movNuevo.nit,
                                    debito      = movNuevo.debito,
                                    credito     = movNuevo.credito,
                                    debitoniff  = movNuevo.debitoniif,
                                    creditoniff = movNuevo.creditoniif
                                };
                                context.cuentas_valores.Add(crearCuentaValor);
                            }

                            context.mov_contable.Add(movNuevo);
                        }
                    }

                    bool guardarCuenta = context.SaveChanges() > 0;
                    if (guardarCuenta)
                    {
                        int grupoId = grupoConsecutivo != null ? grupoConsecutivo.grupo : 0;
                        List <icb_doc_consecutivos> gruposConsecutivos = context.icb_doc_consecutivos
                                                                         .Where(x => x.doccons_grupoconsecutivo == grupoId).ToList();
                        foreach (icb_doc_consecutivos grupo in gruposConsecutivos)
                        {
                            grupo.doccons_siguiente    = grupo.doccons_siguiente + 1;
                            context.Entry(grupo).State = EntityState.Modified;
                        }

                        context.SaveChanges();
                        TempData["mensaje"] = "La creacion del cheque posfechado se ha guardado exitosamente.";
                        ViewBag.banco       = new SelectList(context.bancos, "id", "Descripcion", modelo.banco);
                        ViewBag.idtipodoc   =
                            new SelectList(context.tp_doc_registros.Where(x => x.tipo == idDocPosfechados), "tpdoc_id",
                                           "tpdoc_nombre", idtipodoc);
                        return(RedirectToAction("Create", "chequePosfechado", new { menu }));
                    }
                }
            }

            ViewBag.banco     = new SelectList(context.bancos, "id", "Descripcion", modelo.banco);
            ViewBag.idtipodoc = new SelectList(context.tp_doc_registros.Where(x => x.tipo == idDocPosfechados),
                                               "tpdoc_id", "tpdoc_nombre", idtipodoc);
            TempData["modelo_invalido"] = "modelo_invalido";
            BuscarFavoritos(menu);
            return(View(modelo));
        }
示例#4
0
        public ActionResult Create(EntradaSalidaModel modelo, int?menu)
        {
            if (ModelState.IsValid)
            {
                long numeroConsecutivo = 0;
                ConsecutivosGestion  gestionConsecutivo    = new ConsecutivosGestion();
                icb_doc_consecutivos numeroConsecutivoAux  = new icb_doc_consecutivos();
                tp_doc_registros     buscarTipoDocRegistro =
                    context.tp_doc_registros.FirstOrDefault(x => x.tpdoc_id == modelo.TipoDocumento);
                numeroConsecutivoAux = gestionConsecutivo.BuscarConsecutivo(buscarTipoDocRegistro, modelo.TipoDocumento,
                                                                            modelo.BodegaOrigen);

                grupoconsecutivos buscarGrupoConsecutivos = context.grupoconsecutivos.FirstOrDefault(x =>
                                                                                                     x.documento_id == modelo.TipoDocumento && x.bodega_id == modelo.BodegaOrigen);
                int numeroGrupo = buscarGrupoConsecutivos != null ? buscarGrupoConsecutivos.grupo : 0;

                if (numeroConsecutivoAux != null)
                {
                    numeroConsecutivo = numeroConsecutivoAux.doccons_siguiente;
                }
                else
                {
                    TempData["mensaje_error"] = "No existe un numero consecutivo asignado para este tipo de documento";
                    ListasDesplegables();
                    ViewBag.documentoSeleccionado = modelo.TipoDocumento;
                    ViewBag.bodegaSeleccionada    = modelo.BodegaOrigen;
                    ViewBag.perfilSeleccionado    = modelo.PerfilContable;
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }

                // Si llega aqui significa que si hay un numero de documento consecutivo
                decimal sumaCostosReferenciasAux = 0;
                int     numero_repuestosAux      = Convert.ToInt32(Request["lista_repuestos"]);
                int     cantidad_total           = Convert.ToInt32(Request["cantidad_total"]);

                if (cantidad_total <= 0)
                {
                    TempData["mensaje_error"] = "No ha agregado ninguna referencia para realizar el proceso";
                    ListasDesplegables();
                    ViewBag.documentoSeleccionado = modelo.TipoDocumento;
                    ViewBag.bodegaSeleccionada    = modelo.BodegaOrigen;
                    ViewBag.perfilSeleccionado    = modelo.PerfilContable;
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }

                for (int i = 1; i <= numero_repuestosAux; i++)
                {
                    string referencia_codigo = Request["codigo_referencia" + i];
                    string referencia_valor  = Request["valor_referencia" + i];
                    if (string.IsNullOrEmpty(referencia_codigo) || string.IsNullOrEmpty(referencia_valor))
                    {
                        // Significa que la agregaron y la eliminaron
                    }
                    else
                    {
                        sumaCostosReferenciasAux += Convert.ToDecimal(referencia_valor);
                    }
                }


                var parametrosCuentasVerificar = (from perfil in context.perfil_cuentas_documento
                                                  join nombreParametro in context.paramcontablenombres
                                                  on perfil.id_nombre_parametro equals nombreParametro.id
                                                  join cuenta in context.cuenta_puc
                                                  on perfil.cuenta equals cuenta.cntpuc_id
                                                  where perfil.id_perfil == modelo.PerfilContable
                                                  select new
                {
                    perfil.id,
                    perfil.id_nombre_parametro,
                    perfil.cuenta,
                    perfil.centro,
                    perfil.id_perfil,
                    nombreParametro.descripcion_parametro,
                    cuenta.cntpuc_numero
                }).ToList();
                List <DocumentoDescuadradoModel> listaDescuadrados = new List <DocumentoDescuadradoModel>();
                decimal calcularDebito  = 0;
                decimal calcularCredito = 0;

                foreach (var parametro in parametrosCuentasVerificar)
                {
                    cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta);
                    if (buscarCuenta != null)
                    {
                        if (parametro.id_nombre_parametro == 9 || parametro.id_nombre_parametro == 12)
                        {
                            if (parametro.id_nombre_parametro == 12)
                            {
                                if (buscarCuenta.concepniff == 1 || buscarCuenta.concepniff == 5)
                                {
                                    calcularCredito += sumaCostosReferenciasAux;
                                    listaDescuadrados.Add(new DocumentoDescuadradoModel
                                    {
                                        NumeroCuenta         = parametro.cntpuc_numero,
                                        DescripcionParametro = parametro.descripcion_parametro,
                                        ValorDebito          = 0,
                                        ValorCredito         = sumaCostosReferenciasAux
                                    });
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    //    calcularDebito += sumaCostosReferenciasAux;
                                    //    listaDescuadrados.Add(new DocumentoDescuadradoModel()
                                    //    {
                                    //        NumeroCuenta = parametro.cntpuc_numero,
                                    //        DescripcionParametro = parametro.descripcion_parametro,
                                    //        ValorDebito = sumaCostosReferenciasAux,
                                    //        ValorCredito = 0
                                    //    });
                                    //}
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                    //{
                                    //    calcularCredito += sumaCostosReferenciasAux;
                                    //    listaDescuadrados.Add(new DocumentoDescuadradoModel()
                                    //    {
                                    //        NumeroCuenta = parametro.cntpuc_numero,
                                    //        DescripcionParametro = parametro.descripcion_parametro,
                                    //        ValorDebito = 0,
                                    //        ValorCredito = sumaCostosReferenciasAux
                                    //    });
                                    //}
                                }
                                else
                                {
                                    listaDescuadrados.Add(new DocumentoDescuadradoModel
                                    {
                                        NumeroCuenta         = parametro.cntpuc_numero,
                                        DescripcionParametro = parametro.descripcion_parametro,
                                        ValorDebito          = 0,
                                        ValorCredito         = 0
                                    });
                                }
                            }
                            else
                            {
                                if (buscarCuenta.concepniff == 1 || buscarCuenta.concepniff == 5)
                                {
                                    calcularDebito += sumaCostosReferenciasAux;
                                    listaDescuadrados.Add(new DocumentoDescuadradoModel
                                    {
                                        NumeroCuenta         = parametro.cntpuc_numero,
                                        DescripcionParametro = parametro.descripcion_parametro,
                                        ValorDebito          = sumaCostosReferenciasAux,
                                        ValorCredito         = 0
                                    });
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    //    calcularDebito += sumaCostosReferenciasAux;
                                    //    listaDescuadrados.Add(new DocumentoDescuadradoModel()
                                    //    {
                                    //        NumeroCuenta = parametro.cntpuc_numero,
                                    //        DescripcionParametro = parametro.descripcion_parametro,
                                    //        ValorDebito = sumaCostosReferenciasAux,
                                    //        ValorCredito = 0
                                    //    });
                                    //}
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                    //{
                                    //    calcularCredito += sumaCostosReferenciasAux;
                                    //    listaDescuadrados.Add(new DocumentoDescuadradoModel()
                                    //    {
                                    //        NumeroCuenta = parametro.cntpuc_numero,
                                    //        DescripcionParametro = parametro.descripcion_parametro,
                                    //        ValorDebito = 0,
                                    //        ValorCredito = sumaCostosReferenciasAux
                                    //    });
                                    //}
                                }
                                else
                                {
                                    listaDescuadrados.Add(new DocumentoDescuadradoModel
                                    {
                                        NumeroCuenta         = parametro.cntpuc_numero,
                                        DescripcionParametro = parametro.descripcion_parametro,
                                        ValorDebito          = 0,
                                        ValorCredito         = 0
                                    });
                                }
                            }
                        }
                    }
                }

                if (calcularCredito != calcularDebito)
                {
                    TempData["documento_descuadrado"] =
                        "El documento no tiene los movimientos calculados correctamente";
                    ViewBag.documentoSeleccionado = modelo.TipoDocumento;
                    ViewBag.bodegaSeleccionada    = modelo.BodegaOrigen;
                    ViewBag.perfilSeleccionado    = modelo.PerfilContable;

                    ViewBag.documentoDescuadrado = listaDescuadrados;
                    ViewBag.calculoDebito        = calcularDebito;
                    ViewBag.calculoCredito       = calcularCredito;
                    ListasDesplegables();
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }

                icb_sysparameter buscarNit = context.icb_sysparameter.FirstOrDefault(x => x.syspar_cod == "P33");
                int nitTraslado            = buscarNit != null?Convert.ToInt32(buscarNit.syspar_value) : 0;

                encab_documento crearEncabezado = new encab_documento
                {
                    tipo   = modelo.TipoDocumento,
                    bodega = modelo.BodegaOrigen,
                    numero = numeroConsecutivo,
                    nit    = nitTraslado,
                    //crearEncabezado.documento = modelo.Referencia; // Puede haber varias referencias
                    fecha           = DateTime.Now,
                    fec_creacion    = DateTime.Now,
                    vencimiento     = DateTime.Now,
                    userid_creacion = Convert.ToInt32(Session["user_usuarioid"]),
                    impoconsumo     = 0,
                    perfilcontable  = modelo.PerfilContable,
                    notas           = modelo.Notas
                };
                context.encab_documento.Add(crearEncabezado);

                bool            guardar = context.SaveChanges() > 0;
                encab_documento buscarUltimoEncabezado =
                    context.encab_documento.OrderByDescending(x => x.idencabezado).FirstOrDefault();


                decimal sumaCostosReferencias = 0;
                int     numero_repuestos      = Convert.ToInt32(Request["lista_repuestos"]);
                int     sequ = 1;
                for (int i = 1; i <= numero_repuestos; i++)
                {
                    string referencia_codigo = Request["codigo_referencia" + i];
                    string referencia_valor  = Request["valor_referencia" + i];
                    if (string.IsNullOrEmpty(referencia_codigo) || string.IsNullOrEmpty(referencia_valor))
                    {
                        // Significa que la agregaron y la eliminaron
                    }
                    else
                    {
                        sumaCostosReferencias += Convert.ToDecimal(referencia_valor);

                        referencias_inven buscarReferenciasInvenOrigen = context.referencias_inven.FirstOrDefault(x =>
                                                                                                                  x.codigo == referencia_codigo && x.ano == DateTime.Now.Year &&
                                                                                                                  x.mes == DateTime.Now.Month && x.bodega == modelo.BodegaOrigen);
                        if (buscarReferenciasInvenOrigen != null)
                        {
                            buscarReferenciasInvenOrigen.cos_ent =
                                (!string.IsNullOrEmpty(buscarReferenciasInvenOrigen.cos_ent.ToString())
                                    ? Convert.ToDecimal(buscarReferenciasInvenOrigen.cos_ent)
                                    : 0) + (!string.IsNullOrEmpty(referencia_valor)
                                    ? Convert.ToDecimal(referencia_valor)
                                    : 0);
                            buscarReferenciasInvenOrigen.sub_cos =
                                (!string.IsNullOrEmpty(buscarReferenciasInvenOrigen.sub_cos.ToString())
                                    ? Convert.ToDecimal(buscarReferenciasInvenOrigen.sub_cos)
                                    : 0) + (!string.IsNullOrEmpty(referencia_valor)
                                    ? Convert.ToDecimal(referencia_valor)
                                    : 0);
                            context.Entry(buscarReferenciasInvenOrigen).State = EntityState.Modified;
                        }
                        else
                        {
                            referencias_inven crearReferencia = new referencias_inven
                            {
                                bodega  = modelo.BodegaOrigen,
                                codigo  = referencia_codigo,
                                ano     = (short)DateTime.Now.Year,
                                mes     = (short)DateTime.Now.Month,
                                can_ini = 0,
                                cos_ent = !string.IsNullOrEmpty(referencia_valor)
                                    ? Convert.ToDecimal(referencia_valor)
                                    : 0,
                                sub_cos = !string.IsNullOrEmpty(referencia_valor)
                                    ? Convert.ToDecimal(referencia_valor)
                                    : 0,
                                modulo = "R"
                            };
                            context.referencias_inven.Add(crearReferencia);
                        }


                        lineas_documento crearLineasOrigen = new lineas_documento
                        {
                            codigo          = referencia_codigo,
                            fec_creacion    = DateTime.Now,
                            userid_creacion = Convert.ToInt32(Session["user_usuarioid"]),
                            nit             = nitTraslado,
                            bodega          = modelo.BodegaOrigen,
                            seq             = sequ,
                            estado          = true,
                            fec             = DateTime.Now,
                            costo_unitario  = !string.IsNullOrEmpty(referencia_valor)
                                ? Convert.ToDecimal(referencia_valor)
                                : 0,
                            id_encabezado = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.idencabezado : 0
                        };
                        context.lineas_documento.Add(crearLineasOrigen);
                        sequ++;
                    }
                }

                centro_costo centroValorCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0");
                int          idCentroCero    = centroValorCero != null?Convert.ToInt32(centroValorCero.centcst_id) : 0;

                icb_terceros terceroValorCero = context.icb_terceros.FirstOrDefault(x => x.doc_tercero == "0");
                int          idTerceroCero    = centroValorCero != null?Convert.ToInt32(terceroValorCero.tercero_id) : 0;

                int secuencia = 1;
                foreach (var parametro in parametrosCuentasVerificar)
                {
                    cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta);
                    if (buscarCuenta != null)
                    {
                        if (parametro.id_nombre_parametro == 9 || parametro.id_nombre_parametro == 12)
                        {
                            mov_contable movNuevo = new mov_contable
                            {
                                id_encab =
                                    buscarUltimoEncabezado != null ? buscarUltimoEncabezado.idencabezado : 0,
                                fec_creacion      = DateTime.Now,
                                userid_creacion   = Convert.ToInt32(Session["user_usuarioid"]),
                                idparametronombre = parametro.id_nombre_parametro,
                                cuenta            = parametro.cuenta,
                                centro            = parametro.centro,
                                nit = 0,
                                fec = DateTime.Now,
                                seq = secuencia
                            };

                            // La validacion se hace ya que cuando el parametro es 9 (es decir inventario) se invierte el credito con debito
                            if (parametro.id_nombre_parametro == 12)
                            {
                                if (buscarCuenta.concepniff == 1)
                                {
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    movNuevo.credito     = sumaCostosReferencias;
                                    movNuevo.creditoniif = sumaCostosReferencias;
                                    //}
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                    //{
                                    //    movNuevo.debitoniif = sumaCostosReferencias;
                                    //    movNuevo.debito = sumaCostosReferencias;
                                    //}
                                }

                                if (buscarCuenta.concepniff == 4)
                                {
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    movNuevo.creditoniif = sumaCostosReferencias;
                                }
                                //}
                                //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                //{
                                //    movNuevo.debitoniif = sumaCostosReferencias;
                                //}

                                if (buscarCuenta.concepniff == 5)
                                {
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    movNuevo.credito = sumaCostosReferencias;
                                }
                                //}
                                //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                //{
                                //    movNuevo.debito = sumaCostosReferencias;
                                //}
                            }
                            else
                            {
                                if (buscarCuenta.concepniff == 1)
                                {
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    movNuevo.debitoniif = sumaCostosReferencias;
                                    movNuevo.debito     = sumaCostosReferencias;
                                    //}
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                    //{
                                    //    movNuevo.credito = sumaCostosReferencias;
                                    //    movNuevo.creditoniif = sumaCostosReferencias;
                                    //}
                                }

                                if (buscarCuenta.concepniff == 4)
                                {
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    movNuevo.debitoniif = sumaCostosReferencias;
                                }
                                //}
                                //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                //{
                                //    movNuevo.creditoniif = sumaCostosReferencias;
                                //}

                                if (buscarCuenta.concepniff == 5)
                                {
                                    //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO"))
                                    //{
                                    movNuevo.debito = sumaCostosReferencias;
                                }
                                //}
                                //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO"))
                                //{
                                //    movNuevo.credito = sumaCostosReferencias;
                                //}
                            }

                            if (buscarCuenta.manejabase)
                            {
                                movNuevo.basecontable = sumaCostosReferencias;
                            }

                            if (buscarCuenta.documeto)
                            {
                                movNuevo.documento = "1";
                            }

                            if (buscarCuenta.tercero)
                            {
                                movNuevo.nit = nitTraslado;
                            }

                            movNuevo.detalle = "Sube costo de referencias";
                            secuencia++;

                            DateTime        fechaHoy = DateTime.Now;
                            cuentas_valores buscar_cuentas_valores = context.cuentas_valores.FirstOrDefault(x =>
                                                                                                            x.centro == parametro.centro && x.cuenta == parametro.cuenta && x.nit == movNuevo.nit &&
                                                                                                            x.ano == fechaHoy.Year && x.mes == fechaHoy.Month);
                            if (buscar_cuentas_valores != null)
                            {
                                buscar_cuentas_valores.ano    = fechaHoy.Year;
                                buscar_cuentas_valores.mes    = fechaHoy.Month;
                                buscar_cuentas_valores.cuenta = movNuevo.cuenta;
                                buscar_cuentas_valores.centro = movNuevo.centro;
                                //buscar_cuentas_valores.nit = movNuevo.nit ?? idTerceroCero;
                                buscar_cuentas_valores.nit                  = movNuevo.nit;
                                buscar_cuentas_valores.debito              += movNuevo.debito;
                                buscar_cuentas_valores.credito             += movNuevo.credito;
                                buscar_cuentas_valores.debitoniff          += movNuevo.debitoniif;
                                buscar_cuentas_valores.creditoniff         += movNuevo.creditoniif;
                                context.Entry(buscar_cuentas_valores).State = EntityState.Modified;
                            }
                            else
                            {
                                cuentas_valores crearCuentaValor = new cuentas_valores
                                {
                                    ano    = fechaHoy.Year,
                                    mes    = fechaHoy.Month,
                                    cuenta = movNuevo.cuenta,
                                    centro = movNuevo.centro,
                                    //crearCuentaValor.nit = movNuevo.nit ?? idTerceroCero;
                                    nit         = movNuevo.nit,
                                    debito      = movNuevo.debito,
                                    credito     = movNuevo.credito,
                                    debitoniff  = movNuevo.debitoniif,
                                    creditoniff = movNuevo.creditoniif
                                };
                                context.cuentas_valores.Add(crearCuentaValor);
                            }

                            context.mov_contable.Add(movNuevo);
                        }
                    }
                }

                try
                {
                    int guardarLineasYMovimientos = context.SaveChanges();

                    if (guardarLineasYMovimientos > 0)
                    {
                        if (buscarGrupoConsecutivos != null)
                        {
                            List <icb_doc_consecutivos> numerosConsecutivos = context.icb_doc_consecutivos
                                                                              .Where(x => x.doccons_grupoconsecutivo == numeroGrupo).ToList();
                            foreach (icb_doc_consecutivos item in numerosConsecutivos)
                            {
                                item.doccons_siguiente    = item.doccons_siguiente + 1;
                                context.Entry(item).State = EntityState.Modified;
                            }

                            context.SaveChanges();
                        }

                        TempData["mensaje"] =
                            "El cambio de costo de la(s) referencia(s) se ha realizado correctamente con numero " +
                            numeroConsecutivo;
                        ViewBag.numDocumentoCreado = numeroConsecutivo;
                    }
                }
                catch (Exception ex)
                {
                    Exception sss = ex.InnerException;
                }
            }

            ListasDesplegables();
            BuscarFavoritos(menu);
            return(View());
        }
示例#5
0
        public ActionResult Create(tencabcotizacion modelo, int?menu)
        {
            if (ModelState.IsValid)
            {
                long numeroConsecutivo = 0;
                ConsecutivosGestion  gestionConsecutivo    = new ConsecutivosGestion();
                icb_doc_consecutivos numeroConsecutivoAux  = new icb_doc_consecutivos();
                tp_doc_registros     buscarTipoDocRegistro = context.tp_doc_registros.FirstOrDefault(x => x.tpdoc_id == modelo.tipodoc);
                numeroConsecutivoAux =
                    gestionConsecutivo.BuscarConsecutivo(buscarTipoDocRegistro, modelo.tipodoc, modelo.bodega);

                grupoconsecutivos grupoConsecutivo = context.grupoconsecutivos.FirstOrDefault(x =>
                                                                                              x.documento_id == modelo.tipodoc && x.bodega_id == modelo.bodega);
                if (numeroConsecutivoAux != null)
                {
                    numeroConsecutivo = numeroConsecutivoAux.doccons_siguiente;
                }
                else
                {
                    TempData["mensaje_error"] = "No existe un numero consecutivo asignado para este tipo de documento";
                    BuscarFavoritos(menu);
                    return(View());
                }


                modelo.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]);
                modelo.fecha_creacion  = DateTime.Now;
                modelo.numero          = (int)numeroConsecutivo;
                context.tencabcotizacion.Add(modelo);
                int guardar = context.SaveChanges();
                if (guardar > 0)
                {
                    tencabcotizacion buscarUltimoEncabezado = context.tencabcotizacion.OrderByDescending(x => x.id).FirstOrDefault();

                    int cantidadManoObra = Convert.ToInt32(Request["cantidadesManoObra"]);
                    for (int i = 1; i <= cantidadManoObra; i++)
                    {
                        string operacion = Request["operacionManoObra" + i];
                        int    cantidad  = !string.IsNullOrEmpty(Request["cantidadManoObra" + i])
                            ? Convert.ToInt32(Request["cantidadManoObra" + i])
                            : 0;
                        int tiempo = !string.IsNullOrEmpty(Request["tiempoManoObra" + i])
                            ? Convert.ToInt32(Request["tiempoManoObra" + i])
                            : 0;
                        int iva = !string.IsNullOrEmpty(Request["ivaManoObra" + i])
                            ? Convert.ToInt32(Request["ivaManoObra" + i])
                            : 0;
                        int descuento = !string.IsNullOrEmpty(Request["descuentoManoObra" + i])
                            ? Convert.ToInt32(Request["descuentoManoObra" + i])
                            : 0;
                        int valor = !string.IsNullOrEmpty(Request["valorManoObra" + i])
                            ? Convert.ToInt32(Request["valorManoObra" + i])
                            : 0;
                        int tarifa = !string.IsNullOrEmpty(Request["tarifaManoObra" + i])
                            ? Convert.ToInt32(Request["tarifaManoObra" + i])
                            : 0;

                        if (operacion != null)
                        {
                            context.tcotdetallemanoobra.Add(new tcotdetallemanoobra
                            {
                                idencab        = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.id : 0,
                                operacion      = operacion,
                                cantidad       = cantidad,
                                porcendescto   = descuento,
                                porceniva      = iva,
                                tarifamanoobra = tarifa,
                                tiempo         = tiempo,
                                Valor          = valor
                            });
                        }
                    }

                    int cantidadReferencias = Convert.ToInt32(Request["cantidadesReferencias"]);
                    for (int i = 1; i <= cantidadReferencias; i++)
                    {
                        string codigo_referencia = Request["referencia" + i];
                        int    cantidad          = !string.IsNullOrEmpty(Request["cantidadReferencia" + i])
                            ? Convert.ToInt32(Request["cantidadReferencia" + i])
                            : 0;
                        int valorUnitario = !string.IsNullOrEmpty(Request["valorUnitarioReferencia" + i])
                            ? Convert.ToInt32(Request["valorUnitarioReferencia" + i])
                            : 0;
                        int iva = !string.IsNullOrEmpty(Request["ivaReferencia" + i])
                            ? Convert.ToInt32(Request["ivaReferencia" + i])
                            : 0;
                        int descuento = !string.IsNullOrEmpty(Request["descuentoReferencia" + i])
                            ? Convert.ToInt32(Request["descuentoReferencia" + i])
                            : 0;
                        int costo = !string.IsNullOrEmpty(Request["costoReferencia" + i])
                            ? Convert.ToInt32(Request["costoReferencia" + i])
                            : 0;

                        if (codigo_referencia != null)
                        {
                            context.tcotdetallerepuesto.Add(new tcotdetallerepuesto
                            {
                                idencab        = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.id : 0,
                                ref_codigo     = codigo_referencia,
                                cantidad       = cantidad,
                                valorunitario  = valorUnitario,
                                porcen_iva     = iva,
                                porcen_dscto   = descuento,
                                costo_promedio = costo
                            });
                        }
                    }

                    int cantidadToT = Convert.ToInt32(Request["cantidadesToT"]);
                    for (int i = 1; i <= cantidadToT; i++)
                    {
                        string operacion   = Request["operacionToT" + i];
                        string descripcion = Request["descripcionToT" + i];
                        int    cantidad    = !string.IsNullOrEmpty(Request["cantidadToT" + i])
                            ? Convert.ToInt32(Request["cantidadToT" + i])
                            : 0;
                        int tiempo = !string.IsNullOrEmpty(Request["tiempoToT" + i])
                            ? Convert.ToInt32(Request["tiempoToT" + i])
                            : 0;
                        int precio = !string.IsNullOrEmpty(Request["precioToT" + i])
                            ? Convert.ToInt32(Request["precioToT" + i])
                            : 0;
                        int costo = !string.IsNullOrEmpty(Request["costoToT" + i])
                            ? Convert.ToInt32(Request["costoToT" + i])
                            : 0;
                        int iva = !string.IsNullOrEmpty(Request["ivaToT" + i])
                            ? Convert.ToInt32(Request["ivaToT" + i])
                            : 0;
                        int descuento = !string.IsNullOrEmpty(Request["descuentoToT" + i])
                            ? Convert.ToInt32(Request["descuentoToT" + i])
                            : 0;
                        int proveedor = !string.IsNullOrEmpty(Request["proveedorToT" + i])
                            ? Convert.ToInt32(Request["proveedorToT" + i])
                            : 0;

                        if (operacion != null)
                        {
                            context.tcotdetalletot.Add(new tcotdetalletot
                            {
                                idencab      = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.id : 0,
                                cantidad     = cantidad,
                                operacion    = operacion,
                                descripcion  = descripcion,
                                tiempo       = tiempo,
                                precio       = precio,
                                costo        = costo,
                                porceniva    = iva,
                                porcendescto = descuento,
                                proveedor    = proveedor
                            });
                        }
                    }

                    int guardarDetalles = context.SaveChanges();
                    if (guardarDetalles > 0)
                    {
                        // Actualiza los numeros consecutivos por documento
                        int grupoId = grupoConsecutivo != null ? grupoConsecutivo.grupo : 0;
                        System.Collections.Generic.List <icb_doc_consecutivos> gruposConsecutivos = context.icb_doc_consecutivos
                                                                                                    .Where(x => x.doccons_grupoconsecutivo == grupoId).ToList();
                        foreach (icb_doc_consecutivos grupo in gruposConsecutivos)
                        {
                            grupo.doccons_siguiente    = grupo.doccons_siguiente + 1;
                            context.Entry(grupo).State = EntityState.Modified;
                        }

                        context.SaveChanges();
                        TempData["mensaje"] = "El registro de la nueva cotizacion de taller fue exitosa!";
                    }
                    else
                    {
                        TempData["mensaje_error"] = "Error de conexion con la base de datos, por favor valide...";
                    }
                }
                else
                {
                    TempData["mensaje_error"] = "Error de conexion con la base de datos, por favor valide...";
                }
            }

            ListasDesplegables(modelo);
            BuscarFavoritos(menu);
            return(View());
        }
示例#6
0
        public ActionResult Create(icb_doc_consecutivos modelo, int?menu)
        {
            string bodegasSeleccionadas = Request["bodccs_cod"];

            if (ModelState.IsValid)
            {
                if (string.IsNullOrEmpty(bodegasSeleccionadas))
                {
                    TempData["mensaje_error"]    = "Debe asignar minimo una bodega!";
                    ViewBag.bodccs_cod           = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
                    ViewBag.doccons_idtpdoc      = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                    ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
                    ViewBag.tipoDocumentoElegido = modelo.doccons_idtpdoc;
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }

                if (!string.IsNullOrEmpty(bodegasSeleccionadas))
                {
                    // Verifica que alguna bodega no se encuentre ya asignada a este tipo de documento
                    string[] bodegasId              = bodegasSeleccionadas.Split(',');
                    string   bodegasYaASignadas     = "";
                    int      numeroBodegasAsignadas = 0;
                    foreach (string substring in bodegasId)
                    {
                        int bodegaEntero         = Convert.ToInt32(substring);
                        grupoconsecutivos buscar = context.grupoconsecutivos.FirstOrDefault(x =>
                                                                                            x.bodega_id == bodegaEntero && x.documento_id == modelo.doccons_idtpdoc);
                        if (buscar != null)
                        {
                            bodega_concesionario buscarBodega =
                                context.bodega_concesionario.FirstOrDefault(x => x.id == buscar.bodega_id);
                            bodegasYaASignadas += buscarBodega != null ? " , " + buscarBodega.bodccs_nombre : "";
                            numeroBodegasAsignadas++;
                        }
                    }

                    if (numeroBodegasAsignadas > 0)
                    {
                        TempData["mensaje_error"] = "La(s) siguientes bodega(s) ya esta asignada a este documento" +
                                                    bodegasYaASignadas;
                        ViewBag.bodccs_cod           = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
                        ViewBag.doccons_idtpdoc      = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                        ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
                        ViewBag.tipoDocumentoElegido = modelo.doccons_idtpdoc;
                        BuscarFavoritos(menu);
                        return(View(modelo));
                    }

                    grupoconsecutivos grupo = context.grupoconsecutivos.OrderByDescending(x => x.grupo).FirstOrDefault();
                    int numeroGrupo         = grupo != null ? grupo.grupo + 1 : 1;
                    //string[] bodegasId = bodegasSeleccionadas.Split(',');
                    foreach (string substring in bodegasId)
                    {
                        context.icb_doc_consecutivos.Add(new icb_doc_consecutivos
                        {
                            doccons_bodega           = Convert.ToInt32(substring),
                            doccons_idtpdoc          = modelo.doccons_idtpdoc,
                            doccons_siguiente        = modelo.doccons_siguiente,
                            doccons_feccreacion      = DateTime.Now,
                            doccons_usucreacion      = Convert.ToInt32(Session["user_usuarioid"]),
                            doccons_ano              = modelo.doccons_ano,
                            doccons_requiere_anio    = modelo.doccons_requiere_anio,
                            doccons_requiere_mes     = modelo.doccons_requiere_mes,
                            doccons_mes              = modelo.doccons_mes,
                            doccons_grupoconsecutivo = numeroGrupo
                        });

                        context.grupoconsecutivos.Add(new grupoconsecutivos
                        {
                            bodega_id    = Convert.ToInt32(substring),
                            documento_id = modelo.doccons_idtpdoc,
                            grupo        = numeroGrupo
                        });
                    }

                    int guardarBodegas = context.SaveChanges();
                    if (guardarBodegas > 0)
                    {
                        TempData["mensaje"] = "El registro del nuevo tipo de documento fue exitoso!";
                        return(RedirectToAction("Create", new { menu }));
                    }
                }
            }

            ViewBag.bodccs_cod           = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
            ViewBag.doccons_idtpdoc      = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
            ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
            ViewBag.tipoDocumentoElegido = modelo.doccons_idtpdoc;
            BuscarFavoritos(menu);
            return(View());
        }
示例#7
0
        public ActionResult update(icb_doc_consecutivos modelo, int?menu)
        {
            string bodegasSeleccionadas = Request["bodccs_cod"];
            int    grupo = Convert.ToInt32(Request["grupo"]);

            ViewBag.doccons_mes = modelo.doccons_mes;
            if (ModelState.IsValid)
            {
                if (string.IsNullOrEmpty(bodegasSeleccionadas))
                {
                    TempData["mensaje_error"]    = "Debe asignar minimo una bodega!";
                    ViewBag.bodccs_cod           = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
                    ViewBag.doccons_idtpdoc      = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                    ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
                    ViewBag.tipoDocumentoElegido = modelo.doccons_idtpdoc;
                    ViewBag.grupo = grupo;
                    BuscarFavoritos(menu);
                    return(View(modelo));
                }


                if (!string.IsNullOrEmpty(bodegasSeleccionadas))
                {
                    // Verifica que alguna bodega no se encuentre ya asignada a este tipo de documento
                    string[] bodegasId                    = bodegasSeleccionadas.Split(',');
                    string   bodegasYaASignadas           = "";
                    int      numeroBodegasAsignadas       = 0;
                    List <grupoconsecutivos> bodegasGrupo = context.grupoconsecutivos.Where(x => x.grupo == grupo).ToList();
                    foreach (string substring in bodegasId)
                    {
                        int bodegaEntero         = Convert.ToInt32(substring);
                        grupoconsecutivos buscar = context.grupoconsecutivos.FirstOrDefault(x =>
                                                                                            x.bodega_id == bodegaEntero && x.documento_id == modelo.doccons_idtpdoc);
                        if (buscar != null && buscar.grupo != grupo)
                        {
                            bodega_concesionario buscarBodega =
                                context.bodega_concesionario.FirstOrDefault(x => x.id == buscar.bodega_id);
                            bodegasYaASignadas += buscarBodega != null ? " , " + buscarBodega.bodccs_nombre : "";
                            numeroBodegasAsignadas++;
                        }
                    }

                    if (numeroBodegasAsignadas > 0)
                    {
                        TempData["mensaje_error"] = "La(s) siguientes bodega(s) ya esta asignada a este documento" +
                                                    bodegasYaASignadas;
                        ViewBag.bodccs_cod           = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
                        ViewBag.doccons_idtpdoc      = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
                        ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
                        ViewBag.tipoDocumentoElegido = modelo.doccons_idtpdoc;
                        ViewBag.grupo = grupo;
                        BuscarFavoritos(menu);
                        return(View(modelo));
                    }


                    foreach (grupoconsecutivos substring in bodegasGrupo)
                    {
                        const string query3 =
                            "DELETE FROM [dbo].[icb_doc_consecutivos] WHERE [doccons_idtpdoc]={0} AND [doccons_bodega]={1}";
                        int rows3 = context.Database.ExecuteSqlCommand(query3, modelo.doccons_idtpdoc,
                                                                       substring.bodega_id);
                    }


                    //var Ultimogrupo = context.grupoconsecutivos.OrderByDescending(x => x.grupo).FirstOrDefault();
                    //var numeroGrupo = Ultimogrupo != null ? Ultimogrupo.grupo : 1;
                    const string query4 = "DELETE FROM [dbo].[grupoconsecutivos] WHERE [grupo]={0}";
                    int          rows4  = context.Database.ExecuteSqlCommand(query4, grupo);


                    foreach (string substring in bodegasId)
                    {
                        context.icb_doc_consecutivos.Add(new icb_doc_consecutivos
                        {
                            doccons_bodega           = Convert.ToInt32(substring),
                            doccons_idtpdoc          = modelo.doccons_idtpdoc,
                            doccons_siguiente        = modelo.doccons_siguiente,
                            doccons_feccreacion      = DateTime.Now,
                            doccons_usucreacion      = Convert.ToInt32(Session["user_usuarioid"]),
                            doccons_ano              = modelo.doccons_ano,
                            doccons_requiere_anio    = modelo.doccons_requiere_anio,
                            doccons_requiere_mes     = modelo.doccons_requiere_mes,
                            doccons_mes              = modelo.doccons_mes,
                            doccons_grupoconsecutivo = grupo
                        });

                        context.grupoconsecutivos.Add(new grupoconsecutivos
                        {
                            bodega_id    = Convert.ToInt32(substring),
                            documento_id = modelo.doccons_idtpdoc,
                            grupo        = grupo
                        });
                    }

                    int guardarBodegas = context.SaveChanges();
                    if (guardarBodegas > 0)
                    {
                        TempData["mensaje"] = "El registro se ha actualizado con exito";
                    }
                }
            }

            ViewBag.bodccs_cod           = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
            ViewBag.doccons_idtpdoc      = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
            ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
            ViewBag.tipoDocumentoElegido = modelo.doccons_idtpdoc;
            ViewBag.grupo = grupo;
            BuscarFavoritos(menu);
            return(View());
        }
示例#8
0
        public ActionResult update(int?id, int?menu)
        {
            //valida si el id es null
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            List <grupoconsecutivos> grupo = context.grupoconsecutivos.Where(x => x.grupo == id).ToList();

            if (grupo.Count <= 0)
            {
                return(HttpNotFound());
            }

            ViewBag.bodccs_cod = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();

            string bodegasString = "";
            bool   primera       = true;

            foreach (grupoconsecutivos item in grupo)
            {
                if (primera)
                {
                    bodegasString += item.bodega_id;
                    primera        = !primera;
                }
                else
                {
                    bodegasString += "," + item.bodega_id;
                }
            }

            ViewBag.bodegasSeleccionadas = bodegasString;
            ViewBag.grupo           = grupo.FirstOrDefault().grupo;
            ViewBag.bodccs_cod      = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
            ViewBag.doccons_idtpdoc = context.tp_doc_registros.OrderBy(x => x.tpdoc_nombre).ToList();
            int tipoDocumento    = grupo.FirstOrDefault().documento_id;
            int bodega           = grupo.FirstOrDefault().bodega_id;
            var buscaConsecutivo = (from documento in context.tp_doc_registros
                                    join consecutivo in context.icb_doc_consecutivos
                                    on documento.tpdoc_id equals consecutivo.doccons_idtpdoc
                                    where consecutivo.doccons_idtpdoc == tipoDocumento &&
                                    consecutivo.doccons_bodega == bodega
                                    select new
            {
                consecutivo.doccons_siguiente,
                consecutivo.doccons_idtpdoc,
                consecutivo.doccons_ano,
                consecutivo.doccons_requiere_anio,
                consecutivo.doccons_mes,
                consecutivo.doccons_requiere_mes
            }).FirstOrDefault();
            icb_doc_consecutivos modelo = new icb_doc_consecutivos
            {
                doccons_siguiente     = buscaConsecutivo != null ? buscaConsecutivo.doccons_siguiente : 0,
                doccons_idtpdoc       = buscaConsecutivo != null ? buscaConsecutivo.doccons_idtpdoc : 0,
                doccons_ano           = buscaConsecutivo != null ? buscaConsecutivo.doccons_ano : 0,
                doccons_requiere_anio = buscaConsecutivo != null ? buscaConsecutivo.doccons_requiere_anio : false,
                doccons_mes           = buscaConsecutivo != null ? buscaConsecutivo.doccons_mes : 0,
                doccons_requiere_mes  = buscaConsecutivo != null ? buscaConsecutivo.doccons_requiere_mes : false
            };

            ViewBag.tipoDocumentoElegido = buscaConsecutivo != null ? buscaConsecutivo.doccons_idtpdoc : 0;
            ViewBag.doccons_mes          = buscaConsecutivo != null ? buscaConsecutivo.doccons_mes : 0;
            BuscarFavoritos(menu);
            return(View(modelo));
        }