function GraniteOrderCost($order_id = null, $quote_id = null) { $order_data = array(); $total_cost = 0.0; $gst_cost = 0.0; $item_cost = 0.0; App::import("Model", "QuoteManager.GraniteOrder"); $granite_order = new GraniteOrder(); if ($order_id) { $order_data = $granite_order->find("first", array("conditions" => array("GraniteOrder.id" => $order_id))); } elseif ($quote_id) { $order_data = $granite_order->find("first", array("conditions" => array("quote_id" => $quote_id))); } if ($order_data) { $total_cost += $order_data['GraniteOrder']['cost']; $order_items = $this->GraniteOrderItem($order_data['GraniteOrder']['id']); foreach ($order_items as $order_item) { $item_info = explode('|', $order_item['GraniteOrderItem']['code']); $item_type = $item_info[1]; switch ($item_type) { case 'item': $item_cost += $order_item['GraniteOrderItem']['quantity'] * $order_item['Item']['price']; break; case 'cabinet': $item_cost += $order_item['GraniteOrderItem']['quantity'] * $order_item['Cabinet']['manual_unit_price']; break; case 'door': $item_cost += $order_item['GraniteOrderItem']['quantity'] * $order_item['Door']['door_price_each']; break; case 'drawer': $item_cost += $order_item['GraniteOrderItem']['quantity'] * $order_item['Door']['drawer_price_each']; break; case 'wall_door': $item_cost += $order_item['GraniteOrderItem']['quantity'] * $order_item['Door']['wall_door_price_each']; break; } } $total_cost += $item_cost; $gst_cost = $total_cost * GST / 100; $total_cost += $gst_cost; } return array('total_cost' => $total_cost, 'gst_cost' => $gst_cost, 'item_cost' => $item_cost); // debug($order_data); }