/**
  * @param $objPHPExcel
  * @param null $ID
  */
 protected function Body()
 {
     $ID = $this->getDopparamID();
     $this->setReportName('Акт передачи материалов сторонней организации №' . $ID);
     $Recoverysendakt = Recoverysendakt::findOne($ID);
     $Recoveryrecieveaktmat = Recoveryrecieveaktmat::findAll(['id_recoverysendakt' => $ID]);
     $Mols = Recoveryrecieveaktmat::getMolsByRecoverysendakt($ID);
     $objPHPExcel = $this->getObjPHPExcel();
     $objPHPExcel->getActiveSheet()->setCellValue('A3', 'сторонней организации № ' . $Recoverysendakt->recoverysendakt_id . ' от ' . Yii::$app->formatter->asDate($Recoverysendakt->recoverysendakt_date));
     $objPHPExcel->getActiveSheet()->setCellValue('C4', $Recoverysendakt->idOrgan->organ_name);
     $material_tip = Material::VariablesValues('material_tip');
     $num = 9;
     foreach ($Recoveryrecieveaktmat as $ar) {
         $objPHPExcel->getActiveSheet()->insertNewRowBefore($num);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $num, $num - 8);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $num, $ar->idTrMatOsmotr->idTrMat->idMattraffic->idMaterial->idMatv->matvid_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $num, $ar->idTrMatOsmotr->idTrMat->idMattraffic->idMaterial->material_name);
         $objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow(3, $num, $ar->idTrMatOsmotr->idTrMat->idMattraffic->idMaterial->material_inv, \PHPExcel_Cell_DataType::TYPE_STRING);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $num, $material_tip[$ar->idTrMatOsmotr->idTrMat->idMattraffic->idMaterial->material_tip]);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $num, $ar->idTrMatOsmotr->tr_mat_osmotr_number);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $num, $ar->idTrMatOsmotr->idTrMat->idMattraffic->idMaterial->idIzmer->izmer_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $num, $ar->idTrMatOsmotr->idReason->reason_text . (empty($ar->idTrMatOsmotr->idReason->reason_text) ? '' : '. ') . $ar->idTrMatOsmotr->tr_mat_osmotr_comment);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $num, $ar->idTrMatOsmotr->idTrMat->idMattraffic->idMol->idperson->auth_user_fullname . ', ' . $ar->idTrMatOsmotr->idTrMat->idMattraffic->idMol->iddolzh->dolzh_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $num, TrMatOsmotr::getBuildandKabByTrMatOsmotr($ar->idTrMatOsmotr->tr_mat_osmotr_id));
         $objPHPExcel->getActiveSheet()->getStyle('A' . $num . ':J' . $num)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
         $num++;
     }
     $objPHPExcel->getActiveSheet()->removeRow($num);
     $crows = count($Recoveryrecieveaktmat);
     $num = 10;
     foreach ($Mols as $ar) {
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $num + $crows, 'Материально ответственное лицо');
         $objPHPExcel->getActiveSheet()->mergeCellsByColumnAndRow(0, $num + $crows, 1, $num + $crows);
         $objPHPExcel->getActiveSheet()->mergeCellsByColumnAndRow(3, $num + $crows, 6, $num + $crows);
         $objPHPExcel->getActiveSheet()->mergeCellsByColumnAndRow(7, $num + $crows, 9, $num + $crows);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $num + $crows, $ar['dolzh_name']);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $num + $crows, $ar['auth_user_fullname']);
         $objPHPExcel->getActiveSheet()->insertNewRowBefore($num + $crows + 1);
         $num++;
     }
     $objPHPExcel->getActiveSheet()->removeRow($num + $crows);
 }
Пример #2
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Recoverysendakt::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['recoverysendakt_id' => SORT_DESC]]]);
     $query->joinWith(['idOrgan']);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['id_organ' => $this->id_organ]);
     $query->andFilterWhere(Proc::WhereConstruct($this, 'recoverysendakt_id'));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'recoverysendakt_date', Proc::Date));
     $query->andFilterWhere(['LIKE', 'idOrgan.organ_name', $this->getAttribute('idOrgan.organ_name')]);
     Proc::AssignRelatedAttributes($dataProvider, ['idOrgan.organ_name']);
     $this->recoverysendaktDopFilter($query);
     return $dataProvider;
 }
Пример #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getRecoverysendakts()
 {
     return $this->hasMany(Recoverysendakt::className(), ['id_organ' => 'organ_id'])->from(['recoverysendakts' => Recoverysendakt::tableName()])->inverseOf('idOrgan');
 }
 protected function Body()
 {
     $ID = $this->getDopparamID();
     $this->setReportName('Акт получения матер-ных цен-тей от сторонней организации №' . $ID);
     $Recoverysendakt = Recoverysendakt::findOne($ID);
     $Recoveryrecieveakt_ok = Recoveryrecieveakt::findAll(['id_recoverysendakt' => $ID, 'recoveryrecieveakt_repaired' => 2]);
     $Recoveryrecieveakt_fail = Recoveryrecieveakt::find()->andWhere(['and', ['id_recoverysendakt' => $ID], ['or', ['recoveryrecieveakt_repaired' => 1], ['recoveryrecieveakt_repaired' => NULL]]])->all();
     $Mols = Recoveryrecieveakt::getMolsByRecoverysendakt($ID);
     $objPHPExcel = $this->getObjPHPExcel();
     $objPHPExcel->getActiveSheet()->setCellValue('F4', $Recoverysendakt->idOrgan->organ_name);
     $objPHPExcel->getActiveSheet()->setCellValue('F5', $Recoverysendakt->recoverysendakt_id . ' от ' . Yii::$app->formatter->asDate($Recoverysendakt->recoverysendakt_date));
     $objPHPExcel->getActiveSheet()->setCellValue('F6', Yii::$app->formatter->asDate(date('Y-m-d')));
     $num = 11;
     foreach ($Recoveryrecieveakt_ok as $ar) {
         $objPHPExcel->getActiveSheet()->insertNewRowBefore($num);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $num, $num - 10);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $num, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->idMatv->matvid_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $num, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->material_name);
         $objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow(3, $num, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->material_inv, \PHPExcel_Cell_DataType::TYPE_STRING);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $num, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->material_serial);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $num, 1);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $num, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->idIzmer->izmer_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $num, $ar->recoveryrecieveakt_result);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $num, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMol->idbuild->build_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $num, $ar->idOsmotrakt->idTrosnov->tr_osnov_kab);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $num, Yii::$app->formatter->asDate($ar->recoveryrecieveakt_date));
         $objPHPExcel->getActiveSheet()->getStyle('A' . $num . ':K' . $num)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
         $num++;
     }
     $objPHPExcel->getActiveSheet()->removeRow($num);
     $crows = count($Recoveryrecieveakt_ok);
     $num = 15;
     foreach ($Recoveryrecieveakt_fail as $ar) {
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $num + $crows, $num + $crows - 16);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $num + $crows, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->idMatv->matvid_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $num + $crows, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->material_name);
         $objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow(3, $num + $crows, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->material_inv, \PHPExcel_Cell_DataType::TYPE_STRING);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $num + $crows, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->material_serial);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $num + $crows, 1);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $num + $crows, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMaterial->idIzmer->izmer_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $num + $crows, $ar->recoveryrecieveakt_result);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $num + $crows, $ar->idOsmotrakt->idTrosnov->idMattraffic->idMol->idbuild->build_name);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $num + $crows, $ar->idOsmotrakt->idTrosnov->tr_osnov_kab);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $num + $crows, Yii::$app->formatter->asDate($ar->recoveryrecieveakt_date));
         $objPHPExcel->getActiveSheet()->getStyle('A' . ($num + $crows) . ':K' . ($num + $crows))->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
         $objPHPExcel->getActiveSheet()->insertNewRowBefore($num + $crows + 1);
         $num++;
     }
     $objPHPExcel->getActiveSheet()->removeRow($num + $crows);
     $crows = count($Recoveryrecieveakt_ok) + count($Recoveryrecieveakt_fail);
     $num = 17;
     foreach ($Mols as $ar) {
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $num + $crows, 'Материально ответственное лицо');
         $objPHPExcel->getActiveSheet()->mergeCellsByColumnAndRow(0, $num + $crows, 1, $num + $crows);
         $objPHPExcel->getActiveSheet()->mergeCellsByColumnAndRow(3, $num + $crows, 6, $num + $crows);
         $objPHPExcel->getActiveSheet()->mergeCellsByColumnAndRow(7, $num + $crows, 10, $num + $crows);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $num + $crows, $ar['dolzh_name']);
         $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $num + $crows, $ar['auth_user_fullname']);
         $objPHPExcel->getActiveSheet()->insertNewRowBefore($num + $crows + 1);
         $num++;
     }
     $objPHPExcel->getActiveSheet()->removeRow($num + $crows);
 }
Пример #5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getIdRecoverysendakt()
 {
     return $this->hasOne(Recoverysendakt::className(), ['recoverysendakt_id' => 'id_recoverysendakt'])->from(['idRecoverysendakt' => Recoverysendakt::tableName()]);
 }
 /**
  * Finds the Recoverysendakt model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Recoverysendakt the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Recoverysendakt::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Пример #7
0
 /**
  * @param $Typereport
  */
 public static function SendReportAkt($Typereport)
 {
     $dopparams = json_decode(Yii::$app->request->post()['dopparams']);
     if (!empty($dopparams)) {
         $email = Recoverysendakt::findOne($dopparams->id)->idOrgan->organ_email;
         if (!empty($email)) {
             $Report = $Typereport === 1 ? new RecoverysendaktReport() : new RecoverysendaktmatReport();
             $Report->setDirectoryFiles('tmpfiles');
             $filename = $Report->Execute();
             $fnutf8 = $filename;
             $fregatsettings = Fregatsettings::findOne(1);
             $fl = DIRECTORY_SEPARATOR === '/' ? 'tmpfiles/' . $filename : mb_convert_encoding('tmpfiles/' . $filename, 'Windows-1251', 'UTF-8');
             Yii::$app->mailer->compose('//Fregat/recoverysendakt/_send', ['filename' => $filename])->setFrom($fregatsettings->fregatsettings_recoverysend_emailfrom)->setTo([YII_DEBUG ? '*****@*****.**' : Recoverysendakt::findOne($dopparams->id)->idOrgan->organ_email])->setSubject($fregatsettings->fregatsettings_recoverysend_emailtheme)->attach($fl, ['fileName' => $fnutf8])->send();
             echo $fnutf8;
         } else {
             throw new \Exception('У организации ' . Recoverysendakt::findOne($dopparams->id)->idOrgan->organ_name . ' отсутствует E-mail');
         }
     } else {
         throw new \Exception('Не передан параметр POST dopparams');
     }
 }