Add console command fix contract

This commit is contained in:
Roland Schneider 2016-09-13 20:29:12 +02:00
parent e1b5b8ed8f
commit 3b2aa0d8b3
2 changed files with 91 additions and 38 deletions

View File

@ -132,7 +132,6 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
public function getTicketExpirationDate(){ public function getTicketExpirationDate(){
$contract = $this->contract; $contract = $this->contract;
$started_at = $contract->started_at; $started_at = $contract->started_at;
$date = \DateTime::createFromFormat("Y-m-d H:i:s", $started_at, new \DateTimeZone( 'UTC')); $date = \DateTime::createFromFormat("Y-m-d H:i:s", $started_at, new \DateTimeZone( 'UTC'));
$date = DateUtil::addMonth( $date,$this->priority + 1 ); $date = DateUtil::addMonth( $date,$this->priority + 1 );

View File

@ -2,11 +2,14 @@
namespace console\controllers; namespace console\controllers;
use common\components\DateUtil;
use common\components\giro\GiroDETSTA; use common\components\giro\GiroDETSTA;
use common\components\giro\GiroDETSTAFej; use common\components\giro\GiroDETSTAFej;
use common\components\giro\GiroDETSTALab; use common\components\giro\GiroDETSTALab;
use common\components\giro\GiroDETSTATetel; use common\components\giro\GiroDETSTATetel;
use common\models\Contract;
use common\models\Ugiro; use common\models\Ugiro;
use Faker\Provider\DateTime;
use yii\console\Controller; use yii\console\Controller;
use frontend\models\ContractForm; use frontend\models\ContractForm;
use common\models\TicketType; use common\models\TicketType;
@ -14,10 +17,12 @@ use common\models\Customer;
use common\models\Transfer; use common\models\Transfer;
class DetstaConsoleController extends Controller{ class DetstaConsoleController extends Controller
{
public function actionCreateContract(){ public function actionCreateContract()
{
$contractForm = new ContractForm( $contractForm = new ContractForm(
@ -47,7 +52,8 @@ class DetstaConsoleController extends Controller{
/** /**
* @param integer $id_ugiro * @param integer $id_ugiro
*/ */
public function actionDetstaAnswer($id_ugiro,$accepted = 1){ public function actionDetstaAnswer($id_ugiro, $accepted = 1)
{
/** @var \common\models\Ugiro $ugiro */ /** @var \common\models\Ugiro $ugiro */
$ugiro = Ugiro::findOne($id_ugiro); $ugiro = Ugiro::findOne($id_ugiro);
@ -65,7 +71,6 @@ class DetstaConsoleController extends Controller{
$detsta->fej->detstaUzenetSorszam->sorszam = $ugiro->number; $detsta->fej->detstaUzenetSorszam->sorszam = $ugiro->number;
$detsta->lab = new GiroDETSTALab(); $detsta->lab = new GiroDETSTALab();
$tetelek = $ugiro->requests; $tetelek = $ugiro->requests;
@ -98,5 +103,54 @@ class DetstaConsoleController extends Controller{
} }
/**
* Recalculate the request target time at filed for ticket_installment_requests,
* where request status is pending and contract is active
*/
public function actionFixContracts()
{
$query = Contract::find();
/** @var /common/models/Contract[] $contracts */
$contracts = $query->all();
/** @var /common/models/Contract $contract */
foreach ($contracts as $contract) {
if ($contract->isFlagActive()) {
$requests = $contract->requests;
$started_at = $contract->started_at;
for ( $i = 0; $i < 11; $i++ ){
$request = $requests[$i];
/** @var /common/models/TicketInstallmentRequest $request */
$pending = $request->isStatusPending();
if ($pending) {
echo "\nContract: ".$contract->id_contract."; Priority:" . $request->priority . "\n";
$date = \DateTime::createFromFormat("Y-m-d H:i:s", $started_at, new \DateTimeZone( 'UTC'));
$date = DateUtil::addMonth($date, $request->priority);
$date->setTime(0,0,0);
echo "\t".$started_at ." - " . $request->priority . " - ".$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' );
$saved = $request->save(false);
if ( $saved ){
echo " done" ;
}else{
echo " failed";
}
}
}
}
}
}
} }