Exemplo n.º 1
0
         } else {
             $errors = $result->getErrorMessages();
         }
     } else {
         $result = StatusTable::add($status);
         if ($result->isSuccess()) {
             $statusId = $status['ID'];
         } else {
             $errors = $result->getErrorMessages();
         }
     }
 }
 // add translations and group tasks, redirect
 if (!$errors) {
     foreach ($translations as $data) {
         StatusLangTable::add($data);
     }
     foreach ($groupTasks as $data) {
         StatusGroupTaskTable::add($data);
     }
     if ($result->isSuccess()) {
         if ($isNew) {
             CSaleStatus::CreateMailTemplate($statusId);
         }
     }
     if ($_POST['save']) {
         LocalRedirect('sale_status.php?lang=' . LANGUAGE_ID . GetFilterParams('filter_', false));
     } else {
         LocalRedirect("sale_status_edit.php?ID=" . $statusId . "&lang=" . LANGUAGE_ID . GetFilterParams("filter_", false));
     }
 }
Exemplo n.º 2
0
 private static function addLanguagesBy($statusId, array $rows)
 {
     foreach ($rows as $row) {
         StatusLangTable::add(array('STATUS_ID' => $statusId) + array_intersect_key($row, self::$langFields));
     }
 }
Exemplo n.º 3
0
 static function install(array $data)
 {
     if (!($statusId = $data['ID']) || !is_string($statusId)) {
         throw new SystemException('invalid status ID', 0, __FILE__, __LINE__);
     }
     if ($languages = $data['LANG']) {
         unset($data['LANG']);
         if (!is_array($languages)) {
             throw new SystemException('invalid status LANG', 0, __FILE__, __LINE__);
         }
     }
     $data['TYPE'] = static::TYPE;
     // install status if it is not installed
     if (!StatusTable::getById($statusId)->fetch()) {
         StatusTable::add($data);
     }
     // install status languages if they are not installed
     if ($languages) {
         $installedLanguages = array();
         $result = StatusLangTable::getList(array('select' => array('LID'), 'filter' => array('=STATUS_ID' => $statusId)));
         while ($row = $result->fetch()) {
             $installedLanguages[$row['LID']] = true;
         }
         foreach ($languages as $language) {
             if (!is_array($language)) {
                 throw new SystemException('invalid status language', 0, __FILE__, __LINE__);
             }
             if (!$installedLanguages[$language['LID']]) {
                 $language['STATUS_ID'] = $statusId;
                 StatusLangTable::add($language);
             }
         }
     }
 }