Расширение состава словаря типов операций, функция разбора контактных данных покупателя (почта, телефон), разбор телефона и почты покупателя из тэга 1008

This commit is contained in:
Mikhail Chechnev 2019-01-22 17:54:22 +03:00
parent 23481129d9
commit 3bd8d46c2a

View File

@ -202,11 +202,13 @@ const paymensOperation = {
sName: "Тип операции", sName: "Тип операции",
vals: { vals: {
"3_1": "sell", //Тэг 1000 = 3 (чек), тэг 1054 = 1 (приход) "3_1": "sell", //Тэг 1000 = 3 (чек), тэг 1054 = 1 (приход)
"31_2": "sell_refund", //Тэг 1000 = 31 (коррекция), тэг 1054 = 2 (возврат прихода) "3_2": "sell_refund", //Тэг 1000 = 3 (чек), тэг 1054 = 2 (возврат прихода)
"31_1": "sell_correction", //Тэг 1000 = 31 (коррекция), тэг 1054 = 1 (приход)
"3_3": "buy", //Тэг 1000 = 3 (чек), тэг 1054 = 3 (расход) "3_3": "buy", //Тэг 1000 = 3 (чек), тэг 1054 = 3 (расход)
"31_4": "buy_refund", //Тэг 1000 = 31 (коррекция), тэг 1054 = 4 (возврат расхода) "3_4": "buy_refund", //Тэг 1000 = 3 (чек), тэг 1054 = 4 (возврат расхода)
"31_3": "buy_correction" //Тэг 1000 = 31 (коррекция), тэг 1054 = 3 (расход) "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; 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 => { const getPayments = props => {
//Список платежей //Список платежей
@ -488,14 +525,14 @@ const beforeRegBillSIR = async prms => {
//Собираем тело запроса в JSON из XML-данных документа //Собираем тело запроса в JSON из XML-данных документа
let reqBody = {}; let reqBody = {};
if (getPropValueByCode(docProps, "1000") === SDOCTYPE_TAG100_CHECK) { if (getPropValueByCode(docProps, "1000") === SDOCTYPE_TAG100_CHECK) {
//Собираем чека //Собираем чек
reqBody = { reqBody = {
timestamp: doc.SDDOC_DATE, timestamp: doc.SDDOC_DATE,
external_id: doc.NRN, external_id: doc.NRN,
receipt: { receipt: {
client: { client: {
email: getPropValueByCode(docProps, "1008"), email: parseClientContacts(getPropValueByCode(docProps, "1008")).sMail,
phone: "" phone: parseClientContacts(getPropValueByCode(docProps, "1008")).sPhone
}, },
company: { company: {
email: getPropValueByCode(docProps, "1117"), email: getPropValueByCode(docProps, "1117"),