예제 #1
0
        public ActionResult Ver(int?id, int?menu)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            encab_documento encabezado = context.encab_documento.Find(id);

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

            EntradaSalidaModel modelo = new EntradaSalidaModel
            {
                TipoDocumento  = encabezado.tipo,
                BodegaOrigen   = encabezado.bodega,
                PerfilContable = encabezado.perfilcontable ?? 0,
                encabezado_id  = encabezado.idencabezado,
                Notas          = encabezado.notas
            };

            ViewBag.documentoSeleccionado = encabezado.tipo;
            ViewBag.bodegaSeleccionada    = encabezado.bodega;
            ViewBag.perfilSeleccionado    = encabezado.perfilcontable;

            icb_sysparameter buscarTipoDoc = context.icb_sysparameter.FirstOrDefault(x => x.syspar_cod == "P44");
            int id_tipo_doc = buscarTipoDoc != null?Convert.ToInt32(buscarTipoDoc.syspar_value) : 0;

            ViewBag.tp_doc_registros = context.tp_doc_registros.Where(x => x.tipo == id_tipo_doc).ToList();
            BuscarFavoritos(menu);
            return(View(modelo));
        }
예제 #2
0
        public ActionResult Edit(int id, int?menu)
        {
            listas();

            encab_documento encabezado = context.encab_documento.Find(id);

            ViewBag.movimientos = context.mov_contable.Where(x => x.id_encab == encabezado.idencabezado).ToList();

            BuscarFavoritos(menu);

            return(View(encabezado));
        }
예제 #3
0
        // GET: /Edit/5
        public ActionResult Edit(int?id, int?menu)
        {
            listas();
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            encab_documento encabezado = context.encab_documento.Find(id);

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

            var prefijo = (from a in context.encab_documento
                           join t in context.tp_doc_registros
                           on a.tipo equals t.tpdoc_id
                           join b in context.encab_documento
                           on a.idencabezado equals b.prefijo
                           where b.idencabezado == encabezado.idencabezado
                           select new
            {
                id = a.idencabezado,
                t.prefijo,
                descripcion = t.tpdoc_nombre
            }).FirstOrDefault();

            icb_terceros          tercero = context.icb_terceros.Where(x => x.tercero_id == encabezado.nit).FirstOrDefault();
            List <SelectListItem> itemsU  = new List <SelectListItem>();

            string nombre = "(" + tercero.doc_tercero + ") - " + tercero.prinom_tercero + " " + tercero.segnom_tercero + " " + tercero.apellido_tercero + " " + tercero.segapellido_tercero;

            itemsU.Add(new SelectListItem {
                Text = nombre, Value = tercero.tercero_id.ToString()
            });

            ViewBag.nit = itemsU;

            ViewBag.idTercero      = encabezado.nit;
            ViewBag.idvendedor     = encabezado.vendedor;
            ViewBag.bodega         = encabezado.bodega;
            ViewBag.perfilcontable = encabezado.perfilcontable;
            ViewBag.prefijo        = prefijo != null ? prefijo.prefijo != null ? prefijo.prefijo : "" : "";
            ViewBag.descripcion    = prefijo != null ? prefijo.descripcion != null ? prefijo.descripcion : "" : "";
            ViewBag.bodega         = encabezado.bodega != null ? encabezado.bodega_concesionario.bodccs_nombre : "";
            ViewBag.bodegaid       = encabezado.bodega;
            BuscarFavoritos(menu);
            return(View(encabezado));
        }
예제 #4
0
        public ActionResult Edit(int id, int?menu)
        {
            listas();

            ViewBag.responsable = responsable();
            encab_documento encabezado = context.encab_documento.Find(id);

            ViewBag.movimientos = context.mov_contable.Where(x => x.id_encab == encabezado.idencabezado).ToList();
            caja_menor_encab caja = context.caja_menor_encab.FirstOrDefault(x => x.idencabezado == encabezado.idencabezado);

            ViewBag.caja_id = caja.cjm_id;
            BuscarFavoritos(menu);

            return(View(encabezado));
        }
예제 #5
0
 public ActionResult Edit(encab_documento encabezado, int?menu)
 {
     /*if (ModelState.IsValid)
      *          {
      *              encabezado.impoconsumo = 0;
      *              encabezado.fec_actualizacion = DateTime.Now;
      *              encabezado.fecha = DateTime.Now;
      *              encabezado.user_idactualizacion = Convert.ToInt32(Session["user_usuarioid"]);
      *              context.Entry(encabezado).State = EntityState.Modified;
      *              context.SaveChanges();
      *              TempData["mensaje"] = "registro actualizado correctamente";
      *              return RedirectToAction("Edit", new { id = encabezado.idencabezado });
      *          }*/
     BuscarFavoritos(menu);
     return(View(encabezado));
 }
예제 #6
0
        public ActionResult Edit(encab_documento encabezado)
        {
            if (ModelState.IsValid)
            {
                encabezado.impoconsumo          = 0;
                encabezado.fec_actualizacion    = DateTime.Now;
                encabezado.fecha                = DateTime.Now;
                encabezado.user_idactualizacion = Convert.ToInt32(Session["user_usuarioid"]);
                context.Entry(encabezado).State = EntityState.Modified;
                context.SaveChanges();
                TempData["mensaje"] = "registro actualizado correctamente";
                return(RedirectToAction("Edit", new { id = encabezado.idencabezado }));
            }

            return(View(encabezado));
        }
예제 #7
0
        // GET: /Edit/5
        public ActionResult Edit(int?id, int?menu)
        {
            listas();
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            encab_documento encabezado = context.encab_documento.Find(id);

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

            return(View(encabezado));
        }
예제 #8
0
        // GET: /Edit/5
        public ActionResult Edit(int?id, int?menu)
        {
            // listas();
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            encab_documento encabezado = context.encab_documento.Find(id);

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

            ViewBag.tipo = new SelectList(context.tp_doc_registros.Where(x => x.tipo == 23), "tpdoc_id",
                                          "tpdoc_nombre");

            var users = from u in context.users
                        select new
            {
                idTercero = u.user_id,
                nombre    = u.user_nombre,
                apellidos = u.user_apellido,
                u.user_numIdent
            };
            List <SelectListItem> itemsU = new List <SelectListItem>();

            foreach (var item in users)
            {
                string nombre = "(" + item.user_numIdent + ") - " + item.nombre + " " + item.apellidos;
                itemsU.Add(new SelectListItem {
                    Text = nombre, Value = item.idTercero.ToString()
                });
            }

            ViewBag.vendedor = itemsU;

            var bodegas = (from bodega in context.bodega_concesionario
                           select new
            {
                bodega.id,
                nombre = "(" + bodega.bodccs_cod + ") " + bodega.bodccs_nombre
            }).ToList();

            ViewBag.bodega = new SelectList(bodegas, "id", "nombre", encabezado.bodega);

            var terceros = (from tercero in context.icb_terceros
                            select new
            {
                tercero.tercero_id,
                tercero.doc_tercero,
                tercero.prinom_tercero,
                tercero.segnom_tercero,
                tercero.apellido_tercero,
                tercero.segapellido_tercero,
                tercero.tpdoc_id,
                tercero.razon_social
            }).ToList();
            var terceroNit = terceros.Select(c => new
            {
                c.tercero_id,
                nombre = c.tpdoc_id != 1
                    ? "(" + c.doc_tercero + ") " + c.prinom_tercero + " " + c.segnom_tercero + " " +
                         c.apellido_tercero + " " + c.segapellido_tercero
                    : "(" + c.doc_tercero + ") " + c.razon_social
            }).ToList();

            ViewBag.nit = new SelectList(terceroNit, "tercero_id", "nombre", encabezado.nit);

            var perfiles = (from b in context.perfil_contable_bodega
                            join t in context.perfil_contable_documento
                            on b.idperfil equals t.id
                            where b.idbodega == encabezado.bodega && t.tipo == encabezado.tipo
                            select new
            {
                id = b.idperfil,
                perfil = t.descripcion
            }).ToList();

            ViewBag.perfilcontable = new SelectList(perfiles, "id", "perfil", encabezado.perfilcontable);

            int factu = Convert.ToInt32(encabezado.documento);
            var buscarFacturasConSaldo = (from e in context.encab_documento
                                          join t in context.tp_doc_registros
                                          on e.tipo equals t.tpdoc_id
                                          join tp in context.tp_doc_registros_tipo
                                          on t.tipo equals tp.id
                                          where e.numero == factu && t.sw == 1
                                          select new
            {
                e.valor_total,
                tipo = t.prefijo,
                descripcion = t.tpdoc_nombre,
                numeroFactura = e.numero,                               // numero = 7
                valorTrans = e.valor_mercancia != null ? e.valor_mercancia : 0
            }).ToList();

            var datosDocu = buscarFacturasConSaldo.Select(x => new
            {
                valor_total = x.valor_total.ToString("N0"),
                //vencimiento1 = x.vencimiento.Value.ToString("yyyy/MM/dd", new CultureInfo("en-US")),
                x.tipo,
                x.descripcion,
                x.numeroFactura,
                val = x.valorTrans.ToString("N0")
            }).FirstOrDefault();

            ViewBag.idtipo      = datosDocu.tipo != null ? datosDocu.tipo : "";
            ViewBag.descripcion = datosDocu.descripcion != null ? datosDocu.descripcion : "";
            ViewBag.documento   = datosDocu.numeroFactura != null ? datosDocu.numeroFactura : 0;
            ViewBag.costo       = datosDocu.val != null ? datosDocu.val : "";
            ViewBag.valor_total = datosDocu.valor_total != null ? datosDocu.valor_total : "";
            return(View(encabezado));
        }
예제 #9
0
        public ActionResult Create(NotasContablesModel ncp)
        {
            if (ModelState.IsValid)
            {
                //consecutivo
                grupoconsecutivos grupo = context.grupoconsecutivos.FirstOrDefault(x =>
                                                                                   x.documento_id == ncp.tipo && x.bodega_id == ncp.bodega);
                if (grupo != null)
                {
                    DocumentoPorBodegaController doc = new DocumentoPorBodegaController();
                    long consecutivo = doc.BuscarConsecutivo(grupo.grupo);

                    //Encabezado documento
                    encab_documento encabezado = new encab_documento
                    {
                        tipo             = ncp.tipo,
                        numero           = consecutivo,
                        nit              = ncp.nit,
                        fecha            = DateTime.Now,
                        valor_total      = Convert.ToDecimal(ncp.valor_total),
                        iva              = Convert.ToDecimal(ncp.iva),
                        retencion        = Convert.ToDecimal(ncp.retencion),
                        retencion_ica    = Convert.ToDecimal(ncp.retencion_ica),
                        retencion_iva    = Convert.ToDecimal(ncp.retencion_iva),
                        vendedor         = ncp.vendedor,
                        documento        = ncp.documento,
                        prefijo          = ncp.prefijo,
                        valor_mercancia  = Convert.ToDecimal(ncp.costo),
                        nota1            = ncp.nota1,
                        userid_creacion  = Convert.ToInt32(Session["user_usuarioid"]),
                        fec_creacion     = DateTime.Now,
                        porcen_retencion =
                            float.Parse(ncp.por_retencion,
                                        CultureInfo
                                        .InvariantCulture), //esto se utiliza para que al guardar el dato en la BD me quede con la "," del decimal
                        porcen_reteiva =
                            float.Parse(ncp.por_retencion_iva,
                                        CultureInfo
                                        .InvariantCulture), //esto se utiliza para que al guardar el dato en la BD me quede con la "," del decimal
                        porcen_retica =
                            float.Parse(ncp.por_retencion_ica,
                                        CultureInfo
                                        .InvariantCulture), //esto se utiliza para que al guardar el dato en la BD me quede con la "," del decimal
                        perfilcontable = ncp.perfilcontable,
                        bodega         = ncp.bodega
                    };
                    context.encab_documento.Add(encabezado); // ***** ACTUALIZA ENCABEZADO *****

                    //valor aplicado tengo que actualizarlo en la factura a la que estoy generando la nota
                    //buscas la factura
                    if (!string.IsNullOrWhiteSpace(ncp.documento) && ncp.prefijo != null)
                    {
                        int             numerodocumento = Convert.ToInt32(ncp.documento);
                        encab_documento factura         = context.encab_documento
                                                          .Where(d => d.idencabezado == ncp.prefijo && d.numero == numerodocumento).FirstOrDefault();

                        if (factura != null)
                        {
                            int valoraplicado = Convert.ToInt32(factura.valor_aplicado) != null
                                ? Convert.ToInt32(factura.valor_aplicado)
                                : 0;

                            decimal nuevovalor = Convert.ToDecimal(valoraplicado) + Convert.ToDecimal(ncp.valor_total);
                            factura.valor_aplicado       = Convert.ToDecimal(nuevovalor);
                            context.Entry(factura).State = EntityState.Modified;
                            // si al crear la nota credito se selecciono factura se debe guardar el registro tambien en cruce documentos, de lo contrario NO
                            //Cruce documentos
                            cruce_documentos cd = new cruce_documentos
                            {
                                idtipo          = ncp.tipo,
                                numero          = consecutivo,
                                idtipoaplica    = Convert.ToInt32(ncp.tipofactura),
                                numeroaplica    = Convert.ToInt32(ncp.documento),
                                valor           = Convert.ToDecimal(ncp.valor_total),
                                fecha           = DateTime.Now,
                                fechacruce      = DateTime.Now,
                                userid_creacion = Convert.ToInt32(Session["user_usuarioid"])
                            };
                            context.cruce_documentos.Add(cd); // ***** ACTUALIZA CRUCE DE DOCUMENTOS *****
                        }
                    }

                    //movimiento contable
                    //buscamos en perfil cuenta documento, por medio del perfil seleccionado
                    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 == ncp.perfilcontable
                                                      select new
                    {
                        perfil.id,
                        perfil.id_nombre_parametro,
                        perfil.cuenta,
                        perfil.centro,
                        perfil.id_perfil,
                        nombreParametro.descripcion_parametro,
                        cuenta.cntpuc_numero
                    }).ToList();

                    int     secuencia     = 1;
                    decimal totalDebitos  = 0;
                    decimal totalCreditos = 0;

                    List <DocumentoDescuadradoModel> listaDescuadrados   = new List <DocumentoDescuadradoModel>();
                    List <cuentas_valores>           ids_cuentas_valores = new List <cuentas_valores>();
                    centro_costo centroValorCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0");
                    int          idCentroCero    = centroValorCero != null?Convert.ToInt32(centroValorCero.centcst_id) : 0;

                    foreach (var parametro in parametrosCuentasVerificar)
                    {
                        string descripcionParametro = context.paramcontablenombres
                                                      .FirstOrDefault(x => x.id == parametro.id_nombre_parametro).descripcion_parametro;
                        cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta);

                        if (buscarCuenta != null)
                        {
                            if (parametro.id_nombre_parametro == 2 && Convert.ToDecimal(ncp.iva) != 0 ||
                                parametro.id_nombre_parametro == 3 && Convert.ToDecimal(ncp.retencion) != 0 ||
                                parametro.id_nombre_parametro == 4 && Convert.ToDecimal(ncp.por_retencion_iva) != 0 ||
                                parametro.id_nombre_parametro == 5 && Convert.ToDecimal(ncp.retencion_ica) != 0 ||
                                parametro.id_nombre_parametro == 1 ||
                                parametro.id_nombre_parametro == 9)
                            {
                                mov_contable movNuevo = new mov_contable
                                {
                                    id_encab          = ncp.id_encab,
                                    seq               = secuencia,
                                    idparametronombre = parametro.id_nombre_parametro,
                                    cuenta            = parametro.cuenta,
                                    centro            = parametro.centro,
                                    fec               = DateTime.Now,
                                    fec_creacion      = DateTime.Now,
                                    userid_creacion   = Convert.ToInt32(Session["user_usuarioid"]),
                                    detalle           = ncp.nota1
                                };

                                cuenta_puc info = context.cuenta_puc.Where(i => i.cntpuc_id == parametro.cuenta)
                                                  .FirstOrDefault();

                                if (info.tercero)
                                {
                                    movNuevo.nit = ncp.nit;
                                }
                                else
                                {
                                    icb_terceros tercero = context.icb_terceros.Where(t => t.doc_tercero == "0")
                                                           .FirstOrDefault();
                                    movNuevo.nit = tercero.tercero_id;
                                }

                                // las siguientes validaciones se hacen dependiendo de la cuenta que esta moviendo la nota credito, para guardar la informacion acorde
                                if (parametro.id_nombre_parametro == 1) // if (parametro.id_nombre_parametro == 10)
                                {
                                    /*if (info.aplicaniff==true)
                                     *                      {
                                     *
                                     *                      }*/

                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(ncp.costo);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = ncp.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        //movNuevo.credito = Convert.ToDecimal(ncp.valor_total);
                                        //movNuevo.debito = 0;

                                        //movNuevo.creditoniif = Convert.ToDecimal(ncp.valor_total);
                                        //movNuevo.debitoniif = 0;
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(ncp.valor_total);

                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.valor_total);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.valor_total);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(ncp.valor_total);
                                    }
                                }

                                if (parametro.id_nombre_parametro == 9) // credito
                                {
                                    /*if (info.aplicaniff == true)
                                     *                      {
                                     *
                                     *                      }*/

                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(ncp.costo);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = ncp.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito = Convert.ToDecimal(ncp.costo);
                                        movNuevo.debito  = 0;

                                        movNuevo.creditoniif = Convert.ToDecimal(ncp.costo);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = Convert.ToDecimal(ncp.costo);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = Convert.ToDecimal(ncp.costo);
                                        movNuevo.debito  = 0;
                                    }
                                }

                                if (parametro.id_nombre_parametro == 2) // credito
                                {
                                    /*if (info.aplicaniff == true)
                                     *                      {
                                     *
                                     *                      }*/

                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(ncp.costo);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = ncp.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito     = Convert.ToDecimal(ncp.iva);
                                        movNuevo.debito      = 0;
                                        movNuevo.creditoniif = Convert.ToDecimal(ncp.iva);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = Convert.ToDecimal(ncp.iva);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = Convert.ToDecimal(ncp.iva);
                                        movNuevo.debito  = 0;
                                    }
                                }

                                if (parametro.id_nombre_parametro == 3)
                                {
                                    /*if (info.aplicaniff == true)
                                     *                      {
                                     *
                                     *                      }*/

                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(ncp.costo);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = ncp.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(ncp.retencion);

                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.retencion);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.retencion);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(ncp.retencion);
                                    }
                                }

                                if (parametro.id_nombre_parametro == 4)
                                {
                                    /*if (info.aplicaniff == true)
                                     *                      {
                                     *
                                     *                      }*/

                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(ncp.iva);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = ncp.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(ncp.retencion_iva);

                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.retencion_iva);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.retencion_iva);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(ncp.retencion_iva);
                                    }
                                }

                                if (parametro.id_nombre_parametro == 5)
                                {
                                    /*if (info.aplicaniff == true)
                                     *                      {
                                     *
                                     *                      }*/

                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(ncp.costo);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = ncp.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito     = 0;
                                        movNuevo.debito      = Convert.ToDecimal(ncp.retencion_ica);
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.retencion_ica);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(ncp.retencion_ica);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(ncp.retencion_ica);
                                    }
                                }

                                secuencia++;

                                //Cuentas valores
                                cuentas_valores buscar_cuentas_valores = context.cuentas_valores.FirstOrDefault(x =>
                                                                                                                x.centro == parametro.centro && x.cuenta == parametro.cuenta &&
                                                                                                                x.nit == movNuevo.nit);
                                if (buscar_cuentas_valores != null)
                                {
                                    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
                                {
                                    DateTime        fechaHoy         = DateTime.Now;
                                    cuentas_valores crearCuentaValor = new cuentas_valores
                                    {
                                        ano         = fechaHoy.Year,
                                        mes         = fechaHoy.Month,
                                        cuenta      = movNuevo.cuenta,
                                        centro      = movNuevo.centro,
                                        nit         = movNuevo.nit,
                                        debito      = movNuevo.debito,
                                        credito     = movNuevo.credito,
                                        debitoniff  = movNuevo.debitoniif,
                                        creditoniff = movNuevo.creditoniif
                                    };
                                    context.cuentas_valores
                                    .Add(crearCuentaValor);     // ***** ACTUALIZA CUENTA VALORES *****
                                }

                                context.mov_contable.Add(movNuevo); // ***** ACTUALIZA MOV CONTABLES *****

                                totalCreditos += movNuevo.credito;
                                totalDebitos  += movNuevo.debito;

                                listaDescuadrados.Add(
                                    new DocumentoDescuadradoModel // ***** ACTUALIZA listaDescuadrados *****
                                {
                                    NumeroCuenta         = "(" + info.cntpuc_numero + ")" + info.cntpuc_descp,
                                    DescripcionParametro = descripcionParametro,
                                    ValorDebito          = movNuevo.debito,
                                    ValorCredito         = movNuevo.credito
                                });
                            }
                        }
                    }

                    if (totalDebitos != totalCreditos)
                    {
                        TempData["mensaje_error"] =
                            "El documento no tiene los movimientos calculados correctamente, verifique el perfil del documento";

                        ViewBag.documentoSeleccionado = encabezado.tipo;
                        ViewBag.bodegaSeleccionado    = encabezado.bodega;
                        ViewBag.perfilSeleccionado    = encabezado.perfilcontable;

                        ViewBag.documentoDescuadrado = listaDescuadrados;
                        ViewBag.calculoDebito        = totalDebitos;
                        ViewBag.calculoCredito       = totalCreditos;

                        listas();
                        return(View(ncp));
                    }

                    context.SaveChanges();
                    TempData["mensaje"] = "registro creado correctamente";
                    DocumentoPorBodegaController conse = new DocumentoPorBodegaController();
                    doc.ActualizarConsecutivo(grupo.grupo, consecutivo);

                    return(RedirectToAction("Create"));
                }

                TempData["mensaje_error"] = "no hay consecutivo";
            }
            else
            {
                TempData["mensaje_error"] = "No fue posible guardar el registro, por favor valide";
                List <ModelErrorCollection> errors = ModelState.Select(x => x.Value.Errors)
                                                     .Where(y => y.Count > 0)
                                                     .ToList();
            }

            listas();
            return(View(ncp));
        }
예제 #10
0
        public void listas()
        {
            //var buscarTipoDocumento = (from tipoDocumento in context.tp_doc_registros
            //                           select new
            //                           {
            //                               tipoDocumento.sw,
            //                               tipoDocumento.tpdoc_id,
            //                               nombre = "(" + tipoDocumento.prefijo + ") " + tipoDocumento.tpdoc_nombre,
            //                               tipoDocumento.tipo
            //                           }).ToList();
            //ViewBag.tipo_documentoFiltro = new SelectList(buscarTipoDocumento.Where(x => x.sw == 3), "tpdoc_id", "nombre");

            var buscarTipoDocumento = (from tipoDocumento in context.tp_doc_registros
                                       select new
            {
                tipoDocumento.sw,
                tipoDocumento.tpdoc_id,
                nombre = "(" + tipoDocumento.prefijo + ") " + tipoDocumento.tpdoc_nombre,
                tipoDocumento.tipo
            }).ToList();

            ViewBag.tipo_documentoFiltro =
                new SelectList(buscarTipoDocumento.Where(x => x.sw == 1), "tpdoc_id", "nombre");


            ViewBag.tipo = new SelectList(context.tp_doc_registros.Where(x => x.tipo == 23), "tpdoc_id",
                                          "tpdoc_nombre");


            var users = from u in context.users
                        select new
            {
                idTercero = u.user_id,
                nombre    = u.user_nombre,
                apellidos = u.user_apellido,
                u.user_numIdent
            };
            List <SelectListItem> itemsU = new List <SelectListItem>();

            foreach (var item in users)
            {
                string nombre = "(" + item.user_numIdent + ") - " + item.nombre + " " + item.apellidos;
                itemsU.Add(new SelectListItem {
                    Text = nombre, Value = item.idTercero.ToString()
                });
            }

            ViewBag.vendedor = itemsU;


            ViewBag.moneda       = new SelectList(context.monedas, "moneda", "descripcion");
            ViewBag.tasa         = new SelectList(context.moneda_conversion, "id", "conversion");
            ViewBag.motivocompra = new SelectList(context.motcompra, "id", "Motivo");

            ViewBag.condicion_pago = context.fpago_tercero;

            var provedores = from pro in context.tercero_proveedor
                             join ter in context.icb_terceros
                             on pro.tercero_id equals ter.tercero_id
                             select new
            {
                idTercero        = ter.tercero_id,
                nombreTErcero    = ter.prinom_tercero,
                apellidosTercero = ter.apellido_tercero,
                razonSocial      = ter.razon_social,
                ter.doc_tercero
            };
            List <SelectListItem> items = new List <SelectListItem>();

            foreach (var item in provedores)
            {
                string nombre = item.doc_tercero + " - " + item.nombreTErcero + " " + item.apellidosTercero + " " +
                                item.razonSocial;
                items.Add(new SelectListItem {
                    Text = nombre, Value = item.idTercero.ToString()
                });
            }

            ViewBag.nit = items;

            encab_documento buscarSerialUltimaNota =
                context.encab_documento.OrderByDescending(x => x.idencabezado).FirstOrDefault();

            ViewBag.numNotaCreado = buscarSerialUltimaNota != null ? buscarSerialUltimaNota.numero : 0;
        }
예제 #11
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());
        }
예제 #12
0
        public void listas(NoteDebitScheduleModel modelo)
        {
            icb_sysparameter vparam = context.icb_sysparameter.Where(d => d.syspar_cod == "P95").FirstOrDefault();
            int debitNote           = vparam != null?Convert.ToInt32(vparam.syspar_value) : 3038;

            var buscarTipoDocumento = (from tipoDocumento in context.tp_doc_registros
                                       select new
            {
                tipoDocumento.sw,
                tipoDocumento.tpdoc_id,
                nombre = "(" + tipoDocumento.prefijo + ") " + tipoDocumento.tpdoc_nombre,
                tipoDocumento.tipo
            }).ToList();

            ViewBag.tipo_documentoFiltro =
                new SelectList(buscarTipoDocumento.Where(x => x.sw == 3), "tpdoc_id", "nombre");

            ViewBag.tipo = new SelectList(context.tp_doc_registros.Where(x => x.tipo == 21), "tpdoc_id",
                                          "tpdoc_nombre");

            var users = from u in context.users
                        select new
            {
                idTercero = u.user_id,
                nombre    = u.user_nombre,
                apellidos = u.user_apellido,
                u.user_numIdent
            };
            List <SelectListItem> itemsU = new List <SelectListItem>();

            foreach (var item in users)
            {
                string nombre = "(" + item.user_numIdent + ") - " + item.nombre + " " + item.apellidos;
                itemsU.Add(new SelectListItem {
                    Text = nombre, Value = item.idTercero.ToString()
                });
            }

            ViewBag.vendedor = itemsU;


            ViewBag.moneda       = new SelectList(context.monedas, "moneda", "descripcion");
            ViewBag.tasa         = new SelectList(context.moneda_conversion, "id", "conversion");
            ViewBag.motivocompra = new SelectList(context.motcompra, "id", "Motivo");

            ViewBag.condicion_pago = context.fpago_tercero;

            var provedores = from pro in context.tercero_cliente
                             join ter in context.icb_terceros
                             on pro.tercero_id equals ter.tercero_id
                             select new
            {
                idTercero        = ter.tercero_id,
                nombreTErcero    = ter.prinom_tercero,
                apellidosTercero = ter.apellido_tercero,
                razonSocial      = ter.razon_social,
                ter.doc_tercero
            };
            List <SelectListItem> items = new List <SelectListItem>();

            foreach (var item in provedores)
            {
                string nombre = item.doc_tercero + " - " + item.nombreTErcero + " " + item.apellidosTercero + " " +
                                item.razonSocial;
                items.Add(new SelectListItem {
                    Text = nombre, Value = item.idTercero.ToString()
                });
            }

            ViewBag.nit = items;

            encab_documento buscarSerialUltimaNota = context.encab_documento.OrderByDescending(x => x.idencabezado)
                                                     .Where(d => d.tipo == debitNote).FirstOrDefault();

            ViewBag.numNotaCreado = buscarSerialUltimaNota != null ? buscarSerialUltimaNota.numero : 0;
            //busco el perfil contable del documento y si está disponible para esa bodega
            var perfilcon = context.perfil_contable_bodega.Where(d => d.idbodega == modelo.IdLarder && d.perfil_contable_documento.tipo == debitNote).FirstOrDefault();

            modelo.Document              = perfilcon != null ? perfilcon.perfil_contable_documento.tp_doc_registros.tpdoc_nombre : "";
            modelo.typeDocument          = perfilcon != null ? perfilcon.perfil_contable_documento.tp_doc_registros.tpdoc_id : 0;
            modelo.CountableProfile      = perfilcon != null ? perfilcon.perfil_contable_documento.id : 0;
            modelo.CountablenNameProfile = perfilcon != null
                ? perfilcon.perfil_contable_documento.descripcion
                : "";
            modelo.ReceiptValue = 0;
            modelo.Value        = 0;

            /*Tipo Cartera*/
            var listC = (from t in context.Tipos_Cartera
                         select new
            {
                t.id,
                nombre = t.descripcion
            }).ToList();

            List <SelectListItem> lista = new List <SelectListItem>();

            foreach (var item in listC)
            {
                lista.Add(new SelectListItem
                {
                    Text  = item.nombre,
                    Value = item.id.ToString()
                });
            }
            ViewBag.cartera = lista;
        }
예제 #13
0
        public ActionResult crearMatricula(int id, int tramitador_id, int cartera, string placa, int valor, string fechamatricula, string observacion, encab_documento encabezado)/*cartera,tramitador*/
        {
            placaVh(id, placa, fechamatricula);
            string                    mensaje  = "";
            int                       iduser   = Convert.ToInt32(Session["user_usuarioid"]);
            icb_tpeventos             tpevento = context.icb_tpeventos.Where(a => a.tpevento_nombre == "Matriculado").FirstOrDefault();
            vw_pendientesAlistamiento x        = context.vw_pendientesAlistamiento.FirstOrDefault(t => t.id == id);
            icb_terceros              tercero  = context.icb_terceros.Where(b => b.doc_tercero == x.doc_tercero).FirstOrDefault();
            icb_vehiculo              vh       = context.icb_vehiculo.Where(c => c.plan_mayor == x.plan_mayor).FirstOrDefault();
            icb_vehiculo_eventos      ve       = new icb_vehiculo_eventos
            {
                planmayor             = x.planmayor,
                eventofec_creacion    = DateTime.Now,
                eventouserid_creacion = iduser,
                evento_nombre         = "Matriculado",
                evento_estado         = true,
                bodega_id             = x.bodega,
                id_tpevento           = tpevento.tpevento_id,
                fechaevento           = DateTime.Now,
                terceroid             = tercero.tercero_id,
                placa = placa,
                vin   = vh.vin,
                evento_observacion = observacion,
                cartera_id         = cartera,/*cartera*/
            };

            if (encabezado.idencabezado != 0)
            {
                ve.idencabezado = encabezado.idencabezado;
                encabezado.id_pedido_vehiculo = id;
                vh.tramitador_id = tramitador_id;/*tramitador*/
            }
            context.icb_vehiculo_eventos.Add(ve);

            try
            {
                context.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                mensaje = e.Message;
            }

            return(Json(valor, JsonRequestBehavior.AllowGet));
        }
예제 #14
0
        public ActionResult Create(encab_documento encabezado, int?menu)
        {
            listas();

            string lista = Request["lista"];
            int    datos = Convert.ToInt32(lista);

            //consecutivo
            int grupo = context.grupoconsecutivos
                        .FirstOrDefault(x => x.documento_id == encabezado.tipo && x.bodega_id == encabezado.bodega).grupo;
            DocumentoPorBodegaController doc = new DocumentoPorBodegaController();
            long consecutivo = doc.BuscarConsecutivo(grupo);

            encabezado.numero          = consecutivo;
            encabezado.impoconsumo     = 0;
            encabezado.fec_creacion    = DateTime.Now;
            encabezado.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]);
            encabezado.estado          = true;
            context.encab_documento.Add(encabezado);
            context.SaveChanges();


            int prueba        = encabezado.idencabezado;
            int id_encabezado = context.encab_documento.OrderByDescending(x => x.idencabezado).FirstOrDefault()
                                .idencabezado;

            int total = Convert.ToInt32(lista);

            for (int i = 1; i <= total; i++)
            {
                if (!string.IsNullOrEmpty(Request["cuenta_" + i]))
                {
                    mov_contable mov = new mov_contable
                    {
                        id_encab          = id_encabezado,
                        seq               = i,
                        idparametronombre = 19,
                        cuenta            = Convert.ToInt32(Request["cuenta_" + i])
                    };

                    if (!string.IsNullOrEmpty(Request["centro_" + i]))
                    {
                        mov.centro = Convert.ToInt32(Request["centro_" + i]);
                    }
                    else
                    {
                        var centroCosto = (from c in context.centro_costo
                                           where c.pre_centcst == "0"
                                           select new
                        {
                            c.centcst_id
                        }).FirstOrDefault();

                        mov.centro = Convert.ToInt32(centroCosto.centcst_id);
                    }

                    if (!string.IsNullOrEmpty(Request["nit_" + i]))
                    {
                        mov.nit = Convert.ToInt32(Request["nit_" + i]);
                    }
                    else
                    {
                        var nitCero = (from t in context.icb_terceros
                                       where t.doc_tercero == "0"
                                       select new
                        {
                            t.tercero_id
                        }).FirstOrDefault();

                        mov.nit = Convert.ToInt32(nitCero.tercero_id);
                    }

                    if (!string.IsNullOrEmpty(Request["nitAdmin_" + i]))
                    {
                        mov.idterceroadmin = Convert.ToInt32(Request["nitAdmin_" + i]);
                    }

                    mov.fec = encabezado.fecha;
                    if (!string.IsNullOrEmpty(Request["debito_" + i]))
                    {
                        mov.debito = Convert.ToDecimal(Request["debito_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["credito_" + i]))
                    {
                        mov.credito = Convert.ToDecimal(Request["credito_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["base_" + i]))
                    {
                        mov.basecontable = Convert.ToDecimal(Request["debitoNiff_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["debitoNiff_" + i]))
                    {
                        mov.debitoniif = Convert.ToDecimal(Request["debitoNiff_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["creditoNiff_" + i]))
                    {
                        mov.creditoniif = Convert.ToDecimal(Request["creditoNiff_" + i]);
                    }

                    mov.detalle         = Request["detalle_" + i];
                    mov.fec_creacion    = DateTime.Now;
                    mov.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]);
                    mov.estado          = true;
                    context.mov_contable.Add(mov);
                    context.SaveChanges();
                }
            }

            DocumentoPorBodegaController conse = new DocumentoPorBodegaController();

            doc.ActualizarConsecutivo(grupo, consecutivo);

            TempData["mensaje"] = "Registro creado correctamente";

            context.SaveChanges();
            return(RedirectToAction("Create", new { id = encabezado.idencabezado, menu }));
        }
예제 #15
0
        public ActionResult Edit(encab_documento encabezado, int?menu)
        {
            listas();

            string lista = Request["lista"];
            int    datos = Convert.ToInt32(lista);

            encabezado.impoconsumo          = 0;
            encabezado.fec_actualizacion    = DateTime.Now;
            encabezado.user_idactualizacion = Convert.ToInt32(Session["user_usuarioid"]);
            encabezado.estado = true;
            context.Entry(encabezado).State = EntityState.Modified;

            string Query = "Delete from mov_contable where id_encab =" + encabezado.idencabezado;

            context.Database.ExecuteSqlCommand(Query);

            int total = Convert.ToInt32(lista);

            for (int i = 1; i <= total; i++)
            {
                if (!string.IsNullOrEmpty(Request["cuenta_" + i]))
                {
                    mov_contable mov = new mov_contable
                    {
                        id_encab          = encabezado.idencabezado,
                        seq               = i,
                        idparametronombre = 19,
                        cuenta            = Convert.ToInt32(Request["cuenta_" + i])
                    };
                    if (!string.IsNullOrEmpty(Request["centro_" + i]))
                    {
                        mov.centro = Convert.ToInt32(Request["centro_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["nit_" + i]))
                    {
                        mov.nit = Convert.ToInt32(Request["nit_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["nitAdmin_" + i]))
                    {
                        mov.idterceroadmin = Convert.ToInt32(Request["nitAdmin_" + i]);
                    }

                    mov.fec = encabezado.fecha;
                    if (!string.IsNullOrEmpty(Request["debito_" + i]))
                    {
                        string f = Request["debito_" + i];
                        mov.debito = Convert.ToDecimal(Request["debito_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["credito_" + i]))
                    {
                        mov.credito = Convert.ToDecimal(Request["credito_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["base_" + i]))
                    {
                        mov.basecontable = Convert.ToInt32(Request["debitoNiff_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["debitoNiff_" + i]))
                    {
                        mov.debitoniif = Convert.ToDecimal(Request["debitoNiff_" + i]);
                    }

                    if (!string.IsNullOrEmpty(Request["creditoNiff_" + i]))
                    {
                        mov.creditoniif = Convert.ToDecimal(Request["creditoNiff_" + i]);
                    }

                    mov.detalle         = Request["detalle_" + i];
                    mov.fec_creacion    = encabezado.fec_creacion;
                    mov.userid_creacion = encabezado.userid_creacion;
                    mov.estado          = true;
                    context.mov_contable.Add(mov);
                }
            }

            context.SaveChanges();
            TempData["mensaje"] = "Registro editado correctamente";
            BuscarFavoritos(menu);
            return(View(encabezado));
        }
예제 #16
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));
        }
예제 #17
0
        public ActionResult crearMatriculaND(int id, string placa, string observacion, int valor, string fechamatricula,
                                             int tipodoc, string bodega, string nit, string asesor, string perfilc, int tramitador_id, int cartera)
        {
            int response = 0;
            int idbodega = context.bodega_concesionario.Where(x => x.bodccs_nombre == bodega).Select(z => z.id)
                           .FirstOrDefault();
            int tpdocumento = context.tp_doc_registros.Where(x => x.tpdoc_id == tipodoc).Select(z => z.tpdoc_id)
                              .FirstOrDefault();
            int terceroid = context.icb_terceros.Where(x => x.doc_tercero == nit).Select(z => z.tercero_id)
                            .FirstOrDefault();
            int?idasesor = context.vw_pendientesEntrega.Where(x => x.asesor == asesor).Select(z => z.idAsesor)
                           .FirstOrDefault();
            int idperfilc = context.perfil_contable_documento.Where(x => x.tipo == tpdocumento).Select(z => z.id)
                            .FirstOrDefault();


            if (tramitador_id == 0 && cartera == 0)
            {
                tramitador_id = Convert.ToInt32(Session["user_usuarioid"]);
            }


            if (ModelState.IsValid)
            {
                //consecutivo
                grupoconsecutivos grupo = context.grupoconsecutivos.FirstOrDefault(x =>
                                                                                   x.documento_id == tpdocumento && x.bodega_id == idbodega);
                if (grupo != null)
                {
                    DocumentoPorBodegaController doc = new DocumentoPorBodegaController();
                    long consecutivo = doc.BuscarConsecutivo(grupo.grupo);

                    //Encabezado documento
                    encab_documento encabezado = new encab_documento
                    {
                        tipo               = tpdocumento,
                        numero             = consecutivo,
                        nit                = terceroid,
                        fecha              = DateTime.Now,
                        valor_total        = Convert.ToDecimal(valor),
                        iva                = Convert.ToDecimal(0),
                        retencion          = Convert.ToDecimal(0),
                        retencion_ica      = Convert.ToDecimal(0),
                        retencion_iva      = Convert.ToDecimal(0),
                        vendedor           = idasesor,
                        documento          = nit,
                        valor_mercancia    = Convert.ToDecimal(valor),
                        userid_creacion    = Convert.ToInt32(Session["user_usuarioid"]),
                        fec_creacion       = DateTime.Now,
                        porcen_retencion   = float.Parse("0", CultureInfo.InvariantCulture),
                        porcen_reteiva     = float.Parse("0", CultureInfo.InvariantCulture),
                        porcen_retica      = float.Parse("0", CultureInfo.InvariantCulture),
                        perfilcontable     = idperfilc,
                        bodega             = idbodega,
                        id_pedido_vehiculo = id
                    };
                    context.encab_documento.Add(encabezado);

                    //movimiento contable
                    //buscamos en perfil cuenta documento, por medio del perfil seleccionado
                    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 == idperfilc
                                                      select new
                    {
                        perfil.id,
                        perfil.id_nombre_parametro,
                        perfil.cuenta,
                        perfil.centro,
                        perfil.id_perfil,
                        nombreParametro.descripcion_parametro,
                        cuenta.cntpuc_numero
                    }).ToList();
                    int     secuencia     = 1;
                    decimal totalDebitos  = 0;
                    decimal totalCreditos = 0;

                    List <DocumentoDescuadradoModel> listaDescuadrados   = new List <DocumentoDescuadradoModel>();
                    List <cuentas_valores>           ids_cuentas_valores = new List <cuentas_valores>();
                    centro_costo centroValorCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0");
                    int          idCentroCero    = centroValorCero != null?Convert.ToInt32(centroValorCero.centcst_id) : 0;

                    foreach (var parametro in parametrosCuentasVerificar)
                    {
                        string descripcionParametro = context.paramcontablenombres
                                                      .FirstOrDefault(x => x.id == parametro.id_nombre_parametro).descripcion_parametro;
                        cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta);

                        if (buscarCuenta != null)
                        {
                            if (parametro.id_nombre_parametro == 2 && Convert.ToDecimal(0) != 0 ||
                                parametro.id_nombre_parametro == 3 && Convert.ToDecimal(0) != 0 ||
                                parametro.id_nombre_parametro == 4 && Convert.ToDecimal(0) != 0 ||
                                parametro.id_nombre_parametro == 5 && Convert.ToDecimal(0) != 0 ||
                                parametro.id_nombre_parametro == 10 ||
                                parametro.id_nombre_parametro == 11)
                            {
                                mov_contable movNuevo = new mov_contable
                                {
                                    id_encab          = 0,
                                    seq               = secuencia,
                                    idparametronombre = parametro.id_nombre_parametro,
                                    cuenta            = parametro.cuenta,
                                    centro            = parametro.centro,
                                    fec               = DateTime.Now,
                                    fec_creacion      = DateTime.Now,
                                    userid_creacion   = Convert.ToInt32(Session["user_usuarioid"])
                                };
                                //            movNuevo.detalle = ndm.nota1;

                                cuenta_puc info = context.cuenta_puc.Where(i => i.cntpuc_id == parametro.cuenta)
                                                  .FirstOrDefault();

                                if (info.tercero)
                                {
                                    movNuevo.nit = terceroid;
                                }
                                else
                                {
                                    icb_terceros tercero = context.icb_terceros.Where(t => t.doc_tercero == "0")
                                                           .FirstOrDefault();
                                    movNuevo.nit = tercero.tercero_id;
                                }

                                // las siguientes validaciones se hacen dependiendo de la cuenta que esta moviendo la nota credito, para guardar la informacion acorde
                                if (parametro.id_nombre_parametro == 10)
                                {
                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(valor);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = encabezado.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(valor);

                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(valor);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(valor);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(valor);
                                    }
                                }

                                if (parametro.id_nombre_parametro == 11)
                                {
                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(valor);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = encabezado.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito = Convert.ToDecimal(valor);
                                        movNuevo.debito  = 0;

                                        movNuevo.creditoniif = Convert.ToDecimal(valor);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = Convert.ToDecimal(valor);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = Convert.ToDecimal(valor);
                                        movNuevo.debito  = 0;
                                    }
                                }

                                if (parametro.id_nombre_parametro == 2)
                                {
                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(valor);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = encabezado.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito     = Convert.ToDecimal(encabezado.iva);
                                        movNuevo.debito      = 0;
                                        movNuevo.creditoniif = Convert.ToDecimal(encabezado.iva);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = Convert.ToDecimal(encabezado.iva);
                                        movNuevo.debitoniif  = 0;
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = Convert.ToDecimal(encabezado.iva);
                                        movNuevo.debito  = 0;
                                    }
                                }

                                if (parametro.id_nombre_parametro == 3 && Convert.ToDecimal(encabezado.retencion) != 0)
                                {
                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(valor);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = encabezado.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(encabezado.retencion);

                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(encabezado.retencion);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(encabezado.retencion);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(encabezado.retencion);
                                    }
                                }

                                if (parametro.id_nombre_parametro == 4)
                                {
                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(encabezado.iva);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = encabezado.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(encabezado.retencion_iva);

                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(encabezado.retencion_iva);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(encabezado.retencion_iva);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(encabezado.retencion_iva);
                                    }
                                }

                                if (parametro.id_nombre_parametro == 5)
                                {
                                    if (info.manejabase)
                                    {
                                        movNuevo.basecontable = Convert.ToDecimal(valor);
                                    }
                                    else
                                    {
                                        movNuevo.basecontable = 0;
                                    }

                                    if (info.documeto)
                                    {
                                        movNuevo.documento = encabezado.documento;
                                    }

                                    if (buscarCuenta.concepniff == 1)
                                    {
                                        movNuevo.credito     = 0;
                                        movNuevo.debito      = Convert.ToDecimal(encabezado.retencion_ica);
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(encabezado.retencion_ica);
                                    }

                                    if (buscarCuenta.concepniff == 4)
                                    {
                                        movNuevo.creditoniif = 0;
                                        movNuevo.debitoniif  = Convert.ToDecimal(encabezado.retencion_ica);
                                    }

                                    if (buscarCuenta.concepniff == 5)
                                    {
                                        movNuevo.credito = 0;
                                        movNuevo.debito  = Convert.ToDecimal(encabezado.retencion_ica);
                                    }
                                }

                                secuencia++;

                                //Cuentas valores
                                cuentas_valores buscar_cuentas_valores = context.cuentas_valores.FirstOrDefault(x =>
                                                                                                                x.centro == parametro.centro && x.cuenta == parametro.cuenta &&
                                                                                                                x.nit == movNuevo.nit);
                                if (buscar_cuentas_valores != null)
                                {
                                    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
                                {
                                    DateTime        fechaHoy         = DateTime.Now;
                                    cuentas_valores crearCuentaValor = new cuentas_valores
                                    {
                                        ano         = fechaHoy.Year,
                                        mes         = fechaHoy.Month,
                                        cuenta      = movNuevo.cuenta,
                                        centro      = movNuevo.centro,
                                        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);

                                totalCreditos += movNuevo.credito;
                                totalDebitos  += movNuevo.debito;

                                listaDescuadrados.Add(new DocumentoDescuadradoModel
                                {
                                    NumeroCuenta         = "(" + info.cntpuc_numero + ")" + info.cntpuc_descp,
                                    DescripcionParametro = descripcionParametro,
                                    ValorDebito          = movNuevo.debito,
                                    ValorCredito         = movNuevo.credito
                                });
                            }
                        }
                    }

                    if (totalDebitos != totalCreditos)
                    {
                        response = 0;
                    }
                    else
                    {
                        context.SaveChanges();
                        DocumentoPorBodegaController conse = new DocumentoPorBodegaController();
                        doc.ActualizarConsecutivo(grupo.grupo, consecutivo);
                        crearMatricula(id, tramitador_id, cartera, placa, valor, fechamatricula, observacion, encabezado);
                        response = 1;
                    }
                }
                else
                {
                    response = 0;
                }
            }
            else
            {
                List <ModelErrorCollection> errors = ModelState.Select(x => x.Value.Errors)
                                                     .Where(y => y.Count > 0)
                                                     .ToList();
                response = 0;
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }