public void GestorImportesMinimos_LosProductosSobrePedidoLleganAlImporteMinimo_siEsDeTiendaOnlineMiraOtroImporteMinimo()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO_TIENDA_ONLINE + 1,
                CantidadReservada = 7,
                FechaEntrega = new DateTime(),
                EsSobrePedido = true
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = true,
                EsNotaEntrega = false,
                ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_MINIMO_TIENDA_ONLINE + 1,
                ImporteOriginalSobrePedido = 0,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            GestorImportesMinimos gestor = new GestorImportesMinimos(pedido);

            Assert.IsTrue(gestor.LosProductosSobrePedidoLleganAlImporteMinimo());
        }
        private LineaPedidoPicking pasarAPendiente(LineaPedidoPicking linea)
        {
            PedidosVentaController pedidosCtrl = new PedidosVentaController();

            // Lo suyo sería dejar pendiente la línea actual para que mantuviese la antigüedad,
            // pero no se puede, porque necesitamos el Nº Orden para ponerlo en Ubicaciones luego,
            // por lo que nos vemos obligados a dejar pendiente la línea nueva y decidir la
            // antigüedad por fecha de modificación en lugar de por Nº Orden
            // (también hay que cambiarlo en la reposición).
            LinPedidoVta lineaActual = db.LinPedidoVtas.SingleOrDefault(l => l.Nº_Orden == linea.Id);

            if (lineaActual.Cantidad != linea.Cantidad - linea.CantidadReservada) {
                LinPedidoVta lineaNueva;
                lineaActual.Estado = Constantes.EstadosLineaVenta.PENDIENTE;
                lineaNueva = pedidosCtrl.dividirLinea(db, lineaActual, (short)(linea.CantidadReservada));
                lineaActual.Estado = Constantes.EstadosLineaVenta.EN_CURSO;

                if (lineaNueva != null)
                {
                    return new LineaPedidoPicking
                    {
                        Id = 0, // no importa que no tenga Nº Orden porque es la que se queda pendiente
                        Cantidad = (short)lineaNueva.Cantidad,
                        CantidadReservada = 0,
                        BaseImponible = lineaNueva.Base_Imponible,
                        TipoLinea = (byte)lineaNueva.TipoLinea,
                        Producto = lineaNueva.Producto,
                        FechaEntrega = lineaNueva.Fecha_Entrega
                    };
                }
            }

            return null;
        }
        public void GestorUbicaciones_Ejecutar_siLaCantidadDaJustaNoHayQueInsertarNuevaUbicacion()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 15,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 7,
                FechaEntrega = new DateTime()
            };

            // Hay reservadas más cantidad de las que tenemos en ubicaciones
            UbicacionPicking ubicacion = new UbicacionPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 7,
                CantidadNueva = 7,
                Estado = 0,
                EstadoNuevo = 0
            };
            List<UbicacionPicking> ubicaciones = new List<UbicacionPicking>();
            ubicaciones.Add(ubicacion);

            GestorUbicaciones gestor = new GestorUbicaciones(linea, ubicaciones);
            gestor.Ejecutar();

            UbicacionPicking ubicacionNueva = ubicaciones.FindLast(u => u.Id == 0);
            Assert.IsNull(ubicacionNueva);
        }
        public void GestorUbicaciones_Ejecutar_siEstaElProductoCambiaLaCantidadNuevaYElEstado()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 7,
                FechaEntrega = new DateTime()
            };

            UbicacionPicking ubicacion = new UbicacionPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 10,
                CantidadNueva = 10,
                Estado = 0,
                EstadoNuevo = 0
            };
            List<UbicacionPicking> ubicaciones = new List<UbicacionPicking>();
            ubicaciones.Add(ubicacion);

            GestorUbicaciones gestor = new GestorUbicaciones(linea, ubicaciones);
            gestor.Ejecutar();

            Assert.AreEqual(10, ubicacion.Cantidad);
            Assert.AreEqual(7, ubicacion.CantidadNueva);
            Assert.AreEqual(0, ubicacion.Estado);
            Assert.AreEqual(3, ubicacion.EstadoNuevo);
            Assert.AreEqual(1, ubicacion.LineaPedidoVentaId);
        }
        public void GestorReservasStock_BorrarLineasEntregaFutura_despuesDeEjecutarloLasLineasFuturasNoEstan()
        {
            LineaPedidoPicking lineaParaEntregaInmediata = new LineaPedidoPicking
            {
                Id = 2,
                Producto = "A",
                Cantidad = 16,
                BaseImponible = 100,
                CantidadReservada = 0,
                FechaEntrega = new DateTime()
            };

            LineaPedidoPicking lineaParaEntregaFutura = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 0,
                FechaEntrega = new DateTime().AddDays(7)
            };

            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(lineaParaEntregaInmediata);

            PedidoPicking pedido2 = new PedidoPicking
            {
                Id = 2,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido2.Lineas.Add(lineaParaEntregaFutura);

            // Esto lo rellenaría en ejecución el servicio RellenadorPickingService
            List<PedidoPicking> candidatos = new List<PedidoPicking>();
            candidatos.Add(pedido);
            candidatos.Add(pedido2);

            GestorReservasStock.BorrarLineasEntregaFutura(candidatos, new DateTime().AddDays(1));

            Assert.AreEqual(1, pedido.Lineas.Count);
            Assert.AreEqual(0, pedido2.Lineas.Count);
        }
        public void GestorReservasStock_Reservar_siEsCuentaContableLaAsignaEntera()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE,
                Producto = "624HOLA",
                Cantidad = 6,
                BaseImponible = 100,
                CantidadReservada = 0,
                FechaEntrega = new DateTime()
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            // Esto lo rellenaría en ejecución el servicio RellenadorPickingService
            List<PedidoPicking> candidatos = new List<PedidoPicking>();
            candidatos.Add(pedido);

            // Esto lo rellenaría en ejecución el servicio RellenadorStocksService
            StockProducto stock = new StockProducto
            {
                Producto = "A",
                StockDisponible = 1
            };
            List<StockProducto> stocks = new List<StockProducto>();
            stocks.Add(stock);

            List<LineaPedidoPicking> lineas = candidatos.Where(c => !c.EsNotaEntrega).SelectMany(l => l.Lineas).OrderBy(l => l.Id).ToList();

            GestorReservasStock.Reservar(stocks, candidatos, lineas);

            Assert.AreEqual(6, linea.CantidadReservada);
        }
        public void PedidoPicking_hayQueSumarPortes_siNoHayStockDeNadaNoHayQueSumarPortes()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 6,
                CantidadReservada = 0,
                BaseImponible = 0
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_SIN_PORTES + 1,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            Assert.IsFalse(pedido.hayQueSumarPortes());
        }
        public void PedidoPicking_hayQueSumarPortes_siHayProductosQueNoSonSobrePedidoYElOriginalLlegabaAlMinimoNoSeSumanPortes()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 6,
                CantidadReservada = 6,
                EsSobrePedido = false
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_MINIMO + 1,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            Assert.IsFalse(pedido.hayQueSumarPortes());
        }
        public void GestorStocks_HayDeTodo_siTieneDosProductosYUnoNoTieneStockDevuelveFalse()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 7,
                FechaEntrega = new DateTime()
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            LineaPedidoPicking linea2 = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "B",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 6,
                FechaEntrega = new DateTime()
            };

            pedido.Lineas.Add(linea2);

            GestorStocks gestor = new GestorStocks(pedido);

            Assert.IsFalse(gestor.HayStockDeTodo());
        }
        public void GestorStocks_HayDeTodo_siSoloTieneUnProductoYTieneStockDevuelveTrue()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 7,
                FechaEntrega = new DateTime()
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);
            GestorStocks gestor = new GestorStocks(pedido);

            Assert.IsTrue(gestor.HayStockDeTodo());
        }
        public void GestorImportesMinimos_LosProductosSobrePedidoLleganAlImporteMinimo_siHayLineasSobrePedidoQueSuperanElMinimoDevuelveTrue()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 2500,
                CantidadReservada = 7,
                FechaEntrega = new DateTime(),
                EsSobrePedido = true
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            GestorImportesMinimos gestor = new GestorImportesMinimos(pedido);

            Assert.IsTrue(gestor.LosProductosSobrePedidoLleganAlImporteMinimo());
        }
        public void PedidoPicking_saleEnPicking_siNoHayDeTodoYEsServirJuntoNoSale()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 6,
                CantidadReservada = 5
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = true,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            Assert.IsFalse(pedido.saleEnPicking());
        }
        public void PedidoPicking_hayQueSumarPortes_siYaTienePortesNoHayQueSumarlosDeNuevo()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE,
                Producto = "62400003",
                Cantidad = 6,
                CantidadReservada = 0,
                BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO - 1,
                EsSobrePedido = true
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_MINIMO - 1,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            Assert.IsFalse(pedido.hayQueSumarPortes());
        }
        public void PedidoPicking_hayQueSumarPortes_siTodosLosProductosSonSobrePedidoYNoLleganAlImporteMinimoPeroElOriginalSiLlegabaAlImporteExentoDePortesNoSeSumanPortes()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Cantidad = 6,
                CantidadReservada = 6,
                BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO - 1,
                EsSobrePedido = true
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                ImporteOriginalNoSobrePedido = GestorImportesMinimos.IMPORTE_SIN_PORTES + 1,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            Assert.IsTrue(pedido.hayQueSumarPortes());
        }
        public void GestorUbicaciones_Ejecutar_siUnaUbicacionSeDivideDosVecesCogeCopiaIdEnVezDeId()
        {
            LineaPedidoPicking linea1 = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 5,
                CantidadReservada = 5
            };

            LineaPedidoPicking linea2 = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 4,
                CantidadReservada = 4
            };

            UbicacionPicking ubicacion = new UbicacionPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 17,
                CantidadNueva = 17,
                Estado = 0,
                EstadoNuevo = 0
            };

            List<UbicacionPicking> ubicaciones = new List<UbicacionPicking>();
            ubicaciones.Add(ubicacion);

            GestorUbicaciones gestor1 = new GestorUbicaciones(linea1, ubicaciones);
            gestor1.Ejecutar();

            GestorUbicaciones gestor2 = new GestorUbicaciones(linea2, ubicaciones);
            gestor2.Ejecutar();

            Assert.AreEqual(3, ubicaciones.Count);
            if (ubicaciones.Count == 3)
            {
                UbicacionPicking ubicacion1 = ubicaciones[0];
                UbicacionPicking ubicacion2 = ubicaciones[1];
                UbicacionPicking ubicacion3 = ubicaciones[2];
                Assert.AreEqual(5, ubicacion1.CantidadNueva);
                Assert.AreEqual(4, ubicacion2.CantidadNueva);
                Assert.AreEqual(8, ubicacion3.CantidadNueva);
                Assert.IsTrue(ubicacion1.Id != 0 || ubicacion1.CopiaId != 0);
                Assert.IsTrue(ubicacion2.Id != 0 || ubicacion2.CopiaId != 0);
                Assert.IsTrue(ubicacion3.Id != 0 || ubicacion3.CopiaId != 0);
            }
        }
        public void GestorReservasStock_Reservar_siHayUnPedidoQueEsNotaEntregaNoReservaNada()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 16,
                BaseImponible = 100,
                CantidadReservada = 0,
                FechaEntrega = new DateTime()
            };

            LineaPedidoPicking linea2 = new LineaPedidoPicking
            {
                Id = 2,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 0,
                FechaEntrega = new DateTime()
            };

            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = true,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            PedidoPicking pedido2 = new PedidoPicking
            {
                Id = 2,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido2.Lineas.Add(linea2);

            // Esto lo rellenaría en ejecución el servicio RellenadorPickingService
            List<PedidoPicking> candidatos = new List<PedidoPicking>();
            candidatos.Add(pedido);
            candidatos.Add(pedido2);

            // Esto lo rellenaría en ejecución el servicio RellenadorStocksService
            StockProducto stock = new StockProducto
            {
                Producto = "A",
                StockDisponible = 20
            };
            List<StockProducto> stocks = new List<StockProducto>();
            stocks.Add(stock);

            List<LineaPedidoPicking> lineas = candidatos.Where(c => !c.EsNotaEntrega).SelectMany(l => l.Lineas).OrderBy(l => l.Id).ToList();

            GestorReservasStock.Reservar(stocks, candidatos, lineas);

            Assert.AreEqual(0, linea.CantidadReservada);
            Assert.AreEqual(7, linea2.CantidadReservada);
        }
 public GestorUbicaciones(LineaPedidoPicking linea, List<UbicacionPicking> ubicaciones)
 {
     this.linea = linea;
     this.ubicaciones = ubicaciones;
 }
        public void GestorUbicaciones_Ejecutar_siLaUbicacionEstaDescuadradaDebeDarError()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 15,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 7,
                FechaEntrega = new DateTime()
            };

            // Hay reservadas más cantidad de las que tenemos en ubicaciones
            UbicacionPicking ubicacion = new UbicacionPicking
            {
                Id = 5,
                Producto = "A",
                Cantidad = 6,
                CantidadNueva = 6,
                Estado = 0,
                EstadoNuevo = 0
            };
            List<UbicacionPicking> ubicaciones = new List<UbicacionPicking>();
            ubicaciones.Add(ubicacion);

            GestorUbicaciones gestor = new GestorUbicaciones(linea, ubicaciones);
            gestor.Ejecutar();
        }
        public void PedidoPicking_hayQueSumarPortes_siTodosLosProductosSonSobrePedidoYLleganAlImporteMinimoNoSeSumanPortes()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 6,
                CantidadReservada = 6,
                BaseImponible = GestorImportesMinimos.IMPORTE_MINIMO + 1,
                EsSobrePedido = true
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            Assert.IsFalse(pedido.hayQueSumarPortes());
        }
        public void GestorStock_HayDeTodo_siHayUnaLineaDeCuentaContableTieneQuePonerQueTieneStock()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 0,
                FechaEntrega = new DateTime()
            };

            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            GestorStocks gestor = new GestorStocks(pedido);

            Assert.IsTrue(gestor.HayStockDeTodo());
        }
        public void GestorStocks_TodoLoQueTieneStockEsSobrePedido_siHayUnProductoQueNoEsSobrePedidoConStockDevuelveFalse()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 7,
                FechaEntrega = new DateTime(),
                EsSobrePedido = false
            };
            PedidoPicking pedido = new PedidoPicking
            {
                Id = 1,
                ServirJunto = false,
                EsTiendaOnline = false,
                EsNotaEntrega = false,
                Lineas = new List<LineaPedidoPicking>()
            };
            pedido.Lineas.Add(linea);

            GestorStocks gestor = new GestorStocks(pedido);

            Assert.IsFalse(gestor.TodoLoQueTieneStockEsSobrePedido());
        }
        public void GestorUbicaciones_Ejecutar_siLaCantidadEsDistintaCreaUnaNuevaUbicacion()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 1,
                TipoLinea = Constantes.TiposLineaVenta.PRODUCTO,
                Producto = "A",
                Cantidad = 7,
                BaseImponible = 100,
                CantidadReservada = 7,
                FechaEntrega = new DateTime()
            };

            UbicacionPicking ubicacion = new UbicacionPicking
            {
                Id = 1,
                Producto = "A",
                Cantidad = 10,
                CantidadNueva = 10,
                Estado = 0,
                EstadoNuevo = 0
            };
            List<UbicacionPicking> ubicaciones = new List<UbicacionPicking>();
            ubicaciones.Add(ubicacion);

            GestorUbicaciones gestor = new GestorUbicaciones(linea, ubicaciones);
            gestor.Ejecutar();
            UbicacionPicking ubicacionNueva = ubicaciones.FindLast(u => u.Id == 0);

            Assert.AreEqual(1, ubicacionNueva.CopiaId);
            Assert.AreEqual(3, ubicacionNueva.Cantidad);
            Assert.AreEqual(3, ubicacionNueva.CantidadNueva);
            Assert.AreEqual(0, ubicacionNueva.Estado);
            Assert.AreEqual(0, ubicacionNueva.EstadoNuevo);
            Assert.AreEqual(0, ubicacionNueva.LineaPedidoVentaId);
        }
        public void GestorUbicaciones_Ejecutar_siLaLineaEsUnaCuentaContableNoHayQueInsertarNuevaUbicacion()
        {
            LineaPedidoPicking linea = new LineaPedidoPicking
            {
                Id = 15,
                TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE,
                Producto = "62400003",
                Cantidad = 1,
                BaseImponible = 6,
                CantidadReservada = 1,
                FechaEntrega = new DateTime()
            };

            List<UbicacionPicking> ubicaciones = new List<UbicacionPicking>();

            GestorUbicaciones gestor = new GestorUbicaciones(linea, ubicaciones);
            gestor.Ejecutar();

            UbicacionPicking ubicacionNueva = ubicaciones.FindLast(u => u.Id == 0);
            Assert.IsNull(ubicacionNueva);
        }