Exemple #1
0
        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();
        }
Exemple #2
0
 private void AnularParcial(ProveedorSenia senia)
 {
     using (var popup = FormFactory.Create <FrmAnularSenia>(senia.Id))
     {
         var result = popup.ShowDialog();
         if (result == DialogResult.OK)
         {
             RefrescarHistorial();
         }
     }
 }
Exemple #3
0
        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();
        }
Exemple #4
0
        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;
            }
        }
Exemple #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();
            }
        }
Exemple #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();
            }
        }