tmp commit

This commit is contained in:
iIronside
2022-11-10 16:00:43 +03:00
parent 45b110ac44
commit 1175b9f973
25 changed files with 4032 additions and 95 deletions

View File

@ -2,6 +2,10 @@
namespace backend\modules\document\controllers;
use backend\modules\card\models\UserCard;
use backend\modules\document\models\DocumentTemplate;
use common\classes\Debug;
use kartik\mpdf\Pdf;
use Yii;
use backend\modules\document\models\Document;
use backend\modules\document\models\DocumentSearch;
@ -66,7 +70,9 @@ class DocumentController extends Controller
{
$model = new Document();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
if ($model->load(Yii::$app->request->post()) && $model->validate()) { // //$model->save(false)
$this::generateDocumentBody($model);
$model->save(false);
return $this->redirect(['view', 'id' => $model->id]);
}
@ -124,4 +130,94 @@ class DocumentController extends Controller
throw new NotFoundHttpException('The requested page does not exist.');
}
public function actionDownload($id): string
{
return $this->render('download', [
'model' => Document::findOne($id)
]);
}
/**
* @param integer $id
* @throws NotFoundHttpException
*/
public function actionUpdateDocumentBody($id)
{
$model = $this->findModel($id);
$model->scenario = $model::SCENARIO_UPDATE_DOCUMENT_BODY;
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$model->updated_at = date('Y-m-d h:i:s');
$model->save();
}
return $this->render('download', [
'model' => $model
]);
}
public function generateDocumentBody(Document $model)
{
$templateModel = DocumentTemplate::findOne($model->template_id);
preg_match_all('/(\${\w+})/', $templateModel->template_body,$out);
$document = $templateModel->template_body;;
foreach ($out[0] as $field) {
if (str_contains($document, $field)) {
if($field == '${contract_number}') {
$fieldValue = 101;
} elseif ($field == '${title}') {
$fieldValue = $model->title;
} elseif ($field == '${company}') {
$fieldValue = $model->company->name;
} elseif ($field == '${manager}') {
$fieldValue = $model->manager->userCard->fio;
} elseif ($field == '${contractor_company}') {
$fieldValue = $model->company->name;
} elseif ($field == '${contractor_manager}') {
$fieldValue = $model->manager->userCard->fio;
}
} else {
$fieldValue = $field;
}
$document = str_replace($field, $fieldValue, $document);
}
$model->body = $document;
}
public function actionDownloadPdf($id)
{
$model = Document::findOne($id);
$pdf = new Pdf(); // or new Pdf();
$mpdf = $pdf->api; // fetches mpdf api
// $mpdf->SetHeader('Resume ' . $model->ti . '||Generated by ITGuild.info At: ' . date("d/m/Y")); // call methods or set any properties
$mpdf->SetFooter('{PAGENO}');
$mpdf->WriteHtml($model->body); // call mpdf write html
echo $mpdf->Output("{$model->title}", 'D'); // call the mpdf api output as needed
}
public function actionDownloadDocx($id)
{
$model = Document::findOne($id);
$pw = new \PhpOffice\PhpWord\PhpWord();
// (B) ADD HTML CONTENT
$section = $pw->addSection();
$resumeText = str_replace(array('<br/>', '<br>', '</br>'), ' ', $model->body);
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $resumeText, false, false);
// (C) SAVE TO DOCX ON SERVER
// $pw->save("convert.docx", "Word2007");
// (D) OR FORCE DOWNLOAD
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment;filename=\"$model->title.docx\"");
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($pw, "Word2007");
$objWriter->save("php://output");
exit();
}
}

View File

@ -17,7 +17,8 @@ class DocumentSearch extends Document
public function rules()
{
return [
[['id', 'company_id', 'contractor_company_id', 'manager_id', 'contractor_manager_id'], 'integer'],
[['id', 'company_id', 'contractor_company_id', 'manager_id', 'contractor_manager_id', 'template_id'], 'integer'],
[['title', 'body', 'created_at', 'updated_at'], 'safe'],
];
}
@ -62,8 +63,14 @@ class DocumentSearch extends Document
'contractor_company_id' => $this->contractor_company_id,
'manager_id' => $this->manager_id,
'contractor_manager_id' => $this->contractor_manager_id,
'template_id' => $this->template_id,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
]);
$query->andFilterWhere(['like', 'title', $this->title])
->andFilterWhere(['like', 'body', $this->body]);
return $dataProvider;
}
}

View File

@ -17,8 +17,8 @@ class DocumentTemplateSearch extends DocumentTemplate
public function rules()
{
return [
[['id'], 'integer'],
[['title', 'template_body'], 'safe'],
[['id', 'status'], 'integer'],
[['title', 'template_body', 'created_at', 'updated_at'], 'safe'],
];
}
@ -59,6 +59,9 @@ class DocumentTemplateSearch extends DocumentTemplate
// grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'status' => $this->status,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
]);
$query->andFilterWhere(['like', 'title', $this->title])

View File

@ -1,5 +1,7 @@
<?php
use asmoday74\ckeditor5\EditorClassic;
use common\helpers\StatusHelper;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
@ -8,18 +10,153 @@ use yii\widgets\ActiveForm;
/* @var $form yii\widgets\ActiveForm */
?>
<div class="document-template-form">
<div class="row">
<div class="col-md-8">
<div class="document-template-form">
<?php $form = ActiveForm::begin(); ?>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'template_body')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'status')->dropDownList(
StatusHelper::statusList(),
[
'prompt' => 'Выберите'
]
) ?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
<?= $form->field($model, 'template_body')->widget(EditorClassic::className(), [
'clientOptions' => [
'language' => 'ru',
]
]); ?>
<!-- composer require --prefer-dist stkevich/yii2-ckeditor5 "*"-->
<!-- --><?//= $form->field($model, 'text')->widget(CKEditor::className(),[
// 'editorOptions' => [ TODO
// 'preset' => 'full', //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать
// 'inline' => false, //по умолчанию false
// ],
// ]); ?>
<div class="form-group">
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
<!-- ['Акт', $time],-->
<!-- ['Акт сверки', $time],-->
<!-- ['Детализация', $time],-->
<!-- ['Доверенность', $time],-->
<!-- ['Договор', $time],-->
<!-- ['Доп соглашение к договору', $time],-->
<!-- ['Транспортная накладная', $time],-->
<!-- ['Ценовой лист', $time],-->
<div class="col-md-4">
<div class="table-responsive">
<table class="table" id="fieldNameTable">
<thead>
<tr>
<th>Поле</th>
<th>Сигнатура поля</th>
</tr>
</thead>
<tbody>
<tr class="info">
<td class="table-cell">№ договора</td>
<td class="table-cell">${contract_number}</td>
</tr>
<tr class="info">
<td class="table-cell">Название</td>
<td class="table-cell">${title}</td>
</tr>
<tr class="info">
<td class="table-cell">Компания</td>
<td class="table-cell">${company}</td>
</tr>
<tr class="info">
<td class="table-cell">Представитель</td>
<td class="table-cell">${manager}</td>
</tr>
<tr class="info">
<td class="table-cell">Компания контрагент</td>
<td class="table-cell">${contractor_company}</td>
</tr>
<tr class="info">
<td class="table-cell">Представитель контрагента</td>
<td class="table-cell">${contractor_manager}</td>
</tr>
<!-- <tr class="info">-->
<!-- <td class="table-cell"></td>-->
<!-- <td class="table-cell"></td>-->
<!-- </tr>-->
<!-- <tr class="info">-->
<!-- <td class="table-cell">№ документа</td>-->
<!-- <td class="table-cell">${document_number}</td>-->
<!-- </tr>-->
<!-- <tr class="info">-->
<!-- <td class="table-cell">от </td>-->
<!-- <td class="table-cell">${from}</td>-->
<!-- </tr>-->
<!-- <tr class="info">-->
<!-- <td class="table-cell">сумма с НДС</td>-->
<!-- <td class="table-cell">${sum_with_NDS}</td>-->
<!-- </tr>-->
<!-- <tr class="info">-->
<!-- <td class="table-cell">НДС</td>-->
<!-- <td class="table-cell">${NDS}</td>-->
<!-- </tr>-->
<!-- <tr class="info">-->
<!-- <td class="table-cell">цена</td>-->
<!-- <td class="table-cell">${price}</td>-->
<!-- </tr>-->
<!-- <tr class="info">-->
<!-- <td class="table-cell">к договору</td>-->
<!-- <td class="table-cell">${to_the_contract}</td>-->
<!-- </tr>-->
<!-- <tr class="info">-->
<!-- <td class="table-cell">№</td>-->
<!-- <td class="table-cell">${number}</td>-->
<!-- </tr>-->
<?php ActiveForm::end(); ?>
</table>
</div>
<div>
<p>
Нажмите на ячейку чтобы скопировать содержимое
</p>
</div>
</div>
</div>
<script>
const popup = document.createElement('h4')
popup.textContent = 'Скопировано'
popup.style.cssText = `
background: #a6caf0;
position: absolute;
right: 0;
top: 0;
`
document.querySelectorAll('.table-cell').forEach(function (elm) {
elm.style.position = 'relative'
elm.addEventListener('click', function (e) {
e.target.style.backgroundColor = '#76d7c4'
var copyText = e.target.textContent
const el = document.createElement('textarea')
el.value = copyText
document.body.appendChild(el)
el.select()
document.execCommand('copy')
document.body.removeChild(el)
elm.appendChild(popup)
setTimeout(() => {
elm.removeChild(popup)
}, 1000)
})
})
</script>

View File

@ -21,6 +21,12 @@ use yii\widgets\ActiveForm;
<?= $form->field($model, 'template_body') ?>
<?= $form->field($model, 'status') ?>
<?= $form->field($model, 'created_at') ?>
<?php // echo $form->field($model, 'updated_at') ?>
<div class="form-group">
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>

View File

@ -5,14 +5,12 @@ use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\modules\document\models\DocumentTemplate */
$this->title = 'Create Document Template';
$this->title = 'Создать шаблон документа';
$this->params['breadcrumbs'][] = ['label' => 'Document Templates', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="document-template-create">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>

View File

@ -1,5 +1,6 @@
<?php
use common\helpers\StatusHelper;
use yii\helpers\Html;
use yii\grid\GridView;
@ -7,16 +8,13 @@ use yii\grid\GridView;
/* @var $searchModel backend\modules\document\models\DocumentTemplateSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Document Templates';
$this->title = 'Шаблоны документов';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="document-template-index">
<h1><?= Html::encode($this->title) ?></h1>
<?php // echo $this->render('_search', ['model' => $searchModel]); ?>
<p>
<?= Html::a('Create Document Template', ['create'], ['class' => 'btn btn-success']) ?>
<?= Html::a('Создать шаблон', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
@ -25,9 +23,19 @@ $this->params['breadcrumbs'][] = $this->title;
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'title',
'template_body:ntext',
[
'attribute' => 'status',
'format' => 'raw',
'filter' => StatusHelper::statusList(),
'value' => function($model){
return StatusHelper::statusLabel($model->status);
}
],
'created_at',
//'updated_at',
// 'template_body:ntext',
['class' => 'yii\grid\ActionColumn'],
],

View File

@ -5,15 +5,13 @@ use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\modules\document\models\DocumentTemplate */
$this->title = 'Update Document Template: ' . $model->title;
$this->title = 'Изменить шаблон: ' . $model->title;
$this->params['breadcrumbs'][] = ['label' => 'Document Templates', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = 'Update';
?>
<div class="document-template-update">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>

View File

@ -1,5 +1,6 @@
<?php
use common\helpers\StatusHelper;
use yii\helpers\Html;
use yii\widgets\DetailView;
@ -13,11 +14,10 @@ $this->params['breadcrumbs'][] = $this->title;
?>
<div class="document-template-view">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'id' => $model->id], [
<?= Html::a('Список', ['index', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Удалить', ['delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
@ -31,7 +31,24 @@ $this->params['breadcrumbs'][] = $this->title;
'attributes' => [
'id',
'title',
'template_body:ntext',
[
'attribute' => 'status',
'format' => 'raw',
'value' => StatusHelper::statusLabel($model->status),
],
'created_at',
'updated_at',
[
'attribute' => 'template_body',
'format' => 'raw'
],
[
'attribute' => 'Переменные в шаблоне',
'value' => function($model){
preg_match_all('/(\${\w+})/', $model->template_body,$out);
return implode(",", $out[0]);
},
],
],
]) ?>

View File

@ -1,5 +1,9 @@
<?php
use backend\modules\company\models\Company;
use backend\modules\document\models\DocumentTemplate;
use backend\modules\employee\models\Manager;
use kartik\select2\Select2;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
@ -12,16 +16,62 @@ use yii\widgets\ActiveForm;
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'company_id')->textInput() ?>
<?= $form->field($model, 'company_id')->widget(Select2::class,
[
'data' => Company::find()->select(['name', 'id'])->indexBy('id')->column(),
'options' => ['placeholder' => '...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]
); ?>
<?= $form->field($model, 'contractor_company_id')->textInput() ?>
<?= $form->field($model, 'manager_id')->widget(Select2::class,
[
'data' => Manager::find()->select(['fio', 'manager.id'])
->joinWith('userCard')->indexBy('manager.id')->column(),
'options' => ['placeholder' => '...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]
); ?>
<?= $form->field($model, 'manager_id')->textInput() ?>
<?= $form->field($model, 'contractor_company_id')->widget(Select2::class,
[
'data' => Company::find()->select(['name', 'id'])->indexBy('id')->column(),
'options' => ['placeholder' => '...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]
); ?>
<?= $form->field($model, 'contractor_manager_id')->textInput() ?>
<?= $form->field($model, 'contractor_manager_id')->widget(Select2::class,
[
'data' => Manager::find()->select(['fio', 'manager.id'])
->joinWith('userCard')->indexBy('manager.id')->column(),
'options' => ['placeholder' => '...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]
); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'template_id')->widget(Select2::class,
[
'data' => DocumentTemplate::find()->select(['title', 'id'])->indexBy('id')->column(),
'options' => ['placeholder' => '...','class' => 'form-control'],
'pluginOptions' => [
'allowClear' => true
],
]
); ?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>

View File

@ -25,6 +25,16 @@ use yii\widgets\ActiveForm;
<?= $form->field($model, 'contractor_manager_id') ?>
<?php // echo $form->field($model, 'template_id') ?>
<?php // echo $form->field($model, 'title') ?>
<?php // echo $form->field($model, 'body') ?>
<?php // echo $form->field($model, 'created_at') ?>
<?php // echo $form->field($model, 'updated_at') ?>
<div class="form-group">
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>

View File

@ -5,14 +5,12 @@ use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\modules\document\models\Document */
$this->title = 'Create Document';
$this->title = 'Создать документ';
$this->params['breadcrumbs'][] = ['label' => 'Documents', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="document-create">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>

View File

@ -0,0 +1,52 @@
<?php
use asmoday74\ckeditor5\EditorClassic;
//use backend\modules\card\models\ResumeTemplate;
use common\helpers\StatusHelper;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\modules\document\models\Document */
$this->title = 'Документ: ' . $model->title;
$this->params['breadcrumbs'][] = ['label' => 'Документы', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = 'Загрузить';
?>
<div class="form-group">
<?= Html::a('Редактировать документ', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Просмотр документа', ['view', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
</div>
<div class="resume-form">
<?php $form = ActiveForm::begin([
'id' => 'update-resume-text-form',
'action' => Url::to(['document/update-document-body', 'id' => $model->id]),
'options' => ['method' => 'post']])
?>
<?= $form->field($model, 'body')->widget(EditorClassic::className(), [
'clientOptions' => [
'language' => 'ru',
]
]); ?>
<div class="form-group">
<?= Html::submitButton('Сохраниить изменения', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
<div>
<p>
<?= Html::a('Скачать pdf', ['download-pdf', 'id' => $model->id], ['class' => 'btn btn-success']) ?>
<?= Html::a('Скачать docx', ['download-docx', 'id' => $model->id], ['class' => 'btn btn-success']) ?>
</p>
</div>

View File

@ -1,5 +1,7 @@
<?php
use backend\modules\company\models\Company;
use backend\modules\employee\models\Manager;
use yii\helpers\Html;
use yii\grid\GridView;
@ -7,16 +9,13 @@ use yii\grid\GridView;
/* @var $searchModel backend\modules\document\models\DocumentSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Documents';
$this->title = 'Документы';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="document-index">
<h1><?= Html::encode($this->title) ?></h1>
<?php // echo $this->render('_search', ['model' => $searchModel]); ?>
<p>
<?= Html::a('Create Document', ['create'], ['class' => 'btn btn-success']) ?>
<?= Html::a('Создать документ', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
@ -25,13 +24,47 @@ $this->params['breadcrumbs'][] = $this->title;
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'company_id',
'contractor_company_id',
'manager_id',
'contractor_manager_id',
'title',
// 'body:ntext',
[
'attribute' => 'company_id',
'filter' => Company::find()->select(['name', 'id'])->indexBy('id')->column(),
'value' => 'company.name'
],
[
'attribute' => 'contractor_company_id',
'filter' => Company::find()->select(['name', 'id'])->indexBy('id')->column(),
'value' => 'contractorCompany.name'
],
[
'attribute' => 'manager_id',
'filter' => Manager::find()->select(['fio', 'manager.id'])
->joinWith('userCard')->indexBy('manager.id')->column(),
'value' => 'manager.userCard.fio'
],
[
'attribute' => 'contractor_manager_id',
'filter' => Manager::find()->select(['fio', 'manager.id'])
->joinWith('userCard')->indexBy('manager.id')->column(),
'value' => 'manager.userCard.fio'
],
//'title',
//'body:ntext',
//'created_at',
//'updated_at',
['class' => 'yii\grid\ActionColumn'],
[
'class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {download}',
'buttons' => [
'download' => function($url, $model) {
return Html::a(
'<span class="glyphicon glyphicon-download-alt"></span>',
['document/download', 'id' => $model->id]
);
}
]
]
],
]); ?>
</div>

View File

@ -5,15 +5,13 @@ use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\modules\document\models\Document */
$this->title = 'Update Document: ' . $model->id;
$this->title = 'Изменить документ: ' . $model->title;
$this->params['breadcrumbs'][] = ['label' => 'Documents', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->id, 'url' => ['view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = 'Update';
?>
<div class="document-update">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>

View File

@ -1,39 +1,61 @@
<?php
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\widgets\DetailView;
/* @var $this yii\web\View */
/* @var $model backend\modules\document\models\Document */
$this->title = $model->id;
$this->title = $model->title;
$this->params['breadcrumbs'][] = ['label' => 'Documents', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
\yii\web\YiiAsset::register($this);
?>
<div class="document-view">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Delete', ['delete', 'id' => $model->id], [
<?= Html::a('Список', ['index', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<?= Html::a('Скачать', ['download', 'id' => $model->id], ['class' => 'btn btn-success']) ?>
<?= Html::a('Удалить', ['delete', 'id' => $model->id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to delete this item?',
'method' => 'post',
],
]) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'company_id',
'contractor_company_id',
'manager_id',
'contractor_manager_id',
'title',
[
'attribute' => 'company_id',
'value' => ArrayHelper::getValue($model, 'company.name'),
],
[
'attribute' => 'manager_id',
'value' => ArrayHelper::getValue($model, 'manager.userCard.fio'),
],
[
'attribute' => 'contractor_company_id',
'value' => ArrayHelper::getValue($model, 'contractorCompany.name'),
],
[
'attribute' => 'contractor_manager_id',
'value' => ArrayHelper::getValue($model, 'manager.userCard.fio'),
],
[
'attribute' => 'body',
'format' => 'raw',
],
// 'body:ntext',
'created_at',
'updated_at',
],
]) ?>