/** * Изменить корреспонденцию. * * @param int $id ID документа * @param array $frm Информация о письме * * @return object xajaxResponse */ function saveLetter($id, $frm) { global $objLetters; $objResponse = new xajaxResponse(); if (hasPermissions('letters') && hasPermissions('adm')) { $errors = array(); if (trim($frm['letters_doc_frm_title']) == '') { $errors['letters_doc_frm_title'] = 'Вы не ввели название документа'; } /* if(trim($frm['letters_doc_frm_group'])=='') { $errors['letters_doc_frm_group'] = 'Вы не ввели группу документа'; } */ if (!$frm['letters_doc_frm_user_1_db_id'] || $frm['letters_doc_frm_user_1_db_id'] == 'null') { $errors['letters_doc_frm_user_1'] = 'Вы не выбрали пользователя'; } else { /* if($frm['letters_doc_frm_user1_status_data']==0) { $errors['letters_doc_frm_user_1'] = 'Вы не выбрали статус'; } */ } if (!$frm['letters_doc_frm_user_2_db_id'] || $frm['letters_doc_frm_user_2_db_id'] == 'null') { $errors['letters_doc_frm_user_2'] = 'Вы не выбрали пользователя'; } else { /* if($frm['letters_doc_frm_user2_status_data']==0) { $errors['letters_doc_frm_user_2'] = 'Вы не выбрали статус'; } */ } if ($frm['letters_doc_frm_user_3_db_id']) { /* if($frm['letters_doc_frm_user3_status_data']==0) { $errors['letters_doc_frm_user_3'] = 'Вы не выбрали статус'; } */ } if ($frm['letters_doc_frm_user_1_db_id'] == $frm['letters_doc_frm_user_2_db_id'] && $frm['letters_doc_frm_user_1_db_id'] && $frm['letters_doc_frm_user_2_db_id'] && $frm['letters_doc_frm_user_1_db_id'] != 'null' && $frm['letters_doc_frm_user_2_db_id'] != 'null') { $errors['letters_doc_frm_user_1'] = 'Пользователи не могут быть одинаковыми'; $errors['letters_doc_frm_user_2'] = 'Пользователи не могут быть одинаковыми'; } if ($frm['letters_doc_frm_user_3_db_id'] && $frm['letters_doc_frm_user_3_db_id'] != 'null' && $frm['letters_doc_frm_user_2_db_id'] && $frm['letters_doc_frm_user_2_db_id'] != 'null' && $frm['letters_doc_frm_user_1_db_id'] && $frm['letters_doc_frm_user_1_db_id'] != 'null') { if ($frm['letters_doc_frm_user_1_db_id'] == $frm['letters_doc_frm_user_3_db_id']) { $errors['letters_doc_frm_user_1'] = 'Пользователи не могут быть одинаковыми'; $errors['letters_doc_frm_user_3'] = 'Пользователи не могут быть одинаковыми'; } if ($frm['letters_doc_frm_user_2_db_id'] == $frm['letters_doc_frm_user_3_db_id']) { $errors['letters_doc_frm_user_2'] = 'Пользователи не могут быть одинаковыми'; $errors['letters_doc_frm_user_3'] = 'Пользователи не могут быть одинаковыми'; } } if ($errors) { foreach ($errors as $key => $val) { $objResponse->script("\$('{$key}').set('title', '{$val}');"); $objResponse->script("\$('{$key}').getParent().addClass('b-combo__input_error');"); } } else { letters::updateDocument($id, $frm); $objResponse->script('letters.reload_data();'); $objResponse->script('letters.hideAddForm();'); } $objResponse->script('status_can_submit = true;'); } return $objResponse; }
/** * Создать письма в разделе /siteadmin/letters/ для БС архива * * @param type $ids * @param CFile $cfile */ public function addArchiveToLetters($ids, CFile $cfile) { require_once ABS_PATH . '/classes/reserves/ReservesTServiceOrderModel.php'; require_once ABS_PATH . '/classes/letters.php'; //require_once(ABS_PATH . '/classes/country.php'); require_once ABS_PATH . '/classes/city.php'; $users_reqv = ReservesTServiceOrderModel::model()->getReservesBankReqvByIds($ids); if (!$users_reqv) { return false; } $letters = new letters(); $letter_ids_exist = $this->getLetterIds($ids); $letter_ids_new = array(); //$countryObject = new country(); $cityObject = new city(); foreach ($users_reqv as $user_reqv) { $uid = $user_reqv['uid']; $src_id = $user_reqv['src_id']; $address = $user_reqv['address']; $country_id = null; $city_id = null; if ($res = parseAddress($address)) { $address = $res['address']; $country_id = $res['country_id']; $city_id = $res['city_id']; } if (!$city_id) { $city_name = trim(str_replace('г.', '', $user_reqv['city'])); $city_data = $cityObject->getByName($city_name); if ($city_data) { $country_id = $city_data['country_id']; $city_id = $city_data['id']; } } if (!$city_id) { $city_id = $user_reqv['city_id']; } if (!$country_id) { $country_id = $user_reqv['country_id']; } $name = htmlspecialchars_decode($user_reqv['name'], ENT_QUOTES); $letter_company_id = $letters->findCompanyId(array('fio' => $user_reqv['fio'], 'name' => $name, 'address' => $address, 'index' => $user_reqv['index'])); if (!$letter_company_id) { $letter_company_id = $letters->addCompany(array('frm_company_name' => $name, 'country_columns' => array($country_id, $city_id), 'frm_company_index' => $user_reqv['index'], 'frm_company_address' => $address, 'frm_company_fio' => $user_reqv['fio'], 'frm_company_type' => sbr_meta::$types_short[$user_reqv['type']])); } $frm = array('letters_doc_frm_title' => sprintf(ReservesTServiceOrderModel::NUM_FORMAT, $user_reqv['src_id']), 'letters_doc_frm_user_1_db_id' => 4, 'letters_doc_frm_user_2_db_id' => $letter_company_id, 'letters_doc_frm_delivery_db_id' => 1, 'letters_doc_frm_user2_status_data' => 11, 'letters_doc_frm_user_1_section' => true, 'letters_doc_frm_user_2_section' => true, 'letters_doc_frm_group' => sprintf(self::LETTER_GROUP_TXT, $cfile->getOriginalName()), 'letters_doc_frm_comment' => sprintf(self::LETTER_COMMENT, $cfile->getUrl())); if (isset($letter_ids_exist[$src_id])) { $letters->updateDocument($letter_ids_exist[$src_id], $frm); } else { $letter_ids_new[] = array('letter_id' => $letters->addDocument($frm), 'order_id' => $src_id); } } if (!empty($letter_ids_new)) { $this->addLetterIds($letter_ids_new); } return true; }