public ActionResult Edit(string id) { Guid publicKey = Guid.Parse(id); var comprobante = DBContext.Comprobantes.Where(e => e.PublicKey == publicKey && e.Status == "P") .SingleOrDefault(); var model = new ComprobanteCreateViewModel(comprobante); var tipoMetodoDePagoList = DBContext.TiposMetodoDePago.ToList(); var tipoMetodoDePagoSelectList = new List<SelectListItem>(); foreach (var tipoMetodoDePago in tipoMetodoDePagoList) { tipoMetodoDePagoSelectList.Add(new SelectListItem { Value = tipoMetodoDePago.TipoMetodoDePagoValue, Text = tipoMetodoDePago.TipoMetodoDePagoValue }); } model.TipoMetodoDePago = tipoMetodoDePagoSelectList; var tiposFormaDePagoList = DBContext.TiposFormaDePago.ToList(); var tiposFormaDePagoListSelectList = new List<SelectListItem>(); foreach (var formaDePago in tiposFormaDePagoList) { tiposFormaDePagoListSelectList.Add(new SelectListItem { Value = formaDePago.TipoFormaDePagoValue, Text = formaDePago.TipoFormaDePagoValue }); } model.TiposFormaDePago = tiposFormaDePagoListSelectList; var tiposImpuestoRetencionList = DBContext.TiposImpuestoRetencion.ToList(); var tiposImpuestoRetencionSelectList = new List<SelectListItem>(); foreach (var tiposImpuestoRetencion in tiposImpuestoRetencionList) { tiposImpuestoRetencionSelectList.Add(new SelectListItem { Value = tiposImpuestoRetencion.TipoImpuestoRetencionValue, Text = tiposImpuestoRetencion.TipoImpuestoRetencionValue }); } model.TiposImpuestoRetencion = tiposImpuestoRetencionSelectList; var tiposImpuestoTrasladoList = DBContext.TiposImpuestoTraslado.ToList(); var tiposImpuestoTrasladoSelectList = new List<SelectListItem>(); foreach (var tiposImpuestoTraslado in tiposImpuestoTrasladoList) { tiposImpuestoTrasladoSelectList.Add(new SelectListItem { Value = tiposImpuestoTraslado.TipoImpuestoTrasladoValue, Text = tiposImpuestoTraslado.TipoImpuestoTrasladoValue }); } model.TiposImpuestoTraslado = tiposImpuestoTrasladoSelectList; var tiposMonedaList = DBContext.TiposMoneda.ToList(); var tiposMonedaListSelectList = new List<SelectListItem>(); foreach (var moneda in tiposMonedaList) { tiposMonedaListSelectList.Add(new SelectListItem { Value = moneda.TipoMonedaValue, Text = moneda.TipoMonedaValue }); } model.TiposMoneda = tiposMonedaListSelectList; List<dynamic> itemList = new List<dynamic>(); foreach (ConceptoViewModel concepto in model.Conceptos) { var dynamicItems = new { ConceptoCantidad = concepto.Cantidad, ConceptoUnidad = concepto.Unidad, ConceptoNoIdentificacion = concepto.NoIdentificacion, ConceptoDescripcion = concepto.Descripcion, ConceptoValorUnitario = concepto.ValorUnitario, ConceptoImporte = concepto.Importe, ConceptoOrdinal = concepto.Ordinal }; itemList.Add(dynamicItems); } ViewBag.JsonConceptos = JsonConvert.SerializeObject(itemList); ViewBag.TotalConceptos = itemList.Count(); List<dynamic> itemList2 = new List<dynamic>(); if (model.Traslados != null && model.Traslados.Count > 0) { int ordinal = 0; foreach (TrasladoViewModel traslado in model.Traslados) { ordinal++; var dynamicItems2 = new { TrasladadoImpuesto = traslado.Impuesto, TrasladadoTasa = traslado.Tasa, TrasladadoImporte = traslado.Importe, TrasladadoOrdinal = ordinal }; itemList2.Add(dynamicItems2); } ViewBag.JsonImpuestosTrasladados = JsonConvert.SerializeObject(itemList2); ViewBag.TotalImpuestosTrasladados = model.Traslados.Count(); } else { ViewBag.JsonImpuestosTrasladados = JsonConvert.SerializeObject(itemList2); ViewBag.TotalImpuestosTrasladados = 0; } List<dynamic> itemList3 = new List<dynamic>(); if (model.Retenciones != null && model.Retenciones.Count > 0) { int ordinal2 = 0; foreach (RetencionViewModel retencion in model.Retenciones) { ordinal2++; var dynamicItems3 = new { RetencionImpuesto = retencion.Impuesto, RetencionImporte = retencion.Importe, RetencionOrdinal = ordinal2 }; itemList3.Add(dynamicItems3); } ViewBag.JsonImpuestosRetenidos = JsonConvert.SerializeObject(itemList3); ViewBag.TotalImpuestosRetenidos = model.Retenciones.Count(); } else { ViewBag.JsonImpuestosRetenidos = JsonConvert.SerializeObject(itemList3); ViewBag.TotalImpuestosRetenidos = 0; } return View(model); }
public JsonResult Create(ComprobanteCreateViewModel model) { try { if (String.IsNullOrEmpty(model.LugarExpedicion)) throw new ApplicationException("¡Ingrese el lugar de expedición!"); else if (model.EmisorId <= 0) throw new ApplicationException("¡Ingrese el emisor!"); else if (model.ReceptorId <= 0) throw new ApplicationException("¡Ingrese el receptor!"); else if (model.CertificadoId <= 0) throw new ApplicationException("¡Ingrese el certificado!"); else if (String.IsNullOrEmpty(model.FormaDePago)) throw new ApplicationException("¡Ingrese la forma de pago!"); else if (String.IsNullOrEmpty(model.MetodoDePago)) throw new ApplicationException("¡Ingrese el método de pago!"); else if ((model.MetodoDePago != "EFECTIVO" && model.MetodoDePago != "NO IDENTIFICADO") && (model.NumCtaPago == null || (model.NumCtaPago.Count() > 6 || model.NumCtaPago.Count() < 4))) throw new ApplicationException("¡El valor de NumCtaPago debe contener entre 4 hasta 6 caracteres!"); else if ((model.MetodoDePago != "EFECTIVO" && model.MetodoDePago != "NO IDENTIFICADO") && (string.IsNullOrEmpty(model.Banco))) throw new ApplicationException("¡Ingrese el banco!"); else if ((model.Conceptos != null || model.Conceptos.Count > 0) && model.Conceptos.All(x => x.Cantidad < 0m || x.Unidad == null || x.Descripcion == null || x.ValorUnitario < 0m)) throw new ApplicationException("¡Ingrese al menos un concepto!"); else if (model.SubTotal < 0m) throw new ApplicationException("¡SubTotal no válido!"); else if (model.TotalImpuestosTrasladados < 0m) throw new ApplicationException("¡Total Impuestos Trasladados no válido!"); else if (model.TotalImpuestosRetenidos < 0m) throw new ApplicationException("¡Total Impuestos Retenidos no válido!"); else if (model.Total < 0m) throw new ApplicationException("¡Total no válido!"); else { var comprobante = new Comprobante(); comprobante.EmisorId = model.EmisorId; comprobante.Emisor = DBContext.Emisores.Find(model.EmisorId); // .Where(e => e.PublicKey == publicKey).SingleOrDefault(); comprobante.ReceptorId = model.ReceptorId; comprobante.Receptor = DBContext.Receptores.Find(model.ReceptorId); // .Where(e => e.PublicKey == publicKey).SingleOrDefault(); comprobante.Serie = model.Serie; comprobante.Folio = model.Folio; comprobante.Fecha = DateTime.Now + SATManager.GetCFDIServiceTimeSpan(); comprobante.FormaDePago = model.FormaDePago; comprobante.SubTotal = model.SubTotal; comprobante.Total = model.Total; //comprobante.NoCertificado; //comprobante.Certificado; comprobante.TipoDeComprobante = "ingreso"; comprobante.FormaDePago = model.FormaDePago; comprobante.MetodoDePago = model.MetodoDePago; comprobante.LugarExpedicion = model.LugarExpedicion; comprobante.TipoCambio = model.TipoCambio; comprobante.Moneda = model.Moneda; comprobante.NumCtaPago = model.NumCtaPago; comprobante.ExtendedStringValue1 = model.Banco; comprobante.Moneda = model.Moneda; comprobante.Conceptos = new List<Concepto>(); foreach (var modelConcepto in model.Conceptos) { if (!string.IsNullOrEmpty(modelConcepto.Descripcion)) { comprobante.Conceptos.Add(new Concepto { Cantidad = modelConcepto.Cantidad, Unidad = modelConcepto.Unidad, NoIdentificacion = modelConcepto.NoIdentificacion, Descripcion = modelConcepto.Descripcion, ValorUnitario = modelConcepto.ValorUnitario, Importe = modelConcepto.Importe, PublicKey = Guid.NewGuid(), Ordinal = modelConcepto.Ordinal }); } } comprobante.Impuestos = new Impuestos(); comprobante.Impuestos.Traslados = new List<Traslado>(); foreach (var modelTraslado in model.Traslados) { if (modelTraslado.Tasa > 0 && modelTraslado.Importe > 0) { comprobante.Impuestos.Traslados.Add(new Traslado { Importe = modelTraslado.Importe, Impuesto = modelTraslado.Impuesto, Tasa = modelTraslado.Tasa, }); } } comprobante.Impuestos.Retenciones = new List<Retencion>(); foreach (var modelRetencion in model.Retenciones) { if (modelRetencion.Importe > 0) { comprobante.Impuestos.Retenciones.Add(new Retencion { Importe = modelRetencion.Importe, Impuesto = modelRetencion.Impuesto, }); } } if (model.TotalImpuestosRetenidos > 0) comprobante.Impuestos.TotalImpuestosRetenidos = model.TotalImpuestosRetenidos; if (model.TotalImpuestosTrasladados > 0) comprobante.Impuestos.TotalImpuestosTrasladados = model.TotalImpuestosTrasladados; comprobante.PublicKey = Guid.NewGuid(); Certificado certificado = DBContext.Certificados.Find(model.CertificadoId); if (certificado != null) { // comprobante.NoCertificado = certificado.NumSerie; // comprobante.Certificado = certificado.CertificadoBase64; comprobante.CertificadoId = certificado.CertificadoId; comprobante.Certificado = certificado; comprobante.HasNoCertificado = true; comprobante.HasCertificado = true; } string cadenaOriginal = comprobante.GetCadenaOriginal(); comprobante.Sello = certificado.GetSello(cadenaOriginal); comprobante.Status = "P"; DBContext.Comprobantes.Add(comprobante); DBContext.SaveChanges(); TempData["success"] = "Se ha creado el comprobante correctamente"; var data = new { error = false, errorMsg = "", comprobanteId = comprobante.PublicKey }; return Json(data); } } catch (Exception ex) { var data = new { error = true, errorMsg = ex.Message.ToString() }; return Json(data); } }
public JsonResult Create(ComprobanteCreateViewModel model) { try { if (String.IsNullOrEmpty(model.LugarExpedicion)) throw new ApplicationException("¡Ingrese el lugar de expedición!"); else if (string.IsNullOrEmpty(model.TipoDeComprobante)) throw new ApplicationException("¡Ingrese el tipo de comprobante!"); else if (model.EmisorId <= 0) throw new ApplicationException("¡Ingrese el emisor!"); else if (model.ReceptorId <= 0) throw new ApplicationException("¡Ingrese el receptor!"); else if (model.CertificadoId <= 0) throw new ApplicationException("¡Ingrese el certificado!"); else if (String.IsNullOrEmpty(model.FormaDePago)) throw new ApplicationException("¡Ingrese la forma de pago!"); else if (String.IsNullOrEmpty(model.MetodoDePago)) throw new ApplicationException("¡Ingrese el método de pago!"); else if ((model.MetodoDePago != "EFECTIVO" && model.MetodoDePago != "NO IDENTIFICADO") && (model.NumCtaPago == null || (model.NumCtaPago.Count() > 6 || model.NumCtaPago.Count() < 4))) throw new ApplicationException("¡El valor de NumCtaPago debe contener entre 4 hasta 6 caracteres!"); else if ((model.MetodoDePago != "EFECTIVO" && model.MetodoDePago != "NO IDENTIFICADO") && (string.IsNullOrEmpty(model.Banco))) throw new ApplicationException("¡Ingrese el banco!"); else if ((model.Conceptos != null || model.Conceptos.Count > 0) && model.Conceptos.All(x => x.Cantidad < 0m || x.Unidad == null || x.Descripcion == null || x.ValorUnitario < 0m)) throw new ApplicationException("¡Ingrese al menos un concepto!"); else if (model.SubTotal < 0m) throw new ApplicationException("¡SubTotal no válido!"); else if (model.TotalImpuestosTrasladados < 0m) throw new ApplicationException("¡Total Impuestos Trasladados no válido!"); else if (model.TotalImpuestosRetenidos < 0m) throw new ApplicationException("¡Total Impuestos Retenidos no válido!"); else if (model.Total < 0m) throw new ApplicationException("¡Total no válido!"); else { var comprobante = new Comprobante(); Emisor emisor = DBContext.Emisores.Find(model.EmisorId); ComprobanteEmisor comprobanteEmisor = null; if (model.ExpedidoEn != null && model.ExpedidoEn.UbicacionId != null) { comprobanteEmisor = DBContext.ComprobantesEmisores.Where(e => e.EmisorId == emisor.EmisorId && e.DomicilioFiscalId == emisor.DomicilioFiscalId && e.ExpedidoEnId == model.ExpedidoEn.UbicacionId).SingleOrDefault(); } //else if () { //} else { // crear o seleccionar la ubicación y agregarla //comprobanteEmisor = DBContext.ComprobantesEmisores.Where(e => e.EmisorId == model.EmisorId && e.DomicilioFiscalId == model.DomicilioFiscalId && e.ExpedidoEnId == model.ExpedidoEnId); comprobanteEmisor = DBContext.ComprobantesEmisores.Where(e => e.EmisorId == emisor.EmisorId && e.DomicilioFiscalId == emisor.DomicilioFiscalId && e.ExpedidoEnId == model.ExpedidoEn.UbicacionId).SingleOrDefault(); } // Crear uno nuevo if (comprobanteEmisor == null) { comprobanteEmisor = new ComprobanteEmisor { Emisor = emisor, //EmisorId = emisor.EmisorId, DomicilioFiscal = emisor.DomicilioFiscal //,DomicilioId = receptor.DomicilioId // TODO: //RegimenFiscal = emisor.RegimenFiscal }; } comprobante.Emisor = comprobanteEmisor; //comprobante.EmisorId = model.EmisorId; //comprobante.Emisor = DBContext.Emisores.Find(model.EmisorId); // .Where(e => e.PublicKey == publicKey).SingleOrDefault(); //if (model.Emisor. .ExpedidoEnId != null) { // comprobante.Emisor = DBContext.ComprobantesEmisores.Where(e => e.EmisorId == model.EmisorId && e.DomicilioFiscalId == model.DomicilioFiscalId && e.ExpedidoEnId == model.ExpedidoEnId); //} //else { // comprobante.Emisor = DBContext.ComprobantesEmisores.Where(e => e.EmisorId == model.EmisorId && e.DomicilioFiscalId == model.DomicilioFiscalId && e.ExpedidoEnId == model.ExpedidoEnId); //} Receptor receptor = DBContext.Receptores.Find(model.ReceptorId); ComprobanteReceptor comprobanteReceptor = DBContext.ComprobantesReceptores.Where(r => r.ReceptorId == receptor.ReceptorId && r.DomicilioId == receptor.DomicilioId).SingleOrDefault(); // Crear uno nuevo if (comprobanteReceptor == null) { comprobanteReceptor = new ComprobanteReceptor { Receptor = receptor, //ReceptorId = receptor.ReceptorId, Domicilio = receptor.Domicilio //,DomicilioId = receptor.DomicilioId }; } //comprobante.ReceptorId = model.ReceptorId; //comprobante.Receptor = DBContext.Receptores.Find(model.ReceptorId); // .Where(e => e.PublicKey == publicKey).SingleOrDefault(); comprobante.Receptor = comprobanteReceptor; comprobante.Serie = model.Serie; comprobante.Folio = model.Folio; comprobante.Fecha = DateTime.Now + SATManager.GetCFDIServiceTimeSpan(); comprobante.FormaDePago = model.FormaDePago; comprobante.SubTotal = model.SubTotal; comprobante.Total = model.Total; //comprobante.NoCertificado; //comprobante.Certificado; comprobante.TipoDeComprobante = model.TipoDeComprobante; comprobante.ExtendedIntValue1 = model.OrdenNumero; comprobante.ExtendedIntValue2 = model.CteNumero; comprobante.ExtendedStringValue2 = model.Notas; comprobante.ViewTemplateId = model.TemplateId; comprobante.FormaDePago = model.FormaDePago; comprobante.MetodoDePago = model.MetodoDePago; comprobante.LugarExpedicion = model.LugarExpedicion; comprobante.TipoCambio = model.TipoCambio; comprobante.Moneda = model.Moneda; comprobante.NumCtaPago = model.NumCtaPago; comprobante.ExtendedStringValue1 = model.Banco; comprobante.Moneda = model.Moneda; comprobante.Conceptos = new List<Concepto>(); foreach (var modelConcepto in model.Conceptos) { if (!string.IsNullOrEmpty(modelConcepto.Descripcion)) { comprobante.Conceptos.Add(new Concepto { Cantidad = modelConcepto.Cantidad, Unidad = modelConcepto.Unidad, NoIdentificacion = modelConcepto.NoIdentificacion, Descripcion = modelConcepto.Descripcion, ValorUnitario = modelConcepto.ValorUnitario, Importe = modelConcepto.Importe, PublicKey = Guid.NewGuid(), Ordinal = modelConcepto.Ordinal }); } } comprobante.Impuestos = new Impuestos(); comprobante.Impuestos.Traslados = new List<Traslado>(); foreach (var modelTraslado in model.Traslados) { if (modelTraslado.Tasa > 0 && modelTraslado.Importe > 0) { comprobante.Impuestos.Traslados.Add(new Traslado { Importe = modelTraslado.Importe, Impuesto = modelTraslado.Impuesto, Tasa = modelTraslado.Tasa, }); } } comprobante.Impuestos.Retenciones = new List<Retencion>(); foreach (var modelRetencion in model.Retenciones) { if (modelRetencion.Importe > 0) { comprobante.Impuestos.Retenciones.Add(new Retencion { Importe = modelRetencion.Importe, Impuesto = modelRetencion.Impuesto, }); } } if (model.TotalImpuestosRetenidos > 0) comprobante.Impuestos.TotalImpuestosRetenidos = model.TotalImpuestosRetenidos; if (model.TotalImpuestosTrasladados > 0) comprobante.Impuestos.TotalImpuestosTrasladados = model.TotalImpuestosTrasladados; comprobante.PublicKey = Guid.NewGuid(); Certificado certificado = DBContext.Certificados.Find(model.CertificadoId); if (certificado != null) { // comprobante.NoCertificado = certificado.NumSerie; // comprobante.Certificado = certificado.CertificadoBase64; comprobante.CertificadoId = certificado.CertificadoId; comprobante.Certificado = certificado; comprobante.HasNoCertificado = true; comprobante.HasCertificado = true; } string cadenaOriginal = comprobante.GetCadenaOriginal(); comprobante.Sello = certificado.GetSello(cadenaOriginal); //comprobante.Status = "P"; DBContext.Comprobantes.Add(comprobante); DBContext.SaveChanges(); TempData["success"] = "Se ha creado el comprobante correctamente"; var data = new { error = false, errorMsg = "", comprobanteId = comprobante.PublicKey }; return Json(data); } } catch (System.Data.Entity.Validation.DbEntityValidationException dex) { string errorTxt = dex.Message.ToString(); foreach (var valError in dex.EntityValidationErrors) { foreach (var error in valError.ValidationErrors) { errorTxt = errorTxt + Environment.NewLine + error.ErrorMessage; } } var data = new { error = true, errorMsg = errorTxt }; return Json(data); } catch (Exception ex) { string errorTxt = ex.Message.ToString(); foreach (ModelState modelState in ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { errorTxt = errorTxt + Environment.NewLine + error.ErrorMessage; } } var data = new { error = true, errorMsg = errorTxt }; return Json(data); } }
public ActionResult Create() { var model = new ComprobanteCreateViewModel(); var tipoMetodoDePagoList = DBContext.TiposMetodoDePago.ToList(); var tipoMetodoDePagoSelectList = new List<SelectListItem>(); foreach (var tipoMetodoDePago in tipoMetodoDePagoList) { tipoMetodoDePagoSelectList.Add(new SelectListItem { Value = tipoMetodoDePago.TipoMetodoDePagoValue, Text = tipoMetodoDePago.TipoMetodoDePagoValue }); } model.TipoMetodoDePago = tipoMetodoDePagoSelectList; var tiposImpuestoRetencionList = DBContext.TiposImpuestoRetencion.ToList(); var tiposImpuestoRetencionSelectList = new List<SelectListItem>(); foreach (var tiposImpuestoRetencion in tiposImpuestoRetencionList) { tiposImpuestoRetencionSelectList.Add(new SelectListItem { Value = tiposImpuestoRetencion.TipoImpuestoRetencionValue, Text = tiposImpuestoRetencion.TipoImpuestoRetencionValue }); } model.TiposImpuestoRetencion = tiposImpuestoRetencionSelectList; var tiposImpuestoTrasladoList = DBContext.TiposImpuestoTraslado.ToList(); var tiposImpuestoTrasladoSelectList = new List<SelectListItem>(); foreach (var tiposImpuestoTraslado in tiposImpuestoTrasladoList) { tiposImpuestoTrasladoSelectList.Add(new SelectListItem { Value = tiposImpuestoTraslado.TipoImpuestoTrasladoValue, Text = tiposImpuestoTraslado.TipoImpuestoTrasladoValue }); } model.TiposImpuestoTraslado = tiposImpuestoTrasladoSelectList; var tiposFormaDePagoList = DBContext.TiposFormaDePago.ToList(); var tiposFormaDePagoSelectList = new List<SelectListItem>(); foreach (var tiposFormaDePago in tiposFormaDePagoList) { tiposFormaDePagoSelectList.Add(new SelectListItem { Value = tiposFormaDePago.TipoFormaDePagoValue, Text = tiposFormaDePago.TipoFormaDePagoValue }); } model.TiposFormaDePago = tiposFormaDePagoSelectList; var bancosList = DBContext.Bancos.ToList(); var bancosSelectList = new List<SelectListItem>(); foreach (var banco in bancosList) { bancosSelectList.Add(new SelectListItem { Value = banco.NombreCorto, Text = banco.NombreCorto }); } model.Bancos = bancosSelectList; var monedasList = DBContext.TiposMoneda.ToList(); var monedasListSelectList = new List<SelectListItem>(); foreach (var moneda in monedasList) { monedasListSelectList.Add(new SelectListItem { Value = moneda.TipoMonedaValue, Text = moneda.TipoMonedaValue }); } model.TiposMoneda = monedasListSelectList; return View(model); }
public ActionResult Create() { var model = new ComprobanteCreateViewModel(); var tipoMetodoDePagoList = DBContext.TiposMetodoDePago.ToList(); var tipoMetodoDePagoSelectList = new List<SelectListItem>(); foreach (var tipoMetodoDePago in tipoMetodoDePagoList) { tipoMetodoDePagoSelectList.Add(new SelectListItem { Value = tipoMetodoDePago.TipoMetodoDePagoValue, Text = tipoMetodoDePago.TipoMetodoDePagoValue }); } model.TipoMetodoDePago = tipoMetodoDePagoSelectList; var tiposImpuestoRetencionList = DBContext.TiposImpuestoRetencion.ToList(); var tiposImpuestoRetencionSelectList = new List<SelectListItem>(); foreach (var tiposImpuestoRetencion in tiposImpuestoRetencionList) { tiposImpuestoRetencionSelectList.Add(new SelectListItem { Value = tiposImpuestoRetencion.TipoImpuestoRetencionValue, Text = tiposImpuestoRetencion.TipoImpuestoRetencionValue }); } model.TiposImpuestoRetencion = tiposImpuestoRetencionSelectList; var tiposImpuestoTrasladoList = DBContext.TiposImpuestoTraslado.ToList(); var tiposImpuestoTrasladoSelectList = new List<SelectListItem>(); foreach (var tiposImpuestoTraslado in tiposImpuestoTrasladoList) { tiposImpuestoTrasladoSelectList.Add(new SelectListItem { Value = tiposImpuestoTraslado.TipoImpuestoTrasladoValue, Text = tiposImpuestoTraslado.TipoImpuestoTrasladoValue }); } model.TiposImpuestoTraslado = tiposImpuestoTrasladoSelectList; var tiposFormaDePagoList = DBContext.TiposFormaDePago.ToList(); var tiposFormaDePagoSelectList = new List<SelectListItem>(); foreach (var tiposFormaDePago in tiposFormaDePagoList) { tiposFormaDePagoSelectList.Add(new SelectListItem { Value = tiposFormaDePago.TipoFormaDePagoValue, Text = tiposFormaDePago.TipoFormaDePagoValue }); } model.TiposFormaDePago = tiposFormaDePagoSelectList; var bancosList = DBContext.Bancos.ToList(); var bancosSelectList = new List<SelectListItem>(); foreach (var banco in bancosList) { bancosSelectList.Add(new SelectListItem { Value = banco.NombreCorto, Text = banco.NombreCorto }); } model.Bancos = bancosSelectList; var monedasList = DBContext.TiposMoneda.ToList(); var monedasListSelectList = new List<SelectListItem>(); foreach (var moneda in monedasList) { monedasListSelectList.Add(new SelectListItem { Value = moneda.TipoMonedaValue, Text = moneda.TipoMonedaValue }); } model.TiposMoneda = monedasListSelectList; var tiposDeComprobanteList = DBContext.TiposTipoDeComprobante.ToList(); var tiposDeComprobanteListSelectList = new List<SelectListItem>(); foreach (var tipoDeComprobante in tiposDeComprobanteList) { tiposDeComprobanteListSelectList.Add(new SelectListItem { Value = tipoDeComprobante.TipoTipoDeComprobanteValue, Text = tipoDeComprobante.TipoTipoDeComprobanteValue }); } model.TiposDeComprobante = tiposDeComprobanteListSelectList; var viewTemplatesList = DBContext.ViewTemplates.ToList(); var viewTemplatesListSelectList = new List<SelectListItem>(); foreach (var vTemplate in viewTemplatesList) { viewTemplatesListSelectList.Add(new SelectListItem { Value = vTemplate.ViewTemplateId.ToString(), Text = vTemplate.DisplayName }); } model.ViewTemplates = viewTemplatesListSelectList; Emisor emisor = DBContext.Emisores.SingleOrDefault(x => x.EmisorId == 1); model.EmisorId = emisor.EmisorId; model.Emisor.Nombre = emisor.Nombre; model.Emisor.RFC = emisor.RFC; // model.ExpedidoEn = emisor.ExpedidoEn select one? model.ExpedidoEn.UbicacionId = null; // default null (same as domicilioFiscal) model.CertificadoId = emisor.Certificados.FirstOrDefault(x => x.Estado == "A").CertificadoId; model.Folio = this.DBContext.Database.SqlQuery<string>("SELECT CONVERT(NVARCHAR,MAX(CONVERT(INT,[folio]))+1) FROM [sat_comprobante] WHERE [serie] = 'A'").FirstOrDefault(); model.OrdenNumero = this.DBContext.Database.SqlQuery<int>("SELECT MAX([extended_int_value_1])+1 FROM [sat_comprobante] WHERE [serie] = 'A'").FirstOrDefault(); var SampleConceptsList = this.DBContext.Database.SqlQuery<SelectListItem>("SELECT [no_identificacion] as Value, [no_identificacion] + ' - ' + [descripcion] as Text FROM [sat_concepto] GROUP BY [no_identificacion], [descripcion] order by [no_identificacion] DESC"); ViewBag.SampleConcepts = SampleConceptsList; return View(model); }