示例#1
0
        private void ActualizarCajaAnterior(OrdenesPago ordenPago, PagoEfectivo pagoEfec, Caja caja, CajaMovimiento cajaMovimientoAnterior)
        {
            cajaMovimientoAnterior.CajaId               = caja.Id;
            cajaMovimientoAnterior.TipoComprobante      = TipoComprobanteEnum.OrdenPago;
            cajaMovimientoAnterior.TipoMovimientoCajaId = TipoMovimientoCajaEnum.DepositoConCajaAnterior;
            cajaMovimientoAnterior.ComprobanteId        = ordenPago.Id;
            cajaMovimientoAnterior.Importe              = pagoEfec.Importe;

            if (cajaMovimientoAnterior.Efectivo == null)
            {
                cajaMovimientoAnterior.Efectivo = 0;
            }

            cajaMovimientoAnterior.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;

            _uow.Cajas.Modificar(caja);
        }
示例#2
0
        public IHttpActionResult PutPagoEfectivo(int id, PagoEfectivo pagoEfectivo, Pago pago)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != pagoEfectivo.Id)
            {
                return(BadRequest());
            }

            db.Entry(pagoEfectivo).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PagoEfectivoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
 private void ActualizarPagoEfectivoFijo()
 {
     if (_pagos.Count == 0)
     {
         var _pago = new PagoEfectivo {
             TipoPago = FormaPago.Efectivo, EsFijo = true, Importe = Importe, Fecha = _clock.Now
         };
         ImporteDebe = 0;
         _pagoFijo   = _pago;
         _pagos.Add(_pagoFijo);
     }
     else
     {
         _pagoFijo = _pagos.FirstOrDefault(p => p.EsFijo);
         if (_pagoFijo != null && PagoFijoEfectivo != 0)
         {
             PagoFijoEfectivo = Importe - this._pagos.Where(p => !p.IsDeleted && !p.EsFijo).Sum(p => p.Importe ?? 0);
             if (PagoFijoEfectivo == 0)
             {
                 _pagos.Remove(_pagoFijo);
             }
         }
         else
         {
             var total = TotalPagos();
             ImporteDebe = Importe - total;
         }
     }
 }
示例#4
0
        public void Instanciar_PagoEfectivo_Sin_Monto()
        {
            Pago pago;

            Action act = () => pago = new PagoEfectivo(null);

            Assert.Throws <NegocioException>(act);
        }
示例#5
0
        public IHttpActionResult GetPagoEfectivo(int id)
        {
            PagoEfectivo pagoEfectivo = db.PagosEfectivo.Find(id);

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

            return(Ok(pagoEfectivo));
        }
示例#6
0
        public IHttpActionResult PostPagoEfectivo(PagoEfectivo pagoEfectivo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.PagosEfectivo.Add(pagoEfectivo);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = pagoEfectivo.Id }, pagoEfectivo));
        }
示例#7
0
        private DetalleFormaPago ObtenerPagoDesdeForm()
        {
            DetalleFormaPago pago = new DetalleFormaPago();

            if (TabsFormaPago.SelectedPage == this.TabEfectivo)
            {
                var pagoEfectivo = new PagoEfectivo();
                pagoEfectivo.Importe      = this.Importe;
                pagoEfectivo.TipoPago     = FormaPago.Efectivo;
                pagoEfectivo.Fecha        = ChkCajaAnterior.Checked ? _clock.Now : DtpFecha.Value;
                pagoEfectivo.CajaAnterior = ChkCajaAnterior.Checked;
                pago = pagoEfectivo;
            }

            if (TabsFormaPago.SelectedPage == this.TabTransferencia)
            {
                var pagoTransferencia = new PagoTransferencia();
                pagoTransferencia.Importe     = Importe;
                pagoTransferencia.TipoPago    = FormaPago.Transferencia;
                pagoTransferencia.CuentaId    = CuentaId;
                pagoTransferencia.Fecha       = _clock.Now;
                pagoTransferencia.Numero      = NumeroTransferencia;
                pagoTransferencia.Descripcion = CbxCuentasTransferencia.Texto + " - " + NumeroTransferencia;
                pago = pagoTransferencia;
            }

            if (TabsFormaPago.SelectedPage == this.TabCheque)
            {
                var pagoCheque = new PagoCheque();
                pagoCheque.Importe     = Importe;
                pagoCheque.TipoPago    = FormaPago.Cheque;
                pagoCheque.Fecha       = _clock.Now;
                pagoCheque.BancoId     = this.ChequeBancoId;
                pagoCheque.Numero      = ChequeNumero;
                pagoCheque.Descripcion = CbxChequeBanco.Text + " - " + ChequeNumero;
                pago = pagoCheque;
            }

            if (TabsFormaPago.SelectedPage == this.TabDeposito)
            {
                var pagoDeposito = new PagoDeposito();
                pagoDeposito.Importe          = Importe;
                pagoDeposito.TipoPago         = FormaPago.Deposito;
                pagoDeposito.Fecha            = _clock.Now;
                pagoDeposito.DepositoCuentaId = this.DepositoCuentaId;
                pagoDeposito.Numero           = DepositoNumero;
                pagoDeposito.Descripcion      = CbxDepositoBanco.Text + " - " + DepositoNumero;
                pago = pagoDeposito;
            }

            return(pago);
        }
示例#8
0
        public IHttpActionResult DeletePagoEfectivo(int id)
        {
            PagoEfectivo pagoEfectivo = db.PagosEfectivo.Find(id);

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

            db.PagosEfectivo.Remove(pagoEfectivo);
            db.SaveChanges();

            return(Ok(pagoEfectivo));
        }
 private void ActualizarPagoEfectivoFijo()
 {
     if (_pagos.Count == 0)
     {
         var _pago = new PagoEfectivo { TipoPago = FormaPago.Efectivo, EsFijo = true, Importe = Importe, Fecha = _clock.Now};
         ImporteDebe = 0;
         _pagoFijo = _pago;
         _pagos.Add(_pagoFijo);
     }
     else
     {
         _pagoFijo = _pagos.FirstOrDefault(p => p.EsFijo);
         if (_pagoFijo != null && PagoFijoEfectivo != 0)
         {
             PagoFijoEfectivo = Importe - this._pagos.Where(p => !p.IsDeleted && !p.EsFijo).Sum(p => p.Importe ?? 0);
             if (PagoFijoEfectivo == 0)
             {
                 _pagos.Remove(_pagoFijo);
             }
         }
         else
         {
             var total = TotalPagos();
             ImporteDebe = Importe - total;
         }
     }
 }
        private void CargarOrdenPagoDetalle()
        {
            _pagos = new List<DetalleFormaPago>();

            var detalleLista = _ordenPago.OrdenesPagoDetalles.Where(d => !d.FechaAnulacion.HasValue).ToList();

            foreach (var ordenesPagoDetalle in detalleLista)
            {
                DetalleFormaPago pago = new DetalleFormaPago();

                if (ordenesPagoDetalle.Efectivo.HasValue && ordenesPagoDetalle.Efectivo > 0)
                {
                    var pagoEfectivo = new PagoEfectivo();
                    pagoEfectivo.Id = ordenesPagoDetalle.Id;
                    pagoEfectivo.Importe = ordenesPagoDetalle.Efectivo;
                    pagoEfectivo.TipoPago = FormaPago.Efectivo;
                    pagoEfectivo.Descripcion = ordenesPagoDetalle.Descripcion;
                    pagoEfectivo.Fecha = ordenesPagoDetalle.FechaPago;
                    pago = pagoEfectivo;
                }

                if (ordenesPagoDetalle.Cheques.HasValue && ordenesPagoDetalle.Cheques > 0)
                {
                    var pagoCheque = new PagoCheque();
                    pagoCheque.Id = ordenesPagoDetalle.Id;
                    pagoCheque.Importe = ordenesPagoDetalle.Cheques;
                    pagoCheque.TipoPago = FormaPago.Cheque;
                    pagoCheque.Descripcion = ordenesPagoDetalle.Descripcion;
                    pagoCheque.Fecha = ordenesPagoDetalle.FechaPago;
                    pago = pagoCheque;
                }

                if (ordenesPagoDetalle.DepositoEfectivo.HasValue && ordenesPagoDetalle.DepositoEfectivo > 0)
                {
                    var pagoDeposito = new PagoDeposito();
                    var cuentaMov =
                        Uow.CuentasMovimientos.Obtener(
                            c =>
                            c.ComprobanteId == _ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                    pagoDeposito.Id = ordenesPagoDetalle.Id;
                    pagoDeposito.DepositoCuentaId = cuentaMov.CuentaId;
                    pagoDeposito.Importe = ordenesPagoDetalle.DepositoEfectivo;
                    pagoDeposito.TipoPago = FormaPago.Deposito;
                    pagoDeposito.Descripcion = ordenesPagoDetalle.Descripcion;
                    pagoDeposito.Fecha = ordenesPagoDetalle.FechaPago;
                    pago = pagoDeposito;
                }

                if (ordenesPagoDetalle.Transferencia.HasValue && ordenesPagoDetalle.Transferencia > 0)
                {
                    var pagoTransferencia = new PagoTransferencia();
                    var cuentaMov =
                        Uow.CuentasMovimientos.Obtener(
                            c =>
                            c.ComprobanteId == _ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                    pagoTransferencia.Id = ordenesPagoDetalle.Id;
                    pagoTransferencia.CuentaId = cuentaMov.CuentaId;
                    pagoTransferencia.Importe = ordenesPagoDetalle.Transferencia;
                    pagoTransferencia.TipoPago = FormaPago.Transferencia;
                    pagoTransferencia.Descripcion = ordenesPagoDetalle.Descripcion;
                    pagoTransferencia.Fecha = ordenesPagoDetalle.FechaPago;
                    pago = pagoTransferencia;
                }

                pago.PuedeEliminar = ordenesPagoDetalle.PuedeEliminar();

                _pagos.Add(pago);
            }

            GridPagos.DataSource = _pagos.ToList();
        }
示例#11
0
        private DetalleFormaPago ObtenerPagoDesdeForm()
        {
            DetalleFormaPago pago = new DetalleFormaPago();

            if (TabsFormaPago.SelectedPage == this.TabEfectivo)
            {
                var pagoEfectivo = new PagoEfectivo();
                pagoEfectivo.Importe = this.Importe;
                pagoEfectivo.TipoPago = FormaPago.Efectivo;
                pagoEfectivo.Fecha = ChkCajaAnterior.Checked ? _clock.Now : DtpFecha.Value;
                pagoEfectivo.CajaAnterior = ChkCajaAnterior.Checked;
                pago = pagoEfectivo;
            }

            if (TabsFormaPago.SelectedPage == this.TabTransferencia)
            {
                var pagoTransferencia = new PagoTransferencia();
                pagoTransferencia.Importe = Importe;
                pagoTransferencia.TipoPago = FormaPago.Transferencia;
                pagoTransferencia.CuentaId = CuentaId;
                pagoTransferencia.Fecha = _clock.Now;
                pagoTransferencia.Numero = NumeroTransferencia;
                pagoTransferencia.Descripcion = CbxCuentasTransferencia.Texto + " - " + NumeroTransferencia;
                pago = pagoTransferencia;
            }

            if (TabsFormaPago.SelectedPage == this.TabCheque)
            {
                var pagoCheque = new PagoCheque();
                pagoCheque.Importe = Importe;
                pagoCheque.TipoPago = FormaPago.Cheque;
                pagoCheque.Fecha = _clock.Now;
                pagoCheque.BancoId = this.ChequeBancoId;
                pagoCheque.Numero = ChequeNumero;
                pagoCheque.Descripcion = CbxChequeBanco.Text + " - " + ChequeNumero;
                pago = pagoCheque;
            }

            if (TabsFormaPago.SelectedPage == this.TabDeposito)
            {
                var pagoDeposito = new PagoDeposito();
                pagoDeposito.Importe = Importe;
                pagoDeposito.TipoPago = FormaPago.Deposito;
                pagoDeposito.Fecha = _clock.Now;
                pagoDeposito.DepositoCuentaId = this.DepositoCuentaId;
                pagoDeposito.Numero = DepositoNumero;
                pagoDeposito.Descripcion = CbxDepositoBanco.Text + " - " + DepositoNumero;
                pago = pagoDeposito;
            }

            return pago;
        }
示例#12
0
        public DetalleFormaPago ObtenerFormaPago(OrdenesPago ordenPago, OrdenesPagoDetalle ordenesPagoDetalle)
        {
            DetalleFormaPago pago = new DetalleFormaPago();

            pago.PuedeEliminar = ordenesPagoDetalle.PuedeEliminar();

            if (ordenesPagoDetalle.Efectivo.HasValue && ordenesPagoDetalle.Efectivo != 0)
            {
                var pagoEfectivo = new PagoEfectivo();
                pagoEfectivo.Id          = ordenesPagoDetalle.Id;
                pagoEfectivo.Importe     = ordenesPagoDetalle.Efectivo;
                pagoEfectivo.TipoPago    = FormaPago.Efectivo;
                pagoEfectivo.Descripcion = ordenesPagoDetalle.Descripcion;
                pagoEfectivo.Fecha       = ordenesPagoDetalle.FechaPago;
                pago = pagoEfectivo;
            }

            if (ordenesPagoDetalle.Cheques.HasValue && ordenesPagoDetalle.Cheques != 0)
            {
                var pagoCheque = new PagoCheque();
                pagoCheque.Id          = ordenesPagoDetalle.Id;
                pagoCheque.Importe     = ordenesPagoDetalle.Cheques;
                pagoCheque.TipoPago    = FormaPago.Cheque;
                pagoCheque.Descripcion = ordenesPagoDetalle.Descripcion;
                pagoCheque.Fecha       = ordenesPagoDetalle.FechaPago;
                pago = pagoCheque;
            }

            if (ordenesPagoDetalle.DepositoEfectivo.HasValue && ordenesPagoDetalle.DepositoEfectivo != 0)
            {
                var pagoDeposito = new PagoDeposito();
                var cuentaMov    =
                    _uow.CuentasMovimientos.Obtener(
                        c =>
                        c.ComprobanteId == ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                pagoDeposito.Id = ordenesPagoDetalle.Id;
                pagoDeposito.DepositoCuentaId = cuentaMov.CuentaId;
                pagoDeposito.Importe          = ordenesPagoDetalle.DepositoEfectivo;
                pagoDeposito.TipoPago         = FormaPago.Deposito;
                pagoDeposito.Descripcion      = ordenesPagoDetalle.Descripcion;
                pagoDeposito.Fecha            = ordenesPagoDetalle.FechaPago;
                pago = pagoDeposito;
            }

            if (ordenesPagoDetalle.Transferencia.HasValue && ordenesPagoDetalle.Transferencia != 0)
            {
                var pagoTransferencia = new PagoTransferencia();
                var cuentaMov         =
                    _uow.CuentasMovimientos.Obtener(
                        c =>
                        c.ComprobanteId == ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                pagoTransferencia.Id          = ordenesPagoDetalle.Id;
                pagoTransferencia.CuentaId    = cuentaMov.CuentaId;
                pagoTransferencia.Importe     = ordenesPagoDetalle.Transferencia;
                pagoTransferencia.TipoPago    = FormaPago.Transferencia;
                pagoTransferencia.Descripcion = ordenesPagoDetalle.Descripcion;
                pagoTransferencia.Fecha       = ordenesPagoDetalle.FechaPago;
                pago = pagoTransferencia;
            }

            return(pago);
        }
        public DetalleFormaPago ObtenerFormaPago(OrdenesPago ordenPago, OrdenesPagoDetalle ordenesPagoDetalle)
        {
            DetalleFormaPago pago = new DetalleFormaPago();

            pago.PuedeEliminar = ordenesPagoDetalle.PuedeEliminar();

            if (ordenesPagoDetalle.Efectivo.HasValue && ordenesPagoDetalle.Efectivo != 0)
            {
                var pagoEfectivo = new PagoEfectivo();
                pagoEfectivo.Id = ordenesPagoDetalle.Id;
                pagoEfectivo.Importe = ordenesPagoDetalle.Efectivo;
                pagoEfectivo.TipoPago = FormaPago.Efectivo;
                pagoEfectivo.Descripcion = ordenesPagoDetalle.Descripcion;
                pagoEfectivo.Fecha = ordenesPagoDetalle.FechaPago;
                pago = pagoEfectivo;
            }

            if (ordenesPagoDetalle.Cheques.HasValue && ordenesPagoDetalle.Cheques != 0)
            {
                var pagoCheque = new PagoCheque();
                pagoCheque.Id = ordenesPagoDetalle.Id;
                pagoCheque.Importe = ordenesPagoDetalle.Cheques;
                pagoCheque.TipoPago = FormaPago.Cheque;
                pagoCheque.Descripcion = ordenesPagoDetalle.Descripcion;
                pagoCheque.Fecha = ordenesPagoDetalle.FechaPago;
                pago = pagoCheque;
            }

            if (ordenesPagoDetalle.DepositoEfectivo.HasValue && ordenesPagoDetalle.DepositoEfectivo != 0)
            {
                var pagoDeposito = new PagoDeposito();
                var cuentaMov =
                    _uow.CuentasMovimientos.Obtener(
                        c =>
                        c.ComprobanteId == ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                pagoDeposito.Id = ordenesPagoDetalle.Id;
                pagoDeposito.DepositoCuentaId = cuentaMov.CuentaId;
                pagoDeposito.Importe = ordenesPagoDetalle.DepositoEfectivo;
                pagoDeposito.TipoPago = FormaPago.Deposito;
                pagoDeposito.Descripcion = ordenesPagoDetalle.Descripcion;
                pagoDeposito.Fecha = ordenesPagoDetalle.FechaPago;
                pago = pagoDeposito;
            }

            if (ordenesPagoDetalle.Transferencia.HasValue && ordenesPagoDetalle.Transferencia != 0)
            {
                var pagoTransferencia = new PagoTransferencia();
                var cuentaMov =
                    _uow.CuentasMovimientos.Obtener(
                        c =>
                        c.ComprobanteId == ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                pagoTransferencia.Id = ordenesPagoDetalle.Id;
                pagoTransferencia.CuentaId = cuentaMov.CuentaId;
                pagoTransferencia.Importe = ordenesPagoDetalle.Transferencia;
                pagoTransferencia.TipoPago = FormaPago.Transferencia;
                pagoTransferencia.Descripcion = ordenesPagoDetalle.Descripcion;
                pagoTransferencia.Fecha = ordenesPagoDetalle.FechaPago;
                pago = pagoTransferencia;
            }

            return pago;
        }
示例#14
0
        private void btnEfectivo_Click(object sender, EventArgs e)
        {
            PagoEfectivo pagoEfectivo = new PagoEfectivo();

            pagoEfectivo.Show();
        }
        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;
        }
示例#16
0
        public IHttpActionResult PostPago(PagoCustom pagoCustom)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                Pago pago = new Pago();
                pago       = pagoCustom.pago;
                pago.Fecha = DateTime.Now;

                var idCajaActiva = (from c in db.Cajas // variable donde voy a guardar el id de la caja que actualmente esta abierta
                                    where c.Abierto == true
                                    select c.Id).FirstOrDefault();

                if (pagoCustom.pagoEfectivo != null)
                {
                    // alta de Pago en efectivo
                    PagoEfectivo pagoEfect = new PagoEfectivo();
                    pagoEfect                 = pagoCustom.pagoEfectivo;
                    pagoEfect.PagoId          = pago.Id;
                    pagoEfect.CajaId          = idCajaActiva;
                    pagoEfect.TipoFormaPagoId = (from tp in db.TiposFormasPago
                                                 where tp.Descripcion.Contains("Efectivo")
                                                 select tp.Id).FirstOrDefault();
                    //db.PagosEfectivo.Add(pagoEfect);

                    // alta del movimientoCaja
                    MovimientosCaja movCaja = new MovimientosCaja();
                    movCaja.Monto       = pagoCustom.pagoEfectivo.Monto;
                    movCaja.Descripcion = "Pago por compra en efectivo";
                    movCaja.TipoMovCaja = db.TipoMovCajas.Find(1);
                    movCaja.CajaId      = idCajaActiva;
                    //movCaja.PagoEfectivoId = pagoEfect.Id;
                    movCaja.PagoEfectivo = pagoEfect;
                    db.MovimientosCajas.Add(movCaja);
                }

                if (pagoCustom.pagoCC != null)
                {
                    PagoCC pagoCuenta = new PagoCC();
                    pagoCuenta                 = pagoCustom.pagoCC;
                    pagoCuenta.PagoId          = pago.Id;
                    pagoCuenta.TipoMovCC       = db.TipoMovCCs.Find(1);
                    pagoCuenta.CuentaCorriente = (from cc in db.Cuentas
                                                  where cc.ClienteId == pagoCustom.pago.Venta.ClienteId
                                                  select cc).FirstOrDefault();

                    pagoCuenta.CajaId          = idCajaActiva;
                    pagoCuenta.TipoFormaPagoId = (from tp in db.TiposFormasPago
                                                  where tp.Descripcion.Contains("Cuenta")
                                                  select tp.Id).FirstOrDefault();
                    db.PagosCC.Add(pagoCuenta);
                }

                if (pagoCustom.pagoCheque != null)
                {
                    Cheque pagoCheque = new Cheque();
                    pagoCheque                 = pagoCustom.pagoCheque;
                    pagoCheque.PagoId          = pago.Id;
                    pagoCheque.FechaEmision    = pagoCustom.pagoCheque.FechaEmision;
                    pagoCheque.FechaPago       = pagoCustom.pagoCheque.FechaPago;
                    pagoCheque.CajaId          = idCajaActiva;
                    pagoCheque.TipoFormaPagoId = (from tp in db.TiposFormasPago
                                                  where tp.Descripcion.Contains("Cheque")
                                                  select tp.Id).FirstOrDefault();
                    db.Cheques.Add(pagoCheque);
                }

                pago.VentaId = pagoCustom.pago.Venta.Id;
                pago.Venta   = null;

                db.Pagos.Add(pago);
                db.SaveChanges();
                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message.ToString()));
            }
        }
示例#17
0
        private void CargarOrdenPagoDetalle()
        {
            _pagos = new List <DetalleFormaPago>();

            var detalleLista = _ordenPago.OrdenesPagoDetalles.Where(d => !d.FechaAnulacion.HasValue).ToList();

            foreach (var ordenesPagoDetalle in detalleLista)
            {
                DetalleFormaPago pago = new DetalleFormaPago();

                if (ordenesPagoDetalle.Efectivo.HasValue && ordenesPagoDetalle.Efectivo > 0)
                {
                    var pagoEfectivo = new PagoEfectivo();
                    pagoEfectivo.Id          = ordenesPagoDetalle.Id;
                    pagoEfectivo.Importe     = ordenesPagoDetalle.Efectivo;
                    pagoEfectivo.TipoPago    = FormaPago.Efectivo;
                    pagoEfectivo.Descripcion = ordenesPagoDetalle.Descripcion;
                    pagoEfectivo.Fecha       = ordenesPagoDetalle.FechaPago;
                    pago = pagoEfectivo;
                }

                if (ordenesPagoDetalle.Cheques.HasValue && ordenesPagoDetalle.Cheques > 0)
                {
                    var pagoCheque = new PagoCheque();
                    pagoCheque.Id          = ordenesPagoDetalle.Id;
                    pagoCheque.Importe     = ordenesPagoDetalle.Cheques;
                    pagoCheque.TipoPago    = FormaPago.Cheque;
                    pagoCheque.Descripcion = ordenesPagoDetalle.Descripcion;
                    pagoCheque.Fecha       = ordenesPagoDetalle.FechaPago;
                    pago = pagoCheque;
                }

                if (ordenesPagoDetalle.DepositoEfectivo.HasValue && ordenesPagoDetalle.DepositoEfectivo > 0)
                {
                    var pagoDeposito = new PagoDeposito();
                    var cuentaMov    =
                        Uow.CuentasMovimientos.Obtener(
                            c =>
                            c.ComprobanteId == _ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                    pagoDeposito.Id = ordenesPagoDetalle.Id;
                    pagoDeposito.DepositoCuentaId = cuentaMov.CuentaId;
                    pagoDeposito.Importe          = ordenesPagoDetalle.DepositoEfectivo;
                    pagoDeposito.TipoPago         = FormaPago.Deposito;
                    pagoDeposito.Descripcion      = ordenesPagoDetalle.Descripcion;
                    pagoDeposito.Fecha            = ordenesPagoDetalle.FechaPago;
                    pago = pagoDeposito;
                }

                if (ordenesPagoDetalle.Transferencia.HasValue && ordenesPagoDetalle.Transferencia > 0)
                {
                    var pagoTransferencia = new PagoTransferencia();
                    var cuentaMov         =
                        Uow.CuentasMovimientos.Obtener(
                            c =>
                            c.ComprobanteId == _ordenPago.Id && c.Descripcion.Contains(ordenesPagoDetalle.Descripcion));
                    pagoTransferencia.Id          = ordenesPagoDetalle.Id;
                    pagoTransferencia.CuentaId    = cuentaMov.CuentaId;
                    pagoTransferencia.Importe     = ordenesPagoDetalle.Transferencia;
                    pagoTransferencia.TipoPago    = FormaPago.Transferencia;
                    pagoTransferencia.Descripcion = ordenesPagoDetalle.Descripcion;
                    pagoTransferencia.Fecha       = ordenesPagoDetalle.FechaPago;
                    pago = pagoTransferencia;
                }

                pago.PuedeEliminar = ordenesPagoDetalle.PuedeEliminar();

                _pagos.Add(pago);
            }

            GridPagos.DataSource = _pagos.ToList();
        }