[
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
];
}
public function actionIndex()
{
$searchModel = new PublishingSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
// $model = $this->findModel($id);
// $images = Images::find()->where(['lot_id' => $model->lot_id])->all();
$dataProvider->pagination->defaultPageSize = 8;
$dataProvider->pagination->pageSize = 8;
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
//'model' => $this->findModel($id),
//'images' => $images,
]);
}
public function actionView($id)
{
$model = $this->findModel($id);
if (Yii::$app->request->post()&&Yii::$app->user->can('admin'))
{
$files = new Files();
$file = UploadedFile::getInstance($files, 'file');
$file->name = $files->transliteration($file->name);
$files->name = $file->name;
$path = Yii::$app->params['uploadPath'].$file->name;
$file->saveAs($path); // save file on server
$files->saveFile([
'name'=>$file->name,
'path'=>Yii::$app->params['uploadPath'],
'user_id'=>Yii::$app->user->identity->id,
'lot_id' => $model->lot_id,
'auction_id'=>$model->id]);
Yii::$app->session->setFlash('success', Yii::t('app', 'FileUploaded ID'));
$model->setAttribute('status','4');
$model->save(false);
}
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
public function actionDoc($id)
{
$model = $this->findModel($id);
//все учасники, 0 - победитель
$members = $this->getClients($model->id);
//логи торгов, 0 - победитель
$tradeLog = $this->getTradeLog($model->id);
/*
print_r($members);
print_r($tradeLog[0]);
print_r($model);
print_r($model->lot->attributes);
//организатор
print_r($model->profile->attributes);
// print_r($model->user->attributes);
echo $model->NDS.'<<<'.$model->id;
*/
$str_members = "";
foreach($members as $n=>$member){
$c = $n+1;
$str_members .= "№$c:" . $member['at_org'] . " в особі Директора " .
$member['fio'] . " Код ЄДРПОУ " .
$member['inn'] . " Юридична адреса: " .
$member['u_address'] . " Електронна адреса: " . $member['member_email'] . "";
}
$fio = "";
if(empty($model->profile->fio)){
$fio = $model->user->fio;
if(empty($fio)){
$fio = "name name name";
}
} else {
$fio = $model->profile->fio;
}
$fio = explode(" ", $fio);
if(count($fio) > 2){
$iof = mb_substr($fio[1], 0, 1) . ". " . mb_substr($fio[2], 0, 1) . ". " . $fio[0];
} else {
$iof = (string)$fio[0];
}
$winner_proposition = 0;
if(!empty(isset($tradeLog[0]))){
preg_match("/\d+(?:\.\d+)?/", $tradeLog[0]['comment'], $m );
$winner_proposition = $m[0];
}
$winner = "№$c:" . $members[0]['at_org'] . " в особі Директора " .
$members[0]['fio'] . " Код ЄДРПОУ " .
$members[0]['inn'] . "";
$winner_fio = explode(" ", $members[0]['fio']);
if(count($winner_fio) > 2){
$winner_iof = mb_substr($winner_fio[1], 0, 1) . ". " . mb_substr($winner_fio[2], 0, 1) . ". " . $winner_fio[0];
} else {
$winner_iof = (string)$winner_fio[0];
}
$data = [
'{protocol_organizator_org}' => $model->profile->at_org,
'{protocol_organizator_fio}' => $model->profile->fio,
'{protocol_organizator_iof}' => $iof,
'{protocol_date}' => $model->date_start,///.'«19» грудня 2025 р.',
'{protocol_number}' => $model->date_start . "-" . $model->lot_num,/// . 'переколбасить',
'{protocol_start_date}' => $model->date_start,// .'«19» грудня 2025 р. о 10-30',
'{protocol_lot_number}' => $model->lot_num,
'{protocol_lot_name}' => $model->lot->name,
'{protocol_lot_description}' => $model->lot->description,
'{protocol_organizator_inn}' => $model->profile->inn,
'{protocol_organizator_uaddress}' => $model->profile->u_address,
'{protocol_organizator_email}' => $model->profile->member_email,
'{protocol_members}' => $str_members,
'{protocol_lotprice}' => Yii::$app->num2text->moneyFormatted($model->lotPrice) . " " . $model->NDS, ///number_format($model->lotPrice,2)
'{protocol_lotstep}' => round($model->lotStep) . "% = " . Yii::$app->num2text->moneyFormatted($model->lotPrice * $model->lotStep / 100),
'{protocol_organizator_proposition}' => Yii::$app->num2text->moneyFormatted($model->lotPrice * $model->lotStep / 100),
'{protocol_winner_proposition}' => Yii::$app->num2text->moneyFormatted($winner_proposition),
'{protocol_winner}' => $winner,
'{protocol_winner_uaddress}' => $members[0]['u_address'],
'{protocol_winner_iof}' => $winner_iof
];
$file = Yii::$app->templater->process($data);
return Yii::$app->response->sendFile($file);
// $str_members = null;
// $count_members = null;
// $k = 1;
// foreach ($members as $n => $value)
// {
// $str_members = $str_members.$k.'. '.$value['at_org'].",\n\r ";
// // var_dump(is_countable($str_members.$k.'. '.$value['at_org'].", код ЭДРПОУ, адреса\n\r "));
// //var_dump($str_members.$k.'. '.$value['at_org'].", код ЭДРПОУ, адреса\n\r ") ; die();
// //phpinfo();
// $count_members += count( $str_members.$k.'. '.$value['at_org'].", код ЭДРПОУ, адреса\n\r ");
// $k++;
// }
// $tradeLog = $this->getTradeLog($model->id); $str_log=null; //var_dump($tradeLog); exit;
// foreach ($tradeLog as $n => $value)
// {
// $str_log = $str_log.$value['date']." ".$value['comment']." ".$value['at_org']."
// ";
// }
// $word = new \PhpOffice\PhpWord\PhpWord();
// $word->setDefaultFontSize(12);
// $word->setDefaultFontName('Times New Roman');
// $word->addFontStyle('fs1', [
// 'size' => '12',
// 'bold' => true,
// ]);
// $styleTable = array('borderColor'=>'006699',
// 'borderSize'=>6,
// 'cellMargin'=>50,
// 'valign'=>'center'
// );
// $word->addTableStyle('tableStyle',$styleTable);
// $section = $word->addSection();
// $section->addTextRun(['align'=>'center'])->addText('Протокол № ');
// $section->addTextRun(['align'=>'center'])->addText('про проведення аукціону');
// $section->addTextRun(['align'=>'center'])->addText('');
// $section->addTextRun()->addText('Дата складання протоколу: «_'.date('d',time()).'_» __'.date('m',time()).'__ 2017 року');
// $section->addTextRun(['align'=>'center'])->addText('');
// $section->addTextRun()->addText('Даний протокол складено організатором відкритих електронних торгів Товарна біржа, про те, що відповідно до Додаткової угоди №___ про співпрацю з організації продажу активів від _____ р. проведено електронні торги по лоту № '.$model->lot_num);
// $section->addTextRun(['align'=>'center'])->addText('');
// //таблица
// $table = $section->addTable('tableStyle');
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('1');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Організатор аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Товарна біржа Юридична та фактична адреса: 04071, Україна, м.Київ; Ідентифікаційний код: 12345678 ');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('2');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Реквізити організатора аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Поточний рахунок № 2600900000000 в ПАТ «ПРОКРЕДИТ БАНК» у м. Києві; МФО: 320984');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('3');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Дата та час початку аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.$model->date_start.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('4');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Дата та час закінчення аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.$model->date_stop.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('5');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Місце проведення аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('6');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Адреси веб-сайтів, на яких розміщено відомості про проведення аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('7');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Номер лоту :');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.$model->lot_num.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('8');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Власник майна (Продавець):');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('9');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Майно, що запропоноване для продажу:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('10');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Місцезнаходження майна:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('11');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Стартова (початкова) вартість лоту, грн. без ПДВ/ПДВ:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.number_format($model->lotPrice,2)." ".$model->NDS.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('12');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Гарантійний внесок переможця аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('13');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Крок аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.$model->lotStep.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('14');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Кількість учасників аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.$count_members.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('15');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Учасники аукціону:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.$str_members.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('16');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Найменування і місцезнаходження (для юридичної особи), прізвище, ім’я, по батькові і місце проживання (для фізичної особи) переможця торгів');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('17');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Ціна продажу:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText(''.$model->last_price.'');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('18');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Сума винагороди організатора аукціону, що утримується організатором аукціону з гарантійного внеску:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('19');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Сума, що підлягає сплаті Організатором аукціону продавцю:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('20');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Сума, що підлягає сплаті Переможцем аукціону Продавцю:');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //--
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('21');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Номер банківського рахунку, на який мають бути перераховані кошти за придбане майно');
// $table->addCell(4000, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('');
// //-----------------------------need foreach
// $tradeLog = $this->getTradeLog($model->id);
// $str_log=null;
// $str_date=null;
// $str_name=null;
// $section->addTextRun(['align'=>'center'])->addText('Пропозиції учасників аукціону:');
// $table = $section->addTable('tableStyle');
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('');
// $table->addCell(2666, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('Ціна пропозиції','fs1');
// $table->addCell(2666, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('Час подачі','fs1');
// $table->addCell(2666, ['valign' => 'center'])->addTextRun(['align'=>'center'])->addText('Учасник','fs1');
// //--
// foreach ($tradeLog as $n => $value) {
// //$str_log = $str_log.$value['comment']."\r\n";
// $str_log .= str_replace('Прийнята нова цінова пропозиція -', '', $value['comment']) . "\r\n";
// $str_date .= $value['date'] . "\r\n";
// $str_name = $str_name . $value['at_org'] . "\r\n";
// $str_log == null ? $tradeLog[0]['at_org'] = '' : '';
// $table->addRow(500);
// $table->addCell(700, ['valign' => 'center'])->addTextRun(['align' => 'center'])->addText('');
// $table->addCell(2900, ['valign' => 'center'])->addTextRun(['align' => 'center'])->addText('' . str_replace('Прийнята нова цінова пропозиція -', '', $value['comment']) . '');
// $table->addCell(2900, ['valign' => 'center'])->addTextRun(['align' => 'center'])->addText('' . $value['date'] . '');
// $table->addCell(2900, ['valign' => 'center'])->addTextRun(['align' => 'center'])->addText('' . $value['at_org'] . '');
// }
// //--
// //--
// $section->addTextRun(['align'=>'left'])->addText('');
// $section->addTextRun(['align'=>'left'])->addText(' Переможець аукціону повинен підписати протокол, договір купівлі-продажу придбаного активу та провести повний розрахунок з продавцем протягом 10 календарних днів з дня наступного після закінчення аукціону.
// В разі не виконання учасником-переможцем аукціону умов протоколу, аукціон буде визнаний таким, що не відбувся.
// Цей протокол складений в 4 (чотирьох) примірниках, які мають однакову юридичну силу: 1 (один) примірник – Продавцю, 1 (один) примірник – переможцю аукціону (Покупцю), 1 (один) примірник – Організатору аукціону, 1 (один) примірник – нотаріусу, який буде посвідчувати договір купівлі-продажу.');
// $section->addTextRun(['align'=>'left'])->addText('');
// $table = $section->addTable('tableStyle');
// $table->addRow(500);
// $table->addCell(4350, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Організатор аукціону:
// Товарна біржа «Українська
// міжрегіональна спеціалізована»,
// в особі в. о. директора');
// $table->addCell(4350, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('____________________ /Р.В. Широких/');
// //--
// $table->addRow(500);
// $table->addCell(4350, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('Переможець аукціону:
// Директор ТОВ «»');
// $table->addCell(4350, ['valign' => 'center'])->addTextRun(['align'=>'left'])->addText('____________________ /');
// //--
// header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
// header('Content-Disposition: attachment;filename="Протокол.docx"');
// header('Cache-Control: max-age=0');
// $objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($word,'Word2007');
// $objWriter->save('php://output');
}
private function assocArrayToArrayOfArrayOfString ($assoc)
{
$arrayKeys = array_keys($assoc);
$arrayValues = array_values($assoc);
return array ($arrayKeys, $arrayValues);
}
private function getTradeLog($id)
{
$log = Yii::$app->db->createCommand("
SELECT trade_logs.comment, trade_logs.date, user.at_org from trade_logs
LEFT JOIN user ON (trade_logs.user_id=user.id)
WHERE auk_id=:id ORDER by date DESC");
$log->bindValue(':id', $id);
$result = $log->queryAll();
return $result; //$result['0']['at_org'];
}
private function getClients($id)
{
$clients =Yii::$app->db->createCommand("SELECT
bidding.id,
user.at_org,
profile.fio,
profile.inn,
profile.u_address,
profile.member,
profile.member_email,
profile.phone
FROM bidding
LEFT JOIN user
ON bidding.user_id = user.id
LEFT JOIN profile
ON profile.user_id = user.id
WHERE
bidding.auction_id = :id
AND bidding.status = 1;");
$clients->bindValue(':id', $id);
$result = $clients->queryAll();
return $result;
}
protected function findModel($id)
{
if (($model = Publishing::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
}