<?php

require_once $_SERVER['DOCUMENT_ROOT'] . '/xajax/letters.common.php';
$xajax->printJavascript('/xajax/');
?>


<script type="text/javascript">
var deliveryList = {
					<?php 
$deliveries = letters::getDeliveries();
$html = '';
$html .= "0:'Не выбрано',";
foreach ($deliveries as $delivery) {
    $html .= "{$delivery['id']}:'{$delivery['title']}',";
}
$html = preg_replace('/,$/', '', $html);
echo $html;
?>
					};
is_templates_mode = true;
</script>


<div class="b-layout__txt"><a class="b-layout__link" href="/siteadmin/letters/?mode=templates">Все шаблоны</a> &rarr;</div>

<?php 
if ($_GET['mode'] == 'edit_template') {
    ?>
<h2 class="b-layout__title">Редактирование шаблона: <?php 
    echo htmlspecialchars($template['title']);
Example #2
0
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . '/xajax/letters.common.php';
$xajax->printJavascript('/xajax/');
$sym = letters::getCompaniesSymbols();
?>

<a href="/siteadmin/letters/?mode=add" class="b-button b-button_flat b-button_flat_green b-button_float_right">Добавить сторону</a>

<h2 class="b-layout__title">Стороны</h2>


<div class="b-fon b-fon_width_full b-fon_padbot_10 last-gift-block b-layout__txt_padtop_20" id="letters_msg" <?php 
echo $msgstr ? '' : 'style="display: none;"';
?>
>
    <div class="b-fon__body b-fon__body_pad_10 b-fon__body_fontsize_13 b-fon__body_bg_f0ffdf">
    	<div class="b-fon__txt b-fon__txt_center b-username">
            <span class="b-fon__txt b-fon__txt_bold"><?php 
echo $msgstr;
?>
</span>
            <br/>
            <a class="b-fon__link b-fon__link_bordbot_dot_0f71c8 b-fon__link_fontsize_11" href="javascript:void(0)" onclick="$('letters_msg').setStyle('display', 'none'); return false;">Скрыть</a>
        </div> 
    </div>
</div>



<?php 
 /**
  * получить запись по умолчанию для списка пользователей и компаний.
  * */
 private function getUserOrCompanyRecord()
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php';
     if ($_POST['type'] == 'user') {
         $user = users::GetUserShortInfoFinInfo((int) $_POST['uid']);
         $user['record']['isContacts'] = 1;
         //т. к. компании должны идти вторыми по дизайну
         return json_encode($user);
     } else {
         //Здесь надо получить запись о компании use (int)$_POST["uid"]
         $company = letters::getCompany((int) $_POST['uid']);
         $i['uid'] = $company['id'];
         $i['uname'] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $company['name']);
         $i['address'] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', "{$company['country_title']}, {$company['city_title']}, {$company['index']}, {$company['address']}");
         $i['usurname'] = '';
         $i['login'] = '';
         $i['photo'] = '';
         $i['isContacts'] = 0;
         $i['isCompany'] = 1;
         $data = array('record' => $i, 'found' => 1, 'dav' => WDCPREFIX);
         return json_encode($data);
     }
 }
Example #4
0
 if ($letter['docs']) {
     $table_post_our = true;
     $t = preg_split('/-/', $key);
     if ($t[1] == 't') {
         $company = letters::getCompany($t[0]);
         if ($company['frm_type']) {
             $user_name = $company['frm_type'] . ' "' . $company['name'] . '"';
         } else {
             $user_name = $company['name'];
         }
         $address = "{$company['index']}, {$company['country_title']}, {$company['city_title']}, {$company['address']}";
         $phone = '';
         $fio = $company['fio'];
         array_push($envelopes, array('user' => $user_name, 'address' => $address));
     } else {
         $recipient = letters::getUserReqvs($t[0]);
         $user = new users();
         $user->GetUserByUID($t[0]);
         $address = ($recipient['form_type'] == 1 ? $recipient[1]['index'] : $recipient[2]['index']) . ', ' . ($recipient['form_type'] == 1 ? $recipient[1]['country'] : $recipient[2]['country']) . ', ' . ($recipient['form_type'] == 1 ? $recipient[1]['city'] : $recipient[2]['city']) . ', ' . ($recipient['form_type'] == 1 ? $recipient[1]['address'] : $recipient[2]['address']);
         $user_name = $recipient['form_type'] == 1 ? $recipient[1]['fio'] : $recipient[2]['full_name'];
         $phone = $recipient['form_type'] == 1 ? $recipient[1]['phone'] : $recipient[2]['phone'];
         $fio = $recipient['form_type'] == 1 ? $recipient[1]['fio'] : $recipient[2]['fio'];
         array_push($envelopes, array('user' => $recipient['form_type'] == 1 ? $recipient[1]['fio'] : $recipient[2]['full_name'], 'address' => $address));
     }
     $worksheet->setRow($n, 35);
     $worksheet->write($n, 0, $n - 2, $fmtMB);
     $worksheet->write($n, 1, $user_name, $fmtMB);
     $worksheet->write($n, 2, $address, $fmtMB);
     $worksheet->write($n, 3, $phone, $fmtMB);
     $worksheet->write($n, 4, $fio, $fmtMB);
     $worksheet->write($n, 5, '', $fmtMB);
Example #5
0
			<input id="letters_doc_frm_user1_status_data" name="letters_doc_frm_user1_status_data" type="hidden" value="0">
			<input id="letters_doc_frm_user2_status_data" name="letters_doc_frm_user2_status_data" type="hidden" value="0">
			<input id="letters_doc_frm_user3_status_data" name="letters_doc_frm_user3_status_data" type="hidden" value="0">
			<input id="letters_doc_frm_user1_status_date_data" name="letters_doc_frm_user1_status_date_data" type="hidden" value="">
			<input id="letters_doc_frm_user2_status_date_data" name="letters_doc_frm_user2_status_date_data" type="hidden" value="">
			<input id="letters_doc_frm_user3_status_date_data" name="letters_doc_frm_user3_status_date_data" type="hidden" value="">
			<div class="b-shadow__right">
				<div class="b-shadow__left">
					<div class="b-shadow__top">
						<div class="b-shadow__bottom">
							<div class="b-shadow__body b-shadow__body_bg_fff b-shadow__body_pad_15">
								<div id="l_form_10" class="b-shadow__title b-shadow__title_padbot_15">
									<select onchange="letters.selectTemplate(this.value);">
										<option value="0">Выберите шаблон</option>
										<?php 
$templates = letters::getTemplatesList();
if ($templates) {
    foreach ($templates as $template) {
        ?>
												<option value="<?php 
        echo $template['id'];
        ?>
"><?php 
        echo $template['title'] ? htmlspecialchars($template['title']) : '[без названия]';
        ?>
</option>
												<?php 
    }
}
?>
									</select>
Example #6
0
                        $old_value = $huser->uname . ' ' . $huser->usurname . ' [' . $huser->login . ']';
                    } else {
                        $company = letters::getCompany(intval($v1));
                        $old_value = $company['name'];
                    }
                } else {
                    $old_value = "Нет";
                }
                if ($ihistory['val_new']) {
                    list($v1, $v2) = preg_split("/-/", $ihistory['val_new']);
                    if (intval($v2) == 0) {
                        $huser = new users();
                        $huser->GetUserByUID(intval($v1));
                        $new_value = $huser->uname . ' ' . $huser->usurname . ' [' . $huser->login . ']';
                    } else {
                        $company = letters::getCompany(intval($v1));
                        $new_value = $company['name'];
                    }
                } else {
                    $new_value = "Нет";
                }
                break;
            default:
                $old_value = reformat(htmlspecialchars($ihistory['val_old']), 20);
                $new_value = reformat(htmlspecialchars($ihistory['val_new']), 20);
                break;
        }
        ?>
				<?php 
        echo $old_value;
        ?>
Example #7
0
/**
 * Сохранить шаблон.
 * 
 * @param string $data JSON данные
 *
 * @return object xajaxResponse
 */
function updateTemplate($frm_one, $frm_data)
{
    global $objLetters;
    $objResponse = new xajaxResponse();
    if (hasPermissions('letters') && hasPermissions('adm')) {
        $errors = array();
        $frm_data = iconv('CP1251', 'UTF-8', $frm_data);
        $frm_data = stripcslashes($frm_data);
        $frm_data = json_decode($frm_data, true);
        if ($frm_data) {
            foreach ($frm_data as $k => $v) {
                $frm_data[$k] = iconv('UTF-8', 'CP1251', $v);
            }
        }
        $n = 0;
        for ($n = 0; $n < $frm_data['count_docs']; ++$n) {
            $frm = array();
            foreach ($frm_data as $k => $v) {
                if (preg_match('/^' . $n . '-/', $k)) {
                    $key = preg_replace('/^' . $n . '-/', '', $k);
                    $frm[$key] = $v;
                }
            }
            $errors = array();
            $frm['letters_doc_frm_delivery_cost'] = preg_replace('/,/', '.', $frm['letters_doc_frm_delivery_cost']);
        }
        letters::updateTemplate($frm_data);
        letters::delTemplateDocs($frm_data['template_id']);
        for ($n = 0; $n < $frm_data['count_docs']; ++$n) {
            $frm = array();
            foreach ($frm_data as $k => $v) {
                if (preg_match('/^' . $n . '-/', $k)) {
                    $key = preg_replace('/^' . $n . '-/', '', $k);
                    $frm[$key] = $v;
                }
            }
            $frm['letters_doc_frm_template_id'] = $frm_data['template_id'];
            letters::addTemplateDoc($frm);
        }
        $objResponse->script('window.location = "/siteadmin/letters/?mode=templates&msg=eok";');
    }
    return $objResponse;
}
Example #8
0
        break;
    case 'insert':
        letters::addCompany($_POST);
        header('Location: /siteadmin/letters/?mode=company&msg=aok');
        exit;
        break;
    case 'edit':
        $company = letters::getCompany($_GET['id']);
        if (!$company) {
            header('Location: /siteadmin/letters/?mode=company');
            exit;
        }
        $inner_page = "inner_company_frm.php";
        break;
    case 'update':
        letters::updateCompany($_POST);
        header('Location: /siteadmin/letters/?mode=company&msg=eok');
        exit;
        break;
    default:
        $inner_page = "inner_index.php";
        break;
}
$page = $_GET['page'];
switch ($page) {
    case 'tab':
        $js_cmd = 'tab';
        $js_cmd_var1 = intval($_GET['tab']);
        break;
    case 'group':
        $js_cmd = 'group';
 /**
  * получить запись по умолчанию для списка пользователей и компаний
  * */
 private function getUserOrCompanyRecord()
 {
     require_once $_SERVER["DOCUMENT_ROOT"] . "/classes/letters.php";
     if ($_POST["type"] == "user") {
         $user = users::GetUserShortInfoFinInfo((int) $_POST["uid"]);
         $user["record"]["isContacts"] = 1;
         //т. к. компании должны идти вторыми по дизайну
         return json_encode($user);
     } else {
         //Здесь надо получить запись о компании use (int)$_POST["uid"]
         $company = letters::getCompany((int) $_POST["uid"]);
         $i["uid"] = $company['id'];
         $i["uname"] = iconv("WINDOWS-1251", "UTF-8//IGNORE", $company['name']);
         $i["address"] = iconv("WINDOWS-1251", "UTF-8//IGNORE", "{$company['country_title']}, {$company['city_title']}, {$company['index']}, {$company['address']}");
         $i["usurname"] = "";
         $i["login"] = "";
         $i['photo'] = "";
         $i["isContacts"] = 0;
         $i["isCompany"] = 1;
         $data = array("record" => $i, "found" => 1, "dav" => WDCPREFIX);
         return json_encode($data);
     }
 }
Example #10
0
							<input id="letters_filter_add_user" name="letters_filter_add_user" class="b-combo__input-text" name="" type="text" size="80" value="">
							<span class="b-combo__arrow-user"></span> 
						</div>
					</div>
				</div>
				<div class="b-form b-form_padbot_20">
					<div class="b-form__name b-form__name_width_70">Статусы</div>
					<div class="b-radio b-radio_layout_vertical b-radio_inline-block">
						<div class="b-radio__item b-radio__item_padbot_10">
							<input id="letters_filter_status_0" name="letters_filter_status" type="radio" value="" class="b-radio__input" onClick="letters.changeStatus('filter', 0);">
							<label for="letters_filter_status_0" class="b-radio__label  b-radio__label_fontsize_13">
								Любой
							</label>
						</div>
						<?php 
$statuses = letters::getStatuses();
foreach ($statuses as $status) {
    ?>
							<div class="b-radio__item b-radio__item_padbot_10">
								<input id="letters_filter_status_<?php 
    echo $status['id'];
    ?>
" name="letters_filter_status" type="radio" value="<?php 
    echo $status['id'];
    ?>
" class="b-radio__input" onClick="letters.changeStatus('filter', <?php 
    echo $status['id'];
    ?>
);">
								<label for="letters_filter_status_<?php 
    echo $status['id'];
 /**
  * Создать письма в разделе /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;
 }
Example #12
0
 /**
  * Запись истории изменения документа
  *
  * @param    integer    $id          ID документа
  * @param    array      $new_data    Новые данные документа
  */
 function saveHistory($id, $new_data)
 {
     global $DB;
     $old_data = letters::getDocument($id);
     $changed = array();
     if ($new_data) {
         foreach ($new_data as $key => $new_val) {
             if ($key == 'user_status_date_1' || $key == 'user_status_date_2' || $key == 'user_status_date_3') {
                 $old_data = preg_replace("/ .*\$/", "", $old_data);
             }
             if ($key == 'is_user_1_company' || $key == 'is_user_2_company' || $key == 'is_user_3_company') {
                 continue;
             }
             if ($key == 'user_1' || $key == 'user_2' || $key == 'user_3') {
                 $oldIsCompany = $old_data["is_{$key}_company"] === 't' ? 't' : 'f';
                 // избавляемся от null
                 $newIsCompany = $new_data["is_{$key}_company"] === 't' ? 't' : 'f';
                 if ($new_val != $old_data[$key] || ($new_val || $old_data[$key]) && $newIsCompany != $oldIsCompany) {
                     $changed[] = $key;
                 }
             } else {
                 if ($new_val != $old_data[$key]) {
                     $changed[] = $key;
                 }
             }
         }
     }
     if ($changed) {
         $qgroups = $DB->rows("SELECT * FROM letters_group");
         foreach ($qgroups as $v) {
             $groups[$v['id']] = $v['title'];
         }
         $qdeliveries = $DB->rows("SELECT * FROM letters_delivery");
         foreach ($qdeliveries as $v) {
             $deliveries[$v['id']] = $v['title'];
         }
         $qstatuses = $DB->rows("SELECT * FROM letters_status");
         foreach ($qstatuses as $v) {
             $statuses[$v['id']] = $v['title'];
         }
         $statuses[0] = 'Не выбрано';
         foreach ($changed as $change_type) {
             switch ($change_type) {
                 case 'title':
                     $type_field = 1;
                     $old_val = $old_data['title'];
                     $new_val = $new_data['title'];
                     break;
                 case 'group_id':
                     $type_field = 2;
                     $old_val = $groups[$old_data['group_id']];
                     $new_val = $groups[$new_data['group_id']];
                     break;
                 case 'user_1':
                     $type_field = 3;
                     $old_val = $old_data['user_1'] . '-' . ($old_data['is_user_1_company'] === 't' ? '1' : '0');
                     $new_val = $new_data['user_1'] . '-' . ($new_data['is_user_1_company'] === 't' ? '1' : '0');
                     break;
                 case 'user_2':
                     $type_field = 4;
                     $old_val = $old_data['user_2'] . '-' . ($old_data['is_user_2_company'] === 't' ? '1' : '0');
                     $new_val = $new_data['user_2'] . '-' . ($new_data['is_user_2_company'] === 't' ? '1' : '0');
                     break;
                 case 'user_3':
                     $type_field = 5;
                     $old_val = $old_data['user_3'] . '-' . ($old_data['is_user_3_company'] === 't' ? '1' : '0');
                     $new_val = $new_data['user_3'] . '-' . ($new_data['is_user_3_company'] === 't' ? '1' : '0');
                     break;
                 case 'user_status_1':
                 case 'user_status_date_1':
                     $type_field = 6;
                     $old_val = $statuses[$old_data['user_status_1']];
                     $new_val = $statuses[$new_data['user_status_1']];
                     if ($old_data['user_status_1'] == 2 || $old_data['user_status_1'] == 3) {
                         $old_val .= ' ' . dateFormat("d.m.Y", $old_data['user_status_date_1']);
                     }
                     if ($new_data['user_status_1'] == 2 || $new_data['user_status_1'] == 3) {
                         $new_val .= ' ' . dateFormat("d.m.Y", $new_data['user_status_date_1']);
                     }
                     break;
                 case 'user_status_2':
                 case 'user_status_date_2':
                     $type_field = 7;
                     $old_val = $statuses[$old_data['user_status_2']];
                     $new_val = $statuses[$new_data['user_status_2']];
                     if ($old_data['user_status_2'] == 2 || $old_data['user_status_2'] == 3) {
                         $old_val .= ' ' . dateFormat("d.m.Y", $old_data['user_status_date_2']);
                     }
                     if ($new_data['user_status_2'] == 2 || $new_data['user_status_2'] == 3) {
                         $new_val .= ' ' . dateFormat("d.m.Y", $new_data['user_status_date_2']);
                     }
                     break;
                 case 'user_status_3':
                 case 'user_status_date_3':
                     $type_field = 8;
                     $old_val = $statuses[$old_data['user_status_3']];
                     $new_val = $statuses[$new_data['user_status_3']];
                     if ($old_data['user_status_3'] == 2 || $old_data['user_status_3'] == 3) {
                         $old_val .= ' ' . dateFormat("d.m.Y", $old_data['user_status_date_3']);
                     }
                     if ($new_data['user_status_3'] == 2 || $new_data['user_status_3'] == 3) {
                         $new_val .= ' ' . dateFormat("d.m.Y", $new_data['user_status_date_3']);
                     }
                     break;
                 case 'delivery':
                     $type_field = 9;
                     $old_val = $deliveries[$old_data['delivery']];
                     $new_val = $deliveries[$new_data['delivery']];
                     break;
                 case 'delivery_cost':
                     $type_field = 10;
                     $old_val = $old_data['delivery_cost'];
                     $new_val = $new_data['delivery_cost'];
                     break;
                 case 'parent':
                     $type_field = 11;
                     if ($old_data['parent']) {
                         $old_doc = letters::getDocument($old_data['parent']);
                         $old_val = "ID{$old_doc['id']} {$old_doc['title']}";
                     } else {
                         $old_val = "Нет";
                     }
                     if ($new_data['parent']) {
                         $new_doc = letters::getDocument($new_data['parent']);
                         $new_val = "ID{$new_doc['id']} {$new_doc['title']}";
                     } else {
                         $new_val = "Нет";
                     }
                     break;
                 case 'comment':
                     $type_field = 12;
                     $old_val = $old_data['comment'];
                     $new_val = $new_data['comment'];
                     break;
                 default:
                     $type_field = null;
                     break;
             }
             if ($type_field) {
                 $sql = "INSERT INTO letters_history(\n                                                        doc_id, \n                                                        type_field, \n                                                        val_old, \n                                                        val_new, \n                                                        change_date, \n                                                        user_id\n                                                       ) VALUES (\n                                                        ?i,\n                                                        ?i,\n                                                        ?,\n                                                        ?,\n                                                        NOW(),\n                                                        ?i\n                                                       ); ";
                 $DB->query($sql, $id, $type_field, $old_val, $new_val, get_uid(false));
             }
         }
     }
 }