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)); } }
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)); } }