Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * получить данные о договоре для редактора
  */
 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 'Некорректный формат запроса';
     }
 }
Example #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getWorks()
 {
     return $this->hasMany(Works::className(), ['Work_ID' => 'Work_ID'])->viaTable('Test_Works', ['Test_ID' => 'Test_ID']);
 }
Example #4
0
 /**
  * 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.');
     }
 }
Example #5
0
 /**
  * присвоить работы акту
  * @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;
 }
Example #6
0
<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'));
Example #7
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getWRKs()
 {
     return $this->hasMany(Works::className(), ['Work_ID' => 'WRK_ID'])->viaTable('RealWorks', ['C_ID' => 'C_ID']);
 }
Example #8
0
 /**
  *
  * @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));
 }
Example #9
0
 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;
     }
 }
Example #10
0
	<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');
Example #11
0
<?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))));
Example #12
0
 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>';
         }
     }
 }
Example #13
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getWRKs()
 {
     return $this->hasMany(Works::className(), ['Work_ID' => 'WRK_ID'])->viaTable('LicensesWorks', ['LIC_ID' => 'Lic_ID']);
 }