Example #1
0
        public icb_doc_consecutivos BuscarConsecutivo(tp_doc_registros tp_doc, int id_tipo_documento, int id_bodega)
        {
            int anioActual = DateTime.Now.Year;
            int mesActual  = DateTime.Now.Month;

            if (tp_doc.consecano)
            {
                return(context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_idtpdoc == id_tipo_documento && x.doccons_bodega == id_bodega && x.doccons_ano == anioActual));
            }
            else if (tp_doc.consecmes)
            {
                return(context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_idtpdoc == id_tipo_documento && x.doccons_bodega == id_bodega && x.doccons_ano == anioActual && x.doccons_mes == mesActual));
            }
            else
            {
                return(context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_idtpdoc == id_tipo_documento && x.doccons_bodega == id_bodega));
            }
        }
Example #2
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());
        }
Example #3
0
        public ActionResult Crear(TpDocRegistroModel tipoDoc, int?menu)
        {
            //var bodegasSeleccionadas = Request["bodccs_cod"];
            if (ModelState.IsValid)
            {
                //if (string.IsNullOrEmpty(bodegasSeleccionadas))
                //{
                //    TempData["mensaje_error"] = "Debe asignar minimo una bodega!";
                //    ViewBag.sw = new SelectList(context.tp_doc_sw, "tpdoc_id", "Descripcion", tipo.sw);
                //    ViewBag.bodccs_cod = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
                //    ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
                //    return View(tipo);
                //}

                //var numeroSiguiente = Request["numeroConsecutivo"] != "" ? Convert.ToInt32(Request["numeroConsecutivo"]) : 0;
                //consulta si el registro esta en BD
                int nom = (from a in context.tp_doc_registros
                           where a.prefijo == tipoDoc.prefijo || a.tpdoc_id == tipoDoc.tpdoc_id
                           select a.tpdoc_nombre).Count();

                if (nom == 0)
                {
                    var tipoDoc2 = new tp_doc_registros
                    {
                        aplicaniff         = tipoDoc.aplicaniff,
                        baseica            = tipoDoc.baseica,
                        baseiva            = tipoDoc.baseiva,
                        baseret1           = tipoDoc.baseret1,
                        baseret2           = tipoDoc.baseret2,
                        baseretencion      = tipoDoc.baseretencion,
                        bodega             = tipoDoc.bodega,
                        concepto1          = tipoDoc.concepto1,
                        concepto2          = tipoDoc.concepto2,
                        consecano          = tipoDoc.consecano,
                        consecmes          = tipoDoc.consecmes,
                        prefijo            = tipoDoc.prefijo,
                        ret1               = tipoDoc.ret1,
                        ret2               = tipoDoc.ret2,
                        retencion          = tipoDoc.retencion,
                        retica             = tipoDoc.retica,
                        retiva             = tipoDoc.retiva,
                        sw                 = tipoDoc.sw,
                        texto1             = tipoDoc.texto1,
                        texto2             = tipoDoc.texto2,
                        texto3             = tipoDoc.texto3,
                        texto4             = tipoDoc.texto4,
                        tipo               = tipoDoc.tipo,
                        tpdocid_licencia   = tipoDoc.tpdocid_licencia,
                        tpdocrazoninactivo = tipoDoc.tpdocrazoninactivo,
                        tpdoc_estado       = tipoDoc.tpdoc_estado,
                        tpdoc_nombre       = tipoDoc.tpdoc_nombre,
                    };
                    if (tipoDoc.interno == true)
                    {
                        tipoDoc2.interno = true;
                        tipoDoc2.doc_interno_asociado = tipoDoc.doc_interno_asociado;
                        tipoDoc2.entrada_salida       = tipoDoc.entrada_salida;
                    }
                    else
                    {
                        tipoDoc2.interno = false;
                    }
                    tipoDoc2.tpdocfec_creacion    = DateTime.Now;
                    tipoDoc2.tpdocuserid_creacion = Convert.ToInt32(Session["user_usuarioid"]);
                    context.tp_doc_registros.Add(tipoDoc2);
                    int guardar = context.SaveChanges();
                    if (guardar > 0)
                    {
                        tp_doc_registros ultimoPrefijo = context.tp_doc_registros.Where(x => x.tpdoc_id == tipoDoc2.tpdoc_id)
                                                         .FirstOrDefault();
                        // Primero se agregan los conceptos en caso de que existan
                        int conceptos1 = Convert.ToInt32(Request["numeroConcepto1"]);
                        int conceptos2 = Convert.ToInt32(Request["numeroConcepto2"]);

                        for (int i = 1; i <= conceptos1; i++)
                        {
                            string concepto = Request["conceptoUno" + i];
                            if (!string.IsNullOrEmpty(concepto))
                            {
                                context.tpdocconceptos.Add(new tpdocconceptos
                                {
                                    tipodocid       = ultimoPrefijo.tpdoc_id,
                                    Descripcion     = concepto,
                                    fec_creacion    = DateTime.Now,
                                    userid_creacion = Convert.ToInt32(Session["user_usuarioid"])
                                });
                            }
                        }

                        for (int i = 1; i <= conceptos2; i++)
                        {
                            string concepto = Request["conceptoDos" + i];
                            if (!string.IsNullOrEmpty(concepto))
                            {
                                context.tpdocconceptos2.Add(new tpdocconceptos2
                                {
                                    tipodocid       = ultimoPrefijo.tpdoc_id,
                                    Descripcion     = concepto,
                                    fec_creacion    = DateTime.Now,
                                    userid_creacion = Convert.ToInt32(Session["user_usuarioid"])
                                });
                            }
                        }

                        //Se agregan los datos del usuario, una vez agregado se agregan las bodegas de ese usuario en la tabla bodega_usuario
                        //if (!string.IsNullOrEmpty(bodegasSeleccionadas))
                        //{
                        //    var grupo = context.grupoconsecutivos.OrderByDescending(x => x.id).FirstOrDefault();
                        //    var numeroGrupo = grupo != null ? grupo.grupo + 1 : 1;
                        //    string[] bodegasId = bodegasSeleccionadas.Split(',');
                        //    foreach (var substring in bodegasId)
                        //    {
                        //        context.icb_doc_consecutivos.Add(new icb_doc_consecutivos
                        //        {
                        //            doccons_bodega = Convert.ToInt32(substring),
                        //            doccons_idtpdoc = ultimoPrefijo.tpdoc_id,
                        //            doccons_siguiente = numeroSiguiente,
                        //            doccons_feccreacion = DateTime.Now,
                        //            doccons_usucreacion = Convert.ToInt32(Session["user_usuarioid"])
                        //        });
                        //        context.grupoconsecutivos.Add(new grupoconsecutivos
                        //        {
                        //            bodega_id = Convert.ToInt32(substring),
                        //            documento_id = ultimoPrefijo.tpdoc_id,
                        //            grupo = numeroGrupo
                        //        });
                        //    }
                        //    var guardarBodegas = context.SaveChanges();
                        //}

                        context.SaveChanges();

                        TempData["mensaje"] = "El registro del nuevo prefijo de documento fue exitoso!";
                        return(RedirectToAction("Crear", new { id = tipoDoc.tpdoc_id, menu }));
                    }
                }
                else
                {
                    TempData["mensaje_error"] = "El registro que ingreso ya se encuentra, por favor valide!";
                }
            }

            TempData["mensaje_vacio"] = "Campos vacios, por favor valide!";
            ParametrosVista();
            ViewBag.sw = new SelectList(context.tp_doc_sw.OrderBy(x => x.Descripcion), "tpdoc_id", "Descripcion",
                                        tipoDoc.sw);
            ViewBag.tipo = new SelectList(context.tp_doc_registros_tipo.OrderBy(x => x.descripcion), "id",
                                          "descripcion");
            ViewBag.bodccs_cod           = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList();
            ViewBag.doc_interno_asociado = new SelectList(context.tp_doc_registros.Where(d => d.interno == true && d.tpdoc_estado == true), "tpdoc_id", "tpdoc_nombre", tipoDoc.doc_interno_asociado);

            //ViewBag.bodegasSeleccionadas = bodegasSeleccionadas;
            BuscarFavoritos(menu);
            return(View(tipoDoc));
        }
Example #4
0
        public bool GuardarDatosConceptosYBodegas(tp_doc_registros tipo /*, string bodegasSeleccionadas*/)
        {
            // Primero se agregan los conceptos en caso de que existan
            int conceptos1 = Convert.ToInt32(Request["numeroConcepto1"]);
            int conceptos2 = Convert.ToInt32(Request["numeroConcepto2"]);

            //const string query = "DELETE FROM [dbo].[tpdocconceptos] WHERE [tipodocid]={0}"; //se comentarea la sentencia por que ya no se va a borrar la tabla
            //var rows = context.Database.ExecuteSqlCommand(query, tipo.tpdoc_id);//se comentarea la sentencia por que ya no se va a borrar la tabla
            try
            {
                for (int j = 1; j <= conceptos1; j++)
                {
                    int    idConcepto = Convert.ToInt32(Request["idconceptoUno" + j]);
                    string concepto   = Request["conceptoUno" + j];
                    int    existe     = context.encab_documento.Where(x => x.concepto == idConcepto).Count();
                    if (existe == 0)
                    {
                        tpdocconceptos coincidencia = context.tpdocconceptos.FirstOrDefault(x =>
                                                                                            x.tipodocid == tipo.tpdoc_id && x.Descripcion == concepto);
                        if (coincidencia == null)
                        {
                            context.tpdocconceptos.Add(new tpdocconceptos
                            {
                                tipodocid       = tipo.tpdoc_id,
                                Descripcion     = concepto,
                                fec_creacion    = DateTime.Now,
                                userid_creacion = Convert.ToInt32(Session["user_usuarioid"])
                            });
                        }

                        context.SaveChanges();
                    }
                }
            }
            catch (Exception)
            {
                return(false);

                throw;
            }

            //const string query2 = "DELETE FROM [dbo].[tpdocconceptos2] WHERE [tipodocid]={0}";
            //var rows2 = context.Database.ExecuteSqlCommand(query2, tipo.tpdoc_id);
            try
            {
                for (int j = 1; j <= conceptos2; j++)
                {
                    int    idConcepto = Convert.ToInt32(Request["idconceptoDos" + j]);
                    string concepto   = Request["conceptoDos" + j];
                    int    existe     = context.encab_documento.Where(x => x.concepto == idConcepto).Count();
                    if (existe == 0)
                    {
                        tpdocconceptos coincidencia = context.tpdocconceptos.FirstOrDefault(x =>
                                                                                            x.tipodocid == tipo.tpdoc_id && x.Descripcion == concepto);
                        if (coincidencia == null)
                        {
                            context.tpdocconceptos2.Add(new tpdocconceptos2
                            {
                                tipodocid       = tipo.tpdoc_id,
                                Descripcion     = concepto,
                                fec_creacion    = DateTime.Now,
                                userid_creacion = Convert.ToInt32(Session["user_usuarioid"])
                            });
                        }

                        context.SaveChanges();
                    }
                }
            }
            catch (Exception)
            {
                return(false);

                throw;
            }

            return(true);

            #region Codigo comentado

            //Se agregan los datos del usuario, una vez agregado se agregan las bodegas de ese usuario en la tabla bodega_usuario
            //var numeroSiguiente = Request["numeroConsecutivo"] != "" ? Convert.ToInt32(Request["numeroConsecutivo"]) : 0;
            //if (!string.IsNullOrEmpty(bodegasSeleccionadas))
            //{
            //    const string query3 = "DELETE FROM [dbo].[icb_doc_consecutivos] WHERE [doccons_idtpdoc]={0}";
            //    var rows3 = context.Database.ExecuteSqlCommand(query3, tipo.tpdoc_id);
            //    var grupo = context.grupoconsecutivos.OrderByDescending(x => x.grupo).FirstOrDefault();
            //    var numeroGrupo = grupo != null ? grupo.grupo + 1 : 1;
            //    const string query4 = "DELETE FROM [dbo].[grupoconsecutivos] WHERE [documento_id]={0}";
            //    var rows4 = context.Database.ExecuteSqlCommand(query4, tipo.tpdoc_id);
            //    string[] bodegasId = bodegasSeleccionadas.Split(',');
            //    foreach (var substring in bodegasId)
            //    {
            //        context.icb_doc_consecutivos.Add(new icb_doc_consecutivos
            //        {
            //            doccons_bodega = Convert.ToInt32(substring),
            //            doccons_idtpdoc = tipo.tpdoc_id,
            //            doccons_siguiente = numeroSiguiente,
            //            doccons_feccreacion = DateTime.Now,
            //            doccons_usucreacion = Convert.ToInt32(Session["user_usuarioid"])
            //        });
            //        context.grupoconsecutivos.Add(new grupoconsecutivos
            //        {
            //            bodega_id = Convert.ToInt32(substring),
            //            documento_id = tipo.tpdoc_id,
            //            grupo = numeroGrupo
            //        });
            //    }
            //    var guardarBodegas = context.SaveChanges();
            //}

            #endregion
        }
Example #5
0
        public ActionResult update(int?id, int?menu)
        {
            //valida si el id es null
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            tp_doc_registros tipo2 = context.tp_doc_registros.Find(id);

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

            var tipo = new TpDocRegistroModel
            {
                aplicaniff           = tipo2.aplicaniff,
                baseica              = tipo2.baseica,
                baseiva              = tipo2.baseiva,
                baseret1             = tipo2.baseret1,
                baseret2             = tipo2.baseret2,
                baseretencion        = tipo2.baseretencion,
                bodega               = tipo2.bodega,
                concepto1            = tipo2.concepto1,
                concepto2            = tipo2.concepto2,
                consecano            = tipo2.consecano,
                consecmes            = tipo2.consecmes,
                doc_interno_asociado = tipo2.doc_interno_asociado,
                entrada_salida       = tipo2.entrada_salida != null?tipo2.entrada_salida.Value:false,
                interno              = tipo2.interno,
                prefijo              = tipo2.prefijo,
                ret1      = tipo2.ret1,
                ret2      = tipo2.ret2,
                retencion = tipo2.retencion,
                retica    = tipo2.retica,
                retiva    = tipo2.retiva,
                sw        = tipo2.sw,
                texto1    = tipo2.texto1,
                texto2    = tipo2.texto2,
                texto3    = tipo2.texto3,
                texto4    = tipo2.texto4,
                tipo      = tipo2.tipo,
                tpdocfec_actualizacion    = tipo2.tpdocfec_actualizacion,
                tpdocfec_creacion         = tipo2.tpdocfec_creacion,
                tpdocid_licencia          = tipo2.tpdocid_licencia,
                tpdocrazoninactivo        = tipo2.tpdocrazoninactivo,
                tpdocuserid_actualizacion = tipo2.tpdocuserid_actualizacion,
                tpdocuserid_creacion      = tipo2.tpdocuserid_creacion,
                tpdoc_estado = tipo2.tpdoc_estado,
                tpdoc_id     = tipo2.tpdoc_id,
                tpdoc_nombre = tipo2.tpdoc_nombre,
            };
            //consulta el nombre de usuario creacion con el id, lo envia a la vista a traves de ViewBag
            users creator = context.users.Find(tipo.tpdocuserid_creacion);

            ViewBag.user_nombre_cre = creator.user_nombre + " " + creator.user_apellido;

            //consulta el nombre de usuario actualizacion con el id, lo envia a la vista a traves de ViewBag
            users modificator = context.users.Find(tipo.tpdocuserid_actualizacion);

            if (modificator != null)
            {
                ViewBag.user_nombre_act = modificator.user_nombre + " " + modificator.user_apellido;
                ViewBag.user_fec_act    = modificator.userfec_actualizacion.ToString();
            }

            ParametrosVista();
            ViewBag.sw = new SelectList(context.tp_doc_sw.OrderBy(x => x.Descripcion), "tpdoc_id", "Descripcion",
                                        tipo.sw);
            ViewBag.tipo = new SelectList(context.tp_doc_registros_tipo.OrderBy(x => x.descripcion), "id",
                                          "descripcion");
            ViewBag.doc_interno_asociado = new SelectList(context.tp_doc_registros.Where(d => d.interno == true && d.tpdoc_estado == true && d.tpdoc_id != tipo.tpdoc_id), "tpdoc_id", "tpdoc_nombre", tipo.doc_interno_asociado);

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

            //var buscarBodegas = from bodegas in context.icb_doc_consecutivos
            //                    where bodegas.doccons_idtpdoc == id
            //                    select new { bodegas.doccons_bodega };
            //var bodegasString = "";
            //var primera = true;
            //foreach (var item in buscarBodegas)
            //{
            //    if (primera)
            //    {
            //        bodegasString += item.doccons_bodega;
            //        primera = !primera;
            //    }
            //    else
            //    {
            //        bodegasString += "," + item.doccons_bodega;
            //    }
            //}
            //ViewBag.bodegasSeleccionadas = bodegasString;
            //var buscarConsecutivo =  context.icb_doc_consecutivos.FirstOrDefault(x=>x.doccons_idtpdoc==id);
            //ViewBag.numeroConsecutivo = buscarConsecutivo != null ? buscarConsecutivo.doccons_siguiente : 0;
            BuscarFavoritos(menu);
            return(View(tipo));
        }
Example #6
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());
        }