J'essaie de trouver la meilleure façon de calculer la taille de boîte nécessaire pour l'expédition.Calculer une estimation approximative pour la taille de la boîte d'expédition
J'ai 3 conteneurs d'expédition avec différentes tailles. J'ai la largeur, la longueur, la profondeur et la masse du produit définies dans la base de données.
Je voudrais savoir comment trouver la plus petite quantité de boîtes nécessaires pour expédier, et aussi les plus petites dimensions de ces boîtes étant donné le nombre d'articles dans le panier. Mon 'idée' actuelle est de trouver la largeur maximale de l'ensemble du tableau des produits, de sélectionner une case en fonction de celle-ci, puis de diviser l'ordre selon les besoins ... cela ne semble pas fonctionner.
Mes tailles de boîte sont: - 8 x 6 x 6 = 228 pouces cubes - 10 x 8 x 8 = 640 pouces cubes - 12,5 x 12,5 x 12,5 = 1953,125 pouces cubes
un produit est définie en tant que tel:
[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
)
Je l'ai regardé dans problème de havresac, problème d'emballage, etc et ne peut pas trouver un moyen de le faire. Toute aide est la bienvenue.
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();
}
Mise en forme fixe ... ce n'est pas un devoir, c'est pour un système de panier que j'écris. – Wil
Il semble que dès qu'un problème devient non général, spécifique et suffisamment tangible pour être réellement appliqué à une situation réelle, il est étiqueté comme devoirs, pour une raison quelconque =/ –
@Justin L. J'avais exactement le sens inverse - Le problème était trop général et trop flou pour être réel. Qu'est-ce qui vous a fait penser que c'était du vrai monde? La présence de chiffres (3 cases) ou de tailles réelles? Ce sont des indices de devoirs pour moi. Pourquoi prétends-tu que ce n'était pas général? C'est le problème du sac à dos et c'est vraiment difficile - c'est pourquoi c'est habituellement les devoirs. –