Wiki source code of Документ с заключением по выполненному ремонту и интеграцией с системой ИЦ
Last modified by Дмитрий Семёнов on 2023/12/20 10:57
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | (% class="row" %) | ||
| 2 | ((( | ||
| 3 | (% class="col-xs-12 col-sm-8" %) | ||
| 4 | ((( | ||
| 5 | (% class="box floatinginfobox" id="H41243243543443543D438435" %) | ||
| 6 | ((( | ||
| 7 | Задача, которая объединяет два связанных между собой функционала: автоматизация создания заявки на ремонт из системы информационного центра (Sales Force) и выдача клиенту документа с заключением о выполненных работах вместе с отремонтированным аппаратом или АНРП. | ||
| 8 | ))) | ||
| 9 | |||
| 10 | = 1. Автоматизация создания ремонта из системы информационного центра = | ||
| 11 | |||
| 12 | Необходимо в публичном API портала ([[http:~~/~~/cc.tpvrussia.ru:84/>>http://care.ellpa.ru:84/]]) предусмотреть новую функцию, предусматривающую создание ремонта из системы информационного центра. В качестве входной информации возможны следующие поля: | ||
| 13 | |||
| 14 | 1. Имя (текст, 50 символов) | ||
| 15 | 1. Фамилия (текст, 50 символов) | ||
| 16 | 1. Отчество (текст, 50 символов) | ||
| 17 | 1. Номер телефона (текст, 50 символов, обязательное) | ||
| 18 | 1. Адрес почты (текст, 50 символов) | ||
| 19 | 1. Страна (текст, 50 символов) | ||
| 20 | 1. Город (текст, 50 символов) | ||
| 21 | 1. Улица клиента (текст, 50 символов) | ||
| 22 | 1. Номер дома (текст, 50 символов) | ||
| 23 | 1. Квартира (текст, 50 символов) | ||
| 24 | 1. Бренд аппарата (текст, 50 символов) | ||
| 25 | 1. Модель (текст, 50 символов,**Обязательное поле**) | ||
| 26 | 1. Серийный номер (текст, 50 символов) | ||
| 27 | 1. Описание неисправности (текст, 255 символов) | ||
| 28 | 1. Номер заявки ИЦ (текст, 50 символов, обязательно) | ||
| 29 | 1. URL на анкету для прохождения опроса по завершению ремонта (текст, 50 символов). Ссылка для Philips имеет вид [[https:~~/~~/survey.medallia.com/?TPVConsumerCareQR&job_number=123&country=18&lang=en>>url:https://survey.medallia.com/?TPVConsumerCareQR&job_number=123&country=18&lang=en||style="background-color: rgb(255, 255, 255);"]]. Здесь **Job number** идентификатор обращения в системе ИЦ, **Сountry **- код страны (26 для РФ), **language** код языка анкеты (ru для русского). Для других брендов может иметь другой вид. Возможно в будущем реализуем свою систему опроса потребителей и этот URL будем генерировать самостоятельно. | ||
| 30 | |||
| 31 | Все поля необязательные, кроме номера телефона с проверкой по минимальной длине10 символов и номера заявки ИЦ. | ||
| 32 | |||
| 33 | При создании ремонта нужно подобрать переданные страну, город, бренд и модель. Если не получается - оставить пустым. Если эти четыре поля подобрать удалось, проверить количество АСЦ, авторизованных по этому бренду в городе. Если такой АСЦ ровно один - назначить ремонт на него. | ||
| 34 | |||
| 35 | В ответ на запрос нужно вернуть URL созданного ремонта чтобы ИЦ мог его открыть, проверить выбор города, бренда, АСЦ и модели и внести изменения вручную при необходимости. | ||
| 36 | |||
| 37 | К трекингу нужно добавить поле с URL анкеты, которая невидна никому кроме NSO TPV, которые её ещё и редактировать смогут (при острой необходимости). | ||
| 38 | |||
| 39 | = 2. Выдача клиенту документа с заключением о выполненных работах = | ||
| 40 | |||
| 41 | После завершения ремонта, клиенту должен быть выдан документ с заключением о выполненных работах (см. следующий раздел). Это требование нужно пока для нескольких АСЦ в РФ (Орбис и ИРП), поэтому считаю что нужна настройка, требующая от АСЦ это сделать: по аналогии с тарифами на транспортировку - добавить такой флаг в настроечные коэффициенты стран и возможность индивидуального пересмотра в карточке авторизации АСЦ. С возможностью импорта и экспорта. | ||
| 42 | |||
| 43 | Для тех АСЦ, у которых это требование обязательно - они должны будут хотя бы один раз скачать этот документ, иначе должна возникнуть ошибка. Проерка деляается по счётчику нажатия на кнопку печати документа сотрудником АСЦ, выполняющим ремонт. Предлагаю сделать через механизм правил проверки, которое проверят что число нажатий больше нуля.. | ||
| 44 | |||
| 45 | Хотелось бы чтобы этот документ отображался на видном месте, например, рядом с иконкой статуса "Ремонт завершён". Если это сложно, можем обсудить где лучше. | ||
| 46 | |||
| 47 | Наличие или отсутствие такого документа определяется есть ли настроенный шаблон такого документа для комбинации страна и бренд. Если такой шаблон есть, но в 1С нет требования его печати - то АСЦ могут его распечатать, но это опционально. | ||
| 48 | |||
| 49 | = 3. Механизм настройки шаблона документа = | ||
| 50 | |||
| 51 | == 3.1 Шаблон Philips == | ||
| 52 | |||
| 53 | По аналогии с механизмом настройки шаблонов АНРП и АТО нужна возможность их настройки (выбора) для каждого бренда и страны. Сейчас нужно сделать под требования Philips: шаблон простой и включает приветственный текст для клиента и QR-код со ссылкой на прохождение опроса из пункта 1.16. Шаблон документа есть [[по ссылке >>https://docs.google.com/document/d/1123rUYfhZqLb92w9R-h3B1jvKrOac5ZayHmv1ST4wEk/edit?usp=sharing]](только первая страница) | ||
| 54 | |||
| 55 | == 3.2 Шаблон Ellpa == | ||
| 56 | |||
| 57 | В дальнейшем планируем выдавать подобный документ всем клиентам Эллпа и Эллпа Трейд, но хотелось бы иметь возможность гибкой настройки шаблона для разных брендов. Во вложении пример макета. Пока вижу два варианта: | ||
| 58 | |||
| 59 | 1. Настройка по примеру шаблонов АНРП/АТО с указанием текста или "кода поля" для каждого поля и его названия (чтобы можно было самостоятельно добавлять форму на разных языках) | ||
| 60 | 1. Сделать шаблон по аналогии как давноо делали генерацию договоров по шаблону в RTF, если не ошибаюсь. | ||
| 61 | |||
| 62 | = 4. API desdcription = | ||
| 63 | |||
| 64 | |||
| 65 | List of available API functions are listed [[here>>url:http://care.ellpa.ru:84/TrackingExchangeSoap.asmx?wsdl]] (functions list is in Russian since till now only local service centers have been using it). And there is [[WSDL scheme>>url:http://care.ellpa.ru:84/TrackingExchangeSoap.asmx?wsdl]] as well. To create claim by call center~,~, need two main functions listed below. | ||
| 66 | |||
| 67 | == 4.1. //GetTicket// == | ||
| 68 | |||
| 69 | Method returns binary ticket to be used for authentication | ||
| 70 | |||
| 71 | === Input parameters === | ||
| 72 | |||
| 73 | |||
| 74 | 1. Login (string) | ||
| 75 | 1. Password (string) | ||
| 76 | |||
| 77 | === Output parameters === | ||
| 78 | |||
| 79 | 1. Ticket (string) | ||
| 80 | 1. Version (string) | ||
| 81 | |||
| 82 | == 4.2. API method //CreateTrackingCallCentr// == | ||
| 83 | |||
| 84 | === Input parameters: === | ||
| 85 | |||
| 86 | |Name|(% style="width:116px" %)Тype|(% style="width:60px" %)Mandatory.|Parameter description | ||
| 87 | |ticket|(% style="width:116px" %)**string**|(% style="width:60px" %)Yes|Authentication session key | ||
| 88 | |record|(% style="width:116px" %)**record**|(% style="width:60px" %)Yes|Structure with information to create order | ||
| 89 | |(% colspan="4" %)//**Record **//structure | ||
| 90 | |Model|(% style="width:116px" %)**string (50)**|(% style="width:60px" %)Yes|String with model CTN (e.g. //49PUS7101/60//) | ||
| 91 | |OrderNumBrand|(% style="width:116px" %)**string (50)**|(% style="width:60px" %)Yes|CRM+ claim identifer | ||
| 92 | |SerialNumb|(% style="width:116px" %)**string (50)**|(% style="width:60px" %)No|Serial number | ||
| 93 | |DesRepair|(% style="width:116px" %)**string (3000)**|(% style="width:60px" %)No|Fault description | ||
| 94 | |RepairTypeUid|(% style="width:116px" %)**guid**|(% style="width:60px" %)No|((( | ||
| 95 | Repair type. Value is taken from method GetSpRepairTypes. It couldbe omitted, in that case used value for //"Client's IW repair"// with guid "//a2ecf1a0-f3db-4cb9-85b5-3caad9228edc//" | ||
| 96 | ))) | ||
| 97 | |BrandUid|(% style="width:116px" %)**guid**|(% style="width:60px" %)No|Brand GUID. Could be get from method [[GetBrands>>path:#_heading=h.1s4cna7gwqf1]]. For "Philips TV" it is "//ac8c0cf9-8f56-4349-9c2f-cfebdc60abad//" | ||
| 98 | |CountryServiceCenter|(% style="width:116px" %)**string (2)**|(% style="width:60px" %)No|Service center country in ALFA-2 notation. RU for Russia. If not found, then call center user countru would be iused. | ||
| 99 | |CityServiceCenter|(% style="width:116px" %)**string (255)**|(% style="width:60px" %)No|City of the service center to be assigned for repair. System will try to find city by country and it's name in Russian. If city was found, try to assign service center by brand. If it's unique in the city, then this ASC would be assigned. If not found, then service center remains empty and agent would need to manually select it. | ||
| 100 | |CName|(% style="width:116px" %)**string (255)**|(% style="width:60px" %)No|Client's first name | ||
| 101 | |CSurname|(% style="width:116px" %)**string (255)**|(% style="width:60px" %)No|Client's last name | ||
| 102 | |CPatronymic|(% style="width:116px" %)**string (255)**|(% style="width:60px" %)No|Client's middle name | ||
| 103 | |CCity|(% style="width:116px" %)**string (255)**|(% style="width:60px" %)No|City of the client (could be different from service center's name) | ||
| 104 | |CAddress|(% style="width:116px" %)**string (255)**|(% style="width:60px" %)No|Client's address | ||
| 105 | |CHouse|(% style="width:116px" %)**string (5)**|(% style="width:60px" %)No|House number | ||
| 106 | |CBuild|(% style="width:116px" %)**string (5)**|(% style="width:60px" %)No|Building number | ||
| 107 | |CFlat|(% style="width:116px" %)**string (5)**|(% style="width:60px" %)No|Flat number | ||
| 108 | |CMobTel|(% style="width:116px" %)**string (15)**|(% style="width:60px" %)No|Phone number (7xxxxxxxxxx) | ||
| 109 | |Cemail|(% style="width:116px" %)**string (255)**|(% style="width:60px" %)No|Client's e-mail | ||
| 110 | |UrlQuestionnaire|(% style="width:116px" %)**string**|(% style="width:60px" %)No|URL to NPS survey which would be provided to the client after it has been finished | ||
| 111 | |||
| 112 | === Output parameters:: === | ||
| 113 | |||
| 114 | |Name|Type|Description|Example | ||
| 115 | |TrackingUid|**guid**|Unique claim identifer. Could be used to update data by using method [[SaveTracking>>url:http://wiki.ellpa.ru/bin/view/Sandbox/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%20%D1%81%20%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%BF%D0%BE%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83%20%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%D1%83%20%D0%B8%20%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%B5%D0%B9%20%D1%81%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BE%D0%B9%20%D0%98%D0%A6/#_heading=h.l7e46hz5zu9z]].| | ||
| 116 | |SysNum|**string**|Tracking identifer|ET0123456 | ||
| 117 | |StatusName|**string**|Tracking status| | ||
| 118 | |StatusUid|**guid**|Tracking status GUID. Value could be obtained by using method [[GetStatuses>>url:http://wiki.ellpa.ru/bin/view/Sandbox/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%20%D1%81%20%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%BF%D0%BE%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83%20%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%D1%83%20%D0%B8%20%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%B5%D0%B9%20%D1%81%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BE%D0%B9%20%D0%98%D0%A6/#_heading=h.h5onyu1z1pfy]].| | ||
| 119 | |Result|**Added** or **Changed** or **NotFound** or **Error** or **Unknown**|((( | ||
| 120 | Operation result: | ||
| 121 | |||
| 122 | Added – claim added in the database | ||
| 123 | |||
| 124 | Changed – claim changed | ||
| 125 | |||
| 126 | NotFound – Claim no found by GUID | ||
| 127 | |||
| 128 | Error – Method fault | ||
| 129 | |||
| 130 | Unknown – Unknown error | ||
| 131 | )))|Added | ||
| 132 | |TrackingUri|**string**|URL to the claim which could be opened in browser| | ||
| 133 | |Errors|list of string|List of errors with error description| | ||
| 134 | |ValidationErrors| | | | ||
| 135 | |||
| 136 | === Validation errors === | ||
| 137 | |||
| 138 | |Name|Type|Description|Example | ||
| 139 | |ErrorCode|**string**|Error code| | ||
| 140 | |ErrorLevel|**int**|((( | ||
| 141 | Error level: | ||
| 142 | |||
| 143 | 1 – crytical | ||
| 144 | |||
| 145 | 3 – notification. | ||
| 146 | )))| | ||
| 147 | |Status|**string**|Claim status| | ||
| 148 | |Descriptilon|**string**|Error description | ||
| 149 | ))) | ||
| 150 | |||
| 151 | (% class="col-xs-12 col-sm-4" %) | ||
| 152 | ((( | ||
| 153 | {{box title="**Содержание**"}} | ||
| 154 | {{toc/}} | ||
| 155 | {{/box}} | ||
| 156 | ))) | ||
| 157 | ))) |