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) { }