From aea86e55ca8a4bb7ad6e246005f873d440f722da Mon Sep 17 00:00:00 2001 From: Karl Cordes Date: Tue, 27 Sep 2011 13:47:36 +1000 Subject: [PATCH] Implementing Shipment reports --- controllers/app_controller.php | 25 +++++++++++ controllers/jobs_controller.php | 15 ++++--- controllers/shipments_controller.php | 62 +++++++++++++++++++++++++++- webroot/js/job_reports.js | 1 + 4 files changed, 96 insertions(+), 7 deletions(-) diff --git a/controllers/app_controller.php b/controllers/app_controller.php index c20bab04..6b4614f4 100755 --- a/controllers/app_controller.php +++ b/controllers/app_controller.php @@ -118,6 +118,31 @@ class AppController extends Controller { } + /** + * + * @param $year + * @param $prevYear + * @return + */ + function getFirstDayFY($year,$prevYear = false) { + if($prevYear == false) { + return mktime(0,0,0,7,1,$year); + + } + else { + return mktime(0,0,0,7,1,$year-1); + } + } + /** + * + * @param $year + * @return + */ + function getLastDayFY($year) { + return mktime(23,59,59,6,30,$year); + + } + diff --git a/controllers/jobs_controller.php b/controllers/jobs_controller.php index 1a9a299b..1e558420 100755 --- a/controllers/jobs_controller.php +++ b/controllers/jobs_controller.php @@ -352,7 +352,7 @@ class JobsController extends AppController { * @param $year * @param $prevYear * @return - */ + function getFirstDayFY($year,$prevYear = false) { if($prevYear == false) { return mktime(0,0,0,7,1,$year); @@ -362,11 +362,15 @@ class JobsController extends AppController { return mktime(0,0,0,7,1,$year-1); } } - /** + + * + * + * /** + * * @param $year - * @return - */ + * @return + function getLastDayFY($year) { return mktime(23,59,59,6,30,$year); @@ -374,8 +378,7 @@ class JobsController extends AppController { function getMonthsFY($year) { - } - + } */ function job_status_options() { diff --git a/controllers/shipments_controller.php b/controllers/shipments_controller.php index 899955d5..37b84ab3 100644 --- a/controllers/shipments_controller.php +++ b/controllers/shipments_controller.php @@ -198,7 +198,7 @@ class ShipmentsController extends AppController { } - + function markJobsSent() { @@ -247,5 +247,65 @@ class ShipmentsController extends AppController { } } + + function reports() { + $invoices = $this->Shipment->ShipmentInvoice->find('all',array('conditions'=>array('ShipmentInvoice.deferred_gst > 0'))); + + /*foreach($shipments as $shipment) { + foreach($shipment['ShipmentInvoice'] as $si) { + if($si['deferred_gst'] == 1) { + echo $si['deferred_gst_amount']."\n"; + } + } + }*/ + + + $Fyears = $this->getFinancialYears($invoices); + $this->set('Fyears',$Fyears); + + + $this->set('invoices', $invoices); + +} + + +function getFinancialYears($shipments) { + + $Fyears = array(); + + foreach($shipments as $shipment) { + + $time = strtotime($shipment['Shipment']['created']); + $year = date('Y', $time); //ISO-8601 year number + + + $startFYunix = $this->getFirstDayFY($year); //1 July of $year. + + if($time < $startFYunix) { //Date is before 1 July $year. + $lastYear = $year - 1; + + if(!isset($Fyears[$year])) { + $Fyears[$year] = 1; + } + else { + $Fyears[$year]++; + } + } + else { //Date is After 1 July $year. + + $nextYear = $year + 1; + if(!isset($Fyears[$nextYear])) { + $Fyears[$nextYear] = 1; + } + else { + $Fyears[$nextYear]++; + } + } + + } + krsort($Fyears); //Sort the array in reverse order, most recent to oldest. + return $Fyears; +} + } ?> \ No newline at end of file diff --git a/webroot/js/job_reports.js b/webroot/js/job_reports.js index c134a324..3ed951a3 100644 --- a/webroot/js/job_reports.js +++ b/webroot/js/job_reports.js @@ -1,5 +1,6 @@ $(function() { + var model = $("#modelString").val(); $(".month").live('click',function(event) { event.preventDefault();