From e114231541e301303403a779ebb3258149fbb569 Mon Sep 17 00:00:00 2001 From: Fedor Date: Wed, 3 Dec 2025 16:04:25 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20cf=5F2624=20=D0=B8=D0=B7=20MySQL=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B5?= =?UTF-8?q?=20=D1=87=D0=B5=D1=80=D0=BD=D0=BE=D0=B2=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен сервис CrmMySQLService для подключения к MySQL БД vtiger CRM - Обновлён get_draft() для прямого SQL запроса к MySQL вместо webservice API - Получение cf_2624 и всех данных контакта из MySQL - Обновлена документация и SQL файлы для n8n - Добавлено логирование для отладки Преимущества: - Проще: один SQL запрос вместо цепочки HTTP запросов - Быстрее: прямой запрос к БД - Надёжнее: не зависит от webservice API - Актуальнее: всегда свежие данные из БД --- include/Webservices/CreateWebContact.php | 28 +- .../week1/399640_Ходатайство_по_делу_.pdf | Bin 0 -> 63798 bytes ..._заявление_потребителя_Селдушев____стр.pdf | Bin 0 -> 97134 bytes ...ACHQ9rG4E_gUknG71mZ5TEogEAAwIAA3kAAzYE.pdf | Bin 0 -> 123156 bytes test/LanguageManager/Workflow2 | 2 +- ticket_form/SESSION_LOG_2025-12-03.md | 132 +++++++++ ticket_form/backend/app/api/claims.py | 103 ++++++- ticket_form/backend/app/api/events.py | 34 ++- ticket_form/backend/app/config.py | 9 + ticket_form/backend/app/main.py | 8 + .../backend/app/services/crm_mysql_service.py | 117 ++++++++ ...END_GET_CONTACT_CF_2624_FROM_POSTGRESQL.md | 97 +++++++ .../docs/CF_2624_IMPLEMENTATION_SUMMARY.md | 135 +++++++++ .../docs/CF_2624_IN_OCR_STATUS_EVENT.md | 113 ++++++++ .../docs/CODE_CREATE_WEB_CONTACT_FINAL.js | 13 +- .../CREATE_WEB_CONTACT_RESPONSE_FORMAT.md | 56 ++++ .../docs/CRM_CONTACT_DATA_CONFIRMED_FIELD.md | 149 ++++++++++ .../FRONTEND_UPDATE_CONTACT_DATA_CONFIRMED.md | 217 ++++++++++++++ .../N8N_ADD_CF_2624_TO_OCR_STATUS_EVENT.md | 209 ++++++++++++++ .../N8N_CODE_CHECK_CONTACT_DATA_CONFIRMED.js | 44 +++ .../N8N_CODE_IN_JAVASCRIPT_КЛИЕНТПРАВ_FULL.js | 264 ++++++++++++++++++ .../N8N_CODE_SET_CONTACT_DATA_CONFIRMED.js | 51 ++++ .../docs/N8N_MYSQL_GET_CONTACT_DATA.md | 73 +++++ .../docs/N8N_SET_CF_2624_CONTACT_CONFIRMED.md | 62 ++++ .../docs/N8N_UPDATE_CF_2624_IN_RESPONSE.md | 146 ++++++++++ .../N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md | 135 +++++++++ .../N8N_WORKFLOW_ADD_POSTGRESQL_CONTACT.md | 99 +++++++ ..._WORKFLOW_UPDATE_CONTACT_DATA_CONFIRMED.md | 87 ++++++ .../components/form/StepClaimConfirmation.tsx | 8 +- .../form/generateConfirmationFormHTML.ts | 44 ++- ticket_form/frontend/src/pages/ClaimForm.tsx | 36 +++ 31 files changed, 2453 insertions(+), 18 deletions(-) create mode 100644 storage/2025/December/week1/399640_Ходатайство_по_делу_.pdf create mode 100644 storage/2025/December/week1/399643_1_заявление_потребителя_Селдушев____стр.pdf create mode 100644 storage/2025/December/week1/399706_AgACAgIAAxkBAAEBcgdpMCjdJMlJRSYETr2N6WW3gskgQAACHQ9rG4E_gUknG71mZ5TEogEAAwIAA3kAAzYE.pdf create mode 100644 ticket_form/SESSION_LOG_2025-12-03.md create mode 100644 ticket_form/backend/app/services/crm_mysql_service.py create mode 100644 ticket_form/docs/BACKEND_GET_CONTACT_CF_2624_FROM_POSTGRESQL.md create mode 100644 ticket_form/docs/CF_2624_IMPLEMENTATION_SUMMARY.md create mode 100644 ticket_form/docs/CF_2624_IN_OCR_STATUS_EVENT.md create mode 100644 ticket_form/docs/CREATE_WEB_CONTACT_RESPONSE_FORMAT.md create mode 100644 ticket_form/docs/CRM_CONTACT_DATA_CONFIRMED_FIELD.md create mode 100644 ticket_form/docs/FRONTEND_UPDATE_CONTACT_DATA_CONFIRMED.md create mode 100644 ticket_form/docs/N8N_ADD_CF_2624_TO_OCR_STATUS_EVENT.md create mode 100644 ticket_form/docs/N8N_CODE_CHECK_CONTACT_DATA_CONFIRMED.js create mode 100644 ticket_form/docs/N8N_CODE_IN_JAVASCRIPT_КЛИЕНТПРАВ_FULL.js create mode 100644 ticket_form/docs/N8N_CODE_SET_CONTACT_DATA_CONFIRMED.js create mode 100644 ticket_form/docs/N8N_MYSQL_GET_CONTACT_DATA.md create mode 100644 ticket_form/docs/N8N_SET_CF_2624_CONTACT_CONFIRMED.md create mode 100644 ticket_form/docs/N8N_UPDATE_CF_2624_IN_RESPONSE.md create mode 100644 ticket_form/docs/N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md create mode 100644 ticket_form/docs/N8N_WORKFLOW_ADD_POSTGRESQL_CONTACT.md create mode 100644 ticket_form/docs/N8N_WORKFLOW_UPDATE_CONTACT_DATA_CONFIRMED.md diff --git a/include/Webservices/CreateWebContact.php b/include/Webservices/CreateWebContact.php index 667e2855..a4aa24dc 100644 --- a/include/Webservices/CreateWebContact.php +++ b/include/Webservices/CreateWebContact.php @@ -22,7 +22,7 @@ vimport ('includes.runtime.LanguageHandler'); * @param string $firstname - имя (опционально) * @param string $lastname - фамилия (опционально) * @param string $email - email (опционально) - * @return int - ID контакта + * @return string - JSON строка с contact_id, is_new и cf_2624 (Данные подтверждены) */ function vtws_createwebcontact($mobile, $firstname = '', $lastname = '', $email = '', $user = false) { @@ -56,18 +56,29 @@ function vtws_createwebcontact($mobile, $firstname = '', $lastname = '', $email $isNew = false; // Флаг: создан ли контакт сейчас // Проверяем существование контакта по номеру телефона - $query = "select c.contactid + // ✅ Добавляем выборку поля cf_2624 (Данные подтверждены) + $query = "select c.contactid, cf.cf_2624 from vtiger_contactdetails c - left join vtiger_crmentity e on e.crmid = c.contactid + left join vtiger_crmentity e on e.crmid = c.contactid + left join vtiger_contactscf cf on cf.contactid = c.contactid where e.deleted = 0 and c.mobile = ? limit 1"; $result = $adb->pquery($query, array($mobile)); + $cf_2624_value = "0"; // По умолчанию "Нет" (данные не подтверждены) + if ($adb->num_rows($result) > 0) { // Контакт существует - ПРОСТО ВОЗВРАЩАЕМ ID (НЕ обновляем!) $output = $adb->query_result($result, 0, 'contactid'); $isNew = false; - $logstring = date('Y-m-d H:i:s').' ✅ Контакт найден с id '.$output.' (БЕЗ обновления)'.PHP_EOL; + + // ✅ Получаем значение поля cf_2624 (Данные подтверждены) + $cf_2624_value = $adb->query_result($result, 0, 'cf_2624'); + if (empty($cf_2624_value)) { + $cf_2624_value = "0"; // По умолчанию "Нет" + } + + $logstring = date('Y-m-d H:i:s').' ✅ Контакт найден с id '.$output.', cf_2624='.$cf_2624_value.' (БЕЗ обновления)'.PHP_EOL; file_put_contents('logs/CreateWebContact.log', $logstring, FILE_APPEND); } else { // Контакт НЕ существует - создаём новый @@ -92,6 +103,7 @@ function vtws_createwebcontact($mobile, $firstname = '', $lastname = '', $email 'mailingstreet' => '', // Адрес пустой 'cf_1849' => '', // Реквизиты пустые 'cf_1580' => '', // Код пустой + 'cf_2624' => '0', // ✅ Данные подтверждены = "Нет" (по умолчанию для новых контактов) 'assigned_user_id' => vtws_getWebserviceEntityId('Users', $current_user->id) ); @@ -102,7 +114,8 @@ function vtws_createwebcontact($mobile, $firstname = '', $lastname = '', $email $contact = vtws_create('Contacts', $params, $current_user); $output = substr($contact['id'], 3); $isNew = true; // Контакт только что создан! - $logstring = date('Y-m-d H:i:s').' ✅ Создан новый Web Контакт с id '.$output.PHP_EOL; + $cf_2624_value = "0"; // Новый контакт - данные не подтверждены + $logstring = date('Y-m-d H:i:s').' ✅ Создан новый Web Контакт с id '.$output.', cf_2624=0'.PHP_EOL; file_put_contents('logs/CreateWebContact.log', $logstring, FILE_APPEND); } catch (WebServiceException $ex) { $logstring = date('Y-m-d H:i:s').' ❌ Ошибка создания: '.$ex->getMessage().PHP_EOL; @@ -111,10 +124,11 @@ function vtws_createwebcontact($mobile, $firstname = '', $lastname = '', $email } } - // Возвращаем JSON с флагом is_new + // Возвращаем JSON с флагом is_new и значением cf_2624 $result = array( 'contact_id' => $output, - 'is_new' => $isNew + 'is_new' => $isNew, + 'cf_2624' => $cf_2624_value // ✅ "1" = данные подтверждены, "0" = не подтверждены ); $logstring = date('Y-m-d H:i:s').' Return: '.json_encode($result).PHP_EOL; diff --git a/storage/2025/December/week1/399640_Ходатайство_по_делу_.pdf b/storage/2025/December/week1/399640_Ходатайство_по_делу_.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2d976a352600d3a63eb5287c514b58c809f4b0b4 GIT binary patch literal 63798 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

u<*1QFK(4j%I6i$>N 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 literal 0 HcmV?d00001 diff --git a/storage/2025/December/week1/399643_1_заявление_потребителя_Селдушев____стр.pdf b/storage/2025/December/week1/399643_1_заявление_потребителя_Селдушев____стр.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b1abad4089185c91099558c7089a1a89ba14b542 GIT binary patch literal 97134 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 z zponnvEA_8IdEuvl7SDE4PDNPpIo}^?ebQ6-0YFznRH-Ek+&3lDWa{Pwds6r9k<&YC zB<0zvt=W$NwSYVE+0g}gBY8fB35{|2wNp{BfkHcXnEzvp2FG@ll~@{8n2Ddm`DXW? z5Lo1HR2ZpBjqiI9LztZ{yUMP2ihmit9P!Z@TSsF#I8(1g*$|F9_EST9{lKznw!xpn z1$Ck2tv2?n=$l~K%Rp&witzUn`goMU!bBN-6_TM<VYnS@8)+~yl!6z8TOe5THr_M+134n;NKl7Rg%$&A+1CECv_o9 z*u|6*ZU&2$2-LqH>6wke-+v-E*c+ho>oVP3MCBHEZ0zc;VxDvNI&7wSf1YoW5HUB8 zxS<<~NF|zPej^tIbsW2Fj42;4Lk(eX+)_`?L{YW-BX2X!bBzK?u-n;eq5&WLxAXg(L(3jRVMyXWg`(AhA@Md4I!@ znoEStOYJVb7w6t(G2uGGKjOA_P;9B9I=`OkiF=@1>6Q$rco3f2^V(PuTjp774!&=H z#O5U9sOFVqTEr0rd-j2Pv9bkkGUTBM(@(^d)i~Pmwr$4xcxLA@N38O(jrV#Wle(El zc;i0T%di=SUhsGzt;~lN2+YQY{c%m7uW_?8k7Gskm|lO^Kta(t-&5|JD?wbaKB8U0 z?>y4e-9+polO&8`sF7P*Gv9egGBBX?1*xOVbA!!ZePB`cqXMebFnHf?y~Ub7k$uSA z>!&!lX6 zm5OS(Gt6wwpFg%%vwUN;(s=4v;~*fMBeA=UKS1>#4#NAV4PFZ^8Y1t1sg>=k)1R)g zW7mIj({L(oRtjU3ixxn9ft?#?INt~E+yjGNJarzk3(0|;rHGt@0>@6ZBF7Q zca`YT-n3OFy@7t@^3f*PH{0^u&Jdq^OJ%8zi0u1BRvyCc!dbU)y0uUI>pg__lkJrj z=4-l400j?&CWN(#87(_BwwDl z260RK^Qo`)j1?}sD@}=i*tLt2;KWXcCd+Aa1~7}g5(XbVTB#*-l}x;Uo4|m>AtIee z0y@h8Dl!|`$jEJ-<$IU)WdNl<;k@0Y(XSn1b4R1ehCdkf-1Kjj#L@B=jR!eoa2b3Q zcE;FkG`Xm)7N);9!+kQBsfzTx2VH%56_l{UZE$hKM$NszUhQGuho!y0i_aNi19~>*q7;CG0-e&c3Q6?}XrzCq$N)Q*{HgU}; z@9Do*JUuD2UQ#&DC^!I%qS01e+r(q}-#Wd^Wn+bqG8SB*yO#m0j12tTnZ8_&;&08% ze8i6UoxeTsbSjsyR$^aDR__ zuXK-IA;L+{L)&yFdVX^LVzI08s(`SBe!k@d@JIH{_hhbWe2}ii*`2u;nSn8nOi#Br z-R}zg6#@ft4IC4)8es$1?c2504!7X0;GtkepbjD;{1n0#o)`JkaGXDJqA-qdOt2R= z4yFdahwaI@en>5&{#Naz{&c7}!4|id$3q)4d@v<^no=K&# z*)O0@*%FNfY`e1Qr&&)~6WM~c*z6h?i_)*THEp@9YriE#A(EijMwhTGu@K7(IVHl^ zhNTeguzGb%(f@xx&nueBY_VT!^>7_$}kzWoFkL_&>f# z6Sf>jU6u|H+ojghyrmYq{3r|DJ6QX7uU%KvYRNQctV$&nYw+h3$^5$P-5*$!wprQvE4 z8owBB!ukuoJQDXmze1-h&o7?vF0s?mKDDO;eFL=WAs;dT3@_SPg&Md;d+XDSJ$eN? z<7*lm?T6gSlthVGaz#m<^$*P@L~3~qslz+lXq@Nwj0}A$$Z|P{GXSeC#oR-sJdH(( zso{eC3~Un|)gH3m0>xX!Z+WTIG(3*%KeHR zztifz^qXdDnsHdzEzdC-^1;H$$#^qu`{V6J7`DoOjYjb1^OI&vuGPUqnClugtiW4! zztpQU*FkY>6XLcoCIO%%Y^P5fgPeC1oZq(z7Wz z+8deO3QN#iG z&V3TQY!6slI^PmJ55i`5Id>W@H&2)xRPy0WUNGv=^M)N4z#lgz{>ie?j(1qXUz$Hs zn1n2FhU3(69d4(1GJ~ix;+Z8+hLD_aUse*parlj3s!;dH!KF)qEt-hK*$YtF7`?Z4 zIE}hRpGi70;^jyN_o5v)_Egz89BCvo`?NZ+xA5|QW(Dt^Mzd#>oTC>%k&n^C#qNV@ zZ|O#6eLU>0eFeRz_cGFKA9v^K-1xUGuQD6$5Hn?mqWu=9!nD2i+JN#=O@TYW#5-GS zu3ssbqg&24ldRzVk(@Bu9E|E8OdYQ}X)m))W%woBgVy-dBGiZ!UwL&^PHX}+*s&8RD1M)Xlda@hDjJ`YMZb3jpDXX@UP-Vj115Y? zF72E3YVPrG1fop0$j#Wo3W~#~l*|))Y{fm`ub3C%eN5!H^gZGJ7&u)1F&ZO7DOLr= z?qoQ#Tw(p@m&XU1YzxU_0%~u*_LeFp5hb~w7H*}Gdu)#IT6r;6Y+mp1R^(>8mTa-yZO$*5~nd)V@muW-fGfTUWxJr z+*FkY{_ulshmHC%I9;E4u21c(Ev$_`pG@AUaN6jr$rqYAt_(B^S~kMf`no^tG>sjd zOaO}`h34jRM_`-?$s5gx)a55}#)See?)3@yw2fiwUIH`FRA1hzk9>PkAkCHl1j93-7~*4{y5Oo7Q7vG;qv7CgXif zi@ciEs&|lekd2($@ZYfVZ6qoVh@Dp~ndFK}C$A*_SW9gZ4b(7XgA)ApO}4gYaht;< z6;R(G{>x5JJXT(THlu#E`P*faw>Dbi%#O2Wnq_%LL?2ApLTP%t8sq08xWV;;w0;wW zc%#Zutuw0|e`e(L{vVMpWrgo+Mu~97rzO=0)G9e{tBM4gp`wlY*=7#Z0BRtphz7sn zw1>HBlWs^2Y_>XeHbPVO#?^znt@pdZizY7U%yk!`SVfz5lyq6U7OnOD!|p2hTq0js zgDf&+vGAvQ*hrawq3NcUWiqH$`r(ObL->4T=V@PuiC!FT+q8&&158V}0+eRdMlC+U zyl-xf&l;orfzY`5y`_RnMeBUbMZ9jVKD8MRMo@o3!WBNyJF$^1* z^QZ5GsMcBXNzP%P43xJ#`(|mTg((^npHaTteVqj{8?vt5DfPnJnW|!@964$Mq%s7t zw{UFN5GbMwYzVmUU5ma9r&`b%q310kdViCuh|CIOYuLe1dADn3hhT)@7GzMlH-7Bc|FML}8f7!d#VKr$j?b&shHcXJUb8sdy=Kl|L%o7~MFHFYuTpNGvE( zIWF<3dk9UOjrfNNo$Vi1q2*usvKhN_!}xfs!(0q7cvAd35)E{ZB{lmrM7o&sa# zAp{_n3T02e)V_=w?QpHbWmxSnkctgXT6o7k2t^W-#xEGGqLi(q9$=(Z>c>!1Q%Tx0 z#;&a%;Wd<&3QvtJm9np;Ly(qEU~$Wlx=Hy7P~}vhD57rt#jPL*8nSxVQ1$cB~5z)zKO6Am(>s<7~6JO zIYOLI$vqTXhsnMz5pu@nZUuS?l0lemgHq0J`q1bkooyJs#xH@mGC{aK(y$D{el`BGV?Mke5p@(j^e(bGsBFl?`NH=4lHC1?Y8KYeGdA znyV{uh)x1QFj{)UG>>ur$aCy=Z!NcQte#_D$r>W$Qc3%|QUxjg_4;-$vm;ad^=0^2 z(A!7$qs1d`rP%SS-Ze0Lt2?ed`c-@oH?q2T zjeqjd`634$8!x=w8y`Cv%6?%)&XXmcm9vdQ5v_bdO(8+UWA9q-xDC$(NCJoq_8<&? zP5|IYArm4dA&bQY{NDCsx9<|U0mihOZ+CbwOnN0OTaw&b!6lwbe)8CbmhwOwI6XH~ z=Uzw^In~7^Tag`%I@y?vGOOXwuv)^SwU+**rN2C@P{SeJhCsQBDS4_%Y6C~1RnyCd zKCrt4Bb83GP^Xy0Nf8r?FOnb0y5LG+Y7G4Ye->5>Ut}P73&$8U>sWYBF4?n$R?b0v|U6q%|n_2-uzUyjd>9NGa#XfCUpxwc2{8& zo}`j~qB(}0hqa&(W^;f%66v>+A-B0UDd+q6VEPGU`V;jZ6)*WldHEeS!74s+(@dyG z7U=mcxcQ9I<+7jDaE#hT=&_Wh5>=E93XN{cG0ZtBYLy0Lq)Zf8y#T2VF){^4QjDoG zgXB__S>&n-Dqp|2k*CIp4@vdp*97IWME09}w0H_}VEn3nzB=(_El{Y$ z6#4*C#RHLig(mb}p<;p~0+kLKSwSTdxl&TWz!$VsiXm2(F76&lG|1h^9C8Ai4Z|-u z1H=tMf!(bNQX;-WUtG}QC}5P)-lGU>^x%E@6alCGK%`>k{$RtER8ubEx>f52W^R?8|?Ic)%{u{|Qw6 zFaGAgPX+!vS)sgvmARdh@qe2N1ZyMbxzo!EK*7*;B(7zcVm=}Aadfo=l z3eO~>?_m6P2qte7M8$=L=|qh!^wpe{|MPKz+bX*`fN32`8xvbFulD!ae<7j&MIeDu zwSS8LgV^^UDiF-M{cltt7czSVC5};qy9L!z(gK9SO^Q2 z{l1x2xxw|{NWs5l;QYU&0>PBvTU&OXfAs<89NFI5z4Zqs`&hw*;ahr>qQ2$aZ{#4j zoa3$RZyhiV2tIz(AhW#@gKy`+WFZ$DxE?rvOYCn%W$X;936%yDylZd}Aoz>i>l@!9BfQ;O+Qt z`M=t~T?~vkvVdPy8FZFZk%K7jV2;S;6rE$Lb%u?^~2Oz-x8{+kFoSRO+xWmegCofCMv{Wp@tc76Z6@4cDKGmQeaa1v@LPJ*8G|+2 zoPW!}UA)Z$9J2qpR^KA|KSl`tz4>R{oGkyWIBu{?nj6gK{v8Dm5BMw>SOxrc&9@R3 z@aX^k!2u@i{&zO@f9IF~KDz!r6!!nKssA6bsed2k|BA)`b2jxq1=9c5o8ccc^Dj#K z-+9~opRlR_!Qu;kqcE_67cvX`U#&DJH+VJv%i{b04V!8JCR5)OzTl_qf5E2ygVg^U zHuXP2wR!#vLK57{!O`AW-x}UE<79m14EsGs|He2Bn!m5ummhvPpJXvj;Vl%4-|8FUElEULdZIrx$v@PMKeUC) zTG%T;{49~RbZ2|0N%fkU^O|Y|E6z-~iq0N$!C!g>?l$HGF<971Ka>Zf5FUQ_amvplJaVPt z<(a;K01@$Vq)cVHS$i~q`PehzhdrduSLfVtokM%|mc{x?m%P8)-j*ewl_PHyckU+7 z>8-4*x>wkHjd4A%PFE_g|Mvja|NA}pHeR58(I*}KPyV9#Z)k5BV;fUPvrjDG7bWNa zm9>`}{C55K*4{QaPYkgKLG76temKGp%}tW~+5~85Uqs$1lH5Wzr^s|8r5aHV#u#>w zkZ;7`3qwP{j};YF`S1}H5>o>O0KwGu5%t-P&b4ChuqB*C`Cd?Ug-w!M`)uX*(hb+6 zrKR=Itz%q6Ue#R`hh#f4iPS&r68`5;l+MS14=x@4dBt^$U-6SZb`X+ezypUS-9zm6 zbRJ>J$N?yGs>by@Gufl}K$gJXult>a%Vt$#L?Gc! z_O0s=+wlhZ;us+T^UeH`8N$Z?#NV$b4?du_zdvW&Udf8iII&MbqbKcS>!cqI1VgV& zPLS*nTy82`@?ogn7XdzG*TfTJQ1v%Lcl}TFKbh7Ed_C8reqe=r8!#!Ne(uF!ksiUi zTwKCcYQp~n)4dXFkj5RmV*Q%W(8*B6P|J|VkZWzVl+wU0cQ)x0Q5xu&<0LEiQCS1a~mwJG4WwE3`C(2Mj#9cG}zvY5!S81jTaG|lWT^9W569I zM5aI}K#v!>sQ|zW=>PfNk)s7h2dv^fr$(j7HA?VTQpA&zz@h?zTR2A>AskQxP6@|t0#MTW(qCgvy^iI}Ja4=F;|7L3h!H2u_m9;K3gr;ZW{nSkTY z5@*=w+2E-oQ~*K+lii8yzXzC$mrX3i`4Wj}oqr|p1$IvJ>gZQc1BhuClcWygBM{i>8voHF~eMsHcGlOQyaRQl(I5Pvy>B(pj zCHQct?moq!=L)fk@QwYM#xqIMUE+EZu-3g*#u2?(p^yF>c8zJDn zJ79NTF!aYM_<8YFR6GFiAzNGwU^96FR)+2zhhtR)m7V4E1+EWq2ry;Y2|F0>vQwvtSJpJ z;pdZmG!MujhP#O-`Aziu>BIG&geS8g^D_Bo6N8oGYc@L-YJMI_3A(G^k!!Ync{Z+* zpQirjzpUKRp4?$hrM0LGP!2wDY_=9xhZ0%kQ@G;u;n~@scMRVX@P8PnEGX)QTu0y? zfK>bt6y1|&2#a!l+u#1q{q{Fetm_9j|Au`?=5}j3J%sv8};!W3;NG{g-Jww-~qkw_&ZO$AC!NN#b+9B%bkQ!5+t6w|x7t ziAU44s6TnI8zplu{cKmTI?>td5cpX2KBPMk{Wgd?TqD;&(EfXr*FPky+zA1pd!^yT zA&{!X3YB5?C`2J!lDIl*I!jG;-$R(~_lHuWeOO!XGTp|#+AV=yFFnB#9_6&pN#(*N zW&K)n!4W;P37g(uF<@lf8aySHw z-@=!ZIzZ<(X7_53$cpHrxeEPCpc+iphmyskY42aze<`0p;8l3_K1*Ib8$wg!xA`Om z>JzjP;%VPcMpwsQOoKo{rK+Wph*yfxF=d7^8_h&MpD^I)QdXZxm@UtXpv(pJ`;a*s&^p4t(Qg=jwiQIP3sm|8e7Z5( ztUBO@34w2D%|zP{$S&1bHGdT)=-GkZ*)S6XDWdFByt|CEYm)yl_L-_!0E2iBmW2l3 zw4ZwL;2&)Z08K~u``_*r>2j6k^eSb+1v55$S(`Y^l%F`_vh9F+)aLfbUTJVUx{-9F zGheafyOkNz@|(+8ZVnlSt4G#AOfl-hJ7($&xzuJuLGj2U!U=RBz9&FIvU)5L(@tn+ zs=anZAnrM=Rp?qwcH_K?0s^FcFWrkPm+6EguEv0YJ5ozYpY(5@YJv)asPIL~sVL6` zl_@hEvldoJ$>#`D%(Y|EuAYkb=Wgb8jUD0kKYiF|-E){Y|F$3wRAosq#*ZQXiUd5j z2srQ6FNl`obG6@tS;~Ol3QShVJ?-DgtL9I)$)yqxW}GHzTp%3fs4&qyq~dKJ82??MV+(@`*Gg1)G+OQndaxiONaD9EG~*}rRltx7Uyr`#l4rZl0l+eJ+A@8f>lmyrjzN{>Mho>=(=nmsF*7%n?{^x#Jd>PB^ zVmiG`QD$nSqwiJSB{JrrlbvnrRkip`Z1ugiVSLDX%c+L39P5kMCkuQIA5F+oqGV`aj5 zKzY@jSDi4+nZE3$U)_}9DZ%w8G6Xbe;u&|eLCu&nImoZs4mB9-6%{tDv4;>o$luy& z*_=}NYBuuYLT;P!Vub{6MkWt=!$SPbkog8GN4@(e%`zGL>d6m&eYE4y&%%vcd>7CH zsOMh-$0H<6Z0A+A`Puju8*ja!ye4I9YpWP&h5+30O0xJgS95~R%!JH z{nJ-GhPC0WaXc?lEwZ;sb%e7xpC* zim)2aCeY1?ZykO>>z>phi|;6M1gm9K$P2f-i-J8;Cl~|rb1iGJ$@8{fk6lxFpe#3BkS)@-t$W(K z7j{b-nCH_~OD!O`HcFi~H4g3Q_*xnRd#D8Y8_%UbFVB;qFg?^g zln%LAbakC+(3RS~0tu?VP!vVhIv-a)0R59!GkC9;QoaIUZUuf6E!#gnAlg{Q$cI7S zx6QM@gM~8Z5D8$>Z&0DoL;^P5JJ24G5l_Iho%Gp)s52gCizdw_`9R%h-BseQ=&b=-YD)ePY{ez~3Q_^>PV zRGH_OrL~uzy}YL4>3p&|POl&TV!QFs7+!-YFUa%w8wGS|Qp7f16ra@(F{Qt=K;2C z_pCWj)BVYAATp2(Vdj?{2Cc2ILuc}m0k`Hq3r0NMiJGj>Lx%_C9*I9h6KkeLHC>OK z0Nc~nQ*4Cddw#)>d#>G7$J}RK)>0t$RwuHDFQL^z~yMlJWxX%Gm0r9Ayp)XgAl z9Ss$t+^SROgm!f>W(A2r_7OFph%Fk_t_(67&W75{c;$9oTYzG=dyKW!43YM;_Ww}5 z*N;`PzzV~LX=f&A@F)Rmb`*V;6#Z=(+81IApf&E`GxE*@Z-qn4bbRj~DWu6u?@}eM z{@zM|c^=lq>OqD$8}u>LBP*+nrh3EM<0TSSE%oF|n&$B|GpTB~{pP&gMcqs1^^mHf zamx{~PE@YvCPC)q?_HfNQ0IPx#epRXHCNC{H>t>+K=%>;bba-HU@As`e}N|i#JSbX z=RBJvSriSpV0wsjXvEm@bb3V&4;W^N&DyhnpYuBhI_WbXyJs_r}D;6AgenT96s0gG*_5D zdu#e7Te0$x)DSOqUenKi4d(HIAK>ZDEED=EoU#X8AH&qdFe!jd7we_bpCY1dx;==H zoe7znDmn-nYAo%M9Z%QPov5nxw&IB5*Lw=A+j7-@YQRk8K^4wBTe)N5$LF}Hue(|) zD;gyLP@nEn5U+RrE`8nei#WS%8=FHcZz#vwgHhUUPt@7As_y)E@7Hw(D67vAP3JCb=YV)%WUgME>Wd)@`ekiHON3fVQKaDcuRFw z?)wlT?wB7;8DIKed5^7l_@bQoU{OiJUkxOVzMr=v5&Lal z1z*Z$c>H(?xZ$PX{xmWU2j!YF$20d4C!8S78&F^U&A|safp8a)oVirV=SUb~hBma= z;Sz~$xIA(a)>P4+Cd)(}5=P>3*_L}?dL8bJSb>d+Cg zZ4*A&f)1u;5Xsff=WA>BfwcPmyV>XI2IL28Yx#cD`ej(6A6uuL&yWo&Q`RbT4L$+& z*6mWTCcCZ*3T+A~$TdIDaF@3niFLZ}Z|4qroh(j7oqHbQk93q_Q~f$!Q+SKF^q-)A zIKfxtI$7<6E_LSm88NL4-`~I!$=)bYrlFg?Tc9zi-|SW~6|W!d%km|FhTx1=C8mf>^o@d_%y>HLX8S;mye z04I*5A5Dm zd?fCg%-`7{+eH5?m=M|x`b-7vbCl`tzI=YqQym91PbOTkqs73jl3W4RJF{!n{10n@0|z{k0Ri5zDN$YS;N3} zqvpN~P`}*(wRn0Jmzu7VtwI8xQzJHX;BGgRC5l8#etr_UAUQfg8DXJ1%hIhe|EkLN z+>i=0t7Wg&AJNg!0k{n=o*g{2egT@rk-7cyEy&&CU$gs9)HJg+P6s_xU zoe9NM;}6deI@Mu#Qb;armSn{k&j!gyU93H$gK8%f<6D+Ne^C^7jz-|we z6(H$AuxWm+bP6EzoV5xK=Vy1^hh-AmSiccDvWrgEZDCckbyYIpBD2&AvI7lHp>buizr2|MOvI8%9I*2tH^WnSx6n|*9X z4O-tZvHB$MJx=`*+&$W-Lj)B)M9-x|5boaISdU2YCBJn>uyV!y72iSQpOd1hY10rYM*WJF!=mNhpOO<=AtV>QJr2s&V0^r zT3{%B*N8+s=aF_0)S7t|XuYxZD9cq___eJn-?OCRrDd1lw;LlLWR&#D_U1~ToIJFK z3z0Rlq)%Z@S!&dooef6#E&g7ynv!Ao#I$(6Bn7^m&;ia*Z1#)t_R1R=(gt z>vf#qa^T#Wcc0nPTx&zf2Vez-%wcnft1&$9mK+`250)iuqHEazY4*6RSd-+qyXRah zK0GwkPEQYLEPT;T#Hw0Vf{ROn;!*^Os*|Blo` zx_2X#SA2-IA_}AB*r$|Zl%=FI9vxYeaMfo7sK(S})W?^4}K$w5MEs z3TW)cBNnfv))^mq7&Ub*n=kpbj897ytLJJ)uDkiU?R6`2^Br&HtwlQzkTWhvANnPm zA6!?WWPcG*VfoY`$TK~)7XZuv{=VslN0FB!gShZO z|AVtw;(e5d`MqUK%S!Rxn!2f5hot0cOzYDPth;N3O=WJ??pb!8%$lJ2@1#91AY!U@vs>Zg1&VrlE}4=J%3MDil|9mqsc_+>dk;(zt?mZiv zpEkH~o>Fd<5_=1wgt2|<>}%O$wktLZmPtg; zRnqjl;#w!zcK&`qzx2@xl886?Q>o{=1ph-36E(p{+^@z`L(>Pr(xhFd={5M@PkSIH#e>j1ZCep*vy<-YAb4YdcTF_x4~^076qL-RU-A60;`%sCqVLjos;HC0@Gf zHUZ#XPBXF~B2G9W-L8r8gPpNx{hRJ0M_cO3>gnR##Z>qMr;OB;~zE0kAB!)cp71Ly>zH$Tf6gpl1vNj+L@u9r>mz|83xTmsWc+)Y`Vt_yf zujdnhfDW<$SxbIOmpfD-^ffA`|5AL+q4+56B)9AOyLUy!^9FC)5kyA;%i&^WdP6&D zWG*(c*KYX(fm)H(oG2dhQR@_*HB=F1kGc7gNK@3_oF*a4TuGbr7heJvP3&m@g|X&h zM94FO=&j8Sbgc0Pb`OJ0SkFEhudWv&R<(6Bw7hqO1|c7~{9RDTt~S|nrtF5NelVZMhKY+d!bM8+A)0bcCo(E;URRRcD2T4t@>CMfqlBfa8HnJasV3JX&~h@fpNP&C z7g#@iWwZRJTiJCS-JEDQ~>dBm7=nDx-Wzr*!ok;AG2^-23L4K ze{c)n9u@Sw4i*res%@CEMyc*ULtiF@JkJ6+Cx7tW69Ph`^r^j>&3vB+B#&#S0@Yq3Gh#Jui&;j5?g zBRtpzyW`l4pt8VL=_{7tI~}sQq)KX;!zC_D$9~_ON0i8B+ip@zB^IS?I?d^)p+oxb zmN8Ow1Z#Fh4in~gSV^BZnlsDIwBE<}pw&d&GZN<^fN=fQa<5OA{A{cS#ONe4>6Wjl z>B@Hq*#e7`%@F18@SQqho0OGBvmD}>AKY4EkFE`IEd8rjtwzVJU<4RhZf}9n@E%bd zYZ7NS*>@EDT;Jq(BRr80jOj*;X1n_R!co?@7+)q;4*@_bp3Oz#gihP;TW=RDb+*h} zhv6}ut~L2Pm@mgJ$f&C}!!G(&PKKschQ*MKTzd%57cPWL9HaLO>^PEJ=Lpyh2tR9) z&bem~CI9#lITdc@9>#}~&Jr!nY(AA6&)H$RXdwbZsw*Ep_G2}fRo63U7ddE#`_0lP zCRs9>Be*pPR+u+825GuM#3cJgaRR%Wa5E}7O?$2#2?r#i8aaq8 zZBQQ?*=rRb9{ZWUtBm(Aqu9;u-Z-oibSt6JX?$A^g`*T31*ReFho)1CyGL3?U9>@Y zuxx-*7vOgCDt|*AM5_ncOkL$pm9_N*aI79vci+~t6I=3owlzaH*0I}?GwID&k_s`7 zwD4H0toN61B&BJg5G#k&LnP`j&{0)7`l&-Jc&WVexxgJMB_~FyOC#8IOWKKt0z}`t z3>k>}?W1v%{dRj7H(T`E03mC~j-#T$7?^%p&mOd8HqZR<@$#KG!Xcv_L^NSTc+nW} zC6{D{c`9Lz+2mCrLXSnJQCZ!Wf>hh{I6;Tm{U*N1ooDZ2d)in2Xwho~W;q1I6=0910Xx1c)ExLk#fq?Lg)4qp%VvqoEQt4}v@Nxio=|AJ)RTPuo?_Q5cIFnR#OG~jChVmFc*YF!o9T%IUob)HuOx3;y% z$Ap2?@SSp>M`%v*J5-9eA_ZR%Z)t!j77K1gf`G7A-}X)X_YBf;;ZE6osP$Khj8?W6 z?cI|Td1klN3>hMB3AWS}0s?ggsgJ;1_6vX%y4I4Q@x0?)eW%2#&~xA81`%Ij_r!Zl z1*8n(;D8MS)2@DFydW$#M1tWWv!s;3(>ZH#^On5{`UA*)*efxpNk7J2*846FcgyTA z2@y#@=j?E@Lew`*JQ00peu(&fBo&39`*0bk6-4%qLbz9`A*Ovh+aQBmm>zX6)Uxkn zQ%k9aU3!tUowWYY{fN}b!LiIS-SN?p>2P(X-tFp!*_9sTy1a!y{$<=~9B+IlYl%PF zwd3GkhpSpksIjbt!g=_Fvux?c=4{y8zQZ%zQ=w27RX0=@y!><y>=$aU0@h2u~926K0c9*_l7)8U&oYH0vb!JoN-lGOVTWXWG3X*obT z2wqaYmCz3~%&YLrkx!`+3Ssrm9ivLR8w$Zm$jUz@q9PQfcIgJOLRR$I@XN>&%F`yl zP?VHPP1Nc-i`h1$TVIlW>s6MkRw_(ql< zY}biU9&#_uj_sXRZXbXPZ9i>64}p##YB8{w8vSEMRd}7&kyXJiYgxrIfreo)@F4SJ z6JQ0?I=P?Sqd%YX@&kLowAwU;mqyz&i()Ueaaa8PpCbS0x~^JH#^ldz&bW0I1hQyF znm)0VOi6iU($h|ZXzFp|!Q(qd>MQ*pD#kQh+4Tn3(L0~XUVjqY0Zmtjms&rYAOK?B zhJT+iGnMbQR0evyxu3hc$%pr@N_py|AnLx$U_Pa4#Fu3_luVQpp@*3pd_EO2JSi4cwByO+uJH`(7aF|HX_ug5q1_> z_XK-)3*zMG6k>Jr)KTMHC2Qo`rW5^;)F81U;m<&CHj|yy+#Z-r2gMK=#?kl3>c+?n zc*i;qEd~Xj4Kp2t_Uyp!=YiN^0GG=(hbsP|w!sswhvq$fu~`H7A626Mx}VqI+|Q9| zqOm$)_p@QD+^(fV_)z9STZAFId6r7w^Ym^<9;q=ehf|H4X_dohj<^7srt4Vorh1JQ zDZ0eavFem0{*DgV{Txphg4g`!e%`dJ_C5x?pRuJh;&Xa>B9_HF353-Ju#dLv=SkT; z)X(jb=!_f|tO@bQYsItFdG}jR=U0dh!ji*HQEHR+MzrCvi(nWNL!(ieM?7&hlO8uw zSpg2C4J4UuGLfmr;k(IbL}#;dUytgzzu!yp1M0QK4NcgikDA59w>9sIYm;M5Rcbv% zONF#igLfLGXf091$j`lIj=e>Xoh9r<~`hLKXFVM@ROWiG1djwMage<%@2! zj-xY#6T4w=?&oGplyuIYbbXqq6Nw<5N)4GzlvMS>)4%R#I%(CPeLp^@qYN*n4T+j( z$P*0((e+cIR3e(OPRF{x&?B7EC;$&OBvG}i^(c$%TglI>)_YeLt!MIc)DJq!! z)5Dd=k4cl!&|S4KBf6iBP&Yr%&K`961)x<)mBlsO64*5aO_Na1GAA^T49-|ZK#&CJ;YYm#M@H%H zRR-@AYTk%hA;eEB@4i#4ZXV(X%5cB!g$&Dz0^u9ZV^{iwxB3aAC3HBb2+{`sok zNZJSy@xn*AzfT6XC3m)P=R(_(!|3H}SuI@@LZ=-|HorYE**h?Iza^X@u5Bu(Nvl*%D_tuSh+UCvrFj!SOLlR{ z{uMu0zKNfA@A&c+z*Ll1k>jLB$h8B{}PqqoPs z?ACfTveImETrAEvmx-EbZ@niaG}?{ZW_vC6%zIi|M&UGe`1Q!Ka)q(6+qoiYMsrp5 z+F6Cz;lRTPJN}Gnqg&Zr z9FU}`j^|e2)wIBrH%d3Ia6v)Wqbaafrj6&il&eZ9)4^N8)Y`fJbLN-j>z)!mb#lF* zbkeXYa^|(|)=lNitP)lwm=YJaaI_w%XFU1?H|5)Mrsfqp!`BwAC@qA2M$1f?;38tP z*^(675(0D`0_Zj0G`&2w%K2Q4J-$wQ$1EEQ?r#nqjW40ZF|`usKlMEdUob7A9BK|G zJ9kf4&utvu4?8O`HU3NdEd3^a_R%Yu>QDkA_q=l5CT=sb9sAhoNp_4_ocQR2^WzSs z5K*7ej<_ebN9eaa!uteVTQBovz^fq2^{A!Fv0&kLs8#w9?8YX4nR8Ayns#zIxM;=q z89fCzT2$pV2l;p;OYRCdn{!;wov{wS_JDQIVy!ZSmMfk1U=eh5tIUvI!!TIltV6jY zzhoTOj2z~B_&!Q)#u*LpdUO-DJ-qnTS?@xwSL2fZGzUJWJ0)~FhJ3#FkhrLt=X>C3 z@i|?MrK{C-6K{3|O1vQP31qsMzYGu(-@BaLX}6d>TJs6m7ZGM>FS*>2IhzqA|B)9Z z!~C~mD*!6tHwT^r}H>%d`if5uGOGnQP;o^7NhN4zi#_Nk!Rs;9i&sOGN%cC za7)tEYLq3Cr#I_*z>V|;bRvH(>Oh`Pjih(^&cwPD5e7f{ESC$|G<_XR?(n(`*V9&E z+_b757Vpz%OBx=H0n5fh?^BxVO2>L**uN5B&ho@TW6;O>+ZpsG6v4Fk1)1{7EW8XS;6JS8qPSqHNStqZ$+V zr0I}~iX&E<(;`s8ITm8(w?QeL8pM-UJp@?^i}cBYJ+*1O^zf@Mp7sAx*qH`3k!=Au zDsCu>-~u{mfJBL+*%JaNt3X275fCF9=tNlz5EcZ<(s&X-zT+PGC>Y%XaN5iWL+ z8XpIxJ2W{REwHb-?^4xgoqA4h0$Hb>b3y#f-z+5bhs0!`TbW;rLghFkY z=!KmAhMU#2sQXJ2Dc`!skOF^nx!to9a6Z7ea}Zd7plmG|Kd-4st6HH!g^ZhM? zyRd!MIm*dN{nJ<09xamf@%%xUTM!J__>46c*TOiFe0w6;@T9FKc!wO59BYS7|C zC4otDH~Z-{>Ca}2N-ULNvw?k|GS}!+IGa^MeB|jO3h~Uz`zbIxHwUV3ytfX1WG_`} z-q7YPIt0Tfq%yW$zL!%2`9OaU|4xxi^IB{StP3&C0vg zJNNZE7`FW&;)IACo+=$HCw%2unrRvo;dzs%W$I`PVj$iiPhb9!tm)AcSxCxt)n-y$ zO2CA2x2tPrw^Md@7sSoB&`F{Ew<{t^arDUz_ZyRvFFnjjEedD1*_Wl>N?jzDSG8{p z|Hx^snDxEzIp*S!@YzLAr!@ITCO>#zeP{Wxoafd{qZlTx=ZfTKXZQ75Upt=c@mW}( znh1o?3?O`Fr`^48Zc~jxndrG^D_qN7u=2^pOM_vjqx8AlC6fpyvf81ZiV8~-}$8*3xj9^6g z+>+J4eBKWn)-sXG8Y;eE>-&%JIp%xe^Y)fu;j{aY@L9}BY|V>ROsqJwIctyC1!X0W zIqx|W0I#zd46lGoro4G~UZ$}t3xI8a;hFhwj#z%Ro!P?qAR87wi_ZoZ#r=^;kZ)dd z5cl3y=B^4@MYvhagRfP0y{@&p3c-;jjqg?|GpFOhVb?mw?;u_HE~R^R{&+gqvrrVVl5V;qyHpetuVUEW12$`rPdu=9@0{ z`RrZ`#Lv5c_<7%L*Y0$$)~6kI3uvKM4)lcM11Gf2_voF8-N2OCKx$|9nI&ziL(je$wQ(DkzPc1X zr_HV5!Xk=t!-6b5V_*ZGfY^Zbu>bNFQ}L06^-c{Q%qeW9k2p;KifK+sAtZ=a?Ss3d zmS-RW9$^36hWx`FYBR$t$KdoT=+{K!pR=M`bs5g7N#vX-6y+;bOhp(wvpf6H9A%k?l4>vK&g^tMB-a(@b0bN;?Ey(6N0BthAcfw@L}__k}5L{UEN|EAR7LX zv<8>?DuAN0Ih+sa;O9tZ9<00LnpM23p44fsHv{jKR-bw6g<9Xx_>ITyOP1-blCs{E zg0i(Ze@><&Vfxde&7i?6lZAin?26XMu*Wc@14PwNHp-b_ah){J-9eA;`{iI@fb29}0- z7WsR1medx$j;_6(m6E>yr3k5KOb5*}vwh%Sg< zb|i|ZT!(HE73JEbcvru8e!KvS^yumbDD%I+`v?33*y7)F)g^+-LJ464G1lUn7PAfG zjd8}fV6YelW)+4^0J2vA{l$kzi=2@@Ehr=kolGH7$s{s~L|H+iE+dhafh><`=zk`B zH#Q=S9o{G48U`f+5a<%9ileuHsem1d!wwr|iC!@RkwX|VG>{V`YrqnN)(2xn2~knQ zA7rq1$S=739nlG3gS|uoU`j~XCPHAg5&dS8SRm8|v@k`NG}-{GO$W@i5IYj1lK~?? z^et925@Uf3FecJQW8fa)hfy&KAf{0<0I8$-RJM$d(8#Q-}u_O}462e|#%7&s=t zc8rcu>F9l-kQl(LjLIXELEV9|F)E#c@WMzNT?ds;114p3j73M!naZF7dK{GpB+Kae zQNg~98w2bMx<8r~9n>}$+aC>79zf5T#$t^-Lv#{#-17i2P?}(Df55>!?o5JX3d$Lb z&0~Op(a#rnq!DE=(nj|RoOr<7qhl<<=A&XjPK|yZ;0b{W0_Z#@C_XSY#$-{(ohv45 z{MxKY^l|I3BC*EJ&kB?qK#yTXrh+;GW5=~3TOp!yq>ZkZ1xg^G*T$k-fx-`?dGTUC zF!qXdk=LYOc(MR_M-Y9ZqvJuzj-fXuaj4?R(5n)7$l1==4Yr^d0*OUuL3|cV$R|No rWEMmf3YiQlpA`yXw=dWvNN^4ABuH>~2oAyB9lG%j)<}>92oT)ef(8qLMuP=+2myjL(72^> z_vw7^@4kEI&090;&CHrNf85iYVt3W9s=YtEPSx4F3SMf-D{}I3@zZ1R((}-RZJe+q zB(S)(tU>mk^nA!19V~7=zqj`E+;Y}l)-GTWmXs8hy_?-%#=ph?Ug6(({;7t=t?Fp! zNpDKe|F=55ITp7Z*xSvEp7%dh{af^ZtopZK4|^o*zdF{j_XK-;*ditQE0d9?jg!5t z7m}vuR&nK_7x|}oq&VDK9$;HtdoOyS|CXa}Z|7(&3-+Zq= zx3j+=WQYI!wspn&M_hR@mNwR3=>Em|FA)DW@V8BV-hYSnuNHrEOzF9iwxQ?Nv-kD- zt1;3fa!54)RZsX|Tu5a8!yT%_9E-4U1dX+s5l3JO0xU7Pp4AE7GV)9I?0+ z9bLTaJ&*?DmY36$x3>k`+5fegp`#sAL0&!)B#W}WBgg>>upr-GYr23vbl+Or+SBv? zRTPPrtfQBwmc54@*!3;g?XLkvu(k3^Pgxtdrw;=j|-B=@;`I~=K}yDX8^#{#Q(^%Ndo|y zA^-sL#sA2A@fiTX{|EpyPW?yTspdcWqL6lbA;%1|U4RC+4B)M`hxK0?@DzDJ0RjPl zlQIAR*BAgG{s{nJnf{v`|8SsrB7y#g`hPEZgaPCLs865%{Xu<-iiV1chK_}Sj=XR& zv7TY!;}Q_yjeMftZ86jU@cbTo7v z3=AAfLVQBX|LN=T2Y~R|lNdC>QxrzP6GD`ygeZ@_02(A_Po5&j;y**>AH9(hVmw3U zVIqrl2>>XlC{LfFprN8;pg%=N!F>WiL8^gHNQ6Pmz)SL+QAV3j$J+fFDU;`i#25U6 zvL2ti$pqx|Qzmt7YG3MwBqi5%ku%G$3Mm-adWRN5kCBa1{q63b>%ZZQ><$$T107k& zONatMd4l>B0}0u`ghF}pl#rLt9gTzlMsFFEvbYFkw6mTJJE&C*^ui#|8d?+>3=v-@h` z!389hMtid|-P63o_jYxHP7yYv2hEBjBZ=*PPuyR3A3JSa2a$iK!J62a5t+( z9ANh_$<`_kz2R@1*!lYOi|v}#hVdTq`#ElZa%&kT*1ol3#=&)eabv2x%? zK$v{+nZ35qx9K$L>M=|1M?lA)oA{f`Pmh4bSC4=*6Y8{9JB;XE;|pSK*-ICdgSmwNV)-vz{$Cyp%1i{VWAmAE z^#@nCFPj#~yw9<;pB{{M^5Hg6%y+DpSE^OSYJV4^`!#VG{PWekzV$uF!+GZ|n#q?U zwO5Cq7<Vad4_wDws0rM$nI)1iLuo%YIAq0GU_#jN?RDqu~T-gaeO z=!`cwQFz8_EPC~(w$zf!_|!k1NE9PB4-#Uy(s$Ch|_GDe2X!&kcS2R9x|z_XQumP2I$+ILGH+SG2qR5GOul=RaBM{4SC0W3XS$TOFNG9yG;CQAnQ0 z#*xYM{)Xq^fh?O+7}x2(@>FlrZSwWW(AZ_rB=6H8Dseunp4rK1m(1k>brT%dW+%14 zAIzIf;o~srBHp^;FLtjs{>0`49M8YcoiC1Q0zm?E4NQOej(iSy87Fgb%WIqyqC@7# zwB9#Af9LumI4Lu#PrqBwY5H}z6o^4IIgya~K;z)y>%k7kBq2K8*P9O?e`c&@^Sc(- zvXVi&884foi_dU>y#~n5otXa%yez9f_#eR?k&r~zy`At?`5tr$~8CM zZgKzQ0JyjPR9xDczqdkv_B#zlgZp+UIIjjm ziLXy^`i~BggJK!p$#MZAb%$=Kkx1hlo|cVk#LRrtNnQDofD5b@=wMdbs$ZdYm%sL@ z#rIBXo;9^TO((h|jQRX2JWVN0KBO&mX>=qM zvtzT@93J-w2&oTzDc?_;WLo-GWiec*iD`)Vcn!hQff!$|3ZWTu5b&6^-5MC}-!ytD zwX#p4w$TlbTQrx+F4tG&_^hCeAQh`=Q2sfN-bW=4Z55XunzzVH?i*qn67U#fP{$cp z;w5hBg+0BwOHmfUBWfeHe#Y#J(77P8`DR~F)p|q&@A31ZYiP(N8j2HV9E+>hlH;wAnN!H^2*w&V5C_udNcc@P^THu z)e{j%wghA@wNt3dQ%8f!vu@!Z6F^zq7{1Q9?UjN?V?QDyw%}QNW-hY_D}PkqT304! zwG!5YM*&M6rZ;sz4ZkaWEg3Nm`L?D+Vk@b<%OJ6Bnc!d18pyB-A|9% z*%!EC2Nem@#(ambmcD5Z-)-@pfw;{x=Pa*S3B6_sx}4Z`Olxtr`Js}bWQ6H%E28`d zY8tR>nTvdj+0a)4;W;P$+vGmIA0raGb@^QmJLjKcb?WX|V&>B*j-`i^ic$nbev5{R zhaWtsWZu4w_T#VvPWA=Y2pr4N}U%W4k0+AO)b-I=@6UFgu zJW=n=&9xiE;@o}HF3vY_Q55;9QwZeErqqN{Ka)pub!kfv-)(gX&2yipt=M#2KR|Ej zp1Mq7kaRjlWn%htPv7LKpUjdEVNp8>&z1H23P2DVPN zl@Kr2?fxGG1`SSOWg?M*`O(4Hypxn}zjJ=5D6!kHla@gxKgBgSho4ZT^>pTE;k?72 zR;k{*OJ!#@X??9n!C2Uwx{3xYcYv((vXEMwyT#W zKN`F9gNN%t<9IKs`q*Hg z32FLNa8Y^aRJ#=S!;agSiAgPVRAaJ_=}uNEfV^_Dg+O~`XZJc-;`LU(_maorEcD@Aq(^If%SBbfY}$@6{=WLqF#Y)%mP(7vlT>$ zNvzCNL7;Pcn+5!5LX25rCyJ97kT4)~?5*X@0Ttqwd-w($)4WPROSRuWNtc0bG_!zj z71`%4V9dGj~{v=faPgjTb1Ilj)SEMcHv!%uMO1#<(pt?k8IN{ z`XrH7H7oAbtJaPY{YStxYu_W_n4|M->=EGIbmRWH=e1)(4_e*#G2Y=5f@664h#iT@ zL6K2y%oOo>Ki_gj|86RqtkhGI@H?E$kMNaiu_1x}#`5wF-f|0vi243rJB{&vv}=Fq zmD0ZATCHFGx|9d!$Kl&X&z7!QKVcu9AKBl{!idXuSDE&;*cQ<72)jKK!{p9LeU1is z4fX;!4aAAoIG>H_xpeo?6KACK5C_~zGud0+Y__*9bs+MWAATO)vhbempKeb~xu)lI zYVtO@yXzKC7!`(#9cNOIPU3X2$JbOg`}T)0^s(u*3pRYNTTbFZLC!n7mP_JLl^u5)qP*Y+Lb#$|6?wDqNb8BK5o+2MQw6KvBv3jmSaXsYimxYEBsVO zRamE>rmS)c@l(XAmSTh&WJSJ+F*Bc%v?oRH_FU&cAl7rfUCR9Hq4bFTt3b5ShWHvq zWoF9rKSM_39OSLN!4Bs0chGW~;#%!i@zc2Dt{kI_RAH1s#}YD3owQVerNNceI}Q2z-__}KHA!{s;%W6L4M5}>*PcM6 z3yDhUiG8EFT@X^@63(2vOELE%cf)t_5kQkJ^G9O8N|7jc)E#11>ru~T9+BDmLI^Zx zI&)VojKT^g#6}aAxs(MBUIGV{KFPBQBl&u1!TKUjdGWiw5dX^L}bg(*K2a$6K10ak4{VrM1~B8s;rh5BV>5^qyHjL^5X>4fGV0WaMs zHOa|G!zI`FBbbKv35Pd4T7j zPGjVnrgT7)@#)3l4bFiDRjcFg_o3xp`}%_>awvtZI2;447+Ppe-STw0s^AX81%BXQu$Euh~*S zm&FB-PG{q{0eOU?zz{^I<6{rV!u6yl$aAwLkK(Wj~CIdi(L;c%W!nhR7urxT42Ih{^!#qjc3vDBkeLwBN)iwwF=C*OwHkeS&l+?H}WVQWReF22kVqZZZCOD4(MKQE$ z$tpK~$FiXH>80DYj&-snnande;gpfH1&KJ1rRd+wj*Gx=2lBELM-^ZEbF-3F*GHO6 z;blPLx|R;JsS-8xxTm&w1t~haw>ekd5(H4LNOf#O?8%3uS2an>5Le z(w&ep3CbGx1P69)~w!cC(C{n;u*ILldcey@$zHGq);e zY{pBmo@grG`sXimvXuD25@;8$AGIAiqO1iJefb4yHr!xwMBzeE)`ZB;nsA`;cFP{A zhFNm|p_9qJ(MU4l7}~nuv~>`Q*LzMaIa{X6Nlw$2BG_6(5;D%hj+p3~b)B93o~?(9 zH!e1+t&UnZ3t?bM?beQtgR^)r8@Qj{q7l#R8>XPw*f!#dx-XM03q#-|bvJ1ryQ#JN zUh1%}hZv#c=^XJX|00{1O@JPRG+ydBt|1gGUn-9I-G6f$hkX*D4o#*Im!6*w*g01v z^bVJe@;@KnIF~i1$c%2HqGP_p%b3RUj3Wh%}#+$lZ|S4lg{;8yfZ(d`xZIP z3c7@y|ACCY6jcaY%1|zHfCC=^*!=VZEPIWw+C@NO7iL@GRkiXQzn8^-L6JC_ z4kflb?DmZLCXjf?iBGFA1P9%!*L}xji;buBdZ(y0WM8ek$tIf9Hg_%R-+C}CvA~Wm z@N1;op)}3do{jOFmBtB_w-NCW-`5uOj0vwH>K%zq*&9>Npw4jJtO~4$XUYu?8m5np9C`$>1c?XgBNl|8TNP~yQHscPKMNoFCU^99ks^OJ zNQ$hl9uJ)l1Ix^}vxo|@zTl8!-eI#cIzA|sWosZ)o@X6Z|Bd7|QGi?T_={zUris0g z-GrG81knF09ix(gsk=miI+J^p66gfS(ytw&>n`%<$|&nq(!9u=JSy;;jyvfYaA|hy zoyNMLl*AX%DiL>rl}CVPD7czW1+O~YCn5wcZ$H^~fTP~U|U z)t6Ua7oAFoe~M&K&o3$iVWIm_{<_MYS@k*^(SCb|QR6a+%PO3z8R{IA%tn|8&^s$G zyJ-K|JQZP_MdbOh>>H3b`KCF#V|0hj*?Gc|kj`t)SqGjLL*VmaS%q

=F(Hu07}t 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 z%0D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'claim_id' = $2 + RETURNING id; + """ + await db.execute(update_query, json.dumps(cf_2624), claim_id) + logger.info(f"✅ Сохранён cf_2624={cf_2624} в черновик claim_id={claim_id}") + except Exception as e: + logger.warning(f"⚠️ Не удалось сохранить cf_2624 в черновик: {e}") + # Загружаем form_draft и documents из PostgreSQL query = """ SELECT c.id, c.payload->'form_draft' as form_draft, c.payload->'documents_required' as documents_required, - c.payload->'documents_meta' as documents_meta + c.payload->'documents_meta' as documents_meta, + c.payload->>'cf_2624' as cf_2624 FROM clpr_claims c - WHERE c.id::text = $1 + WHERE c.id::text = $1 OR c.payload->>'claim_id' = $1 LIMIT 1 """ @@ -241,6 +263,7 @@ async def stream_events(task_id: str): form_draft_raw = row.get('form_draft') documents_required_raw = row.get('documents_required') documents_meta_raw = row.get('documents_meta') + cf_2624_from_db = row.get('cf_2624') # ✅ Получаем cf_2624 из БД # Парсим если строка def parse_json_field(val): @@ -266,7 +289,10 @@ async def stream_events(task_id: str): 'documents_meta': documents_meta, } - logger.info(f"✅ Form draft loaded from PostgreSQL for claim_id={claim_id}, has_form_draft={form_draft is not None}") + # ✅ Добавляем cf_2624 в событие (из БД или из события) + actual_event['cf_2624'] = cf_2624_from_db or cf_2624 or "0" + + logger.info(f"✅ Form draft loaded from PostgreSQL for claim_id={claim_id}, has_form_draft={form_draft is not None}, cf_2624={actual_event.get('cf_2624')}") else: logger.warning(f"⚠️ Claim not found in PostgreSQL: claim_id={claim_id}") except Exception as e: diff --git a/ticket_form/backend/app/config.py b/ticket_form/backend/app/config.py index c9f2cd26..e75c9c0f 100644 --- a/ticket_form/backend/app/config.py +++ b/ticket_form/backend/app/config.py @@ -42,6 +42,15 @@ class Settings(BaseSettings): mysql_user: str = "root" mysql_password: str = "" + # ============================================ + # MYSQL CRM (vtiger CRM) + # ============================================ + mysql_crm_host: str = "localhost" + mysql_crm_port: int = 3306 + mysql_crm_db: str = "ci20465_72new" + mysql_crm_user: str = "ci20465_72new" + mysql_crm_password: str = "EcY979Rn" + @property def database_url(self) -> str: """Формирует URL для подключения к PostgreSQL""" diff --git a/ticket_form/backend/app/main.py b/ticket_form/backend/app/main.py index 1a51a5db..6bdf28d0 100644 --- a/ticket_form/backend/app/main.py +++ b/ticket_form/backend/app/main.py @@ -11,6 +11,7 @@ from .services.database import db from .services.redis_service import redis_service from .services.rabbitmq_service import rabbitmq_service from .services.policy_service import policy_service +from .services.crm_mysql_service import crm_mysql_service from .services.s3_service import s3_service from .api import sms, claims, policy, upload, draft, events, n8n_proxy, session, documents @@ -56,6 +57,12 @@ async def lifespan(app: FastAPI): except Exception as e: logger.warning(f"⚠️ MySQL Policy DB not available: {e}") + try: + # Подключаем MySQL CRM (vtiger) + await crm_mysql_service.connect() + except Exception as e: + logger.warning(f"⚠️ MySQL CRM DB not available: {e}") + try: # Подключаем S3 (для загрузки файлов) s3_service.connect() @@ -73,6 +80,7 @@ async def lifespan(app: FastAPI): await redis_service.disconnect() await rabbitmq_service.disconnect() await policy_service.close() + await crm_mysql_service.close() logger.info("👋 Ticket Form Intake Platform stopped") diff --git a/ticket_form/backend/app/services/crm_mysql_service.py b/ticket_form/backend/app/services/crm_mysql_service.py new file mode 100644 index 00000000..a6ba8e83 --- /dev/null +++ b/ticket_form/backend/app/services/crm_mysql_service.py @@ -0,0 +1,117 @@ +""" +CRM MySQL Service - Подключение к MySQL БД vtiger CRM +""" +import aiomysql +from typing import Optional, Dict, Any, List +from ..config import settings +import logging + +logger = logging.getLogger(__name__) + + +class CrmMySQLService: + """Сервис для работы с MySQL БД vtiger CRM""" + + def __init__(self): + self.pool: Optional[aiomysql.Pool] = None + + async def connect(self): + """Подключение к MySQL БД vtiger CRM""" + try: + self.pool = await aiomysql.create_pool( + host=settings.mysql_crm_host, + port=settings.mysql_crm_port, + user=settings.mysql_crm_user, + password=settings.mysql_crm_password, + db=settings.mysql_crm_db, + autocommit=True, + minsize=1, + maxsize=5 + ) + logger.info(f"✅ MySQL CRM DB connected: {settings.mysql_crm_host}:{settings.mysql_crm_port}/{settings.mysql_crm_db}") + except Exception as e: + logger.error(f"❌ MySQL CRM DB connection error: {e}") + raise + + async def fetch_one(self, query: str, *args) -> Optional[Dict[str, Any]]: + """ + Выполнить SQL запрос и вернуть одну запись + + Args: + query: SQL запрос с плейсхолдерами %s + *args: Параметры для запроса + + Returns: + Dict с данными или None если не найдено + """ + if not self.pool: + await self.connect() + + try: + async with self.pool.acquire() as conn: + async with conn.cursor(aiomysql.DictCursor) as cursor: + await cursor.execute(query, args) + result = await cursor.fetchone() + return dict(result) if result else None + except Exception as e: + logger.error(f"❌ Error executing query: {e}") + raise + + async def fetch_all(self, query: str, *args) -> List[Dict[str, Any]]: + """ + Выполнить SQL запрос и вернуть все записи + + Args: + query: SQL запрос с плейсхолдерами %s + *args: Параметры для запроса + + Returns: + List[Dict] с данными + """ + if not self.pool: + await self.connect() + + try: + async with self.pool.acquire() as conn: + async with conn.cursor(aiomysql.DictCursor) as cursor: + await cursor.execute(query, args) + results = await cursor.fetchall() + return [dict(row) for row in results] if results else [] + except Exception as e: + logger.error(f"❌ Error executing query: {e}") + raise + + async def execute(self, query: str, *args) -> int: + """ + Выполнить SQL запрос (INSERT, UPDATE, DELETE) + + Args: + query: SQL запрос с плейсхолдерами %s + *args: Параметры для запроса + + Returns: + Количество затронутых строк + """ + if not self.pool: + await self.connect() + + try: + async with self.pool.acquire() as conn: + async with conn.cursor() as cursor: + await cursor.execute(query, args) + return cursor.rowcount + except Exception as e: + logger.error(f"❌ Error executing query: {e}") + raise + + async def close(self): + """Закрыть пул подключений""" + if self.pool: + self.pool.close() + await self.pool.wait_closed() + logger.info("MySQL CRM DB pool closed") + + +# Глобальный экземпляр +crm_mysql_service = CrmMySQLService() + diff --git a/ticket_form/docs/BACKEND_GET_CONTACT_CF_2624_FROM_POSTGRESQL.md b/ticket_form/docs/BACKEND_GET_CONTACT_CF_2624_FROM_POSTGRESQL.md new file mode 100644 index 00000000..3a931b84 --- /dev/null +++ b/ticket_form/docs/BACKEND_GET_CONTACT_CF_2624_FROM_POSTGRESQL.md @@ -0,0 +1,97 @@ +# Получение cf_2624 из MySQL при загрузке черновика + +## ✅ Упрощённый подход + +Вместо передачи `cf_2624` через события Redis, просто делаем прямой SQL запрос к MySQL при загрузке черновика. + +## Где это происходит + +**Файл:** `ticket_form/backend/app/api/claims.py` +**Эндпоинт:** `GET /api/v1/claims/drafts/{claim_id}` +**Функция:** `get_draft()` + +## Как работает + +1. **Получаем `contact_id` из черновика:** + ```python + contact_id = payload.get('contact_id') + ``` + +2. **Делаем SQL запрос к MySQL:** + ```sql + SELECT + cd.contactid, + cd.firstname, + cd.lastname, + cd.email, + cd.mobile, + ccf.cf_2624 AS cf_2624 + FROM vtiger_contactdetails cd + LEFT JOIN vtiger_contactscf ccf ON ccf.contactid = cd.contactid + LEFT JOIN vtiger_crmentity ce ON ce.crmid = cd.contactid + WHERE cd.contactid = %s + AND ce.deleted = 0 + LIMIT 1 + ``` + +3. **Используем `cf_2624` для блокировки полей:** + ```python + contact_data_confirmed = (cf_2624 == "1") + contact_data_can_edit = not contact_data_confirmed + ``` + +## Преимущества + +1. ✅ **Проще** - один SQL запрос вместо цепочки событий +2. ✅ **Быстрее** - прямой запрос к БД +3. ✅ **Надёжнее** - не зависит от событий Redis +4. ✅ **Актуальнее** - всегда получаем свежие данные из БД + +## Что не нужно делать + +- ❌ Передавать `cf_2624` через события Redis +- ❌ Сохранять `cf_2624` в черновик при обработке событий +- ❌ Использовать webservice API для получения `cf_2624` + +## Проверка + +1. ✅ При загрузке черновика делается SQL запрос к PostgreSQL +2. ✅ Получаем `cf_2624` из таблицы `vtiger_contactscf` +3. ✅ Используем для блокировки полей на фронтенде + +--- + +## Реализация + +### MySQL Connection для CRM + +Создан отдельный сервис `CrmMySQLService` для подключения к MySQL БД vtiger CRM: + +**Файл:** `ticket_form/backend/app/services/crm_mysql_service.py` + +**Credentials (из config.php):** +- Host: `localhost` +- Port: `3306` +- Database: `ci20465_72new` +- User: `ci20465_72new` +- Password: `EcY979Rn` + +### Использование в коде + +```python +from ..services.crm_mysql_service import crm_mysql_service + +# SQL запрос с MySQL синтаксисом (%s вместо $1) +contact_query = """ +SELECT ... FROM vtiger_contactdetails cd +WHERE cd.contactid = %s +""" +contact_row = await crm_mysql_service.fetch_one(contact_query, contact_id) +``` + +### Отличия от PostgreSQL + +- Параметры: `%s` вместо `$1` +- Синтаксис JOIN: тот же +- LIMIT: тот же + diff --git a/ticket_form/docs/CF_2624_IMPLEMENTATION_SUMMARY.md b/ticket_form/docs/CF_2624_IMPLEMENTATION_SUMMARY.md new file mode 100644 index 00000000..b19ebf4d --- /dev/null +++ b/ticket_form/docs/CF_2624_IMPLEMENTATION_SUMMARY.md @@ -0,0 +1,135 @@ +# Реализация проверки cf_2624 при формировании заявления + +## ✅ Что сделано + +### 1. Backend API (`/drafts/{claim_id}`) +- ✅ Получает `cf_2624` из CRM через webservice `retrieve` +- ✅ Преобразует в `contact_data_confirmed` (boolean) +- ✅ Возвращает в ответе API вместе с `contact_data_from_crm` + +**Файл:** `ticket_form/backend/app/api/claims.py` (строки 459-539) + +### 2. Frontend - Загрузка черновика +- ✅ Получает `contact_data_confirmed` из ответа API +- ✅ Сохраняет в `formData` +- ✅ Передаёт в `claimPlanData` для `StepClaimConfirmation` + +**Файл:** `ticket_form/frontend/src/pages/ClaimForm.tsx` (строки 564-848) + +### 3. Frontend - Форма подтверждения +- ✅ `StepClaimConfirmation` получает `contact_data_confirmed` из `claimPlanData` +- ✅ Передаёт в `generateConfirmationFormHTML` +- ✅ Форма блокирует персональные данные если `contact_data_confirmed = true` + +**Файлы:** +- `ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx` (строки 89-96) +- `ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts` (строки 4, 293, 724-740, 840, 907-915) + +### 4. CreateWebContact +- ✅ Возвращает `cf_2624` в JSON ответе +- ✅ Для новых контактов: `cf_2624 = "0"` +- ✅ Для существующих: берёт значение из CRM + +**Файл:** `include/Webservices/CreateWebContact.php` + +--- + +## ⏳ Что нужно сделать + +### 1. Обновить n8n workflow `6mxRJ2LLHmQXyaDz` + +**После ноды `CreateWebContacКлиентправ`:** + +Добавить ноду `Code: Extract Contact Data Confirmed`: + +```javascript +// Парсим результат CreateWebContact +const rawResult = $node["CreateWebContacКлиентправ"].json.result; +const contactData = JSON.parse(rawResult); + +// Извлекаем cf_2624 (Данные подтверждены) +const cf_2624 = contactData.cf_2624 || "0"; +const contact_data_confirmed = cf_2624 === "1"; + +return { + contact_id: contactData.contact_id, + is_new_contact: contactData.is_new, + cf_2624: cf_2624, + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: !contact_data_confirmed +}; +``` + +**В ноде `Code in JavaScriptКлиентправ` (формирование ответа):** + +Добавить в return: + +```javascript +const contactStatus = $('Code: Extract Contact Data Confirmed').first().json; + +return { + // ... существующие поля ... + contact_data_confirmed: contactStatus.contact_data_confirmed || false, + contact_data_can_edit: contactStatus.contact_data_can_edit !== false, + cf_2624: contactStatus.cf_2624 || "0", + // ... остальные поля ... +}; +``` + +**См. подробности:** `ticket_form/docs/N8N_UPDATE_CF_2624_IN_RESPONSE.md` + +--- + +## 🔄 Логика работы + +### Сценарий 1: Загрузка черновика +1. Пользователь выбирает черновик +2. Frontend вызывает `/api/v1/claims/drafts/{claim_id}` +3. Backend получает `cf_2624` из CRM +4. Backend возвращает `contact_data_confirmed = (cf_2624 === "1")` +5. Frontend передаёт флаг в форму подтверждения +6. Форма блокирует поля если `contact_data_confirmed = true` + +### Сценарий 2: Новое заявление (через n8n) +1. Пользователь вводит телефон +2. n8n вызывает `CreateWebContact` +3. `CreateWebContact` возвращает `cf_2624` в ответе +4. n8n извлекает `cf_2624` и передаёт в ответе для фронтенда +5. Frontend получает `contact_data_confirmed` из ответа n8n +6. Форма блокирует поля если `contact_data_confirmed = true` + +--- + +## 📋 Какие поля блокируются + +Если `contact_data_confirmed = true`, блокируются следующие поля: +- ✅ Фамилия (`lastname`) +- ✅ Имя (`firstname`) +- ✅ Отчество (`secondname`, `middle_name`) +- ✅ ИНН (`inn`) +- ✅ Дата рождения (`birthday`) +- ✅ Место рождения (`birthplace`, `birth_place`) +- ✅ Адрес (`mailingstreet`, `address`) +- ✅ Email (`email`) + +**Телефон (`mobile`) всегда только для чтения** (не зависит от флага) + +--- + +## 🧪 Проверка + +1. ✅ Создать контакт в CRM → `cf_2624` должен быть "0" +2. ✅ Загрузить черновик → поля должны быть редактируемыми +3. ⏳ Установить `cf_2624 = "1"` в CRM +4. ⏳ Загрузить черновик → поля должны быть заблокированы +5. ⏳ Проверить предупреждение "⚠️ Данные подтверждены" в форме + +--- + +## 📝 Документация + +- `ticket_form/docs/CRM_CONTACT_DATA_CONFIRMED_FIELD.md` - Описание поля cf_2624 +- `ticket_form/docs/CREATE_WEB_CONTACT_RESPONSE_FORMAT.md` - Формат ответа CreateWebContact +- `ticket_form/docs/N8N_UPDATE_CF_2624_IN_RESPONSE.md` - Обновление n8n workflow +- `ticket_form/docs/CODE_CREATE_WEB_CONTACT_FINAL.js` - Код для n8n (обновлён) + diff --git a/ticket_form/docs/CF_2624_IN_OCR_STATUS_EVENT.md b/ticket_form/docs/CF_2624_IN_OCR_STATUS_EVENT.md new file mode 100644 index 00000000..f487aeac --- /dev/null +++ b/ticket_form/docs/CF_2624_IN_OCR_STATUS_EVENT.md @@ -0,0 +1,113 @@ +# Добавление cf_2624 в событие ocr_status ready + +## ✅ Да, правильно! + +Событие `ocr_status` с `status: "ready"` должно содержать поле `cf_2624` и сохраняться в черновик. + +## Формат события в Redis + +**Канал:** `ocr_events:sess_5fc7cdd1-a848-4e92-aed4-3ee4bfb19b4c` + +**Событие:** +```json +{ + "event_type": "ocr_status", + "status": "ready", + "claim_id": "ef853bac-f54b-46aa-adf8-f0c9c0cd76bc", + "message": "Заявление сформировано", + "timestamp": "2025-12-03T12:44:12.347Z", + "cf_2624": "0" +} +``` + +## Что происходит + +### 1. n8n workflow публикует событие + +После сохранения черновика (после `claimsave`) n8n публикует событие в Redis канал `ocr_events:{session_id}` с полем `cf_2624`. + +**Где добавить:** После ноды `claimsave`, перед публикацией в Redis. + +**См. подробности:** `ticket_form/docs/N8N_ADD_CF_2624_TO_OCR_STATUS_EVENT.md` + +--- + +### 2. Backend обрабатывает событие + +Backend получает событие из Redis и: +- ✅ Загружает `form_draft` из PostgreSQL +- ✅ **Сохраняет `cf_2624` в черновик** (в `payload.cf_2624`) +- ✅ Отправляет событие на фронтенд через SSE + +**Файл:** `ticket_form/backend/app/api/events.py` (строки 218-273) + +--- + +### 3. Сохранение в черновик + +`cf_2624` сохраняется в таблицу `clpr_claims` в поле `payload.cf_2624`: + +```sql +UPDATE clpr_claims +SET payload = jsonb_set( + COALESCE(payload, '{}'::jsonb), + '{cf_2624}', + '"0"'::jsonb -- или '"1"' +) +WHERE id::text = $1 OR payload->>'claim_id' = $1; +``` + +--- + +## Порядок работы + +1. **n8n workflow:** + - `CreateWebContacКлиентправ` → получает `cf_2624` из CRM + - `claimsave` → сохраняет черновик + - `Code: Prepare OCR Status Event` → формирует событие с `cf_2624` + - `HTTP Request` или `Redis Publish` → публикует в `ocr_events:{session_id}` + +2. **Backend:** + - Получает событие из Redis + - Сохраняет `cf_2624` в черновик + - Загружает `form_draft` из PostgreSQL + - Отправляет на фронтенд через SSE + +3. **Фронтенд:** + - Получает событие через SSE + - Использует `cf_2624` для блокировки полей + +--- + +## Проверка + +1. ✅ Событие публикуется в `ocr_events:{session_id}` с `cf_2624` +2. ✅ Backend сохраняет `cf_2624` в черновик (`payload.cf_2624`) +3. ✅ При загрузке черновика `cf_2624` доступен в `payload.cf_2624` + +--- + +## SQL для проверки + +```sql +-- Проверить, что cf_2624 сохранён в черновик +SELECT + id, + payload->>'claim_id' as claim_id, + payload->>'cf_2624' as cf_2624, + updated_at +FROM clpr_claims +WHERE payload->>'claim_id' = 'ef853bac-f54b-46aa-adf8-f0c9c0cd76bc' +ORDER BY updated_at DESC +LIMIT 1; +``` + +--- + +## Итого + +✅ **Да, правильно!** Событие `ocr_status` с `status: "ready"` должно содержать `cf_2624`, и это значение будет: +- Публиковаться в Redis канал `ocr_events:{session_id}` +- Сохраняться в черновик в `payload.cf_2624` +- Использоваться для блокировки полей на фронтенде + diff --git a/ticket_form/docs/CODE_CREATE_WEB_CONTACT_FINAL.js b/ticket_form/docs/CODE_CREATE_WEB_CONTACT_FINAL.js index b7c22a94..c536748d 100644 --- a/ticket_form/docs/CODE_CREATE_WEB_CONTACT_FINAL.js +++ b/ticket_form/docs/CODE_CREATE_WEB_CONTACT_FINAL.js @@ -1,7 +1,12 @@ // Парсим результат CreateWebContact const rawResult = $node["CreateWebContact"].json.result; -const contactData = JSON.parse(rawResult); // {"contact_id": "396625", "is_new": false} +const contactData = JSON.parse(rawResult); // {"contact_id": "396625", "is_new": false, "cf_2624": "1"} + +// ✅ Извлекаем cf_2624 (Данные подтверждены) +// "1" = данные подтверждены, "0" = не подтверждены +const cf_2624 = contactData.cf_2624 || "0"; +const contact_data_confirmed = cf_2624 === "1"; const phone = $('Edit Fields').first().json.phone; @@ -18,6 +23,8 @@ const sessionData = { contact_id: contactData.contact_id, // ← распарсенный ID из CreateWebContact phone: phone, is_new_contact: contactData.is_new, // ← флаг нового контакта + cf_2624: cf_2624, // ✅ Сохраняем cf_2624 в сессию + contact_data_confirmed: contact_data_confirmed, // ✅ Сохраняем флаг подтверждения status: "draft", current_step: 1, created_at: new Date().toISOString(), @@ -34,6 +41,10 @@ return { contact_id: contactData.contact_id, is_new_contact: contactData.is_new, phone: phone, + // ✅ Флаги подтверждения данных контакта (из cf_2624) + cf_2624: cf_2624, + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: !contact_data_confirmed, redis_key: `session:${session_id}`, // ✅ Используем session_id для ключа Redis redis_value: JSON.stringify(sessionData), ttl: 604800 diff --git a/ticket_form/docs/CREATE_WEB_CONTACT_RESPONSE_FORMAT.md b/ticket_form/docs/CREATE_WEB_CONTACT_RESPONSE_FORMAT.md new file mode 100644 index 00000000..227f081b --- /dev/null +++ b/ticket_form/docs/CREATE_WEB_CONTACT_RESPONSE_FORMAT.md @@ -0,0 +1,56 @@ +# Формат ответа CreateWebContact + +## Обновление: добавлено поле cf_2624 + +### Старый формат: +```json +{ + "contact_id": "396625", + "is_new": false +} +``` + +### Новый формат (с cf_2624): +```json +{ + "contact_id": "396625", + "is_new": false, + "cf_2624": "1" +} +``` + +## Описание полей: + +- **contact_id** (string) - ID контакта в CRM +- **is_new** (boolean) - `true` если контакт только что создан, `false` если найден существующий +- **cf_2624** (string) - "Данные подтверждены": + - `"1"` = "Да" (данные подтверждены) + - `"0"` = "Нет" (данные не подтверждены) + +## Использование в n8n: + +```javascript +// Парсим результат CreateWebContact +const rawResult = $node["CreateWebContact"].json.result; +const contactData = JSON.parse(rawResult); + +// Получаем данные +const contact_id = contactData.contact_id; +const is_new = contactData.is_new; +const data_confirmed = contactData.cf_2624 === "1"; // true/false + +// Используем в дальнейшей логике +if (data_confirmed) { + // Данные подтверждены - блокируем редактирование +} +``` + +## Логика работы: + +1. **Новый контакт** (`is_new: true`): + - `cf_2624` всегда `"0"` (данные не подтверждены) + +2. **Существующий контакт** (`is_new: false`): + - `cf_2624` берётся из базы данных CRM + - Если поле пустое → возвращается `"0"` + diff --git a/ticket_form/docs/CRM_CONTACT_DATA_CONFIRMED_FIELD.md b/ticket_form/docs/CRM_CONTACT_DATA_CONFIRMED_FIELD.md new file mode 100644 index 00000000..981879ae --- /dev/null +++ b/ticket_form/docs/CRM_CONTACT_DATA_CONFIRMED_FIELD.md @@ -0,0 +1,149 @@ +# Добавление поля "Данные подтверждены" в CRM + +## Шаг 1: Создание кастомного поля в CRM + +1. Зайти в CRM → Настройки → Кастомные поля → Модуль "Контакты" +2. Создать новое поле: + - **Название:** "Данные подтверждены" + - **Тип:** "Да/Нет" (Checkbox) или "Список" (Picklist) со значениями "Да"/"Нет" + - **Код поля:** `cf_2624` ✅ (уже создано) + - **По умолчанию:** "Нет" (false) + +3. **ВАЖНО:** Записать номер поля (например, `cf_2624`) + +--- + +## Шаг 2: Обновление backend для проверки поля в CRM + +### Файл: `ticket_form/backend/app/api/claims.py` + +В функции `get_draft()` вместо проверки PostgreSQL, проверяем поле в CRM: + +```python +# ✅ Проверяем флаг подтверждения данных контакта из CRM +unified_id = row.get('unified_id') +contact_data_confirmed = False +contact_data_can_edit = True +contact_data_confirmed_at = None +contact_data_from_crm = None + +if unified_id: + # Получаем contact_id из payload + contact_id = payload.get('contact_id') if isinstance(payload, dict) else None + + if contact_id: + try: + # Получаем данные контакта из CRM + async with httpx.AsyncClient(timeout=30.0) as client: + # 1. Get Challenge + challenge_response = await client.get( + f"{settings.crm_webservice_url}", + params={"operation": "getchallenge", "username": "api"} + ) + challenge_data = challenge_response.json() + token = challenge_data.get("result", {}).get("token", "") + + # 2. Login + import hashlib + salt = "4r9ANex8PT2IuRV" + access_key = hashlib.md5((token + salt).encode()).hexdigest() + + login_response = await client.post( + f"{settings.crm_webservice_url}", + data={ + "operation": "login", + "username": "api", + "accessKey": access_key + } + ) + login_data = login_response.json() + session_name = login_data.get("result", {}).get("sessionName", "") + + # 3. Retrieve Contact + retrieve_response = await client.post( + f"{settings.crm_webservice_url}", + data={ + "operation": "retrieve", + "sessionName": session_name, + "id": f"12x{contact_id}" + } + ) + retrieve_data = retrieve_response.json() + + if retrieve_data.get("success") and retrieve_data.get("result"): + contact_data_from_crm = retrieve_data["result"] + + # ✅ Проверяем кастомное поле "Данные подтверждены" + confirmed_field = contact_data_from_crm.get("cf_2624", "0") # "1" = да, "0" = нет + contact_data_confirmed = confirmed_field == "1" or confirmed_field == "true" + contact_data_can_edit = not contact_data_confirmed + + logger.info( + f"🔒 Статус данных контакта из CRM: confirmed={contact_data_confirmed}, " + f"field_value={confirmed_field}" + ) + except Exception as e: + logger.warning(f"⚠️ Не удалось загрузить данные из CRM: {str(e)}") +``` + +--- + +## Шаг 3: Обновление n8n workflow для установки поля + +### В workflow `6mxRJ2LLHmQXyaDz` + +После подтверждения формы (после SMS-верификации) добавить ноду: + +**Название:** `HTTP Request: Set Contact Data Confirmed` + +**Метод:** POST + +**URL:** `{{ $env.CRM_WEBSERVICE_URL }}` + +**Body (form-data):** +``` +operation: revise +sessionName: {{ $('Login to CRM').json.sessionName }} +id: 12x{{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }} +cf_2624: 1 +``` + +**Где:** +- `cf_2624` - поле "Данные подтверждены" +- `1` = "Да" (данные подтверждены) + +--- + +## Шаг 4: Обновление UpsertContact (если используется) + +Если используется `UpsertContact.php`, добавить поддержку нового поля: + +```php +// В функции vtws_upsertcontact() +if (!empty($data_confirmed)) { + $params['cf_2624'] = $data_confirmed; // "1" или "0" +} +``` + +--- + +## Преимущества подхода: + +1. ✅ **CRM - источник истины** - все данные в одном месте +2. ✅ **Нет синхронизации** - не нужно синхронизировать флаги между PostgreSQL и CRM +3. ✅ **Простота** - один флаг в CRM, проверяем его напрямую +4. ✅ **Видимость** - менеджеры видят статус в карточке контакта +5. ✅ **Гибкость** - можно менять статус вручную в CRM + +--- + +## Проверка: + +1. ✅ Поле создано в CRM: `cf_2624` +2. ⏳ Обновить код backend (использовать `cf_2624`) +3. ⏳ Обновить n8n workflow (использовать `cf_2624`) +4. ⏳ Протестировать: + - Создать контакт → поле должно быть "Нет" + - Подтвердить форму → поле должно стать "Да" + - Загрузить черновик → поля должны быть заблокированы + diff --git a/ticket_form/docs/FRONTEND_UPDATE_CONTACT_DATA_CONFIRMED.md b/ticket_form/docs/FRONTEND_UPDATE_CONTACT_DATA_CONFIRMED.md new file mode 100644 index 00000000..67ca5d4f --- /dev/null +++ b/ticket_form/docs/FRONTEND_UPDATE_CONTACT_DATA_CONFIRMED.md @@ -0,0 +1,217 @@ +# Обновление фронтенда: Блокировка редактирования подтверждённых данных + +## Изменения + +### 1. Step1Phone.tsx - Получение флага из n8n + +**После получения ответа от n8n (после строки ~150):** + +```typescript +// ✅ Извлекаем флаг подтверждения данных +const contact_data_confirmed = result.contact_data_confirmed || false; +const contact_data_can_edit = result.contact_data_can_edit !== false; // По умолчанию true +const contact_data_confirmed_at = result.contact_data_confirmed_at || null; + +// Сохраняем в formData +updateFormData({ + // ... существующие поля ... + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: contact_data_can_edit, + contact_data_confirmed_at: contact_data_confirmed_at, +}); +``` + +--- + +### 2. generateConfirmationFormHTML.ts - Блокировка полей + +**Добавить параметр `contact_data_confirmed` в функцию:** + +```typescript +export function generateConfirmationFormHTML( + data: any, + contact_data_confirmed: boolean = false +): string { + // ... существующий код ... + + // В функции createInputField добавить проверку: + function createInputField(root: string, key: string, value: any, label: string, type: string = 'text') { + const isReadOnly = contact_data_confirmed && ( + key === 'firstname' || + key === 'lastname' || + key === 'middle_name' || + key === 'inn' || + key === 'birthday' || + key === 'birthplace' || + key === 'mailingstreet' || + key === 'email' + ); + + const readonlyAttr = isReadOnly ? 'readonly' : ''; + const readonlyClass = isReadOnly ? 'readonly-field' : ''; + + // ... остальной код с добавлением readonlyAttr и readonlyClass ... + } +} +``` + +**Добавить CSS для readonly полей:** + +```css +.readonly-field { + background-color: #f5f5f5 !important; + cursor: not-allowed !important; + opacity: 0.7; +} +``` + +--- + +### 3. StepClaimConfirmation.tsx - Передача флага в форму + +**В useEffect (после строки ~90):** + +```typescript +// Получаем флаг подтверждения из claimPlanData или formData +const contact_data_confirmed = + claimPlanData?.contact_data_confirmed || + claimPlanData?.propertyName?.meta?.contact_data_confirmed || + formData?.contact_data_confirmed || + false; + +// Передаём в generateConfirmationFormHTML +const html = generateConfirmationFormHTML(formData, contact_data_confirmed); +``` + +--- + +### 4. Добавить кнопку "Изменить данные" (опционально) + +**В generateConfirmationFormHTML.ts:** + +```typescript +// После заголовка формы, если contact_data_confirmed = true +if (contact_data_confirmed) { + html += ` +

+ `; +} +``` + +**В JavaScript внутри формы:** + +```javascript +// Обработчик кнопки "Изменить данные" +const editBtn = document.getElementById('btn-edit-data'); +if (editBtn) { + editBtn.addEventListener('click', function() { + // Отправляем сообщение родительскому окну + window.parent.postMessage({ + type: 'request_edit_contact_data', + eventData: { + phone: state.user?.mobile || '', + unified_id: state.meta?.unified_id || '' + } + }, '*'); + }); +} +``` + +--- + +### 5. Обработка запроса на изменение данных + +**В StepClaimConfirmation.tsx:** + +```typescript +useEffect(() => { + const handleMessage = (event: MessageEvent) => { + // ... существующие обработчики ... + + if (event.data.type === 'request_edit_contact_data') { + const { phone, unified_id } = event.data.eventData; + + // Показываем модалку SMS для подтверждения + setSmsModalVisible(true); + setSmsCodeSent(false); + sendSMSCode(phone); + + // Сохраняем флаг, что это запрос на изменение данных + setPendingFormData({ + ...pendingFormData, + is_edit_request: true, + unified_id: unified_id + }); + } + }; + + window.addEventListener('message', handleMessage); + return () => window.removeEventListener('message', handleMessage); +}, []); +``` + +--- + +### 6. После SMS подтверждения - сброс флага + +**В verifySMSCode (после успешной верификации):** + +```typescript +// Если это запрос на изменение данных +if (pendingFormData?.is_edit_request) { + // Отправляем запрос в n8n для сброса флага + await fetch('/api/v1/claims/contact-data/reset-confirmed', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + unified_id: pendingFormData.unified_id, + sms_code: code + }) + }); + + // Обновляем флаг в formData + updateFormData({ + contact_data_confirmed: false, + contact_data_can_edit: true + }); + + // Перезагружаем форму с разблокированными полями + // (можно просто обновить страницу или пересоздать форму) + window.location.reload(); +} +``` + +--- + +## Порядок реализации + +1. ✅ Обновить Step1Phone для получения флага +2. ✅ Обновить generateConfirmationFormHTML для блокировки полей +3. ✅ Обновить StepClaimConfirmation для передачи флага +4. ⏳ Добавить кнопку "Изменить данные" (опционально) +5. ⏳ Реализовать механизм переподтверждения через SMS + +--- + +## Тестирование + +После обновления проверить: +- ✅ Флаг получается из n8n +- ✅ Поля блокируются при `contact_data_confirmed = true` +- ✅ Данные из CRM загружаются и отображаются +- ✅ Кнопка "Изменить данные" работает (если реализована) + diff --git a/ticket_form/docs/N8N_ADD_CF_2624_TO_OCR_STATUS_EVENT.md b/ticket_form/docs/N8N_ADD_CF_2624_TO_OCR_STATUS_EVENT.md new file mode 100644 index 00000000..28b449b0 --- /dev/null +++ b/ticket_form/docs/N8N_ADD_CF_2624_TO_OCR_STATUS_EVENT.md @@ -0,0 +1,209 @@ +# Добавление cf_2624 в событие ocr_status ready + +## Задача + +После сохранения черновика (после `claimsave`) публиковать событие `ocr_status` с `status: "ready"` в Redis канал `ocr_events:{session_id}` с полем `cf_2624`. + +## Формат события + +```json +{ + "event_type": "ocr_status", + "status": "ready", + "claim_id": "ef853bac-f54b-46aa-adf8-f0c9c0cd76bc", + "message": "Заявление сформировано", + "timestamp": "2025-12-03T12:44:12.347Z", + "cf_2624": "0" +} +``` + +## Где добавить в n8n workflow + +### Вариант 1: После ноды `claimsave` (PostgreSQL) + +**Название ноды:** `Code: Prepare OCR Status Event` + +**Расположение:** После ноды `claimsave` (PostgreSQL), перед нодой публикации в Redis + +**Код:** +```javascript +// Получаем результат из claimsave +const claimResult = $input.first().json; +const claim = claimResult.claim || claimResult; + +// Получаем contact_id из claim +const contact_id = claim.contact_id; + +// ✅ Получаем cf_2624 из PostgreSQL (если есть нода Get Contact Data) +let cf_2624 = "0"; // По умолчанию "0" (не подтверждено) + +try { + // Пытаемся получить из предыдущей ноды PostgreSQL: Get Contact Data + const contactData = $('PostgreSQL: Get Contact Data')?.first()?.json; + if (contactData && contactData.cf_2624) { + cf_2624 = contactData.cf_2624; + } else { + // Альтернатива: получаем из CreateWebContact + const createWebContactResult = $node["CreateWebContacКлиентправ"]?.json?.result || ""; + if (createWebContactResult) { + const contactData = typeof createWebContactResult === 'string' + ? JSON.parse(createWebContactResult) + : createWebContactResult; + if (contactData.cf_2624) { + cf_2624 = contactData.cf_2624; + } + } + } +} catch (e) { + console.warn('⚠️ Не удалось получить cf_2624, используем значение по умолчанию "0"'); +} + +// Формируем событие для Redis +const event = { + event_type: 'ocr_status', + status: 'ready', + claim_id: claim.claim_id || claim.id, + message: 'Заявление сформировано', + timestamp: new Date().toISOString(), + cf_2624: cf_2624 // ✅ Добавляем cf_2624 +}; + +console.log('📤 Подготовлено событие ocr_status ready:', { + claim_id: event.claim_id, + cf_2624: event.cf_2624, + contact_id: contact_id +}); + +return { + json: { + // Данные для публикации в Redis + channel: `ocr_events:${claim.session_token || claim.session_id}`, + message: JSON.stringify(event), + + // Передаём дальше для следующих нод + claim_id: event.claim_id, + session_token: claim.session_token || claim.session_id, + cf_2624: cf_2624 + } +}; +``` + +--- + +### Вариант 2: Прямо в ноде публикации (HTTP Request или Redis Publish) + +**Если используется HTTP Request:** + +**URL:** `{{ $env.BACKEND_URL }}/api/v1/events/{{ $json.session_token }}` + +**Body (JSON):** +```json +{ + "event_type": "ocr_status", + "status": "ready", + "message": "Заявление сформировано", + "data": { + "claim_id": "{{ $json.claim_id }}", + "cf_2624": "{{ $json.cf_2624 || '0' }}" + }, + "timestamp": "{{ $now.toISO() }}" +} +``` + +**Если используется Redis Publish:** + +**Channel:** `ocr_events:{{ $json.session_token }}` + +**Message:** +```javascript +={{ JSON.stringify({ + event_type: 'ocr_status', + status: 'ready', + claim_id: $json.claim_id, + message: 'Заявление сформировано', + timestamp: new Date().toISOString(), + cf_2624: $json.cf_2624 || '0' +}) }} +``` + +--- + +## Порядок нод в workflow + +1. **CreateWebContacКлиентправ** → получаем `contact_id` и `cf_2624` +2. **PostgreSQL: Get Contact Data** (опционально) → получаем полные данные контакта включая `cf_2624` +3. **claimsave** (PostgreSQL) → сохраняем черновик +4. **Code: Prepare OCR Status Event** → формируем событие с `cf_2624` +5. **HTTP Request** или **Redis Publish** → публикуем событие в `ocr_events:{session_id}` + +--- + +## Сохранение в черновик + +Событие с `cf_2624` будет: +1. ✅ Публиковаться в Redis канал `ocr_events:{session_id}` +2. ✅ Обрабатываться backend'ом (загружает `form_draft` из PostgreSQL) +3. ⏳ **Нужно добавить:** Сохранение `cf_2624` в черновик при обработке события + +### Обновление backend для сохранения cf_2624 + +В файле `ticket_form/backend/app/api/events.py` (строка 218-267): + +После загрузки `form_draft` из PostgreSQL, если в событии есть `cf_2624`, нужно сохранить его в черновик: + +```python +# ✅ Обработка ocr_status ready: загружаем form_draft из PostgreSQL +if actual_event.get('event_type') == 'ocr_status' and actual_event.get('status') == 'ready': + claim_id = actual_event.get('claim_id') or actual_event.get('data', {}).get('claim_id') + cf_2624 = actual_event.get('cf_2624') # ✅ Получаем cf_2624 из события + + if claim_id: + # ... существующий код загрузки form_draft ... + + # ✅ Если есть cf_2624 в событии - сохраняем в черновик + if cf_2624: + try: + update_query = """ + UPDATE clpr_claims + SET payload = jsonb_set( + payload, + '{cf_2624}', + $1::jsonb + ) + WHERE id::text = $2 + RETURNING id; + """ + await db.execute(update_query, json.dumps(cf_2624), claim_id) + logger.info(f"✅ Сохранён cf_2624={cf_2624} в черновик claim_id={claim_id}") + except Exception as e: + logger.warning(f"⚠️ Не удалось сохранить cf_2624: {e}") +``` + +--- + +## Проверка + +1. ✅ Событие публикуется в `ocr_events:{session_id}` с `cf_2624` +2. ⏳ Backend обрабатывает событие и сохраняет `cf_2624` в черновик +3. ⏳ При загрузке черновика `cf_2624` доступен в `payload.cf_2624` + +--- + +## Пример полного события + +```json +{ + "event_type": "ocr_status", + "status": "ready", + "claim_id": "ef853bac-f54b-46aa-adf8-f0c9c0cd76bc", + "message": "Заявление сформировано", + "timestamp": "2025-12-03T12:44:12.347Z", + "cf_2624": "0" +} +``` + +Это событие будет: +- ✅ Публиковаться в Redis канал `ocr_events:sess_5fc7cdd1-a848-4e92-aed4-3ee4bfb19b4c` +- ✅ Обрабатываться backend'ом +- ✅ Сохраняться в черновик в поле `payload.cf_2624` + diff --git a/ticket_form/docs/N8N_CODE_CHECK_CONTACT_DATA_CONFIRMED.js b/ticket_form/docs/N8N_CODE_CHECK_CONTACT_DATA_CONFIRMED.js new file mode 100644 index 00000000..bec24e88 --- /dev/null +++ b/ticket_form/docs/N8N_CODE_CHECK_CONTACT_DATA_CONFIRMED.js @@ -0,0 +1,44 @@ +// ============================================================================ +// Code Node для n8n: Проверка подтверждения данных контакта +// ============================================================================ +// Назначение: Проверить, подтверждены ли данные контакта пользователя +// и нужно ли блокировать редактирование +// +// Использование: После получения unified_id, перед загрузкой данных формы +// ============================================================================ + +// Получаем unified_id из предыдущих шагов +const unified_id = $('user_get').first().json.unified_id || + $('Edit Fields').first().json.unified_id || + $json.unified_id; + +if (!unified_id) { + throw new Error('unified_id не найден'); +} + +// Выполняем SQL запрос для проверки статуса +// (это должно быть в PostgreSQL ноде, но для примера показываю логику) + +// SQL запрос: +// SELECT * FROM clpr_get_contact_data_status($1); +// Параметр: unified_id + +// Ожидаемый результат: +// { +// is_confirmed: true/false, +// confirmed_at: "2025-12-02T14:30:00Z" или null, +// can_edit: true/false +// } + +// Для Code Node (если нужно обработать результат): +const status = $('PostgreSQL Check Status').first().json; // Предполагаем, что есть такая нода + +return { + unified_id: unified_id, + is_confirmed: status.is_confirmed || false, + confirmed_at: status.confirmed_at || null, + can_edit: status.can_edit !== false, // По умолчанию можно редактировать + // Флаг для фронтенда + lock_editing: status.is_confirmed || false +}; + diff --git a/ticket_form/docs/N8N_CODE_IN_JAVASCRIPT_КЛИЕНТПРАВ_FULL.js b/ticket_form/docs/N8N_CODE_IN_JAVASCRIPT_КЛИЕНТПРАВ_FULL.js new file mode 100644 index 00000000..87fab60d --- /dev/null +++ b/ticket_form/docs/N8N_CODE_IN_JAVASCRIPT_КЛИЕНТПРАВ_FULL.js @@ -0,0 +1,264 @@ +// ======================================== +// Code Node: Code in JavaScriptКлиентправ +// Формирование Response для фронтенда с поддержкой cf_2624 +// ======================================== + +// --- 1. Генерация UUIDv4 --- +function generateUUIDv4() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { + const r = Math.random() * 16 | 0; + const v = c === 'x' ? r : ((r & 0x3) | 0x8); + return v.toString(16); + }); +} + +// --- 2. Парсим контакт из CreateWebContacКлиентправ --- +const createWebContactNode = $node["CreateWebContacКлиентправ"] || $node["CreateWebContact"]; +const rawResult = createWebContactNode?.json?.result || ""; + +let contactData = {}; +try { + contactData = typeof rawResult === 'string' + ? JSON.parse(rawResult) + : rawResult; +} catch (e) { + console.error('❌ Ошибка парсинга CreateWebContact:', e); + contactData = {}; +} + +// ✅ Извлекаем cf_2624 (Данные подтверждены) из CreateWebContact +// "1" = данные подтверждены, "0" = не подтверждены +const cf_2624 = contactData.cf_2624 || "0"; +const contact_data_confirmed = cf_2624 === "1" || cf_2624 === "true" || cf_2624 === true; +const contact_data_can_edit = !contact_data_confirmed; + +console.log('🔒 Статус данных контакта из CreateWebContact:', { + contact_id: contactData.contact_id, + is_new: contactData.is_new, + cf_2624: cf_2624, + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: contact_data_can_edit +}); + +// --- 2.1. Получаем полные данные контакта из PostgreSQL (если есть) --- +let contactFromDB = null; +try { + // Пытаемся найти ноду PostgreSQL, которая получила данные контакта + const possiblePostgresNodes = [ + 'PostgreSQL: Get Contact Data', + 'Get Contact from DB', + 'PostgreSQL', + 'Get Contact Details' + ]; + + for (const nodeName of possiblePostgresNodes) { + try { + const node = $(nodeName)?.first(); + if (node && node.json) { + // Проверяем, что это данные контакта (есть contactid) + if (node.json.contactid || node.json.contact_id) { + contactFromDB = node.json; + console.log('✅ Получены данные контакта из PostgreSQL:', { + contactid: contactFromDB.contactid || contactFromDB.contact_id, + firstname: contactFromDB.firstname, + lastname: contactFromDB.lastname + }); + break; + } + } + } catch (e) { + continue; + } + } + + // Альтернативный способ: ищем по структуре данных + if (!contactFromDB) { + // Может быть в предыдущей ноде с результатом запроса + const inputData = $input.all(); + for (const item of inputData) { + if (item.json && (item.json.contactid || item.json.contact_id)) { + contactFromDB = item.json; + break; + } + } + } +} catch (e) { + console.warn('⚠️ Не удалось получить данные контакта из PostgreSQL:', e.message); +} + +// Если данные из БД получены - используем их для дополнения информации +if (contactFromDB) { + console.log('📋 Данные контакта из БД:', { + contactid: contactFromDB.contactid, + firstname: contactFromDB.firstname, + lastname: contactFromDB.lastname, + email: contactFromDB.email, + mobile: contactFromDB.mobile, + birthday: contactFromDB.birthday, + mailingstreet: contactFromDB.mailingstreet, + middle_name: contactFromDB.middle_name, + birthplace: contactFromDB.birthplace, + inn: contactFromDB.inn + }); +} + +// --- 3. Телефон из Edit Fields --- +let phone = null; +try { + const editFields = $('Edit Fields')?.first(); + if (editFields && editFields.json) { + phone = editFields.json.phone; + } +} catch (e) { + console.warn('⚠️ Не удалось получить phone из Edit Fields:', e.message); +} + +// --- 4. unified_id из user_get --- +let unified_id = null; +try { + const possibleUserNodes = ['user_get', 'Find or Create User', 'PostgreSQL: Find User']; + for (const nodeName of possibleUserNodes) { + try { + const node = $node[nodeName]; + if (node && node.json && node.json.unified_id) { + unified_id = node.json.unified_id; + break; + } + } catch (e) { + // Нода не существует или не выполнена - продолжаем поиск + continue; + } + } + + if (!unified_id) { + console.warn('⚠️ unified_id не получен из ноды user_get. Проверьте, что нода выполнена.'); + } +} catch (e) { + console.warn('⚠️ Не удалось получить unified_id:', e.message); +} + +// --- 5. Генерируем session_id (если не получен из предыдущих нод) --- +let session_id = null; + +// Пытаемся получить session_id из предыдущих нод +try { + const possibleSessionNodes = [ + 'Code in JavaScript1', + 'Code in JavaScript', + 'Set Session Data', + 'Create Session' + ]; + + for (const nodeName of possibleSessionNodes) { + try { + const node = $(nodeName)?.first(); + if (node && node.json) { + if (node.json.session_id) { + session_id = node.json.session_id; + break; + } else if (node.json.redis_value) { + const parsed = JSON.parse(node.json.redis_value); + if (parsed.session_id) { + session_id = parsed.session_id; + break; + } + } + } + } catch (e) { + continue; + } + } + + // Пытаемся получить из Edit Fields + if (!session_id) { + try { + const editFields = $('Edit Fields')?.first(); + if (editFields && editFields.json && editFields.json.session_id) { + session_id = editFields.json.session_id; + } + } catch (e) { + // Игнорируем + } + } +} catch (e) { + console.warn('⚠️ Не удалось получить session_id из предыдущих нод:', e.message); +} + +// Если session_id не найден - генерируем новый +if (!session_id) { + session_id = 'sess_' + generateUUIDv4(); + console.log('✅ Сгенерирован новый session_id:', session_id); +} + +// --- 6. Формируем sessionData для Redis --- +const sessionData = { + session_id, // ← теперь сохраняем внутрь + unified_id, + contact_id: contactData.contact_id, + phone, + is_new_contact: contactData.is_new || contactData.is_new_contact || false, + // ✅ Флаги подтверждения данных контакта (из cf_2624) + cf_2624: cf_2624, + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: contact_data_can_edit, + // ✅ Данные контакта из PostgreSQL (если получены) + contact_from_db: contactFromDB ? { + contactid: contactFromDB.contactid || contactFromDB.contact_id, + firstname: contactFromDB.firstname, + lastname: contactFromDB.lastname, + email: contactFromDB.email, + mobile: contactFromDB.mobile, + phone: contactFromDB.phone, + birthday: contactFromDB.birthday, + mailingstreet: contactFromDB.mailingstreet, + mailingcity: contactFromDB.mailingcity, + mailingstate: contactFromDB.mailingstate, + mailingzip: contactFromDB.mailingzip, + mailingcountry: contactFromDB.mailingcountry, + middle_name: contactFromDB.middle_name, + birthplace: contactFromDB.birthplace, + inn: contactFromDB.inn, + requisites: contactFromDB.requisites, + code: contactFromDB.code, + sms: contactFromDB.sms + } : null, + status: "draft", + current_step: 1, + created_at: new Date().toISOString(), + updated_at: new Date().toISOString(), + documents: {}, + email: contactFromDB?.email || null, + bank_name: null +}; + +// --- 7. Возвращаем результат в формате items --- +const result = { + json: { + session: session_id, + session_id, + unified_id, + contact_id: contactData.contact_id, + is_new_contact: contactData.is_new || contactData.is_new_contact || false, + phone, + // ✅ Флаги подтверждения данных контакта (из cf_2624) + cf_2624: cf_2624, + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: contact_data_can_edit, + redis_key: `session:${session_id}`, + redis_value: JSON.stringify(sessionData), + ttl: 604800 + } +}; + +// Логируем финальный ответ для отладки +console.log('✅ Сформирован ответ для фронтенда:', { + session_id: result.json.session_id, + has_unified_id: !!result.json.unified_id, + has_contact_id: !!result.json.contact_id, + contact_data_confirmed: result.json.contact_data_confirmed, + cf_2624: result.json.cf_2624, + is_new_contact: result.json.is_new_contact +}); + +return [result]; + diff --git a/ticket_form/docs/N8N_CODE_SET_CONTACT_DATA_CONFIRMED.js b/ticket_form/docs/N8N_CODE_SET_CONTACT_DATA_CONFIRMED.js new file mode 100644 index 00000000..3911a43f --- /dev/null +++ b/ticket_form/docs/N8N_CODE_SET_CONTACT_DATA_CONFIRMED.js @@ -0,0 +1,51 @@ +// ============================================================================ +// Code Node для n8n: Установка флага подтверждения данных +// ============================================================================ +// Назначение: Установить флаг contact_data_confirmed_at после подтверждения формы +// +// Использование: После успешного сохранения данных в CRM через claim_confirmed +// ============================================================================ + +// Получаем unified_id +const unified_id = $('user_get').first().json.unified_id || + $json.unified_id; + +if (!unified_id) { + throw new Error('unified_id не найден для установки флага подтверждения'); +} + +// Получаем contact_id из CRM (если есть) +const contact_id = $node['CreateWebContacКлиентправ']?.json?.result?.contact_id || + $json.contact_id || + null; + +// Проверяем, есть ли данные в CRM (для автоматического подтверждения) +// Если contact_id > 0, значит данные уже есть в CRM - подтверждаем автоматически +const has_crm_data = contact_id && parseInt(contact_id) > 0; + +// Формируем данные для PostgreSQL +return { + unified_id: unified_id, + contact_id: contact_id, + has_crm_data: has_crm_data, + // Флаг для SQL функции + should_confirm: true, // Всегда подтверждаем после сохранения формы + confirmed_at: new Date().toISOString() +}; + +// ============================================================================ +// SQL запрос для PostgreSQL ноды (после этого Code Node): +// ============================================================================ +// SELECT clpr_set_contact_data_confirmed($1, $2::timestamptz); +// +// Параметры: +// $1 = {{ $json.unified_id }} +// $2 = {{ $json.confirmed_at }} +// +// ИЛИ для автоматического подтверждения существующих данных: +// SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer); +// +// Параметры: +// $1 = {{ $json.unified_id }} +// $2 = {{ $json.contact_id }} + diff --git a/ticket_form/docs/N8N_MYSQL_GET_CONTACT_DATA.md b/ticket_form/docs/N8N_MYSQL_GET_CONTACT_DATA.md new file mode 100644 index 00000000..18f878a4 --- /dev/null +++ b/ticket_form/docs/N8N_MYSQL_GET_CONTACT_DATA.md @@ -0,0 +1,73 @@ +# Получение данных контакта из MySQL в n8n + +## Задача + +В n8n workflow нужно получить полные данные контакта из MySQL БД vtiger CRM перед формированием финального ответа. + +## SQL запрос + +**Файл:** `ticket_form/docs/N8N_POSTGRESQL_GET_CONTACT_DATA.sql` (название файла устарело, но запрос для MySQL) + +```sql +SELECT + cd.contactid, + cd.firstname, + cd.lastname, + cd.email, + cd.mobile, + cd.phone, + cs.birthday, + ca.mailingstreet, + ca.mailingcity, + ca.mailingstate, + ca.mailingzip, + ca.mailingcountry, + ccf.cf_1157 AS middle_name, + ccf.cf_1263 AS birthplace, + ccf.cf_1257 AS inn, + ccf.cf_1849 AS requisites, + ccf.cf_1580 AS code, + ccf.cf_1706 AS sms, + ccf.cf_2624 AS cf_2624 +FROM vtiger_contactdetails cd +LEFT JOIN vtiger_contactscf ccf ON ccf.contactid = cd.contactid +LEFT JOIN vtiger_contactsubdetails cs ON cs.contactsubscriptionid = cd.contactid +LEFT JOIN vtiger_contactaddress ca ON ca.contactaddressid = cd.contactid +LEFT JOIN vtiger_crmentity ce ON ce.crmid = cd.contactid +WHERE cd.contactid = ? + AND ce.deleted = 0 +LIMIT 1; +``` + +## Настройка ноды MySQL в n8n + +1. **Тип ноды:** MySQL +2. **Operation:** Execute Query +3. **Query:** (см. выше) +4. **Parameters:** + - `?` = `{{ JSON.parse($node["CreateWebContacКлиентправ"].json.result).contact_id }}` + +## Credentials для MySQL + +- **Host:** `localhost` +- **Port:** `3306` +- **Database:** `ci20465_72new` +- **User:** `ci20465_72new` +- **Password:** `EcY979Rn` + +## Использование в Code node + +После выполнения MySQL запроса, данные доступны в Code node: + +```javascript +const pgContactNode = $('MySQL: Get Contact Data')?.first(); +if (pgContactNode && pgContactNode.json && pgContactNode.json.length > 0) { + const contactFromDb = pgContactNode.json[0]; + // Используем contactFromDb.cf_2624, contactFromDb.firstname, и т.д. +} +``` + +--- + +**Примечание:** Название файла `N8N_POSTGRESQL_GET_CONTACT_DATA.sql` устарело, но запрос работает для MySQL. + diff --git a/ticket_form/docs/N8N_SET_CF_2624_CONTACT_CONFIRMED.md b/ticket_form/docs/N8N_SET_CF_2624_CONTACT_CONFIRMED.md new file mode 100644 index 00000000..c743671e --- /dev/null +++ b/ticket_form/docs/N8N_SET_CF_2624_CONTACT_CONFIRMED.md @@ -0,0 +1,62 @@ +# Установка поля cf_2624 "Данные подтверждены" в n8n workflow + +## Обновление workflow 6mxRJ2LLHmQXyaDz + +### После подтверждения формы (после SMS-верификации) + +**Добавить ноду:** `HTTP Request: Set Contact Data Confirmed` + +**Параметры:** +- **Method:** POST +- **URL:** `{{ $env.CRM_WEBSERVICE_URL }}` (или полный URL CRM webservice) +- **Body Type:** form-data + +**Body (form-data):** +``` +operation: revise +sessionName: {{ $('Login to CRM').json.sessionName }} +id: 12x{{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }} +cf_2624: 1 +``` + +**Где:** +- `cf_2624` - поле "Данные подтверждены" в CRM +- `1` = "Да" (данные подтверждены) +- `0` = "Нет" (данные не подтверждены) + +--- + +## Альтернативный вариант: через Code Node + +Если нужно более гибкое управление, можно использовать Code Node: + +**Название:** `Code: Set Contact Data Confirmed` + +**Код:** +```javascript +// Получаем contact_id из CreateWebContact +const contactResult = JSON.parse($node['CreateWebContacКлиентправ'].json.result); +const contact_id = contactResult.contact_id; + +// Получаем sessionName из Login to CRM +const sessionName = $('Login to CRM').json.sessionName; + +// Формируем данные для обновления +return { + operation: 'revise', + sessionName: sessionName, + id: `12x${contact_id}`, + cf_2624: '1' // Устанавливаем "Да" (данные подтверждены) +}; +``` + +Затем подключить к **HTTP Request** ноде, которая отправит эти данные в CRM. + +--- + +## Проверка работы: + +1. После SMS-верификации и подтверждения формы +2. Проверить в CRM, что у контакта поле `cf_2624` = "Да" +3. При следующей загрузке черновика поля должны быть заблокированы + diff --git a/ticket_form/docs/N8N_UPDATE_CF_2624_IN_RESPONSE.md b/ticket_form/docs/N8N_UPDATE_CF_2624_IN_RESPONSE.md new file mode 100644 index 00000000..916fb27b --- /dev/null +++ b/ticket_form/docs/N8N_UPDATE_CF_2624_IN_RESPONSE.md @@ -0,0 +1,146 @@ +# Обновление n8n workflow: Использование cf_2624 из CreateWebContact + +## Задача + +При формировании заявления проверять значение `cf_2624` из ответа `CreateWebContact`: +- Если `cf_2624 = "0"` → данные можно редактировать +- Если `cf_2624 = "1"` → данные только для просмотра (readonly) + +## Изменения в workflow 6mxRJ2LLHmQXyaDz + +### 1. После ноды `CreateWebContacКлиентправ` + +**Название ноды:** `Code: Extract Contact Data Confirmed` + +**Код:** +```javascript +// Парсим результат CreateWebContact +const rawResult = $node["CreateWebContacКлиентправ"].json.result; +const contactData = JSON.parse(rawResult); + +// Извлекаем cf_2624 (Данные подтверждены) +// "1" = данные подтверждены, "0" = не подтверждены +const cf_2624 = contactData.cf_2624 || "0"; +const contact_data_confirmed = cf_2624 === "1"; + +console.log('🔒 Статус данных контакта:', { + contact_id: contactData.contact_id, + is_new: contactData.is_new, + cf_2624: cf_2624, + contact_data_confirmed: contact_data_confirmed +}); + +return { + contact_id: contactData.contact_id, + is_new_contact: contactData.is_new, + cf_2624: cf_2624, + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: !contact_data_confirmed +}; +``` + +--- + +### 2. В ноде `Code in JavaScriptКлиентправ` (формирование ответа для фронтенда) + +**Добавить в return:** + +```javascript +// Получаем данные о подтверждении из предыдущей ноды +const contactStatus = $('Code: Extract Contact Data Confirmed').first().json; + +return { + // ... существующие поля ... + session: session_id, + session_id: session_id, + unified_id: unified_id, + contact_id: contactStatus.contact_id, + is_new_contact: contactStatus.is_new_contact, + + // ✅ Флаги подтверждения данных контакта (из cf_2624) + contact_data_confirmed: contactStatus.contact_data_confirmed || false, + contact_data_can_edit: contactStatus.contact_data_can_edit !== false, + cf_2624: contactStatus.cf_2624 || "0", + + // ... остальные поля ... +}; +``` + +--- + +### 3. При загрузке черновика (если используется отдельный workflow) + +**Если есть нода для загрузки черновика:** + +```javascript +// Получаем contact_id из черновика +const contact_id = $json.contact_id || $json.payload?.contact_id; + +if (contact_id) { + // Вызываем CreateWebContact для получения cf_2624 + // (или используем retrieve из CRM) + + // Для простоты можно использовать retrieve: + const retrieveResult = await $http.post('{{ $env.CRM_WEBSERVICE_URL }}', { + operation: 'retrieve', + sessionName: $('Login to CRM').json.sessionName, + id: `12x${contact_id}` + }); + + const cf_2624 = retrieveResult.result?.cf_2624 || "0"; + const contact_data_confirmed = cf_2624 === "1"; + + return { + // ... данные черновика ... + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: !contact_data_confirmed, + cf_2624: cf_2624 + }; +} +``` + +--- + +## Логика работы + +1. **При создании/поиске контакта:** + - `CreateWebContact` возвращает `cf_2624` в ответе + - Извлекаем значение и передаём в ответе для фронтенда + +2. **При загрузке черновика:** + - Backend API `/drafts/{claim_id}` уже получает `cf_2624` из CRM + - Фронтенд получает `contact_data_confirmed` из ответа API + - Передаёт в `StepClaimConfirmation` → `generateConfirmationFormHTML` + +3. **При формировании заявления:** + - Если `cf_2624 = "1"` → поля персональных данных блокируются (readonly) + - Если `cf_2624 = "0"` → поля можно редактировать + +--- + +## Проверка + +1. ✅ `CreateWebContact` возвращает `cf_2624` в ответе +2. ⏳ n8n workflow извлекает `cf_2624` и передаёт в ответе +3. ⏳ Фронтенд получает `contact_data_confirmed` и блокирует поля +4. ⏳ Backend API `/drafts/{claim_id}` получает `cf_2624` из CRM + +--- + +## Пример ответа от n8n: + +```json +{ + "success": true, + "result": { + "session": "sess_...", + "contact_id": "399542", + "unified_id": "usr_...", + "contact_data_confirmed": true, + "contact_data_can_edit": false, + "cf_2624": "1", + "is_new_contact": false + } +} +``` + diff --git a/ticket_form/docs/N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md b/ticket_form/docs/N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md new file mode 100644 index 00000000..e91c8bc4 --- /dev/null +++ b/ticket_form/docs/N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md @@ -0,0 +1,135 @@ +# Конкретные изменения в workflow 6mxRJ2LLHmQXyaDz + +## Что менять: + +### 1. После ноды `user_get` → добавить PostgreSQL ноду (ПЕРВАЯ) + +**Название ноды:** `PostgreSQL: Auto Confirm Contact Data` + +**Параметры:** +- **Operation:** Execute Query +- **Query:** +```sql +SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer); +``` +- **Parameters:** + - `$1` = `{{ $json.unified_id }}` ← используем данные из предыдущей ноды (user_get) + - `$2` = `{{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }}` + +**Подключение:** +- `user_get` → `PostgreSQL: Auto Confirm Contact Data` → `Execute a SQL query2` + +--- + +### 2. После ноды `PostgreSQL: Auto Confirm Contact Data` → добавить PostgreSQL ноду (ВТОРАЯ) + +**Название ноды:** `PostgreSQL: Check Contact Data Status` + +**Параметры:** +- **Operation:** Execute Query +- **Query:** +```sql +SELECT * FROM clpr_get_contact_data_status($1); +``` +- **Parameters:** + - `$1` = `{{ $json.unified_id }}` ← unified_id передаётся дальше по цепочке + +**Подключение:** +- `PostgreSQL: Auto Confirm Contact Data` → `PostgreSQL: Check Contact Data Status` → `Execute a SQL query2` + +--- + +### 3. В ноде `Code in JavaScript` (та что перед `Respond to Webhook1`) → добавить флаг в ответ + +**Найти эту строку:** +```javascript +// Unified ID из PostgreSQL (обязательно!) +unified_id: userData.unified_id, // из ноды user_get (PostgreSQL: Find or Create User) +``` + +**Добавить ПОСЛЕ неё:** +```javascript +// Флаг подтверждения данных контакта +contact_data_confirmed: $('PostgreSQL: Check Contact Data Status').first().json.is_confirmed || false, +contact_data_can_edit: $('PostgreSQL: Check Contact Data Status').first().json.can_edit !== false, +contact_data_confirmed_at: $('PostgreSQL: Check Contact Data Status').first().json.confirmed_at || null, +``` + +**Полный return должен быть:** +```javascript +return { + success: true, + result: { + session: $('Code in JavaScript3').first().json.session_id, + contact_id: sessionData.contact_id || claimResult.contact_id, + project_id: sessionData.project_id, + + // Unified ID из PostgreSQL (обязательно!) + unified_id: userData.unified_id, + + // Флаг подтверждения данных контакта + contact_data_confirmed: $('PostgreSQL: Check Contact Data Status').first().json.is_confirmed || false, + contact_data_can_edit: $('PostgreSQL: Check Contact Data Status').first().json.can_edit !== false, + contact_data_confirmed_at: $('PostgreSQL: Check Contact Data Status').first().json.confirmed_at || null, + + // Данные заявки + ticket_id: claimResult.ticket_id, + ticket_number: claimResult.ticket_number, + title: claimResult.title, + category: claimResult.category, + status: claimResult.status, + + // Метаданные + event_type: sessionData.event_type, + current_step: sessionData.current_step || 1, + updated_at: sessionData.updated_at || new Date().toISOString(), + + // Дополнительно + is_new_contact: claimResult.is_new_contact || false + } +}; +``` + +--- + +## Итого: 3 изменения + +1. ✅ Добавить ноду `PostgreSQL: Auto Confirm Contact Data` после `CreateWebContacКлиентправ` +2. ✅ Добавить ноду `PostgreSQL: Check Contact Data Status` после `user_get` +3. ✅ Добавить 3 строки в `Code in JavaScript` перед `Respond to Webhook1` + +--- + +## Порядок выполнения в workflow: + +``` +contact → Edit Fields → Get Challenge → ... → Login to CRM → form_id + ↓ + CreateWebContacКлиентправ + ↓ + [НОВАЯ] PostgreSQL: Auto Confirm Contact Data + ↓ + Code in JavaScriptКлиентправ + ↓ + user_get + ↓ + [НОВАЯ] PostgreSQL: Check Contact Data Status + ↓ + Execute a SQL query2 + ↓ + ... + ↓ + Code in JavaScript (← ДОБАВИТЬ ФЛАГИ) + ↓ + Respond to Webhook1 +``` + +--- + +## Проверка: + +После изменений в ответе n8n должны быть поля: +- `contact_data_confirmed` (true/false) +- `contact_data_can_edit` (true/false) +- `contact_data_confirmed_at` (дата или null) + diff --git a/ticket_form/docs/N8N_WORKFLOW_ADD_POSTGRESQL_CONTACT.md b/ticket_form/docs/N8N_WORKFLOW_ADD_POSTGRESQL_CONTACT.md new file mode 100644 index 00000000..49685e98 --- /dev/null +++ b/ticket_form/docs/N8N_WORKFLOW_ADD_POSTGRESQL_CONTACT.md @@ -0,0 +1,99 @@ +# Добавление ноды PostgreSQL для получения данных контакта + +## Задача + +Добавить ноду PostgreSQL перед "Code in JavaScriptКлиентправ" для получения полных данных контакта из CRM. + +## Шаги + +### 1. Добавить ноду PostgreSQL + +**Название ноды:** `PostgreSQL: Get Contact Data` + +**Параметры:** +- **Operation:** Execute Query +- **Query:** (см. файл `N8N_POSTGRESQL_GET_CONTACT_DATA.sql`) + +**SQL запрос:** +```sql +SELECT + cd.contactid, + cd.firstname, + cd.lastname, + cd.email, + cd.mobile, + cd.phone, + cs.birthday, + ca.mailingstreet, + ca.mailingcity, + ca.mailingstate, + ca.mailingzip, + ca.mailingcountry, + ccf.cf_1157 AS middle_name, + ccf.cf_1263 AS birthplace, + ccf.cf_1257 AS inn, + ccf.cf_1849 AS requisites, + ccf.cf_1580 AS code, + ccf.cf_1706 AS sms, + ccf.cf_2624 AS cf_2624 +FROM vtiger_contactdetails cd +LEFT JOIN vtiger_contactscf ccf ON ccf.contactid = cd.contactid +LEFT JOIN vtiger_contactsubdetails cs ON cs.contactsubscriptionid = cd.contactid +LEFT JOIN vtiger_contactaddress ca ON ca.contactaddressid = cd.contactid +LEFT JOIN vtiger_crmentity ce ON ce.crmid = cd.contactid +WHERE cd.contactid = $1 + AND ce.deleted = 0 +LIMIT 1; +``` + +**Параметры запроса:** +- `$1` = `{{ JSON.parse($node["CreateWebContacКлиентправ"].json.result).contact_id }}` + +--- + +### 2. Порядок нод в workflow + +1. **CreateWebContacКлиентправ** → создаёт/находит контакт +2. **PostgreSQL: Get Contact Data** → получает полные данные контакта +3. **Code in JavaScriptКлиентправ** → использует данные из обеих нод + +--- + +### 3. Что получает Code node + +После добавления ноды PostgreSQL, Code node получит доступ к: +- `$('PostgreSQL: Get Contact Data').first().json` - полные данные контакта + +**Доступные поля:** +- `contactid` - ID контакта +- `firstname`, `lastname` - ФИО +- `email`, `mobile`, `phone` - Контакты +- `birthday` - Дата рождения +- `mailingstreet`, `mailingcity`, etc. - Адрес +- `middle_name` (cf_1157) - Отчество +- `birthplace` (cf_1263) - Место рождения +- `inn` (cf_1257) - ИНН +- `requisites` (cf_1849) - Реквизиты +- `code` (cf_1580) - Код +- `sms` (cf_1706) - SMS +- `cf_2624` - Данные подтверждены + +--- + +### 4. Использование в Code node + +Код в "Code in JavaScriptКлиентправ" автоматически найдёт данные из PostgreSQL ноды и добавит их в `sessionData.contact_from_db`. + +--- + +## Альтернатива: если нет доступа к PostgreSQL + +Если нет прямого доступа к PostgreSQL, можно использовать HTTP Request к backend API: + +**Название ноды:** `HTTP Request: Get Contact Data` + +**Метод:** GET +**URL:** `{{ $env.BACKEND_URL }}/api/v1/contacts/{{ JSON.parse($node["CreateWebContacКлиентправ"].json.result).contact_id }}` + +Но лучше использовать PostgreSQL напрямую для скорости. + diff --git a/ticket_form/docs/N8N_WORKFLOW_UPDATE_CONTACT_DATA_CONFIRMED.md b/ticket_form/docs/N8N_WORKFLOW_UPDATE_CONTACT_DATA_CONFIRMED.md new file mode 100644 index 00000000..9ff65ac7 --- /dev/null +++ b/ticket_form/docs/N8N_WORKFLOW_UPDATE_CONTACT_DATA_CONFIRMED.md @@ -0,0 +1,87 @@ +# Обновление workflow 6mxRJ2LLHmQXyaDz: Подтверждение данных контакта + +## Изменения в workflow + +### 1. После ноды `CreateWebContacКлиентправ` + +**Добавить ноду:** `PostgreSQL: Auto Confirm if CRM has data` + +**SQL запрос:** +```sql +SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer); +``` + +**Параметры:** +- `$1` = `{{ $('user_get').first().json.unified_id }}` +- `$2` = `{{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }}` + +**Назначение:** Если данные уже есть в CRM (contact_id > 0), автоматически ставим флаг подтверждения. + +--- + +### 2. После ноды `Code in JavaScriptКлиентправ` + +**Добавить ноду:** `PostgreSQL: Check Contact Data Status` + +**SQL запрос:** +```sql +SELECT * FROM clpr_get_contact_data_status($1); +``` + +**Параметры:** +- `$1` = `{{ $('user_get').first().json.unified_id }}` + +**Назначение:** Проверяем, подтверждены ли данные. Результат передаём дальше. + +--- + +### 3. В ответе для фронтенда (нода `Code in JavaScript`) + +**Добавить в return:** +```javascript +const contactStatus = $('PostgreSQL: Check Contact Data Status').first().json; + +return { + // ... существующие поля ... + contact_data_confirmed: contactStatus.is_confirmed || false, + contact_data_can_edit: contactStatus.can_edit !== false, + contact_data_confirmed_at: contactStatus.confirmed_at || null +}; +``` + +--- + +### 4. После подтверждения формы (workflow для `claim_confirmed`) + +**Добавить ноду:** `PostgreSQL: Set Contact Data Confirmed` + +**SQL запрос:** +```sql +SELECT clpr_set_contact_data_confirmed($1, NOW()); +``` + +**Параметры:** +- `$1` = `{{ $json.unified_id }}` + +**Назначение:** Устанавливаем флаг подтверждения после успешного сохранения данных. + +--- + +## Порядок выполнения + +1. **Создание контакта** → `CreateWebContacКлиентправ` +2. **Автоподтверждение** → Если данные есть в CRM → `clpr_auto_confirm_if_crm_has_data` +3. **Проверка статуса** → `clpr_get_contact_data_status` → передаём фронтенду +4. **Фронтенд** → Если `contact_data_confirmed = true` → блокируем редактирование +5. **После подтверждения** → `clpr_set_contact_data_confirmed` → устанавливаем флаг + +--- + +## Проверка в n8n + +После обновления workflow проверить: +- ✅ Флаг устанавливается при наличии данных в CRM +- ✅ Флаг устанавливается после подтверждения формы +- ✅ Статус передаётся фронтенду +- ✅ Фронтенд блокирует редактирование при `contact_data_confirmed = true` + diff --git a/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx b/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx index 572f36d4..63097a2c 100644 --- a/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx +++ b/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx @@ -86,8 +86,14 @@ export default function StepClaimConfirmation({ console.log('📋 formData.propertyName:', formData.propertyName); console.log('📋 formData.propertyName?.meta:', formData.propertyName?.meta); + // ✅ Получаем флаги подтверждения данных из claimPlanData или formData + const contact_data_confirmed = + claimPlanData?.contact_data_confirmed || + claimPlanData?.propertyName?.meta?.contact_data_confirmed || + false; + // Генерируем HTML форму здесь, на нашей стороне - const html = generateConfirmationFormHTML(formData); + const html = generateConfirmationFormHTML(formData, contact_data_confirmed); setHtmlContent(html); setLoading(false); }, [claimPlanData]); diff --git a/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts b/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts index f6df339d..731740ab 100644 --- a/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts +++ b/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts @@ -1,7 +1,7 @@ // Функция генерации HTML формы подтверждения заявления // Основана на структуре из n8n Code node "Mini-app Подтверждение данных" -export function generateConfirmationFormHTML(data: any): string { +export function generateConfirmationFormHTML(data: any, contact_data_confirmed: boolean = false): string { // Извлекаем SMS данные (до нормализации, так как структура может быть разной) const smsInputData = { prefix: data.sms_meta?.prefix || data.prefix || '', @@ -290,6 +290,7 @@ export function generateConfirmationFormHTML(data: any): string { telegram_id: telegramId, token: data.token || '', sms_meta: smsMetaData, + contact_data_confirmed: contact_data_confirmed || false, // ✅ Флаг подтверждения данных контакта }); caseJson = caseJson.replace(/'; + } + return ''; } @@ -808,6 +836,9 @@ export function generateConfirmationFormHTML(data: any): string { console.log('injected.case:', injected.case); console.log('injected.propertyName:', injected.propertyName); + // ✅ Извлекаем флаг подтверждения данных из injected + var contact_data_confirmed = injected.contact_data_confirmed || false; + // Достаём объект кейса из «типичных» мест var dataCandidate = null; @@ -872,6 +903,17 @@ export function generateConfirmationFormHTML(data: any): string { var html = ''; + // ✅ Предупреждение о заблокированных данных (если данные подтверждены) + if (contact_data_confirmed) { + html += '
'; + html += '

'; + html += '⚠️ Данные подтверждены
'; + html += 'Ваши персональные данные (ФИО, ИНН, дата рождения, адрес) заблокированы для редактирования. '; + html += 'Для изменения данных обратитесь в поддержку.'; + html += '

'; + html += '
'; + } + html += '
'; html += '

В МОО «Клиентправ»

'; html += '

help@clientright.ru

'; diff --git a/ticket_form/frontend/src/pages/ClaimForm.tsx b/ticket_form/frontend/src/pages/ClaimForm.tsx index 6757a728..495011df 100644 --- a/ticket_form/frontend/src/pages/ClaimForm.tsx +++ b/ticket_form/frontend/src/pages/ClaimForm.tsx @@ -560,6 +560,19 @@ export default function ClaimForm() { const claim = data.claim; const payload = claim.payload || {}; + // ✅ Сохраняем флаги подтверждения данных контакта + const contact_data_confirmed = data.contact_data_confirmed || false; + const contact_data_can_edit = data.contact_data_can_edit !== false; // По умолчанию true + const contact_data_confirmed_at = data.contact_data_confirmed_at || null; + const contact_data_from_crm = data.contact_data_from_crm || null; + + console.log('🔒 Статус данных контакта:', { + contact_data_confirmed, + contact_data_can_edit, + contact_data_confirmed_at, + has_crm_data: !!contact_data_from_crm + }); + // ✅ Для telegram черновиков данные могут быть в payload.body const body = payload.body || {}; const isTelegramFormat = !!payload.body; @@ -806,10 +819,33 @@ export default function ClaimForm() { console.log('✅ claimPlanData для формы подтверждения:', claimPlanData); + // ✅ Если данные подтверждены и есть данные из CRM - используем их + if (contact_data_confirmed && contact_data_from_crm) { + // Обновляем applicant данные из CRM + if (claimPlanData?.propertyName?.applicant) { + claimPlanData.propertyName.applicant = { + ...claimPlanData.propertyName.applicant, + first_name: contact_data_from_crm.firstname || claimPlanData.propertyName.applicant.first_name, + last_name: contact_data_from_crm.lastname || claimPlanData.propertyName.applicant.last_name, + middle_name: contact_data_from_crm.cf_1157 || claimPlanData.propertyName.applicant.middle_name, + inn: contact_data_from_crm.cf_1257 || claimPlanData.propertyName.applicant.inn, + birth_date: contact_data_from_crm.birthday || claimPlanData.propertyName.applicant.birth_date, + birth_place: contact_data_from_crm.cf_1263 || claimPlanData.propertyName.applicant.birth_place, + address: contact_data_from_crm.mailingstreet || claimPlanData.propertyName.applicant.address, + email: contact_data_from_crm.email || claimPlanData.propertyName.applicant.email, + phone: contact_data_from_crm.mobile || claimPlanData.propertyName.applicant.phone, + }; + } + } + // Сохраняем данные заявления в formData updateFormData({ claimPlanData: claimPlanData, showClaimConfirmation: true, + // ✅ Флаги подтверждения данных + contact_data_confirmed: contact_data_confirmed, + contact_data_can_edit: contact_data_can_edit, + contact_data_confirmed_at: contact_data_confirmed_at, }); // Переход к шагу подтверждения произойдёт автоматически через useEffect