Estoy tratando de encontrar la mejor manera de calcular el tamaño de la caja necesaria para el envío.Calcular una estimación aproximada para el tamaño de la caja de envío
Tengo 3 contenedores con diferentes tamaños. Tengo el ancho, la longitud, la profundidad y la masa del producto definidos en la base de datos.
Me gustaría saber cómo encontrar la menor cantidad de cajas necesarias para enviar, y también las dimensiones más pequeñas de esas cajas dado el número de artículos en el carro.
Mi "idea" actual es encontrar el ancho máximo de toda la matriz de productos, seleccionar un cuadro según este, y luego dividir el orden según sea necesario ... esto no parece que funcione.
Mis tamaños de cajas son: - 8 x 6 x 6 = 228 pulgadas cúbicas - 10 x 8 x 8 = 640 pulgadas cúbicas - 12,5 x 12,5 x 12,5 = 1953.125 pulgadas cúbicas
se define Un producto tales como:
[Product] => Array
(
[STOCK_CODE] => 010003
[Product_Slug] => GABA_010003
[ItemName] => GABA
[WHOLESALE_PRICE] => 17.47
[RETAIL_PRICE] => 24.95
[Brand] =>
[ProductLine] =>
[image_name] => 705077000440
[MASS] => 0.313
[Height] => 4.625
[Width] => 2.375
[Depth] => 2.375
[cubic_inches] => 26.087890625
)
he mirado en problema de la mochila, un problema de embalaje, etc, y no puedo encontrar una manera de hacer esto. Cualquier ayuda sería genial.
function shipping(){
$this->CartProduct->unbindModel(
array('belongsTo' => array('User'))
);
//find all cart products by current logged in user
$cartItems = $this->CartProduct->find('all', array('conditions' => array('CartProduct.user_id' => $this->Auth->user('id'))));
$i = 0;
//get the max width, height, depth
$maxHeight = 0;
$maxWidth = 0;
$maxDepth = 0;
foreach($cartItems as $c){
$cartItems[$i]['Product']['cubic_inches'] = $c['Product']['Height'] * $c['Product']['Width'] * $c['Product']['Depth'];
$cartItems[$i]['CartProduct']['total_cubic_inches'] = ($c['Product']['Height'] * $c['Product']['Width'] * $c['Product']['Depth']) * $c['CartProduct']['qty'];
if($c['Product']['Height'] > $maxHeight)
{
$maxHeight = $c['Product']['Height'];
}
if($c['Product']['Width'] > $maxWidth)
{
$maxWidth = $c['Product']['Width'];
}
if($c['Product']['Depth'] > $maxDepth)
{
$maxDepth = $c['Product']['Depth'];
}
$i++;
}
//possible containers
//8 x 6 x 6 = 228 ci
//10 x 8 x 8 = 640 ci
//12.5 x 12.5 x 12.5 = 1953.125
$possibleContainers = array(
1 => array(
'Height' => 8,
'Width' => 6,
'Depth' => 6,
'Cubic' => 228),
2 => array(
'Height' => 10,
'Width' => 8,
'Depth' => 8,
'Cubic' => 640),
3 => array(
'Height' => 12.5,
'Width' => 12.5,
'Depth' => 12.5,
'Cubic' => 1953.125)
);
$max = array(
'Height' => $maxHeight,
'Width' => $maxWidth,
'Depth' => $maxDepth,
);
pr($cartItems);
pr($possibleContainers);
die();
}
Formateo fijo ... esto no es tarea, es para un sistema de carrito de compras que estoy escribiendo. – Wil
Parece que tan pronto como un problema se vuelve no general, específico y tangible para aplicarse realmente a una situación de la vida real, se etiqueta como tarea, por alguna razón =/ –
@Justin L. Tenía exactamente el sentido opuesto - el problema era demasiado general y desenfocado como para ser un mundo real. ¿Qué te hizo pensar que esto era el mundo real? La presencia de números (3 cajas) o tamaños reales? Esas son sugerencias de tareas para mí. ¿Por qué afirmas que esto no fue general? Es el problema de la mochila y es realmente difícil, por eso suele ser tarea. –