示例#1
0
        private void ActualizarVentaReservada(VentaDataBase ventaData)
        {
            var lcn = LcnHelper.ObtenerLcn(ventaData.NumeroComprobante.GetValueOrDefault(), ventaData.PuntoVenta);

            //var ventaReservada = Uow.VentasReservadas.Obtener(v => v.LCN == lcn);
            var ventaReservada = Uow.VentasReservadas.Listado().OrderByDescending(v => v.FechaAlta).FirstOrDefault(v => v.LCN == lcn);

            if (ventaReservada != null)
            {
                ventaReservada.FechaModificacion      = _clock.Now;
                ventaReservada.OperadorModificacionId = ventaData.OperadorId;
                ventaReservada.SucursalModificacionId = ventaData.SucursalId;
                Uow.VentasReservadas.Modificar(ventaReservada);
            }
        }
        private string GenerarLcnTitulosDevolucion()
        {
            var ultimaDevolucion = Uow.TitulosConsignacionesDevueltas.Listado().Where(p => p.SucursalAltaId == Context.SucursalActual.Id)
                                   .OrderByDescending(p => p.FechaAlta).Take(1).FirstOrDefault();
            int lcnNuevo = 0;

            if (ultimaDevolucion != null)
            {
                var lcn = ultimaDevolucion.LCN.Substring(5);
                lcnNuevo = int.TryParse(lcn, out lcnNuevo) ? lcnNuevo : 0;
            }

            lcnNuevo += 1;
            string sucursal = Context.SucursalActual.SucursalNumero.ToString();

            return(LcnHelper.ObtenerLcn(lcnNuevo, Context.SucursalActual.Id, "X"));
            //return "X" + "000" + sucursal + lcnNuevo.ToString().PadLeft(8, '0');
        }
示例#3
0
        private Venta AgregarVenta(VentaDataBase ventaData)
        {
            var venta = new Venta();

            venta.Id = Guid.NewGuid();

            if (!ventaData.EsVentaReservada)
            {
                venta.NumeroComprobante = this.SiguienteNumeroFactura(ventaData.OperadorId, ventaData.SucursalId);
            }
            else
            {
                venta.NumeroComprobante = ventaData.NumeroComprobante.GetValueOrDefault();

                ActualizarVentaReservada(ventaData);
            }

            venta.LetraComprobante = LcnHelper.LetraConsumidorFinal;
            venta.LCN           = LcnHelper.ObtenerLcn(venta.NumeroComprobante, ventaData.PuntoVenta);
            venta.ComprobanteId = ventaData.TipoComprobanteSeleccionado;
            venta.ClienteId     = ventaData.ClienteId;

            venta.PuntoVenta       = ventaData.PuntoVenta;
            venta.FechaComprobante = _clock.Now;
            venta.FechaVencimiento = _clock.Now;
            venta.CondicionVentaId = ventaData.CondicionVentaSeleccionada;

            venta.Concepto    = ventaData.TipoComprobanteSeleccionado.ToString();
            venta.ImporteNeto = ventaData.TotalPagar.GetValueOrDefault();
            venta.ImporteIva  = ImporteIva;

            venta.ImporteSena     = ventaData.Senas + ventaData.CreditosDevolucion;
            venta.FechaUltimoPago = _clock.Now;
            venta.TotalPagado     = ventaData.TotalPagar;
            venta.EstadoVentaId   = EstadoVentaEnum.Entregada;

            venta.FechaAlta      = _clock.Now;
            venta.SucursalAltaId = ventaData.SucursalId;
            venta.OperadorAltaId = ventaData.OperadorId;

            Uow.Ventas.Agregar(venta);

            return(venta);
        }
示例#4
0
        public void ReservarFactura(ReservarFacturaData reservarFacturaData)
        {
            LoteFactura loteFactura =
                Uow.LotesFacturas.Obtener(
                    l => l.OperadorLote == reservarFacturaData.OperadorActualId && l.NroActual < l.NroHasta && l.Estado == EstadoLoteEnum.Activo && l.SucursalAltaId == reservarFacturaData.SucursalActualId);

            // Guardar Reservar Factura
            VentaReservada ventaReservada = new VentaReservada();

            ventaReservada.SucReserva = reservarFacturaData.SucursalActualId;
            ventaReservada.NroLote    = loteFactura.NroLote;

            ventaReservada.LCN            = LcnHelper.ObtenerLcn(this.SiguienteNumeroFactura(reservarFacturaData.OperadorActualId, reservarFacturaData.SucursalActualId), reservarFacturaData.PuntoVenta);
            ventaReservada.FechaAlta      = _clock.Now;
            ventaReservada.SucursalAltaId = reservarFacturaData.SucursalActualId;
            ventaReservada.OperadorAltaId = reservarFacturaData.OperadorActualId;
            Uow.VentasReservadas.Agregar(ventaReservada);

            AumentarNumeroFactura(reservarFacturaData.OperadorActualId, reservarFacturaData.SucursalActualId);

            Uow.Commit();
        }
示例#5
0
        private void RealizarConsignacion()
        {
            _consignacion.Id = Guid.NewGuid();

            switch (_formMode)
            {
            case ActionFormMode.Create:
                _consignacion.NumeroComprobante = _consignacionNegocio.SiguienteNroConsignacion(Context.SucursalActual.Id).ToString();
                break;

            case ActionFormMode.Edit:
                TxtNroConsignacion.Text = _consignacion.NumeroComprobante;
                break;
            }

            _consignacion.LCN = "";

            _consignacion.ClienteId = _cliente.Id;

            _consignacion.PuntoVenta       = 1;//; "no encuentro, pero no es igual a sucursal"
            _consignacion.FechaComprobante = _clock.Now;
            _consignacion.FechaVencimiento = DtpFechaVencimiento.Value;
            _consignacion.ImporteNeto      = ucTitulosVenta.Titulos.Sum(x => x.PrecioVenta);
            _consignacion.ImporteIVA       = IvaHelper.CalcularIva(_consignacion.ImporteNeto.Value);
            _consignacion.FechaEmision     = _clock.Now;
            BtnRecargarNroFactura_Click(null, null);
            _consignacion.NumeroComprobante = TxtNroConsignacion.Text;
            _consignacion.LCN             = LcnHelper.ObtenerLcn(_consignacion.NumeroComprobante, Context.SucursalActual.SucursalNumero ?? 1, "X");
            _consignacion.Concepto        = "CONSIGNACION PARA CLIENTES";
            _consignacion.TipoComprobante = (int)Entidades.Enums.TipoComprobanteEnum.RemitosConsignacCliente;
            _consignacion.Observaciones   = TxtObservacion.Text;
            _consignacion.FechaAlta       = _clock.Now;
            _consignacion.SucursalAltaId  = Context.SucursalActual.Id; //Sucursal del operador
            _consignacion.OperadorAltaId  = Context.OperadorActual.Id; //Id el operador

            Uow.RemitosVentas.Agregar(_consignacion);


            //CONSIGNACION DETALLE
            foreach (var titulo in ucTitulosVenta.Titulos)
            {
                //Descontar stock
                var tituloStock =
                    Uow.TitulosStock.Obtener(ts => ts.TituloId == titulo.TituloId && ts.SucursalId == Context.SucursalActual.Id);
                var cantidadAVender = titulo.Cantidad;
                int?cantpropia      = 0;
                int?cantconsiganda  = 0;

                if (tituloStock.StkPr > 0)
                {
                    if (tituloStock.StkPr >= cantidadAVender)
                    {
                        tituloStock.StkPr -= cantidadAVender;
                        cantpropia         = cantidadAVender;
                        cantidadAVender    = 0;
                    }
                    else
                    {
                        cantpropia        = tituloStock.StkPr;
                        cantidadAVender  -= tituloStock.StkPr;
                        tituloStock.StkPr = 0;
                    }
                }

                if (cantidadAVender > 0 && tituloStock.StkCn > 0)
                {
                    if (tituloStock.StkCn >= cantidadAVender)
                    {
                        tituloStock.StkCn -= cantidadAVender;
                        cantconsiganda     = cantidadAVender;
                    }
                    else
                    {
                        _messageBoxDisplayService.ShowError("No hay suficiente stock para completar la consignación");
                        return;
                        //Deberia cancelar la venta completa
                    }
                }

                Uow.TitulosStock.Modificar(tituloStock);

                RemitosVentaDetalle remitoDetalle = new RemitosVentaDetalle();
                remitoDetalle.Id             = Guid.NewGuid();
                remitoDetalle.RemitoVentaId  = _consignacion.Id;
                remitoDetalle.TituloId       = titulo.TituloId;
                remitoDetalle.CntPr          = cantpropia;
                remitoDetalle.CntCn          = cantconsiganda;
                remitoDetalle.PrecioVenta    = titulo.PrecioVenta;
                remitoDetalle.PrecioBase     = titulo.PrecioBase;
                remitoDetalle.Descuento      = titulo.Descuento;
                remitoDetalle.FechaAlta      = _clock.Now;
                remitoDetalle.SucursalAltaId = Context.SucursalActual.Id;   //Sucursal del operador
                remitoDetalle.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador

                Uow.RemitosVentasDetalle.Agregar(remitoDetalle);
            }

            Uow.Commit();

            _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessConsignacionExitosa);

            using (var crearConsignacion = FormFactory.Create <FrmComprobanteConsignacion>(_consignacion.Id))
            {
                crearConsignacion._descripcion = _consignacion.Concepto;
                crearConsignacion._formaPago   = "CONSIGNACION";
                crearConsignacion._recargo     = "";

                crearConsignacion.ShowDialog();
            }

            var pageTab = this.Parent as RadPageViewPage;

            if (pageTab != null)
            {
                pageTab.Dispose();
            }
            ;
        }