public function actionChangeVremyaProvedeniya() { Yii::$app->response->format = Response::FORMAT_JSON; $response = new JsResponse(); $id = Yii::$app->request->post('id'); $vremyaId = Yii::$app->request->post('vremya_id'); /** * @var ZayavlenieNaAttestaciyu $zayavlenie */ $zayavlenie = ZayavlenieNaAttestaciyu::findOne(['id' => $id]); $zayavlenie->vremya_provedeniya = $vremyaId; $zayavlenie->status = StatusZayavleniyaNaAttestaciyu::PODPISANO_OTDELOM_ATTESTACII; $period = VremyaProvedeniyaAttestacii::findOne($vremyaId); if (!$zayavlenie->save()) { $response->type = JsResponse::ERROR; $response->msg = JsResponse::MSG_OPERATION_ERROR; } else { $email = FizLico::getEmailById($zayavlenie->fiz_lico); \Yii::$app->mailer->compose('/attestaciya/vremya-izmeneno.php', compact('period'))->setTo($email)->send(); } return $response; }
public function actionOtchetByRajon() { if (isset($_GET['vp']) and $vremya_provedeniya = $_GET['vp']) { $ispytaniya = AttestacionnoeVariativnoeIspytanie_3::find()->orderBy('nazvanie')->all(); $sql = "SELECT\n t.rajon_id,\n t.rajon,\n EXTRACT(YEAR from t.nachalo) as year,\n EXTRACT(month from t.nachalo) as month,\n SUM(CASE WHEN t.na_kategoriyu = 'pervaya_kategoriya' and t.count_bally_below_min = 0 THEN 1 ELSE 0 end) as pervaya_reccomended,\n SUM(CASE WHEN t.na_kategoriyu = 'pervaya_kategoriya' and t.count_bally_below_min > 0 THEN 1 ELSE 0 end) as pervaya_notreccomended,\n SUM(CASE WHEN t.na_kategoriyu = 'vyshaya_kategoriya' and t.count_bally_below_min = 0 THEN 1 ELSE 0 end) as vyshaya_reccomended,\n SUM(CASE WHEN t.na_kategoriyu = 'vyshaya_kategoriya' and t.count_bally_below_min > 0 THEN 1 ELSE 0 end) as vyshaya_notreccomended,\n count(*) as all_zayavleniya\n FROM\n (\n SELECT\n z.id as zayavlenie_id,\n count_bally_below_min(z.id),\n vpa.nachalo, z.na_kategoriyu,\n coalesce(ao.formalnoe_nazvanie, 'не задано') as rajon,\n COALESCE(ao.id, -1) as rajon_id\n FROM zayavlenie_na_attestaciyu AS z\n INNER JOIN organizaciya as o on z.rabota_organizaciya = o.id\n left JOIN adresnyj_objekt as ao on o.adres_adresnyj_objekt = ao.id\n INNER JOIN vremya_provedeniya_attestacii as vpa on z.vremya_provedeniya = vpa.id\n WHERE z.status = 'podpisano_otdelom_attestacii' AND z.vremya_provedeniya = :vp\n ) AS t\n GROUP BY t.nachalo, t.rajon, t.rajon_id\n ORDER BY t.rajon"; $data = \Yii::$app->db->createCommand($sql)->bindValue(':vp', $vremya_provedeniya)->queryAll(); $report = []; foreach ($data as $item) { $report[$item['rajon_id']] = $item; } $vremya = VremyaProvedeniyaAttestacii::findOne($vremya_provedeniya); $content = $this->renderPartial('rajon', compact('vremya', 'report', 'ispytaniya')); $pdf = new Pdf($this->getPdfSeetings($content)); // return the pdf output as per the destination setting return $pdf->render(); } else { return $this->render('rajon-form'); } }