public void EliminarOrdenPago(Guid id) { _cajaActual = this._context.CajaActual; var ordenPago = _uow.OrdenesPagos.Obtener(op => op.Id == id, op => op.OrdenesPagoDetalles); foreach (var detalle in ordenPago.OrdenesPagoDetalles) { EliminarDetalle(ordenPago, detalle); } ordenPago.FechaAnulacion = _clock.Now; _uow.OrdenesPagos.Modificar(ordenPago); _uow.Commit(); }
public Caja AbrirCaja(Guid opertadorId,int sucursalId) { Operador operador = Uow.Operadores.Obtener(o => o.Id == opertadorId); if (operador == null) { throw new ApplicationException("No se ha encontrado el operador"); } Caja ultimaCaja = this.UltimaCaja(opertadorId, sucursalId); Caja caja = new Caja(); if (ultimaCaja != null) { if (ultimaCaja.FCierre == null) { throw new ApplicationException("No se puede abrir la caja. El operador posee una caja que no ha sido cerrada"); } caja.Ingresos = 0; caja.Egresos = 0; caja.Cheques = 0; caja.Inicio = ultimaCaja.Saldo; caja.Saldo = ultimaCaja.Saldo; } var now = _clock.Now; caja.Id = Guid.NewGuid(); caja.Fecha = now; caja.OperadorId = opertadorId; caja.OperadorAltaId = opertadorId; caja.FechaAlta = now; caja.SucursalAltaId = sucursalId; caja.SucursalId = sucursalId; Uow.Cajas.Agregar(caja); Uow.Commit(); return caja; }
private void ActualizarCajaAnterior(PagoEfectivo pagoEfec, Caja caja, CajaMovimiento cajaMovimiento) { cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.OrdenPago; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.DepositoConCajaAnterior; cajaMovimiento.ComprobanteId = _ordenPago.Id; cajaMovimiento.Importe = pagoEfec.Importe; if (cajaMovimiento.Efectivo == null) cajaMovimiento.Efectivo = 0; cajaMovimiento.Efectivo = pagoEfec.Importe; if (caja.Saldo == null) caja.Saldo = 0; //Pago Efectivo para Caja Anterior solo se Modifica el Saldo Acumulado caja.Saldo -= (float?)pagoEfec.Importe; }
private void ActualizarCajaActual(OrdenesPagoDetalle pago, Caja caja) { caja.Egresos += (float)(pago.Efectivo ?? 0); caja.Saldo -= (float)(pago.Efectivo ?? 0); caja.FechaModificacion = pago.Id == default(Guid) ? (DateTime?)null : _clock.Now; caja.SucursalModificacionId = pago.Id == default(Guid) ? (int?)null : Context.SucursalActual.Id; caja.OperadorModificacionId = pago.Id == default(Guid) ? (Guid?)null : Context.OperadorActual.Id; }
private void GuardarOrdenPago() { //Obtenemos una instancia comun de la caja actual. _cajaActual = Context.CajaActual; var orden = ObtenerOrdenPagoDesdeForm(); Caja caja = this.Context.CajaActual; if (_formMode == ActionFormMode.Create) { ActualizarOrdenPagoDetalle(); Uow.OrdenesPagos.Agregar(orden); } else { ActualizarOrdenPagoDetalle(); Uow.OrdenesPagos.Modificar(orden); } Uow.Commit(); _ordenId = _ordenPago.Id; this.DialogResult = DialogResult.OK; }
private void GuardarPagosConsignacion() { if (!ValidarPagoConsignacion()) return; //Acumulamos los pagos decimal? efectivo = 0; decimal? efectivoCajaAnterior = 0; decimal? tarjeta = 0; decimal? cheque = 0; decimal? deposito = 0; decimal? transferencia = 0; foreach (var pago in ucTotalesCompraSeña1.Pagos) { switch (pago.TipoPago) { case FormaPago.Efectivo: efectivo += pago.Importe; break; case FormaPago.EfectivoCajaAnterior: efectivoCajaAnterior += pago.Importe; break; case FormaPago.Tarjeta: tarjeta += pago.Importe; break; case FormaPago.Cheque: cheque += pago.Importe; break; case FormaPago.Deposito: deposito += pago.Importe; break; case FormaPago.Transferencia: transferencia += pago.Importe; break; } } #region Guardamos caja en contado //Guardamos la caja Caja caja = new Caja(); if (DtpFechaPago.Value != _clock.Now) { caja = Uow.Cajas.Obtener(c => DbFunctions.TruncateTime(c.FechaAlta) == DtpFechaPago.Value.Date); if (caja == null) { MessageBox.Show("No se encontro una caja válida para esa fecha"); return; } } else { caja = this.Context.CajaActual; //descontar de la caja if (caja.Egresos == null) caja.Egresos = 0; caja.Egresos += (float?)efectivo; if (caja.Saldo == null) caja.Saldo = 0; caja.Saldo -= (float?)ucTotalesCompraSeña1.SubTotal; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = Context.SucursalActual.Id; caja.OperadorModificacionId = (Context.OperadorActual.Id); } //aca descontamos las señas en el caso de que se utilicen. var _seña = UsoDeSeña(); var _credito = UsoDeCredito(); var _egreso = UsoEgreso(); if (efectivo > 0) { CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.PagoProveedores; //le paso guid empty pero hay que ver que se le pasa cajaMovimiento.ComprobanteId = _pagoIdConsignacion; cajaMovimiento.Importe = efectivo; cajaMovimiento.ImpFac = (decimal?)ucTotalesCompraSeña1.SubTotal; cajaMovimiento.Efectivo = efectivo; cajaMovimiento.Senia = _seña + _credito + _egreso; if (_seña > 0) { //cajaMovimiento.Senia = _seña; _seña = 0; } if (_credito > 0) { //cajaMovimiento.Senia = _seña; _credito = 0; } if (_egreso > 0) { _egreso = 0; } cajaMovimiento.FechaAlta = DtpFechaPago.Value; cajaMovimiento.PcAlta = System.Environment.MachineName; cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id; cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id; cajaMovimiento.OperadorModificacionId = Context.OperadorActual.Id; cajaMovimiento.FechaModificacion = _clock.Now; cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.PagoProveedores; Uow.CajaMovimientos.Agregar(cajaMovimiento); } if (tarjeta > 0 || deposito > 0 || cheque > 0 || efectivoCajaAnterior > 0 || transferencia > 0) { CajaMovimiento cajaMovimientoAnterior = new CajaMovimiento(); cajaMovimientoAnterior.Id = Guid.NewGuid(); cajaMovimientoAnterior.CajaId = caja.Id; //cajaMovimientoAnterior.TipoMovimientoCajaId = // TipoMovimientoCajaEnum.PagoProveedorCajaAnterior; -2 cajaMovimientoAnterior.TipoMovimientoCajaId = TipoMovimientoCajaEnum.PagoCtaProveedorCajaAnterior; cajaMovimientoAnterior.ComprobanteId = _pagoIdConsignacion; cajaMovimientoAnterior.Importe = tarjeta + deposito + cheque + efectivoCajaAnterior + transferencia; cajaMovimientoAnterior.ImpFac = (decimal?)ucTotalesCompraSeña1.SubTotal; cajaMovimientoAnterior.FechaModificacion = _clock.Now; cajaMovimientoAnterior.PcAlta = System.Environment.MachineName; cajaMovimientoAnterior.OperadorAltaId = Context.OperadorActual.Id; cajaMovimientoAnterior.SucursalAltaId = Context.SucursalActual.Id; cajaMovimientoAnterior.OperadorModificacionId = Context.OperadorActual.Id; cajaMovimientoAnterior.SucursalModificacionId = Context.SucursalActual.Id; cajaMovimientoAnterior.TipoComprobante = TipoComprobanteEnum.PagoProveedores; cajaMovimientoAnterior.Efectivo = efectivoCajaAnterior; cajaMovimientoAnterior.Tarjeta = tarjeta; cajaMovimientoAnterior.Deposito = deposito; cajaMovimientoAnterior.Cheque = cheque; cajaMovimientoAnterior.Transferencia = transferencia; //if (cheque > 0) // cajaMovimientoAnterior.FechaAlta = tipo; //else cajaMovimientoAnterior.FechaAlta = _clock.Now; cajaMovimientoAnterior.Senia = _seña + _credito + _egreso; Uow.CajaMovimientos.Agregar(cajaMovimientoAnterior); //Guardamos el movimiento del depósito foreach (var pago in ucTotalesCompraSeña1.Pagos) { switch (pago.TipoPago) { case FormaPago.Cheque: // HACER ALGO break; case FormaPago.Deposito: var pagoDeposito = pago as VentaPagoDeposito; CuentasMovimiento cuentasMovimiento = new CuentasMovimiento(); cuentasMovimiento.CuentaId = pagoDeposito.CuentaId ?? 0; cuentasMovimiento.TipoMovimientoId = 1;//Deposito a proveedor cuentasMovimiento.FechaMovimiento = pagoDeposito.Fecha; cuentasMovimiento.EstadoMovimientoCuentaId = 0; //CONTROLAR!! cuentasMovimiento.TipoComprobanteId = TipoComprobanteEnum.PagoProveedores; //le paso guid empty pero hay que ver que se le pasa cuentasMovimiento.ComprobanteId = Guid.Empty; cuentasMovimiento.MonedaId = 0; cuentasMovimiento.NroMovimiento = pagoDeposito.Numero; cuentasMovimiento.Descripcion = "DEPOSITO NRO " + pagoDeposito.Numero.ToString(); cuentasMovimiento.FechaCobro = _clock.Now; cuentasMovimiento.Debito = pago.Importe; cuentasMovimiento.Credito = 0; cuentasMovimiento.TipoCarga = 1; cuentasMovimiento.CajaId = caja.Id; cuentasMovimiento.FechaAlta = _clock.Now; cuentasMovimiento.OperadorAltaId = Context.OperadorActual.Id; cuentasMovimiento.SucursalAltaId = Context.SucursalActual.Id; Uow.CuentasMovimientos.Agregar(cuentasMovimiento); break; case FormaPago.Transferencia: var pagoTransferencia = pago as VentaPagoTransferencia; CuentasMovimiento cuentasMovimientoTransferecia = new CuentasMovimiento(); cuentasMovimientoTransferecia.CuentaId = pagoTransferencia.CuentaId ?? 0; cuentasMovimientoTransferecia.TipoMovimientoId = 1;//Deposito a proveedor cuentasMovimientoTransferecia.FechaMovimiento = pagoTransferencia.Fecha; cuentasMovimientoTransferecia.EstadoMovimientoCuentaId = 0; //CONTROLAR!! cuentasMovimientoTransferecia.TipoComprobanteId = TipoComprobanteEnum.PagoProveedores; //le paso guid empty pero hay que ver que se le pasa cuentasMovimientoTransferecia.ComprobanteId = Guid.Empty; cuentasMovimientoTransferecia.MonedaId = 0; cuentasMovimientoTransferecia.NroMovimiento = pagoTransferencia.Numero; cuentasMovimientoTransferecia.Descripcion = "TRANSFERENCIA NRO " + pagoTransferencia.Numero.ToString(); cuentasMovimientoTransferecia.FechaCobro = _clock.Now; cuentasMovimientoTransferecia.Debito = pago.Importe; cuentasMovimientoTransferecia.Credito = 0; cuentasMovimientoTransferecia.TipoCarga = 1; cuentasMovimientoTransferecia.CajaId = caja.Id; cuentasMovimientoTransferecia.FechaAlta = _clock.Now; cuentasMovimientoTransferecia.OperadorAltaId = Context.OperadorActual.Id; cuentasMovimientoTransferecia.SucursalAltaId = Context.SucursalActual.Id; Uow.CuentasMovimientos.Agregar(cuentasMovimientoTransferecia); break; } } } Uow.Cajas.Modificar(caja); #endregion Uow.Commit(); _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessPagoExitoso); }
public void CrearSeniaProveedor(ProveedorSenia senia, IList<VentaPago> pagos, Caja caja, Guid operadorId, int sucursalId) { using (var uow = UowFactory.Create<ILaPazUow>()) { decimal? efectivo = 0; decimal? efectivoCajaAnterior = 0; decimal? tarjeta = 0; decimal? cheque = 0; decimal? deposito = 0; decimal? transferencia = 0; foreach (var pago in pagos) { switch (pago.TipoPago) { case FormaPago.Efectivo: efectivo += pago.Importe; break; case FormaPago.EfectivoCajaAnterior: efectivoCajaAnterior += pago.Importe; break; case FormaPago.Tarjeta: tarjeta += pago.Importe; break; case FormaPago.Cheque: cheque += pago.Importe; break; case FormaPago.Deposito: deposito += pago.Importe; break; case FormaPago.Transferencia: transferencia += pago.Importe; break; } } if (efectivo > 0) { //creo la caja movimiento para los pagos en efectivo que tocan la caja actual CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaProveedor; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedor; cajaMovimiento.ComprobanteId = senia.Id; cajaMovimiento.Importe = efectivo; cajaMovimiento.ImpFac = efectivo; cajaMovimiento.FechaAlta = _clock.Now; cajaMovimiento.FechaModificacion = _clock.Now; cajaMovimiento.PcAlta = System.Environment.MachineName; cajaMovimiento.OperadorAltaId = operadorId; cajaMovimiento.SucursalAltaId = sucursalId; cajaMovimiento.OperadorModificacionId = operadorId; cajaMovimiento.SucursalModificacionId = sucursalId; //descontar de la caja if (caja.Egresos == null) caja.Egresos = 0; caja.Egresos += (float?)efectivo; if (caja.Saldo == null) caja.Saldo = 0; caja.Saldo -= (float?)efectivo; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = sucursalId;//Sucursal del operador caja.OperadorModificacionId = (operadorId);//Id el operador //traer la caja if (cajaMovimiento.Efectivo == null) cajaMovimiento.Efectivo = 0; cajaMovimiento.Efectivo = efectivo; uow.CajaMovimientos.Agregar(cajaMovimiento); } if (tarjeta > 0 || deposito > 0 || cheque > 0 || efectivoCajaAnterior > 0 || transferencia > 0) { //creo la caja movimiento para los pagos en efectivo que tocan la caja actual CajaMovimiento cajaMovimientoAnterior = new CajaMovimiento(); cajaMovimientoAnterior.Id = Guid.NewGuid(); cajaMovimientoAnterior.CajaId = caja.Id; cajaMovimientoAnterior.TipoComprobante = TipoComprobanteEnum.SeñaProveedor; cajaMovimientoAnterior.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedorCajaAnterior; cajaMovimientoAnterior.ComprobanteId = senia.Id; cajaMovimientoAnterior.Importe = tarjeta + deposito + cheque + efectivoCajaAnterior + transferencia; cajaMovimientoAnterior.ImpFac = tarjeta + deposito + cheque + efectivoCajaAnterior + transferencia; cajaMovimientoAnterior.FechaAlta = _clock.Now; cajaMovimientoAnterior.FechaModificacion = _clock.Now; cajaMovimientoAnterior.PcAlta = System.Environment.MachineName; cajaMovimientoAnterior.OperadorAltaId = operadorId; cajaMovimientoAnterior.SucursalAltaId = sucursalId; cajaMovimientoAnterior.OperadorModificacionId = operadorId; cajaMovimientoAnterior.SucursalModificacionId = sucursalId; if (efectivoCajaAnterior > 0) { if (cajaMovimientoAnterior.Efectivo == null) cajaMovimientoAnterior.Efectivo = 0; cajaMovimientoAnterior.Efectivo += efectivoCajaAnterior; if (caja.Saldo == null) caja.Saldo = 0; caja.Saldo -= (float?)efectivo; } if (tarjeta > 0) { if (cajaMovimientoAnterior.Tarjeta == null) cajaMovimientoAnterior.Tarjeta = 0; cajaMovimientoAnterior.Tarjeta += tarjeta; } if (cheque > 0) { if (cajaMovimientoAnterior.Cheque == null) cajaMovimientoAnterior.Cheque = 0; cajaMovimientoAnterior.Cheque += cheque; } if (deposito > 0) { if (cajaMovimientoAnterior.Deposito == null) cajaMovimientoAnterior.Deposito = 0; cajaMovimientoAnterior.Deposito += deposito; } if (transferencia > 0) { if (cajaMovimientoAnterior.Transferencia == null) cajaMovimientoAnterior.Transferencia = 0; cajaMovimientoAnterior.Transferencia += transferencia; } uow.CajaMovimientos.Agregar(cajaMovimientoAnterior); } //Guardamos el movimiento del depósito foreach (var pago in pagos) { switch (pago.TipoPago) { case FormaPago.Cheque: // HACER ALGO break; case FormaPago.Deposito: var pagoDeposito = pago as VentaPagoDeposito; CuentasMovimiento cuentasMovimiento = new CuentasMovimiento(); cuentasMovimiento.CuentaId = pagoDeposito.CuentaId ?? 0; cuentasMovimiento.TipoMovimientoId = 1;//Deposito a proveedor cuentasMovimiento.FechaMovimiento = pagoDeposito.Fecha; cuentasMovimiento.EstadoMovimientoCuentaId = 0; cuentasMovimiento.TipoComprobanteId = TipoComprobanteEnum.SeñaProveedor; cuentasMovimiento.ComprobanteId = senia.Id; cuentasMovimiento.MonedaId = 0; cuentasMovimiento.NroMovimiento = pagoDeposito.Numero; cuentasMovimiento.Descripcion = "DEPOSITO SEÑA NRO " + pagoDeposito.Numero.ToString(); cuentasMovimiento.FechaCobro = _clock.Now; cuentasMovimiento.Debito = pago.Importe; cuentasMovimiento.Credito = 0; cuentasMovimiento.TipoCarga = 1; cuentasMovimiento.CajaId = caja.Id; cuentasMovimiento.FechaAlta = _clock.Now; cuentasMovimiento.OperadorAltaId = operadorId; cuentasMovimiento.SucursalAltaId = sucursalId; uow.CuentasMovimientos.Agregar(cuentasMovimiento); break; case FormaPago.Transferencia: var pagoTransferencia = pago as VentaPagoTransferencia; CuentasMovimiento cuentasMovimientoTransferecia = new CuentasMovimiento(); cuentasMovimientoTransferecia.CuentaId = pagoTransferencia.CuentaId ?? 0; cuentasMovimientoTransferecia.TipoMovimientoId = 1;//Deposito a proveedor cuentasMovimientoTransferecia.FechaMovimiento = pagoTransferencia.Fecha; cuentasMovimientoTransferecia.EstadoMovimientoCuentaId = 0; cuentasMovimientoTransferecia.TipoComprobanteId = TipoComprobanteEnum.SeñaProveedor; cuentasMovimientoTransferecia.ComprobanteId = senia.Id; cuentasMovimientoTransferecia.MonedaId = 0; cuentasMovimientoTransferecia.NroMovimiento = pagoTransferencia.Numero; cuentasMovimientoTransferecia.Descripcion = "TRANSFERENCIA SEÑA NRO " + pagoTransferencia.Numero.ToString(); cuentasMovimientoTransferecia.FechaCobro = _clock.Now; cuentasMovimientoTransferecia.Debito = pago.Importe; cuentasMovimientoTransferecia.Credito = 0; cuentasMovimientoTransferecia.TipoCarga = 1; cuentasMovimientoTransferecia.CajaId = caja.Id; cuentasMovimientoTransferecia.FechaAlta = _clock.Now; cuentasMovimientoTransferecia.OperadorAltaId = operadorId; cuentasMovimientoTransferecia.SucursalAltaId = sucursalId; uow.CuentasMovimientos.Agregar(cuentasMovimientoTransferecia); break; } } uow.Cajas.Modificar(caja); uow.ProveedoresSenias.Agregar(senia); uow.Commit(); } }
public void AnularSeniaProveedor(ProveedorSenia senia, Caja caja, Guid operadorId, int sucursalId) { using (var uow = UowFactory.Create<ILaPazUow>()) { var diferencia = senia.Importe - senia.ImporteUsado; if (diferencia == 0) return; senia.ImporteUsado = senia.Importe; senia.FechaAnulacion = _clock.Now; senia.FechaModificacion = _clock.Now; senia.OperadorModificacionId = operadorId; senia.SucursalModificacionId = sucursalId; uow.ProveedoresSenias.Modificar(senia); if (caja.Ingresos == null) caja.Ingresos = 0; caja.Egresos += (float?)diferencia; if (caja.Saldo == null) caja.Saldo = 0; caja.Saldo -= (float?)diferencia; caja.FechaModificacion = _clock.Now; caja.SucursalModificacionId = sucursalId; caja.OperadorModificacionId = operadorId; uow.Cajas.Modificar(caja); //Se deben buscar todas las cajasMovimientos var cajaMovimientoAnterior = uow.CajaMovimientos.Listado().Where(cm => cm.ComprobanteId == senia.Id); foreach (CajaMovimiento movimiento in cajaMovimientoAnterior) { CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulacionSeniaProveedor; cajaMovimiento.TipoComprobante = TipoComprobanteEnum.SeñaCliente; cajaMovimiento.ComprobanteId = senia.Id; cajaMovimiento.Senia = 0; //analizar para Anulaciones Parciales cajaMovimiento.Importe = movimiento.Importe; cajaMovimiento.Efectivo = movimiento.Efectivo; cajaMovimiento.Tarjeta = movimiento.Tarjeta; cajaMovimiento.Cheque = movimiento.Cheque; cajaMovimiento.Deposito = movimiento.Deposito; cajaMovimiento.ImpFac = 0; cajaMovimiento.PcAlta = Environment.MachineName; cajaMovimiento.SucursalAltaId = sucursalId; cajaMovimiento.OperadorAltaId = operadorId; cajaMovimiento.FechaAlta = _clock.Now; uow.CajaMovimientos.Agregar(cajaMovimiento); } uow.Commit(); } }
private CajaMovimiento CrearCajaMovimiento(VentaDataBase ventaData, Caja caja, Venta venta) { CajaMovimiento cajaMovimiento = new CajaMovimiento(); cajaMovimiento.Id = Guid.NewGuid(); cajaMovimiento.CajaId = caja.Id; cajaMovimiento.TipoMovimientoCajaId = ventaData.TipoCajaMovimientoSeleccionado; cajaMovimiento.TipoComprobante = ventaData.TipoComprobanteSeleccionado; cajaMovimiento.ComprobanteId = venta.Id; cajaMovimiento.Senia = ventaData.Senas + ventaData.CreditosDevolucion; if (ventaData.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente) cajaMovimiento.Importe = ventaData.Anticipo; else cajaMovimiento.Importe = ventaData.TotalPagar; cajaMovimiento.ImpFac = ventaData.SubTotal; //if (ventaData.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente) // cajaMovimiento.ImpFac = ventaData.SubTotal; //else // cajaMovimiento.ImpFac = ventaData.TotalPagar; cajaMovimiento.PcAlta = ventaData.PcAlta; cajaMovimiento.SucursalAltaId = ventaData.SucursalId; cajaMovimiento.OperadorAltaId = ventaData.OperadorId; cajaMovimiento.FechaAlta = _clock.Now; return cajaMovimiento; }
private void ProcesarPagoDeposito(VentaDataBase ventaData, VentaPago pago, CajaMovimiento cajaMovimiento, Venta venta, Caja caja) { var pagoDeposito = pago as VentaPagoDeposito; if (cajaMovimiento.Deposito == null) cajaMovimiento.Deposito = 0; //Guardar Cuentas Movimientos cajaMovimiento.Deposito += pago.Importe; CuentasMovimiento cuentasMovimiento = new CuentasMovimiento(); cuentasMovimiento.CuentaId = pagoDeposito.CuentaId ?? 0; cuentasMovimiento.TipoMovimientoId = 2; //Deposito cuentasMovimiento.FechaMovimiento = pagoDeposito.Fecha; cuentasMovimiento.EstadoMovimientoCuentaId = 0; cuentasMovimiento.TipoComprobanteId = ventaData.TipoComprobanteSeleccionado; cuentasMovimiento.ComprobanteId = venta.Id; cuentasMovimiento.MonedaId = 0; cuentasMovimiento.CondicionVentaId = ventaData.CondicionVentaSeleccionada; cuentasMovimiento.NroMovimiento = pagoDeposito.Numero; cuentasMovimiento.Descripcion = "DEPOSITO NRO " + pagoDeposito.Numero.ToString(); cuentasMovimiento.FechaCobro = _clock.Now; cuentasMovimiento.Debito = 0; cuentasMovimiento.Credito = pago.Importe; cuentasMovimiento.TipoCarga = 2; cuentasMovimiento.CajaId = caja.Id; cuentasMovimiento.FechaAlta = _clock.Now; cuentasMovimiento.OperadorAltaId = ventaData.OperadorId; cuentasMovimiento.SucursalAltaId = ventaData.SucursalId; Uow.CuentasMovimientos.Agregar(cuentasMovimiento); }