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();
        }
示例#2
0
        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();
            }
        }
示例#9
0
        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;
        }
示例#10
0
        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);
        }