| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454 |
- <?php
- namespace app\controllers;
- use app\models\Auctions;
- use app\models\Images;
- use Yii;
- use app\models\Publishing;
- use app\models\Files;
- use yii\web\UploadedFile;
- use app\models\PublishingSearch;
- use yii\web\Controller;
- use yii\web\NotFoundHttpException;
- use yii\filters\VerbFilter;
- use SoapClient;
- use ZipArchive;
- class PublishingController extends Controller
- {
- public function behaviors()
- {
- return [
- 'verbs' => [
- '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 .= "</w:t><w:br/><w:t>№$c:" . $member['at_org'] . " в особі Директора " .
- $member['fio'] . "</w:t><w:br/><w:t> Код ЄДРПОУ " .
- $member['inn'] . "</w:t><w:br/><w:t> Юридична адреса: " .
- $member['u_address'] . "</w:t><w:br/><w:t> Електронна адреса: " . $member['member_email'] . "</w:t><w:br/><w:t>";
- }
-
- $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 = "</w:t><w:br/><w:t>№$c:" . $members[0]['at_org'] . " в особі Директора " .
- $members[0]['fio'] . "</w:t><w:br/><w:t> Код ЄДРПОУ " .
- $members[0]['inn'] . "</w:t><w:br/><w:t>";
-
- $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.');
- }
- }
- }
|