add contract to detsta processor

This commit is contained in:
Roland Schneider 2016-01-25 09:17:09 +01:00
parent df14401b28
commit 0c3ff2c0f3
9 changed files with 79 additions and 30 deletions

View File

@ -1,4 +1,4 @@
01DETSTA8A24237545 201501270001201502094542162957
01DETSTA8A24237545 201601250001201601254542162957
020000010000014097201501270020150204201502031104 03916201502031001307001595 0015520150127321538700000000000000000000000340
020000020000015240201501275020150204 1117 73377201502033417908001595 0015520150127321538800000000000000000000000347
020000030000015240201501270020150204201502031120 94002201502030005151001595 0015520150127321538900000000000000000000000176

View File

@ -68,16 +68,16 @@ class DetStatProcessor extends Object{
$this->detstatUzenet = new GiroDETSTA();
$this->idKoteg = 33;
$this->idKoteg = 37;
$fej = new GiroDETSTAFej();
$this->detstatUzenet->fej = $fej;
$tetel = new GiroDETSTATetel();
$tetel->ugyfelAzonosito = 12;
$tetel->tetelSorszam = 1;
$tetel->visszajelzesInformacio = "00";
$tetel->visszajelzesInformacio = "02";
// $tetel->visszajelzesInformacio = "02";
$this->detstatUzenet->tetelek[] = $tetel;
@ -89,12 +89,12 @@ class DetStatProcessor extends Object{
public function createMegbizasTetelHozzarendelesek(){
$mapTetel = [];
foreach ($this->detstatUzenet->tetelek as $tetel ){
$mapTetel[$tetel->ugyfelAzonosito] = $tetel;
$mapTetel[$tetel->tetelSorszam] = $tetel;
}
foreach ($this->megbizasok as $megbizas){
if ( array_key_exists($megbizas->id_ticket_installment_request, $mapTetel)){
$megbizas->detstaTetel = $mapTetel[$megbizas->id_ticket_installment_request];
if ( array_key_exists($megbizas->number, $mapTetel)){
$megbizas->detstaTetel = $mapTetel[$megbizas->number];
}
}

View File

@ -75,13 +75,13 @@ class Contract extends \yii\db\ActiveRecord
'id_user' => Yii::t('common/contract', 'Felhasználó'),
'id_customer' => Yii::t('common/contract', 'Vendég'),
'status' => Yii::t('common/contract', 'Státusz'),
'flag' => Yii::t('common/contract', 'Flag'),
'flag' => Yii::t('common/contract', 'Állapot'),
'part_count' => Yii::t('common/contract', 'Részletek száma'),
'part_paid' => Yii::t('common/contract', 'Fizetett részletek'),
'part_required' => Yii::t('common/contract', 'Esedékes részlet'),
'expired_at' => Yii::t('common/contract', 'Lejárati dátum'),
'created_at' => Yii::t('common/contract', 'Létrehozva'),
'updated_at' => Yii::t('common/contract', 'Updated At'),
'updated_at' => Yii::t('common/contract', 'Módosítva'),
];
}
@ -169,4 +169,14 @@ class Contract extends \yii\db\ActiveRecord
public function canCancel() {
return $this->flag == static::$FLAG_ACTIVE;
}
public function isFlagCanceled() {
return $this->flag == static::$FLAG_CANCELED;
}
public function isFlagDeleted() {
return $this->flag == static::$FLAG_DELETED;
}
public function isFlagActive() {
return $this->flag == static::$FLAG_ACTIVE;
}
}

View File

@ -160,28 +160,41 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
* @param boolean $partRequired ha igaz, a bérleten a part mezőt változtatjuk
* */
public function applyStatus($status, $partRequired = false, $visszajelzes = "", $comment = ""){
$contract = $this->contract;
$contract->part_required = $contract->part_required +1;
if ( $status == static::$STATUS_ACCEPTED || $status == static::$STATUS_ACCEPTED_MANUAL){
if ( !$this->isStatusAccepted() ){
$tranfer = $this->addTransfer();
$contract->part_paid = $contract->part_paid +1;
// $tranfer = $this->addTransfer();
$result = Transfer::sellContractTicket($contract, $this, Account::findOne(1), Transfer::STATUS_PAID, Transfer::PAYMENT_METHOD_TRANSFER);
$transfer = $result[0];
$ticket = $result[1];
$this->status = $status;
$this->id_transfer = $tranfer->id_transfer;
$this->id_transfer = $transfer->id_transfer;
$this->id_ticket = $ticket->id_ticket;
$this->request_processed_at = Helper::getDateTimeString();
$this->save(false);
$contract->save(false);
\Yii::info("Megbízás kifizetve: " . $this->id_ticket_installment_request);
// $this->applyNewTicketState($partRequired);
return true;
}else{
\Yii::info("Megbízás már ki volt fizetve: " . $this->id_ticket_installment_request);
return false;
}
}else{
$this->status = $status;
$this->detsta_answer = $visszajelzes;
$this->comment = $comment;
$this->request_processed_at = Helper::getDateTimeString();
$this->save(false);
$contract->save(false);
// $this->applyNewTicketState($partRequired);
\Yii::info("Megbízás visszautasítva: " . $this->id_ticket_installment_request);
return true;
}
}
@ -264,8 +277,8 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
TicketInstallmentRequest::$STATUS_SENT=> 'Beküldve',
TicketInstallmentRequest::$STATUS_CANCELED=> 'Törölve',
TicketInstallmentRequest::$STATUS_REJECTED=> 'Visszautasítva',
TicketInstallmentRequest::$STATUS_ACCEPTED=> 'Sikeresen végrehajtva',
TicketInstallmentRequest::$STATUS_ACCEPTED_MANUAL=> 'Manuálisan elfogadva',
TicketInstallmentRequest::$STATUS_ACCEPTED=> 'Sikeresen beszedés',
TicketInstallmentRequest::$STATUS_ACCEPTED_MANUAL=> 'Személyesen fizetve',
];
}

View File

@ -977,6 +977,7 @@ class Transfer extends \common\models\BaseFitnessActiveRecord {
$ticket->price_brutto = $request->money;
$ticket->id_card = $card->id_card;
$ticket->part = $request->priority;
$this->id_contract = $contract->id_contract;
$ticket->save ( false );
$transfer = new Transfer ();

View File

@ -32,7 +32,10 @@ class ContractController extends Controller {
],
'payout' => [
'post'
]
],
'cancel' => [
'post'
],
]
]
];
@ -157,6 +160,7 @@ class ContractController extends Controller {
$result = Transfer::sellContractTicket ( $contract, $part, Account::readDefaultObject (), Transfer::STATUS_NOT_PAID, Transfer::PAYMENT_METHOD_CASH, true );
$transfer = $result [0];
$ticket = $result[1];
if ( $part->status != TicketInstallmentRequest::$STATUS_REJECTED ){
$contract->part_required = $contract->part_required +1;
}
@ -252,6 +256,11 @@ class ContractController extends Controller {
$transaction->commit ();
\Yii::$app->session->setFlash ( 'success', "Szerződés felbontva!" );
return $this->redirect ( [
'product/sale',
'number' => $card->number
] );
} catch ( Exception $e ) {
$transaction->rollback ();
Yii::error ( "Szerződés felbontása nem sikerült!" );

View File

@ -114,7 +114,7 @@ class ReceptionForm extends Model
$query = Contract::find();
$query->andWhere(['id_customer' => $this->customer->id_customer ]);
$query->andWhere([ '>=' ,'expired_at' , new Expression("now()") ]);
$query->andWhere(["not in" , 'flag' , [Contract::$FLAG_DELETED, Contract::$FLAG_CANCELED]]);
$query->andWhere(["not in" , 'flag' , [Contract::$FLAG_DELETED ]]);
$this->contract = $query->one();
}

View File

@ -4,6 +4,7 @@ use common\models\Ticket;
use frontend\model\ReceptionForm;
use yii\helpers\Html;
use yii\helpers\Url;
use common\models\Contract;
/* @var $this yii\web\View */
/* @var $model frontend\model\ReceptionForm */
@ -60,6 +61,9 @@ if ( isset($model->card)){
if ( isset($model->contract)){
/** @var common\models\Contract $contract*/
$contract = $model->contract;
if ( $contract->isFlagActive() ){
if ( $model->contract->isStatusNotPaid() ){
echo Html::beginTag("div",['class'=>"alert alert-danger", "role"=>"alert"]);
echo Html::beginTag("strong",[ ]);
@ -75,6 +79,17 @@ if ( isset($model->contract)){
echo Html::endTag("strong");
echo Html::endTag("div");
}
}else{
if ( $contract->isFlagCanceled() ){
echo Html::beginTag("div",['class'=>"alert alert-danger", "role"=>"alert"]);
echo Html::beginTag("strong",[ ]);
echo "Szerződés felbontva !";
echo Html::a("Szerződés részletei",Url::toRoute(['contract/view','id' => $model->contract->id_contract]));
echo Html::endTag("strong");
echo Html::endTag("div");
}
}
}
?>

View File

@ -7,7 +7,7 @@ use common\models\TicketInstallmentRequest;
/* @var $this yii\web\View */
/* @var $model common\models\Contract */
$this->title = $model->id_contract;
$this->title = "Szerződés részletek" ;
$this->params['breadcrumbs'][] = ['label' => Yii::t('common/contract', 'Szerződések'), 'url' => ['index', 'id_card' => $card->id_card]];
$this->params['breadcrumbs'][] = $this->title;
?>
@ -41,6 +41,7 @@ $this->params['breadcrumbs'][] = $this->title;
'part_count',
'expired_at:datetime',
'created_at:datetime',
'updated_at:datetime',
],
]) ?>
<?php if ( $model->canCancel() ){?>