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

@@ -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 clients 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' );