Commit 5538b62a4def7e8ccc4d790507c0dd950bee00db

Authored by Anastasia
2 parents 04e48022 dc83da45

Merge remote-tracking branch 'origin/master'

Showing 39 changed files with 566 additions and 130 deletions   Show diff stats
backend/actions/Index.php 100644 → 100755
backend/controllers/ExportController.php 100644 → 100755
... ... @@ -4,10 +4,15 @@ namespace backend\controllers;
4 4  
5 5  
6 6 use yii\web\Controller;
7   -use common\models\Customer;
8 7 use yii\filters\VerbFilter;
9 8 use common\models\dummy\DateModel;
10 9 use Yii;
  10 +use common\models\Customer;
  11 +use PhpOffice\PhpSpreadsheet\Spreadsheet;
  12 +use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  13 +use console\controllers\PdfController;
  14 +
  15 +
11 16  
12 17 class ExportController extends Controller{
13 18  
... ... @@ -45,22 +50,28 @@ class ExportController extends Controller{
45 50  
46 51 public function actionView(){
47 52  
  53 +
48 54 $model=new DateModel();
49 55 $model->load(Yii::$app->request->post());
50   - #die(var_dump($model->attributes));
51   - $date1=(new \DateTime($model->timeFrom))->getTimestamp();
52   - $date2=(new \DateTime($model->timeTo))->getTimestamp();
53   -// die(var_dump($date1,$date2));
54   -
55   - $data = Customer::find()
56   - ->where([
57   - 'between',
58   - 'created_at',
59   - $date1,
60   - $date2
61   - ])
62   - ->all();
63   - die(var_dump($_POST));
  56 +
  57 + $controller=new PdfController('pdf',Yii::$app);
  58 +
  59 + $a=$controller->runAction('view',[
  60 + $model
  61 + ]);
  62 + $exportInfo = json_decode($a);
  63 + if($exportInfo->status==false){
  64 + # выдать что данных нету
  65 + return $this->render('index',[
  66 + 'status' => false,
  67 + 'model' => $model,
  68 + 'reason' => $exportInfo->reason,
  69 + ]);
  70 + }
  71 + else{
  72 + return Yii::$app->response->sendFile("../../frontend/web/files/xls/".$exportInfo->file);
  73 + }
  74 +
64 75 }
65 76  
66 77  
... ...
backend/controllers/RequestController.php 100644 → 100755
backend/models/Search.php 100644 → 100755
backend/views/export/index.php 100644 → 100755
... ... @@ -50,7 +50,7 @@ JS;
50 50 <?php
51 51 $panel = Panel::begin(
52 52 [
53   - 'header' => 'asdasda',
  53 + 'header' => 'Excel отчет по заявкам',
54 54 ]
55 55 )
56 56 ?>
... ... @@ -75,7 +75,7 @@ JS;
75 75  
76 76 </div>
77 77 <div class="form-search-btn-wr">
78   - <?= Html::submitButton('test1', [ 'class' => 'btn btn-success' ]) ?>
  78 + <?= Html::submitButton('Получить отчет', [ 'class' => 'btn btn-success' ]) ?>
79 79 </div>
80 80  
81 81  
... ... @@ -85,4 +85,8 @@ JS;
85 85  
86 86 <?php
87 87 $panel::end();
88   -?>
89 88 \ No newline at end of file
  89 +?>
  90 +<?php if(isset($status))
  91 + echo "<h2>{$reason}</h2>";
  92 +
  93 + ?>
... ...
backend/views/layouts/menu_items.php
... ... @@ -54,6 +54,18 @@
54 54 ],
55 55 ],
56 56 ],
  57 + [
  58 + 'label' => \Yii::t('core', 'Отчеты'),
  59 + 'url' => '#',
  60 + 'template' => '<a href="#"><b class="static"></b><span>{label}</span>{badge}</a>',
  61 + 'items' => [
  62 + [
  63 + 'label' => \Yii::t('core', 'Заявки на посещение'),
  64 + 'url' => [ '/export/index' ],
  65 +
  66 + ],
  67 + ],
  68 + ],
57 69 // [
58 70 // 'label' => \Yii::t('core', 'SEO'),
59 71 // 'url' => '#',
... ...
backend/views/request/update.php 100644 → 100755
common/helpers/datePickerData.php 100644 → 100755
common/mail/request.php 100644 → 100755
... ... @@ -101,7 +101,7 @@
101 101 echo "Английский";
102 102 break;
103 103 case 4:
104   - echo "Французкий";
  104 + echo "Французcкий";
105 105 break;
106 106 default:
107 107 echo "Русский";
... ...
common/mail/thanks_1.php 100644 → 100755
common/mail/thanks_2.php 100644 → 100755
common/mail/thanks_3.php 100644 → 100755
common/mail/thanks_4.php 100644 → 100755
common/messages/en/app.php 100644 → 100755
... ... @@ -25,7 +25,7 @@ return [
25 25 'About' => 'About the event',
26 26  
27 27 'Orgs' => 'Organizers',
28   - 'Prog z' => 'PROGRAM OF THE EVENT',
  28 + 'Prog z' => 'PROGRAMME OF THE EVENT',
29 29 'Planning' => 'PLAN YOUR TRIP ',
30 30 '9F' => 'Ninth International Forum <br /> on Energy for Sustainable Development',
31 31 'Contacts' => 'CONTACTS',
... ...
common/messages/fr/app.php 100644 → 100755
common/messages/ru/app.php 100644 → 100755
common/messages/ua/app.php 100644 → 100755
common/models/Customer.php 100644 → 100755
common/models/dummy/DateModel.php 100644 → 100755
composer.json
... ... @@ -19,7 +19,8 @@
19 19 "require": {
20 20 "php": ">=7.0",
21 21 "alexandernst/yii2-device-detect": "0.0.12",
22   - "artweb/artbox-core" : ">0.0.10"
  22 + "artweb/artbox-core" : ">0.0.10",
  23 + "phpoffice/phpspreadsheet": "^1.4"
23 24 },
24 25 "require-dev": {
25 26 "yiisoft/yii2-debug": "~2.0.0",
... ...
composer.lock 100644 → 100755
1 1 {
2 2 "_readme": [
3 3 "This file locks the dependencies of your project to a known state",
4   - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
  4 + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 5 "This file is @generated automatically"
6 6 ],
7   - "hash": "163dd69cbf4410df8959165e28efb09e",
8   - "content-hash": "075f417c5bcd78cfc58694977cf459e9",
  7 + "content-hash": "caa8eb98c1ee9f02e6ac1b1984d9d4cb",
9 8 "packages": [
10 9 {
11 10 "name": "2amigos/yii2-tinymce-widget",
... ... @@ -65,7 +64,7 @@
65 64 "yii 2",
66 65 "yii2"
67 66 ],
68   - "time": "2017-06-09 14:12:14"
  67 + "time": "2017-06-09T14:12:14+00:00"
69 68 },
70 69 {
71 70 "name": "alexandernst/yii2-device-detect",
... ... @@ -113,7 +112,7 @@
113 112 "widget",
114 113 "yii2"
115 114 ],
116   - "time": "2017-08-07 16:37:25"
  115 + "time": "2017-08-07T16:37:25+00:00"
117 116 },
118 117 {
119 118 "name": "artweb/artbox-core",
... ... @@ -174,7 +173,7 @@
174 173 "BSD-3-Clause"
175 174 ],
176 175 "description": "Artbox core extension",
177   - "time": "2018-05-21 12:55:30"
  176 + "time": "2018-05-21T12:55:30+00:00"
178 177 },
179 178 {
180 179 "name": "bower-asset/amcharts",
... ... @@ -586,7 +585,7 @@
586 585 "markdown",
587 586 "markdown-extra"
588 587 ],
589   - "time": "2017-07-16 21:13:23"
  588 + "time": "2017-07-16T21:13:23+00:00"
590 589 },
591 590 {
592 591 "name": "container-interop/container-interop",
... ... @@ -617,7 +616,7 @@
617 616 ],
618 617 "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
619 618 "homepage": "https://github.com/container-interop/container-interop",
620   - "time": "2017-02-14 19:40:03"
  619 + "time": "2017-02-14T19:40:03+00:00"
621 620 },
622 621 {
623 622 "name": "doctrine/lexer",
... ... @@ -671,7 +670,7 @@
671 670 "lexer",
672 671 "parser"
673 672 ],
674   - "time": "2014-09-09 13:34:57"
  673 + "time": "2014-09-09T13:34:57+00:00"
675 674 },
676 675 {
677 676 "name": "egulias/email-validator",
... ... @@ -728,7 +727,7 @@
728 727 "validation",
729 728 "validator"
730 729 ],
731   - "time": "2018-08-16 20:49:45"
  730 + "time": "2018-08-16T20:49:45+00:00"
732 731 },
733 732 {
734 733 "name": "ezyang/htmlpurifier",
... ... @@ -775,7 +774,7 @@
775 774 "keywords": [
776 775 "html"
777 776 ],
778   - "time": "2018-02-23 01:58:20"
  777 + "time": "2018-02-23T01:58:20+00:00"
779 778 },
780 779 {
781 780 "name": "firebase/php-jwt",
... ... @@ -821,7 +820,7 @@
821 820 ],
822 821 "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
823 822 "homepage": "https://github.com/firebase/php-jwt",
824   - "time": "2017-06-27 22:17:23"
  823 + "time": "2017-06-27T22:17:23+00:00"
825 824 },
826 825 {
827 826 "name": "fortawesome/font-awesome",
... ... @@ -869,7 +868,7 @@
869 868 "font",
870 869 "icon"
871 870 ],
872   - "time": "2016-10-24 15:52:54"
  871 + "time": "2016-10-24T15:52:54+00:00"
873 872 },
874 873 {
875 874 "name": "google/apiclient",
... ... @@ -928,7 +927,7 @@
928 927 "keywords": [
929 928 "google"
930 929 ],
931   - "time": "2018-06-20 15:52:20"
  930 + "time": "2018-06-20T15:52:20+00:00"
932 931 },
933 932 {
934 933 "name": "google/apiclient-services",
... ... @@ -965,7 +964,7 @@
965 964 "keywords": [
966 965 "google"
967 966 ],
968   - "time": "2018-09-03 00:22:49"
  967 + "time": "2018-09-03T00:22:49+00:00"
969 968 },
970 969 {
971 970 "name": "google/auth",
... ... @@ -1012,7 +1011,7 @@
1012 1011 "google",
1013 1012 "oauth2"
1014 1013 ],
1015   - "time": "2018-08-27 19:47:35"
  1014 + "time": "2018-08-27T19:47:35+00:00"
1016 1015 },
1017 1016 {
1018 1017 "name": "guzzlehttp/guzzle",
... ... @@ -1077,7 +1076,7 @@
1077 1076 "rest",
1078 1077 "web service"
1079 1078 ],
1080   - "time": "2018-04-22 15:46:56"
  1079 + "time": "2018-04-22T15:46:56+00:00"
1081 1080 },
1082 1081 {
1083 1082 "name": "guzzlehttp/promises",
... ... @@ -1128,7 +1127,7 @@
1128 1127 "keywords": [
1129 1128 "promise"
1130 1129 ],
1131   - "time": "2016-12-20 10:07:11"
  1130 + "time": "2016-12-20T10:07:11+00:00"
1132 1131 },
1133 1132 {
1134 1133 "name": "guzzlehttp/psr7",
... ... @@ -1193,7 +1192,7 @@
1193 1192 "uri",
1194 1193 "url"
1195 1194 ],
1196   - "time": "2017-03-20 17:10:46"
  1195 + "time": "2017-03-20T17:10:46+00:00"
1197 1196 },
1198 1197 {
1199 1198 "name": "hiqdev/yii2-asset-icheck",
... ... @@ -1265,7 +1264,7 @@
1265 1264 "iCheck",
1266 1265 "yii2"
1267 1266 ],
1268   - "time": "2016-03-30 10:59:26"
  1267 + "time": "2016-03-30T10:59:26+00:00"
1269 1268 },
1270 1269 {
1271 1270 "name": "hiqdev/yii2-asset-pnotify",
... ... @@ -1327,7 +1326,7 @@
1327 1326 "pnotify",
1328 1327 "yii2"
1329 1328 ],
1330   - "time": "2015-09-09 15:16:38"
  1329 + "time": "2015-09-09T15:16:38+00:00"
1331 1330 },
1332 1331 {
1333 1332 "name": "imagine/imagine",
... ... @@ -1385,7 +1384,7 @@
1385 1384 "image manipulation",
1386 1385 "image processing"
1387 1386 ],
1388   - "time": "2017-05-16 10:31:22"
  1387 + "time": "2017-05-16T10:31:22+00:00"
1389 1388 },
1390 1389 {
1391 1390 "name": "intervention/httpauth",
... ... @@ -1438,7 +1437,7 @@
1438 1437 "http",
1439 1438 "laravel"
1440 1439 ],
1441   - "time": "2017-06-28 17:37:25"
  1440 + "time": "2017-06-28T17:37:25+00:00"
1442 1441 },
1443 1442 {
1444 1443 "name": "kartik-v/bootstrap-fileinput",
... ... @@ -1491,7 +1490,7 @@
1491 1490 "progress",
1492 1491 "upload"
1493 1492 ],
1494   - "time": "2018-08-30 02:05:20"
  1493 + "time": "2018-08-30T02:05:20+00:00"
1495 1494 },
1496 1495 {
1497 1496 "name": "kartik-v/yii2-krajee-base",
... ... @@ -1542,7 +1541,7 @@
1542 1541 "widget",
1543 1542 "yii2"
1544 1543 ],
1545   - "time": "2018-08-29 02:57:02"
  1544 + "time": "2018-08-29T02:57:02+00:00"
1546 1545 },
1547 1546 {
1548 1547 "name": "kartik-v/yii2-widget-colorinput",
... ... @@ -1596,7 +1595,7 @@
1596 1595 "widget",
1597 1596 "yii2"
1598 1597 ],
1599   - "time": "2016-01-14 11:15:49"
  1598 + "time": "2016-01-14T11:15:49+00:00"
1600 1599 },
1601 1600 {
1602 1601 "name": "kartik-v/yii2-widget-datepicker",
... ... @@ -1650,7 +1649,7 @@
1650 1649 "widget",
1651 1650 "yii2"
1652 1651 ],
1653   - "time": "2018-08-29 12:10:45"
  1652 + "time": "2018-08-29T12:10:45+00:00"
1654 1653 },
1655 1654 {
1656 1655 "name": "kartik-v/yii2-widget-fileinput",
... ... @@ -1705,7 +1704,7 @@
1705 1704 "widget",
1706 1705 "yii2"
1707 1706 ],
1708   - "time": "2017-05-25 20:12:30"
  1707 + "time": "2017-05-25T20:12:30+00:00"
1709 1708 },
1710 1709 {
1711 1710 "name": "kartik-v/yii2-widget-select2",
... ... @@ -1758,7 +1757,102 @@
1758 1757 "widget",
1759 1758 "yii2"
1760 1759 ],
1761   - "time": "2018-08-17 07:47:43"
  1760 + "time": "2018-08-17T07:47:43+00:00"
  1761 + },
  1762 + {
  1763 + "name": "markbaker/complex",
  1764 + "version": "1.4.6",
  1765 + "source": {
  1766 + "type": "git",
  1767 + "url": "https://github.com/MarkBaker/PHPComplex.git",
  1768 + "reference": "a78d82ae4e682c3809fc3023d1b0ce654f6ab12b"
  1769 + },
  1770 + "dist": {
  1771 + "type": "zip",
  1772 + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/a78d82ae4e682c3809fc3023d1b0ce654f6ab12b",
  1773 + "reference": "a78d82ae4e682c3809fc3023d1b0ce654f6ab12b",
  1774 + "shasum": ""
  1775 + },
  1776 + "require": {
  1777 + "php": "^5.6.0|^7.0.0"
  1778 + },
  1779 + "require-dev": {
  1780 + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3",
  1781 + "phpcompatibility/php-compatibility": "^8.0",
  1782 + "phpdocumentor/phpdocumentor": "2.*",
  1783 + "phploc/phploc": "2.*",
  1784 + "phpmd/phpmd": "2.*",
  1785 + "phpunit/phpunit": "^4.8.35|^5.4.0",
  1786 + "sebastian/phpcpd": "2.*",
  1787 + "squizlabs/php_codesniffer": "^3.3.0"
  1788 + },
  1789 + "type": "library",
  1790 + "autoload": {
  1791 + "psr-4": {
  1792 + "Complex\\": "classes/src/"
  1793 + },
  1794 + "files": [
  1795 + "classes/src/functions/abs.php",
  1796 + "classes/src/functions/acos.php",
  1797 + "classes/src/functions/acosh.php",
  1798 + "classes/src/functions/acot.php",
  1799 + "classes/src/functions/acoth.php",
  1800 + "classes/src/functions/acsc.php",
  1801 + "classes/src/functions/acsch.php",
  1802 + "classes/src/functions/argument.php",
  1803 + "classes/src/functions/asec.php",
  1804 + "classes/src/functions/asech.php",
  1805 + "classes/src/functions/asin.php",
  1806 + "classes/src/functions/asinh.php",
  1807 + "classes/src/functions/atan.php",
  1808 + "classes/src/functions/atanh.php",
  1809 + "classes/src/functions/conjugate.php",
  1810 + "classes/src/functions/cos.php",
  1811 + "classes/src/functions/cosh.php",
  1812 + "classes/src/functions/cot.php",
  1813 + "classes/src/functions/coth.php",
  1814 + "classes/src/functions/csc.php",
  1815 + "classes/src/functions/csch.php",
  1816 + "classes/src/functions/exp.php",
  1817 + "classes/src/functions/inverse.php",
  1818 + "classes/src/functions/ln.php",
  1819 + "classes/src/functions/log2.php",
  1820 + "classes/src/functions/log10.php",
  1821 + "classes/src/functions/negative.php",
  1822 + "classes/src/functions/pow.php",
  1823 + "classes/src/functions/rho.php",
  1824 + "classes/src/functions/sec.php",
  1825 + "classes/src/functions/sech.php",
  1826 + "classes/src/functions/sin.php",
  1827 + "classes/src/functions/sinh.php",
  1828 + "classes/src/functions/sqrt.php",
  1829 + "classes/src/functions/tan.php",
  1830 + "classes/src/functions/tanh.php",
  1831 + "classes/src/functions/theta.php",
  1832 + "classes/src/operations/add.php",
  1833 + "classes/src/operations/subtract.php",
  1834 + "classes/src/operations/multiply.php",
  1835 + "classes/src/operations/divideby.php",
  1836 + "classes/src/operations/divideinto.php"
  1837 + ]
  1838 + },
  1839 + "notification-url": "https://packagist.org/downloads/",
  1840 + "license": [
  1841 + "MIT"
  1842 + ],
  1843 + "authors": [
  1844 + {
  1845 + "name": "Mark Baker",
  1846 + "email": "mark@lange.demon.co.uk"
  1847 + }
  1848 + ],
  1849 + "description": "PHP Class for working with complex numbers",
  1850 + "homepage": "https://github.com/MarkBaker/PHPComplex",
  1851 + "keywords": [
  1852 + "complex",
  1853 + "mathematics"
  1854 + ],
  1855 + "time": "2018-07-31T08:38:40+00:00"
1762 1856 },
1763 1857 {
1764 1858 "name": "mobiledetect/mobiledetectlib",
... ... @@ -1810,7 +1904,7 @@
1810 1904 "mobile detector",
1811 1905 "php mobile detect"
1812 1906 ],
1813   - "time": "2018-09-01 15:05:15"
  1907 + "time": "2018-09-01T15:05:15+00:00"
1814 1908 },
1815 1909 {
1816 1910 "name": "monolog/monolog",
... ... @@ -1888,7 +1982,7 @@
1888 1982 "logging",
1889 1983 "psr-3"
1890 1984 ],
1891   - "time": "2017-06-19 01:22:40"
  1985 + "time": "2017-06-19T01:22:40+00:00"
1892 1986 },
1893 1987 {
1894 1988 "name": "mrclay/jsmin-php",
... ... @@ -1940,7 +2034,7 @@
1940 2034 "jsmin",
1941 2035 "minify"
1942 2036 ],
1943   - "time": "2015-03-30 15:04:42"
  2037 + "time": "2015-03-30T15:04:42+00:00"
1944 2038 },
1945 2039 {
1946 2040 "name": "mrclay/minify",
... ... @@ -2002,7 +2096,7 @@
2002 2096 ],
2003 2097 "description": "Minify is a PHP5 app that helps you follow several rules for client-side performance. It combines multiple CSS or Javascript files, removes unnecessary whitespace and comments, and serves them with gzip encoding and optimal client-side cache headers",
2004 2098 "homepage": "https://github.com/mrclay/minify",
2005   - "time": "2017-11-03 21:00:15"
  2099 + "time": "2017-11-03T21:00:15+00:00"
2006 2100 },
2007 2101 {
2008 2102 "name": "mrclay/props-dic",
... ... @@ -2054,7 +2148,7 @@
2054 2148 "di",
2055 2149 "di container"
2056 2150 ],
2057   - "time": "2016-02-10 18:59:20"
  2151 + "time": "2016-02-10T18:59:20+00:00"
2058 2152 },
2059 2153 {
2060 2154 "name": "natxet/CssMin",
... ... @@ -2101,7 +2195,7 @@
2101 2195 "css",
2102 2196 "minify"
2103 2197 ],
2104   - "time": "2018-01-09 11:15:01"
  2198 + "time": "2018-01-09T11:15:01+00:00"
2105 2199 },
2106 2200 {
2107 2201 "name": "noam148/yii2-image-manager",
... ... @@ -2150,7 +2244,7 @@
2150 2244 "widget",
2151 2245 "yii2"
2152 2246 ],
2153   - "time": "2018-06-08 17:29:40"
  2247 + "time": "2018-06-08T17:29:40+00:00"
2154 2248 },
2155 2249 {
2156 2250 "name": "noam148/yii2-image-resize",
... ... @@ -2196,7 +2290,94 @@
2196 2290 "resize",
2197 2291 "yii2"
2198 2292 ],
2199   - "time": "2018-02-18 19:23:04"
  2293 + "time": "2018-02-18T19:23:04+00:00"
  2294 + },
  2295 + {
  2296 + "name": "phpoffice/phpspreadsheet",
  2297 + "version": "1.4.0",
  2298 + "source": {
  2299 + "type": "git",
  2300 + "url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
  2301 + "reference": "125f462a718956f37d81305ca0df4f17cef0f3b9"
  2302 + },
  2303 + "dist": {
  2304 + "type": "zip",
  2305 + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/125f462a718956f37d81305ca0df4f17cef0f3b9",
  2306 + "reference": "125f462a718956f37d81305ca0df4f17cef0f3b9",
  2307 + "shasum": ""
  2308 + },
  2309 + "require": {
  2310 + "ext-ctype": "*",
  2311 + "ext-dom": "*",
  2312 + "ext-gd": "*",
  2313 + "ext-iconv": "*",
  2314 + "ext-libxml": "*",
  2315 + "ext-mbstring": "*",
  2316 + "ext-simplexml": "*",
  2317 + "ext-xml": "*",
  2318 + "ext-xmlreader": "*",
  2319 + "ext-xmlwriter": "*",
  2320 + "ext-zip": "*",
  2321 + "ext-zlib": "*",
  2322 + "markbaker/complex": "^1.4.1",
  2323 + "php": "^5.6|^7.0",
  2324 + "psr/simple-cache": "^1.0"
  2325 + },
  2326 + "require-dev": {
  2327 + "dompdf/dompdf": "^0.8.0",
  2328 + "friendsofphp/php-cs-fixer": "@stable",
  2329 + "jpgraph/jpgraph": "^4.0",
  2330 + "mpdf/mpdf": "^7.0.0",
  2331 + "phpunit/phpunit": "^5.7",
  2332 + "squizlabs/php_codesniffer": "^3.3",
  2333 + "tecnickcom/tcpdf": "^6.2"
  2334 + },
  2335 + "suggest": {
  2336 + "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
  2337 + "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
  2338 + "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
  2339 + "tecnick.com/tcpdf": "Option for rendering PDF with PDF Writer"
  2340 + },
  2341 + "type": "library",
  2342 + "autoload": {
  2343 + "psr-4": {
  2344 + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
  2345 + }
  2346 + },
  2347 + "notification-url": "https://packagist.org/downloads/",
  2348 + "license": [
  2349 + "LGPL-2.1-or-later"
  2350 + ],
  2351 + "authors": [
  2352 + {
  2353 + "name": "Maarten Balliauw",
  2354 + "homepage": "http://blog.maartenballiauw.be"
  2355 + },
  2356 + {
  2357 + "name": "Erik Tilt"
  2358 + },
  2359 + {
  2360 + "name": "Franck Lefevre",
  2361 + "homepage": "http://rootslabs.net"
  2362 + },
  2363 + {
  2364 + "name": "Mark Baker",
  2365 + "homepage": "http://markbakeruk.net"
  2366 + }
  2367 + ],
  2368 + "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
  2369 + "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
  2370 + "keywords": [
  2371 + "OpenXML",
  2372 + "excel",
  2373 + "gnumeric",
  2374 + "ods",
  2375 + "php",
  2376 + "spreadsheet",
  2377 + "xls",
  2378 + "xlsx"
  2379 + ],
  2380 + "time": "2018-08-06T02:58:06+00:00"
2200 2381 },
2201 2382 {
2202 2383 "name": "phpseclib/phpseclib",
... ... @@ -2288,7 +2469,7 @@
2288 2469 "x.509",
2289 2470 "x509"
2290 2471 ],
2291   - "time": "2018-04-15 16:55:05"
  2472 + "time": "2018-04-15T16:55:05+00:00"
2292 2473 },
2293 2474 {
2294 2475 "name": "pimple/pimple",
... ... @@ -2338,7 +2519,7 @@
2338 2519 "container",
2339 2520 "dependency injection"
2340 2521 ],
2341   - "time": "2018-01-21 07:42:36"
  2522 + "time": "2018-01-21T07:42:36+00:00"
2342 2523 },
2343 2524 {
2344 2525 "name": "psr/cache",
... ... @@ -2384,7 +2565,7 @@
2384 2565 "psr",
2385 2566 "psr-6"
2386 2567 ],
2387   - "time": "2016-08-06 20:24:11"
  2568 + "time": "2016-08-06T20:24:11+00:00"
2388 2569 },
2389 2570 {
2390 2571 "name": "psr/container",
... ... @@ -2433,7 +2614,7 @@
2433 2614 "container-interop",
2434 2615 "psr"
2435 2616 ],
2436   - "time": "2017-02-14 16:28:37"
  2617 + "time": "2017-02-14T16:28:37+00:00"
2437 2618 },
2438 2619 {
2439 2620 "name": "psr/http-message",
... ... @@ -2483,7 +2664,7 @@
2483 2664 "request",
2484 2665 "response"
2485 2666 ],
2486   - "time": "2016-08-06 14:39:51"
  2667 + "time": "2016-08-06T14:39:51+00:00"
2487 2668 },
2488 2669 {
2489 2670 "name": "psr/log",
... ... @@ -2530,7 +2711,55 @@
2530 2711 "psr",
2531 2712 "psr-3"
2532 2713 ],
2533   - "time": "2016-10-10 12:19:37"
  2714 + "time": "2016-10-10T12:19:37+00:00"
  2715 + },
  2716 + {
  2717 + "name": "psr/simple-cache",
  2718 + "version": "1.0.1",
  2719 + "source": {
  2720 + "type": "git",
  2721 + "url": "https://github.com/php-fig/simple-cache.git",
  2722 + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
  2723 + },
  2724 + "dist": {
  2725 + "type": "zip",
  2726 + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
  2727 + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
  2728 + "shasum": ""
  2729 + },
  2730 + "require": {
  2731 + "php": ">=5.3.0"
  2732 + },
  2733 + "type": "library",
  2734 + "extra": {
  2735 + "branch-alias": {
  2736 + "dev-master": "1.0.x-dev"
  2737 + }
  2738 + },
  2739 + "autoload": {
  2740 + "psr-4": {
  2741 + "Psr\\SimpleCache\\": "src/"
  2742 + }
  2743 + },
  2744 + "notification-url": "https://packagist.org/downloads/",
  2745 + "license": [
  2746 + "MIT"
  2747 + ],
  2748 + "authors": [
  2749 + {
  2750 + "name": "PHP-FIG",
  2751 + "homepage": "http://www.php-fig.org/"
  2752 + }
  2753 + ],
  2754 + "description": "Common interfaces for simple caching",
  2755 + "keywords": [
  2756 + "cache",
  2757 + "caching",
  2758 + "psr",
  2759 + "psr-16",
  2760 + "simple-cache"
  2761 + ],
  2762 + "time": "2017-10-23T01:57:42+00:00"
2534 2763 },
2535 2764 {
2536 2765 "name": "rmrevin/yii2-fontawesome",
... ... @@ -2582,7 +2811,7 @@
2582 2811 "font",
2583 2812 "yii"
2584 2813 ],
2585   - "time": "2017-01-11 14:05:47"
  2814 + "time": "2017-01-11T14:05:47+00:00"
2586 2815 },
2587 2816 {
2588 2817 "name": "skeeks/yii2-assets-auto-compress",
... ... @@ -2639,7 +2868,7 @@
2639 2868 "skeeks",
2640 2869 "yii"
2641 2870 ],
2642   - "time": "2018-06-07 10:04:05"
  2871 + "time": "2018-06-07T10:04:05+00:00"
2643 2872 },
2644 2873 {
2645 2874 "name": "swiftmailer/swiftmailer",
... ... @@ -2698,7 +2927,7 @@
2698 2927 "mail",
2699 2928 "mailer"
2700 2929 ],
2701   - "time": "2018-07-13 07:04:35"
  2930 + "time": "2018-07-13T07:04:35+00:00"
2702 2931 },
2703 2932 {
2704 2933 "name": "tedivm/jshrink",
... ... @@ -2744,7 +2973,7 @@
2744 2973 "javascript",
2745 2974 "minifier"
2746 2975 ],
2747   - "time": "2017-12-08 00:59:56"
  2976 + "time": "2017-12-08T00:59:56+00:00"
2748 2977 },
2749 2978 {
2750 2979 "name": "tinymce/tinymce",
... ... @@ -2790,7 +3019,7 @@
2790 3019 "tinymce",
2791 3020 "wysiwyg"
2792 3021 ],
2793   - "time": "2018-08-09 09:17:07"
  3022 + "time": "2018-08-09T09:17:07+00:00"
2794 3023 },
2795 3024 {
2796 3025 "name": "tubalmartin/cssmin",
... ... @@ -2843,7 +3072,7 @@
2843 3072 "minify",
2844 3073 "yui"
2845 3074 ],
2846   - "time": "2018-01-15 15:26:51"
  3075 + "time": "2018-01-15T15:26:51+00:00"
2847 3076 },
2848 3077 {
2849 3078 "name": "yii2tech/ar-linkmany",
... ... @@ -2894,7 +3123,7 @@
2894 3123 "relaton",
2895 3124 "yii2"
2896 3125 ],
2897   - "time": "2018-02-09 14:02:04"
  3126 + "time": "2018-02-09T14:02:04+00:00"
2898 3127 },
2899 3128 {
2900 3129 "name": "yii2tech/ar-position",
... ... @@ -2943,7 +3172,7 @@
2943 3172 "sort",
2944 3173 "yii2"
2945 3174 ],
2946   - "time": "2017-11-01 10:56:01"
  3175 + "time": "2017-11-01T10:56:01+00:00"
2947 3176 },
2948 3177 {
2949 3178 "name": "yii2tech/ar-variation",
... ... @@ -2997,7 +3226,7 @@
2997 3226 "variator",
2998 3227 "yii2"
2999 3228 ],
3000   - "time": "2018-04-09 08:43:38"
  3229 + "time": "2018-04-09T08:43:38+00:00"
3001 3230 },
3002 3231 {
3003 3232 "name": "yii2tech/filedb",
... ... @@ -3045,7 +3274,7 @@
3045 3274 "static",
3046 3275 "yii2"
3047 3276 ],
3048   - "time": "2018-04-09 08:12:49"
  3277 + "time": "2018-04-09T08:12:49+00:00"
3049 3278 },
3050 3279 {
3051 3280 "name": "yiisoft/yii2",
... ... @@ -3145,7 +3374,7 @@
3145 3374 "framework",
3146 3375 "yii2"
3147 3376 ],
3148   - "time": "2018-03-21 18:36:53"
  3377 + "time": "2018-03-21T18:36:53+00:00"
3149 3378 },
3150 3379 {
3151 3380 "name": "yiisoft/yii2-bootstrap",
... ... @@ -3205,7 +3434,7 @@
3205 3434 "bootstrap",
3206 3435 "yii2"
3207 3436 ],
3208   - "time": "2018-02-16 10:41:52"
  3437 + "time": "2018-02-16T10:41:52+00:00"
3209 3438 },
3210 3439 {
3211 3440 "name": "yiisoft/yii2-composer",
... ... @@ -3259,7 +3488,7 @@
3259 3488 "extension installer",
3260 3489 "yii2"
3261 3490 ],
3262   - "time": "2018-07-05 15:44:47"
  3491 + "time": "2018-07-05T15:44:47+00:00"
3263 3492 },
3264 3493 {
3265 3494 "name": "yiisoft/yii2-httpclient",
... ... @@ -3306,7 +3535,7 @@
3306 3535 "httpclient",
3307 3536 "yii2"
3308 3537 ],
3309   - "time": "2018-02-13 15:11:30"
  3538 + "time": "2018-02-13T15:11:30+00:00"
3310 3539 },
3311 3540 {
3312 3541 "name": "yiisoft/yii2-imagine",
... ... @@ -3354,7 +3583,7 @@
3354 3583 "imagine",
3355 3584 "yii2"
3356 3585 ],
3357   - "time": "2018-02-22 11:57:06"
  3586 + "time": "2018-02-22T11:57:06+00:00"
3358 3587 },
3359 3588 {
3360 3589 "name": "yiisoft/yii2-jui",
... ... @@ -3400,7 +3629,7 @@
3400 3629 "jQuery UI",
3401 3630 "yii2"
3402 3631 ],
3403   - "time": "2017-11-25 15:32:29"
  3632 + "time": "2017-11-25T15:32:29+00:00"
3404 3633 },
3405 3634 {
3406 3635 "name": "yiisoft/yii2-swiftmailer",
... ... @@ -3450,7 +3679,7 @@
3450 3679 "swiftmailer",
3451 3680 "yii2"
3452 3681 ],
3453   - "time": "2018-04-24 23:17:42"
  3682 + "time": "2018-04-24T23:17:42+00:00"
3454 3683 },
3455 3684 {
3456 3685 "name": "yiister/yii2-gentelella",
... ... @@ -3508,7 +3737,7 @@
3508 3737 "theme",
3509 3738 "yii2"
3510 3739 ],
3511   - "time": "2017-11-12 16:49:22"
  3740 + "time": "2017-11-12T16:49:22+00:00"
3512 3741 }
3513 3742 ],
3514 3743 "packages-dev": [
... ... @@ -3569,7 +3798,7 @@
3569 3798 "gherkin",
3570 3799 "parser"
3571 3800 ],
3572   - "time": "2017-08-30 11:04:43"
  3801 + "time": "2017-08-30T11:04:43+00:00"
3573 3802 },
3574 3803 {
3575 3804 "name": "bower-asset/typeahead.js",
... ... @@ -3677,7 +3906,7 @@
3677 3906 "functional testing",
3678 3907 "unit testing"
3679 3908 ],
3680   - "time": "2018-08-01 07:46:24"
  3909 + "time": "2018-08-01T07:46:24+00:00"
3681 3910 },
3682 3911 {
3683 3912 "name": "codeception/phpunit-wrapper",
... ... @@ -3720,7 +3949,7 @@
3720 3949 }
3721 3950 ],
3722 3951 "description": "PHPUnit classes used by Codeception",
3723   - "time": "2018-08-28 23:24:24"
  3952 + "time": "2018-08-28T23:24:24+00:00"
3724 3953 },
3725 3954 {
3726 3955 "name": "codeception/stub",
... ... @@ -3750,7 +3979,7 @@
3750 3979 "MIT"
3751 3980 ],
3752 3981 "description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
3753   - "time": "2018-07-26 11:55:37"
  3982 + "time": "2018-07-26T11:55:37+00:00"
3754 3983 },
3755 3984 {
3756 3985 "name": "codeception/verify",
... ... @@ -3786,7 +4015,7 @@
3786 4015 }
3787 4016 ],
3788 4017 "description": "BDD assertion library for PHPUnit",
3789   - "time": "2017-01-09 10:58:51"
  4018 + "time": "2017-01-09T10:58:51+00:00"
3790 4019 },
3791 4020 {
3792 4021 "name": "doctrine/instantiator",
... ... @@ -3840,7 +4069,7 @@
3840 4069 "constructor",
3841 4070 "instantiate"
3842 4071 ],
3843   - "time": "2017-07-22 11:58:36"
  4072 + "time": "2017-07-22T11:58:36+00:00"
3844 4073 },
3845 4074 {
3846 4075 "name": "fzaninotto/faker",
... ... @@ -3890,7 +4119,7 @@
3890 4119 "faker",
3891 4120 "fixtures"
3892 4121 ],
3893   - "time": "2018-07-12 10:23:15"
  4122 + "time": "2018-07-12T10:23:15+00:00"
3894 4123 },
3895 4124 {
3896 4125 "name": "myclabs/deep-copy",
... ... @@ -3938,7 +4167,7 @@
3938 4167 "object",
3939 4168 "object graph"
3940 4169 ],
3941   - "time": "2018-06-11 23:09:50"
  4170 + "time": "2018-06-11T23:09:50+00:00"
3942 4171 },
3943 4172 {
3944 4173 "name": "phar-io/manifest",
... ... @@ -3993,7 +4222,7 @@
3993 4222 }
3994 4223 ],
3995 4224 "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
3996   - "time": "2018-07-08 19:23:20"
  4225 + "time": "2018-07-08T19:23:20+00:00"
3997 4226 },
3998 4227 {
3999 4228 "name": "phar-io/version",
... ... @@ -4040,7 +4269,7 @@
4040 4269 }
4041 4270 ],
4042 4271 "description": "Library for handling version information and constraints",
4043   - "time": "2018-07-08 19:19:57"
  4272 + "time": "2018-07-08T19:19:57+00:00"
4044 4273 },
4045 4274 {
4046 4275 "name": "phpdocumentor/reflection-common",
... ... @@ -4094,7 +4323,7 @@
4094 4323 "reflection",
4095 4324 "static analysis"
4096 4325 ],
4097   - "time": "2017-09-11 18:02:19"
  4326 + "time": "2017-09-11T18:02:19+00:00"
4098 4327 },
4099 4328 {
4100 4329 "name": "phpdocumentor/reflection-docblock",
... ... @@ -4145,7 +4374,7 @@
4145 4374 }
4146 4375 ],
4147 4376 "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
4148   - "time": "2017-11-30 07:14:17"
  4377 + "time": "2017-11-30T07:14:17+00:00"
4149 4378 },
4150 4379 {
4151 4380 "name": "phpdocumentor/type-resolver",
... ... @@ -4192,7 +4421,7 @@
4192 4421 "email": "me@mikevanriel.com"
4193 4422 }
4194 4423 ],
4195   - "time": "2017-07-14 14:27:02"
  4424 + "time": "2017-07-14T14:27:02+00:00"
4196 4425 },
4197 4426 {
4198 4427 "name": "phpspec/php-diff",
... ... @@ -4230,7 +4459,7 @@
4230 4459 }
4231 4460 ],
4232 4461 "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
4233   - "time": "2016-04-07 12:29:16"
  4462 + "time": "2016-04-07T12:29:16+00:00"
4234 4463 },
4235 4464 {
4236 4465 "name": "phpspec/prophecy",
... ... @@ -4293,7 +4522,7 @@
4293 4522 "spy",
4294 4523 "stub"
4295 4524 ],
4296   - "time": "2018-08-05 17:53:17"
  4525 + "time": "2018-08-05T17:53:17+00:00"
4297 4526 },
4298 4527 {
4299 4528 "name": "phpunit/php-code-coverage",
... ... @@ -4356,7 +4585,7 @@
4356 4585 "testing",
4357 4586 "xunit"
4358 4587 ],
4359   - "time": "2018-06-01 07:51:50"
  4588 + "time": "2018-06-01T07:51:50+00:00"
4360 4589 },
4361 4590 {
4362 4591 "name": "phpunit/php-file-iterator",
... ... @@ -4403,7 +4632,7 @@
4403 4632 "filesystem",
4404 4633 "iterator"
4405 4634 ],
4406   - "time": "2018-06-11 11:44:00"
  4635 + "time": "2018-06-11T11:44:00+00:00"
4407 4636 },
4408 4637 {
4409 4638 "name": "phpunit/php-text-template",
... ... @@ -4444,7 +4673,7 @@
4444 4673 "keywords": [
4445 4674 "template"
4446 4675 ],
4447   - "time": "2015-06-21 13:50:34"
  4676 + "time": "2015-06-21T13:50:34+00:00"
4448 4677 },
4449 4678 {
4450 4679 "name": "phpunit/php-timer",
... ... @@ -4493,7 +4722,7 @@
4493 4722 "keywords": [
4494 4723 "timer"
4495 4724 ],
4496   - "time": "2018-02-01 13:07:23"
  4725 + "time": "2018-02-01T13:07:23+00:00"
4497 4726 },
4498 4727 {
4499 4728 "name": "phpunit/php-token-stream",
... ... @@ -4542,7 +4771,7 @@
4542 4771 "keywords": [
4543 4772 "tokenizer"
4544 4773 ],
4545   - "time": "2018-02-01 13:16:43"
  4774 + "time": "2018-02-01T13:16:43+00:00"
4546 4775 },
4547 4776 {
4548 4777 "name": "phpunit/phpunit",
... ... @@ -4626,7 +4855,7 @@
4626 4855 "testing",
4627 4856 "xunit"
4628 4857 ],
4629   - "time": "2018-09-01 15:49:55"
  4858 + "time": "2018-09-01T15:49:55+00:00"
4630 4859 },
4631 4860 {
4632 4861 "name": "sebastian/code-unit-reverse-lookup",
... ... @@ -4671,7 +4900,7 @@
4671 4900 ],
4672 4901 "description": "Looks up which function or method a line of code belongs to",
4673 4902 "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
4674   - "time": "2017-03-04 06:30:41"
  4903 + "time": "2017-03-04T06:30:41+00:00"
4675 4904 },
4676 4905 {
4677 4906 "name": "sebastian/comparator",
... ... @@ -4735,7 +4964,7 @@
4735 4964 "compare",
4736 4965 "equality"
4737 4966 ],
4738   - "time": "2018-07-12 15:12:46"
  4967 + "time": "2018-07-12T15:12:46+00:00"
4739 4968 },
4740 4969 {
4741 4970 "name": "sebastian/diff",
... ... @@ -4791,7 +5020,7 @@
4791 5020 "unidiff",
4792 5021 "unified diff"
4793 5022 ],
4794   - "time": "2018-06-10 07:54:39"
  5023 + "time": "2018-06-10T07:54:39+00:00"
4795 5024 },
4796 5025 {
4797 5026 "name": "sebastian/environment",
... ... @@ -4841,7 +5070,7 @@
4841 5070 "environment",
4842 5071 "hhvm"
4843 5072 ],
4844   - "time": "2017-07-01 08:51:00"
  5073 + "time": "2017-07-01T08:51:00+00:00"
4845 5074 },
4846 5075 {
4847 5076 "name": "sebastian/exporter",
... ... @@ -4908,7 +5137,7 @@
4908 5137 "export",
4909 5138 "exporter"
4910 5139 ],
4911   - "time": "2017-04-03 13:19:02"
  5140 + "time": "2017-04-03T13:19:02+00:00"
4912 5141 },
4913 5142 {
4914 5143 "name": "sebastian/global-state",
... ... @@ -4959,7 +5188,7 @@
4959 5188 "keywords": [
4960 5189 "global state"
4961 5190 ],
4962   - "time": "2017-04-27 15:39:26"
  5191 + "time": "2017-04-27T15:39:26+00:00"
4963 5192 },
4964 5193 {
4965 5194 "name": "sebastian/object-enumerator",
... ... @@ -5006,7 +5235,7 @@
5006 5235 ],
5007 5236 "description": "Traverses array structures and object graphs to enumerate all referenced objects",
5008 5237 "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
5009   - "time": "2017-08-03 12:35:26"
  5238 + "time": "2017-08-03T12:35:26+00:00"
5010 5239 },
5011 5240 {
5012 5241 "name": "sebastian/object-reflector",
... ... @@ -5051,7 +5280,7 @@
5051 5280 ],
5052 5281 "description": "Allows reflection of object attributes, including inherited and non-public ones",
5053 5282 "homepage": "https://github.com/sebastianbergmann/object-reflector/",
5054   - "time": "2017-03-29 09:07:27"
  5283 + "time": "2017-03-29T09:07:27+00:00"
5055 5284 },
5056 5285 {
5057 5286 "name": "sebastian/recursion-context",
... ... @@ -5104,7 +5333,7 @@
5104 5333 ],
5105 5334 "description": "Provides functionality to recursively process PHP variables",
5106 5335 "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
5107   - "time": "2017-03-03 06:23:57"
  5336 + "time": "2017-03-03T06:23:57+00:00"
5108 5337 },
5109 5338 {
5110 5339 "name": "sebastian/resource-operations",
... ... @@ -5146,7 +5375,7 @@
5146 5375 ],
5147 5376 "description": "Provides a list of PHP built-in functions that operate on resources",
5148 5377 "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
5149   - "time": "2015-07-28 20:34:47"
  5378 + "time": "2015-07-28T20:34:47+00:00"
5150 5379 },
5151 5380 {
5152 5381 "name": "sebastian/version",
... ... @@ -5189,7 +5418,7 @@
5189 5418 ],
5190 5419 "description": "Library that helps with managing the version number of Git-hosted PHP projects",
5191 5420 "homepage": "https://github.com/sebastianbergmann/version",
5192   - "time": "2016-10-03 07:35:21"
  5421 + "time": "2016-10-03T07:35:21+00:00"
5193 5422 },
5194 5423 {
5195 5424 "name": "symfony/browser-kit",
... ... @@ -5246,7 +5475,7 @@
5246 5475 ],
5247 5476 "description": "Symfony BrowserKit Component",
5248 5477 "homepage": "https://symfony.com",
5249   - "time": "2018-07-26 09:10:45"
  5478 + "time": "2018-07-26T09:10:45+00:00"
5250 5479 },
5251 5480 {
5252 5481 "name": "symfony/console",
... ... @@ -5314,7 +5543,7 @@
5314 5543 ],
5315 5544 "description": "Symfony Console Component",
5316 5545 "homepage": "https://symfony.com",
5317   - "time": "2018-07-26 11:24:31"
  5546 + "time": "2018-07-26T11:24:31+00:00"
5318 5547 },
5319 5548 {
5320 5549 "name": "symfony/css-selector",
... ... @@ -5367,7 +5596,7 @@
5367 5596 ],
5368 5597 "description": "Symfony CssSelector Component",
5369 5598 "homepage": "https://symfony.com",
5370   - "time": "2018-07-26 09:10:45"
  5599 + "time": "2018-07-26T09:10:45+00:00"
5371 5600 },
5372 5601 {
5373 5602 "name": "symfony/dom-crawler",
... ... @@ -5424,7 +5653,7 @@
5424 5653 ],
5425 5654 "description": "Symfony DomCrawler Component",
5426 5655 "homepage": "https://symfony.com",
5427   - "time": "2018-07-26 11:00:49"
  5656 + "time": "2018-07-26T11:00:49+00:00"
5428 5657 },
5429 5658 {
5430 5659 "name": "symfony/event-dispatcher",
... ... @@ -5487,7 +5716,7 @@
5487 5716 ],
5488 5717 "description": "Symfony EventDispatcher Component",
5489 5718 "homepage": "https://symfony.com",
5490   - "time": "2018-07-26 09:10:45"
  5719 + "time": "2018-07-26T09:10:45+00:00"
5491 5720 },
5492 5721 {
5493 5722 "name": "symfony/finder",
... ... @@ -5536,7 +5765,7 @@
5536 5765 ],
5537 5766 "description": "Symfony Finder Component",
5538 5767 "homepage": "https://symfony.com",
5539   - "time": "2018-07-26 11:24:31"
  5768 + "time": "2018-07-26T11:24:31+00:00"
5540 5769 },
5541 5770 {
5542 5771 "name": "symfony/polyfill-ctype",
... ... @@ -5594,7 +5823,7 @@
5594 5823 "polyfill",
5595 5824 "portable"
5596 5825 ],
5597   - "time": "2018-08-06 14:22:27"
  5826 + "time": "2018-08-06T14:22:27+00:00"
5598 5827 },
5599 5828 {
5600 5829 "name": "symfony/polyfill-mbstring",
... ... @@ -5653,7 +5882,7 @@
5653 5882 "portable",
5654 5883 "shim"
5655 5884 ],
5656   - "time": "2018-08-06 14:22:27"
  5885 + "time": "2018-08-06T14:22:27+00:00"
5657 5886 },
5658 5887 {
5659 5888 "name": "symfony/yaml",
... ... @@ -5712,7 +5941,7 @@
5712 5941 ],
5713 5942 "description": "Symfony Yaml Component",
5714 5943 "homepage": "https://symfony.com",
5715   - "time": "2018-08-18 16:52:46"
  5944 + "time": "2018-08-18T16:52:46+00:00"
5716 5945 },
5717 5946 {
5718 5947 "name": "theseer/tokenizer",
... ... @@ -5752,7 +5981,7 @@
5752 5981 }
5753 5982 ],
5754 5983 "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
5755   - "time": "2017-04-07 12:08:54"
  5984 + "time": "2017-04-07T12:08:54+00:00"
5756 5985 },
5757 5986 {
5758 5987 "name": "webmozart/assert",
... ... @@ -5802,7 +6031,7 @@
5802 6031 "check",
5803 6032 "validate"
5804 6033 ],
5805   - "time": "2018-01-29 19:49:41"
  6034 + "time": "2018-01-29T19:49:41+00:00"
5806 6035 },
5807 6036 {
5808 6037 "name": "yiisoft/yii2-debug",
... ... @@ -5849,7 +6078,7 @@
5849 6078 "debugger",
5850 6079 "yii2"
5851 6080 ],
5852   - "time": "2017-12-05 07:36:23"
  6081 + "time": "2017-12-05T07:36:23+00:00"
5853 6082 },
5854 6083 {
5855 6084 "name": "yiisoft/yii2-faker",
... ... @@ -5896,7 +6125,7 @@
5896 6125 "faker",
5897 6126 "yii2"
5898 6127 ],
5899   - "time": "2018-02-19 20:27:10"
  6128 + "time": "2018-02-19T20:27:10+00:00"
5900 6129 },
5901 6130 {
5902 6131 "name": "yiisoft/yii2-gii",
... ... @@ -5949,7 +6178,7 @@
5949 6178 "gii",
5950 6179 "yii2"
5951 6180 ],
5952   - "time": "2018-05-02 22:05:25"
  6181 + "time": "2018-05-02T22:05:25+00:00"
5953 6182 }
5954 6183 ],
5955 6184 "aliases": [],
... ...
console/controllers/PdfController.php 0 → 100644
  1 +<?php
  2 +namespace console\controllers;
  3 +
  4 +
  5 +
  6 +use yii\console\Controller;
  7 +use Yii;
  8 +use common\models\Customer;
  9 +use PhpOffice\PhpSpreadsheet\Spreadsheet;
  10 +use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  11 +use common\models\dummy\DateModel;
  12 +
  13 +class PdfController extends Controller{
  14 +
  15 +
  16 +
  17 +
  18 + public function actionView(){
  19 +
  20 + $model=new DateModel();
  21 +
  22 + $model->load(Yii::$app->request->post());
  23 +
  24 + if($model->timeTo=='') $model->timeTo=date('d.m.Y');
  25 + if($model->timeFrom=='')$model->timeFrom = '01.01.1970';
  26 + $date1=(new \DateTime($model->timeFrom))->modify("-1day")->getTimestamp();
  27 + $date2=(new \DateTime($model->timeTo))->modify("+1day")->getTimestamp();
  28 + $date3=(new \DateTime($model->timeTo))->getTimestamp();
  29 +
  30 + $data = Customer::find()
  31 + ->where([
  32 + 'between',
  33 + 'created_at',
  34 + $date1,
  35 + $date2
  36 + ])
  37 + ->all();
  38 + if(count($data)>0){
  39 + $spreadsheet = new Spreadsheet();
  40 + $sheet = $spreadsheet->getActiveSheet();
  41 +
  42 +
  43 +
  44 + $styleArray = [
  45 + 'font' => [
  46 + 'bold' => true,
  47 + ],
  48 + 'alignment' => [
  49 + 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
  50 + ],
  51 +
  52 + 'fill' => [
  53 + 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR,
  54 + 'rotation' => 90,
  55 + 'startColor' => [
  56 + 'argb' => 'FFA0A0A0',
  57 + ],
  58 + 'endColor' => [
  59 + 'argb' => 'FFFFFFFF',
  60 + ],
  61 + ],
  62 + ];
  63 +
  64 + #$spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray($styleArray);
  65 +
  66 +
  67 +
  68 +
  69 +
  70 +
  71 + $sheet->setCellValue('A1','ФИО')->getStyle('A1')->applyFromArray($styleArray);
  72 + $sheet->setCellValue('B1','Должность')->getStyle('B1')->applyFromArray($styleArray);
  73 + $sheet->setCellValue('C1','Официальный почтовый адрес')->getStyle('C1')->applyFromArray($styleArray);
  74 + $sheet->setCellValue('D1','Email')->getStyle('D1')->applyFromArray($styleArray);
  75 + $sheet->setCellValue('E1','Телефон (рабочий)')->getStyle('E1')->applyFromArray($styleArray);
  76 + $sheet->setCellValue('F1','Телефон (дополнительный)')->getStyle('F1')->applyFromArray($styleArray);
  77 + $sheet->setCellValue('G1','Факс')->getStyle('G1')->applyFromArray($styleArray);
  78 + $sheet->setCellValue('H1','Страна\организация')->getStyle('H1')->applyFromArray($styleArray);
  79 + $sheet->setCellValue('I1','Пол')->getStyle('I1')->applyFromArray($styleArray);
  80 + $sheet->setCellValue('J1','Дата рождения')->getStyle('J1')->applyFromArray($styleArray);
  81 + $sheet->setCellValue('K1','Серия, номер')->getStyle('K1')->applyFromArray($styleArray);
  82 + $sheet->setCellValue('L1','Дата выдачи')->getStyle('L1')->applyFromArray($styleArray);
  83 + $sheet->setCellValue('M1','Орган выдачи')->getStyle('M1')->applyFromArray($styleArray);
  84 + $sheet->setCellValue('N1','Действителен до')->getStyle('N1')->applyFromArray($styleArray);
  85 + $sheet->setCellValue('O1','Нужна виза')->getStyle('O1')->applyFromArray($styleArray);
  86 + $sheet->setCellValue('P1','Особенное питание')->getStyle('P1')->applyFromArray($styleArray);
  87 + $sheet->setCellValue('Q1','Рабочий язык')->getStyle('Q1')->applyFromArray($styleArray);
  88 + $sheet->setCellValue('R1','Ссылка на фотографию')->getStyle('R1')->applyFromArray($styleArray);
  89 +
  90 + $sheet->getColumnDimension('A')->setAutoSize(true);
  91 + $sheet->getColumnDimension('B')->setAutoSize(true);
  92 + $sheet->getColumnDimension('C')->setAutoSize(true);
  93 + $sheet->getColumnDimension('D')->setAutoSize(true);
  94 + $sheet->getColumnDimension('E')->setAutoSize(true);
  95 + $sheet->getColumnDimension('F')->setAutoSize(true);
  96 + $sheet->getColumnDimension('G')->setAutoSize(true);
  97 + $sheet->getColumnDimension('H')->setAutoSize(true);
  98 + $sheet->getColumnDimension('I')->setAutoSize(true);
  99 + $sheet->getColumnDimension('J')->setAutoSize(true);
  100 + $sheet->getColumnDimension('K')->setAutoSize(true);
  101 + $sheet->getColumnDimension('L')->setAutoSize(true);
  102 + $sheet->getColumnDimension('M')->setAutoSize(true);
  103 + $sheet->getColumnDimension('N')->setAutoSize(true);
  104 + $sheet->getColumnDimension('O')->setAutoSize(true);
  105 + $sheet->getColumnDimension('P')->setAutoSize(true);
  106 + $sheet->getColumnDimension('Q')->setAutoSize(true);
  107 + $sheet->getColumnDimension('R')->setAutoSize(true);
  108 + $fileName=$model->timeFrom."-".$model->timeTo."_".substr(md5(time()),0,6).'.xlsx';
  109 + foreach($data as $key => $d){
  110 + $key+=3;
  111 + $gender='';
  112 + switch ($d->gender){
  113 + case Customer::MALE:
  114 + $gender = "Мужчина";
  115 + break;
  116 + case Customer::FEMALE:
  117 + $gender = 'Женщина';
  118 + break;
  119 + default:
  120 + $gender = 'Пол не задан';
  121 + break;
  122 +
  123 + }
  124 + $needVisa=($d->need_visa==0)?'Нет':'Да';
  125 +
  126 + $workLang='';
  127 + switch ($d->working_lang){
  128 + case 2:
  129 + $workLang = "Русский";
  130 + break;
  131 + case 1:
  132 + $workLang = "Английский";
  133 + break;
  134 + case 4:
  135 + $workLang = "Французcкий";
  136 + break;
  137 + default:
  138 + $workLang = "Русский";
  139 + break;
  140 + }
  141 +
  142 +
  143 +
  144 +
  145 + $sheet->setCellValue('A'.$key, $d->name);
  146 + $sheet->setCellValue('B'.$key, $d->organization);
  147 + $sheet->setCellValue('C'.$key, $d->post_address);
  148 + $sheet->setCellValue('D'.$key, $d->email);
  149 + $sheet->setCellValue('E'.$key, $d->phone_office);
  150 + $sheet->setCellValue('F'.$key, $d->phone_other);
  151 + $sheet->setCellValue('G'.$key, $d->fax);
  152 + $sheet->setCellValue('H'.$key, $d->citizenship);
  153 + $sheet->setCellValue('I'.$key, $gender);
  154 + $sheet->setCellValue('J'.$key, $d->birth);
  155 + $sheet->setCellValue('K'.$key, $d->passport_number);
  156 + $sheet->setCellValue('L'.$key, $d->passport_date);
  157 + $sheet->setCellValue('M'.$key, $d->passport_place);
  158 + $sheet->setCellValue('N'.$key, $d->passport_valid);
  159 + $sheet->setCellValue('O'.$key, $needVisa);
  160 + $sheet->setCellValue('P'.$key, $d->special_meal);
  161 + $sheet->setCellValue('Q'.$key, $workLang);
  162 + $sheet->setCellValue('R'.$key,Yii::$app->request->hostInfo.$d->image);
  163 + $writer = new Xlsx($spreadsheet);
  164 +
  165 + $writer->save(__DIR__.'/../../frontend/web/files/xls/'.$fileName);
  166 + }
  167 + return json_encode([
  168 + 'status' => 'success',
  169 + 'file' => $fileName,
  170 + ]);
  171 + }
  172 +
  173 + return json_encode([
  174 + 'status' => false,
  175 + 'reason' => 'Нет заявок за указанный временной период',
  176 + 'code' => 1
  177 + ]);
  178 +
  179 +
  180 + }
  181 +}
0 182 \ No newline at end of file
... ...
console/migrations/m180830_085211_create_speakers_tables.php 100644 → 100755
console/migrations/m180830_091730_alter_table_language.php 100644 → 100755
console/migrations/m180830_105258_create_customer_table.php 100644 → 100755
console/migrations/m180831_083021_alter_page_columns.php 100644 → 100755
console/migrations/m180905_072743_customer_add_columns.php 100644 → 100755
console/migrations/m180905_082107_customer_change_some_new_fields.php 100644 → 100755
console/migrations/m180905_085556_customer_add_work_and_meal_cols.php 100644 → 100755
console/migrations/m180905_131729_customer_add_work_lang_column.php 100644 → 100755
console/migrations/m180906_190153_customer_add_column_post.php 100644 → 100755
console/migrations/m180912_090212_customer_add_update_at_column.php 100644 → 100755
frontend/assets/SliderAsset.php 100644 → 100755
frontend/components/LangComponent.php 100644 → 100755
frontend/controllers/SiteController.php
... ... @@ -242,9 +242,7 @@
242 242 ->setTo(
243 243 [
244 244 'kennen.md@gmail.com',
245   - 'kazimirova.artweb@gmail.com',
246 245 'energyforum@euromediacompany.com',
247   - 'alkhonko@gmail.com',
248 246 ]
249 247 )
250 248 ->setSubject($subject)
... ...
frontend/web/files/xls/1first.xlsx 0 → 100755
No preview for this file type
frontend/widgets/LangLinks.php 100644 → 100755
frontend/widgets/views/links.php 100644 → 100755
frontend/widgets/views/links_mobile.php 100644 → 100755