public function actionData() { $transport_id = (int) Yii::app()->request->getPost('id'); $pass = Yii::app()->request->getPost('pass', ''); $dataRequest = Yii::app()->request->getPost('data', ''); $data = json_decode($dataRequest, false); if ($transport_id && $pass && is_array($data)) { Yii::app()->getModule('cabinet'); $transport = Transport::model()->findByPk($transport_id); if (!is_null($transport)) { $tracking = Tracking::model(); $checkPass = $tracking->getPasswordForAPI($transport); if (0 == strcmp($pass, $checkPass)) { $res = $tracking->saveTrackData($transport_id, $data); echo CJSON::encode(['status' => $res ? 'success' : 'failed']); Yii::log("actionData success", "info"); } else { echo CJSON::encode(['status' => 'failed', 'data' => "wrong pass for transport_id=[{$transport_id}]"]); } } else { echo CJSON::encode(['status' => 'failed', 'data' => "Transport not found [{$transport_id}]"]); } } else { echo CJSON::encode(['status' => 'failed', 'data' => "Wrong params transport_id=[{$transport_id}],pass=[{$pass}]"]); } Yii::app()->end(); }
public function actionDelete($id) { $model = Transport::model()->findByPk($id); if (!Yii::app()->user->checkAccess('admin') && ((Yii::app()->getUser()->getProfile()->modules->head != UserModules::DIRECTOR_COMPANY || Yii::app()->user->getProfile()->company_id != $model->user->company_id) && (Yii::app()->getUser()->getProfile()->modules->transport != '1' || $model->user_id != Yii::app()->user->id) || Yii::app()->user->getProfile()->company->active == '0')) { throw new CHttpException(403); } if ($model === null) { throw new CHttpException(404, 'Указанная запись не найдена'); } $model->deleteByPk($id); $this->redirect('/cabinet/avtopark'); throw new CHttpException(404, 'The requested page does not exist.'); }
<?php if ('Reis' == $Response->model || 'Cargo' == $Response->model) { $assets = dirname(__FILE__) . '/../assets'; $baseUrl = Yii::app()->assetManager->publish($assets); Yii::app()->getClientScript()->registerCssFile($baseUrl . '/gpsview.css'); $countTracking = Transport::model()->getTrackingCount(); //$Reis = Reis::model()->findByPk($Response->external_id); if ($countTracking) { ?> <script> function processChoiceTransportForGPSItem() { $.ajax({ url: '/cabinet/avtopark/trackinglist', data: { '<?php echo Yii::app()->request->csrfTokenName; ?> ': '<?php echo Yii::app()->request->csrfToken; ?> ' }, dataType: 'json', method: 'post', success: function(data) { //console.log("processChoiceTransportForGPSItem.success",data); if ( 'success' == data.status && $.isArray( data.data ) ) { view = createChoiceTransportForGPSView( data.data ); var $el = $('#id_choice_transport_for_gps'); if ( ! $el.length ) {
public function actionGetDataForFillForm() { if (Yii::app()->user->checkAccess('avtopark')) { $transport_id = (int) Yii::app()->request->getPost('id'); // получить массив полей формы $data = Yii::app()->request->getPost('data'); if (is_array($data) && count($data)) { // проверить что транспорт принадлежить компании $company_id = Yii::app()->getUser()->getProfile()->company_id; $arrTmp = []; foreach ($data as $v) { if (!isset($arrTmp[$v['name']])) { $arrTmp[$v['name']] = $v['value']; } else { Yii::log("actionGetDataForFillForm data already have key=[{$v['name']}]", "info"); } } $Transport = Transport::model(); $TransportItem = $Transport->findByPk($transport_id); if (!is_null($TransportItem)) { $arrRel = $Transport->relations(); $arrRelData = []; foreach ($Transport->getRelationList() as $vrel) { // данные из других таблиц брать по getRelationList if (isset($arrRel[$vrel])) { $resTmp = $TransportItem->{$vrel}; if (is_array($resTmp)) { $arrRelData[$vrel] = []; foreach ($resTmp as $vrelItem) { $arrRelData[$vrel][] = $vrelItem->getPrimaryKey(); } } else { $arrRelData[$vrel] = $resTmp->getPrimaryKey(); } } } $criteria = new CDbCriteria(); $criteria->addCondition("t.transport_id=:transport_id"); $criteria->with = ['user' => ['joinType' => 'INNER JOIN', 'condition' => 'user.company_id = :company_id']]; $criteria->params = [':company_id' => $company_id, ':transport_id' => $transport_id]; $transportItemTmp = $Transport->find($criteria); if (!is_null($transportItemTmp)) { $transportItem = $transportItemTmp->attributes; $transportItem['transport_type_id'] = Reis::getReplaceMyTransportTypeToReis($transportItem['type_id']); unset($transportItem['type_id']); unset($transportItem['notice']); unset($transportItem['create']); unset($transportItem['update']); // надо вернуть массив с ключ-значение, которое будет проставленно в форму foreach ($arrTmp as $k => $v) { $kTmp = preg_replace('/^(Reis\\[)(.+?)(\\])$/ui', '$2', $k); if (array_key_exists($kTmp, $transportItem)) { $arrTmp[$k] = $transportItem[$kTmp]; } else { if (isset($arrRelData[$kTmp])) { // видимо данные из relation таблиц $arrTmp[$k] = $arrRelData[$kTmp]; } else { unset($arrTmp[$k]); } } } echo CJSON::encode(['status' => 'success', 'data' => $arrTmp]); } else { echo CJSON::encode(['status' => 'failed', 'data' => "not found"]); } } } else { echo CJSON::encode(['status' => 'failed', 'data' => "wrong data"]); } } else { echo CJSON::encode(['status' => 'failed', 'data' => "access denied"]); } Yii::app()->end(); }
public function actionTrackingSendRandomData() { if (!Yii::app()->getUser()->getIsGuest()) { $num = mt_rand(5, 10); $data = []; $lat = 55.751244; $lng = 37.618423; $time = time(); for ($i = 0; $i < $num; ++$i) { $tmp = ['lat' => null, 'lng' => null, 'time' => null]; $dir = 0 == mt_rand(1, 1000) % 2 ? -1 : 1; $delta = (double) mt_rand(1, 20) / (double) 1000000; $lat += $delta * $dir; $tmp['lat'] = $lat; $dir = 0 == mt_rand(1, 1000) % 2 ? -1 : 1; $delta = (double) mt_rand(1, 20) / (double) 1000000; $lng += $delta * $dir; $tmp['lng'] = $lng; $time -= 10; $tmp['time'] = $time; $data[] = $tmp; } Yii::app()->getModule('cabinet'); Yii::app()->getModule('tracking'); $Transport = \Transport::model()->findByAttributes(['user_id' => 1, 'tracking_on' => 1]); $transport_id = $Transport->transport_id; $pass = \Tracking::model()->getPasswordForAPI($Transport); //$transport_id = 1; //$pass = '******'; $post = ['id' => $transport_id, 'pass' => $pass, 'data' => json_encode($data)]; $ch = curl_init(); try { //curl_setopt($ch, CURLOPT_URL, "http://cargotogo.com/tracking/data"); curl_setopt($ch, CURLOPT_URL, "http://" . $_SERVER['HTTP_HOST'] . "/tracking/data"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json'] ); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $response = curl_exec($ch); if (FALSE === $response) { $str_log = ''; $str_log = "CURL error=[" . curl_error($ch) . "]"; $str_log .= ",HTTP_CODE=[" . curl_getinfo($ch, CURLINFO_HTTP_CODE) . "]"; $str_log .= ",Last URL=[" . curl_getinfo($ch, CURLINFO_EFFECTIVE_URL) . "]"; $str_log .= ",last headers=[" . curl_getinfo($ch, CURLINFO_HEADER_OUT) . "]"; echo "ERROR : " . $str_log; } else { echo "SUCCESS : [{$response}]"; } } finally { curl_close($ch); } } Yii::app()->end(); }
<?php switch ($data['modelName']) { case "Transport": Transport::disableDefaultScope(); $model = Transport::model('Transport')->findByPk($data['key']); echo $this->renderPartial('application.views.transport._view', array('data' => $model)); break; case "Cargo": Cargo::disableDefaultScope(); $model = Cargo::model()->findByPk($data['key']); echo $this->renderPartial('application.views.cargo._view', array('data' => $model)); break; case "Tender": $model = Tender::model()->findByPk($data['key']); echo $this->renderPartial('application.views.tender._view', array('data' => $model)); break; case "User": $model = User::model()->findByPk($data['key']); echo $this->renderPartial('application.views.user._view', array('data' => $model)); break; default: echo "Не правильные данные обратитесь к администратору."; }
private function deleteTransport(\User $user) { $data = 'user_id = :user_id'; $param = array(':user_id' => $user->id); $count = Transport::model()->count($data, $param); $transports = Transport::model()->findAll($data, $param); foreach ($transports as $transport) { $this->deleteFile($transport->transport_id, 'Transport'); //$this->deleteTransportRelation($transport->transport_id); $this->deleteRelation($transport->transport_id, "transport_id", "site_transport_relations"); } if ($this->debug) { echo " ... Transport : del " . $count . " \n"; } else { Transport::model()->deleteAll($data, $param); } }
public function actionDelete($id) { $user = User::model()->find(array('condition' => 'id = :id', 'params' => array(':id' => $id))); if (isset($user)) { if (!Yii::app()->user->checkAccess('admin') && (Yii::app()->getUser()->getProfile()->modules->head != UserModules::DIRECTOR_COMPANY || Yii::app()->user->getProfile()->company_id != $user->company_id || Yii::app()->user->id == $id)) { throw new CHttpException(403); } $users = User::getUserList($id); $model = new ModuleAccess(); if (isset($_POST['ModuleAccess'])) { $userId = $_POST['ModuleAccess']['user']; Transport::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); Product::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); Cargo::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); Reis::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); Sklad::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); Custom::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); Insurance::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); SpecialTechnique::model()->updateAll(array('user_id' => $userId), 'user_id=' . $id); if ($user->delete()) { $this->redirect('/cabinet/staff/list'); } } $this->render('delete', array('model' => $model, 'user' => $user, 'users' => $users)); } }