[ '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.'); } } }