From 3bd8d46c2abb76f98901966a54946153d71787a8 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Tue, 22 Jan 2019 17:54:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=B0?= =?UTF-8?q?=20=D1=81=D0=BB=D0=BE=D0=B2=D0=B0=D1=80=D1=8F=20=D1=82=D0=B8?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B9,=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B7=D0=B1=D0=BE=D1=80=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=BD=D1=8B=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=BF=D0=BE=D0=BA=D1=83=D0=BF=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8F=20(=D0=BF=D0=BE=D1=87=D1=82=D0=B0,=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D1=84=D0=BE=D0=BD),=20=D1=80=D0=B0=D0=B7=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=20=D1=82=D0=B5=D0=BB=D0=B5=D1=84=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=B8=20=D0=BF=D0=BE=D1=87=D1=82=D1=8B=20=D0=BF=D0=BE=D0=BA?= =?UTF-8?q?=D1=83=D0=BF=D0=B0=D1=82=D0=B5=D0=BB=D1=8F=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D1=82=D1=8D=D0=B3=D0=B0=201008?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/parus_atol_v4_ffd1.05.js | 51 +++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/modules/parus_atol_v4_ffd1.05.js b/modules/parus_atol_v4_ffd1.05.js index d33d736..10e95ee 100644 --- a/modules/parus_atol_v4_ffd1.05.js +++ b/modules/parus_atol_v4_ffd1.05.js @@ -202,11 +202,13 @@ const paymensOperation = { sName: "Тип операции", vals: { "3_1": "sell", //Тэг 1000 = 3 (чек), тэг 1054 = 1 (приход) - "31_2": "sell_refund", //Тэг 1000 = 31 (коррекция), тэг 1054 = 2 (возврат прихода) - "31_1": "sell_correction", //Тэг 1000 = 31 (коррекция), тэг 1054 = 1 (приход) + "3_2": "sell_refund", //Тэг 1000 = 3 (чек), тэг 1054 = 2 (возврат прихода) "3_3": "buy", //Тэг 1000 = 3 (чек), тэг 1054 = 3 (расход) - "31_4": "buy_refund", //Тэг 1000 = 31 (коррекция), тэг 1054 = 4 (возврат расхода) - "31_3": "buy_correction" //Тэг 1000 = 31 (коррекция), тэг 1054 = 3 (расход) + "3_4": "buy_refund", //Тэг 1000 = 3 (чек), тэг 1054 = 4 (возврат расхода) + "31_1": "sell_correction", //Тэг 1000 = 31 (коррекция), тэг 1054 = 1 (приход) + "31_2": "sell_refund", //Тэг 1000 = 31 (коррекция), тэг 1054 = 2 (возврат прихода) + "31_3": "buy_correction", //Тэг 1000 = 31 (коррекция), тэг 1054 = 3 (расход) + "31_4": "buy_refund" //Тэг 1000 = 31 (коррекция), тэг 1054 = 4 (возврат расхода) } }; @@ -330,6 +332,41 @@ const strDDMMYYYYHHMISStoDate = sDate => { return res; }; +//Разбор строки с контактными данными покупателя +let parseClientContacts = (sContacts, sDelim) => { + //Считывание E-Mail (выбор одного из двух значений) + const getMail = (sVal1, sVal2) => { + //E-Mail там, где есть @ + if (sVal1 && sVal1.indexOf("@") != -1) return sVal1.trim(); + if (sVal2 && sVal2.indexOf("@") != -1) return sVal2.trim(); + //Нет вообще ничего нужного + return ""; + }; + //Считывание телефона (выбор одного из двух значений) + const getPhone = (sVal1, sVal2) => { + //Телефон там, где нет @ + if (sVal1 && sVal1.indexOf("@") == -1) return sVal1.trim(); + if (sVal2 && sVal2.indexOf("@") == -1) return sVal2.trim(); + //Нет вообще ничего нужного + return ""; + }; + //Результат работы + let res = { + sMail: "", + sPhone: "" + }; + //Прбуем разобрать + try { + //Разбиваем строку с учётом разделителя + const tmp = sContacts.split(sDelim, 2); + //Забираем нужные данные + res.sMail = getMail(tmp[0], tmp[1]); + res.sPhone = getPhone(tmp[0], tmp[1]); + } catch (e) {} + //Возвращаем результат + return res; +}; + //Получение списка оплат по чеку const getPayments = props => { //Список платежей @@ -488,14 +525,14 @@ const beforeRegBillSIR = async prms => { //Собираем тело запроса в JSON из XML-данных документа let reqBody = {}; if (getPropValueByCode(docProps, "1000") === SDOCTYPE_TAG100_CHECK) { - //Собираем чека + //Собираем чек reqBody = { timestamp: doc.SDDOC_DATE, external_id: doc.NRN, receipt: { client: { - email: getPropValueByCode(docProps, "1008"), - phone: "" + email: parseClientContacts(getPropValueByCode(docProps, "1008")).sMail, + phone: parseClientContacts(getPropValueByCode(docProps, "1008")).sPhone }, company: { email: getPropValueByCode(docProps, "1117"),