add contract > ticket installment/ticket expiration date changes
This commit is contained in:
parent
2828a6f236
commit
5a562677c7
@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
namespace backend\controllers;
|
namespace backend\controllers;
|
||||||
|
|
||||||
use common\models\City;
|
|
||||||
use yii\web\Controller;
|
use yii\web\Controller;
|
||||||
use backend\models\GiroBeszedForm;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CityController implements the CRUD actions for City model.
|
* CityController implements the CRUD actions for City model.
|
||||||
@ -12,17 +10,9 @@ use backend\models\GiroBeszedForm;
|
|||||||
class TestController extends Controller
|
class TestController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public function actionIndex(){
|
||||||
|
|
||||||
|
return "ok";
|
||||||
public function actionCreateBeszed(){
|
|
||||||
|
|
||||||
$model = new GiroBeszedForm();
|
|
||||||
|
|
||||||
if ($model->load(\Yii::$app->request->post()) ) {
|
|
||||||
$model->run();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->render("_create_beszed",['model' => $model]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
68
common/components/DateUtil.php
Normal file
68
common/components/DateUtil.php
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: rocho
|
||||||
|
* Date: 2016. 09. 08.
|
||||||
|
* Time: 7:01
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace common\components;
|
||||||
|
|
||||||
|
use yii\i18n\Formatter;
|
||||||
|
|
||||||
|
class DateUtil
|
||||||
|
{
|
||||||
|
|
||||||
|
public static function addMonth($timestamp, $monthCount = 1)
|
||||||
|
{
|
||||||
|
|
||||||
|
if ($timestamp instanceof \DateTime) {
|
||||||
|
$d1 = $timestamp;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$d1 = new \DateTime();
|
||||||
|
|
||||||
|
if (isset($timestamp)) {
|
||||||
|
$d1->setTimestamp($timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$monthToAdd = $monthCount;
|
||||||
|
|
||||||
|
|
||||||
|
$year = $d1->format('Y');
|
||||||
|
$month = $d1->format('n');
|
||||||
|
$day = $d1->format('d');
|
||||||
|
|
||||||
|
$year += floor($monthToAdd / 12);
|
||||||
|
$monthToAdd = $monthToAdd % 12;
|
||||||
|
$month += $monthToAdd;
|
||||||
|
if ($month > 12) {
|
||||||
|
$year++;
|
||||||
|
$month = $month % 12;
|
||||||
|
if ($month === 0)
|
||||||
|
$month = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!checkdate($month, $day, $year)) {
|
||||||
|
$d2 = \DateTime::createFromFormat('Y-n-j', $year . '-' . $month . '-1');
|
||||||
|
$d2->modify('last day of');
|
||||||
|
} else {
|
||||||
|
$d2 = \DateTime::createFromFormat('Y-n-d', $year . '-' . $month . '-' . $day);
|
||||||
|
}
|
||||||
|
$d2->setTime(0, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
return $d2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static function formatUtc($dateTimeObject)
|
||||||
|
{
|
||||||
|
$formatter = new Formatter;
|
||||||
|
$formatter->datetimeFormat = 'php:Y-m-d H:i:s';
|
||||||
|
$formatter->timeZone = 'UTC';
|
||||||
|
return $formatter->asDatetime($dateTimeObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
namespace common\models;
|
namespace common\models;
|
||||||
|
|
||||||
use Yii;
|
use common\components\DateUtil;
|
||||||
|
use /** @noinspection PhpMethodOrClassCallIsNotCaseSensitiveInspection */
|
||||||
|
Yii;
|
||||||
use yii\helpers\ArrayHelper;
|
use yii\helpers\ArrayHelper;
|
||||||
use yii\behaviors\TimestampBehavior;
|
use yii\behaviors\TimestampBehavior;
|
||||||
use common\components\Helper;
|
use common\components\Helper;
|
||||||
@ -32,6 +34,9 @@ use common\components\Helper;
|
|||||||
* @property \common\models\Contract contract
|
* @property \common\models\Contract contract
|
||||||
* @property \common\models\Customer customer
|
* @property \common\models\Customer customer
|
||||||
* @property string number
|
* @property string number
|
||||||
|
* @property mixed ticket
|
||||||
|
* @property integer id_contract
|
||||||
|
* @property mixed ugiro
|
||||||
*/
|
*/
|
||||||
class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
||||||
{
|
{
|
||||||
@ -125,9 +130,21 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getTicketExpirationDate(){
|
public function getTicketExpirationDate(){
|
||||||
$date = \DateTime::createFromFormat("Y-m-d H:i:s", $this->request_target_time_at, new \DateTimeZone( 'UTC'));
|
$contract = $this->contract;
|
||||||
$date->modify("+1 month");
|
|
||||||
$date->modify("-1 day");
|
|
||||||
|
$started_at = $contract->started_at;
|
||||||
|
$date = \DateTime::createFromFormat("Y-m-d H:i:s", $started_at, new \DateTimeZone( 'UTC'));
|
||||||
|
$date = DateUtil::addMonth( $date,$this->priority + 1 );
|
||||||
|
// $date = \DateTime::createFromFormat("Y-m-d H:i:s", $this->request_target_time_at, new \DateTimeZone( 'UTC'));
|
||||||
|
// $date = DateUtil::addMonth( $date, 1 );
|
||||||
|
// $date->modify("+1 month");
|
||||||
|
// $date->modify("-1 day");
|
||||||
|
|
||||||
|
// $date = \DateTime::createFromFormat("Y-m-d H:i:s", $this->request_target_time_at, new \DateTimeZone( 'UTC'));
|
||||||
|
// $date->modify("+1 month");
|
||||||
|
// $date->modify("-1 day");
|
||||||
|
|
||||||
$date->setTime(0, 0, 0);
|
$date->setTime(0, 0, 0);
|
||||||
|
|
||||||
return $date->getTimestamp();
|
return $date->getTimestamp();
|
||||||
@ -154,6 +171,9 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
|||||||
return $this->status == static::$STATUS_SENT ;
|
return $this->status == static::$STATUS_SENT ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \common\models\Ugiro
|
||||||
|
*/
|
||||||
public function getIdGiro(){
|
public function getIdGiro(){
|
||||||
$result = null;
|
$result = null;
|
||||||
$giro = $this->ugiro;
|
$giro = $this->ugiro;
|
||||||
@ -168,9 +188,15 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
|||||||
*
|
*
|
||||||
* Létrehozza a szükséges ticket/transfer objectumokat
|
* Létrehozza a szükséges ticket/transfer objectumokat
|
||||||
*
|
*
|
||||||
|
* @param $status
|
||||||
* @param boolean $partRequired ha igaz, a bérleten a part mezőt változtatjuk
|
* @param boolean $partRequired ha igaz, a bérleten a part mezőt változtatjuk
|
||||||
* */
|
*
|
||||||
public function applyStatus($status, $partRequired = false, $visszajelzes = "", $comment = ""){
|
* @param string $visszajelzes
|
||||||
|
* @param string $comment
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function applyStatus($status, /** @noinspection PhpUnusedParameterInspection */
|
||||||
|
$partRequired = false, $visszajelzes = "", $comment = ""){
|
||||||
$contract = $this->contract;
|
$contract = $this->contract;
|
||||||
$contract->part_required = $contract->part_required +1;
|
$contract->part_required = $contract->part_required +1;
|
||||||
if ( $status == static::$STATUS_ACCEPTED || $status == static::$STATUS_ACCEPTED_MANUAL){
|
if ( $status == static::$STATUS_ACCEPTED || $status == static::$STATUS_ACCEPTED_MANUAL){
|
||||||
@ -220,14 +246,20 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Transfer
|
||||||
|
*/
|
||||||
protected function addTransfer(){
|
protected function addTransfer(){
|
||||||
|
|
||||||
|
/** @var \common\models\Account $account */
|
||||||
$account = Account::findOne($this->ticket->id_account);
|
$account = Account::findOne($this->ticket->id_account);
|
||||||
$discount = null;
|
$discount = null;
|
||||||
if ( isset($this->ticket->id_account)){
|
if ( isset($this->ticket->id_account)){
|
||||||
$discount = Discount::findOne( $this->ticket->id_discount );
|
$discount = Discount::findOne( $this->ticket->id_discount );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var \common\models\Account $account */
|
||||||
|
/** @noinspection PhpParamsInspection */
|
||||||
$transfer = Transfer::createTicketTransfer($account, $discount, null, 1, $this->ticket);
|
$transfer = Transfer::createTicketTransfer($account, $discount, null, 1, $this->ticket);
|
||||||
|
|
||||||
$transfer->status = Transfer::STATUS_PAID;
|
$transfer->status = Transfer::STATUS_PAID;
|
||||||
@ -235,7 +267,7 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
|||||||
$transfer->paid_by = \Yii::$app->user->id;
|
$transfer->paid_by = \Yii::$app->user->id;
|
||||||
$transfer->payment_method = Transfer::PAYMENT_METHOD_TRANSFER;
|
$transfer->payment_method = Transfer::PAYMENT_METHOD_TRANSFER;
|
||||||
$transfer->money = $this->money;
|
$transfer->money = $this->money;
|
||||||
$transfer->comment = "Csoportos beszedes";
|
$transfer->comment = "Csoportos beszedés";
|
||||||
$transfer->id_user = \Yii::$app->user->id;
|
$transfer->id_user = \Yii::$app->user->id;
|
||||||
$transfer->id_customer = $this->ticket->card->customer->id_customer;
|
$transfer->id_customer = $this->ticket->card->customer->id_customer;
|
||||||
$transfer->save(false);
|
$transfer->save(false);
|
||||||
@ -246,8 +278,10 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
|||||||
/**
|
/**
|
||||||
* @param \common\models\Ticket $ticket
|
* @param \common\models\Ticket $ticket
|
||||||
* @param \common\models\TicketType $type
|
* @param \common\models\TicketType $type
|
||||||
* @return \common\models\TicketInstallmentRequest[]
|
* @param $customer
|
||||||
* */
|
* @param $contract
|
||||||
|
* @return TicketInstallmentRequest[]
|
||||||
|
*/
|
||||||
public static function createInstallments($ticket,$type,$customer,$contract){
|
public static function createInstallments($ticket,$type,$customer,$contract){
|
||||||
$result = [];
|
$result = [];
|
||||||
if ( $type->isInstallment() ){
|
if ( $type->isInstallment() ){
|
||||||
@ -258,25 +292,34 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
|
|||||||
$money = Discount::applyDiscount( $money, $discount );
|
$money = Discount::applyDiscount( $money, $discount );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for ( $i = 1; $i <= $count; $i++){
|
for ( $i = 1; $i <= $count; $i++){
|
||||||
$request = TicketInstallmentRequest::createInstallment($ticket, $type, $customer, $contract, $money, null, $i);
|
$request = TicketInstallmentRequest::createInstallment($ticket, $type, $customer, $contract, $money, null, $i);
|
||||||
$result[] = $request;
|
$result[] = $request;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function createInstallment($ticket,$type,$customer,$contract,$money,$ticketCreated,$index){
|
/**
|
||||||
|
* @param $ticket
|
||||||
|
* @param $type
|
||||||
|
* @param $customer
|
||||||
|
* @param $contract
|
||||||
|
* @param $money
|
||||||
|
* @param $ticketCreated
|
||||||
|
* @param $index
|
||||||
|
* @return TicketInstallmentRequest
|
||||||
|
*/
|
||||||
|
public static function createInstallment(/** @noinspection PhpUnusedParameterInspection */
|
||||||
|
$ticket, $type, $customer, $contract, $money, $ticketCreated, $index){
|
||||||
$request = new TicketInstallmentRequest();
|
$request = new TicketInstallmentRequest();
|
||||||
// $request->id_ticket = $ticket->id_ticket;
|
// $request->id_ticket = $ticket->id_ticket;
|
||||||
$request->id_customer = $customer->id_customer;
|
$request->id_customer = $customer->id_customer;
|
||||||
$request->status = TicketInstallmentRequest::$STATUS_PENDING;
|
$request->status = TicketInstallmentRequest::$STATUS_PENDING;
|
||||||
$request->priority = $index;
|
$request->priority = $index;
|
||||||
$date = \DateTime::createFromFormat("Y.m.d", $contract->started_at, new \DateTimeZone( 'UTC'));
|
$date = \DateTime::createFromFormat("Y.m.d", $contract->started_at, new \DateTimeZone( 'UTC'));
|
||||||
$date->modify("+$index month");
|
$date = DateUtil::addMonth($date->getTimestamp(),$index);
|
||||||
|
// $date->modify("+$index month");
|
||||||
$date->setTime(0, 0, 0);
|
$date->setTime(0, 0, 0);
|
||||||
$request->request_target_time_at = $date->format ( 'Y-m-d H:i:s' );
|
$request->request_target_time_at = $date->format ( 'Y-m-d H:i:s' );
|
||||||
$request->request_processed_at = null;
|
$request->request_processed_at = null;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user