add indexes, add messagedetsta
This commit is contained in:
177
common/components/DetStaDBSave.php
Normal file
177
common/components/DetStaDBSave.php
Normal 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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user