Exemplo n.º 1
0
        public void Pagar(long cajaId, long usuarioId, long clienteId, decimal monto, string clienteApyNom)
        {
            try
            {
                var fechaActual    = DateTime.Now;
                var nroComprobante = _contadorServicio.ObtenerSiguienteNumeroComprobante(TipoComprobante.CuentaCorriente);

                var movimiento = new MovimientoCuentaCorriente
                {
                    CajaId                  = cajaId,
                    ClienteId               = clienteId,
                    Fecha                   = fechaActual,
                    Descripcion             = $"Pago Cta Cte del cliente {clienteApyNom} - Nro:{nroComprobante} - Monto: {monto.ToString("C")}",
                    TipoMovimiento          = TipoMovimiento.Ingreso,
                    UsuarioId               = usuarioId,
                    Monto                   = monto,
                    EstaEliminado           = false,
                    cuentaCorrienteClientes = new List <CuentaCorrienteCliente>()
                };



                var nuevoComprobante = new CuentaCorrienteCliente
                {
                    ClienteId     = clienteId,
                    Descuento     = 0,
                    SubTotal      = monto,
                    Total         = monto,
                    Fecha         = fechaActual,
                    Iva105        = 0,
                    Iva21         = 0,
                    Numero        = nroComprobante,
                    EstaEliminado = false,
                    UsuarioId     = usuarioId,
                };

                movimiento.cuentaCorrienteClientes.Add(nuevoComprobante);

                _unidadDeTrabajo.CuentaCorrienteRepositorio.Insertar(movimiento);
                _unidadDeTrabajo.Commit();
            }
            catch (Exception e)
            {
                throw new Exception("Ocurrió un error al pagar la Cuenta Corriente");
            }
        }
        public ActionResult Pago(ModeloPago pago)
        {
            if (ModelState.IsValid)
            {
                var mov = new MovimientoCuentaCorriente()
                          //var mov = new Transaccion()

                {
                    IdMovimientoCuentaCorriente = Guid.NewGuid(),
                    //IdTransaccion = Guid.NewGuid(),

                    IdUsuario = pago.IdUsuario,

                    FechaMovimiento = pago.FechaPago,
                    //FechaAlta = pago.FechaPago,

                    Moneda     = DataContext.Monedas.SingleOrDefault(m => m.Descripcion == pago.Moneda.ToString()),
                    MontoDebe  = 0f,
                    MontoHaber = (float)pago.MontoPagado,
                    Cotizacion = (float)pago.TipoCambio
                };

                DataContext.MovimientosCuentaCorriente.InsertOnSubmit(mov);
                //DataContext.Transacciones.InsertOnSubmit(mov);
                return(RedirectToAction("DetallesCuenta", new { id = pago.IdUsuario }));
            }
            else
            {
                ViewBag.Message = "Detalles del pago no válidos";

                pago.Saldo = Decimal.Round((decimal)DataContext.MovimientosCuentaCorriente.Where(
                                               //pago.Saldo = Decimal.Round((decimal)DataContext.Transacciones.Where(

                                               m => m.IdUsuario == pago.IdUsuario).Sum(m => (double)((m.MontoHaber - m.MontoDebe) * m.Cotizacion)), 2);
                pago.FechaPago = DateTime.Now.Date;
                return(View(pago));
            }
        }
 public MovimientoResumenDeCuenta(MovimientoCuentaCorriente movimientoCuentaCorriente)
 {
 }