public JsonResult TiempoRefrescoPanel()
 {
     try
     {
         var rol = Session["Loged_usrfile_rol"];
         if ("C".Equals(rol) || "M".Equals(rol))
         {
             string codcia   = Session["Loged_usrfile_ciafile"].ToString();
             string sucursal = Session["Loged_usrfile_sucursal"].ToString();
             string punemi   = Session["Loged_usrfile_punemi"].ToString();
             parreg prg      = db.parreg.Where(a => a.IDCIA.Equals(codcia) && a.FORM.Equals("POS")).FirstOrDefault();
             if (prg == null)
             {
                 return(Json(new { respuesta = "ERROR: El par\u00E1metro IGV no existe" }, JsonRequestBehavior.AllowGet));
             }
             return(Json(new { respuesta = "EXITO: ", tiempo = prg.POS_TIEMPO_REFRESCO_PANEL }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             return(Json(new { respuesta = "ERROR: Ud. no tiene los permisos para realizar la operaci\u00F3n" }, JsonRequestBehavior.AllowGet));
         }
     }
     catch (System.Data.EntityException ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
     catch (Exception ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
 }
        public ActionResult Index()
        {
            var rol = Session["Loged_usrfile_rol"];

            if ("C".Equals(rol) || "M".Equals(rol))
            {
                string codcia   = Session["Loged_usrfile_ciafile"].ToString();
                string sucursal = Session["Loged_usrfile_sucursal"].ToString();
                ViewBag.personal = db.peratencion.Where(a => a.codcia.Equals(codcia) && a.situa.Equals("V"));
                List <divatencion> divs = db.divatencion.Where(a => a.CODCIA.Equals(codcia) && a.SUCURSAL.Equals(sucursal)).ToList();
                ViewBag.divs = divs;
                parreg pr = db.parreg.Where(a => a.IDCIA.Equals(codcia) && a.FORM.Equals("POS")).FirstOrDefault();
                ViewBag.parpwd   = pr.POS_IS_CLAVE_PERATENCION;
                ViewBag.cia      = db.ciafile.Where(a => a.idcia.Equals(codcia)).FirstOrDefault();
                ViewBag.sucursal = db.sucursal.Where(a => a.codigo.Equals(sucursal)).FirstOrDefault();
                return(View());
            }
            else
            {
                return(RedirectToAction("ErrorPermiso", "Error"));
            }
        }
        public JsonResult Aperturar(string codigo, string idperatencion, string divate, string pwd)
        {
            try
            {
                string codcia = Session["Loged_usrfile_ciafile"].ToString();
                parreg pr     = db.parreg.Where(a => a.IDCIA.Equals(codcia) && a.FORM.Equals("POS")).FirstOrDefault();
                if (pr.POS_IS_CLAVE_PERATENCION.Equals("S"))
                {
                    usrfile     u      = new usrfile();
                    string      newpwd = u.Encripta(pwd);
                    peratencion p      = db.peratencion.Where(a => a.codcia.Equals(codcia) && a.situa.Equals("V") && a.codigo.Equals(idperatencion)).FirstOrDefault();
                    if (p == null || !p.clave.Equals(newpwd))
                    {
                        return(Json(new { respuesta = Msg.PwdIncorrecta }, JsonRequestBehavior.AllowGet));
                    }
                }
                var rol = Session["Loged_usrfile_rol"];
                if ("C".Equals(rol) || "M".Equals(rol))
                {
                    string      sucursal  = Session["Loged_usrfile_sucursal"].ToString();
                    string      codpunemi = Session["Loged_usrfile_punemi"].ToString();
                    string      idusr     = Session["Loged_usrfile_idusr"].ToString();
                    peratencion per       = db.peratencion.Where(a => a.codcia.Equals(codcia) && a.codigo.Equals(idperatencion) && a.situa.Equals("V")).FirstOrDefault();
                    if (per == null)
                    {
                        return(Json(new { respuesta = "ERROR: El c\u00F3digo del personal de atenci\u00F3n no existe" }, JsonRequestBehavior.AllowGet));
                    }
                    undatencion undatencion = db.undatencion.Where(a => a.CODCIA.Equals(codcia) && a.SUCURSAL.Equals(sucursal) &&
                                                                   a.CODIGO.Equals(codigo) && a.DIVATENCION.Equals(divate) && a.ESTADO.Equals("V")).FirstOrDefault();
                    if (undatencion == null)
                    {
                        return(Json(new { respuesta = "ERROR: La unidad de atenci\u00F3n no existe" }, JsonRequestBehavior.AllowGet));
                    }

                    conc cc = db.conc.Where(a => a.CODCIA.Equals(codcia) && a.SUCURSAL.Equals(sucursal) && a.UNDATENCION.Equals(undatencion.CODIGO) &&
                                            a.SITUACION.Equals("A")).FirstOrDefault();
                    if (cc != null)
                    {
                        return(Json(new { respuesta = "EXITO: La unidad de atenci\u00F3n est\u00E1 aperturada", div = undatencion.DIVATENCION, und = undatencion.CODIGO, per = per.codigo, rol = rol }, JsonRequestBehavior.AllowGet));
                    }

                    int?tmp = this.generar(codcia);
                    if (tmp == null)
                    {
                        return(Json(new { respuesta = "ERROR: Error al generar el c\u00F3digo del consumo" }, JsonRequestBehavior.AllowGet));
                    }
                    conc conc = new conc();
                    conc.CODCIA      = codcia;
                    conc.CODIGO      = tmp.ToString().PadLeft(10, '0');
                    conc.SUCURSAL    = sucursal;
                    conc.UNDATENCION = undatencion.CODIGO;
                    conc.PERATENCION = per.codigo;
                    conc.FECHA       = DateTime.Now.Date;
                    conc.HORA        = DateTime.Now.ToString("hh:mm:ss");
                    conc.USER        = idusr;
                    conc.SITUACION   = "A";
                    conc.FACTURANDO  = "N";
                    db.conc.Add(conc);
                    db.SaveChanges();
                    return(Json(new { respuesta = "EXITO: Unidad de atenci\u00F3n aperturada", div = undatencion.DIVATENCION, und = undatencion.CODIGO, per = per.codigo, rol = rol }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new { respuesta = "ERROR: Ud. no tiene los permisos para realizar la operaci\u00F3n" }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (System.Data.EntityException ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
            catch (Exception ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
        }
        public ActionResult Facturacion(string div, string und, string per)
        {
            try
            {
                var rol = Session["Loged_usrfile_rol"];
                if ("C".Equals(rol))
                {
                    string codcia   = Session["Loged_usrfile_ciafile"].ToString();
                    string sucursal = Session["Loged_usrfile_sucursal"].ToString();
                    string idusr    = Session["Loged_usrfile_idusr"].ToString();
                    conc   c        = db.conc.Where(a => a.CODCIA.Equals(codcia) && a.SUCURSAL.Equals(sucursal) && a.UNDATENCION.Equals(und)).FirstOrDefault();
                    if (c != null && c.FACTURANDO.Equals("N"))
                    {
                        peratencion p = db.peratencion.Where(a => a.codcia.Equals(codcia) && a.situa.Equals("V") && a.codigo.Equals(per)).FirstOrDefault();
                        if (p == null)
                        {
                            return(RedirectToAction("ErrorPermiso", "Error"));
                        }
                        ViewBag.div = div;
                        ViewBag.und = und;
                        ViewBag.per = per;

                        ViewBag.categorias    = db.claserv.Where(a => a.codcia.Equals(codcia) && a.situa.Equals("V"));
                        ViewBag.divisiones    = db.divatencion.Where(a => a.CODCIA.Equals(codcia) && a.SUCURSAL.Equals(sucursal)).ToList();
                        ViewBag.personal      = db.peratencion.Where(a => a.codcia.Equals(codcia) && a.situa.Equals("V"));
                        ViewBag.puntosemision = db.punemi.Where(a => a.codcia.Equals(codcia) && a.sucursal.Equals(sucursal) && a.situa.Equals("V")).ToList();
                        ViewBag.cia           = db.ciafile.Where(a => a.idcia.Equals(codcia)).FirstOrDefault();
                        ViewBag.sucursal      = db.sucursal.Where(a => a.codigo.Equals(sucursal)).FirstOrDefault();
                        var td = (from A in db.tdprgven
                                  join B in db.maesgen on A.tipdoc equals B.clavemaesgen
                                  where A.codcia.Equals(codcia) && B.idmaesgen.Equals("110") && A.prg.Equals("V0105")
                                  orderby A.tipdoc ascending
                                  select new { clave = A.tipdoc, descripcion = B.desmaesgen }).ToList();
                        List <Models.AxuliarHash> tipdocs = new List <Models.AxuliarHash>();
                        foreach (var item in td)
                        {
                            tipdocs.Add(new Models.AxuliarHash(item.clave, item.descripcion));
                        }
                        ViewBag.tipdocs = tipdocs.ToList();

                        List <string> tdtipdoc = db.tdtipdoc.ToList().Select(b => b.TIPDOC).ToList();
                        var           cm       = db.maesgen.Where(a => a.idmaesgen.Equals("002") && tdtipdoc.Contains(a.clavemaesgen)).ToList();

                        ViewBag.cm   = cm.ToList();
                        c.FACTURANDO = "S";
                        db.SaveChanges();
                        ViewBag.conc = c;
                        parreg prg = db.parreg.Where(a => a.FORM.Equals("POS")).FirstOrDefault();
                        ViewBag.forventa = db.forventa.Where(a => a.codcia.Equals(codcia) && a.situa.Equals("V")).ToList();
                        ViewBag.forpago  = db.forpago.Where(a => a.codcia.Equals(codcia) && a.situa.Equals("V")).ToList();
                        ViewBag.anexo    = db.anexos.Where(a => a.idcia.Equals(codcia) && a.tipane.Equals("C") && a.codane.Equals(prg.POS_CODANE_DEFAULT) && a.situane.Equals("V")).FirstOrDefault();
                        return(View("Facturacion"));
                    }
                    else
                    {
                        return(RedirectToAction("ErrorPermiso", "Error"));
                    }
                }
                else
                {
                    return(RedirectToAction("ErrorPermiso", "Error"));
                }
            }
            catch (System.Data.EntityException ex) { return(RedirectToAction("ErroBD", "Error", ex.Message)); }
            catch (Exception ex) { return(RedirectToAction("Error", "Error", ex.Message)); }
        }
Exemple #5
0
        public JsonResult Buscar(string descripcion)
        {
            try
            {
                var rol = Session["Loged_usrfile_rol"];
                if ("C".Equals(rol) || "M".Equals(rol))
                {
                    if (String.IsNullOrWhiteSpace(descripcion))
                    {
                        return(Json(new { respuesta = "ERROR: Ingrese la descripci\u00F3n a buscar" }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        descripcion = descripcion.Trim();
                        string codcia   = Session["Loged_usrfile_ciafile"].ToString();
                        string sucursal = Session["Loged_usrfile_sucursal"].ToString();

                        parreg p = db.parreg.Where(a => a.IDCIA.Equals(codcia) && a.FORM.Equals("POS")).FirstOrDefault();
                        if (p == null)
                        {
                            return(Json(new { respuesta = Msg.ErrParam }, JsonRequestBehavior.AllowGet));
                        }

                        if (p.POS_IS_IMAGEN.Equals("S"))
                        {
                            var listajson = (from result in db.conventa
                                             join a in db.convensuc on result.codigo equals a.conventa
                                             join b in db.preconven on a.conventa equals b.conventa
                                             join c in db.maesgen on result.tipovalorventa equals c.clavemaesgen
                                             where a.codcia.Equals(codcia) && a.sucursal.Equals(sucursal) && b.state.Equals("V") &&
                                             result.situa.Equals("V") && result.descripcion.Contains(descripcion) &&
                                             c.idmaesgen.Equals("502")
                                             select new
                            {
                                codigo = result.codigo,
                                foto64 = result.foto64,
                                precio = b.precio,
                                descripcion = result.descripcion,
                                tipovalorventa = c.desmaesgen
                            }).ToList();
                            return(Json(new { respuesta = Msg.OpExitosa, lista = listajson }, JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            var listajson = (from result in db.conventa
                                             join a in db.convensuc on result.codigo equals a.conventa
                                             join b in db.preconven on a.conventa equals b.conventa
                                             join c in db.maesgen on result.tipovalorventa equals c.clavemaesgen
                                             where a.codcia.Equals(codcia) && a.sucursal.Equals(sucursal) && b.state.Equals("V") &&
                                             result.situa.Equals("V") && result.descripcion.Contains(descripcion) &&
                                             c.idmaesgen.Equals("502")
                                             select new
                            {
                                codigo = result.codigo,
                                precio = b.precio,
                                descripcion = result.descripcion,
                                tipovalorventa = c.desmaesgen
                            }).ToList();
                            return(Json(new { respuesta = Msg.OpExitosa, lista = listajson }, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                else
                {
                    return(Json(new { respuesta = Msg.PermisoDenegado }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (System.Data.EntityException ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
            catch (Exception ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
        }
Exemple #6
0
        public ActionResult Consulta(string tipdoc, string serie, string correlativo, string fecha, string importe)
        {
            try
            {
                appbosaEntities db = new appbosaEntities();
                DateTime        cdate;
                List <string>   tdtipdoc = db.tdtipdoc.ToList().Select(b => b.TIPDOC).ToList();
                var             cm       = db.maesgen.Where(a => a.idmaesgen.Equals("002") && tdtipdoc.Contains(a.clavemaesgen)).ToList();
                ViewBag.tipdocs = cm.ToList();
                ViewBag.td      = tipdoc;
                if (DateTime.TryParse(fecha, out cdate))
                {
                    venc vc = db.venc.Where(a => a.SERIE.Equals(serie) && a.NRODOC.Equals(correlativo)
                                            ).FirstOrDefault();
                    if (vc != null && vc.CDATE.Equals(cdate))
                    {
                        decimal impIn;
                        if (Decimal.TryParse(importe.Replace(',', '.'), out impIn))
                        {
                            decimal impDB = db.vend.Where(a => a.CODCIA.Equals(vc.CODCIA) && a.CODIGO.Equals(vc.CODIGO)).Sum(a => a.TOTAL);
                            if (impIn == impDB)
                            {
                                List <vend> vds   = db.vend.Where(a => a.CODCIA.Equals(vc.CODCIA) && a.CODIGO.Equals(vc.CODIGO)).ToList();
                                ciafile     cia   = db.ciafile.Where(a => a.idcia.Equals(vc.CODCIA)).FirstOrDefault();
                                sucursal    suc   = db.sucursal.Where(a => a.codcia.Equals(cia.idcia) && a.codigo.Equals(vc.SUCURSAL)).FirstOrDefault();
                                anexos      anexo = db.anexos.Where(a => a.idcia.Equals(cia.idcia) && a.tipane.Equals(vc.TIPANE) && a.codane.Equals(vc.CODANE)).FirstOrDefault();
                                if (anexo.tipdoc.Equals(tipdoc))
                                {
                                    maesgen emision  = db.maesgen.Where(a => a.idmaesgen.Equals("110") && a.clavemaesgen.Equals(vc.TIPDOC)).FirstOrDefault();
                                    maesgen mgtd     = db.maesgen.Where(a => a.idmaesgen.Equals("002") && a.clavemaesgen.Equals(anexo.tipdoc)).FirstOrDefault();
                                    maesgen mgmoneda = db.maesgen.Where(a => a.idmaesgen.Equals("015") && a.clavemaesgen.Equals(vc.CODMON)).FirstOrDefault();
                                    var     u        = (from a in db.venpag
                                                        join b in db.forventa on a.FORVENTA equals b.codigo
                                                        from c in db.forpago.Where(d => d.codigo.Equals(a.FORPAGO)).DefaultIfEmpty()
                                                        from d in db.tarjetas.Where(t => t.codigo.Equals(a.TARJETA)).DefaultIfEmpty()
                                                        where a.CODCIA.Equals(vc.CODCIA) && a.CODIGO.Equals(vc.CODIGO)
                                                        select new
                                    {
                                        codigo = a.CODIGO,
                                        importe = a.IMPORTE,
                                        recibido = a.RECIBIDO,
                                        vuelto = a.VUELTO,
                                        forventa = b.descripcion,
                                        forpago = c.descripcion,
                                        tarjeta = d.descripcion
                                    }
                                                        ).ToList();
                                    decimal total = 0, sumagra = 0, sumaina = 0, sumaexo = 0, sumaigv = 0;
                                    foreach (vend item in vds)
                                    {
                                        sumaigv += item.IGV;
                                        total   += item.TOTAL;
                                        switch (item.TIPOVALORVENTA)
                                        {
                                        case "01":
                                            item.GRAVADO = item.NETO;
                                            sumagra     += (decimal)item.GRAVADO;
                                            break;

                                        case "02":
                                            item.EXONERADO = item.NETO;
                                            sumaexo       += (decimal)item.EXONERADO;
                                            break;

                                        case "03":
                                            item.INAFECTO = item.NETO;
                                            sumaina      += (decimal)item.INAFECTO;
                                            break;
                                        }
                                    }
                                    parreg prigv = db.parreg.Where(a => a.IDCIA.Equals(cia.idcia) && a.FORM.Equals("COM")).FirstOrDefault();


                                    AppAccounting.NumLetras nl = new AppAccounting.NumLetras();

                                    ViewBag.cia          = cia;
                                    ViewBag.suc          = suc;
                                    ViewBag.fecha        = cdate.ToString("dd/MM/yyyy");
                                    ViewBag.venc         = vc;
                                    ViewBag.vends        = vds;
                                    ViewBag.anexo        = anexo;
                                    ViewBag.tipdoc       = mgtd.parm1maesgen;
                                    ViewBag.tipdocdesc   = mgtd.desmaesgen;
                                    ViewBag.docemi       = emision.parm6maesgen;
                                    ViewBag.moneda       = mgmoneda.parm1maesgen;
                                    ViewBag.gravado      = sumagra;
                                    ViewBag.exonerado    = sumaexo;
                                    ViewBag.inafecto     = sumaina;
                                    ViewBag.igv          = sumaigv;
                                    ViewBag.com_tasa_igv = prigv.COM_TASA_IGV;
                                    ViewBag.total        = total;
                                    ViewBag.totalstr     = nl.Numero_to_Letras(mgmoneda.clavemaesgen, total);
                                    ViewBag.resumen      = u;
                                    ViewBag.serie        = vc.SERIE;
                                    ViewBag.correlativo  = vc.NRODOC;
                                    ViewBag.abrevia      = mgmoneda.abrevia;
                                    return(View("Documento"));
                                }
                            }
                        }
                        else
                        {
                            ViewBag.msg_error = "El monto total debe ser un n\u00FAmero v\u00E1lido";
                            return(View("Consulta"));
                        }
                    }
                    ViewBag.msg_error = "Los datos ingresados no coinciden con ninguno de nuestros registros";
                    return(View("Consulta"));
                }
                else
                {
                    ViewBag.msg_error = "Formato de fecha incorrecto";
                    return(View("Consulta"));
                }
            }
            catch (Exception ex) { return(RedirectToAction("Error", "Error", ex.Message)); }
        }
Exemple #7
0
        public JsonResult Facturar(string codconc, string nroane, string desane, string refane, string tipdoc, string vp)
        {
            try
            {
                var rol = Session["Loged_usrfile_rol"];
                if (!"C".Equals(rol))
                {
                    return(Json(new { respuesta = Msg.PermisoDenegado }, JsonRequestBehavior.AllowGet));
                }

                string codcia   = Session["Loged_usrfile_ciafile"].ToString();
                string sucursal = Session["Loged_usrfile_sucursal"].ToString();
                string punemi   = Session["Loged_usrfile_punemi"].ToString();
                string idusr    = Session["Loged_usrfile_idusr"].ToString();
                string desusr   = Session["Loged_usrfile_desusr"].ToString();

                anexos anexo = AnexosController.crearObtener(codcia, nroane, desane, refane);
                if (anexo == null)
                {
                    return(Json(new { respuesta = "ERROR: Error al obtener o crear el anexo, asegurese que los datos del cliente esten correctamente ingresados" }, JsonRequestBehavior.AllowGet));
                }
                parreg parreg = db.parreg.Where(a => a.IDCIA.Equals(codcia) && a.FORM.Equals("POS")).FirstOrDefault();
                if (parreg == null)
                {
                    return(Json(new { respuesta = Msg.ErrParam }, JsonRequestBehavior.AllowGet));
                }
                parreg prigv = db.parreg.Where(a => a.IDCIA.Equals(codcia) && a.FORM.Equals("COM")).FirstOrDefault();
                if (prigv == null)
                {
                    return(Json(new { respuesta = Msg.ErrParam }, JsonRequestBehavior.AllowGet));
                }

                string numdoc = GenCod.NumDoc(db, codcia, punemi, tipdoc);
                if (String.IsNullOrWhiteSpace(numdoc))
                {
                    return(Json(new { respuesta = Msg.ErrGenerar(Msg.NUMDOC) }, JsonRequestBehavior.AllowGet));
                }
                string codvenc = GenCod.CodVenc(db, codcia, punemi);
                if (codvenc == null)
                {
                    return(Json(new { respuesta = Msg.ErrGenerar(Msg.CODIGO + " de la venta") }, JsonRequestBehavior.AllowGet));
                }

                List <venpag> lista = JsonConvert.DeserializeObject <List <venpag> >(vp);
                int           index = 1;
                foreach (venpag item in lista)
                {
                    item.CODCIA   = codcia;
                    item.CODIGO   = codvenc;
                    item.ITEM     = index.ToString().PadLeft(3, '0');
                    item.RECIBIDO = item.VUELTO + item.IMPORTE;
                    if (String.IsNullOrWhiteSpace(item.FORPAGO))
                    {
                        item.TARJETA = null;
                    }
                    if (String.IsNullOrWhiteSpace(item.TARJETA))
                    {
                        item.TARJETA = null;
                    }
                    if (String.IsNullOrWhiteSpace(item.REFERENCIA))
                    {
                        item.TARJETA = null;
                    }
                    db.venpag.Add(item);
                    index++;
                }

                conc conc = db.conc.Where(a => a.CODCIA.Equals(codcia) && a.SUCURSAL.Equals(sucursal) && a.CODIGO.Equals(codconc)).FirstOrDefault();
                if (conc == null)
                {
                    return(Json(new { respuesta = Msg.AttrNoExiste(Msg.CODCONSUMO) }, JsonRequestBehavior.AllowGet));
                }
                venc venc = new venc();
                venc.CODCIA          = codcia;
                venc.CODIGO          = codvenc;
                venc.SUCURSAL        = sucursal;
                venc.PUNEMI          = punemi;
                venc.PROC_VENTA      = "VD";
                venc.TIPO            = "B";
                venc.PRG             = "V0105";
                venc.PERIODO         = DateTime.Now.Year.ToString();
                venc.FECMOV          = Convert.ToDateTime(DateTime.Now.ToString("dd/MM/yyyy"));
                venc.MES             = DateTime.Now.ToString("MM");
                venc.TIPANE          = "C";
                venc.CODANE          = anexo.codane;
                venc.DIRECCION       = refane;
                venc.TIPDOC          = tipdoc;
                venc.NUMDOC          = numdoc;
                venc.FECDOC          = DateTime.Now.ToString("dd/MM/yyyy");
                venc.FECVEN          = DateTime.Now.ToString("dd/MM/yyyy");
                venc.CTIPCAM         = 0;
                venc.CDATE           = Convert.ToDateTime(DateTime.Now.ToString("dd/MM/yyyy"));
                venc.CHORA           = DateTime.Now.ToString("hh:mm:ss");
                venc.CUSER           = idusr;
                venc.CSIT            = "RF";
                venc.IS_GR_REMITENTE = "N";
                venc.CODMON          = parreg.POS_MON_REFERENCIA;
                venc.SERIE           = numdoc.ToString().Split('-')[0];
                venc.NRODOC          = numdoc.ToString().Split('-')[1];
                venc.CONSUMO         = conc.CODIGO;
                if (conc.SITUACION.Equals("A"))
                {
                    conc.SITUACION = "C";
                    List <cond> items = db.cond.Where(a => a.CODCIA.Equals(codcia) && a.CODIGO.Equals(conc.CODIGO)).ToList();
                    index = 1;
                    decimal total = 0, sumagra = 0, sumaexo = 0, sumaina = 0, sumaigv = 0;
                    foreach (cond item in items)
                    {
                        vend vend = new vend();
                        vend.CODCIA    = codcia;
                        vend.CODIGO    = venc.CODIGO;
                        vend.ITEM      = index.ToString().PadLeft(3, '0');
                        vend.IS_LOTE   = "N";
                        vend.PREUNI    = (decimal)item.PREUNI;
                        vend.CANTIDAD  = (decimal)item.CANTIDAD;
                        vend.SUBTOTAL  = (decimal)item.TOTAL;
                        vend.PORCDESC  = 0;
                        vend.DESCUENTO = 0;
                        vend.TOTAL     = vend.SUBTOTAL;
                        vend.IGV       = (decimal)(vend.TOTAL * prigv.COM_TASA_IGV / (100 + prigv.COM_TASA_IGV));
                        vend.CONVENTA  = item.CONVENTA;
                        conventa conventa = db.conventa.Where(a => a.codcia.Equals(codcia) && a.codigo.Equals(item.CONVENTA) && a.situa.Equals("V")).FirstOrDefault();
                        vend.CODARTI        = conventa.codigo;
                        vend.DESARTI        = conventa.descripcion;
                        vend.TIPOVALORVENTA = conventa.tipovalorventa;
                        vend.NETO           = vend.TOTAL - vend.IGV;
                        sumaigv            += vend.IGV;
                        total += vend.TOTAL;
                        switch (vend.TIPOVALORVENTA)
                        {
                        case "01":
                            vend.GRAVADO = vend.NETO;
                            sumagra     += (decimal)vend.GRAVADO;
                            break;

                        case "02":
                            vend.EXONERADO = vend.NETO;
                            sumaexo       += (decimal)vend.EXONERADO;
                            break;

                        case "03":
                            vend.INAFECTO = vend.NETO;
                            sumaina      += (decimal)vend.INAFECTO;
                            break;

                        default:
                            break;
                        }
                        db.vend.Add(vend); index++;
                    }
                    db.venc.Add(venc);
                    db.SaveChanges();
                    ciafile  ciafile = db.ciafile.Where(a => a.idcia.Equals(codcia)).FirstOrDefault();
                    sucursal suc     = db.sucursal.Where(a => a.codcia.Equals(codcia) && a.codigo.Equals(sucursal)).FirstOrDefault();
                    var      u       = (from a in db.venpag join b in db.forventa on a.FORVENTA equals b.codigo
                                        from c in db.forpago.Where(d => d.codigo.Equals(a.FORPAGO)).DefaultIfEmpty()
                                        from d in db.tarjetas.Where(t => t.codigo.Equals(a.TARJETA)).DefaultIfEmpty()
                                        where a.CODCIA.Equals(codcia) && a.CODIGO.Equals(codvenc)
                                        select new{ codigo = a.CODIGO, importe = a.IMPORTE, recibido = a.RECIBIDO,
                                                    vuelto = a.VUELTO, forventa = b.descripcion, forpago = c.descripcion, tarjeta = d.descripcion }
                                        ).ToList();
                    peratencion per      = db.peratencion.Where(a => a.codcia.Equals(codcia) && a.codigo.Equals(conc.PERATENCION)).FirstOrDefault();
                    maesgen     mgmoneda = db.maesgen.Where(a => a.idmaesgen.Equals("015") && a.clavemaesgen.Equals(venc.CODMON)).FirstOrDefault();
                    maesgen     emision  = db.maesgen.Where(a => a.idmaesgen.Equals("110") && a.clavemaesgen.Equals(tipdoc)).FirstOrDefault();
                    maesgen     mgtd     = db.maesgen.Where(a => a.idmaesgen.Equals("002") && a.clavemaesgen.Equals(anexo.tipdoc)).FirstOrDefault();
                    NumLetras   nl       = new NumLetras();

                    return(Json(new
                    {
                        respuesta = Msg.OpExitosa,
                        cia = ciafile,
                        suc = suc,
                        fecha = venc.FECDOC,
                        hora = DateTime.Now.ToString("hh:mm tt"),
                        venc = venc,
                        anexo = anexo,
                        tipdoc = mgtd.parm1maesgen,
                        docemi = emision.parm6maesgen,
                        moneda = mgmoneda.parm1maesgen,
                        gravado = sumagra,
                        exonerado = sumaexo,
                        inafecto = sumaina,
                        igv = sumaigv,
                        total = total,
                        totalstr = nl.Numero_to_Letras(mgmoneda.clavemaesgen, total),
                        resumen = u,
                        cajero = desusr,
                        cod1 = venc.SERIE,
                        cod2 = venc.NRODOC,
                        abrevia = mgmoneda.abrevia,
                    }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new { respuesta = "ERROR: Error el consumo est\u00E1 cerrado" }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (System.Data.EntityException ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
            catch (Exception ex) { return(Json(new { respuesta = "ERROR: " + ex.Message }, JsonRequestBehavior.AllowGet)); }
        }