public void GuardarPago(Pago pago, double montoRecibido)
        {
            PagoServicio pagoServicio = new PagoServicio();

            pagoServicio.ValidarVuelto(pago, montoRecibido);
            gestorDAO.AbrirConexion();
            gestorDAO.IniciarTransaccion();
            pagoDAO.Guardar(pago);
            gestorDAO.TerminarTransaccion();
            gestorDAO.CerrarConexion();
        }
        public int Agregar(PagoServicioVob pagoServicio)
        {
            PagoServicio pago = new PagoServicio();

            using (var context = new UPC_MUNIEntities())
            {
                pago.FechaPago        = pagoServicio.FechaPago;
                pago.NumSolicitudPago = pagoServicio.SolicitudPagoServicio.NumSolicitudPago;
                pago.CodFormaPago     = pagoServicio.CodFormaPago;
                pago.CodTipoCambio    = pagoServicio.CodTipoCambio;
                pago.CodMonedaPago    = pagoServicio.CodMonedaPago;
                pago.MontoPago        = pagoServicio.MontoPago;
                pago.CodEstadoPago    = pagoServicio.CodEstadoPago;

                context.PagoServicio.Add(pago);
                context.SaveChanges();



                // ACTUALIZAR SOLICITUD
                var solicitud = (from c in context.SolicitudPagoServicio
                                 where c.NumSolicitudPago == pagoServicio.SolicitudPagoServicio.NumSolicitudPago
                                 select c).First();


                solicitud.CodEstadoSolicitud = pagoServicio.SolicitudPagoServicio.CodEstadoSolicitud;

                //  context.Expediente.Add(exp);

                context.SolicitudPagoServicio.Attach(solicitud);
                context.Entry(solicitud).State = EntityState.Modified;
                context.SaveChanges();


                return(Convert.ToInt32(pago.NumeroPago));
            };
        }
Example #3
0
        public async Task <ActionResult <StandardResponse> > PagoServicio(PagoServicio pagoServicio)
        {
            Tarjeta tarjeta = await _context.Tarjeta.Where(b => b.TarjetaId == pagoServicio.TarjetaId).FirstOrDefaultAsync();

            if (tarjeta == null)
            {
                return(NotFound());
            }
            CuentaBancaria cuentaBancariaOrigen = await _context.CuentaBancaria.Where(b => b.CuentaBancariaId == tarjeta.CuentaBancariaId).FirstOrDefaultAsync();

            if (cuentaBancariaOrigen == null)
            {
                return(NotFound());
            }
            StandardResponse standardResponse = new StandardResponse();

            if ((cuentaBancariaOrigen.Saldo - pagoServicio.Monto) < 0)
            {
                standardResponse.Code    = 200;
                standardResponse.Message = "Saldo Insuficiente";
                standardResponse.data    = tarjeta.TarjetaId.ToString();
                return(Ok(standardResponse));
            }
            long cuentaDestino;

            if (pagoServicio.TipoServicio.Equals("T"))
            {
                ServicioTelefono servicioTelefono = await _context.ServicioTelefono.Where(b => b.Telefono == pagoServicio.Correlativo).FirstOrDefaultAsync();

                if (servicioTelefono == null)
                {
                    return(NotFound());
                }
                cuentaDestino           = servicioTelefono.CuentaBancariaId;
                servicioTelefono.Saldo -= pagoServicio.Monto;
                _context.Entry(servicioTelefono).State = EntityState.Modified;
                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    throw;
                }
            }
            else
            {
                ServicioLuz servicioLuz = await _context.ServicioLuz.Where(b => b.Correlativo == pagoServicio.Correlativo).FirstOrDefaultAsync();

                if (servicioLuz == null)
                {
                    return(NotFound());
                }
                cuentaDestino      = servicioLuz.CuentaBancariaId;
                servicioLuz.Saldo -= pagoServicio.Monto;
                _context.Entry(servicioLuz).State = EntityState.Modified;
                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    throw;
                }
            }

            CuentaBancaria cuentaBancariaDestino = await _context.CuentaBancaria.Where(b => b.CuentaBancariaId == cuentaDestino).FirstOrDefaultAsync();

            if (cuentaBancariaDestino == null)
            {
                return(NotFound());
            }

            cuentaBancariaDestino.Saldo += pagoServicio.Monto;
            cuentaBancariaOrigen.Saldo  -= pagoServicio.Monto;


            _context.Entry(cuentaBancariaDestino).State = EntityState.Modified;
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }
            _context.Entry(cuentaBancariaOrigen).State = EntityState.Modified;
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }

            //Guarda Bitacora
            Bitacora bitacora = new Bitacora();

            bitacora.CuentaBancariaDestino = cuentaBancariaDestino.CuentaBancariaId;
            bitacora.CuentaBancariaOrigen  = cuentaBancariaOrigen.CuentaBancariaId;
            bitacora.Monto = pagoServicio.Monto;
            _context.Bitacora.Add(bitacora);
            await _context.SaveChangesAsync();

            //Devuelve Respuesta
            standardResponse.Code    = 200;
            standardResponse.Message = "Pago Exitoso";
            standardResponse.data    = tarjeta.TarjetaId.ToString();
            return(Ok(standardResponse));
        }
Example #4
0
        private void Paso3_3()
        {
            w1_3.Visibility = System.Windows.Visibility.Collapsed;
            w2_3.Visibility = System.Windows.Visibility.Collapsed;
            w3_3.Visibility = System.Windows.Visibility.Visible;
            w2_3_ST.Visibility = System.Windows.Visibility.Collapsed;
            btnProcess.Visibility = System.Windows.Visibility.Collapsed;
            (ApplicationBar.Buttons[0] as Microsoft.Phone.Shell.ApplicationBarIconButton).IsEnabled = true;
            (ApplicationBar.Buttons[2] as Microsoft.Phone.Shell.ApplicationBarIconButton).IsEnabled = false;

            this._flujo = PagoServicio.Pago;
        }
Example #5
0
        private void Paso2_3()
        {
            w1_3.Visibility = System.Windows.Visibility.Collapsed;
            w2_3.Visibility = System.Windows.Visibility.Visible;
            w3_3.Visibility = System.Windows.Visibility.Collapsed;
            btnProcess.Content = TextosBotones.bConfirmar;
            (ApplicationBar.Buttons[1] as Microsoft.Phone.Shell.ApplicationBarIconButton).IsEnabled = false;
            (ApplicationBar.Buttons[2] as Microsoft.Phone.Shell.ApplicationBarIconButton).IsEnabled = false;

            this._vm.Referencia = tbxReferencia.Text;
            this._vm.Importe = Convert.ToDouble(tbxImporte.Text);
            this._flujo = PagoServicio.Confirmacion;
        }
Example #6
0
        private void Paso1_3(bool nuevo = false)
        {
            if (nuevo)
            {
                tbxCuentaCargo.Text = string.Empty;
                tbxServicio.Text = string.Empty;
                tbxReferencia.Text = string.Empty;
                tbxImporte.Text = string.Empty;
                tbReferencia.Visibility = System.Windows.Visibility.Collapsed;
                tbxReferencia.Visibility = System.Windows.Visibility.Collapsed;
            }

            w1_3.Visibility = System.Windows.Visibility.Visible;
            w2_3.Visibility = System.Windows.Visibility.Collapsed;
            w3_3.Visibility = System.Windows.Visibility.Collapsed;
            w2_3_ST.Visibility = System.Windows.Visibility.Collapsed;
            btnProcess.Visibility = System.Windows.Visibility.Visible;
            btnProcess.Content = TextosBotones.bContinuar;
            (ApplicationBar.Buttons[0] as Microsoft.Phone.Shell.ApplicationBarIconButton).IsEnabled = false;
            (ApplicationBar.Buttons[2] as Microsoft.Phone.Shell.ApplicationBarIconButton).IsEnabled = false;

            if (this._vm != null) tbMessage1.Text = string.Format(TextosPantallas.tm1, this._vm.LimiteDisponible.FormatoImporte());
            this._flujo = PagoServicio.CuentaServicio;
        }