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 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 }); }