Próbuję znaleźć najlepszy sposób obliczenia rozmiaru pudełka potrzebnego do wysyłki.Obliczyć przybliżoną wartość dla rozmiaru opakowania transportowego
Mam 3 kontenery transportowe o różnych rozmiarach. Mam szerokość, długość, głębokość i masę produktu zdefiniowane w bazie danych.
Chciałbym wiedzieć, jak znaleźć najmniejszą ilość pudełek potrzebnych do wysyłki, a także najmniejsze wymiary tych pudełek, biorąc pod uwagę liczbę pozycji w koszyku.
Mój obecny "pomysł" polega na znalezieniu maksymalnej szerokości całej tablicy produktów, wybraniu odpowiedniego pola, a następnie podzieleniu zamówienia w razie potrzeby ... nie wydaje się, żeby to działało.
Kim wielkości pudełka są: - 8 x 6 x 6 = 228 cali sześc - 10 x 8 x 8 = 640 cali sześc - 12,5 x 12,5 x 12,5 = 1953,125 cali sześc
produkt jest zdefiniowany jako takie:
[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
)
Sprawdziłem problem z plecakiem, problem z pakowaniem itp. i nie mogę znaleźć sposobu, aby to zrobić. Każda pomoc będzie WIELKA.
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();
}
Naprawiono formatowanie ... to nie jest praca domowa, lecz system koszyka na zakupy, który piszę. – Wil
Wygląda na to, że jak tylko problem stanie się nie-ogólny, konkretny i namacalny, by można go było właściwie zastosować do rzeczywistej sytuacji, jest oznaczony jako praca domowa, z jakiegoś powodu =/ –
@Justin L. Miałem dokładnie odwrotny sens - problem był zbyt ogólny i nieostry, by być prawdziwym światem. Co sprawiło, że myślałeś, że to był prawdziwy świat? Obecność liczb (3 pola) lub rzeczywiste rozmiary? To są wskazówki dla mnie. Dlaczego twierdzisz, że nie było to ogólne? Jest to problem z plecakiem i jest naprawdę trudny - dlatego zazwyczaj jest to praca domowa. –