detsta processing -> move to cart if not successfull, transfer/paymentLater changes

This commit is contained in:
2016-07-27 07:20:47 +02:00
parent b52cc1a438
commit fdbd39b059
29 changed files with 700 additions and 124 deletions

View File

@@ -2,6 +2,7 @@
namespace common\components;
use common\models\Transfer;
use yii\base\Object;
use common\models\TicketInstallmentRequest;
use common\components\giro\GiroDETSTATetel;
@@ -11,10 +12,10 @@ use common\models\Contract;
/**
* This is the model class for table "ticket".
*
* @property common\components\giro\GiroDETSTATetel $tetel
* @property common\models\TicketInstallmentRequest $megbizas
* @property common\models\Ticket $ticket
* @property common\models\Contract $contract
* @property \common\components\giro\GiroDETSTATetel $tetel
* @property \common\models\TicketInstallmentRequest $megbizas
* @property \common\models\Ticket $ticket
* @property \common\models\Contract $contract
*
*
*/
@@ -44,7 +45,7 @@ class DetStatTetelProcessor extends Object {
* */
protected $comment;
/**
* A bérlet objectkum, amit elmentettünk
* A bérlet objektum, amit elmentettünk
* */
protected $ticket;
/**
@@ -58,13 +59,13 @@ class DetStatTetelProcessor extends Object {
\Yii::info('Megbízás feldolgozása: megbízás azonosító=' .$this->megbizas->id_ticket_installment_request);
if ($this->isAlreadeyAccepted ()) {
if ($this->isAlreadyAccepted ()) {
\Yii::info('A megbízás feldolgozásának megszakítása. A megbízás már elfogadott: megbízás azonosító=' .$this->megbizas->id_ticket_installment_request);
return;
}
if ( !isset($this->tetel)){
\Yii::info('A megbízás feldolgozásának megszakítása. Nincs valaszsor a detsta üzenetben');
\Yii::info('A megbízás feldolgozásának megszakítása. Nincs válasz sor a detsta üzenetben');
return;
}
@@ -75,6 +76,8 @@ class DetStatTetelProcessor extends Object {
if ( $this->status == TicketInstallmentRequest::$STATUS_ACCEPTED ){
$this->buyNewTicket();
}else if ( $this->status == TicketInstallmentRequest::$STATUS_ACCEPTED_MANUAL ){
$this->putTicketToCustomerCart();
}else{
$this->doRejectRequest();
}
@@ -85,23 +88,26 @@ class DetStatTetelProcessor extends Object {
protected function rememberEredetiMegbizasStatus(){
$this->eredetiMegbizasStatus = $this->megbizas->status;
}
protected function isEredetiMegbizasStatusFinished(){
return $this->eredetiMegbizasStatus == TicketInstallmentRequest::$STATUS_ACCEPTED ||
$this->eredetiMegbizasStatus == TicketInstallmentRequest::$STATUS_ACCEPTED_MANUAL ||
$this->eredetiMegbizasStatus == TicketInstallmentRequest::$STATUS_REJECTED;
/**
* @return bool
*/
protected function isEredetiMegbizasStatusFinished(){
return TicketInstallmentRequest::$STATUS_ACCEPTED == $this->eredetiMegbizasStatus ||
TicketInstallmentRequest::$STATUS_ACCEPTED_MANUAL == $this->eredetiMegbizasStatus ||
TicketInstallmentRequest::$STATUS_REJECTED == $this->eredetiMegbizasStatus;
}
protected function buyNewTicket(){
\Yii::info('Új bérlet vásárlás folyamant indítása' );
\Yii::info('Új bérlet vásárlás folyamat indítása' );
$megbizas = $this->megbizas;
$customer = $this->contract->customer;
$card = $customer->card;
$account = Account::findOne(1);
$ticketType = $this->contract->ticketType;
$discount = $this->contract->discount;
$ticketSale = new TicketSale(
[
'ticketType'=> $ticketType,
@@ -111,20 +117,53 @@ class DetStatTetelProcessor extends Object {
'discount'=> $discount,
'contract'=> $this->contract,
'ticketInstallmentRequest' => $megbizas
]
]
);
$ticketSale->doSale();
\Yii::info('Bérlet és tranzakció elmentve' );
$this->transfer = $ticketSale->transfer;
$this->ticket = $ticketSale->ticket;
$this->updateContractOnSuccess();
$this->updateMegbizasOnSuccess();
}
protected function putTicketToCustomerCart(){
\Yii::info('Új bérlet vásárló kosarába helyezés folyamat indítása' );
$megbizas = $this->megbizas;
$customer = $this->contract->customer;
$card = $customer->card;
$account = Account::findOne(1);
$ticketType = $this->contract->ticketType;
$discount = $this->contract->discount;
$ticketSale = new TicketSale(
[
'ticketType'=> $ticketType,
'customer'=> $customer,
'account'=> $account,
'card'=> $card,
'discount'=> $discount,
'contract'=> $this->contract,
'ticketInstallmentRequest' => $megbizas,
'transferStatus' => Transfer::STATUS_NOT_PAID
]
);
$ticketSale->doSale();
\Yii::info('Bérlet és tranzakció elmentve' );
$this->transfer = $ticketSale->transfer;
$this->ticket = $ticketSale->ticket;
$this->updateContractOnSuccess();
$this->updateMegbizasOnSuccess();
}
/**
* A szerződés betöltése
* */
@@ -139,7 +178,7 @@ class DetStatTetelProcessor extends Object {
* */
protected function updateMegbizasOnSuccess(){
\Yii::info('Megbízás frissítése - megbizás elfogadva ' );
\Yii::info('Megbízás frissítése - megbízás elfogadva ' );
$this->megbizas->status = $this->status;
$this->megbizas->id_transfer = $this->transfer->id_transfer;
@@ -161,7 +200,7 @@ class DetStatTetelProcessor extends Object {
* */
protected function updateMegbizasOnFail(){
\Yii::info('Megbázás frissítése - megbízás visszautasítva ' );
\Yii::info('Megbízás frissítése - megbízás visszautasítva ' );
$this->megbizas->status = $this->status;
$this->megbizas->detsta_answer = $this->kod;
@@ -269,12 +308,12 @@ class DetStatTetelProcessor extends Object {
if ($this->kod == GiroDETSTATetel::$INFORMACIO_TELJESITETT) {
$this->status = TicketInstallmentRequest::$STATUS_ACCEPTED;
} else {
$this->status = TicketInstallmentRequest::$STATUS_REJECTED;
$this->status = TicketInstallmentRequest::$STATUS_ACCEPTED_MANUAL;
}
\Yii::info('Visszajelző kód kiolvasva: kod=' .$this->kod);
\Yii::info('Visszajelző kód kiolvasva: statusz=' .$this->status. " (" . TicketInstallmentRequest::toStatusName($this->status) .")");
}
protected function isAlreadeyAccepted() {
protected function isAlreadyAccepted() {
return $this->megbizas->isStatusAccepted ();
}
public function hasError() {