private void Anular(ProveedorSenia senia)
        {
            var operador = this.ObtenerOperadorAdministrador();

            if (operador == null)
            {
                return;
            }

            if (!this.EsOperadorAdmin)
            {
                //Guardamos el operador que autorizo la operacion.
                senia.OperadorAutoriza = operador.Id;
            }

            _proveedorNegocio.AnularSeniaProveedor(senia, this.Context.CajaActual, this.Context.OperadorActual.Id, this.Context.SucursalActual.Id);

            _messageBoxDisplayService.ShowSuccess("Anulación de seña exitosa");

            RefrescarHistorial();
        }
        private void RealizarSenia()
        {
            ProveedorSenia senia = new ProveedorSenia();

            senia.Id = Guid.NewGuid();
            senia.ProveedorId = _proveedor.Id;
            senia.FechaAlta = _clock.Now;
            senia.FechaModificacion = _clock.Now;
            senia.Importe = UcTotalesSeña.TotalPagar;
            senia.ImporteUsado = 0;
            senia.OperadorAltaId = Context.OperadorActual.Id;
            senia.SucursalAltaId = Context.SucursalActual.Id;
            senia.OperadorModificacionId = Context.OperadorActual.Id;
            senia.SucursalModificacionId = Context.SucursalActual.Id;

            if (UcTotalesSeña.HayPagosConCajaAnterior)
            {
                var operador = this.ObtenerOperadorAdministrador();

                if (operador == null)
                {
                    return;
                }
            }

            _proveedorNegocio.CrearSeniaProveedor(senia,
                UcTotalesSeña.Pagos,
                this.Context.CajaActual,
                this.Context.OperadorActual.Id,
                this.Context.SucursalActual.Id);

            _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessSeniaExitosa);

            ReiniciarForm();
        }
 private void AnularParcial(ProveedorSenia senia)
 {
     using (var popup = FormFactory.Create<FrmAnularSenia>(senia.Id))
     {
         var result = popup.ShowDialog();
         if (result == DialogResult.OK)
         {
             RefrescarHistorial();
         }
     }
 }
        private void RealizarSenia()
        {
            try
            {
                Caja caja = this.Context.CajaActual;

                ProveedorSenia seña = new ProveedorSenia();

                seña.Id = Guid.NewGuid();
                seña.ProveedorId = _proveedor.Id;
                seña.FechaAlta = _clock.Now;
                seña.FechaModificacion = _clock.Now;
                seña.Importe = UcTotalesSeña.TotalPagar;
                seña.ImporteUsado = 0;
                seña.OperadorAltaId = Context.OperadorActual.Id;
                seña.SucursalAltaId = Context.SucursalActual.Id;
                seña.OperadorModificacionId = Context.OperadorActual.Id;
                seña.SucursalModificacionId = Context.SucursalActual.Id;

                decimal? efectivo = 0;
                decimal? tarjeta = 0;
                decimal? cheque = 0;
                decimal? deposito = 0;

                foreach (var pago in UcTotalesSeña.Pagos)
                {
                    switch (pago.TipoPago)
                    {
                        case FormaPago.Efectivo:
                            efectivo += pago.Importe;
                            break;

                        case FormaPago.Tarjeta:
                            tarjeta += pago.Importe;
                            break;

                        case FormaPago.Cheque:
                            cheque += pago.Importe;
                            break;

                        case FormaPago.Deposito:
                            deposito += pago.Importe;
                            break;
                    }
                }

                if (efectivo > 0 && ChkCajaAnterior.Checked == false)
                {
                    //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 = seña.Id;
                    cajaMovimiento.Importe = efectivo;
                    cajaMovimiento.FechaAlta = _clock.Now;
                    cajaMovimiento.FechaModificacion = _clock.Now;
                    cajaMovimiento.PcAlta = System.Environment.MachineName;
                    cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
                    cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;
                    cajaMovimiento.OperadorModificacionId = Context.OperadorActual.Id;
                    cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;

                    //descontar de la caja
                    if (caja.Egresos == null)
                        caja.Egresos = 0;

                    if (ChkCajaAnterior.Checked == false)
                        caja.Egresos += (float?)efectivo;

                    if (caja.Saldo == null)
                        caja.Saldo = 0;

                    caja.Saldo -= (float?)efectivo;

                    caja.FechaModificacion = _clock.Now;
                    caja.SucursalModificacionId = Context.SucursalActual.Id;//Sucursal del operador
                    caja.OperadorModificacionId = (Context.OperadorActual.Id);//Id el operador

                    //traer la caja
                    if (cajaMovimiento.Efectivo == null)
                        cajaMovimiento.Efectivo = 0;

                    cajaMovimiento.Cheque = cheque;
                    cajaMovimiento.Tarjeta = tarjeta;
                    cajaMovimiento.Deposito = deposito;
                    cajaMovimiento.Efectivo = efectivo;
                    efectivo = 0;

                    Uow.CajaMovimientos.Agregar(cajaMovimiento);
                }

                if (tarjeta > 0 || deposito > 0 || cheque > 0 || efectivo > 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 = seña.Id;
                    cajaMovimientoAnterior.Importe = tarjeta + deposito + cheque + efectivo;
                    cajaMovimientoAnterior.FechaAlta = _clock.Now;
                    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;

                    if (efectivo > 0)
                    {
                        if (cajaMovimientoAnterior.Efectivo == null)
                            cajaMovimientoAnterior.Efectivo = 0;

                        cajaMovimientoAnterior.Efectivo += efectivo;

                        cajaMovimientoAnterior.Cheque += cheque;
                        cajaMovimientoAnterior.Tarjeta += tarjeta;
                        cajaMovimientoAnterior.Deposito += deposito;

                        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;
                    }

                    Uow.CajaMovimientos.Agregar(cajaMovimientoAnterior);
                }


                Uow.Cajas.Modificar(caja);

                Uow.ProveedoresSenias.Agregar(seña);

                Uow.Commit();

                _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessSeniaExitosa);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 5
0
        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();
            }
        }
Ejemplo n.º 6
0
        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();
            }
        }