/** * Creating a new shippment * * @param Address $address * @param Courier $courier * @param string $consignmentNo * @param string $shippingDate * @param Order $order * @param string $contactName * @param string $contactNo * @param number $noOfCartons * @param string $estShippingCost The est shipping cost * @param string $actualShippingCost The actual shipping cost * @param string $deliveryInstructions The delivery instructions * @param string $mageShipmentId The magento shippment id * * @return Shippment */ public static function create(Address $address, Courier $courier, $consignmentNo, $shippingDate, Order $order, $contactName, $contactNo = '', $noOfCartons = 0, $estShippingCost = '0.00', $actualShippingCost = '0.00', $deliveryInstructions = '', $mageShipmentId = '') { $shippment = new Shippment(); if (($shippingDate = trim($shippingDate)) === '') { $shippingDate = new UDate(); } $estShippingCost = StringUtilsAbstract::getValueFromCurrency(trim($estShippingCost)); $actualShippingCost = StringUtilsAbstract::getValueFromCurrency(trim($actualShippingCost)); $msg = 'Shipment create for Order(' . $order->getOrderNo() . ') to address(' . trim($address) . ') via Courier(' . $courier->getName() . ') with ConNote(=' . $consignmentNo . ') on ' . $shippingDate . '(UTC) with actualCost = ' . StringUtilsAbstract::getCurrency($actualShippingCost); $shippment = $shippment->setAddress($address)->setCourier($courier)->setConNoteNo(trim($consignmentNo))->setOrder($order)->setReceiver(trim($contactName))->setContact(trim($contactNo))->setShippingDate(trim($shippingDate))->setNoOfCartons(trim($noOfCartons))->setEstShippingCost($estShippingCost)->setActualShippingCost($actualShippingCost)->setDeliveryInstructions(trim($deliveryInstructions))->setMageShipmentId(trim($mageShipmentId))->setActive(true)->save()->addLog($msg, Log::TYPE_SYSTEM, get_class($shippment) . '_CREATION', __CLASS__ . '::' . __FUNCTION__); $order->addComment($msg, Comments::TYPE_SYSTEM)->addLog($msg, Log::TYPE_SYSTEM, 'Auto Log', __CLASS__ . '::' . __FUNCTION__); return $shippment; }