tarifa ObtenerTarifaInsert() { tarifa tarifa = new tarifa(); tarifa.nombreT = txtNombTa.Text; tarifa.acumulativa = dropAcumu.Text; tarifa.descripcion = txtDescripcion.Text; try { tarifa.orden = Convert.ToInt32(txtOrden.Text); } catch (Exception ex) { MessageBox.Show("Ingrese un valor numérico"); } return(tarifa); }
public ActionResult GuardarFactura(int codigoCliente) { bool aplicoTarifa = false; var tarifaAplicada = new tarifa(); decimal porcentageMora = (decimal)0.2; decimal cargoPorMora = 0; decimal TOTAL=0; var periodoActual = _negociosService.GetPeriodoActual(); var consumo = _negociosService.GetConsumo(periodoActual.codigo, codigoCliente); var facturasPendientes = _negociosService.GetFacturasPendientes(periodoActual.codigo, codigoCliente); var tarifas = _catalogosService.GetTarifas().OrderBy(x=>x.metrajeMaximo); var parametros = _negociosService.GetParametros(); //objeto factura factura facturaObj = new Core.Model.factura { pagada = false, periodo = periodoActual.codigo, cliente = codigoCliente, banco = parametros.banco, noCuenta = parametros.noCuenta, fechaVencimiento = periodoActual.fechaVencimiento, consumo = consumo.codigo, cargoBasico = parametros.cargoBasico, }; TOTAL = TOTAL + (decimal)parametros.cargoBasico; //verificacion de moras if (facturasPendientes.Any()) { facturaObj.poseeMora = true; foreach (var a in facturasPendientes) { cargoPorMora = cargoPorMora + (a.total * porcentageMora); } TOTAL = TOTAL + cargoPorMora; ViewBag.meseseMora = facturasPendientes.Count; ViewBag.cargoMora = cargoPorMora; } //Analisis de consumo para aplicar tarifa if (consumo.consumoEspecifico > 0) { foreach (var b in tarifas) { if (consumo.consumoEspecifico <= b.metrajeMaximo && consumo.consumoEspecifico >= b.metrajeMinimo) { aplicoTarifa = true; tarifaAplicada = b; facturaObj.totalPorConsumo = (decimal)tarifaAplicada.precio; TOTAL = TOTAL + (decimal)facturaObj.totalPorConsumo; break; } } } //no aplico tarifa if (aplicoTarifa == false && consumo.consumoEspecifico > 0) { tarifaAplicada = tarifas.OrderByDescending(x => x.metrajeMaximo).First(); int diferencia = consumo.consumoEspecifico - tarifaAplicada.metrajeMaximo; TOTAL = TOTAL + tarifaAplicada.precio; TOTAL = TOTAL + diferencia * (decimal)parametros.precioMetroCubico; ViewBag.consumoExtra = diferencia * (decimal)parametros.precioMetroCubico; ViewBag.metrosSobre = diferencia; ViewBag.precioMetro = parametros.precioMetroCubico; } if (tarifaAplicada.codigo > 0) { facturaObj.tarifa = tarifaAplicada.codigo; } else { facturaObj.tarifa = null; } facturaObj.total = TOTAL; var guardado= _negociosService.SaveFactura(facturaObj); var f = _negociosService.GetFacturaByNo((long)guardado.noFactura); //var pb = _negociosService.GetFacturaSinTarifa((long)guardado.noFactura); if (facturaObj.poseeMora == true) { _negociosService.SaveMora(new mora { noFactura = guardado.noFactura, cargoPorMora = cargoPorMora }); } if (f == null) { var pb = _negociosService.GetFacturaSinTarifa((long)guardado.noFactura); return new ViewAsPdf("Factura", pb) { FileName = "Factura" + facturaObj.noFactura + ".pdf", PageOrientation = Rotativa.Options.Orientation.Portrait, PageSize = Rotativa.Options.Size.A3 }; } else { return new ViewAsPdf("Factura", f) { FileName = "Factura" + facturaObj.noFactura + ".pdf", PageOrientation = Rotativa.Options.Orientation.Portrait, PageSize = Rotativa.Options.Size.A3 }; } }
public ActionResult DetalleTarifas(tarifa data) { _catalogosService.SaveTarifa(data); return RedirectToAction("ListaTarifas"); }
public ActionResult DetalleTarifas(int codigo = 0) { tarifa data = new tarifa(); data = _catalogosService.GetTarifa(codigo); return View(data); }