Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Provider;
- use Dompdf\Dompdf;
- use App\Controller\AppController;
- use Dompdf\Options;
- use Bono\Helper\URL;
- use App\Library\Notification;
- use Norm\Norm;
- class AppProvider extends \Bono\Provider\Provider
- {
- public function initialize()
- {
- $app = $this->app;
- $app->filter('auth.authorize', function ($options) use ($app) {
- // if (!isset($_SESSION['user'])) {
- // echo "<pre>";
- // print_r('expression');
- // }
- // exit;
- if (is_array($options) && isset($options['uri'])) {
- $uri = $options['uri'];
- } else {
- $uri = $options;
- }
- switch ($uri) {
- case '/forgot_password':
- case '/passwd':
- case '/search_user/:site':
- case '/search_worksheet/:ccd_number':
- case '/myworksheet/detail_edit':
- case '/chart/:year':
- case '/chart_byprojecttype/:year':
- case '/chart_bystatus/:year':
- case '/chart/:year/:month':
- case '/chartbyrange/:year/:start/:end':
- case '/chartbyrangeccs/:year/:start/:end':
- case '/chartbyrangetype/:year/:start/:end':
- case '/chart_byprojecttype/:year/:month':
- case '/chart_bystatus/:year/:month':
- case '/feedback':
- case '/feedback/success':
- case '/feedback/null/update_status':
- case '/email_remainder_approver':
- case '/email_remainder_owner':
- case '/mom':
- case '/mom/null/dashboard':
- case '/mom/null/by_ccd':
- case '/mom/null/by_date':
- case '/mom/null/create':
- case '/mom/null/dashboard_detail/:id':
- return true;
- }
- return $options;
- }, 0);
- $app->get('/get_data_project', function () use ($app) {
- if (isset($_GET['term'])) {
- $query = \Norm::factory('Worksheet')->find(array('change_control_number!like' => $_GET['term']))->limit(10);
- } else {
- $query = \Norm::factory('Worksheet')->find()->limit(10);
- }
- $data = array();
- foreach ($query as $key => $value) {
- $data[$key]['id'] = $value['$id'];
- $data[$key]['text'] = $value['change_control_number'];
- }
- echo json_encode($data);
- exit;
- });
- $app->get('/get_data_project_mom', function () use ($app) {
- if (isset($_GET['term'])) {
- $query = \Norm::factory('Worksheet')->find(array('change_control_number!like' => $_GET['term']))->limit(10);
- } else {
- $query = \Norm::factory('Worksheet')->find()->limit(10);
- }
- $data = array();
- foreach ($query as $key => $value) {
- $data[$key]['id'] = $value['change_control_number'];
- $data[$key]['text'] = $value['change_control_number'];
- }
- echo json_encode($data);
- exit;
- });
- $app->get('/get_data_user', function () use ($app) {
- if (isset($_GET['term'])) {
- $query = \Norm::factory('User')->find(array('username!like' => $_GET['term']))->limit(10);
- } else {
- $query = \Norm::factory('User')->find()->limit(10);
- }
- $data = array();
- foreach ($query as $key => $value) {
- $data[$key]['id'] = $value['$id'];
- $data[$key]['text'] = $value['first_name'].' '.$value['last_name'];
- }
- echo json_encode($data);
- exit;
- });
- $app->get('/get_data_approver', function () use ($app) {
- if (isset($_GET['term'])) {
- $query = \Norm::factory('User')->find(array('username!like' => $_GET['term']));
- } else {
- $query = \Norm::factory('User')->find();
- }
- $data = array();
- foreach ($query as $key => $value) {
- if (in_array('3', $value['role']->toArray())) {
- $data[$key]['id'] = $value['$id'];
- $data[$key]['text'] = $value['first_name'].' '.$value['last_name'];
- }
- }
- echo json_encode($data);
- exit;
- });
- $app->get('/get_role', function () use ($app) {
- if (isset($_GET['term'])) {
- $query = \Norm::factory('Role')->find(array('name!like' => $_GET['term']));
- } else {
- $query = \Norm::factory('Role')->find();
- }
- $data = array();
- foreach ($query as $key => $value) {
- $data[$key]['id'] = $value['$id'];
- $data[$key]['text'] = $value['name'];
- }
- echo json_encode($data);
- exit;
- });
- $app->get('/', function () use ($app) {
- $app->redirect(URL::site('dashboard'));
- });
- $app->get('/myworksheet/submitted', function () use ($app) {
- $app->response->template('popup_done/popup');
- });
- $app->get('/feedback/success', function () use ($app) {
- $app->response->template('feedback/popup_success');
- });
- $app->get('/tutorial/:video', function ($video) use ($app) {
- $app->response->data('video', $video);
- $app->response->template('tutorial/index');
- });
- $app->get('/help/view', function () use ($app) {
- $helps = \Norm::factory('Help')->find()->sort(array('ordering' => 1));
- $app->response->data('is_admin', $app->auth_ccm->isAdmin());
- $app->response->data('helps', $helps);
- $app->response->template('help/view');
- });
- $app->get('/email_remainder_owner', function () use ($app) {
- $worksheet = \Norm::factory('Worksheet');
- $schedule = $worksheet->find();
- foreach ($schedule as $key => $value) {
- $date = strtotime($value['expected_implementation_date']);
- $today = date('d-m-Y');
- $tenDays = date('d-m-Y', strtotime("-10 day", $date));
- $oneMonth = date('d-m-Y', strtotime("-1 month", $date));
- if ($today == $tenDays || $today == $oneMonth) {
- $this->senEmailRemainder($value);
- }
- }
- exit;
- });
- $app->get('/email_remainder_approver', function () use ($app) {
- $this->senEmailRemainderToApprover();
- });
- $app->get('/dashboard', function () use ($app) {
- $worksheet = \Norm::factory('Worksheet');
- $feedback = \Norm::factory('Feedback');
- $newest = $worksheet->find(array('status_delete' => 1))->sort(array('_created_time' => -1))->limit(5);
- $myproject = $worksheet->find(array('project_owner' => $_SESSION['user']['$id'], 'status_delete' => 1))->sort(array('_created_time' => -1))->limit(5);
- $needapproval = $worksheet->find(array('approval_status' => 4, 'status!ne' => 6, 'status_delete' => 1))->sort(array('_created_time' => -1));
- $count_needmyapproval = $needapproval->count();
- if (!$this->app->auth_ccm->isAdmin()) {
- $count_needmyapproval = 0;
- $approval = \Norm::factory('Approval')->find(array('user' => $_SESSION['user']['$id'], 'status' => 0));
- $datas = array();
- foreach ($approval as $key => $value) {
- array_push($datas, $value['change_control_number']);
- }
- if ($datas) {
- $needapproval = $worksheet->find(array('change_control_number!in' => $datas, 'approval_status' => 4, 'status!ne' => 6, 'status_delete' => 1));
- $count_needmyapproval = $needapproval->count();
- $needapproval = $needapproval->sort(array('_created_time' => -1));
- } else {
- $needapproval = array();
- }
- }
- if ($this->app->auth_ccm->isAdmin()) {
- $listFeedback = $feedback->find()->limit(5);
- $app->response->data('myproject', $myproject);
- $app->response->data('needapproval', $needapproval);
- $app->response->data('list_feedback', $listFeedback);
- } else if ($this->app->auth_ccm->isChangeOwner()) {
- $listFeedback = $feedback->find(array('change_owner' => $_SESSION['user']['$id']))->limit(5);
- $app->response->data('myproject', $myproject);
- $app->response->data('list_feedback', $listFeedback);
- } else if ($this->app->auth_ccm->isApprover()) {
- $listFeedback = $feedback->find(array('approver' => $_SESSION['user']['$id']))->limit(5);
- $app->response->data('needapproval', $needapproval);
- $app->response->data('list_feedback', $listFeedback);
- } else if ($this->app->auth_ccm->isPCM()) {
- $listFeedback = $feedback->find()->limit(5);
- $app->response->data('list_feedback', $listFeedback);
- }
- $app->response->data('newest', $newest);
- $app->response->data('count_needmyapproval', $count_needmyapproval);
- $app->response->template('dashboard/index');
- });
- /* query ke table user, untuk mendapatkan list approver */
- // $app->get('/search_user/:site', function ($site) use ($app) {
- // $approvers = \Norm::factory('User');
- // // get default approvers (all user yang diset sebagai Priority Approver pada site yang dipilih)
- // $default_approvers = $approvers->find(array('role!like' => '3', 'site!like' => $site, 'ispriority_approver' => 1))->toArray();
- // // get optional approvers 1 (all user yang memiliki role Approver pada site yang dipilih)
- // $optional_approvers1 = $approvers->find(array('role!like' => '3', 'site!like' => $site, 'ispriority_approver!ne' => 1))->toArray();
- // // get optional approvers 2 (all user yang diset sebagai Priority Approver pada site lain)
- // $optional_approvers2 = $approvers->find(array('role!like' => '3', 'site!ne' => $site, 'ispriority_approver' => 1))->toArray();
- // $optional_approvers = array_merge($optional_approvers1, $optional_approvers2);
- // $app->response->data('default_approvers', $default_approvers);
- // $app->response->data('optional_approvers', $optional_approvers1);
- // });
- /* Revisi by Putra */
- $app->get('/search_user/:site', function ($site) use ($app) {
- $approvers = \Norm::factory('User');
- $list_approvers = $approvers->find(array('role!like' => '"3"', 'site!like' => '"' . $site . '"'));
- $optional_approvers = array();
- $priority_approvers = array();
- foreach ($list_approvers as $key => $value) {
- if (!empty($value['ispriority_approver']) && in_array($site, $value['ispriority_approver']->toArray())) {
- $priority_approvers[] = $value->toArray();
- } else {
- $optional_approvers[] = $value->toArray();
- }
- }
- $app->response->data('default_approvers', $priority_approvers);
- $app->response->data('optional_approvers', $optional_approvers);
- });
- /* get data for chart project by site per year */
- $app->get('/chart/:year', function ($year) use ($app) {
- $dataseries = $this->getDataChartFactory($year);
- $url = \URL::site('ccd_submission/null/byyear');
- $app->response->data('ahrefurl', $url);
- $app->response->data('dataseries', $dataseries);
- });
- /* get data for chart project by site per month */
- $app->get('/chart/:year/:month', function ($year, $month) use ($app) {
- $dataseries = $this->getDataChartFactory($year, $month);
- $app->response->data('dataseries', $dataseries);
- });
- /* get data for chart project by project type per year */
- $app->get('/chart_byprojecttype/:year', function ($year) use ($app) {
- $dataseries = $this->getDataChartProjectType($year);
- $url = \URL::site('ccd_submission/null/byprojecttype');
- $app->response->data('ahrefurl', $url);
- $app->response->data('dataseries', $dataseries);
- });
- /* get data for chart project by project type per month */
- $app->get('/chart_byprojecttype/:year/:month', function ($year, $month) use ($app) {
- $dataseries = $this->getDataChartProjectType($year, $month);
- $url = \URL::site('ccd_submission/null/bystatus');
- $app->response->data('ahrefurl', $url);
- $app->response->data('dataseries', $dataseries);
- });
- $app->get('/chartbyrange/:year/:start/:end', function ($year, $start, $end) use ($app) {
- $explode_start = explode('-', $start);
- $new_start = array();
- $new_start[] = $explode_start[2];
- $new_start[] = $explode_start[0];
- $new_start[] = $explode_start[1];
- $explode_end = explode('-', $end);
- $new_end = array();
- $new_end[] = $explode_end[2];
- $new_end[] = $explode_end[0];
- $new_end[] = $explode_end[1];
- $data_start = implode('-', $new_start);
- $data_end = implode('-', $new_end);
- $dataseries = $this->getDataChartByrange($year, $data_start, $data_end);
- $url = \URL::site('ccd_submission/null/byyear');
- $app->response->data('ahrefurl', $url);
- $app->response->data('dataseries', $dataseries);
- });
- $app->get('/chartbyrangeccs/:year/:start/:end', function ($year, $start, $end) use ($app) {
- $explode_start = explode('-', $start);
- $new_start = array();
- $new_start[] = $explode_start[2];
- $new_start[] = $explode_start[0];
- $new_start[] = $explode_start[1];
- $explode_end = explode('-', $end);
- $new_end = array();
- $new_end[] = $explode_end[2];
- $new_end[] = $explode_end[0];
- $new_end[] = $explode_end[1];
- $data_start = implode('-', $new_start);
- $data_end = implode('-', $new_end);
- $dataseries = $this->getDataChartByrangeCcs($year, $data_start, $data_end);
- $url = \URL::site('ccd_submission/null/bystatus');
- $app->response->data('ahrefurl', $url);
- $app->response->data('dataseries', $dataseries);
- });
- $app->get('/chartbyrangetype/:year/:start/:end', function ($year, $start, $end) use ($app) {
- $explode_start = explode('-', $start);
- $new_start = array();
- $new_start[] = $explode_start[2];
- $new_start[] = $explode_start[0];
- $new_start[] = $explode_start[1];
- $explode_end = explode('-', $end);
- $new_end = array();
- $new_end[] = $explode_end[2];
- $new_end[] = $explode_end[0];
- $new_end[] = $explode_end[1];
- $data_start = implode('-', $new_start);
- $data_end = implode('-', $new_end);
- $dataseries = $this->getDataChartByrangeType($year, $data_start, $data_end);
- $url = \URL::site('ccd_submission/null/byprojecttype');
- $app->response->data('ahrefurl', $url);
- $app->response->data('dataseries', $dataseries);
- });
- /* get data for chart project by project status per year */
- $app->get('/chart_bystatus/:year', function ($year) use ($app) {
- $dataseries = $this->getDataChartStatus($year);
- $url = \URL::site('ccd_submission/null/bystatus');
- $app->response->data('ahrefurl', $url);
- $app->response->data('dataseries', $dataseries);
- });
- /* get data for chart project by project status per month */
- $app->get('/chart_bystatus/:year/:month', function ($year, $month) use ($app) {
- $dataseries = $this->getDataChartStatus($year, $month);
- $app->response->data('dataseries', $dataseries);
- });
- $app->hook('controller.create.success', function () use ($app) {
- $app->redirect(f('controller.url'));
- });
- $app->hook('controller.update.success', function ($model) use ($app) {
- $segments = $app->request->getSegments();
- $id = isset($segments[2]) ? $segments[2] : null;
- $app->redirect(f('controller.uri').'/'.$id);
- });
- $app->get('/pdf', function () use ($app) {
- $options = new Options();
- $options->setIsRemoteEnabled(true);
- $dompdf = new Dompdf($options);
- $template = $this->app->theme->partial('export/test');
- $dompdf->loadHtml($template);
- $dompdf->setPaper('A4', 'portrait');
- $dompdf->render();
- $dompdf->stream('Document', array('Attachment' => false));
- exit;
- });
- $app->get('/testmail', function () use ($app) {
- $content = '<!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- </head>
- <body>
- <p>Test</p>
- </body>
- </html>';
- $data = array(
- array(
- 'email' => 'apriantopramanaputra@gmail.com',
- 'subject' => 'CCD Approval',
- 'content' => $content
- ),
- );
- Notification::emailSend($data);
- echo 'xxx';
- exit;
- });
- $app->get('/change_ccd_number', function () use ($app) {
- $connection = Norm::getConnection('mysql')->getRaw();
- $statement = $connection->prepare("SELECT * FROM `worksheet` WHERE change_control_number LIKE '%2019%' AND (_created_time BETWEEN '2019-01-01' and '2019-12-30') LIMIT 300");
- $statement->execute();
- $results = $statement->fetchAll(\PDO::FETCH_ASSOC);
- for ($i=0; $i < count($results); $i++) {
- $sequence = $this->getSequence('worksheet');
- $number = str_pad($sequence, 3, '0', STR_PAD_LEFT);
- $old_number = $results[$i]['change_control_number'];
- $new_number = substr_replace($old_number, $number, 4, 3);
- $statement = $connection->prepare("UPDATE action_plan SET change_control_number = ? WHERE change_control_number = ?");
- $statement->execute(array($new_number, $old_number));
- $statement = $connection->prepare("UPDATE approval SET change_control_number = ? WHERE change_control_number = ?");
- $statement->execute(array($new_number, $old_number));
- $statement = $connection->prepare("UPDATE project_team SET change_control_number = ? WHERE change_control_number = ?");
- $statement->execute(array($new_number, $old_number));
- $statement = $connection->prepare("UPDATE worksheet SET change_control_number = ? WHERE change_control_number = ?");
- $statement->execute(array($new_number, $old_number));
- }
- exit;
- });
- }
- /* Cheat Start */
- protected function getSequence($collection_name)
- {
- $model = Norm::factory('Sequence');
- $findmodel = $model->findOne(array('table_name' => $collection_name, 'year' => date('Y')));
- if ($findmodel) {
- $lastseq = $findmodel['seq'];
- $sequence = $lastseq+1;
- $findmodel->set('seq', $sequence);
- $findmodel->save();
- } else {
- $sequence = 1;
- $new = $model->newInstance();
- $new->set('table_name', $collection_name);
- $new->set('year', date('Y'));
- $new->set('seq', $sequence);
- $new->save();
- }
- return $sequence;
- }
- /* Cheat End */
- public function getDataChartFactory($year, $month = null)
- {
- $collection = \Norm::factory('Worksheet');
- $sites = \Norm::factory('Site')->find();
- $defaultquery = array('$created_time!like' => $year);
- if ($month != null) {
- $merging = $year.'-'.$month;
- $defaultquery = array('$created_time!like' => $merging);
- }
- $dataseries = array();
- foreach ($sites as $ks => $site) {
- $queries = array_merge($defaultquery, array('site' => $site['$id'], 'status_delete' => 1));
- $projects = $collection->find($queries);
- if ($projects->count() > 0) {
- $count = count($projects->toArray());
- $data = array('name' => $site['name'], 'y' => $count);
- } else {
- $data = array('name' => $site['name'], 'y' => 0);
- }
- $dataseries[] = $data;
- }
- return $dataseries;
- }
- public function getDataChartByrange($year, $start, $end)
- {
- $collection = \Norm::factory('Worksheet');
- $sites = \Norm::factory('Site')->find();
- $defaultquery = array('$created_time!gte' => $start, '$created_time!lte' => $end);
- $dataseries = array();
- foreach ($sites as $ks => $site) {
- $queries = array_merge($defaultquery, array('site' => $site['$id'], 'status_delete' => 1));
- $projects = $collection->find($queries);
- if ($projects->count() > 0) {
- $count = count($projects->toArray());
- $data = array('name' => $site['name'], 'y' => $count);
- } else {
- $data = array('name' => $site['name'], 'y' => 0);
- }
- $dataseries[] = $data;
- }
- return $dataseries;
- }
- public function getDataChartProjectType($year, $month = null)
- {
- $collection = \Norm::factory('Worksheet');
- $sites = \Norm::factory('Site')->find();
- $types = \Norm::factory('Sysparam')->find(array('groups' => 'Project Type'));
- $defaultquery = array('$created_time!like' => $year);
- if ($month != null) {
- $merging = $year.'-'.$month;
- $defaultquery = array('$created_time!like' => $merging);
- }
- $dataseries = array();
- foreach ($sites as $ks => $site) {
- $eachseries = array();
- foreach ($types as $kt => $type) {
- $queries = array_merge($defaultquery, array('site' => $site['$id'], 'project_type' => $type['key'], 'status_delete' => 1));
- $projects = $collection->find($queries);
- if ($projects) {
- $count = count($projects->toArray());
- $data = array('name' => $type['long_value'], 'y' => $count);
- } else {
- $data = array('name' => $type['long_value'], 'y' => 0);
- }
- $eachseries[] = $data;
- }
- $dataseries[] = array('name' => $site['name'], 'data' => $eachseries);
- }
- return $dataseries;
- }
- public function getDataChartByrangeType($year, $start, $end)
- {
- $collection = \Norm::factory('Worksheet');
- $sites = \Norm::factory('Site')->find();
- $types = \Norm::factory('Sysparam')->find(array('groups' => 'Project Type'));
- $defaultquery = array('$created_time!gte' => $start, '$created_time!lte' => $end);
- $dataseries = array();
- foreach ($sites as $ks => $site) {
- $eachseries = array();
- foreach ($types as $kt => $type) {
- $queries = array_merge($defaultquery, array('site' => $site['$id'], 'project_type' => $type['key'], 'status_delete' => 1));
- $projects = $collection->find($queries);
- if ($projects) {
- $count = count($projects->toArray());
- $data = array('name' => $type['long_value'], 'y' => $count);
- } else {
- $data = array('name' => $type['long_value'], 'y' => 0);
- }
- $eachseries[] = $data;
- }
- $dataseries[] = array('name' => $site['name'], 'data' => $eachseries);
- }
- return $dataseries;
- }
- public function getDataChartStatus($year, $month = null)
- {
- $collection = \Norm::factory('Worksheet');
- $sites = \Norm::factory('Site')->find();
- $status = \Norm::factory('Sysparam')->find(array('groups' => 'Project Status', 'key!ne' => 1));
- $defaultquery = array('$created_time!like' => $year);
- if ($month != null) {
- $merging = $year.'-'.$month;
- $defaultquery = array('$created_time!like' => $merging);
- }
- $dataseries = array();
- foreach ($sites as $ks => $site) {
- $eachseries = array();
- foreach ($status as $kst => $stat) {
- $queries = array_merge($defaultquery, array('site' => $site['$id'], 'status' => $stat['key'], 'status_delete' => 1));
- $projects = $collection->find($queries);
- if ($projects) {
- $count = count($projects->toArray());
- $data = array('name' => $stat['long_value'], 'y' => $count);
- } else {
- $data = array('name' => $stat['long_value'], 'y' => $count);
- }
- $eachseries[] = $data;
- }
- $dataseries[] = array('name' => $site['name'], 'data' => $eachseries);
- }
- return $dataseries;
- }
- public function getDataChartByrangeCcs($year, $start, $end)
- {
- $collection = \Norm::factory('Worksheet');
- $sites = \Norm::factory('Site')->find();
- $status = \Norm::factory('Sysparam')->find(array('groups' => 'Project Status', 'key!ne' => 1));
- $defaultquery = array('$created_time!gte' => $start, '$created_time!lte' => $end);
- // if ($month != null) {
- // $merging = $year.'-'.$month;
- // $defaultquery = array('$created_time!like' => $merging);
- // }
- $dataseries = array();
- foreach ($sites as $ks => $site) {
- $eachseries = array();
- foreach ($status as $kst => $stat) {
- $queries = array_merge($defaultquery, array('site' => $site['$id'], 'status' => $stat['key'], 'status_delete' => 1));
- $projects = $collection->find($queries);
- if ($projects) {
- $count = count($projects->toArray());
- $data = array('name' => $stat['long_value'], 'y' => $count);
- } else {
- $data = array('name' => $stat['long_value'], 'y' => $count);
- }
- $eachseries[] = $data;
- }
- $dataseries[] = array('name' => $site['name'], 'data' => $eachseries);
- }
- return $dataseries;
- }
- protected function senEmailRemainder($entry)
- {
- $userModel = \Norm::factory('User');
- $change_owner = $userModel->findOne($entry['project_owner']);
- $content = $this->app->theme->partial(
- 'email/remainder',
- array(
- 'entry' => $entry,
- 'change_owner' => $change_owner
- )
- );
- $data = array(
- array(
- 'email' => $change_owner['email'],
- // 'email' => 'mbiebs94@gmail.com',
- 'subject' => '[CCD Implementation] (' . $entry['change_control_number'] .') is due to be implemented!',
- 'content' => $content
- ),
- );
- Notification::emailSend($data);
- }
- private function rowsArray($sql, $params = array())
- {
- $connection = \Norm::getConnection('mysql')->getRaw();
- $statement = $connection->prepare($sql);
- if (empty($params)) {
- $statement->execute();
- } else {
- $statement->execute($params);
- }
- $results = $statement->fetchAll(\PDO::FETCH_ASSOC);
- return $results;
- }
- protected function senEmailRemainderToApprover()
- {
- $data_approval = $this->rowsArray("
- SELECT
- a.change_control_number,
- u.email email_approver,
- w.submit_date,
- us.email email_change_owner,
- CONCAT(us.first_name, ' ', us.last_name) change_owner
- FROM approval a
- INNER JOIN worksheet w ON a.change_control_number = w.change_control_number
- INNER JOIN user u ON a.user = u.id
- INNER JOIN user us ON w.project_owner = us.id
- WHERE a.status = 0 ORDER BY a.user DESC
- ");
- $data_per_approver = array();
- foreach ($data_approval as $key => $item) {
- $data_per_approver[$item['email_approver']][$key] = $item;
- }
- ksort($data_per_approver, SORT_NUMERIC);
- foreach ($data_per_approver as $key => $value) {
- $content = $this->app->theme->partial(
- 'email/approver_reminder',
- array(
- 'value' => $value
- )
- );
- $data = array(
- array(
- 'email' => $key,
- 'subject' => '[CCD Approval] The CCDs are waiting for your approval!',
- 'content' => $content
- ),
- );
- Notification::emailSend($data);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement