/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = Works::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** * получить данные о договоре для редактора */ public function actionChangeBody() { if (Yii::app()->request->isAjaxRequest) { //printvar($_POST); $return_msg = ''; $order_id = intval($_POST['order_id']); if (!is_array($order_pos = Works::model()->worksByOrder($order_id))) { $return_msg .= 'Невозможно получить список работ'; } $data['works'] = "<ul>\n"; foreach ($order_pos as $o_p) { $data['works'] .= '<li>' . $o_p->name . ', ' . $o_p->quantity . $o_p->unit . "</li>\n"; } $data['works'] .= "</ul>\n"; // echo ($data['works']);die; $data['contract']['date'] = $_POST['date']; $data['contract']['duedate'] = $_POST['duedate']; $data['contract']['name'] = $_POST['name']; $data['contract']['num'] = $_POST['num']; $data['contract']['sum'] = $_POST['sum']; // echo json_encode(CVarDumper::dump($data));die;//Yii::app()->end; if (!is_array($data['client'] = Clients::model()->clientByOrder($order_id))) { $return_msg .= 'Невозможно получить данные клиента'; } // echo CVarDumper::dump($data['client']);die; if (!is_array($data['settings'] = Config::model()->get_settings())) { $return_msg .= 'Невозможно получить основные параметры'; } // echo CVarDumper::dump($data['settings']['org.fullname']['value'],10,true);die; $body = $this->_tmpl_body($data, Contracts::model()->get_contract_tmpl($_POST['template_id'])); // echo $body;die; if ($body == '') { $return_msg .= 'Невозможно сформировать шаблон'; } if ($return_msg == '') { echo $body; } else { echo $return_msg; } } else { echo 'Некорректный формат запроса'; } }
/** * @return \yii\db\ActiveQuery */ public function getWorks() { return $this->hasMany(Works::className(), ['Work_ID' => 'Work_ID'])->viaTable('Test_Works', ['Test_ID' => 'Test_ID']); }
/** * Deletes a particular model. * If deletion is successful, the browser will be redirected to the 'admin' page. * @param integer $id the ID of the model to be deleted */ public function actionDelete($id) { if (Yii::app()->request->isPostRequest) { // we only allow deletion via POST request $model = $this->loadModel($id); if (Payments::model()->count('order_id=' . $id) !== 0) { $transaction = Yii::app()->db->beginTransaction(); try { Contracts::model()->deleteAll('order_id=' . $id); Acts::model()->deleteAll('order_id=' . $id); Invoices::model()->deleteAll('order_id=' . $id); InvoicesFkt::model()->deleteAll('order_id=' . $id); Works::model()->deleteAll('order_id=' . $id); $msg = 'Заказ #' . $model->id . ' - ' . $model->name . ' для ' . $model->client->name . ' и документы по нему удалёны'; $model->delete(); $transaction->commit(); Yii::app()->user->setFlash('success', $msg); Yii::app()->logger->write($msg); } catch (Exception $e) { $transaction->rollBack(); $msg = 'Заказ #' . $model->id . ' - ' . $model->name . ' для ' . $model->client->name . ' - удаление не удалось'; Yii::app()->user->setFlash('error', $msg); Yii::app()->logger->write($msg); } } else { $msg = 'Заказ #' . $model->id . ' - ' . $model->name . ' для ' . $model->client->name . ' - удаление невозможно. По этому заказу уже были проведены платежи'; Yii::app()->user->setFlash('notice', $msg); Yii::app()->logger->write($msg); } // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser if (!isset($_GET['ajax'])) { $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin')); } } else { throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.'); } }
/** * присвоить работы акту * @param int $act_id * @param array $works * @return int */ public function setWorks($works) { // parse_str($works); // Dumper::d($works);die; Works::model()->updateAll(array('act_id' => null), array('condition' => 'act_id=' . $this->id)); return Works::model()->updateByPk($works, array('act_id' => $this->id, 'order_id' => $this->order_id), array('condition' => 'client_id=' . (int) $this->client_id)); //return $c; }
<p>Неотраженныв в актах работы/услуги на сумму: <strong><?php $ws = $dtprv->getData(); echo isset($ws[0]) ? $ws[0]->works_sum_order : '0'; ?> </strong></p> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'works-grid', 'cssFile' => false, 'dataProvider' => $dtprv, 'columns' => array('id', 'date', 'location', 'name', 'unit', array('name' => 'quantity', 'footer' => 'ИТОГО', 'footerHtmlOptions' => array('class' => 'strong a-right')), array('name' => 'cost', 'footer' => Works::model()->sumByOrder($dtprv), 'footerHtmlOptions' => array('class' => 'strong')), array('class' => 'MyButtonColumn', 'deleteButtonUrl' => 'Yii::app()->createUrl("works/delete", array("id"=>$data->id))', 'viewButtonUrl' => 'Yii::app()->createUrl("works/view", array("id"=>$data->id))', 'updateButtonUrl' => 'Yii::app()->createUrl("works/update", array("id"=>$data->id,"byorder"=>$data->order_id))')), 'ajaxUpdate' => false)); echo CHtml::link('<span class="icon addnew">Создать работу</span>', Yii::app()->createUrl('works/create', array('byorder' => $model->id)), array('class' => 'button'));
/** * @return \yii\db\ActiveQuery */ public function getWRKs() { return $this->hasMany(Works::className(), ['Work_ID' => 'WRK_ID'])->viaTable('RealWorks', ['C_ID' => 'C_ID']); }
/** * * @param <type> $id */ public function actionHtml($id) { if (!is_numeric($id)) { throw new CHttpException(400, 'Неверный идентификатор счёта.'); } $data['invoice_fkt'] = $this->loadModel($id); if (!is_array($works_pos = Works::model()->worksByOrder($data['invoice_fkt']->order_id, $data['invoice_fkt']->act_id))) { Yii::app()->user->setFlash('error', 'Список работ для счёта #' . $data['invoice_fkt']->id . ' пуст'); $this->redirect(array('view', 'id' => $data['invoice_fkt']->id)); } else { $data['works'] = $works_pos; } if (is_null($data['client'] = Clients::model()->findByPk($data['invoice_fkt']->client_id))) { Yii::app()->user->setFlash('error', 'Данные клиента для счёта #' . $data['invoice_fkt']->id . ' пусты'); $this->redirect(array('view', 'id' => $data['invoice_fkt']->id)); } if (!is_array($data['settings'] = Config::model()->get_settings())) { Yii::app()->user->setFlash('error', 'Основные параметры для счёта #' . $data['invoice_fkt']->id . ' пусты'); $this->redirect(array('view', 'id' => $data['invoice_fkt']->id)); } $data['body'] = $this->_tmpl_body($data, InvoicesFktTmpl::model()->findByPk($data['invoice_fkt']->template_id)); $this->layout = false; $this->render('html', array('data' => $data)); }
private function _prepare_body($mdl = null) { $return_msg = ''; if (is_null($mdl)) { if (!isset($_POST['act_id']) and !isset($_POST['order_id']) and empty($_POST['works']) and !isset($_POST['client_id']) and !isset($_POST['template_id']) and !isset($_POST['date']) and !isset($_POST['sum']) and !isset($_POST['num'])) { die("Необходимых данных недостаточно </br>"); } $date = $_POST['date']; $sum = $_POST['sum']; $num = (int) $_POST['num']; $act_id = (int) $_POST['act_id']; $order_id = (int) $_POST['order_id']; $works = $_POST['works']; $client_id = (int) $_POST['client_id']; $template_id = (int) $_POST['template_id']; } else { $date = $mdl->date; $sum = $mdl->sum; $num = $mdl->num; $act_id = $mdl->id; $order_id = $mdl->order_id; $works = false; $client_id = $mdl->client_id; $template_id = $mdl->template_id; } $data['act']['date'] = $date; $data['act']['sum'] = $sum; $data['act']['num'] = $num; if (!is_array($order_pos = Works::model()->worksByOrder($order_id, $act_id, $works))) { $return_msg .= "Невозможно получить список работ </br>"; } $data['works'] = $order_pos; // parse_str($_POST['works']); // Dumper::d($Works);die; $data['contract'] = Contracts::model()->findByPk($order_id, array('select' => 'date, num')); // if (is_null($data['contract'] = Contracts::model()->findByPk((int) $_POST['order_id'], array('select' => 'date, num')))) { // $return_msg .= "Невозможно получить данные договора \n"; // } if (is_null($data['client'] = Clients::model()->findByPk($client_id))) { $return_msg .= "Невозможно получить данные клиента \n"; } if (!is_array($data['settings'] = Config::model()->get_settings())) { $return_msg .= "Невозможно получить основные параметры \n"; } $body = $this->_tmpl_body($data, Acts::model()->get_act_tmpl($template_id)); if ($body == '') { $return_msg .= "Невозможно сформировать шаблон \n"; } if ($return_msg == '') { echo $body; } else { echo $return_msg; } }
<div class="row"> <?php echo $form->labelEx($model, 'cost'); ?> <?php echo $form->textField($model, 'cost'); ?> </div> <div class="row"> <?php echo $form->labelEx($model, 'group'); ?> <?php echo $form->dropDownList($model, 'group', Works::model()->itemAlias('group')); ?> </div> <div class="row"> <?php echo $form->labelEx($model, 'quantity'); ?> <?php echo $form->textField($model, 'quantity'); ?> </div> <div class="row"> <?php echo $form->labelEx($model, 'location');
<?php $works_sum = Works::model()->sumByOrder($mdlWorks); ?> <p>Работы/услуги (без заказов/в заказе - неактированные/в акте/):</p> <?php $false = $model->isNewRecord ? 'false' : '$data->act_id==' . $model->id . ' ? true : false'; //Dumper::d($_POST); $this->widget('zii.widgets.grid.CGridView', array('id' => 'works-grid', 'dataProvider' => $mdlWorks, 'selectableRows' => null, 'columns' => array('id', 'date', 'location', 'name', 'unit', array('name' => 'quantity', 'footer' => 'ИТОГО', 'footerHtmlOptions' => array('class' => 'strong a-right'), 'htmlOptions' => array('class' => 'qnt')), array('name' => 'cost', 'footer' => $works_sum, 'footerHtmlOptions' => array('class' => 'strong'), 'htmlOptions' => array('class' => 'cost')), array('class' => 'CCheckBoxColumn', 'header' => 'Вкл', 'name' => 'id', 'checkBoxHtmlOptions' => array('name' => 'Works[]'), 'checked' => 'isset($_POST["Works"]) ? (in_array($data->id,$_POST["Works"]) ? true:' . $false . ') : ' . $false))));
function actionRecalc() { $all = Works::model()->findAll('client_id=0'); foreach ($all as $key => $value) { //Dumper::d($value); $model = $this->loadModel($value->id); if ($model->client_id === '0') { echo $model->id . ' ' . $model->order->client->name; echo '<br>'; $model->client_id = $model->order->client->id; $model->save(); } else { echo '----' . $model->id . ' ' . $model->order->client->name; echo '<br>'; } } }
/** * @return \yii\db\ActiveQuery */ public function getWRKs() { return $this->hasMany(Works::className(), ['Work_ID' => 'WRK_ID'])->viaTable('LicensesWorks', ['LIC_ID' => 'Lic_ID']); }