/** * Validating of parameters is all correct to get manifest * * @param array $parameters - validating parameters * @return array | Boolean - array of available orders id; false - something wrong */ public static function validateParams($parameters) { if (!is_array($parameters)) { return false; } foreach ($parameters as $key => $param) { switch ($key) { case 'id_orders': if ($param === false) { self::registerError('Please select Orders!'); } if (!is_array($param)) { return false; } $availableOrders = array(); //carrier is available foreach ($param as $id_order) { if (self::getAvailableCarrier($id_order)) { $availableOrders[] = $id_order; } } //remove order id without barcodes foreach ($availableOrders as $key => $id_order) { if (!DpdLabelRender::hasBarcode($id_order)) { unset($availableOrders[$key]); } } if (!count($availableOrders)) { self::registerError('Wrong select Orders!'); } break; } } if (count(self::getErrorMessage(false))) { return false; } return $availableOrders; }
/** * Grab PDF of Manifest or Label Content put to file and return path to file * @param $type (string) - 'label' | 'manifest' who need to get * @param $parameters (array) - Some parameters id_order is request * @return mix */ public function getPdfFile($type, $parameters = array(), $action = 'join') { if (!is_string($type)) { self::log('getPdfFile -> $type variable type is not correct, available (string) given: ' . gettype($type)); return false; } switch ($type) { case 'label': return DpdLabelRender::getLabel(array('id_orders' => $parameters), $action); case 'manifest': return DpdManifestRender::getManifest(array('id_orders' => $parameters)); default: self::log('getPdfFile -> Type not found I got: ' . $type); return false; } }
public function processBulkPrintDpdLabelsMPS() { $label = Module::getInstanceByName('dynamicparceldistribution'); $pathToFile = $label->getPdfFile('label', Tools::getValue('orderBox'), 'split'); foreach (DpdLabelRender::getWarningMessage() as $message) { $this->displayWarning($this->l($message)); } if ($pathToFile === false) { foreach (DpdLabelRender::getErrorMessage() as $message) { $this->errors[] = $this->l($message); } } else { $label->download($pathToFile, 'label.pdf', 'application/pdf'); } return ''; }