Пример #1
0
        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;
        }
Пример #2
0
        public void Ejecutar()
        {
            String cuenta;
            decimal portes;

            if (pedido.CodigoPostal.StartsWith("28") || pedido.CodigoPostal.StartsWith("19") || pedido.CodigoPostal == "45223" || pedido.CodigoPostal == "45224")
            {
                cuenta = "62400002";
                portes = 3;
            } else
            {
                cuenta = "62400003";
                portes = 6;
            }

            PedidosVentaController pedidoCtrl = new PedidosVentaController();
            LinPedidoVta lineaVta = pedidoCtrl.crearLineaVta(pedido.Empresa, pedido.Id, PedidosVentaController.TIPO_LINEA_CUENTA_CONTABLE, cuenta, 1, portes, "");
            db.LinPedidoVtas.Add(lineaVta);
            pedido.Lineas.Add(new LineaPedidoPicking
            {
                Id = 0, // para luego poder dar picking a la línea recién insertada en db.LinPedidoVtas
                Cantidad = 1,
                CantidadReservada = 1,
                BaseImponible = portes,
                TipoLinea = Constantes.TiposLineaVenta.CUENTA_CONTABLE,
                Producto =  cuenta,
                FechaEntrega = DateTime.Today
            });
        }