common.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. // 应用公共文件
  3. /**
  4. * @param bool $bool
  5. * @param $message
  6. * @param int $code
  7. * @throws \app\exception\BaseException
  8. */
  9. function predicate(bool $bool, $message, $code = 1012)
  10. {
  11. if (!$bool) {
  12. throw new \app\exception\BaseException($message, $code);
  13. }
  14. }
  15. /**
  16. * 格式化字符串
  17. * @param $value
  18. * @param null $def
  19. * @return null
  20. */
  21. function format_string($value, $def = null)
  22. {
  23. return $value != null && strlen(strval($value)) > 0 ? $value : $def;
  24. }
  25. /**
  26. * @param $array
  27. * @param $id
  28. * @return array 树状Menu
  29. */
  30. function recursion($array, $id = 0)
  31. {
  32. $resArray = [];
  33. foreach ($array as $key => $value) {
  34. if ($value['pid'] == $id) {
  35. $resArray[$key] = $array[$key];
  36. $resArray[$key]['children'] = recursion($array, $value['id']);
  37. }
  38. }
  39. return array_merge($resArray);
  40. }
  41. function traverse(array $array, $id = 0)
  42. {
  43. $resArray = [];
  44. $queues = $key = array_search($id, array_column($array, 'id'));
  45. return $queues;
  46. // while ()
  47. }
  48. function seek($array, $id)
  49. {
  50. $return = [];
  51. foreach ($array as $item) {
  52. if ($item['pid'] == $id)
  53. array_push($return, $item);
  54. }
  55. return $return;
  56. }
  57. function fixed2Float($number)
  58. {
  59. return round(floatval((string)$number), 2);
  60. }
  61. function fetchReceptionRules()
  62. {
  63. return [
  64. ["id" => 10001, "index" => 0, "zh" => "客户资料", "en" => "Customer information", "icon" => "data:image/png;base64,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"],
  65. ["id" => 10002, "index" => 1, "zh" => "查询业绩", "en" => "Query performance", "icon" => "data:image/png;base64,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"],
  66. ["id" => 10003, "index" => 2, "zh" => "历史订单", "en" => "Historical Orders", "icon" => "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAiBJREFUaEPtWjGLE0EYfd8mMZ6XSrxOBFuxuUK0sLK0VquDZfMD0tjJNYeVPyEk7C4RC+XARrC0Ezs7C0HwimuuDRKy8fYdsxxikWNnybebZJgpk5f3vve9yc4wOwLHhhg/w+Gw0+1235B8AWAPgPk833CvAQCKyBnJD9Pp9NVgMJjLZDLZzfP8G8n7G26grLwfWZY9kDiO34uISWbrh0lKkiTh1jv5z4A3tOlp+oR8Qg13wE+5hhteWU47oV8APpktCUmzNVk6giDISD4G8KhyxSU/0DZ0N4qi37ZFJknyB8ANW7wNTtvQyyzLJr1e73w2mxUb32Wj0+lInucPAXwEcM2mUFuMtiGjOxORc5JXGrosbte2yCq4OgxV0VfHekPqLVUm9AkpN1SdTtI0XZBsqzOvhzA3hl6TPFyPvrrqUbFWpGn6luSBOn2zhO+iKDr4t/jFcfwMwHMRudNsHSurnZA87vf7x4apbDVfWa1pAncNOTXlnHooOPfYdm5h9UfBTT+HK+r53XbFhjUO9wk13vKKgj6hsoaR/C4ifwEsPTkVkeKNIcl72oeMxW5bcx0KguBpGIafy0yb70ej0e12u/0TwI4N3hajbehJGIZfbMTH4/HNVqt1CuC6Dd4Wo2oIwJzk1yJ6kasO682UW4jIPslbtoXa4rQN2erWhvOGamutErFPSKmRtdG4l5Bzl5ecu15mJrNTFwBr+3euifgCQA4lmoY+a78AAAAASUVORK5CYII="],
  67. ["id" => 10004, "index" => 3, "zh" => "定金订单", "en" => "Deposit order", "icon" => "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAA0CAYAAADxAdr3AAAAAXNSR0IArs4c6QAAAy5JREFUaEPtWj1oFEEU/t7enWJSCDYiwZ9CURBBBUEQxCCRKIKCQZtA7k0QUghWFrHXiFhpYaP7cimViEFQlKARTMQmBLFQS5EUogg2JifOkzn25OLP7c/tHlfstPO+7333zduZ2bdHSDBEZDeASwB+qqrGpCip6uXh4eEXMXG1cEoC8n3/OBE9SIJ1GFUtG2MqSfCJBI+Pjx9W1ekkCWsuEQ2Uy+XJJPhEgkWkD8CTJAkDzGlmvpsEv0LwxMREt7X2AICN1loiIlsnVdXVABaNMVMicgjAsyQJA8wpZr4nIscAbAGw1JDHC1bhY6lUmhscHPzWmOe3YBE5D2AUwPpmQpiZKpXKHmvtfFLBqtpvjHksIs6QZqv8BcA1Zr5Sz1ULFpHbAExEAb3MPCMinwAUI2Iaw2y1Wt1ULBa3eZ63EAWvqneMMWdqzovICICbUYBBzFLg0PMYmBWhwQq5h3ZdDI5R57QTvAhgQwxgPXRcVV8T0VcApQj4HwDWAtgJ4GyE+D9DvjNzlxMcd+NPkCsdiHt+csHpePlvltzhLN113LnDneawO+/DjtK4mt2W6k7bNVGAkUqCiD4DGFHV2UKhYJeXlxPd8JoJKhQKu4jId5eusHtMlH24wszlKA60EiMiVwFcSEPwB8/z+oaGht63IqgZtlKp9Fhr3d1iRxqCHYertXdEVFTVVEtCVatEtBlAV5ghkWo4jKSd87ngrN3OHe4Yh1X1OoCnWQkioj3BC/CqNLa1SWYeyEpsnVdE3Hule7/874haw6+YeX/Wgn3ff0hER9MQ7DjmVfVNVqKJyDVTDobxR3U4jKdt87ngrK3OHe4Yh1X1ped5s6rqWqG1dmgag4jcF4cqgL0AXM+56YhaEjPM3BtG1uq8iNwHcCKNfXiKmU+2KigMLyK3AAynIdhx3ACw4NbPteXDkseZDzi3BneJptxRSyJO/kxjc8GZ2pv31rK2N3c4d/hvB+rb2lsA29tgUKspFpm5x3Uv+wE8apUta3z9HwC1o9D3/XNE5I7fjhyqetEYM+bENX4c36eqo0R0BEB3ByhfIqJpa+2YMWaurifVi0w7fuQvPDyURNy9mr0AAAAASUVORK5CYII="],
  68. ["id" => 10005, "index" => 4, "zh" => "退货", "en" => "Return goods", "icon" => "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAAXNSR0IArs4c6QAABDFJREFUaEPtmkuIHEUcxr9/r+yqASGXFQQRIh6i0VziIfGReDFeIngw6MHtqp7DXIIHlaAhygoefAVBDLJIT9UOrILJSfEQL2ogWTHxoPgCMTA5BY2aKGLszfQnNewsM7M7ztTYM9PbbB+7/69ffdVV1VUt6HIZY84CuK3b85zd/1FrvWOtmmStm8aYRwG8nzOIXuXs11of6zTqBvgTgC29Iubs+Tmt9a09AY0x+wB8kLPi+y3nYa31h63GqxSsVCrficjWfiPmyY7k91EU3d4V0Fr7IMkTeSratxYR2auU+rjp16agMeYrAHf5Bs2Z/dda6+2rAI0xewB8krNiBy3nAa31p855RUFr7RmSa84lg2YZl5+InFVK3b0COD8/vzNN09PjKmgYeYMg2BWG4WJDQWPMKQC7hpFojDFPa63vkUqlsltEGv21aBfJPWKM+QzA/UWDW+Y5KXEcbyf51+TkZL1IkEmSTIjIpjXXokUCLT6gMcbNFxNFUq2Fpe4GGRYUroHlAP8GcG1BIa84wMsAbigo4B8bgOtc2Q0F17mAGJqCburJwyIic8BjInKZZKlogJdE5LBS6qgx5gkA1Zz07UwUjCcmJg7NzMz8vPzxfATAU0UA/CIIgmfDMGzbqLLWPknSAaaekBSRlOR0hguPgRS8RPL5KIre6gZAulploDXuwsLC5qWlpS0k9wJ4DMCdng3Vau4HKCLHlVLuYGZkl7X2aZKvD5jQDxDAlyRfjqLo+IAJB3KL4/jeIAjcbvV1ngG8ARvxSS66908pdbIzYbVa3Vqv17cB8NoCcX3avYNpml6s1WqLs7OzV1tjx3G8IwiCMyMBbEnyTpIkh8rl8sXmPWNMFqPoeRE5opR6sxXIWvsayWc8IAdTsCPBbyQPR1H0trtvrX2B5IseRXQ1FZE3lFIrU061Wt1Ur9d/BTDVZ/xMAJu5TolISHI3gLjPAnqakXwoiqKVEy9jzHvLo2tPXyD7tegSgB8AuHcwq7Xo51rrnU2aSqXyuIi82w/dMAD7zOtlliRJMl0ul93OgztmuA/AqsGtS8RMu6hX1T7GQRDcEobheefjeVC0LgAv1Gq1m5vThucp9LoAPKq1PtBU3Fp7kOQrffaA3AMmQRDcFIahmxoalzHmGwB3FAHwQpqm+0qlkvvjqgnnM8A4n6Eo6Fr7F9/jgMbnBxmIyLk0TU+QnCuVSn+2KmWM+RZA228iPZQcCuCs1jqTlUwHnAUQ9tk1m2bZAy5/K77kWch/mltrKyT1ADGzBxSRA25vZoBi2lzm5uaun5qaeoTkcx6DSmfa7AEBfESy7X8xH1gRmSa5TUTcmvZGH981bIcC+D9rytR9AzDT5hxDsA0Fx9DomaZsKHjFYwsg0+wjCPaPWGuXSF4zgmQjTyEiVx3gfpKvAtg88gqGm/B3ETn4L8mX8wm+wIVSAAAAAElFTkSuQmCC"],
  69. ["id" => 10006, "index" => 5, "zh" => "换货", "en" => "Exchange goods", "icon" => "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAAXNSR0IArs4c6QAAA61JREFUaEPtmk1oFVcUx//npk0LoX5AQdctpaUgQqmCFq1ubAulLQUf3b05swhCbSqIn6vgwq+VVVvJInPmZdFFuqjQTdtNa6GKKBTcWBAtya4oiCaipnGO3Ncoz5f3yNybeXnX4d3lzPn4/+Z/mblzZwhthohcBvBGu/OBHb/GzO+20kStDorIdgDjgUEsJKfCzD80B7UDvA7gtYUqBnb+BjO/viBgkiSfEtHZwMTnlfMJM//UGDzPQRG5CuCtvBVDilPVq3Ecv90WME3Tbar6S0iiXbUQ0QdRFP36JO8ZB0XkCoA1rkUDi7/CzGvnAYrIFgC/BSbWV85WZv7dJj91ME3TS6ra8lni26VbeUR0OYqidU8Ba7XahizLzndLUCf6GmM2VqvVC3UHReRPABs70aiLNc8z83uUJMn7RFSfr2UbqrqFROQcgM1lg5vj+YNGR0fXquq9/v7+R2WCnJmZ6SOigZZr0TKBlh9QROzzoq9MrjWwPLI3GS0pXB3LAt4H8HJJIR9YwDsAlpUU8G4P8Dl3tufgc24geg4utYN/A7gJYFNBjYNy8OzExMT24eHh2SRJjhHR3gIggwC8bozZU61Wf2wEqtVqH2VZlgBYvQjQ7gOq6l+Tk5PrrXPNICKyAsAogM89IbsP2CD86MDAwKFKpWKXjs8MEfkKwEkPSC/AfwH849GsbYqqLjfGvKKqR6IoOkNE814AkiR5h4i+B/CmQ28vwG+YeZdDk9yhIyMjywcHB++2ArRFPG4+XoDfMfOXuVUXGCgiZwDscCjpDkhEdhoddGhSWGiapodV9YBDQXdAAJcA2M9rS70LYDfFPgNQ37HOObwAc9YOIqwHGIQNixDh5eDPRHRaVc0iGjunElGmqjsBfOiQ7AV4jJn3OzQpLFREjgLY51DQC/BbZrZXcsmHiJwA8LVDY3dAOz2jKLJrw3lDVWlsbGyNMeYmEd1zEJIrdHZ29oSqcq7g/4O8AG8B2B1F0VhzIwsoIoNEdArAiwCmABS5sWz3b/s7CthQPJ2amtoxNDT0sLlhkiQfG2NEVV91ENOJUHcHm1RcU9UojuOWn79F5CKA9Z1QnrPmogHrfVT1YBzHR540HR8f75uenj5sjIm77GIxgHNg9geiL7IsW2WMsWvVEP6WKhQQRHTLvrzO3WByzqKOhhUL2FGpfsV7gH7XLZysnoPheOGnpO7gAwAv+eUHnzVDaZr+p6ovBC/VT2AdsKKqxwGs9KsRbNZtAHseA0FmnAEx00yNAAAAAElFTkSuQmCC"],
  70. ["id" => 10007, "index" => 6, "zh" => "年费管理", "en" => "Annual fee management", "icon" => "data:image/png;base64,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"],
  71. ["id" => 10008, "index" => 7, "zh" => "生成X-report", "en" => "生成X-report", "icon" => "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA8CAYAAADWibxkAAAAAXNSR0IArs4c6QAABQFJREFUaEPtW11oHFUU/s7sZlOxoqJQ0MoWSwKWqhURXwRRSvCnVl8UK2Rn72w0lUDeC7bEn4e+iJAHJTTcOyP+sQq2mCpFBPvgi4qiVfwhiFFrYkEF3a52u7lH7rqBJOzPzO7MdEjnvgwMZ87Pd88999xz7hCaQ0r5FBE9CeCalXcJfL4J4MVarfbV4uLiH1NTU7pfHckwUErNAbi/X2YRfn9Gaz1SKpW+CFsGKaVeArA/bMZh8tNa74rCeKOjAYDDVDYCXs8KIQ6t5iul3EdEu5n5asuyzmqtTzqOM9OL7KQD8C+AK4UQ5tkYSikXgN3C2BNCiHuCgpBoAIhorlgsPrBilOu6e5n5WDsjmfkxx3FeDwJCogEAcEAIcXjV7J8AMNIBgPccx7lvwwBARHuKxeJxY1C5XM5Uq9Uls+47GPhdsVi8gYh8x7VEe8Dq6C+lvI6Ifuoyu0u1Wm37+Ph41a8XJBmA88vLy0NjY2MLzeC3C8DnXQz7NZPJDBcKhbMbAYC/MpnMUKFQONME4DYAH3cx7HStVhveKB7wN4BhIcSSMdp13VuZ+dMUgM4IpB6wYZYAEVWYeehiXgKwLGurbduno44BDhFtZua6360jajoymQzzstb61VKpZIJhdEEwamPC4j87O7szk8mcCn0XCEvBqPl4nneL1vqzixKAcrl8SaVSeYOI9sYCgFJqCMDLRFRnZt8Hiwi8oCGbiK5n5q0++AfPA1ox9TzvJq116PU3Hwb0SxIOAFLKHUT0db/aXIDvUwACZ4KtZin1gHQJpDEgDYIBdgFTsfkHQDaiqF8noku7FENXRMe6C5xjZpHL5Y7Pz89X8/l8JAAsLCzU8/n8ZgAOgOdjyQT97ALMfNBxnOcimvWWbJVSpunxaAeZ8XkAMz/kOE7bLk0UwCilngFwMBEAAPhICHFHFIa24qmU2gTgGwDbkgKA0eMTAO8zc4WIIokBplBjWdZlzPwIgO2JiQFxzXxAOfHFgICKxUWeApAehoK2xtLTYAsE/CRCcS3qgHIuSAw4B6Dv+3pdDDVb7IAPMNYAwMyNa4CdLkw0CNYPvx7AzI8DODY4OBhpU0Vrvaler48BMJlgp7EGACnlnUTkATCTtL64O8jMf/YDwGEhxAEfsxIaiVLqKIAH/WaCUso9RPROJwV6BmD1/Z3QLOzCyHXdQ8z8tF8AXNcdYWZzsart6BkAAB8KIe6Ky/iZmZmBXC5nKtWmZ9FurFkCUQNglDgJ4GjUjVXLssx6NfWAHUFiQBwAxOUAfuXE7gF+FYuLLgVg9VkgXQK97gI+LyPE5dZB5ISzBDzPG9Zaf2uyyCDSE0AbDgBKqSsA/Ajg8gQYFUSFn5uXKxv/F3ied6/W+t3AiZD5wHXdU8y8M4j0BNAuVavVoYmJiYrRRUp5NxF90CsArzHzvgQYFUSF89lsNj86OrpoPmredPm+JwD8oBdEs7hoLcu62bbtL428Zvr8m/ntpp38jkHOdV1T8t4dl/JhyGHmUcdxXlnhJaWcIaIn2vD+v2DQbhw5cmTLwMDAL8wcSc0/DIPX8yCit4rF4sMr7z3Pu0prbQ5RW9bTMvP+rtuclPJ2y7LmfHZno7ApKE/NzNscxzE7QmN4nnctM08xszm9mg7TD5ZlvWDb9ttdATAMjCdks1nTkys1GQRVKm76RcuybrRt+/f1gqenpwcnJydNhagx/gM5BXQ2oojGlAAAAABJRU5ErkJggg=="],
  72. ["id" => 10009, "index" => 8, "zh" => "生成Z-report", "en" => "生成Z-report", "icon" => "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABACAYAAABGHBTIAAAAAXNSR0IArs4c6QAAAzhJREFUaEPtW89rE0EU/t7WBH+0FQ8iKjn6A29qi4L/gHjyJkKh2eZQPYooeJHgRYQevGkOu5NCQW96UfAPEBSL3kT0GFTUg7RpVRI7T6ZE0bRmZrOTzS47uc43b9733ps3b99MCBF/QRBMeJ53HsAJAAcAbIsoIi78O4B3AJ5LKe9VKpXFKAIpCjgMwzkiuhxlTgLY277vXzJdx5iwEOI+gHOmghPGPfF9/7TJmkaEwzC8RURXTQQOC0NEc+Vy+YpufS3h+fn5o1LKlzpBaRj3PO/Y9PT0q166aAkLIe4AuJAGQgY63PV9/2IswvV6/QUzTxgsNnQIES2Wy+XJvgnXarVCsVhsANhjyIaJaJWZ2RDfE0ZExMw7AGgjsSPoU6vVKs3Ozrb/J7inoIWFhfF2u/0RwHYTAkS0MjIycrDVaq2Y4HWYYrE4ura29paZR3XYzvi3QqGwd2pqarkvwkEQjHme9x7AmOGCy77v7zTEGsGEEEsAxo3AQFNKub9SqTQd4Y4FeoZ0VA+nIKQT9/Cwk1bihA232sBgjnC3aa3u4YH5zVyw87DzcK9oiXosmUfewJCJh3S+jqU8Fh6ulo67W1P98ZDHkM5X0oobvhbmJ34sWdA5lghH2JWWrrT8ywKulgasHjux0pNqVm/sW9tNWrYLi7iEN+lb2yUMwHqtHJd0V+kZj7BSpktg2glr9funp1WtVr1SqaTuctZ/3SGT9pDeTL9Go7FarVblb07rhDvvNq4BULeEu/4MbkwKaU9am+n3FcCilPKmeg9CQRAc8jzvTdy9lIX5UsrDJIR4AOBsFhS2oONDRfgzgN0WhGVBxBdFWL172poFbS3o+IPq9XozwoWzhTWHJ0JlceVhdVtueuE9PG3trNx0hO0YMrVSnIdT6xpLiln3sNXSs493Wjq72CVs++Oij3dayRIexPdyxKsWR7jLAi6kdSGhG89X0tJZIwXjdkM6BYR0KjjCOgtlfTyHHs5jAyBfLR4hhHrivy/rm9NQ/w+q4/EIwBnDCVmHPVZNvOMAnjHzlqyz6aU/Ef0EcHL9qiUMwyNEdJ2ITjGz1X+lDNuIRLTEzE+Z+cbMzMzrXwaWnFVQWDK4AAAAAElFTkSuQmCC"],
  73. ["id" => 10010, "index" => 9, "zh" => "登出", "en" => "Logoff", "icon" => "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAAAXNSR0IArs4c6QAABIlJREFUaEPtm0+IW0Ucx3+/9zYoLNSj4GUrinbbwlqstbW9iBW89CK4iK6b+U2COSiCgqDUQ/AgVFpW8Q8ekszbdVEWCl4qKoqoqMX/tqLiwdZFir1YqIXWbJL5lSm7JWvfJvOSmdeXrHNMZr6/32d+8+b/IMSkKIoe1VoLRNwV939Kv51k5mellAs+7GG7qFJqEyK+yczbfRjrRZOZ75VSftRL2U5lLoNXq9U9QRC8CwAbXBvpU+9MLpe7cWpq6p8+dVYVvwQ+Ozu7S2v9OQAELsVdaQVBcH8+n3/HlZ7RwXK5HIyNjf0JADe4FHapxcxPSykPutTEWq1WQsQ3XIp60HqMiF53qWvAv0fEbS5FXWsFQXBnPp//2qUuKqXYpaBrLUQ8IoTY51w34+C/a623FQqFc1kCrwNAy/FIYEaVJgCcQsTD9Xr9QKlUOusa+lKvnjTizHwUEQ8i4jFmbjGzsyFQa220GsVicdEHbLtmInBEfFsI8ZBvp9LQTwJ+nIgm0nAqDRvW4Mz8gJTycBpOpWHDFpy11uOFQuG3NJxKw4YtuOnBNxHRH2k4ZWtjfn5+Q6PReBERb2LmI0T0sm1ZW/ALYRhumZ6ePmkr7DufUupaAPgMAO5os3WAiJ6xsW0L/i8zb5FSnrARTSNPFEW7mdmsKFclZn5ESjnfzYeBBVdK3QcA78UBBkEwkc/nj3eCH1jwWq22FxE/XAPudC6Xu7XT5sWwgpv6+ISI7l4r6sMMbphfI6LH4+CHHRwQsSiEqP4XfujBDTAz75ZSftnLIiVzw1mtVtuMiD93G7aW/z/XarU2FovFMyv5vUc8iiIzq9oMACEiaktHO2ZjZrNmvx0Ank+g9xUR7fQOPjc3N95qtWYAYK+BTuCgt6zty2ovEV+GPgoA13mj6F34SSJ6yQt4FEXfZOkYKmZau885uFLKLBqcbgX3Htw1S573Af4UABzy4KxTyf/Bu1Sn9Tg+IE39tPOImwocgM5tpxfwLA9nzCyllMoLuIl6FicwAPAKET1h/PMGvtJnVCqVm0dGRq5HxIarbrnZbNbDMNzDzK8m0PyYiO7xPmVN4FBPWavV6kQQBD9aFv5rdHR04+Tk5NLAg3fZelpVH4i4XQjx3bAsSzvtuV1mZOYH466Mef/GLZti4mw2EUfEGSGEmUlekYYZ/AMiMlvQsWlYwU8tLS3dUiqVzg8deKcDheVTn186fT+DHPG7EPGLGLiHieitbp2GLXhWDw0/BYAdbZAvENH+btBJZm5ZPiZ+DhHHtdYLNoeFSScwZmN+qxDCdjvXptKvah7bpm425WMnAlfV+z6MW4MDwDEiuq0PW5kqmgTcOL6wuLg4VS6XzYb+QKek4AbWHLjPIOJPzPx3GIbYbDZXvXTotUYye8EvBuiCWdP3ChpTLrtXOh1C2khl8hKvjeN95/F5bfsHAMh0b+3ror4EgCtuDPQdKrcC7p9mGP+UUr+am4tufXWn5uUxjnGvUqlsDcPwWwC4xp277pS8PL9acW/57dn76+rB3Qr8unxi2d4w18Oj2ovkO/nisapEgAAAAABJRU5ErkJggg=="]
  74. ];
  75. }
  76. function compare($num, $array)
  77. {
  78. $min_num = $num;
  79. $index = null;
  80. if ($num > 0) {
  81. foreach ($array as $key => $el) {
  82. $now_price = $num;
  83. if ($el['type'] == 1) {
  84. $now_price = $num - $el['reduced_price'];
  85. } else {
  86. if ($el['discount'] > 0) {
  87. $now_price = $num - ($num * ($el['discount'] / 100));
  88. }
  89. }
  90. if ($min_num == null) {
  91. $min_num = $now_price;
  92. } else {
  93. if ($now_price < $min_num) {
  94. $min_num = $now_price;
  95. $index = $key;
  96. }
  97. }
  98. }
  99. }
  100. return ['min_num' => fixed2Float(
  101. $min_num > 0 ? $min_num : 0
  102. ), 'item' => $index == null ? null : $array[$index]];
  103. }
  104. function fmtN_A($value = null, $def = "#N/A")
  105. {
  106. return $value != null && strlen(strval($value)) > 0 ? $value : $def;
  107. }