示例#1
0
        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);
        }
示例#2
0
        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);
 }