<?php
/**
* Created by PhpStorm.
* User: parcel
* Date: 10/25/18
* Time: 7:58 AM
*/
namespace App\Controller\Parcels;
use App\Entity\DailyAccount;
use App\Entity\Parcel;
use App\Entity\Station;
use App\Entity\Transaction;
use App\Entity\WayBill;
use DateTime;
use JMS\Serializer\SerializationContext;
use JMS\Serializer\SerializerBuilder;
use PhpOffice\PhpSpreadsheet\Exception;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Config\Resource\ResourceInterface;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Serializer\Encoder\CsvEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Serializer;
class TransactionController extends AbstractController {
/**
* @Route("/transactions", name="bos_all_transactions")
*/
public function transactionAction() {
// replace this example code with whatever you need
return $this->render('parcels/transactions.html.twig',[]);
}
/**
* @Route("/transactions/transaction-list",methods={"POST"}, name="bos_get_all_transactions")
*/
public function dailyTransactions(Request $request) {
$em = $this->getDoctrine()->getManager();
$context = new SerializationContext();
$context->setSerializeNull(true);
$fromDate = $request->request->get("from_date");
$toDate = $request->request->get("to_date");
// dump($fromDate);
$fDate = null;
$date = new \DateTime('+1 day');
$tDate = null;
$fromDate = empty($fromDate) ? $fDate: $fromDate;
$toDate = empty($toDate) ? $tDate: $toDate;
// dump($fromDate);
// dump($toDate); die;
$serializer = SerializerBuilder::create()->build();
$page = $request->request->get('page') > 1 ? $request->request->get('page'): 1;
$rows = $request->request->get('rows') > 1 ? $request->request->get('rows'): 20;
$offset = ($page - 1)*$rows;
$filterRules = $request->request->get('filterRules');
if($fromDate && $toDate){
$filterRules = json_decode($filterRules, true);
$dates = [
'field'=> 'd.account_date',
'op'=> 'between',
'value' => [
'from' => str_replace(" ","", $fromDate),
'to' => str_replace(" ","", $toDate)
],
];
array_push($filterRules, $dates);
$filterRules = json_encode($filterRules);
}
// $endDate = [
// 'field' => 't.createdAt',
// 'op' => 'equal',
// 'value' => $toDate
// ];
// dump(json_decode($filterRules, false)); die;
// array_push($filterRules, $endDate);
// [{"field":"w.fromStation","op":"equal","value":1},
// {"field":"w.toStation","op":"equal","value":14},
// {"from_date":"2019-08-01","to_date":"2019-08-24"}]
// dump(json_encode($filterRules)); die;
$parcels = $em->getRepository(Transaction::class)->getAllTransactions($filterRules,$offset,$rows);
// dump($parcels);die;
/** @var integer $total */
$total = $em->getRepository(Transaction::class)->findBosParcelsTotalTransactions($filterRules);
// dump($total);
// $transactionDetails = $em->getRepository(Transaction::class)->totals($filterRules);
$transaction = new Transaction();
$dailyAccount = new DailyAccount();
$dailyAccount->setAccountDate(NULL);
// $transaction->setAmount(number_format($transactionDetails[0]['amount']));
// $transaction->setTaxAmount(number_format($transactionDetails[0]['tax_amount']));
// $transaction->setExpenses(number_format($transactionDetails[0]['expenses']));
// $transaction->setBalance(number_format($transactionDetails[0]['balance']));
$wayBill = new WayBill();
$station = new Station();
$station->setStationName("TOTAL");
$wayBill->setToStation($station);
// $wayBill->setPercelCount(number_format($transactionDetails[0]['parcel_count']));
$transaction->setDailyAccount($dailyAccount);
$wayBill->setFromStation(new Station());
$transaction->setWayBill($wayBill);
// array_push($parcels, $transaction);
// dump($total);
$footerTotals = array();
array_push($footerTotals, $transaction);
$data = [
'total' => $total[0]['count_t'],
'rows' => $parcels,
// 'footer' => $footerTotals
];
$data = $serializer->serialize($data,'json', $context);
return new Response($data, Response::HTTP_OK);
}
/**
* @Route("/transactions/transaction-list/excel/{fromDate}/{toDate}", name="bos_get_all_transactions_excel")
*/
public function durationExcel(Request $request, $fromDate, $toDate, LoggerInterface $logger): Response
{
@ini_set("memory_limit",-1);
$em = $this->getDoctrine()->getManager();
$context = new SerializationContext();
$context->setSerializeNull(true);
// dump($request);die;
// $fromDate = $request->request->get("fromDate");
// $toDate = $request->request->get("toDate");
$fDate = null;
$date = new \DateTime('+1 day');
$tDate = null;
// dump($fromDate);
// dump($toDate); die;
$fromDate = $fromDate == 0 ? $fDate: $fromDate;
$toDate = $toDate == 0 ? $tDate: $toDate;
$serializer = SerializerBuilder::create()->build();
// $page = $request->request->get('page') > 1 ? $request->request->get('page'): 1;
// $rows = $request->request->get('rows') > 1 ? $request->request->get('rows'): 20;
// $offset = ($page - 1)*$rows;
$filterRules = $request->request->get('filterRules');
// dump($request->request); die;
if(!$filterRules) {
$filterRules = "[]";
}
if($fromDate && $toDate){
$filterRules = json_decode($filterRules, true);
$dates = [
'field'=> 'd.accountDate',
'op'=> 'between',
'value' => [
'from' => str_replace(" ","", $fromDate),
'to' => str_replace(" ","", $toDate)
],
];
array_push($filterRules, $dates);
$filterRules = json_encode($filterRules);
}
// dump($filterRules);
$parcels = $em->getRepository(Transaction::class)->getDatedTransactions($filterRules);
$logger->debug("creating beginning file awesome vv");
// $phpExcelObject = $this->get('phpexcel')->createPHPExcelObject();
$phpExcelObject = new Spreadsheet();
// $phpExcelObject->getProperties()->setCategory($this->getUser())
// ->setLastModifiedBy($this->getUser())
// ->setTitle("Transactions report")
// ->setSubject("Transactions report")
// ->setDescription("Transactions report")
// ->setKeywords("Transactions report");
$columns = str_split('ABCDEFGHIJKLMNOPUVWXYZ');
$logger->debug("creating file awesome vv");
// dump("creating a file"); die;
$cancelStyleArray = [
'fill' => [
'fillType' => Fill::FILL_SOLID,
'color' => [
'rgb' => 'FF0000'
]
],
'font' => [
'bold' => true,
'color' => ['rgb' => 'FFFFFFFF'],
'name' => 'Calibri'
]
];
$headerStyleArray = [
'font' => [
'bold' => true,
'color' => ['rgb' => '000000'],
'size' => 12,
'name' => 'Cambria'
]
];
$phpExcelObject->getActiveSheet()
->setCellValue('A1', '#')
->setCellValue('B1', 'WAYBILL')
->setCellValue('C1', 'TIME')
->setCellValue('D1', 'FROM')
->setCellValue('E1', 'TO')
->setCellValue('F1', 'SENDER')
->setCellValue('G1', 'SENDER PHONE')
->setCellValue('H1', 'RECEIVER')
->setCellValue('I1', 'RECEIVER PHONE')
->setCellValue('J1', 'DESCRIPTION')
->setCellValue('K1', 'MAINTENANCE')
->setCellValue('L1', 'AMOUNT')
->setCellValue('M1', 'TAX')
->setCellValue('N1', 'CU INVOICE NUMBER')
->setCellValue('O1', 'MPESA')
->setCellValue('P1', 'MPESA AMOUNT')
->setCellValue('Q1', 'CLERK')
->setCellValue('R1', 'BUYERS PIN')
->getStyle("A1:R1")
->applyFromArray($headerStyleArray);
foreach ($parcels as $count => $parcel) {
$index = $count + 2;
/** @var Parcel[] $p */
$p = $em->getRepository(Parcel::class)->findBy([
'waybill' => $parcel['waybill']
]);
$description = '';
foreach ($p as $i => $pa){
$description .= $pa->getDescription();
if(count($p) != ($i+1)){
$description .= ',';
}
}
$date = new DateTime($parcel['created_at']);
$date->format('Y-m-d H:i:s');
$parcel['expenses'] = 3;
$pinNumber = $parcel['pin_number'] ?: 'NA';
if($parcel['is_cancelled']){
// $parcel['expenses'] = -3;
// $parcel['amount'] = -$parcel['amount'];
$parcel['expenses'] = 0;
$parcel['amount'] = -0;
$phpExcelObject->getActiveSheet()
->setCellValue('A'.$index, $index)
->setCellValue('B'.$index, $parcel['waybill'])
->setCellValue('C'.$index, $date)
->setCellValue('D'.$index, $parcel['from_station'])
->setCellValue('E'.$index, $parcel['to_station'])
->setCellValue('F'.$index, $parcel['sender_name'])
->setCellValue('G'.$index, $parcel['sender_phone_number'])
->setCellValue('H'.$index, $parcel['receiver_name'])
->setCellValue('I'.$index, $parcel['receiver_phone_number'])
->setCellValue('J'.$index, $description)
// ->setCellValue('J'.$index, "-")
->setCellValue('K'.$index, $parcel['expenses'])
->setCellValue('L'.$index, $parcel['amount'])
->setCellValue('M'.$index, $parcel['cu_invoice_number']?$parcel['tax_amount']:0)
->setCellValue('N'.$index, $parcel['cu_invoice_number'])
->setCellValue('O'.$index, 'NA')
->setCellValue('P'.$index, $parcel['mpesa_amount'])
->setCellValue('Q'.$index, strtoupper($parcel['clerk']))
->setCellValue('R'.$index, $pinNumber)
->getStyle("A{$index}:R{$index}")
->applyFromArray($cancelStyleArray);
// $phpExcelObject->getActiveSheet()
// ->getStyle("A{$index}:G{$index}")
// ->applyFromArray($cancelStyleArray);
}else {
$phpExcelObject->getActiveSheet()
->setCellValue('A'.$index, $index)
->setCellValue('B'.$index, $parcel['waybill'])
->setCellValue('C'.$index, $date)
->setCellValue('D'.$index, $parcel['from_station'])
->setCellValue('E'.$index, $parcel['to_station'])
->setCellValue('F'.$index, $parcel['sender_name'])
->setCellValue('G'.$index, $parcel['sender_phone_number'])
->setCellValue('H'.$index, $parcel['receiver_name'])
->setCellValue('I'.$index, $parcel['receiver_phone_number'])
->setCellValue('J'.$index, $description)
// ->setCellValue('J'.$index, "-")
->setCellValue('K'.$index, $parcel['expenses'])
->setCellValue('L'.$index, $parcel['amount'])
->setCellValue('M'.$index, $parcel['cu_invoice_number']?$parcel['tax_amount']:0)
->setCellValue('N'.$index, $parcel['cu_invoice_number'])
->setCellValue('O'.$index, $parcel['transaction_code'])
->setCellValue('P'.$index, $parcel['mpesa_amount'])
->setCellValue('Q'.$index, strtoupper($parcel['clerk']))
->setCellValue('R'.$index, $pinNumber)
->getStyle("A{$index}:R{$index}")
->applyFromArray([
'font' => [
'bold' => false,
'color' => ['rgb' => '000000'],
'name' => 'Calibri'
],
]);
}
// dump("Entering data");
}
// $phpExcelObject->getActiveSheet()->setTitle("Transactions");
// $phpExcelObject->setActiveSheetIndex(0)->setTitle('Transactions');
$phpExcelObject->getActiveSheet()->setTitle('Transactions');
/** create the writer
$writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel2007');
// create the response
$response = $this->get('phpexcel')->createStreamedResponse($writer);
// adding headers
$dispositionHeader = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
'awesome.xlsx'
);
$response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
$response->headers->set('Content-Disposition', $dispositionHeader);
// $response = new Response();
// $response->headers->set('Content-type', 'text');
// $response->setContent('awesome.xlsx');
$writer
return $response; */
$logger->debug("saving file awesome vv");
// $writer = $this->get('phpexcel')->createWriter($phpExcelObject,'Excel2007');
$phpExcelObject->getActiveSheet()->setAutoFilter(
$phpExcelObject->getActiveSheet()
->calculateWorksheetDimension()
);
$writer = new Xlsx($phpExcelObject);
$md5 = md5("{$fromDate}{$toDate}");
$fileName = "transaction_report_{$md5}.xlsx";
try {
$logger->debug("saving file awesome");
$writer->save("reports/{$fileName}");
} catch (Exception $e) {
$logger->debug($e->getMessage());
}
$response = new Response();
$response->headers->set('Content-type', 'text');
$response->setContent($fileName);
// $response->headers->set('Cache-Control', 'private');
// $response->headers->set('Content-length', $attachmentSize);
// $response->headers->set('Content-Disposition', 'attachment; filename="' . $fileName . '";');
return $response;
//
// foreach ($parcels as $index => $parcel) {
//// $row['valdate']->format('d/m/Y');
// $date = $parcel['account_date']->format('d/m/y');
// $waybill = $parcel['waybill'];
//
// dump($index.': '.$date.'-'.$waybill);
// }
//
// die;
$fileName = "report_".rand(1,20).".csv";
$fp = fopen($fileName, 'w');
// $fp = fopen('php://output', 'w');
$s = [
'n',
'WAYBILL',
'DATE',
'FROM',
'TO',
'MAINTENANCE',
'AMOUNT'
];
// fputcsv(
// $fp, // The file pointer
// $s, // The fields
// ',' // The delimiter
// );
// foreach ($parcels as $index => $parcel) {
// $date = $parcel['account_date']->format('Y-m-d H:i:s');
//// $stringDate = $date->format('Y-m-d H:i:s');
//
// if($parcel['is_cancelled']){
// $parcel['amount'] = 0;
// }
//
// $s = [
// 'n' => $index,
// 'waybill' => $parcel['waybill'],
// 'date'=> $date,
// 'from'=> $parcel['from_station'],
// 'to'=> $parcel['to_station'],
// 'cost'=> $parcel['expenses'],
// 'amount'=> $parcel['amount']
// ];
// fputcsv(
// $fp, // The file pointer
// $s, // The fields
// ',' // The delimiter
// );
// }
$response = new Response();
$response->headers->set('Content-type', 'text');
$response->setContent($fileName);
// $response->headers->set('Cache-Control', 'private');
// $response->headers->set('Content-length', $attachmentSize);
// $response->headers->set('Content-Disposition', 'attachment; filename="' . $fileName . '";');
return $response;
}
/**
* @Route("/transactions/transaction-list/maintenance/excel/{fromDate}/{toDate}", name="bos_get_all_transactions_maintenance_excel")
*/
public function maintenanceExcel(Request $request, $fromDate, $toDate, LoggerInterface $logger){
$em = $this->getDoctrine()->getManager();
$context = new SerializationContext();
$context->setSerializeNull(true);
// dump($request);die;
// $fromDate = $request->request->get("fromDate");
// $toDate = $request->request->get("toDate");
$fDate = null;
$date = new \DateTime('+1 day');
$tDate = null;
// dump($fromDate);
// dump($toDate); die;
$fromDate = $fromDate == 0 ? $fDate: $fromDate;
$toDate = $toDate == 0 ? $tDate: $toDate;
$serializer = SerializerBuilder::create()->build();
// $page = $request->request->get('page') > 1 ? $request->request->get('page'): 1;
// $rows = $request->request->get('rows') > 1 ? $request->request->get('rows'): 20;
// $offset = ($page - 1)*$rows;
$filterRules = $request->request->get('filterRules');
// dump($request->request); die;
if(!$filterRules) {
$filterRules = "[]";
}
if($fromDate && $toDate){
$filterRules = json_decode($filterRules, true);
$dates = [
'field'=> 'd.accountDate',
'op'=> 'between',
'value' => [
'from' => str_replace(" ","", $fromDate),
'to' => str_replace(" ","", $toDate)
],
];
array_push($filterRules, $dates);
// dump($filterRules); die;
$filterRules = json_encode($filterRules);
}
/** @var Transaction[] $parcels */
$parcels = $em->getRepository(Transaction::class)->getDatedTransactions($filterRules);
$logger->debug("creating beginning file awesome vv");
$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject();
$phpExcelObject->getProperties()->setCategory($this->getUser())
->setLastModifiedBy($this->getUser())
->setTitle("Transactions report")
->setSubject("Transactions report")
->setDescription("Transactions report")
->setKeywords("Transactions report");
$columns = str_split('ABCDEFGHIJKLMNOPUVWXYZ');
$logger->debug("creating file awesome vv");
// dump("creating a file"); die;
$cancelStyleArray = [
'fill' => [
// 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR,
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => [
'rgb' => 'FF0000'
]
],
'font' => [
'bold' => true,
'color' => ['rgb' => 'FFFFFF'],
// 'size' => 12,
'name' => 'Courier 10 Pitch'
]
];
$headerStyleArray = [
'font' => [
'bold' => true,
'color' => ['rgb' => '000000'],
'size' => 12,
'name' => 'Bell MT'
]
];
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('A1', '#')
->setCellValue('B1', 'TIME')
->setCellValue('C1', 'WAYBILL')
->setCellValue('D1', 'FROM')
->setCellValue('E1', 'TO')
->setCellValue('F1', 'MAINTENANCE')
->setCellValue('G1', 'AMOUNT')
->getStyle("A1:G1")
->applyFromArray($headerStyleArray);
foreach ($parcels as $count => $parcel) {
$index = $count + 2;
/** @var Parcel[] $p */
$p = $em->getRepository("App:Parcel")->findBy([
'waybill' => $parcel['waybill']
]);
$description = '';
foreach ($p as $i => $pa){
$description .= $pa->getDescription();
if(count($p) != ($i+1)){
$description .= ',';
}
}
$date = $parcel['created_at']->format('Y-m-d H:i:s');
$parcel['expenses'] = 3;
if($parcel['is_cancelled']){
// $parcel['expenses'] = -3;
// $parcel['amount'] = -$parcel['amount'];
$parcel['expenses'] = 0;
$parcel['amount'] = -0;
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('A'.$index, $index)
->setCellValue('B'.$index, $parcel['waybill'])
->setCellValue('C'.$index, $date)
->setCellValue('D'.$index, $parcel['from_station'])
->setCellValue('E'.$index, $parcel['to_station'])
->setCellValue('F'.$index, $parcel['expenses'])
->setCellValue('G'.$index, $parcel['amount'])
->getStyle("A{$index}:G{$index}")
->applyFromArray($cancelStyleArray);
// $phpExcelObject->getActiveSheet()
// ->getStyle("A{$index}:G{$index}")
// ->applyFromArray($cancelStyleArray);
}else {
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('A'.$index, $index)
->setCellValue('B'.$index, $parcel['waybill'])
->setCellValue('C'.$index, $date)
->setCellValue('D'.$index, $parcel['from_station'])
->setCellValue('E'.$index, $parcel['to_station'])
->setCellValue('F'.$index, $parcel['expenses'])
->setCellValue('G'.$index, $parcel['amount'])
->getStyle("A{$index}:G{$index}")
->applyFromArray([
'font' => [
'bold' => true,
'color' => ['rgb' => '000000'],
'name' => 'Courier 10 Pitch'
],
]);
// $phpExcelObject->getActiveSheet()
// ->getStyle("A{$index}:G{$index}")
// ->applyFromArray($cancelStyleArray);
}
// dump("Entering data");
}
// $phpExcelObject->getActiveSheet()->setTitle("Transactions");
$phpExcelObject->setActiveSheetIndex(0)->setTitle('Transactions');
/** create the writer
$writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel2007');
// create the response
$response = $this->get('phpexcel')->createStreamedResponse($writer);
// adding headers
$dispositionHeader = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
'awesome.xlsx'
);
$response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
$response->headers->set('Content-Disposition', $dispositionHeader);
// $response = new Response();
// $response->headers->set('Content-type', 'text');
// $response->setContent('awesome.xlsx');
$writer
return $response; */
$logger->debug("saving file awesome vv");
$writer = $this->get('phpexcel')->createWriter($phpExcelObject,'Excel2007');
$md5 = md5(rand());
$fileName = "transaction_report_{$fromDate}-{$toDate}-{$md5}.xlsx";
try {
$logger->debug("saving file awesome");
$writer->save("reports/{$fileName}");
} catch (\PHPExcel_Writer_Exception $e) {
$logger->debug($e->getMessage());
}
$response = new Response();
$response->headers->set('Content-type', 'text');
$response->setContent($fileName);
// $response->headers->set('Cache-Control', 'private');
// $response->headers->set('Content-length', $attachmentSize);
// $response->headers->set('Content-Disposition', 'attachment; filename="' . $fileName . '";');
return $response;
//
// foreach ($parcels as $index => $parcel) {
//// $row['valdate']->format('d/m/Y');
// $date = $parcel['account_date']->format('d/m/y');
// $waybill = $parcel['waybill'];
//
// dump($index.': '.$date.'-'.$waybill);
// }
//
// die;
$fileName = "report_".rand(1,20).".csv";
$fp = fopen($fileName, 'w');
// $fp = fopen('php://output', 'w');
$s = [
'n',
'WAYBILL',
'DATE',
'FROM',
'TO',
'MAINTENANCE',
'AMOUNT'
];
// fputcsv(
// $fp, // The file pointer
// $s, // The fields
// ',' // The delimiter
// );
// foreach ($parcels as $index => $parcel) {
// $date = $parcel['account_date']->format('Y-m-d H:i:s');
//// $stringDate = $date->format('Y-m-d H:i:s');
//
// if($parcel['is_cancelled']){
// $parcel['amount'] = 0;
// }
//
// $s = [
// 'n' => $index,
// 'waybill' => $parcel['waybill'],
// 'date'=> $date,
// 'from'=> $parcel['from_station'],
// 'to'=> $parcel['to_station'],
// 'cost'=> $parcel['expenses'],
// 'amount'=> $parcel['amount']
// ];
// fputcsv(
// $fp, // The file pointer
// $s, // The fields
// ',' // The delimiter
// );
// }
$response = new Response();
$response->headers->set('Content-type', 'text');
$response->setContent($fileName);
// $response->headers->set('Cache-Control', 'private');
// $response->headers->set('Content-length', $attachmentSize);
// $response->headers->set('Content-Disposition', 'attachment; filename="' . $fileName . '";');
return $response;
}
/**
* @Route("/transactions/{id}", methods={"GET"}, name="one_transaction")
*/
public function getOneWayBill($id){
$em = $this->getDoctrine()->getManager();
/** @var Transaction $transaction */
$transaction = $em->getRepository(Transaction::class)->findOneBy([
'id' => $id
]);
$parcels = $em->getRepository(Parcel::class)->findBy([
'waybill' => $transaction->getWayBill()
]);
return $this->render('parcels/view_transaction.html.twig',[
'transaction' => $transaction,
'parcels' => $parcels
]);
}
/**
* @Route("/transactions/details/{id}", methods={"GET"}, name="one_bos_transaction_detail_parcel")
*/
public function getDetailParcel($id){
$em = $this->getDoctrine()->getManager();
$transaction = $em->getRepository(Transaction::class)->findOneBy([
'id' => $id
]);
return $this->render('parcels/transaction_detail.html.twig',[
'transaction' => $transaction
]);
}
/**
* @Route("/cancelled_transactions", name="bos_all_cancelled_transactions")
*/
public function cancelledTransactionAction() {
// replace this example code with whatever you need
return $this->render('parcels/transactions_cancelled.html.twig',[]);
}
/**
* @Route("/cancelled_list",methods={"post"}, name="bos_json_all_cancelled_transactions")
* @param Request $request
* @return Response
*/
public function cancelledParcels(Request $request) {
$em = $this->getDoctrine()->getManager();
$context = new SerializationContext();
$context->setSerializeNull(true);
$page = $request->request->get('page') > 1 ? $request->request->get('page'): 1;
$rows = $request->request->get('rows') > 1 ? $request->request->get('rows'): 20;
$offset = ($page - 1)*$rows;
$serializer = SerializerBuilder::create()->build();
$filterRules = $request->request->get('filterRules');
$parcels = $em->getRepository( WayBill::class)->findAllCancelledParcels($filterRules,$offset,$rows);
$totals = $em->getRepository(WayBill::class)->findTotalCancelledParcels($filterRules);
// dump($parcels); die;
$data = [
'total' => $totals[0]['count'],
'rows' => $parcels
];
// dump($data);
$data = $serializer->serialize($data,'json', $context);
return Response($data, Response::HTTP_OK);
}
}