Example #1
0
        private void ImprimirComprobante(ClienteMontoFavor clienteMontoFavor, string formaPagoComprobante)
        {
            using (var crearSenia = FormFactory.Create <FrmComprobante>())
            {
                crearSenia._concepto  = clienteMontoFavor.Concepto;// "Seña de Cliente";
                crearSenia._LCN       = clienteMontoFavor.LCN;
                crearSenia._formaPago = formaPagoComprobante;

                var conv = new Conversion();

                var monto = clienteMontoFavor.Importe - clienteMontoFavor.ImpOcupado;

                crearSenia._montoTexto = conv.enletras(monto.ToString());// conv.enletras(UcTotalesSenia.TotalPagar.ToString());
                crearSenia.ShowDialog();
            }
        }
Example #2
0
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (Monto != UcTotalesSenia.TotalPagar)
            {
                _messageBoxDisplayService.ShowError("Los montos no coiniden");
                return;
            }

            int sucursal = 1;
            ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();

            clienteMontoFavor.Id                = Guid.NewGuid();
            clienteMontoFavor.ClienteId         = _cliente.Id;
            clienteMontoFavor.FechaComprobante  = _clock.Now;
            clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente;
            clienteMontoFavor.LCN               = "R" + sucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
            clienteMontoFavor.Concepto          = "Seña " + clienteMontoFavor.LCN;
            clienteMontoFavor.Importe           = UcTotalesSenia.TotalPagar;
            clienteMontoFavor.ImpOcupado        = 0;
            clienteMontoFavor.Observaciones     = TipoComprobanteEnum.SeñaCliente.ToString();
            clienteMontoFavor.FechaAlta         = _clock.Now;
            clienteMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
            clienteMontoFavor.SucursalAltaId    = 2;

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);

            Uow.Commit();

            _messageBoxDisplayService.ShowSuccess("Seña generada con éxito");

            var crearSenia = FormFactory.Create <FrmComprobante>();

            crearSenia._concepto = "Seña de Cliente";
            crearSenia._LCN      = clienteMontoFavor.LCN;
            var conv = new Conversion();

            crearSenia._montoTexto = conv.enletras(UcTotalesSenia.TotalPagar.ToString());
            //crearSenia._montoTexto = "cien";
            //crearSenia.Show();

            BuscarHistorial();
            Limpiar();
        }
Example #3
0
        private void GenerarClienteMontoFavor()
        {
            //TODO:Agregar el numero de sucursal a la tabla el mismo no coincide con el id.
            int numeroDeSucursal = Context.SucursalActual.SucursalNumero ?? 1;// 1;

            ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();

            clienteMontoFavor.Id = Guid.NewGuid();
            _notaCreditoId       = clienteMontoFavor.Id;
            clienteMontoFavor.OperadorAutoriza  = _operadorIdAutoriza;
            clienteMontoFavor.ClienteId         = _venta.ClienteId;
            clienteMontoFavor.FechaComprobante  = _clock.Now;
            clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.NotaCrédito;
            clienteMontoFavor.LCN = "R" + numeroDeSucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
            _lcn = clienteMontoFavor.LCN;
            clienteMontoFavor.Concepto       = "Nota de crédito " + clienteMontoFavor.LCN;
            clienteMontoFavor.Importe        = Total;
            clienteMontoFavor.ImpOcupado     = 0;
            clienteMontoFavor.Observaciones  = TipoComprobanteEnum.NotaCrédito.ToString();
            clienteMontoFavor.FechaAlta      = _clock.Now;
            clienteMontoFavor.OperadorAltaId = Context.OperadorActual.Id;
            clienteMontoFavor.SucursalAltaId = Context.SucursalActual.Id;

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);

            foreach (VentaDetalleDevolucion devuleto in Devuletos)
            {
                ClientesMontosFavorDetalle clientesMontosAfavorDetalle = new ClientesMontosFavorDetalle();
                clientesMontosAfavorDetalle.Id = Guid.NewGuid();
                clientesMontosAfavorDetalle.ClientesMontosFavorId = clienteMontoFavor.Id;
                clientesMontosAfavorDetalle.TitulosId             = devuleto.TituloId;
                clientesMontosAfavorDetalle.CantidadPropia        = devuleto.CantidadPropia;
                clientesMontosAfavorDetalle.CantidadConsig        = devuleto.CantidadConsignada;
                clientesMontosAfavorDetalle.FechaAlta             = _clock.Now;
                clientesMontosAfavorDetalle.SucursalAltaId        = Context.SucursalActual.Id;
                clientesMontosAfavorDetalle.OperadorAltaId        = Context.OperadorActual.Id;

                Uow.ClientesMontosFavorDetalles.Agregar(clientesMontosAfavorDetalle);
            }

            var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == _venta.Id);
            var montoDevolucion        = Total;

            CajaMovimiento cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = this.Context.CajaActual.Id;
            cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.CreditoFavorPorNc;
            cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.NotaCrédito;
            cajaMovimiento.ComprobanteId        = clienteMontoFavor.Id;
            cajaMovimiento.Importe  = Total;
            cajaMovimiento.ImpFac   = Total;
            cajaMovimiento.Efectivo = cajaMovimientoAnterior.Efectivo >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Efectivo;
            montoDevolucion        -= cajaMovimiento.Efectivo;
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Tarjeta = (cajaMovimientoAnterior.Tarjeta >= montoDevolucion) ? montoDevolucion : cajaMovimientoAnterior.Tarjeta;
                montoDevolucion       -= cajaMovimiento.Tarjeta;
            }
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Cheque = (cajaMovimientoAnterior.Cheque >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Cheque);
                montoDevolucion      -= cajaMovimiento.Cheque;
            }
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Deposito = (cajaMovimientoAnterior.Deposito >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Deposito);
                montoDevolucion        -= cajaMovimiento.Deposito;
            }
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Transferencia = (cajaMovimientoAnterior.Transferencia >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Transferencia);
                montoDevolucion -= cajaMovimiento.Transferencia;
            }
            cajaMovimiento.FechaAlta      = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);
        }
Example #4
0
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (_venta.EstadoVentaId == EstadoVentaEnum.Anulada)
            {
                _messageBoxDisplayService.ShowWarning("Factura ya anulada");
                return;
            }

            var operador = this.ObtenerOperadorAdministrador();

            if (operador == null)
            {
                return;
            }

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

            //Anular la Venta
            _venta.EstadoVentaId          = EstadoVentaEnum.Anulada;
            _venta.FechaModificacion      = _clock.Now;
            _venta.OperadorModificacionId = Context.OperadorActual.Id;
            _venta.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Ventas.Modificar(_venta);

            //devolver el stock
            foreach (VentaDetalleDto ventaDetalleDto in _ventaDetalleDto)
            {
                var tituloStock =
                    Uow.TitulosStock.Obtener(
                        ts => ts.TituloId == ventaDetalleDto.TituloId && ts.SucursalId == Context.SucursalActual.Id);

                tituloStock.StkPr                 += ventaDetalleDto.CantidadPropia;
                tituloStock.StkCn                 += ventaDetalleDto.CantidadConsig;
                tituloStock.FechaModificacion      = _clock.Now;
                tituloStock.OperadorModificacionId = Context.OperadorActual.Id;
                tituloStock.SucursalModificacionId = Context.SucursalActual.Id;

                Uow.TitulosStock.Modificar(tituloStock);
            }

            //Devovler caja
            Caja caja = this.Context.CajaActual;

            if (caja.Ingresos == null)
            {
                caja.Ingresos = 0;
            }
            caja.Ingresos -= (float?)_venta.TotalPagado;
            if (caja.Saldo == null)
            {
                caja.Saldo = 0;
            }
            caja.Saldo                 -= (float?)_venta.TotalPagado;
            caja.FechaModificacion      = _clock.Now;
            caja.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
            caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

            Uow.Cajas.Modificar(caja);

            //CajaMovimiento
            var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(c => c.ComprobanteId == _venta.Id);

            CajaMovimiento cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            if (_venta.CondicionVentaId == CondicionVentaEnum.CuentaCorriente)
            {
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónFacCtaCte;
            }
            else
            {
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónFacContado;
            }

            cajaMovimiento.TipoComprobante = TipoComprobanteEnum.FacturaAnulada;
            cajaMovimiento.ComprobanteId   = _venta.Id;
            cajaMovimiento.Senia           = cajaMovimientoAnterior.Senia;
            cajaMovimiento.Importe         = cajaMovimientoAnterior.Importe;
            cajaMovimiento.ImpFac          = cajaMovimientoAnterior.ImpFac;
            cajaMovimiento.Recargo         = cajaMovimientoAnterior.Recargo;
            cajaMovimiento.Efectivo        = cajaMovimientoAnterior.Efectivo;
            cajaMovimiento.Tarjeta         = cajaMovimientoAnterior.Tarjeta;
            cajaMovimiento.Cheque          = cajaMovimientoAnterior.Cheque;
            cajaMovimiento.Deposito        = cajaMovimientoAnterior.Deposito;

            cajaMovimiento.PcAlta         = Environment.MachineName;
            cajaMovimiento.SucursalAltaId = _venta.SucursalAltaId;
            cajaMovimiento.OperadorAltaId = _venta.OperadorAltaId;
            cajaMovimiento.FechaAlta      = _clock.Now;

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

            Uow.CajaMovimientos.Agregar(cajaMovimiento);

            //MovimientoCliente
            ClientesMovimiento clientesMovimiento = new ClientesMovimiento();

            clientesMovimiento.IdCliente         = _venta.ClienteId;
            clientesMovimiento.IdTipoComprobante = (int)TipoComprobanteEnum.FacturaAnulada;
            clientesMovimiento.IdComprobante     = _venta.Id;
            clientesMovimiento.Concepto          = TipoComprobanteEnum.FacturaAnulada.ToString();
            clientesMovimiento.Debe            = _venta.TotalPagado;
            clientesMovimiento.FechaGeneracion = _clock.Now;
            clientesMovimiento.FechaAlta       = _clock.Now;
            clientesMovimiento.SucursalAltaId  = Context.SucursalActual.Id;   //Sucursal del operador
            clientesMovimiento.OperadorAltaId  = (Context.OperadorActual.Id); //Id el operador

            Uow.ClientesMovimientos.Agregar(clientesMovimiento);

            //Actulizar señas de cliente
            var monto = cajaMovimientoAnterior.Senia;

            if (monto > 0 && monto != null)
            {
                int sucursal = 1;
                ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();
                clienteMontoFavor.Id                = Guid.NewGuid();
                clienteMontoFavor.ClienteId         = _venta.ClienteId;
                clienteMontoFavor.FechaComprobante  = _clock.Now;
                clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente;
                clienteMontoFavor.LCN               = "R" + sucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
                clienteMontoFavor.Concepto          = "Seña " + clienteMontoFavor.LCN;
                clienteMontoFavor.Importe           = monto;
                clienteMontoFavor.ImpOcupado        = 0;
                clienteMontoFavor.Observaciones     = TipoComprobanteEnum.SeñaCliente.ToString() + "Por anulación de factura";
                clienteMontoFavor.FechaAlta         = _clock.Now;
                clienteMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
                clienteMontoFavor.SucursalAltaId    = Context.SucursalActual.Id;

                Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);
            }

            //si la venta fue en CuentaCorriente, Anular las cuotas
            if (_venta.CondicionVentaId == CondicionVentaEnum.CuentaCorriente)
            {
                var cuotas = Uow.ClientesCuentasCorrientes.Listado().Where(cc => cc.VentaId == _venta.Id);
                foreach (ClienteCuentaCorriente cuota in cuotas)
                {
                    cuota.Pagado                 = cuota.Importe;
                    cuota.Observaciones          = "Venta Anulada";
                    cuota.FechaModificacion      = _clock.Now;
                    cuota.OperadorModificacionId = Context.OperadorActual.Id;
                    cuota.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.ClientesCuentasCorrientes.Modificar(cuota);
                }
            }

            //Si la venta fue con tarjeta, setear en 0 el estado del movimiento
            if (cajaMovimientoAnterior.Tarjeta != null)
            {
                var tarjetamovimiento =
                    Uow.TarjetasMovimientos.Obtener(t => t.CajaMovimientoId == cajaMovimientoAnterior.Id);

                if (tarjetamovimiento != null)
                {
                    tarjetamovimiento.Estado                 = 0;
                    tarjetamovimiento.FechaModificacion      = _clock.Now;
                    tarjetamovimiento.OperadorModificacionId = Context.OperadorActual.Id;
                    tarjetamovimiento.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.TarjetasMovimientos.Modificar(tarjetamovimiento);
                }
            }

            //si la venta fue con deposito, setear la columna debito=credito para que se anule
            if (cajaMovimientoAnterior.Deposito != null)
            {
                var cuentaMovimiento =
                    Uow.CuentasMovimientos.Obtener(t => t.ComprobanteId == _venta.Id);

                if (cuentaMovimiento != null)
                {
                    cuentaMovimiento.Debito                 = cuentaMovimiento.Credito;
                    cuentaMovimiento.FechaModificacion      = _clock.Now;
                    cuentaMovimiento.OperadorModificacionId = Context.OperadorActual.Id;
                    cuentaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.CuentasMovimientos.Modificar(cuentaMovimiento);
                }
            }

            //si la venta fue con Cheque, setear estadocheque=1
            if (cajaMovimientoAnterior.Cheque != null)
            {
                var chequeTercero =
                    Uow.ChequesTercero.Obtener(t => t.CajaMovimientoId == cajaMovimientoAnterior.Id);

                if (chequeTercero != null)
                {
                    chequeTercero.EstadoChequeId         = 1;
                    chequeTercero.FechaModificacion      = _clock.Now;
                    chequeTercero.OperadorModificacionId = Context.OperadorActual.Id;
                    chequeTercero.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.ChequesTercero.Modificar(chequeTercero);
                }
            }


            Uow.Commit();
            _messageBoxDisplayService.ShowSuccess("Factura anulada correctamente");

            //this.Close();
            OnAccionTerminada();
        }
Example #5
0
        private void Anular(ClienteMontoFavor senia)
        {
            //Utiliar toda la seña
            if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente)
            {
                var diferencia = senia.Importe - senia.ImpOcupado;
                if (diferencia == 0)
                {
                    return;
                }

                senia.ImpOcupado             = senia.Importe;
                senia.FechaAnulacion         = _clock.Now;
                senia.FechaModificacion      = _clock.Now;
                senia.OperadorModificacionId = Context.OperadorActual.Id;
                senia.SucursalModificacionId = Context.SucursalActual.Id;

                Uow.ClientesMontosFavor.Modificar(senia);
                //generar cajamovimientno
                Caja caja = this.Context.CajaActual;
                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 = Context.SucursalActual.Id;   //Sucursal del operador
                caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

                Uow.Cajas.Modificar(caja);

                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaCliente;
                cajaMovimiento.ComprobanteId        = senia.Id;
                cajaMovimiento.Senia          = 0;
                cajaMovimiento.Importe        = diferencia;
                cajaMovimiento.ImpFac         = 0;
                cajaMovimiento.PcAlta         = Environment.MachineName;
                cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;   //Sucursal del operador
                cajaMovimiento.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador
                cajaMovimiento.FechaAlta      = _clock.Now;
                Uow.CajaMovimientos.Agregar(cajaMovimiento);

                //Generaregreso??
                Uow.Commit();
                _messageBoxDisplayService.ShowSuccess("Anulación de seña exitosa");

                BuscarHistorial();
            }
            else
            {
                _messageBoxDisplayService.ShowError("No puede anular una nota de crédito");
            }
        }
Example #6
0
        private void Anular(ClienteMontoFavor senia)
        {
            //Utiliar toda la seña
            //if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente)
            //{
            var operador = this.ObtenerOperadorAdministrador();

            if (operador == null)
            {
                return;
            }

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

            var diferencia = senia.Importe - senia.ImpOcupado;

            if (diferencia == 0)
            {
                return;
            }


            Uow.ClientesMontosFavor.Modificar(senia);

            var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id);

            if (cajaMovimientoAnterior == null)
            {
                //notas de credito no generan caja movimiento?
            }
            if ((cajaMovimientoAnterior.Tarjeta != null || cajaMovimientoAnterior.Tarjeta == 0) ||
                (cajaMovimientoAnterior.Cheque != null || cajaMovimientoAnterior.Cheque == 0) ||
                (cajaMovimientoAnterior.Deposito != null || cajaMovimientoAnterior.Deposito == 0))
            {
                decimal?devolucion = 0;
                if (diferencia > ((cajaMovimientoAnterior.Tarjeta ?? 0) + (cajaMovimientoAnterior.Cheque ?? 0) + (cajaMovimientoAnterior.Deposito ?? 0) + (cajaMovimientoAnterior.Transferencia ?? 0)))
                {
                    devolucion = diferencia - ((cajaMovimientoAnterior.Tarjeta ?? 0) + (cajaMovimientoAnterior.Cheque ?? 0) + (cajaMovimientoAnterior.Deposito ?? 0) + (cajaMovimientoAnterior.Transferencia ?? 0));

                    //Actualizacion seña
                    using (var crearComprobante = FormFactory.Create <FrmComprobante>())
                    {
                        _messageBoxDisplayService.ShowWarning("Solo se puede devolver un monto en efectivo de: $" + devolucion.Value.ToString("N2"));

                        crearComprobante._concepto = "Actualizacion de seña";
                        crearComprobante._LCN      = senia.LCN;
                        var conv = new Conversion();
                        crearComprobante._montoTexto       = conv.enletras((diferencia - devolucion).ToString());
                        crearComprobante._montoActualizado = (diferencia - devolucion);

                        var formapago = "";
                        if (cajaMovimientoAnterior.Tarjeta > 0)
                        {
                            formapago += "Tarjeta ";
                        }
                        if (cajaMovimientoAnterior.Cheque > 0)
                        {
                            formapago += "Cheque ";
                        }
                        if (cajaMovimientoAnterior.Deposito > 0)
                        {
                            formapago += "Deposito ";
                        }
                        if (cajaMovimientoAnterior.Transferencia > 0)
                        {
                            formapago += "Transferencia ";
                        }

                        crearComprobante._formaPago = formapago + (diferencia - devolucion).ToString();

                        crearComprobante.ShowDialog();
                    }
                    diferencia = devolucion;
                }
                else
                {
                    _messageBoxDisplayService.ShowError("No se puede anular una seña que no fue generada en efectivo");
                    return;
                    //devolucion = diferencia;
                    //anular seña
                }
            }

            senia.ImpOcupado += diferencia; //senia.Importe;
            if (senia.ImpOcupado == senia.Importe)
            {
                senia.FechaAnulacion = _clock.Now;
            }
            senia.FechaModificacion      = _clock.Now;
            senia.OperadorModificacionId = Context.OperadorActual.Id;
            senia.SucursalModificacionId = Context.SucursalActual.Id;


            //generar cajamovimientno
            Caja caja = this.Context.CajaActual;

            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 = Context.SucursalActual.Id;
            caja.OperadorModificacionId = (Context.OperadorActual.Id);

            Uow.Cajas.Modificar(caja);

            if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente)
            {
                //var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id);
                //cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id);

                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaCliente;
                cajaMovimiento.ComprobanteId        = senia.Id;
                cajaMovimiento.Senia   = 0;
                cajaMovimiento.Importe = diferencia;

                // cajaMovimiento.Efectivo = cajaMovimientoAnterior.Efectivo;
                cajaMovimiento.Efectivo = diferencia;
                //cajaMovimiento.Tarjeta = cajaMovimientoAnterior.Tarjeta;
                //cajaMovimiento.Cheque = cajaMovimientoAnterior.Cheque;
                //cajaMovimiento.Deposito = cajaMovimientoAnterior.Deposito;
                cajaMovimiento.ImpFac                 = 0;
                cajaMovimiento.PcAlta                 = Environment.MachineName;
                cajaMovimiento.SucursalAltaId         = Context.SucursalActual.Id; //cajaMovimientoAnterior.SucursalAltaId;
                cajaMovimiento.OperadorAltaId         = Context.OperadorActual.Id; //cajaMovimientoAnterior.OperadorAltaId;
                cajaMovimiento.FechaAlta              = _clock.Now;
                cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;
                cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id);
                cajaMovimiento.FechaModificacion      = _clock.Now;
                Uow.CajaMovimientos.Agregar(cajaMovimiento);
            }
            else if (senia.TipoComprobanteId == TipoComprobanteEnum.NotaCrédito)
            {
                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.NotaCrédito;
                cajaMovimiento.ComprobanteId        = senia.Id;
                cajaMovimiento.Senia    = 0;
                cajaMovimiento.Importe  = diferencia;
                cajaMovimiento.Efectivo = diferencia;
                //cajaMovimiento.Tarjeta = cajaMovimientoAnterior.Tarjeta;
                //cajaMovimiento.Cheque = cajaMovimientoAnterior.Cheque;
                //cajaMovimiento.Deposito = cajaMovimientoAnterior.Deposito;
                cajaMovimiento.ImpFac                 = 0;
                cajaMovimiento.PcAlta                 = Environment.MachineName;
                cajaMovimiento.SucursalAltaId         = Context.SucursalActual.Id; //cajaMovimientoAnterior.SucursalAltaId;
                cajaMovimiento.OperadorAltaId         = Context.OperadorActual.Id; //cajaMovimientoAnterior.OperadorAltaId;
                cajaMovimiento.FechaAlta              = _clock.Now;
                cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;
                cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id);
                cajaMovimiento.FechaModificacion      = _clock.Now;
                Uow.CajaMovimientos.Agregar(cajaMovimiento);
            }
            //Generaregreso??
            Uow.Commit();

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

            RefrescarUow();

            RefrescarHistorial();
        }
Example #7
0
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (Monto != UcTotalesSenia.TotalPagar)
            {
                _messageBoxDisplayService.ShowError("Los montos no coinciden");
                return;
            }

            if (this.UcTotalesSenia.Pagos.Count == 0)
            {
                _messageBoxDisplayService.ShowError("Debe agregar una seña.");
                return;
            }

            Guid operadorAutoriza = Guid.Empty;

            if (_formMode == ActionFormMode.Edit)
            {
                //////Autorizacion para sin movimiento
                var operador = this.ObtenerOperadorAdministrador();

                if (operador == null)
                {
                    return;
                }

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

            //TODO: Reemplzar el numero cuando se agrege la columna a sucursal.
            int numeroDeSucursal = Context.SucursalActual.SucursalNumero ?? 1;

            ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();

            clienteMontoFavor.Id                = Guid.NewGuid();
            clienteMontoFavor.ClienteId         = _cliente.Id;
            clienteMontoFavor.FechaComprobante  = _clock.Now;
            clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente;
            clienteMontoFavor.LCN               = "R" + numeroDeSucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
            clienteMontoFavor.Concepto          = "Seña " + clienteMontoFavor.LCN;
            clienteMontoFavor.Importe           = UcTotalesSenia.TotalPagar;
            clienteMontoFavor.ImpOcupado        = 0;
            clienteMontoFavor.Observaciones     = TipoComprobanteEnum.SeñaCliente.ToString();
            clienteMontoFavor.FechaAlta         = _clock.Now;
            clienteMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
            clienteMontoFavor.SucursalAltaId    = Context.SucursalActual.Id;
            if (operadorAutoriza != Guid.Empty)
            {
                clienteMontoFavor.OperadorAutoriza = operadorAutoriza;
            }

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);

            //Si el Form=Editar significa que es SinGuardar los movimientos de caja
            if (_formMode == ActionFormMode.Create)
            {
                //ActualizarCaja y CajaMovimiento
                Caja caja = this.Context.CajaActual;
                if (caja.Egresos == null)
                {
                    caja.Egresos = 0;
                }
                caja.Ingresos              += (float?)UcTotalesSenia.TotalPagar;
                caja.Saldo                 += (float?)UcTotalesSenia.TotalPagar;
                caja.FechaModificacion      = _clock.Now;
                caja.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
                caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

                Uow.Cajas.Modificar(caja);

                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaCliente;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaCliente;
                cajaMovimiento.ComprobanteId        = clienteMontoFavor.Id;
                cajaMovimiento.Importe        = UcTotalesSenia.TotalPagar;
                cajaMovimiento.FechaAlta      = _clock.Now;
                cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
                cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;
                cajaMovimiento.PcAlta         = Environment.MachineName;
                //tipos de pagos
                foreach (VentaPago pago in UcTotalesSenia.Pagos)
                {
                    switch (pago.TipoPago)
                    {
                    case FormaPago.Efectivo:
                        cajaMovimiento.Efectivo = pago.Importe;
                        break;

                    case FormaPago.Tarjeta:
                        var pagoTarjeta = pago as VentaPagoTarjeta;
                        if (cajaMovimiento.Tarjeta == null)
                        {
                            cajaMovimiento.Tarjeta = 0;
                        }

                        cajaMovimiento.Tarjeta += pago.Importe;
                        //GUARDAR TARJETA MOVIMIENTO
                        TarjetasMovimiento tarjetasMovimiento = new TarjetasMovimiento();
                        tarjetasMovimiento.CajaMovimientoId = cajaMovimiento.Id;
                        tarjetasMovimiento.TarjetaId        = pagoTarjeta.TarjetaId ?? 0;
                        tarjetasMovimiento.LoteCupon        = pagoTarjeta.CuponNumero;
                        tarjetasMovimiento.Fecha            = _clock.Now;
                        tarjetasMovimiento.Importe          = (float)pago.Importe;
                        tarjetasMovimiento.Estado           = 1;                           // No se
                        tarjetasMovimiento.FechaAlta        = _clock.Now;
                        tarjetasMovimiento.SucursalAltaId   = Context.SucursalActual.Id;   //Sucursal del operador
                        tarjetasMovimiento.OperadorAltaId   = (Context.OperadorActual.Id); //Id el operador

                        Uow.TarjetasMovimientos.Agregar(tarjetasMovimiento);
                        break;

                    case FormaPago.Cheque:
                        var pagoCheque = pago as VentaPagoCheque;

                        if (cajaMovimiento.Cheque == null)
                        {
                            cajaMovimiento.Cheque = 0;
                        }

                        cajaMovimiento.Cheque += pago.Importe;

                        ChequesTercero chequesTercero = new ChequesTercero();
                        chequesTercero.Id = Guid.NewGuid();
                        chequesTercero.CajaMovimientoId = cajaMovimiento.Id;
                        chequesTercero.BancoId          = pagoCheque.BancoId ?? 0;
                        chequesTercero.NroCheque        = pagoCheque.Numero;
                        chequesTercero.Fecha            = _clock.Now;
                        chequesTercero.FechaCobro       = _clock.Now;
                        chequesTercero.Importe          = (float)pago.Importe;
                        chequesTercero.FechaAlta        = _clock.Now;
                        chequesTercero.SucursalAltaId   = Context.SucursalActual.Id;
                        chequesTercero.OperadorAltaId   = (Context.OperadorActual.Id);

                        Uow.ChequesTerceros.Agregar(chequesTercero);
                        break;

                    case FormaPago.Deposito:
                        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        = TipoComprobanteEnum.SeñaCliente;
                        cuentasMovimiento.ComprobanteId            = clienteMontoFavor.Id;
                        cuentasMovimiento.MonedaId                 = 0;
                        cuentasMovimiento.CondicionVentaId         = CondicionVentaEnum.Contado;
                        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 = Context.OperadorActual.Id;
                        cuentasMovimiento.SucursalAltaId = Context.SucursalActual.Id;

                        Uow.CuentasMovimientos.Agregar(cuentasMovimiento);
                        break;
                    }
                }

                Uow.CajaMovimientos.Agregar(cajaMovimiento);
            }

            Uow.Commit();

            _messageBoxDisplayService.ShowSuccess("Seña generada con éxito");

            //Si el Form=Editar significa que es SinGuardar los movimientos de caja
            if (_formMode == ActionFormMode.Create)
            {
                ImprimirComprobante(clienteMontoFavor, UcTotalesSenia.FormasDePagosParaComprobante);
            }

            RefrescarUow();

            RefrescarHistorial();

            Limpiar();
        }
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (Monto != ucTotalesSeña.TotalPagar)
            {
                _messageBoxDisplayService.ShowError("Los montos no coiniden");
                return;
            }

            int sucursal = 1;
            ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();

            clienteMontoFavor.Id                = Guid.NewGuid();
            clienteMontoFavor.ClienteId         = _cliente.Id;
            clienteMontoFavor.FechaComprobante  = _clock.Now;
            clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente;
            clienteMontoFavor.LCN               = "R" + sucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
            clienteMontoFavor.Concepto          = "Seña " + clienteMontoFavor.LCN;
            clienteMontoFavor.Importe           = ucTotalesSeña.TotalPagar;
            clienteMontoFavor.ImpOcupado        = 0;
            clienteMontoFavor.Observaciones     = TipoComprobanteEnum.SeñaCliente.ToString();
            clienteMontoFavor.FechaAlta         = _clock.Now;
            clienteMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
            clienteMontoFavor.SucursalAltaId    = 2;

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);



            //Recibo recibo = new Recibo();
            //recibo.Id = Guid.NewGuid();
            //recibo.SucursalCompId = Context.SucursalActual.Id;
            //recibo.Tipo = "3";//TipoComprobanteEnum.SeñaCliente;
            //recibo.PuntoVenta = Context.SucursalActual.Id;
            //var ultimoRecibo = _reciboNegocio.Listado("FechaAlta", "DESC", Context.SucursalActual.Id).First();
            //int numero;
            //int reciboNumero = int.TryParse(ultimoRecibo.Numero.Substring(1), out numero) ? numero : 0;
            //recibo.Numero = "C" + (numero + 1).ToString().PadLeft(13, '0');
            //recibo.FechaPago = _clock.Now;
            //recibo.Total = ucTotalesSeña.TotalPagar;
            //recibo.CobradorId = 0;
            //recibo.OperadorAltaId = Context.OperadorActual.Id;
            //recibo.SucursalAltaId = Context.SucursalActual.Id;
            //recibo.FechaAlta = _clock.Now;

            //Uow.Recibos.Agregar(recibo);

            Uow.Commit();
            _messageBoxDisplayService.ShowSuccess("Seña generada con éxito");

            var crearSenia = FormFactory.Create <FrmComprobante>();

            crearSenia._concepto = "Seña de Cliente";
            crearSenia._LCN      = clienteMontoFavor.LCN;
            var conv = new Conversion();

            crearSenia._montoTexto = conv.enletras(ucTotalesSeña.TotalPagar.ToString());
            //crearSenia._montoTexto = "cien";
            //crearSenia.Show();

            BuscarHistorial();
            Limpiar();
        }