Your IP : 216.73.216.79


Current Path : /var/www/html/crm/views/stockdelivery/
Upload File :
Current File : /var/www/html/crm/views/stockdelivery/reporting.php

<?php

use yii\helpers\Html;
use yii\grid\GridView;
use yii\helpers\Url;
use app\models\Menu;
use yii\widgets\ActiveForm;
use app\models\ParamList;
use app\assets\AmchartsAsset;
use app\models\Product;
use app\models\StockDelivery;

AmchartsAsset::register($this);

$ParamList = new ParamList();

$Menu = new Menu();
$this->title = $Menu->getmenutitle($menu_id);

$this->registerJs("$('.datepicker').datepicker({
    rtl: KTUtil.isRTL(),
    todayHighlight: true,
    orientation: 'bottom left',
    format: 'yyyy-mm-dd',
    clearBtn: true,
    todayHighlight: true,
});");

$graph4 = [];
$graph3 = '';
$statusDeliveryArr = $ParamList->getparamlist(46);
if (!empty($statusDeliveryArr)) {
    foreach ($statusDeliveryArr as $statusDeliveryCode => $statusDeliveryLabel) {
        $totalDelivery = Yii::$app->db->createCommand("SELECT COUNT(*) FROM stock_delivery WHERE delivery_status='" . $statusDeliveryCode . "' AND YEAR(created_dt)='$year'")->queryScalar();
        $graph3 .= '{"deliverystatus": "' . $statusDeliveryLabel . '","totaldelivery": "' . $totalDelivery . '"},';
    }
}


$productArr = [];
$graph2 = '';
$modelProduct = Product::find()->where(['=', 'status', '1'])->all();
if (!empty($modelProduct)) {
    foreach ($modelProduct as $rowProduct) {

        $totalQty = 0;
        $modelDelivery = StockDelivery::find()->where(['LIKE', 'stock_details', '"product_id":"' . $rowProduct->id . '"'])->andwhere(['=', 'YEAR(created_dt)', $year])->all();
        if (!empty($modelDelivery)) {
            foreach ($modelDelivery as $rowDelivery) {
                $item_arr = json_decode($rowDelivery->stock_details, true);
                if (!empty($item_arr)) {
                    foreach ($item_arr as $item_data) {
                        if ($item_data['product_id'] == $rowProduct->id)
                            $totalQty += (int) $item_data['product_qty'];
                    }
                }
            }
        }

        if ($totalQty != 0) {
            $productArr[$rowProduct->id] = $rowProduct->name;
            $graph2 .= '{"productname": "' . $rowProduct->name . '","productqty": "' . $totalQty . '"},';
        }
    }
}

$createSeries = "";
if (!empty($statusDeliveryArr)) {
    foreach ($statusDeliveryArr as $statusDeliveryCode => $statusDeliveryLabel) {
        $createSeries = "";
        if (!empty($productArr)) {
            $graph4_data['category'] = $statusDeliveryLabel;
            foreach ($productArr as $productID => $productName) {

                $createSeries .= 'createSeries("product' . $productID . '", "' . $productName . '");';

                $totalQtyProduct = 0;
                $modelDelivery2 = StockDelivery::find()->where(['LIKE', 'stock_details', '"product_id":"' . $productID . '"'])->andwhere(['=', 'delivery_status', $statusDeliveryCode])->all();
                if (!empty($modelDelivery2)) {
                    foreach ($modelDelivery2 as $rowDelivery2) {
                        $item_arr2 = json_decode($rowDelivery2->stock_details, true);
                        if (!empty($item_arr2)) {
                            foreach ($item_arr2 as $item_data2) {
                                if ($item_data2['product_id'] == $productID)
                                    $totalQtyProduct += (int) $item_data2['product_qty'];
                            }
                        }
                    }
                }


                $graph4_data['product' . $productID] = $totalQtyProduct;
            }
            $graph4[] = $graph4_data;
        }
    }
}
?>
<div class="kt-subheader  kt-grid__item" id="kt_subheader">
    <div class="kt-container  kt-container--fluid ">
        <div class="kt-subheader__main">
            <h3 class="kt-subheader__title"><?= $this->title ?> <?= $year ?></h3>
            <div class="kt-subheader__breadcrumbs">
                <?= $Menu->getbreadcrumbs($menu_id, ''); ?>
            </div>
        </div>
    </div>
</div>
<div class="kt-container kt-grid__item kt-grid__item--fluid">
    <p>
        <?= Html::a('<i class="fas fa-arrow-left"></i>&nbsp;Back', ['index'], ['class' => 'btn btn-success']) ?>
        <?php
        for ($y = date('Y'); $y > 2021; $y--) {
            $btn_class = 'btn-success';
            if ($y == $year)
                $btn_class = 'btn-warning';
            echo Html::a($y, ['reporting', 'year' => $y], ['class' => 'btn ' . $btn_class]) . '&nbsp;';
        }
        ?>
    </p>
    <div class="kt-portlet">
        <div class="kt-portlet__head" style="border:0;">
            <div class="kt-portlet__head-label">
                <h3 class="kt-portlet__head-title">Total Product Delivered By Status Delivery <?= $year?></h3>
            </div>
        </div>
        <div class="kt-portlet__body">
            <div class="kt-portlet__content">
                <?php
                $this->registerJs('am4core.ready(function() {

                am4core.useTheme(am4themes_animated);
                var chart = am4core.create("graph4", am4charts.XYChart)
                chart.colors.step = 2;
                chart.cursor = new am4charts.XYCursor();
                chart.legend = new am4charts.Legend()
                chart.legend.position = "top"
                chart.legend.paddingBottom = 20
                chart.legend.labels.template.maxWidth = 95

                var xAxis = chart.xAxes.push(new am4charts.CategoryAxis())
                xAxis.dataFields.category = "category"
                xAxis.renderer.cellStartLocation = 0.1
                xAxis.renderer.cellEndLocation = 0.9
                xAxis.renderer.grid.template.location = 0;

                var label = xAxis.renderer.labels.template;
                label.truncate = true;
                label.maxWidth = 100;

                var yAxis = chart.yAxes.push(new am4charts.ValueAxis());
                yAxis.min = 0;

                function createSeries(value, name) {
                    var series = chart.series.push(new am4charts.ColumnSeries())
                    series.dataFields.valueY = value
                    series.dataFields.categoryX = "category"
                    series.name = name

                    series.events.on("hidden", arrangeColumns);
                    series.events.on("shown", arrangeColumns);

                    var bullet = series.bullets.push(new am4charts.LabelBullet())
                    bullet.interactionsEnabled = false
                    bullet.dy = -10;
                    bullet.label.text = "{valueY}"
                    bullet.label.fill = am4core.color("#000000")

                    return series;
                }

                chart.data = ' . json_encode($graph4) . ';


                ' . $createSeries . '

                function arrangeColumns() {

                    var series = chart.series.getIndex(0);
                    

                    var w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
                    if (series.dataItems.length > 1) {
                        var x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
                        var x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
                        var delta = ((x1 - x0) / chart.series.length) * w;
                        if (am4core.isNumber(delta)) {
                            var middle = chart.series.length / 2;

                            var newIndex = 0;
                            chart.series.each(function(series) {
                                if (!series.isHidden && !series.isHiding) {
                                    series.dummyData = newIndex;
                                    newIndex++;
                                }
                                else {
                                    series.dummyData = chart.series.indexOf(series);
                                }
                            })
                            var visibleCount = newIndex;
                            var newMiddle = visibleCount / 2;

                            chart.series.each(function(series) {
                                var trueIndex = chart.series.indexOf(series);
                                var newIndex = series.dummyData;

                                var dx = (newIndex - trueIndex + middle - newMiddle) * delta

                                series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
                                series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
                                
                                series.tooltipText = "{name}\n{categoryX} : {valueY}";
                            })
                        }
                    }
                }

                }); // end am4core.ready()');
                ?>
                <div class="kt-widget3">
                    <div id="graph4" style="height: 400px;width:100%;"></div>
                </div>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="col-sm-6">
            <div class="kt-portlet">
                <div class="kt-portlet__head" style="border:0;">
                    <div class="kt-portlet__head-label">
                        <h3 class="kt-portlet__head-title">Status Delivery <?= $year?></h3>
                    </div>
                </div>
                <div class="kt-portlet__body">
                    <div class="kt-portlet__content">
                        <?php
                        $this->registerJs('am4core.ready(function() {
                        am4core.useTheme(am4themes_animated);
                        var chart = am4core.create("graph3", am4charts.XYChart);
                        chart.data = [' . $graph3 . '];

                        var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());
                        categoryAxis.dataFields.category = "deliverystatus";
                        categoryAxis.renderer.grid.template.location = 0;
                        categoryAxis.renderer.minGridDistance = 30;
                        categoryAxis.tooltip.disabled = true;

                        var label = categoryAxis.renderer.labels.template;
                        label.truncate = true;
                        label.maxWidth = 80;

                        var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());

                        var series = chart.series.push(new am4charts.ColumnSeries());
                        series.sequencedInterpolation = true;
                        series.dataFields.valueY = "totaldelivery";
                        series.dataFields.categoryX = "deliverystatus";
                        series.tooltipHTML = "{categoryX}<br>{valueY}";
                        series.columns.template.strokeWidth = 0;

                        series.tooltip.pointerOrientation = "vertical";
                        series.columns.template.column.cornerRadiusTopLeft = 5;
                        series.columns.template.column.cornerRadiusTopRight = 5;
                        series.columns.template.adapter.add("fill", function(fill, target) {
                          return chart.colors.getIndex(target.dataItem.index);
                        });
                        chart.cursor = new am4charts.XYCursor();
                    });');
                        ?>
                        <div class="kt-widget3">
                            <div id="graph3" style="height: 300px;width:100%;"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="col-sm-6">
            <div class="kt-portlet">
                <div class="kt-portlet__head" style="border:0;">
                    <div class="kt-portlet__head-label">
                        <h3 class="kt-portlet__head-title">Total Product Delivered <?= $year?></h3>
                    </div>
                </div>
                <div class="kt-portlet__body">
                    <div class="kt-portlet__content">
                        <?php
                        $this->registerJs('am4core.ready(function() {
                        am4core.useTheme(am4themes_animated);
                        var chart = am4core.create("graph2", am4charts.XYChart);
                        chart.data = [' . $graph2 . '];

                        var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());
                        categoryAxis.dataFields.category = "productname";
                        categoryAxis.renderer.grid.template.location = 0;
                        categoryAxis.renderer.minGridDistance = 30;
                        categoryAxis.tooltip.disabled = true;

                        var label = categoryAxis.renderer.labels.template;
                        label.truncate = true;
                        label.maxWidth = 120;

                        var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());

                        var series = chart.series.push(new am4charts.ColumnSeries());
                        series.sequencedInterpolation = true;
                        series.dataFields.valueY = "productqty";
                        series.dataFields.categoryX = "productname";
                        series.tooltipHTML = "{categoryX}<br>{valueY}";
                        series.columns.template.strokeWidth = 0;

                        series.tooltip.pointerOrientation = "vertical";
                        series.columns.template.column.cornerRadiusTopLeft = 5;
                        series.columns.template.column.cornerRadiusTopRight = 5;
                        series.columns.template.adapter.add("fill", function(fill, target) {
                          return chart.colors.getIndex(target.dataItem.index);
                        });
                        chart.cursor = new am4charts.XYCursor();
                    });');
                        ?>
                        <div class="kt-widget3">
                            <div id="graph2" style="height: 300px;width:100%;"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>





    <div class="kt-portlet">
        <div class="kt-portlet__head" style="border:0;">
            <div class="kt-portlet__head-label">
                <h3 class="kt-portlet__head-title">
                    Daily Delivery Report
                    <small style="color:white;">(<?= date("j M Y", strtotime($start_date)) ?> - <?= date("j M Y", strtotime($end_date)) ?>)</small>
                </h3>
            </div>
        </div>
        <div class="kt-portlet__body">
            <div class="kt-portlet__content">

                <?php $form = ActiveForm::begin(['action' => ['reporting', 'year' => $year], 'method' => 'get', 'options' => ['class' => 'form-inline form-search']]); ?>
                <div class="input-daterange input-group" id="kt_datepicker_4_4">
                    <label class="control-label">Search by date range</label>&nbsp;&nbsp;
                    <input type="text" class="form-control" name="start_date" readonly="" value="<?= $start_date; ?>" placeholder="Start date" style="border-radius: 3px 0px 0px 3px !important;">
                    <div class="input-group-append"><span class="input-group-text"><i class="la la-ellipsis-h"></i></span></div>
                    <input type="text" class="form-control" name="end_date" readonly="" value="<?= $end_date; ?>" placeholder="End date">
                </div>
                <div class="form-group">
                    &nbsp;&nbsp;<?= Html::submitButton('Search', ['class' => 'btn btn-brand']) ?>
                    &nbsp;&nbsp;<?= Html::a('Reset', ['reporting', 'year' => $year], ['class' => 'btn btn-outline-brand']) ?>
                </div>
                <?php ActiveForm::end(); ?>

                <?php
                $graphdata1 = [];
                $startTime = strtotime($start_date . ' 12:00');
                $endTime = strtotime($end_date . ' 12:00');
                for ($i = $startTime; $i <= $endTime; $i = $i + 86400) {
                    $thisDate = date('Y-m-d', $i);
                    $graphdata1[] = [
                        'date' => $thisDate,
                        'send' => StockDelivery::find()->where(['=', 'delivery_date', $thisDate])->count(),
                        'receive' => StockDelivery::find()->where(['=', 'receive_date', $thisDate])->count(),
                    ];
                }
                $this->registerJs('am4core.ready(function() {
                    am4core.useTheme(am4themes_animated);
                    var chart = am4core.create("graph1", am4charts.XYChart);
                    chart.colors.step = 2;
                    chart.data = ' . json_encode($graphdata1) . ';
                    
                    var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
                    dateAxis.renderer.minGridDistance = 50;

                    function createAxisAndSeries(field, name, opposite, bullet) {
                      var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
                      if(chart.yAxes.indexOf(valueAxis) != 0){
                            valueAxis.syncWithAxis = chart.yAxes.getIndex(0);
                      }

                      var series = chart.series.push(new am4charts.LineSeries());
                      series.dataFields.valueY = field;
                      series.dataFields.dateX = "date";
                      series.strokeWidth = 2;
                      series.yAxis = valueAxis;
                      series.name = name;
                      series.tooltipText = "{name}: [bold]{valueY}[/]";
                      series.tensionX = 0.8;
                      series.showOnInit = true;

                      var interfaceColors = new am4core.InterfaceColorSet();

                      switch(bullet) {
                        case "triangle":
                          var bullet = series.bullets.push(new am4charts.Bullet());
                          bullet.width = 12;
                          bullet.height = 12;
                          bullet.horizontalCenter = "middle";
                          bullet.verticalCenter = "middle";

                          var triangle = bullet.createChild(am4core.Triangle);
                          triangle.stroke = interfaceColors.getFor("background");
                          triangle.strokeWidth = 2;
                          triangle.direction = "top";
                          triangle.width = 12;
                          triangle.height = 12;
                          break;
                        case "rectangle":
                          var bullet = series.bullets.push(new am4charts.Bullet());
                          bullet.width = 10;
                          bullet.height = 10;
                          bullet.horizontalCenter = "middle";
                          bullet.verticalCenter = "middle";

                          var rectangle = bullet.createChild(am4core.Rectangle);
                          rectangle.stroke = interfaceColors.getFor("background");
                          rectangle.strokeWidth = 2;
                          rectangle.width = 10;
                          rectangle.height = 10;
                          break;
                        default:
                          var bullet = series.bullets.push(new am4charts.CircleBullet());
                          bullet.circle.stroke = interfaceColors.getFor("background");
                          bullet.circle.strokeWidth = 2;
                          break;
                      }

                      valueAxis.renderer.line.strokeOpacity = 1;
                      valueAxis.renderer.line.strokeWidth = 2;
                      valueAxis.renderer.line.stroke = series.stroke;
                      valueAxis.renderer.labels.template.fill = series.stroke;
                      valueAxis.renderer.opposite = opposite;
                      valueAxis.min = 0;
                    }

                    createAxisAndSeries("send", "Parcel send", false, "circle");
                    createAxisAndSeries("receive", "parcel receive", true, "triangle");

                    chart.legend = new am4charts.Legend();
                    chart.cursor = new am4charts.XYCursor();
                    
                    var scrollbar = new am4charts.XYChartScrollbar();

                    chart.scrollbarX = scrollbar;

                    });');
                ?>
                <div class="kt-widget3">
                    <div id="graph1" style="height: 450px;width:100%;"></div>
                </div>
            </div>
        </div>
    </div>

    <div class="kt-portlet">
        <div class="kt-portlet__body">
            <div class="kt-portlet__content">
                <div class="kt-widget3">
                    <script src="https://code.highcharts.com/maps/highmaps.js"></script>
                    <script src="https://code.highcharts.com/maps/modules/exporting.js"></script>
                    <div id="graph5" style="height: 500px;width:100%;"></div>
                    <script>
                        (async () => {
                            const topology = await fetch('https://code.highcharts.com/mapdata/countries/my/my-all.topo.json').then(response => response.json());
                            const data = [{
                                    'hc-key': 'my-sa', //sabah
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'SBH'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-sk', //sarawak
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'SWK'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-la', //labuan
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'LBN'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-pg', //penang
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'PNG'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-kh', //kedah
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'KDH'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-sl', //selangor
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'SGR'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-ph', //pahang
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'PHG'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-kl', //kuala lumpur
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'KUL'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-pj', //putrajaya
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'PJY'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-pl', //perlis
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'PLS'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-jh', //johor
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'JHR'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-pk', //perak
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'PRK'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-kn', //kelantan
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'KTN'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-me', //melaka
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'MLK'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-ns', //negeri sembilan
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'NSN'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                },
                                {
                                    'hc-key': 'my-te', //terengganu
                                    total: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    initiated: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'initiated'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    checked: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'checked'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    prepare: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'prepare'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    waiting: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'waiting'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    pickup: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'pickup'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    intransit: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'intransit'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    delivered: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'delivered'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                    undeliver: <?= StockDelivery::find()->where(['=', 'customer_state', 'TRG'])->andwhere(['=', 'delivery_status', 'undeliver'])->andwhere(['=', 'YEAR(created_dt)', $year])->count() ?>,
                                }
                            ];
                            Highcharts.mapChart('graph5', {
                                chart: {map: topology},
                                title: {text: 'Delivery Status by State <?= $year?>'},
                                subtitle: {text: ''},
                                mapNavigation: {
                                    enabled: true,
                                    buttonOptions: {verticalAlign: 'bottom'}
                                },
                                tooltip: {
                                    useHTML: true,
                                    headerFormat: '<table><tr><th colspan="2"><h5><b>{point.key}</b></h5></th></tr>',
                                    pointFormat: '<tr><td>Order Initiated</span></td><td style="text-align: right;padding-left:1em;"><b>{point.initiated}</b></td></tr>' +
                                            '<tr><td>Information checked</td><td style="text-align: right;padding-left:1em;"><b>{point.checked}</b></td></tr>' +
                                            '<tr><td>Preparing the parcel for delivery</td><td style="text-align: right;padding-left:1em;"><b>{point.prepare}</b></td></tr>' +
                                            '<tr><td>Waiting for courier to pick up the parcel</td><td style="text-align: right;padding-left:1em;"><b>{point.waiting}</b></td></tr>' +
                                            '<tr><td>Parcel has been picked up by courier</td><td style="text-align: right;padding-left:1em;"><b>{point.pickup}</b></td></tr>' +
                                            '<tr><td>Parcel is in transit</td><td style="text-align: right;padding-left:1em;"><b>{point.intransit}</b></td></tr>' +
                                            '<tr><td>Parcel has been delivered</td><td style="text-align: right;padding-left:1em;"><b>{point.delivered}</b></td></tr>' +
                                            '<tr><td>Undelivered</td><td style="text-align: right;padding-left:1em;"><b>{point.undeliver}</b></td></tr>' +
                                            '<tr><td colspan="2"><hr></td></tr>' +
                                            '<tr><td><h6>Total<h6></td><td style="text-align: right"><h6><b>{point.total}</b></h6></td></tr>',
                                    footerFormat: '</table>',
                                    valueDecimals: 2
                                },
                                colorAxis: {min: 0},
                                series: [
                                    {
                                        data: data,
                                        name: 'Total Delivery',
                                        states: {hover: {color: '#BADA55'}},
                                        dataLabels: {
                                            enabled: true,
                                            format: '{point.name}'
                                        },
                                    }
                                ],
                            });
                        }
                        )();
                    </script>
                </div>
            </div>
        </div>
    </div>


</div>