detsta processing -> move to cart if not successfull, transfer/paymentLater changes
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
<?php
|
||||
namespace backend\controllers;
|
||||
|
||||
use common\models\DoorLog;
|
||||
use Yii;
|
||||
use common\models\Transfer;
|
||||
use backend\models\TransferSearch;
|
||||
use yii\db\Expression;
|
||||
use yii\db\Query;
|
||||
use yii\web\Controller;
|
||||
use yii\web\NotFoundHttpException;
|
||||
use yii\filters\VerbFilter;
|
||||
@@ -81,9 +84,11 @@ class TransferController extends \backend\controllers\BackendController
|
||||
|
||||
|
||||
if ( $searchModel->output =='pdf'){
|
||||
$this->downloadPaymentLater($dataProvider);
|
||||
$this->downloadPaymentLaterPDF($dataProvider);
|
||||
}else if ( $searchModel->output =='xls'){
|
||||
$this->downloadPaymentLaterXLS($searchModel, $dataProvider);
|
||||
}
|
||||
|
||||
|
||||
$accounts = Account::read();
|
||||
$users = User::read();
|
||||
|
||||
@@ -96,8 +101,152 @@ class TransferController extends \backend\controllers\BackendController
|
||||
'users' => $users,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
protected function getEnterCount($start,$end,$idCustomer){
|
||||
|
||||
|
||||
|
||||
$query = new Query();
|
||||
|
||||
$query->select([
|
||||
'card.number as card_number',
|
||||
'card.id_card as card_id_card',
|
||||
'count(*) as enter',
|
||||
new Expression('EXTRACT( YEAR_MONTH FROM door_log.created_at) as ym'),
|
||||
new Expression('EXTRACT( YEAR FROM door_log.created_at ) as year'),
|
||||
new Expression('EXTRACT( MONTH FROM door_log.created_at ) as month ')
|
||||
|
||||
]);
|
||||
|
||||
$query->from('door_log');
|
||||
$query->innerJoin('card','card.id_card = door_log.id_card');
|
||||
$query->andWhere(['in','door_log.direction',[3,7]]);
|
||||
$query->groupBy([
|
||||
'card.number',
|
||||
'card.id_card',
|
||||
'ym',
|
||||
'year',
|
||||
'month'
|
||||
]);
|
||||
|
||||
$query->andWhere(['door_log.id_customer' => $idCustomer]);
|
||||
|
||||
|
||||
$query->andWhere([ '>=','door_log.created_at',$start]);
|
||||
$query->andWhere([ '<','door_log.created_at',$end]);
|
||||
|
||||
$customerStatistic = $query->one();
|
||||
|
||||
$moveInCount = $customerStatistic['enter'];
|
||||
|
||||
return $moveInCount;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param \backend\models\TransferLaterSearch $searchModel
|
||||
* @param \yii\data\ActiveDataProvider $dataProvider
|
||||
*/
|
||||
protected function downloadPaymentLaterXLS( $searchModel, $dataProvider) {
|
||||
|
||||
$fn = "kesobbi_utalasok.xls";
|
||||
|
||||
$objPHPExcel = new \PHPExcel ();
|
||||
$sheet = $objPHPExcel->setActiveSheetIndex ( 0 );
|
||||
$formatter = \Yii::$app->formatter;
|
||||
|
||||
|
||||
|
||||
$row = 1;
|
||||
$sheet->setCellValue('A'.$row, 'Csoportos beszedés');
|
||||
|
||||
$row++;
|
||||
$sheet->setCellValue('A'.$row, 'Időszak kezdete');
|
||||
$sheet->setCellValue('B'.$row, $searchModel->start);
|
||||
$sheet->setCellValue('C'.$row, 'Időszak vége');
|
||||
$sheet->setCellValue('D'.$row, $searchModel->end);
|
||||
$row++;
|
||||
$sheet->setCellValue('A'.$row, 'Belépési Időszak kezdete');
|
||||
$sheet->setCellValue('B'.$row, $searchModel->enterStart);
|
||||
$sheet->setCellValue('C'.$row, 'Belépési Időszak vége');
|
||||
$sheet->setCellValue('D'.$row, $searchModel->enterEnd);
|
||||
$row++;
|
||||
$sheet->setCellValue('A'.$row, 'Bérlettípus');
|
||||
$sheet->setCellValue('B'.$row, $searchModel->id_ticket_type);
|
||||
$sheet->setCellValue('C'.$row, 'Felhasználó');
|
||||
$sheet->setCellValue('D'.$row, $searchModel->id_user);
|
||||
|
||||
$row++;
|
||||
$sheet->setCellValue('A'.$row, 'Kártyaszám')
|
||||
->setCellValue('B'.$row, 'Vendég')
|
||||
->setCellValue('C'.$row, 'Kiadva')
|
||||
->setCellValue('D'.$row, 'Bérlet típus')
|
||||
->setCellValue('E'.$row, 'Összeg')
|
||||
->setCellValue('F'.$row, 'Megjegyzés')
|
||||
->setCellValue('G'.$row, 'Belépések az időszakban');
|
||||
;
|
||||
|
||||
foreach ( $dataProvider->getModels() as $model ) {
|
||||
$row ++;
|
||||
|
||||
$sheet
|
||||
->setCellValue('A'.$row, $model['card_number'])
|
||||
->setCellValue('B'.$row, $model['customer_name'])
|
||||
->setCellValue('C'.$row, $model['transfer_created_at'])
|
||||
->setCellValue('D'.$row, ($model['ticket_type_name']))
|
||||
->setCellValue('E'.$row, $model['transfer_money'])
|
||||
->setCellValue('F'.$row, $model['ticket_comment'])
|
||||
->setCellValue('G'.$row, $model['enter'])
|
||||
// ->setCellValue('F'.$row, $processedTime)
|
||||
// ->setCellValue('G'.$row, $status)
|
||||
;
|
||||
}
|
||||
|
||||
$styleArray = array (
|
||||
'font' => array (
|
||||
'bold' => true
|
||||
)
|
||||
);
|
||||
|
||||
$sheet->getStyle ( 'A1' )->applyFromArray ( $styleArray );
|
||||
|
||||
foreach ( range ( 'A', 'G' ) as $columnID ) {
|
||||
$sheet->getColumnDimension ( $columnID )->setAutoSize ( true );
|
||||
$sheet->getStyle ( $columnID . '5' )->applyFromArray ( $styleArray );
|
||||
}
|
||||
|
||||
foreach ( ['A','C'] as $columnID ) {
|
||||
$sheet->getColumnDimension ( $columnID )->setAutoSize ( true );
|
||||
$sheet->getStyle ( $columnID . '2' )->applyFromArray ( $styleArray );
|
||||
$sheet->getStyle ( $columnID . '3' )->applyFromArray ( $styleArray );
|
||||
$sheet->getStyle ( $columnID . '4' )->applyFromArray ( $styleArray );
|
||||
}
|
||||
|
||||
|
||||
$fileName = $fn;
|
||||
|
||||
// Redirect output to a client’s web browser (Excel5)
|
||||
header ( 'Content-Type: application/vnd.ms-excel' );
|
||||
header ( 'Content-Disposition: attachment;filename="' . $fileName . '"' );
|
||||
header ( 'Cache-Control: max-age=0' );
|
||||
// If you're serving to IE 9, then the following may be needed
|
||||
header ( 'Cache-Control: max-age=1' );
|
||||
// If you're serving to IE over SSL, then the following may be needed
|
||||
header ( 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' ); // Date in the past
|
||||
header ( 'Last-Modified: ' . gmdate ( 'D, d M Y H:i:s' ) . ' GMT' ); // always modified
|
||||
header ( 'Cache-Control: cache, must-revalidate' ); // HTTP/1.1
|
||||
header ( 'Pragma: public' ); // HTTP/1.0
|
||||
$objWriter = \PHPExcel_IOFactory::createWriter ( $objPHPExcel, 'Excel5' );
|
||||
$objWriter->save ( 'php://output' );
|
||||
|
||||
|
||||
exit ();
|
||||
|
||||
}
|
||||
|
||||
protected function downloadPaymentLater($dataProvider) {
|
||||
protected function downloadPaymentLaterPDF($dataProvider) {
|
||||
|
||||
// $mpdf = new \mPDF ( 'utf-8', 'A4' );
|
||||
$mpdf = new \mPDF ( 'utf-8', 'A4-L' );
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace backend\controllers;
|
||||
|
||||
use common\models\TicketInstallmentRequest;
|
||||
use Yii;
|
||||
use common\models\Ugiro;
|
||||
use backend\models\UgiroSearch;
|
||||
@@ -108,7 +109,9 @@ class UgiroController extends Controller {
|
||||
$output = $_GET ['output'];
|
||||
|
||||
if ($output == 'pdf') {
|
||||
$this->downloadUgiro ( $model );
|
||||
$this->downloadUgiroPdf ( $model );
|
||||
}else if ($output == 'xls') {
|
||||
$this->downloadUgiroXls ( $model );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -128,17 +131,165 @@ class UgiroController extends Controller {
|
||||
'detstaDp' => $detstaDp
|
||||
] );
|
||||
}
|
||||
protected function downloadUgiro($model) {
|
||||
|
||||
/**
|
||||
* @param \common\models\Ugiro $model
|
||||
*/
|
||||
protected function downloadUgiroXls($model) {
|
||||
|
||||
// $mpdf = new \mPDF ( 'utf-8', 'A4' );
|
||||
$fn = "köteg.". $model->id_ugiro . ".xls";
|
||||
|
||||
$query = new Query();
|
||||
$query->select([
|
||||
'card.number as card_number',
|
||||
'customer.id_customer as customer_id_customer',
|
||||
'customer.name as customer_name',
|
||||
'customer.bank_account as customer_bank_account',
|
||||
'ticket_installment_request.money as request_money',
|
||||
'ticket_installment_request.status as request_status',
|
||||
'ticket_installment_request.request_target_time_at as request_request_target_time_at',
|
||||
'ticket_installment_request.request_processed_at as request_request_processed_at',
|
||||
]);
|
||||
$query->from('ticket_installment_request');
|
||||
$query->innerJoin('ugiro_request_assignment','ticket_installment_request.id_ticket_installment_request = ugiro_request_assignment.id_request');
|
||||
$query->innerJoin('customer','customer.id_customer = ticket_installment_request.id_customer');
|
||||
$query->innerJoin('card','customer.id_customer_card = card.id_card');
|
||||
$query->andWhere(['ugiro_request_assignment.id_ugiro' => $model->id_ugiro]);
|
||||
$query->orderBy(['customer.name' => SORT_ASC]);
|
||||
|
||||
$dataProvider = new ActiveDataProvider(
|
||||
[
|
||||
'query' => $query,
|
||||
'sort' => false,
|
||||
'pagination' => false
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
|
||||
$objPHPExcel = new \PHPExcel ();
|
||||
$sheet = $objPHPExcel->setActiveSheetIndex ( 0 );
|
||||
$formatter = \Yii::$app->formatter;
|
||||
|
||||
|
||||
$row = 1;
|
||||
|
||||
$sheet->setCellValue('A'.$row, 'Csoportos beszedés');
|
||||
|
||||
$row++;
|
||||
$sheet->setCellValue('A'.$row, 'Köteg azonosító');
|
||||
$sheet->setCellValue('B'.$row, $model->id_ugiro);
|
||||
$sheet->setCellValue('C'.$row, 'Üzenetsorszám');
|
||||
$sheet->setCellValue('D'.$row, $model->number);
|
||||
$row++;
|
||||
$sheet->setCellValue('A'.$row, 'Összeállítási dáutm');
|
||||
$sheet->setCellValue('B'.$row, $model->datum);
|
||||
$sheet->setCellValue('C'.$row, 'Terhelési dáutm');
|
||||
$sheet->setCellValue('D'.$row, $model->terhelesi_datum);
|
||||
|
||||
$row++;
|
||||
$sheet->setCellValue('A'.$row, 'Kártyaszám')
|
||||
->setCellValue('B'.$row, 'Vendég')
|
||||
->setCellValue('C'.$row, 'Bankszámlaszám')
|
||||
->setCellValue('D'.$row, 'Összeg')
|
||||
->setCellValue('E'.$row, 'Esedékességi dátum')
|
||||
->setCellValue('F'.$row, 'Feldolgozás dátum')
|
||||
->setCellValue('G'.$row, 'Státusz')
|
||||
;
|
||||
|
||||
|
||||
foreach ( $dataProvider->getModels() as $model ) {
|
||||
$row ++;
|
||||
$status = "";
|
||||
switch ($model['request_status']){
|
||||
case TicketInstallmentRequest::$STATUS_ACCEPTED:
|
||||
$status = "Fizetve";
|
||||
break;
|
||||
case TicketInstallmentRequest::$STATUS_REJECTED:
|
||||
$status = "Kosár";
|
||||
break;
|
||||
case TicketInstallmentRequest::$STATUS_ACCEPTED_MANUAL:
|
||||
$status = "Kosár";
|
||||
break;
|
||||
case TicketInstallmentRequest::$STATUS_CANCELED:
|
||||
$status = "Sztornó";
|
||||
break;
|
||||
case TicketInstallmentRequest::$STATUS_MARKED_TO_SEND:
|
||||
$status = "Küldésre jelölve";
|
||||
break;
|
||||
case TicketInstallmentRequest::$STATUS_PENDING:
|
||||
$status = "Feldolgozás alatt";
|
||||
break;
|
||||
case TicketInstallmentRequest::$STATUS_SENT:
|
||||
$status = "Elküldve";
|
||||
break;
|
||||
default:
|
||||
$status = "";
|
||||
}
|
||||
|
||||
$targetTime = isset( $model['request_request_target_time_at'] ) ? $formatter->asDate($model['request_request_target_time_at']) :"";
|
||||
$processedTime = isset( $model['request_request_processed_at'] ) ? $formatter->asDatetime($model['request_request_processed_at']) :"";
|
||||
$sheet
|
||||
->setCellValue('A'.$row, $model['card_number'])
|
||||
->setCellValue('B'.$row, $model['customer_name'])
|
||||
->setCellValue('C'.$row, $model['customer_bank_account'])
|
||||
->setCellValue('D'.$row, ($model['request_money']))
|
||||
->setCellValue('E'.$row, $targetTime)
|
||||
->setCellValue('F'.$row, $processedTime)
|
||||
->setCellValue('G'.$row, $status)
|
||||
;
|
||||
}
|
||||
|
||||
$styleArray = array (
|
||||
'font' => array (
|
||||
'bold' => true
|
||||
)
|
||||
);
|
||||
|
||||
$sheet->getStyle ( 'A1' )->applyFromArray ( $styleArray );
|
||||
|
||||
foreach ( range ( 'A', 'G' ) as $columnID ) {
|
||||
$sheet->getColumnDimension ( $columnID )->setAutoSize ( true );
|
||||
$sheet->getStyle ( $columnID . '4' )->applyFromArray ( $styleArray );
|
||||
}
|
||||
|
||||
foreach ( ['A','C'] as $columnID ) {
|
||||
$sheet->getColumnDimension ( $columnID )->setAutoSize ( true );
|
||||
$sheet->getStyle ( $columnID . '2' )->applyFromArray ( $styleArray );
|
||||
$sheet->getStyle ( $columnID . '3' )->applyFromArray ( $styleArray );
|
||||
}
|
||||
|
||||
|
||||
$fileName = $fn;
|
||||
|
||||
// Redirect output to a client’s web browser (Excel5)
|
||||
header ( 'Content-Type: application/vnd.ms-excel' );
|
||||
header ( 'Content-Disposition: attachment;filename="' . $fileName . '"' );
|
||||
header ( 'Cache-Control: max-age=0' );
|
||||
// If you're serving to IE 9, then the following may be needed
|
||||
header ( 'Cache-Control: max-age=1' );
|
||||
// If you're serving to IE over SSL, then the following may be needed
|
||||
header ( 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' ); // Date in the past
|
||||
header ( 'Last-Modified: ' . gmdate ( 'D, d M Y H:i:s' ) . ' GMT' ); // always modified
|
||||
header ( 'Cache-Control: cache, must-revalidate' ); // HTTP/1.1
|
||||
header ( 'Pragma: public' ); // HTTP/1.0
|
||||
$objWriter = \PHPExcel_IOFactory::createWriter ( $objPHPExcel, 'Excel5' );
|
||||
$objWriter->save ( 'php://output' );
|
||||
|
||||
|
||||
exit ();
|
||||
|
||||
}
|
||||
protected function downloadUgiroPdf($model) {
|
||||
|
||||
$mpdf = new \mPDF ( 'utf-8', 'A4-L' );
|
||||
$fn = "köteg.". $model->id_ugiro . ".pdf";
|
||||
|
||||
|
||||
$mpdf->useSubstitutions = false;
|
||||
$mpdf->simpleTables = true;
|
||||
$mpdf->SetHeader ( "" );
|
||||
$mpdf->setFooter ( '{PAGENO} / {nb}' );
|
||||
|
||||
|
||||
$query = new Query();
|
||||
$query->select([
|
||||
'customer.id_customer as customer_id_customer',
|
||||
@@ -153,24 +304,24 @@ class UgiroController extends Controller {
|
||||
$query->andWhere(['ugiro_request_assignment.id_ugiro' => $model->id_ugiro]);
|
||||
$dataProvider = new ActiveDataProvider(
|
||||
[
|
||||
'query' => $query,
|
||||
'query' => $query,
|
||||
'sort' => false,
|
||||
'pagination' => false
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
$stylesheet = file_get_contents ( \Yii::getAlias ( '@vendor' . '/bower/bootstrap/dist/css/bootstrap.css' ) ); // external css
|
||||
$mpdf->WriteHTML ( $stylesheet, 1 );
|
||||
|
||||
|
||||
$mpdf->WriteHTML ( $this->renderPartial ( '_view_pdf.php', [
|
||||
'model' => $model,
|
||||
'dataProvider' => $dataProvider
|
||||
] ) );
|
||||
$mpdf->Output ( $fn, 'D' );
|
||||
exit ();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new Ugiro model.
|
||||
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||
|
||||
Reference in New Issue
Block a user