add indexes, add messagedetsta

This commit is contained in:
2016-01-29 17:13:33 +01:00
parent ad59cbb940
commit a00331ce7c
65 changed files with 3195 additions and 92 deletions

View File

@@ -0,0 +1,177 @@
<?php
namespace common\components;
use common\models\Transfer;
use yii\base\Object;
use common\models\MessageDetstaLab;
use common\models\MessageDetstaTetel;
use common\models\MessageDetsta;
use common\models\MessageDetstaFej;
use common\models\TicketInstallmentRequest;
/**
* Detstat üzenet mentése adatbázisba
*
* @property common\models\Ugiro $koteg
* @property common\models\giro\GiroDETSTA $giroDETSTA
*/
class DetStaDBSave extends Object
{
/**
* giro köteg
* */
public $koteg;
/**
* GiroDetsta üzenet
* */
public $giroDETSTA;
/**felhasználó*/
public $idUser;
/**messagedetsta*/
public $message;
/**messagedetsta fej*/
public $messageFej;
/**messagedetsta lab*/
public $messageLab;
/**messagedetsta tetelek*/
public $messageTetelek = [];
public function run(){
$this->saveMessageDetsta();
$this->saveMessageDetstaFej( );
$this->saveMessageDetstaLab();
$this->saveMessageDetstaTetelek();
}
/**
*
* @param common\models\Ugiro;
* @param common\models\giro\GiroDETSTA $giroDETSTA
* */
protected function saveMessageDetsta( ) {
$this->message = new MessageDetsta();
$this->message->id_user = $this->idUser;
if ( isset( $this->koteg ) ){
$this->message->id_ugiro = $this->koteg->id_ugiro;
}
if ( !$this->message->save() ){
\Yii::error("Nem sikerült menteni a detsta üzenet fájlt");
throw new \Exception("Nem sikerült menteni a detsta üzenet fájtl");
}
\Yii::info("detsta üzenet mentve");
}
protected function readDate($date){
$date = trim($date);
if ( empty($date))
return null;
$dtime = \DateTime::createFromFormat('Ymd' ,$date);
if ( !$dtime ){
return false;
}
return $dtime->format('Y-m-d');
}
/**
*
* */
protected function saveMessageDetstaFej( ){
$this->messageFej = new MessageDetstaFej();
$fej = $this->giroDETSTA->fej;
/** @var common\components\giro\GiroDETSTAFej $fej */
$dtime = \DateTime::createFromFormat("yyyyMMdd","");
$this->messageFej->id_message = $this->message->id_message;
$this->messageFej->record_tipus = $fej->recordTipus;
$this->messageFej->uzenet_tipus = $fej->uzenetTipus;
$this->messageFej->jelentes_jelzo = $fej->jelentesJelzo;
$this->messageFej->kezdemenyezo_azonosito = $fej->kezdemenyezoAzonosito;
$this->messageFej->csoportos_uzenet_sorszam = $fej->csoportosUzenetSorszam->sorszam;
$this->messageFej->csoportos_uzenet_datum = $this->readDate($fej->csoportosUzenetSorszam->osszeallitasDatuma );
$this->messageFej->detsta_uzenet_sorszam = $fej->detstaUzenetSorszam->sorszam;
$this->messageFej->detsta_uzenet_datum = $this->readDate( $fej->detstaUzenetSorszam->osszeallitasDatuma );
$this->messageFej->ido = $fej->ido;
if ( !$this->messageFej->save(false)){
\Yii::error("Nem sikerült menteni a detsta üzenet fej fájlt");
throw new \Exception("Nem sikerült menteni a detsta üzenet fej fájlt");
}
\Yii::info("detsta fej üzenet mentve");
}
protected function saveMessageDetstaLab( ){
$this->messageLab = new MessageDetstaLab();
$lab = $this->giroDETSTA->lab;
$this->messageLab->id_message = $this->message->id_message;
$this->messageLab->record_tipus = $lab->recordTipus;
$this->messageLab->teljesitett_tetelek_szama = $lab->teljesitettTetelekSzama;
$this->messageLab->teljesitett_tetelek_osszerteke = $lab->teljesitettTetelekOsszerteke;
$this->messageLab->visszautasitott_tetelek_szama = $lab->visszautasitottTetelekSzama;
$this->messageLab->visszautasitott_tetelek_osszerteke = $lab->visszautasitottTetelekSzama;
$this->messageLab->megnemvalaszolt_tetelek_szama = $lab->megNemValaszoltTetelekSzama;
$this->messageLab->megnemvalaszolt_tetelek_osszerteke = $lab->megNemValaszoltTetelekOsszerteke;
if ( !$this->messageLab->save(false)){
\Yii::error("Nem sikerült menteni a detsta üzenet lab fájlt");
throw new \Exception("Nem sikerült menteni a detsta üzenet lab fájlt");
}
\Yii::info("detsta lab üzenet mentve");
}
protected function saveMessageDetstaTetelek( ){
$tetelek = $this->giroDETSTA->tetelek;
foreach ($tetelek as $tetel){
$this->saveMessageDetstaTetel($tetel);
}
}
protected function saveMessageDetstaTetel($tetel ){
$mt = new MessageDetstaTetel();
$mt->id_message = $this->message->id_message;
$mt->record_tipus = $tetel->recordTipus ;
$mt->tetel_sorszam= $tetel->tetelSorszam ;
$mt->osszeg= $tetel->osszeg ;
$mt->eredeti_tetel_elszamolasi_datuma= $tetel->eredetiTetelElszamolasiDatuma ;
$mt->visszajelzes_informacio= $tetel->visszajelzesInformacio ;
$mt->feldolgozas_datum= $tetel->feldolgozasDatum ;
$mt->terhelesi_datum= $this->readDate($tetel->terhelesiDatum);
$mt->valasz_hivatkozasi_kod= $tetel->valaszHivatkozasiKod ;
$mt->eredeti_hivatkozasi_kod= $tetel->eredetiHivatkozasiKod ;
$mt->ugyfel_azonosito= $tetel->ugyfelAzonosito ;
$request = $this->readRequest($mt->tetel_sorszam);
if ( isset($request) ){
$mt->id_ticket_installment_request = $request->id_ticket_installment_request;
}
if ( !$mt->save(false)){
\Yii::error("Nem sikerült menteni a detsta üzenet tetelt");
throw new \Exception("Nem sikerült menteni a detsta üzenet tetelt");
}
\Yii::info("detsta tetel üzenet mentve");
$this->messageTetelek[] = $mt;
}
protected function readRequest($tetel_sorszam){
$query = TicketInstallmentRequest::find();
$query->innerJoin("ugiro_request_assignment","ugiro_request_assignment.id_request = ticket_installment_request.id_ticket_installment_request");
$query->innerJoin("ugiro","ugiro.id_ugiro = ugiro_request_assignment.id_ugiro");
$query->andWhere(['ugiro.id_ugiro' => $this->koteg->id_ugiro]);
$query->andWhere(['ticket_installment_request.number' => $tetel_sorszam]);
return $query->one();
}
}

View File

@@ -5,12 +5,11 @@ namespace common\components;
use yii\base\Object;
use common\models\TicketInstallmentRequest;
use common\components\giro\GiroDETSTATetel;
use backend\models\TicketInstallmentMarkForSendForm;
use common\models\Ugiro;
use yii\db\Query;
use common\components\giro\GiroDETSTA;
use common\components\giro\GiroDETSTAFej;
use common\components\giro\GiroDETSTALab;
use common\components\DetStaDBSave;
/**
@@ -35,11 +34,23 @@ class DetStatProcessor extends Object{
// $this->readKoteg();
$this->readKotegMegbizasok();
$this->readDetstaUzenet();
$this->saveMessageDetsta();
$this->createMegbizasTetelHozzarendelesek();
$this->processMegbizasok();
$this->markKotegFinished();
}
public function saveMessageDetsta(){
$saver = new DetStaDBSave(
[
'giroDETSTA' => $this->detstatUzenet,
'koteg' => $this->koteg,
'idUser' =>\Yii::$app->user->id
]);
$saver->run();
}
public function markKotegFinished(){
$this->koteg->status = Ugiro::$STATUS_FINISHED;
$this->koteg->save();
@@ -64,11 +75,10 @@ class DetStatProcessor extends Object{
$content = file_get_contents($filename);
$this->detstatUzenet = GiroDETSTA::parse($content);
/*
$this->detstatUzenet = new GiroDETSTA();
$this->idKoteg = 38;
$this->idKoteg = 42;
$fej = new GiroDETSTAFej();
@@ -81,16 +91,15 @@ class DetStatProcessor extends Object{
$this->detstatUzenet->tetelek[] = $tetel;
$tetel = new GiroDETSTATetel();
$tetel->tetelSorszam = 2;
$tetel->visszajelzesInformacio = "00";
$tetel->visszajelzesInformacio = "02";
$this->detstatUzenet->tetelek[] = $tetel;
// $tetel = new GiroDETSTATetel();
// $tetel->tetelSorszam = 2;
// $tetel->visszajelzesInformacio = "00";
// $tetel->visszajelzesInformacio = "02";
// $this->detstatUzenet->tetelek[] = $tetel;
*/
$lab = new GiroDETSTALab();
$this->detstatUzenet->lab = $lab;
*/
}

View File

@@ -45,7 +45,7 @@ class GiroDETSTAFej extends GiroBase{
$fej->csoportosUzenetSorszam ->osszeallitasDatuma = substr($row, 22, 8);
$fej->csoportosUzenetSorszam->sorszam = static::szamOlvas($row, 30, 4);
$fej->detstaUzenetSorszam ->osszeallitasDatuma = substr($row, 34,8);
$fej->detstaUzenetSorszam->sorszam = substr($row, 42,4);
$fej->detstaUzenetSorszam->sorszam = static::szamOlvas($row, 42,4);
$fej->ido = substr($row, 46,6);
return $fej;

View File

@@ -40,12 +40,12 @@ class GiroDETSTALab extends GiroBase {
public static function parse($row) {
$lab = new GiroDETSTALab ();
$lab->recordTipus = substr($row,0,2 );
$lab->teljesitettTetelekSzama = substr($row,2,6 );
$lab->teljesitettTetelekOsszerteke = substr($row,8,16 );
$lab->visszautasitottTetelekSzama = substr($row,24,6 );
$lab->visszautasitottTetelekOsszerteke = substr($row,30,16 );
$lab->megNemValaszoltTetelekSzama = substr($row,46,6 );
$lab->megNemValaszoltTetelekOsszerteke = substr($row,52, 16 );
$lab->teljesitettTetelekSzama = GiroBase::szamOlvas($row,2,6 );
$lab->teljesitettTetelekOsszerteke = GiroBase::szamOlvas($row,8,16 );
$lab->visszautasitottTetelekSzama = GiroBase::szamOlvas($row,24,6 );
$lab->visszautasitottTetelekOsszerteke = GiroBase::szamOlvas($row,30,16 );
$lab->megNemValaszoltTetelekSzama = GiroBase::szamOlvas($row,46,6 );
$lab->megNemValaszoltTetelekOsszerteke = GiroBase::szamOlvas($row,52, 16 );
return $lab;
}
}

View File

@@ -56,15 +56,15 @@ class GiroDETSTATetel extends GiroBase {
$tetel = new GiroDETSTATetel ();
$tetel->recordTipus = substr ( $row, 0, 2 );
$tetel->tetelSorszam = substr ( $row, 2, 6 );
$tetel->osszeg = substr ( $row, 8, 10 );
$tetel->tetelSorszam = GiroBase::szamOlvas( $row, 2, 6 );
$tetel->osszeg = GiroBase::szamOlvas( $row, 8, 10 );
$tetel->eredetiTetelElszamolasiDatuma = substr ( $row, 18, 8 );
$tetel->visszajelzesInformacio = substr ( $row, 26, 2 );
$tetel->feldolgozasDatum = substr ( $row, 28, 8 );
$tetel->terhelesiDatum = substr ( $row, 36, 8 );
$tetel->valaszHivatkozasiKod = substr ( $row, 44, 29 );
$tetel->eredetiHivatkozasiKod = substr ( $row, 73, 29 );
$tetel->ugyfelAzonosito = substr ( $row, 102, 24 );
$tetel->ugyfelAzonosito = GiroBase::szovegOlvas($row, 102, 24 );
return $tetel;
}

View File

@@ -89,6 +89,12 @@ class Card extends \common\models\BaseFitnessActiveRecord
}
return $result;
}
public static function toStatusName($status , $def = ""){
return Helper::getArrayValue(self::statuses(), $status, $def);
}
public static function toTypeName($type , $def = ""){
return Helper::getArrayValue(self::types(), $type, $def);
}
static function types() {
return [

View File

@@ -4,6 +4,8 @@ namespace common\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\db\Query;
use common\components\Helper;
/**
* This is the model class for table "key".
@@ -91,5 +93,20 @@ class Key extends \yii\db\ActiveRecord
}
return $result;
}
/**
* @param yii\db\Query $query
* */
public static function addKeyCondition($query, $number , $fieldNumber = "key.number",$fieldRfid = "key.rfid_key"){
$number = Helper::fixAsciiChars($number);
$query->andWhere( ['or' , [$fieldNumber =>$number ],[$fieldRfid =>$number ] ]);
}
/**
* @param yii\db\Query $query
* */
public static function addKeyConditionOptional($query, $number , $fieldNumber = "key.number",$fieldRfid = "key.rfid_key"){
$number = Helper::fixAsciiChars($number);
$query->andFilterWhere( ['or' , [$fieldNumber =>$number ],[$fieldRfid =>$number ] ]);
}
}

View File

@@ -0,0 +1,61 @@
<?php
namespace common\models;
use Yii;
use common\components\giro\GiroDETSTA;
/**
* This is the model class for table "message_detsta".
*
* @property integer $id_message
* @property string $path
* @property integer $id_user
* @property string $created_at
* @property string $updated_at
*/
class MessageDetsta extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'message_detsta';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id_message' => Yii::t('common/message_detsta', 'Id Message'),
'path' => Yii::t('common/message_detsta', 'Path'),
'id_user' => Yii::t('common/message_detsta', 'Id User'),
'created_at' => Yii::t('common/message_detsta', 'Created At'),
'updated_at' => Yii::t('common/message_detsta', 'Updated At'),
];
}
public function getFej( ) {
return $this->hasOne(MessageDetstaFej::className(), ['id_message' => 'id_message']);
}
public function getLab( ) {
return $this->hasOne(MessageDetstaLab::className(), ['id_message' => 'id_message']);
}
public function getTetelek( ) {
return $this->hasMany(MessageDetstaTetel::className(), ['id_message' => 'id_message']);
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace common\models;
use Yii;
/**
* This is the model class for table "message_detsta_fej".
*
* @property integer $id_message_detsta_fej
* @property integer $id_message
* @property string $record_tipus
* @property string $uzenet_tipus
* @property string $jelentes_jelzo
* @property string $kezdemenyezo_azonosito
* @property integer $csoportos_uzenet_sorszam
* @property string $csoportos_uzenet_datum
* @property integer $detsta_uzenet_sorszam
* @property string $detsta_uzenet_datum
* @property string $ido
*/
class MessageDetstaFej extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'message_detsta_fej';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_message', 'csoportos_uzenet_sorszam', 'detsta_uzenet_sorszam'], 'integer'],
[['csoportos_uzenet_datum', 'detsta_uzenet_datum'], 'safe'],
[['record_tipus', 'uzenet_tipus', 'jelentes_jelzo', 'ido'], 'string', 'max' => 10],
[['kezdemenyezo_azonosito'], 'string', 'max' => 20]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id_message_detsta_fej' => Yii::t('common/message_detsta', 'Id Message Detsta Fej'),
'id_message' => Yii::t('common/message_detsta', 'Id Message'),
'record_tipus' => Yii::t('common/message_detsta', 'Record Tipus'),
'uzenet_tipus' => Yii::t('common/message_detsta', 'Uzenet Tipus'),
'jelentes_jelzo' => Yii::t('common/message_detsta', 'Jelentes Jelzo'),
'kezdemenyezo_azonosito' => Yii::t('common/message_detsta', 'Kezdemenyezo Azonosito'),
'csoportos_uzenet_sorszam' => Yii::t('common/message_detsta', 'Csoportos Uzenet Sorszam'),
'csoportos_uzenet_datum' => Yii::t('common/message_detsta', 'Csoportos Uzenet Datum'),
'detsta_uzenet_sorszam' => Yii::t('common/message_detsta', 'Detsta Uzenet Sorszam'),
'detsta_uzenet_datum' => Yii::t('common/message_detsta', 'Detsta Uzenet Datum'),
'ido' => Yii::t('common/message_detsta', 'Ido'),
];
}
}

View File

@@ -0,0 +1,58 @@
<?php
namespace common\models;
use Yii;
/**
* This is the model class for table "message_detsta_lab".
*
* @property integer $id_message_detsta_lab
* @property integer $id_message
* @property string $record_tipus
* @property integer $teljesitett_tetelek_szama
* @property integer $teljesitett_tetelek_osszerteke
* @property integer $visszautasitott_tetelek_szama
* @property integer $visszautasitott_tetelek_osszerteke
* @property integer $megnemvalaszolt_tetelek_szama
* @property integer $megnemvalaszolt_tetelek_osszerteke
*/
class MessageDetstaLab extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'message_detsta_lab';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_message', 'teljesitett_tetelek_szama', 'teljesitett_tetelek_osszerteke', 'visszautasitott_tetelek_szama', 'visszautasitott_tetelek_osszerteke', 'megnemvalaszolt_tetelek_szama', 'megnemvalaszolt_tetelek_osszerteke'], 'integer'],
[['record_tipus'], 'string', 'max' => 10]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id_message_detsta_lab' => Yii::t('common/message_detsta', 'Id Message Detsta Lab'),
'id_message' => Yii::t('common/message_detsta', 'Id Message'),
'record_tipus' => Yii::t('common/message_detsta', 'Record Tipus'),
'teljesitett_tetelek_szama' => Yii::t('common/message_detsta', 'Teljesitett Tetelek Szama'),
'teljesitett_tetelek_osszerteke' => Yii::t('common/message_detsta', 'Teljesitett Tetelek Osszerteke'),
'visszautasitott_tetelek_szama' => Yii::t('common/message_detsta', 'Visszautasitott Tetelek Szama'),
'visszautasitott_tetelek_osszerteke' => Yii::t('common/message_detsta', 'Visszautasitott Tetelek Osszerteke'),
'megnemvalaszolt_tetelek_szama' => Yii::t('common/message_detsta', 'Megnemvalaszolt Tetelek Szama'),
'megnemvalaszolt_tetelek_osszerteke' => Yii::t('common/message_detsta', 'Megnemvalaszolt Tetelek Osszerteke'),
];
}
}

View File

@@ -0,0 +1,73 @@
<?php
namespace common\models;
use Yii;
/**
* This is the model class for table "message_detsta_tetel".
*
* @property integer $id_message_detsta_tetel
* @property integer $id_message
* @property integer $id_ticket_installment_request
* @property string $record_tipus
* @property integer $tetel_sorszam
* @property integer $osszeg
* @property string $eredeti_tetel_elszamolasi_datuma
* @property string $visszajelzes_informacio
* @property string $feldolgozas_datum
* @property string $terhelesi_datum
* @property string $valasz_hivatkozasi_kod
* @property string $eredeti_hivatkozasi_kod
* @property string $ugyfel_azonosito
*/
class MessageDetstaTetel extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'message_detsta_tetel';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_message', 'id_ticket_installment_request', 'tetel_sorszam', 'osszeg'], 'integer'],
[['eredeti_tetel_elszamolasi_datuma', 'feldolgozas_datum', 'terhelesi_datum'], 'safe'],
[['record_tipus', 'visszajelzes_informacio'], 'string', 'max' => 10],
[['valasz_hivatkozasi_kod', 'eredeti_hivatkozasi_kod', 'ugyfel_azonosito'], 'string', 'max' => 50]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id_message_detsta_tetel' => Yii::t('common/message_detsta', 'Id Message Detsta Tetel'),
'id_message' => Yii::t('common/message_detsta', 'Id Message'),
'id_ticket_installment_request' => Yii::t('common/message_detsta', 'Id Ticket Installment Request'),
'record_tipus' => Yii::t('common/message_detsta', 'Record Tipus'),
'tetel_sorszam' => Yii::t('common/message_detsta', 'Tetel Sorszam'),
'osszeg' => Yii::t('common/message_detsta', 'Osszeg'),
'eredeti_tetel_elszamolasi_datuma' => Yii::t('common/message_detsta', 'Eredeti Tetel Elszamolasi Datuma'),
'visszajelzes_informacio' => Yii::t('common/message_detsta', 'Visszajelzes Informacio'),
'feldolgozas_datum' => Yii::t('common/message_detsta', 'Feldolgozas Datum'),
'terhelesi_datum' => Yii::t('common/message_detsta', 'Terhelesi Datum'),
'valasz_hivatkozasi_kod' => Yii::t('common/message_detsta', 'Valasz Hivatkozasi Kod'),
'eredeti_hivatkozasi_kod' => Yii::t('common/message_detsta', 'Eredeti Hivatkozasi Kod'),
'ugyfel_azonosito' => Yii::t('common/message_detsta', 'Ugyfel Azonosito'),
];
}
public function getRequest(){
return $this->hasOne(TicketInstallmentRequest::className(), ['id_ticket_installment_request' => 'id_ticket_installment_request']);
}
}

View File

@@ -3,6 +3,7 @@
namespace common\models;
use Yii;
use common\components\Helper;
/**
* This is the model class for table "procurement".
@@ -22,6 +23,7 @@ class Procurement extends \common\models\BaseFitnessActiveRecord
{
public $productIdentifier;
public $id_account;
/**
* @inheritdoc
@@ -38,8 +40,8 @@ class Procurement extends \common\models\BaseFitnessActiveRecord
{
return [
[['id_warehouse', 'count', 'purchase_price' ], 'required'],
[['id_warehouse', 'count', 'productIdentifier', 'purchase_price' ], 'required' , 'on' => 'create_general'],
[['id_warehouse', 'id_user', 'id_product', 'count', 'stock', 'purchase_price'], 'integer'],
[['id_warehouse', 'count', 'productIdentifier', 'purchase_price' ,'id_account'], 'required' , 'on' => 'create_general'],
[['id_warehouse', 'id_user', 'id_product', 'count', 'stock', 'purchase_price','id_account'], 'integer'],
[['description'], 'string', 'max' => 255],
[['productIdentifier'], 'string', 'max' => 128],
[['productIdentifier'] ,'validateProductIdentifier', 'on' => 'create_general']
@@ -70,11 +72,17 @@ class Procurement extends \common\models\BaseFitnessActiveRecord
$product = null;
if ( isset($this->productIdentifier)){
$id = $this->productIdentifier;
$conditionProductName = ['name' =>$id];
$name = $this->productIdentifier;
$id = Helper::fixAsciiChars( $this->productIdentifier );
// $conditionProductName = ['name' =>$id];
$conditionProductNumber = ['product_number' =>$id];
$conditionBarcode= ['barcode' =>$id];
$products = Product::find()->andWhere(['or', ['name' =>$id] , ['product_number' =>$id] ,['barcode' =>$id] ] )->all();
$query = Product::find()
->andWhere(['or', ['product_number' =>$id] ,['barcode' =>$id] ] );
if ( Helper::isProductVisibilityAccount() ){
$query->andWhere(['id_account' => $this->id_account]);
}
$products = $query->all();
if ( count($products) == 1 ){
$product = $products[0];
$this->id_product = $product->id_product;

View File

@@ -71,6 +71,10 @@ class Ugiro extends \yii\db\ActiveRecord
public function getUser(){
return $this->hasOne( User::className(), ["id" =>"id_user" ] );
}
public function getMessageDetsta(){
return $this->hasOne( MessageDetsta::className(), ["id_ugiro" =>"id_ugiro" ] );
}
public function getRequests()