/**
  * 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 '';
 }