Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Supp..
Decoded Output download
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use App\Models\ValueStream;
use App\Models\timeFrame;
class BusinessGroup extends Model
{
protected $table = "business_groups";
public function getDataLayer1($timeFrame, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$selectQueryTimeFrame = $time_frame->getQueryLayer1($timeFrame);
$supply_center_id = $supplyCenter;
$records = DB::table(
"supply_centers as sc"
)
->select(
DB::raw(
"sum(qty_requested) as qty_requested,
sum(qty_delivered_ontime) as qty_delivered_ontime,
sc.id, sc.name, sc.target"
)
)
->join(
"fill_rates as fr",
"sc.id",
"=",
"fr.supply_center_id"
)
->where("sc.id", $supply_center_id)
->where($selectQueryTimeFrame)
->where(
"fr.customer_mapped",
"!=",
"Amazon.com"
)
->groupBy(
"sc.id",
"sc.name",
"sc.target"
)
->get();
foreach ($records as $key) {
$actual = number_format(
($key->qty_delivered_ontime / $key->qty_requested) * 100,
1,
".",
""
);
$class = "green";
if ($actual < $key->target) {
$class = "red";
}
$dataItem = [
"id" => $key->id,
"name" => $key->name,
"target" => $key->target,
"actual" => $actual,
"class" => $class,
];
array_push($data, $dataItem);
}
return $data;
}
public function getDataLayer2($timeFrame, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$supply_center_id = $supplyCenter;
$query = DB::table(
"fill_rates as fr"
);
if (
$timeFrame == "past_12_weeks"
) {
$query
->selectRaw(
"week AS code"
)
->whereRaw(
"week >= ? and week <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("week")
->orderBy("code", "asc");
} elseif (
$timeFrame ==
"past_12_months"
) {
$query
->selectRaw(
"CONCAT(year, month_num) AS code"
)
->whereRaw(
"CONCAT(year, month_num) >= ? and CONCAT(year, month_num) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy(
"year",
"month_num"
)
->orderBy("year", "asc")
->orderBy(
"month_num",
"asc"
);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$query
->selectRaw(
"CONCAT(year, quarter) AS code"
)
->whereRaw(
"CONCAT(year, quarter) >= ? and CONCAT(year, quarter) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year", "quarter")
->orderBy("year", "asc")
->orderBy("quarter", "asc");
} elseif (
$timeFrame == "past_6_years"
) {
$query
->selectRaw(
"year AS code"
)
->whereRaw(
"year >= ? and year <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year")
->orderBy("year", "asc");
}
$query
->join(
"article_groups as ag",
"ag.id",
"=",
"fr.article_group_id"
)
->join(
"value_streams as vs",
"vs.id",
"=",
"ag.value_stream_id"
)
->join(
"value_stream_details as vsd",
"vsd.value_stream_id",
"=",
"vs.id"
)
->join(
"business_groups as bg",
"bg.id",
"=",
"vsd.business_group_id"
)
->where(
"bg.supply_center_id",
"=",
$supply_center_id
)
->where(
"fr.customer_mapped",
"!=",
"Amazon.com"
)
->selectRaw(
"sum(qty_requested) as qty_requested, \xa sum(qty_delivered_ontime) as qty_delivered_ontime,
bg.id, bg.target"
)
->groupBy("bg.id")
->groupBy("bg.target")
->orderBy("bg.id", "asc");
$chartSetting = [];
$dtRecords = $query->get();
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$regionId = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
".",
""
);
$data[$code]["code"] = $code;
$data[$code]["bg"][$regionId]["id"] = $keyValue->id;
$data[$code]["bg"][$regionId][
"actual"
] = $actual;
$data[$code]["bg"][$regionId][
"deliver"
] = $keyValue->qty_delivered_ontime;
$data[$code]["bg"][$regionId][
"request"
] = $keyValue->qty_requested;
$data[$code]["bg"][$regionId]["target"] =
$keyValue->target;
}
$dataTable = [];
$dataChart = [];
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["name"] = $dtBG->name;
$dataChart[$dtBG->id]["type"] =
"column";
$dataChart[$dtBG->id]["color"] = $dtBG->color;
$dataChart[$dtBG->id][
"showInLegend"
] = true;
$dataChart[$dtBG->id][
"dataPoints"
] = [];
$targetID = 20 + $dtBG->id;
$dataChart[$targetID]["type"] =
"scatter";
$dataChart[$targetID]["color"] =
"yellow";
$dataChart[$targetID]["markerType"] =
"circle";
$dataChart[$targetID][
"markerColor"
] = "yellow";
$dataChart[$targetID][
"dataPoints"
] = [];
}
$dtSupply = DB::table(
"supply_centers"
)
->orderBY("id", "ASC")
->where("id", "=", "1")
->get();
$targetSupply = $dtSupply[0]->target;
$dataChart[90]["name"] = "all";
$dataChart[90]["type"] = "column";
$dataChart[90]["color"] = "#FFECCC";
$dataChart[90][
"showInLegend"
] = true;
$dataChart[90]["dataPoints"] = [];
$dataChart[100]["type"] = "scatter";
$dataChart[100]["color"] = "yellow";
$dataChart[100]["markerType"] =
"circle";
$dataChart[100]["markerColor"] =
"yellow";
$dataChart[100]["dataPoints"] = [];
$numberChart = $bgList->count() + 2;
$chartSetting["interval"] = $numberChart;
$xPosition = $numberChart;
$allPosition = (1.05 * $numberChart) / 2 - 1;
$x = 0;
foreach ($data as $dtInterval) {
$code = $dtInterval["code"];
if (
$timeFrame ==
"past_12_weeks"
) {
$label = "W" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"past_12_months"
) {
$label = "M" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$label = "Q" . substr($code, 4, 2);
} elseif (
$timeFrame == "past_6_years"
) {
$label = "Y" . substr($code, 2, 2);
}
$xItem = $x * $numberChart + $xPosition;
$xAll = $xItem + $allPosition;
array_push(
$dataChart[100]["dataPoints"],
[
"x" => $xAll,
"y" => floatval($targetSupply),
"label" => $label,
]
);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
$pointStart = $xAll - $numberChart + 2;
foreach ($dtInterval["bg"] as $dtBG) {
$totalRequest += $dtBG["request"];
$totalDeliver += $dtBG["deliver"];
array_push(
$dataTable[$code],
$dtBG["actual"]
);
array_push(
$dataChart[$dtBG["id"]][
"dataPoints"
],
[
"x" => $xItem,
"y" => floatval($dtBG["actual"]),
"label" => $label,
]
);
$targetID = 20 + $dtBG["id"];
array_push(
$dataChart[$targetID][
"dataPoints"
],
[
"x" => $pointStart,
"y" => floatval($dtBG["target"]),
]
);
$pointStart += 1;
}
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
".",
""
);
array_push(
$dataChart[90]["dataPoints"],
[
"x" => $xItem,
"y" => floatval($totalActual),
"label" => $label,
]
);
$data[$code]["all "][
"actual"
] = $totalActual;
$data[$code]["all "][
"deliver"
] = $totalDeliver;
$data[$code]["all "][
"request"
] = $totalRequest;
array_push($dataTable[$code], $totalActual);
$x++;
}
$numberDataPointChart = count(
$dataChart[100]["dataPoints"]
);
$dataChartReturn = [];
foreach ($dataChart as $dtChart) {
array_push($dataChartReturn, $dtChart);
}
$dataReturn = [
"table" => array_reverse($dataTable),
"chart" => $dataChartReturn,
"chartSetting" => $chartSetting,
];
return $dataReturn;
}
public function getDataLayer2Chartjs($timeFrame, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$supply_center_id = $supplyCenter;
$query = DB::table(
"fill_rates as fr"
);
if (
$timeFrame == "past_12_weeks"
) {
$query
->selectRaw(
"week AS code"
)
->whereRaw(
"week >= ? and week <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("week")
->orderBy("code", "asc");
} elseif (
$timeFrame ==
"past_12_months"
) {
$query
->selectRaw(
"CONCAT(year, month_num) AS code"
)
->whereRaw(
"CONCAT(year, month_num) >= ? and CONCAT(year, month_num) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy(
"year",
"month_num"
)
->orderBy("year", "asc")
->orderBy(
"month_num",
"asc"
);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$query
->selectRaw(
"CONCAT(year, quarter) AS code"
)
->whereRaw(
"CONCAT(year, quarter) >= ? and CONCAT(year, quarter) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year", "quarter")
->orderBy("year", "asc")
->orderBy("quarter", "asc");
} elseif (
$timeFrame == "past_6_years"
) {
$query
->selectRaw(
"year AS code"
)
->whereRaw(
"year >= ? and year <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year")
->orderBy("year", "asc");
}
$query
->join(
"article_groups as ag",
"ag.id",
"=",
"fr.article_group_id"
)
->join(
"value_streams as vs",
"vs.id",
"=",
"ag.value_stream_id"
)
->join(
"value_stream_details as vsd",
"vsd.value_stream_id",
"=",
"vs.id"
)
->join(
"business_groups as bg",
"bg.id",
"=",
"vsd.business_group_id"
)
->where(
"bg.supply_center_id",
"=",
$supply_center_id
)
->where(
"fr.customer_mapped",
"!=",
"Amazon.com"
)
->selectRaw(
"sum(qty_requested) as qty_requested,
sum(qty_delivered_ontime) as qty_delivered_ontime,
bg.id, bg.target"
)
->groupBy("bg.id")
->groupBy("bg.target")
->orderBy("bg.id", "asc");
$chartSetting = [];
$dtRecords = $query->get();
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$bgId = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
".",
""
);
$data[$code]["code"] = $code;
$data[$code]["bg"][$bgId]["id"] = $keyValue->id;
$data[$code]["bg"][$bgId][
"actual"
] = $actual;
$data[$code]["bg"][$bgId]["deliver"] =
$keyValue->qty_delivered_ontime;
$data[$code]["bg"][$bgId]["request"] =
$keyValue->qty_requested;
$data[$code]["bg"][$bgId]["target"] =
$keyValue->target;
}
$dataTable = [];
$dataChart = [];
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["order"] = 1;
$dataChart[$dtBG->id]["label"] = $dtBG->name;
$dataChart[$dtBG->id]["type"] = "bar";
$dataChart[$dtBG->id][
"backgroundColor"
] = $dtBG->color;
$dataChart[$dtBG->id][
"borderWidth"
] = 1;
$dataChart[$dtBG->id]["data"] = [];
}
$dtSupply = DB::table(
"supply_centers"
)
->orderBY("id", "ASC")
->where("id", "=", "1")
->get();
$targetSupply = $dtSupply[0]->target;
$dataChart[90]["order"] = 1;
$dataChart[90]["label"] = "All";
$dataChart[90]["type"] = "bar";
$dataChart[90][
"backgroundColor"
] = "#FFECCC";
$dataChart[90]["borderWidth"] = 1;
$dataChart[90]["data"] = [];
$dataChart[100]["order"] = 0;
$dataChart[100]["label"] = "Target";
$dataChart[100]["type"] = "scatter";
$dataChart[100]["pointRadius"] = 4;
$dataChart[100][
"backgroundColor"
] = "yellow";
$dataChart[100]["borderWidth"] = 1;
$dataChart[100]["data"] = [];
$labels = [];
$x = 0;
foreach ($data as $dtInterval) {
$code = $dtInterval["code"];
if (
$timeFrame ==
"past_12_weeks"
) {
$label = "W" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"past_12_months"
) {
$label = "M" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$label = "Q" . substr($code, 4, 2);
} elseif (
$timeFrame == "past_6_years"
) {
$label = "Y" . substr($code, 2, 2);
}
array_push($labels, $label);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
foreach ($dtInterval["bg"] as $dtBG) {
$totalRequest += $dtBG["request"];
$totalDeliver += $dtBG["deliver"];
$classBGStatus = "";
if (
$dtBG["actual"] <
$dtBG["target"]
) {
$classBGStatus = "red";
}
$dtBGtable = [
"actual" =>
$dtBG["actual"],
"target" =>
$dtBG["target"],
"class" => $classBGStatus,
];
array_push($dataTable[$code], $dtBGtable);
array_push(
$dataChart[$dtBG["id"]]["data"],
floatval($dtBG["actual"])
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval($dtBG["target"]),
]);
}
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval($targetSupply),
]);
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
".",
""
);
array_push(
$dataChart[90]["data"],
floatval($totalActual)
);
$classBGStatus = "";
if ($totalActual < $targetSupply) {
$classBGStatus = "red";
}
$dtBGtable = [
"actual" => $totalActual,
"target" => $targetSupply,
"class" => $classBGStatus,
];
$data[$code]["all "][
"actual"
] = $totalActual;
$data[$code]["all "][
"deliver"
] = $totalDeliver;
$data[$code]["all "][
"request"
] = $totalRequest;
array_push($dataTable[$code], $dtBGtable);
$x++;
}
$dataChartReturn = [];
$dataChartReturn["labels"] = $labels;
$dataChartReturn["datasets"] = [];
foreach ($dataChart as $dtChart) {
array_push(
$dataChartReturn["datasets"],
$dtChart
);
}
$dataReturn = [
"table" => array_reverse($dataTable),
"chart" => $dataChartReturn,
];
return $dataReturn;
}
public function getBGList($supplyCenter)
{
$supply_center_id = $supplyCenter;
$dtRecords = DB::table(
"business_groups"
)
->where(
"supply_center_id",
$supply_center_id
)
->orderBY("id", "ASC")
->get();
return $dtRecords;
}
public function getHeaderlayer2($timeFrame, $supplyCenter)
{
$supply_center_id = $supplyCenter;
if (
$timeFrame == "past_12_weeks"
) {
$header = ["WEEK"];
} elseif (
$timeFrame ==
"past_12_months"
) {
$header = ["MONTH"];
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$header = ["QUARTER"];
} elseif (
$timeFrame == "past_6_years"
) {
$header = ["YEAR"];
}
$dtRecords = DB::table(
"business_groups"
)
->where(
"supply_center_id",
$supply_center_id
)
->orderBY("id", "ASC")
->get();
foreach ($dtRecords as $key) {
array_push($header, strtoupper($key->name));
}
array_push($header, "ALL");
return $header;
}
public function getFilterLayer3($bgID, $vsID, $supplyCenter)
{
$bgSelection = "";
if ($bgID == "all") {
$bgSelection = "selected";
}
$vsSelection = "";
if ($vsID == "all") {
$vsSelection = "selected";
}
$data = [
[
"id" => "bg",
"name" =>
"Business Group",
"value" => [
[
"id" => "all",
"name" => "All",
"selected" => $bgSelection,
],
],
],
[
"id" => "vs",
"name" =>
"Value Stream",
"value" => [
[
"id" => "all",
"name" => "All",
"selected" => $vsSelection,
],
],
],
];
$supply_center_id = $supplyCenter;
$dtBGs = DB::table(
"business_groups"
)
->where(
"supply_center_id",
$supply_center_id
)
->orderBY("id", "ASC")
->get();
foreach ($dtBGs as $dtBG) {
$bgSelection = "";
if ($bgID == $dtBG->id) {
$bgSelection = "selected";
}
array_push($data[0]["value"], [
"id" => $dtBG->id,
"name" => $dtBG->name,
"selected" => $bgSelection,
]);
}
if ($bgID != "all") {
$dtVSs = DB::table(
"value_streams as vs"
)
->join(
"value_stream_details as vsd",
"vsd.value_stream_id",
"=",
"vs.id"
)
->selectRaw(
"vs.id, vs.name, vsd.business_group_id"
)
->where(
"vsd.business_group_id",
"=",
$bgID
)
->orderBY("vs.id", "ASC")
->get();
foreach ($dtVSs as $dtVS) {
$vsSelection = "";
if ($vsID == $dtVS->id) {
$vsSelection = "selected";
}
array_push($data[1]["value"], [
"id" => $dtVS->id,
"name" => $dtVS->name,
"selected" => $vsSelection,
]);
}
}
return $data;
}
public function getDataLayer3($timeFrame, $bg, $vs, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$query = DB::table(
"fill_rates as fr"
);
$supply_center_id = $supplyCenter;
if (
$timeFrame ==
"past_12_weeks" ||
$timeFrame == "last_week"
) {
$query
->selectRaw(
"week AS code"
)
->whereRaw(
"week >= ? and week <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("week")
->orderBy("week", "asc");
} elseif (
$timeFrame ==
"past_12_months"
) {
$query
->selectRaw(
"CONCAT(year, month_num) AS code"
)
->whereRaw(
"CONCAT(year, month_num) >= ? and CONCAT(year, month_num) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy(
"year",
"month_num"
)
->orderBy("year", "asc")
->orderBy(
"month_num",
"asc"
);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$query
->selectRaw(
"CONCAT(year, quarter) AS code"
)
->whereRaw(
"CONCAT(year, quarter) >= ? and CONCAT(year, quarter) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year", "quarter")
->orderBy("year", "asc")
->orderBy("quarter", "asc");
} elseif (
$timeFrame == "past_6_years"
) {
$query
->selectRaw(
"year AS code"
)
->whereRaw(
"year >= ? and year <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year")
->orderBy("year", "asc");
}
if ($bg != "all") {
$query
->where("bg.id", "=", $bg)
->selectRaw("vs.id")
->groupBy("vs.id")
->orderBy("vs.id", "asc");
} else {
$query
->selectRaw("bg.id")
->groupBy("bg.id")
->orderBy("bg.id", "asc");
}
if ($vs != "all") {
$query->where("vs.id", "=", $vs);
}
$query
->join(
"article_groups as ag",
"ag.id",
"=",
"fr.article_group_id"
)
->join(
"value_streams as vs",
"vs.id",
"=",
"ag.value_stream_id"
)
->join(
"value_stream_details as vsd",
"vsd.value_stream_id",
"=",
"vs.id"
)
->join(
"business_groups as bg",
"bg.id",
"=",
"vsd.business_group_id"
)
->where(
"bg.supply_center_id",
"=",
$supply_center_id
)
->where(
"fr.customer_mapped",
"!=",
"Amazon.com"
)
->selectRaw(
"sum(qty_requested) as qty_requested, \xa sum(qty_delivered_ontime) as qty_delivered_ontime"
);
$dtRecords = $query->get();
$idListKey = [];
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$id = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
".",
""
);
$data[$code]["code"] = $code;
$data[$code]["bg"][$id]["id"] = $id;
$data[$code]["bg"][$id]["actual"] = $actual;
$data[$code]["bg"][$id]["deliver"] =
$keyValue->qty_delivered_ontime;
$data[$code]["bg"][$id]["request"] =
$keyValue->qty_requested;
$idListKey[$id] = $id;
}
$idList = [];
foreach ($idListKey as $key => $value) {
array_push($idList, $value);
}
$dataChart = [];
if ($bg == "all") {
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["name"] = $dtBG->name;
$dataChart[$dtBG->id]["type"] =
"column";
$dataChart[$dtBG->id]["color"] = $dtBG->color;
$dataChart[$dtBG->id][
"showInLegend"
] = true;
$dataChart[$dtBG->id][
"dataPoints"
] = [];
}
} else {
$queryVS = DB::table(
"value_streams"
)->whereIn("id", $idList);
$vsList = $queryVS->get();
foreach ($vsList as $dtBG) {
$dataChart[$dtBG->id]["name"] = $dtBG->name;
$dataChart[$dtBG->id]["type"] =
"column";
$dataChart[$dtBG->id]["color"] = $dtBG->color;
$dataChart[$dtBG->id][
"showInLegend"
] = true;
$dataChart[$dtBG->id][
"dataPoints"
] = [];
}
}
if ($bg == "all") {
$dtTarget = DB::table(
"supply_centers"
)
->orderBY("id", "ASC")
->where("id", "=", "1")
->get();
} else {
$dtTarget = DB::table(
"business_groups"
)
->orderBY("id", "ASC")
->where("id", "=", $bg)
->get();
}
$targetSupply = $dtTarget[0]->target;
if ($bg == "all") {
$dataChart[90]["name"] = "all";
$dataChart[90]["type"] = "column";
$dataChart[90]["color"] =
"#FFECCC";
$dataChart[90][
"showInLegend"
] = true;
$dataChart[90]["dataPoints"] = [];
} elseif ($vs == "all") {
$dataChart[90]["name"] = "all";
$dataChart[90]["type"] = "column";
$dataChart[90]["color"] =
"#FFECCC";
$dataChart[90][
"showInLegend"
] = true;
$dataChart[90]["dataPoints"] = [];
}
$dataChart[100]["type"] = "line";
$dataChart[100]["color"] = "yellow";
$dataChart[100]["markerType"] =
"none";
$dataChart[100]["dataPoints"] = [
[
"x" => 0,
"y" => floatval($targetSupply),
"label" => " ",
],
];
$x = 1;
foreach ($data as $dtInterval) {
$code = $dtInterval["code"];
if (
$timeFrame ==
"past_12_weeks" ||
$timeFrame == "last_week"
) {
$label = "W" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"past_12_months"
) {
$label = "M" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$label = "Q" . substr($code, 4, 2);
} elseif (
$timeFrame == "past_6_years"
) {
$label = "Y" . substr($code, 2, 2);
}
array_push(
$dataChart[100]["dataPoints"],
[
"x" => $x,
"y" => floatval($targetSupply),
"label" => $label,
]
);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
if ($bg != "all") {
foreach ($idList as $idVs) {
if (isset($dtInterval["bg"][$idVs])) {
$totalRequest +=
$dtInterval["bg"][$idVs][
"request"
];
$totalDeliver +=
$dtInterval["bg"][$idVs][
"deliver"
];
array_push(
$dataTable[$code],
$dtInterval["bg"][$idVs][
"actual"
]
);
array_push(
$dataChart[
$dtInterval["bg"][$idVs]["id"]
]["data"],
floatval(
$dtInterval["bg"][$idVs][
"actual"
]
)
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval(
$dtInterval["bg"][$idVs][
"target"
]
),
]);
} else {
$totalRequest += 0;
$totalDeliver += 0;
array_push($dataTable[$code], 0);
array_push(
$dataChart[$idVs]["data"],
floatval(0)
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval(0),
]);
}
}
} else {
foreach ($dtInterval["bg"] as $dtBG) {
$totalRequest += $dtBG["request"];
$totalDeliver += $dtBG["deliver"];
array_push(
$dataTable[$code],
$dtBG["actual"]
);
array_push(
$dataChart[$dtBG["id"]]["data"],
floatval($dtBG["actual"])
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval($dtBG["target"]),
]);
}
}
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
".",
""
);
$data[$code]["all "][
"actual"
] = $totalActual;
$data[$code]["all "][
"deliver"
] = $totalDeliver;
$data[$code]["all "][
"request"
] = $totalRequest;
if ($bg == "all") {
}
if ($bg == "all") {
array_push(
$dataChart[90]["dataPoints"],
[
"x" => $x,
"y" => floatval($totalActual),
"label" => $label,
]
);
} elseif ($vs == "all") {
array_push(
$dataChart[90]["dataPoints"],
[
"x" => $x,
"y" => floatval($totalActual),
"label" => $label,
]
);
}
$x++;
}
array_push(
$dataChart[100]["dataPoints"],
[
"x" => $x,
"y" => floatval($targetSupply),
"label" => " ",
]
);
$dataChartReturn = [];
foreach ($dataChart as $dtChart) {
array_push($dataChartReturn, $dtChart);
}
$dataReturn = ["chart" => $dataChartReturn];
return $dataReturn;
}
public function getDataLayer3ChartJs($timeFrame, $bg, $vs, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$query = DB::table(
"fill_rates as fr"
);
$supply_center_id = $supplyCenter;
if (
$timeFrame ==
"past_12_weeks" ||
$timeFrame == "last_week"
) {
$query
->selectRaw("week AS code")
->whereRaw(
"week >= ? and week <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("week")
->orderBy("week", "asc");
} elseif (
$timeFrame ==
"past_12_months"
) {
$query
->selectRaw(
"CONCAT(year, month_num) AS code"
)
->whereRaw(
"CONCAT(year, month_num) >= ? and CONCAT(year, month_num) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy(
"year",
"month_num"
)
->orderBy("year", "asc")
->orderBy(
"month_num",
"asc"
);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$query
->selectRaw(
"CONCAT(year, quarter) AS code"
)
->whereRaw(
"CONCAT(year, quarter) >= ? and CONCAT(year, quarter) <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year", "quarter")
->orderBy("year", "asc")
->orderBy("quarter", "asc");
} elseif (
$timeFrame == "past_6_years"
) {
$query
->selectRaw(
"year AS code"
)
->whereRaw(
"year >= ? and year <= ?",
[
$time_range[
"start_query"
],
$time_range["end_query"],
]
)
->groupBy("year")
->orderBy("year", "asc");
}
if ($bg != "all") {
$query
->where("bg.id", "=", $bg)
->selectRaw(
"vs.id, bg.target"
)
->groupBy("vs.id")
->groupBy("bg.target")
->orderBy("vs.id", "asc");
} else {
$query
->selectRaw(
"bg.id, bg.target"
)
->groupBy("bg.id")
->groupBy("bg.target")
->orderBy("bg.id", "asc");
}
if ($vs != "all") {
$query->where("vs.id", "=", $vs);
}
$query
->join(
"article_groups as ag",
"ag.id",
"=",
"fr.article_group_id"
)
->join(
"value_streams as vs",
"vs.id",
"=",
"ag.value_stream_id"
)
->join(
"value_stream_details as vsd",
"vsd.value_stream_id",
"=",
"vs.id"
)
->join(
"business_groups as bg",
"bg.id",
"=",
"vsd.business_group_id"
)
->where(
"bg.supply_center_id",
"=",
$supply_center_id
)
->where(
"fr.customer_mapped",
"!=",
"Amazon.com"
)
->selectRaw(
"sum(qty_requested) as qty_requested, \xa sum(qty_delivered_ontime) as qty_delivered_ontime"
);
$dtRecords = $query->get();
$idListKey = [];
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$id = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
".",
""
);
$data[$code]["code"] = $code;
$data[$code]["bg"][$id]["id"] = $id;
$data[$code]["bg"][$id]["actual"] = $actual;
$data[$code]["bg"][$id]["deliver"] =
$keyValue->qty_delivered_ontime;
$data[$code]["bg"][$id]["request"] =
$keyValue->qty_requested;
$data[$code]["bg"][$id]["target"] =
$keyValue->target;
$idListKey[$id] = $id;
}
$idList = [];
foreach ($idListKey as $key => $value) {
array_push($idList, $value);
}
$dataChart = [];
if ($bg == "all") {
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["order"] = 1;
$dataChart[$dtBG->id]["label"] = $dtBG->name;
$dataChart[$dtBG->id]["type"] = "bar";
$dataChart[$dtBG->id][
"backgroundColor"
] = $dtBG->color;
$dataChart[$dtBG->id][
"borderWidth"
] = 1;
$dataChart[$dtBG->id]["data"] = [];
}
} else {
$queryVS = DB::table(
"value_streams"
)->whereIn("id", $idList);
$vsList = $queryVS->get();
foreach ($vsList as $dtBG) {
$dataChart[$dtBG->id]["order"] = 1;
$dataChart[$dtBG->id]["label"] = $dtBG->name;
$dataChart[$dtBG->id]["type"] = "bar";
$dataChart[$dtBG->id][
"backgroundColor"
] = $dtBG->color;
$dataChart[$dtBG->id][
"borderWidth"
] = 1;
$dataChart[$dtBG->id]["data"] = [];
}
}
if ($bg == "all") {
$dtTarget = DB::table(
"supply_centers"
)
->orderBY("id", "ASC")
->where("id", "=", "1")
->get();
} else {
$dtTarget = DB::table(
"business_groups"
)
->orderBY("id", "ASC")
->where("id", "=", $bg)
->get();
}
$targetSupplyAll = $dtTarget[0]->target;
if ($bg == "all") {
$dataChart[90]["order"] = 1;
$dataChart[90]["label"] = "All";
$dataChart[90]["type"] = "bar";
$dataChart[90][
"backgroundColor"
] = "#FFECCC";
$dataChart[90]["borderWidth"] = 1;
$dataChart[90]["data"] = [];
} elseif ($vs == "all") {
$dataChart[90]["order"] = 1;
$dataChart[90]["label"] = "All";
$dataChart[90]["type"] = "bar";
$dataChart[90][
"backgroundColor"
] = "#FFECCC";
$dataChart[90]["borderWidth"] = 1;
$dataChart[90]["data"] = [];
}
$dataChart[100]["order"] = 0;
$dataChart[100]["label"] = "Target";
$dataChart[100]["type"] = "scatter";
$dataChart[100]["pointRadius"] = 4;
$dataChart[100][
"backgroundColor"
] = "yellow";
$dataChart[100]["borderWidth"] = 1;
$dataChart[100]["data"] = [];
$x = 1;
$labels = [];
foreach ($data as $dtInterval) {
$code = $dtInterval["code"];
if (
$timeFrame ==
"past_12_weeks" ||
$timeFrame == "last_week"
) {
$label = "W" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"past_12_months"
) {
$label = "M" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"past_6_quarters"
) {
$label = "Q" . substr($code, 4, 2);
} elseif (
$timeFrame == "past_6_years"
) {
$label = "Y" . substr($code, 2, 2);
}
array_push($labels, $label);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
if ($bg != "all") {
foreach ($idList as $idVs) {
if (isset($dtInterval["bg"][$idVs])) {
$totalRequest +=
$dtInterval["bg"][$idVs][
"request"
];
$totalDeliver +=
$dtInterval["bg"][$idVs][
"deliver"
];
array_push(
$dataTable[$code],
$dtInterval["bg"][$idVs][
"actual"
]
);
array_push(
$dataChart[
$dtInterval["bg"][$idVs]["id"]
]["data"],
floatval(
$dtInterval["bg"][$idVs][
"actual"
]
)
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval(
$dtInterval["bg"][$idVs][
"target"
]
),
]);
} else {
$totalRequest += 0;
$totalDeliver += 0;
array_push($dataTable[$code], 0);
array_push(
$dataChart[$idVs]["data"],
floatval(0)
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval($targetSupplyAll),
]);
}
}
} else {
foreach ($dtInterval["bg"] as $dtBG) {
$totalRequest += $dtBG["request"];
$totalDeliver += $dtBG["deliver"];
array_push(
$dataTable[$code],
$dtBG["actual"]
);
array_push(
$dataChart[$dtBG["id"]]["data"],
floatval($dtBG["actual"])
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval($dtBG["target"]),
]);
}
}
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
".",
""
);
$data[$code]["all "][
"actual"
] = $totalActual;
$data[$code]["all "][
"deliver"
] = $totalDeliver;
$data[$code]["all "][
"request"
] = $totalRequest;
if ($bg == "all") {
array_push(
$dataChart[90]["data"],
floatval($totalActual)
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval($targetSupplyAll),
]);
} elseif ($vs == "all") {
array_push(
$dataChart[90]["data"],
floatval($totalActual)
);
array_push($dataChart[100]["data"], [
"x" => $label,
"y" => floatval($targetSupplyAll),
]);
}
$x++;
}
$dataChartReturn = [];
$dataChartReturn["labels"] = $labels;
$dataChartReturn["datasets"] = [];
foreach ($dataChart as $dtChart) {
array_push(
$dataChartReturn["datasets"],
$dtChart
);
}
$dataReturn = ["chart" => $dataChartReturn];
return $dataReturn;
}
public function getSummaryData()
{
$data = [];
for ($i = 12; $i > 0; $i--) {
$week = date(
"yW",
strtotime("-{$i} Weeks")
);
$data_item = [$week, 85, 86, 88, 87];
array_push($data, $data_item);
}
return $data;
}
public function getSelection()
{
$data =
"<div class="fl-left">
<div class="item-selection fl-left pd-l1">
<label for="timeframe" class="category">BG :</label>
<select name="" id="selection">
<option value="1">Last Week</option>\xa <option value="1">Last Month</option>
<option value="1">Last year</option>\xa </select>\xa </div>\xa <div class="item-selection fl-left pd-l1">
<label for="timeframe" class="category">Product Category :</label>
<select name="" id="selection">\xa <option value="1">Last Week</option>\xa <option value="1">Last Month</option>
<option value="1">Last year</option>
</select>
</div>
</div>";
return $data;
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use App\Models\ValueStream;
use App\Models\timeFrame;
class BusinessGroup extends Model
{
protected $table = "\x62\x75\163\151\156\145\x73\163\137\x67\x72\157\165\160\163";
public function getDataLayer1($timeFrame, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$selectQueryTimeFrame = $time_frame->getQueryLayer1($timeFrame);
$supply_center_id = $supplyCenter;
$records = DB::table(
"\x73\165\160\x70\x6c\x79\x5f\143\x65\x6e\x74\x65\x72\163\40\x61\x73\40\x73\x63"
)
->select(
DB::raw(
"\163\165\x6d\x28\x71\164\x79\137\162\145\x71\x75\x65\163\x74\x65\144\51\x20\141\x73\x20\x71\164\x79\137\x72\145\x71\165\x65\163\164\145\x64\x2c\40\12\40\x20\40\x20\40\40\x20\x20\40\40\163\x75\x6d\x28\x71\x74\x79\137\144\x65\154\151\166\145\x72\x65\x64\137\x6f\x6e\x74\151\155\145\x29\40\141\x73\x20\x71\164\171\137\144\x65\154\151\x76\x65\x72\145\144\137\157\156\164\x69\155\x65\54\40\12\40\40\40\x20\40\40\x20\x20\x20\x20\x73\x63\x2e\151\x64\54\x20\x73\x63\x2e\156\x61\x6d\x65\x2c\40\163\x63\x2e\164\x61\x72\147\x65\164"
)
)
->join(
"\x66\151\154\x6c\x5f\x72\141\164\145\x73\x20\141\163\x20\x66\162",
"\x73\x63\x2e\x69\x64",
"\75",
"\146\162\x2e\163\165\x70\x70\154\x79\x5f\x63\145\156\164\145\162\x5f\151\144"
)
->where("\163\x63\x2e\x69\x64", $supply_center_id)
->where($selectQueryTimeFrame)
->where(
"\146\x72\x2e\x63\x75\x73\x74\x6f\155\145\162\x5f\x6d\141\x70\160\x65\144",
"\x21\75",
"\101\x6d\141\x7a\x6f\x6e\56\143\x6f\155"
)
->groupBy(
"\x73\x63\56\151\144",
"\x73\143\56\x6e\141\155\145",
"\163\143\x2e\164\141\x72\147\x65\164"
)
->get();
foreach ($records as $key) {
$actual = number_format(
($key->qty_delivered_ontime / $key->qty_requested) * 100,
1,
"\x2e",
""
);
$class = "\147\162\145\x65\x6e";
if ($actual < $key->target) {
$class = "\x72\145\x64";
}
$dataItem = [
"\x69\x64" => $key->id,
"\156\x61\155\x65" => $key->name,
"\x74\x61\x72\147\x65\x74" => $key->target,
"\x61\x63\164\x75\141\x6c" => $actual,
"\x63\x6c\x61\163\163" => $class,
];
array_push($data, $dataItem);
}
return $data;
}
public function getDataLayer2($timeFrame, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$supply_center_id = $supplyCenter;
$query = DB::table(
"\x66\151\x6c\154\137\162\141\x74\145\163\40\141\163\x20\146\162"
);
if (
$timeFrame == "\x70\141\x73\164\x5f\61\x32\137\167\145\145\153\163"
) {
$query
->selectRaw(
"\x77\x65\x65\153\x20\101\123\x20\40\x63\157\144\145"
)
->whereRaw(
"\x77\x65\145\153\40\x3e\75\40\77\x20\141\x6e\144\40\167\145\x65\x6b\40\74\75\x20\77",
[
$time_range[
"\163\x74\141\162\x74\x5f\x71\x75\x65\162\x79"
],
$time_range["\x65\156\x64\137\161\x75\x65\162\171"],
]
)
->groupBy("\x77\145\145\x6b")
->orderBy("\143\157\144\145", "\141\163\143");
} elseif (
$timeFrame ==
"\160\x61\163\164\x5f\61\x32\137\x6d\x6f\x6e\164\150\x73"
) {
$query
->selectRaw(
"\x43\117\116\x43\101\x54\50\171\x65\x61\162\x2c\x20\40\155\157\x6e\164\150\x5f\156\x75\155\51\40\101\x53\x20\40\x63\157\x64\145"
)
->whereRaw(
"\103\x4f\116\x43\x41\x54\50\171\145\141\x72\54\x20\x20\155\157\x6e\164\x68\137\x6e\x75\x6d\x29\40\76\x3d\x20\77\40\x61\x6e\144\x20\x43\x4f\116\x43\x41\x54\50\x79\x65\141\162\54\40\x20\155\157\x6e\164\150\137\156\x75\x6d\x29\x20\x3c\75\x20\x3f",
[
$time_range[
"\x73\x74\x61\x72\164\x5f\161\165\145\162\x79"
],
$time_range["\x65\x6e\144\x5f\161\x75\x65\162\171"],
]
)
->groupBy(
"\x79\145\x61\x72",
"\x6d\157\156\164\x68\x5f\x6e\x75\155"
)
->orderBy("\171\x65\141\162", "\141\x73\x63")
->orderBy(
"\155\157\156\164\x68\137\156\x75\155",
"\141\x73\x63"
);
} elseif (
$timeFrame ==
"\160\141\x73\164\137\66\x5f\x71\x75\x61\162\164\145\162\x73"
) {
$query
->selectRaw(
"\103\x4f\x4e\x43\x41\x54\50\x79\145\x61\x72\54\40\x20\x71\165\x61\x72\x74\x65\x72\x29\40\x41\x53\40\x20\x63\157\144\x65"
)
->whereRaw(
"\103\117\116\103\101\x54\x28\171\145\x61\x72\x2c\x20\40\161\x75\x61\162\164\145\162\x29\x20\x3e\75\40\x3f\x20\141\156\x64\40\103\x4f\116\x43\101\x54\x28\171\145\141\x72\54\40\40\x71\165\141\x72\x74\145\x72\x29\x20\74\75\x20\77",
[
$time_range[
"\x73\x74\141\x72\x74\137\161\165\x65\162\x79"
],
$time_range["\145\x6e\144\137\161\165\145\x72\x79"],
]
)
->groupBy("\171\x65\x61\x72", "\161\165\x61\x72\x74\145\162")
->orderBy("\x79\145\141\162", "\141\163\x63")
->orderBy("\161\165\x61\x72\164\x65\162", "\x61\163\143");
} elseif (
$timeFrame == "\x70\141\x73\164\137\66\x5f\171\x65\141\162\163"
) {
$query
->selectRaw(
"\x79\x65\141\162\x20\x41\123\40\x20\x63\157\144\145"
)
->whereRaw(
"\x79\145\x61\x72\40\76\75\x20\x3f\40\x61\x6e\x64\40\x79\x65\x61\x72\x20\x3c\x3d\x20\77",
[
$time_range[
"\163\164\x61\x72\x74\137\x71\165\145\x72\171"
],
$time_range["\x65\x6e\144\137\161\x75\145\162\x79"],
]
)
->groupBy("\x79\145\x61\x72")
->orderBy("\171\145\141\162", "\x61\163\x63");
}
$query
->join(
"\x61\162\x74\151\x63\154\145\137\x67\x72\x6f\165\x70\163\40\141\x73\40\x61\147",
"\x61\147\56\151\x64",
"\x3d",
"\x66\162\56\x61\x72\164\151\143\x6c\145\x5f\x67\162\x6f\165\160\x5f\151\144"
)
->join(
"\x76\x61\154\165\x65\137\x73\x74\x72\x65\141\155\163\40\141\163\40\x76\163",
"\x76\x73\56\x69\144",
"\x3d",
"\x61\147\x2e\166\141\x6c\165\145\x5f\x73\164\162\x65\141\x6d\137\151\144"
)
->join(
"\x76\141\154\x75\145\137\x73\164\x72\145\x61\155\137\144\145\164\x61\151\x6c\x73\x20\x61\163\x20\166\163\144",
"\x76\163\x64\x2e\x76\x61\154\165\145\137\x73\164\162\145\141\x6d\137\151\x64",
"\75",
"\x76\163\56\x69\x64"
)
->join(
"\x62\x75\x73\x69\156\x65\163\163\x5f\x67\x72\157\x75\x70\163\40\141\x73\x20\x62\147",
"\x62\147\56\151\x64",
"\x3d",
"\166\163\x64\x2e\x62\165\x73\151\156\x65\163\x73\137\x67\x72\157\165\x70\x5f\x69\x64"
)
->where(
"\x62\x67\x2e\x73\x75\160\x70\154\x79\x5f\143\145\156\164\145\162\x5f\151\x64",
"\75",
$supply_center_id
)
->where(
"\146\162\56\143\x75\163\164\x6f\155\x65\x72\x5f\155\141\x70\160\145\144",
"\x21\x3d",
"\x41\155\141\x7a\157\156\56\x63\157\155"
)
->selectRaw(
"\163\x75\155\x28\x71\x74\x79\x5f\162\145\x71\165\145\163\x74\x65\x64\x29\40\x61\x73\x20\161\164\x79\x5f\162\x65\161\165\x65\163\x74\145\144\x2c\40\xa\40\x20\40\40\x20\x20\40\x20\40\40\x20\x20\163\x75\155\x28\x71\164\171\137\144\145\154\x69\166\x65\x72\x65\x64\x5f\157\156\164\x69\155\145\x29\40\141\x73\x20\161\x74\171\x5f\x64\x65\154\151\166\x65\162\145\x64\137\157\x6e\x74\x69\x6d\145\54\x20\12\x20\x20\x20\x20\40\40\40\40\40\40\x20\x20\x62\x67\56\151\144\54\40\142\x67\x2e\x74\141\162\147\145\x74"
)
->groupBy("\142\x67\56\151\144")
->groupBy("\142\147\56\x74\x61\162\x67\145\x74")
->orderBy("\x62\147\x2e\151\x64", "\x61\163\143");
$chartSetting = [];
$dtRecords = $query->get();
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$regionId = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
"\x2e",
""
);
$data[$code]["\143\x6f\x64\145"] = $code;
$data[$code]["\142\x67"][$regionId]["\151\144"] = $keyValue->id;
$data[$code]["\142\147"][$regionId][
"\x61\143\164\165\x61\154"
] = $actual;
$data[$code]["\x62\147"][$regionId][
"\144\x65\x6c\x69\166\145\x72"
] = $keyValue->qty_delivered_ontime;
$data[$code]["\x62\x67"][$regionId][
"\x72\145\x71\x75\145\x73\x74"
] = $keyValue->qty_requested;
$data[$code]["\142\147"][$regionId]["\x74\141\x72\147\x65\x74"] =
$keyValue->target;
}
$dataTable = [];
$dataChart = [];
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["\x6e\141\x6d\145"] = $dtBG->name;
$dataChart[$dtBG->id]["\x74\x79\x70\145"] =
"\x63\157\154\165\155\x6e";
$dataChart[$dtBG->id]["\x63\157\x6c\157\x72"] = $dtBG->color;
$dataChart[$dtBG->id][
"\x73\150\x6f\x77\111\x6e\x4c\x65\x67\x65\156\x64"
] = true;
$dataChart[$dtBG->id][
"\144\141\x74\x61\x50\157\151\156\x74\x73"
] = [];
$targetID = 20 + $dtBG->id;
$dataChart[$targetID]["\x74\x79\x70\145"] =
"\163\x63\x61\164\x74\145\162";
$dataChart[$targetID]["\x63\157\x6c\x6f\162"] =
"\171\145\154\154\x6f\x77";
$dataChart[$targetID]["\x6d\141\162\153\145\162\x54\171\160\x65"] =
"\x63\x69\x72\x63\154\x65";
$dataChart[$targetID][
"\x6d\x61\x72\153\145\162\x43\x6f\154\157\x72"
] = "\x79\x65\154\x6c\x6f\x77";
$dataChart[$targetID][
"\x64\x61\x74\x61\120\x6f\151\156\x74\x73"
] = [];
}
$dtSupply = DB::table(
"\x73\165\160\160\154\171\x5f\143\145\156\x74\145\162\x73"
)
->orderBY("\151\144", "\x41\123\103")
->where("\151\144", "\75", "\x31")
->get();
$targetSupply = $dtSupply[0]->target;
$dataChart[90]["\x6e\141\x6d\x65"] = "\x61\x6c\x6c";
$dataChart[90]["\x74\x79\x70\145"] = "\x63\157\x6c\165\x6d\156";
$dataChart[90]["\143\x6f\154\x6f\162"] = "\43\106\x46\105\x43\x43\103";
$dataChart[90][
"\x73\150\x6f\167\111\x6e\114\145\x67\145\x6e\144"
] = true;
$dataChart[90]["\x64\x61\164\141\x50\157\x69\x6e\x74\163"] = [];
$dataChart[100]["\x74\x79\x70\145"] = "\163\x63\141\164\164\145\162";
$dataChart[100]["\143\x6f\154\x6f\x72"] = "\x79\145\154\154\157\x77";
$dataChart[100]["\155\x61\162\x6b\x65\x72\124\x79\160\145"] =
"\x63\x69\x72\143\154\145";
$dataChart[100]["\x6d\x61\162\x6b\145\x72\103\157\x6c\157\x72"] =
"\x79\145\x6c\x6c\x6f\x77";
$dataChart[100]["\144\x61\164\141\x50\x6f\151\156\164\163"] = [];
$numberChart = $bgList->count() + 2;
$chartSetting["\151\156\x74\145\162\166\x61\154"] = $numberChart;
$xPosition = $numberChart;
$allPosition = (1.05 * $numberChart) / 2 - 1;
$x = 0;
foreach ($data as $dtInterval) {
$code = $dtInterval["\x63\157\x64\145"];
if (
$timeFrame ==
"\x70\x61\163\164\137\61\62\137\167\x65\145\153\x73"
) {
$label = "\x57" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"\160\x61\x73\x74\x5f\x31\x32\137\x6d\157\x6e\x74\x68\x73"
) {
$label = "\115" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"\x70\x61\163\164\x5f\66\137\161\x75\x61\162\x74\x65\x72\x73"
) {
$label = "\121" . substr($code, 4, 2);
} elseif (
$timeFrame == "\160\x61\x73\164\x5f\66\137\x79\145\x61\x72\x73"
) {
$label = "\131" . substr($code, 2, 2);
}
$xItem = $x * $numberChart + $xPosition;
$xAll = $xItem + $allPosition;
array_push(
$dataChart[100]["\x64\x61\x74\141\120\x6f\151\x6e\164\x73"],
[
"\170" => $xAll,
"\171" => floatval($targetSupply),
"\x6c\141\142\x65\154" => $label,
]
);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
$pointStart = $xAll - $numberChart + 2;
foreach ($dtInterval["\142\147"] as $dtBG) {
$totalRequest += $dtBG["\x72\145\x71\165\145\163\x74"];
$totalDeliver += $dtBG["\144\145\x6c\x69\166\145\x72"];
array_push(
$dataTable[$code],
$dtBG["\141\x63\164\165\141\154"]
);
array_push(
$dataChart[$dtBG["\x69\144"]][
"\x64\141\164\x61\120\x6f\151\x6e\x74\x73"
],
[
"\170" => $xItem,
"\171" => floatval($dtBG["\x61\143\164\x75\x61\x6c"]),
"\154\141\x62\145\x6c" => $label,
]
);
$targetID = 20 + $dtBG["\151\x64"];
array_push(
$dataChart[$targetID][
"\144\x61\x74\x61\x50\x6f\x69\x6e\164\x73"
],
[
"\x78" => $pointStart,
"\171" => floatval($dtBG["\164\x61\162\147\x65\164"]),
]
);
$pointStart += 1;
}
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
"\56",
""
);
array_push(
$dataChart[90]["\x64\x61\x74\x61\x50\157\x69\x6e\164\x73"],
[
"\x78" => $xItem,
"\x79" => floatval($totalActual),
"\154\x61\142\145\154" => $label,
]
);
$data[$code]["\x61\154\x6c\x20"][
"\x61\143\164\x75\x61\x6c"
] = $totalActual;
$data[$code]["\141\x6c\x6c\x20"][
"\x64\x65\154\x69\x76\145\162"
] = $totalDeliver;
$data[$code]["\x61\x6c\154\40"][
"\x72\x65\161\165\145\163\164"
] = $totalRequest;
array_push($dataTable[$code], $totalActual);
$x++;
}
$numberDataPointChart = count(
$dataChart[100]["\x64\141\x74\x61\120\x6f\151\156\164\163"]
);
$dataChartReturn = [];
foreach ($dataChart as $dtChart) {
array_push($dataChartReturn, $dtChart);
}
$dataReturn = [
"\164\x61\x62\x6c\x65" => array_reverse($dataTable),
"\143\150\x61\162\164" => $dataChartReturn,
"\143\150\x61\162\164\x53\145\x74\x74\x69\156\x67" => $chartSetting,
];
return $dataReturn;
}
public function getDataLayer2Chartjs($timeFrame, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$supply_center_id = $supplyCenter;
$query = DB::table(
"\x66\151\154\x6c\137\x72\x61\x74\145\x73\x20\x61\163\x20\x66\162"
);
if (
$timeFrame == "\160\141\x73\164\137\61\x32\137\x77\145\x65\x6b\163"
) {
$query
->selectRaw(
"\167\x65\145\153\40\x41\123\x20\40\x63\157\x64\145"
)
->whereRaw(
"\167\145\x65\153\40\76\75\x20\77\x20\141\x6e\144\40\167\x65\145\x6b\x20\x3c\x3d\40\x3f",
[
$time_range[
"\x73\x74\x61\x72\164\x5f\x71\x75\145\162\x79"
],
$time_range["\145\156\144\x5f\x71\165\x65\x72\171"],
]
)
->groupBy("\x77\x65\x65\x6b")
->orderBy("\143\x6f\144\x65", "\141\163\143");
} elseif (
$timeFrame ==
"\x70\141\163\x74\x5f\x31\62\137\155\x6f\156\164\150\163"
) {
$query
->selectRaw(
"\x43\x4f\116\x43\101\124\x28\x79\x65\x61\162\54\40\40\x6d\x6f\156\x74\x68\137\x6e\x75\x6d\x29\x20\x41\x53\40\40\x63\157\144\145"
)
->whereRaw(
"\103\117\x4e\103\x41\124\50\x79\145\141\x72\x2c\40\x20\x6d\157\156\x74\150\x5f\156\165\x6d\51\40\x3e\x3d\x20\77\40\x61\x6e\x64\x20\103\117\x4e\103\101\x54\50\x79\145\141\x72\54\40\40\x6d\x6f\156\x74\x68\137\x6e\165\155\x29\x20\x3c\x3d\40\77",
[
$time_range[
"\163\x74\x61\162\x74\x5f\x71\x75\x65\x72\171"
],
$time_range["\x65\156\x64\137\161\x75\145\162\x79"],
]
)
->groupBy(
"\x79\145\141\162",
"\155\x6f\156\x74\150\x5f\x6e\x75\155"
)
->orderBy("\x79\x65\x61\x72", "\141\x73\143")
->orderBy(
"\155\157\156\x74\150\137\156\165\155",
"\x61\x73\143"
);
} elseif (
$timeFrame ==
"\160\141\163\164\137\66\x5f\x71\x75\x61\x72\x74\145\162\163"
) {
$query
->selectRaw(
"\x43\x4f\x4e\103\101\x54\50\x79\x65\141\x72\x2c\40\x20\x71\x75\x61\x72\164\x65\162\51\x20\x41\123\40\x20\x63\x6f\x64\x65"
)
->whereRaw(
"\103\117\x4e\x43\x41\x54\50\x79\145\141\x72\54\x20\40\161\165\141\x72\164\145\x72\x29\40\x3e\75\x20\77\40\x61\x6e\x64\x20\103\117\116\x43\101\x54\50\171\x65\x61\x72\x2c\40\x20\x71\165\x61\x72\164\x65\162\x29\x20\74\x3d\40\x3f",
[
$time_range[
"\x73\x74\141\162\x74\137\161\165\x65\162\171"
],
$time_range["\x65\x6e\144\137\x71\x75\x65\x72\171"],
]
)
->groupBy("\171\x65\x61\x72", "\x71\165\141\162\x74\x65\162")
->orderBy("\x79\x65\141\x72", "\x61\x73\143")
->orderBy("\161\x75\141\x72\164\x65\x72", "\x61\x73\143");
} elseif (
$timeFrame == "\160\x61\x73\164\x5f\x36\x5f\x79\145\x61\x72\x73"
) {
$query
->selectRaw(
"\x79\145\141\162\40\x41\x53\x20\40\143\x6f\x64\x65"
)
->whereRaw(
"\171\145\141\162\x20\76\x3d\40\x3f\40\x61\156\144\40\x79\145\x61\x72\40\74\75\40\77",
[
$time_range[
"\x73\164\x61\162\164\x5f\x71\165\145\162\x79"
],
$time_range["\145\156\x64\x5f\x71\x75\145\x72\171"],
]
)
->groupBy("\171\x65\141\x72")
->orderBy("\171\x65\x61\162", "\141\163\x63");
}
$query
->join(
"\x61\162\164\x69\143\154\145\137\x67\x72\x6f\165\x70\163\40\141\x73\40\x61\147",
"\x61\x67\56\x69\x64",
"\x3d",
"\x66\x72\56\x61\x72\164\151\x63\154\x65\137\147\162\157\x75\x70\137\x69\144"
)
->join(
"\x76\x61\154\x75\x65\137\x73\164\162\145\x61\x6d\163\x20\x61\x73\x20\166\163",
"\x76\x73\56\x69\144",
"\x3d",
"\141\147\x2e\166\141\154\165\145\x5f\x73\164\x72\145\141\x6d\137\151\x64"
)
->join(
"\x76\141\x6c\x75\145\137\x73\164\x72\145\x61\155\137\x64\145\164\141\151\x6c\163\x20\x61\x73\x20\x76\163\x64",
"\166\163\144\56\166\x61\x6c\165\145\137\163\164\162\x65\141\x6d\137\151\144",
"\x3d",
"\x76\x73\56\x69\144"
)
->join(
"\142\165\163\151\156\x65\163\163\137\x67\162\x6f\165\x70\163\x20\x61\x73\x20\142\147",
"\142\147\56\151\x64",
"\x3d",
"\x76\163\x64\56\142\165\163\x69\x6e\x65\x73\x73\137\x67\x72\157\x75\160\x5f\151\x64"
)
->where(
"\x62\147\56\x73\165\160\x70\154\171\137\143\145\x6e\x74\145\162\137\151\144",
"\x3d",
$supply_center_id
)
->where(
"\146\x72\x2e\143\x75\x73\164\157\155\x65\x72\137\x6d\x61\x70\160\145\x64",
"\41\75",
"\x41\x6d\x61\172\157\x6e\x2e\x63\157\x6d"
)
->selectRaw(
"\163\x75\155\x28\161\164\171\x5f\x72\145\161\x75\145\163\x74\x65\144\51\x20\x61\x73\40\x71\164\171\x5f\x72\x65\x71\x75\145\163\x74\x65\144\54\40\12\x20\x20\40\40\40\40\40\x20\x20\x20\x20\40\163\x75\155\x28\161\x74\x79\137\x64\145\154\x69\x76\x65\x72\145\x64\137\157\156\x74\151\x6d\x65\51\40\141\163\40\x71\x74\171\137\144\x65\x6c\x69\166\145\x72\145\x64\x5f\x6f\x6e\164\151\x6d\x65\54\x20\12\x20\x20\40\x20\40\x20\40\x20\x20\40\40\x20\x62\x67\56\x69\x64\x2c\40\142\x67\x2e\164\141\162\x67\145\164"
)
->groupBy("\142\147\56\x69\x64")
->groupBy("\142\147\x2e\x74\141\x72\147\x65\x74")
->orderBy("\x62\x67\56\x69\x64", "\x61\x73\x63");
$chartSetting = [];
$dtRecords = $query->get();
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$bgId = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
"\56",
""
);
$data[$code]["\143\x6f\144\x65"] = $code;
$data[$code]["\x62\147"][$bgId]["\151\x64"] = $keyValue->id;
$data[$code]["\142\x67"][$bgId][
"\x61\143\x74\165\x61\x6c"
] = $actual;
$data[$code]["\142\147"][$bgId]["\x64\145\x6c\151\166\x65\162"] =
$keyValue->qty_delivered_ontime;
$data[$code]["\x62\x67"][$bgId]["\x72\145\161\165\x65\x73\x74"] =
$keyValue->qty_requested;
$data[$code]["\x62\x67"][$bgId]["\164\x61\162\x67\x65\164"] =
$keyValue->target;
}
$dataTable = [];
$dataChart = [];
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["\x6f\x72\x64\x65\162"] = 1;
$dataChart[$dtBG->id]["\154\141\142\145\154"] = $dtBG->name;
$dataChart[$dtBG->id]["\x74\171\x70\145"] = "\142\141\x72";
$dataChart[$dtBG->id][
"\x62\x61\143\153\147\162\x6f\165\x6e\x64\x43\x6f\154\157\x72"
] = $dtBG->color;
$dataChart[$dtBG->id][
"\x62\157\x72\x64\145\162\x57\x69\144\x74\x68"
] = 1;
$dataChart[$dtBG->id]["\x64\x61\x74\141"] = [];
}
$dtSupply = DB::table(
"\163\x75\160\x70\154\171\137\143\x65\x6e\164\145\162\163"
)
->orderBY("\x69\x64", "\101\x53\x43")
->where("\151\144", "\75", "\61")
->get();
$targetSupply = $dtSupply[0]->target;
$dataChart[90]["\157\162\x64\145\162"] = 1;
$dataChart[90]["\x6c\141\142\145\x6c"] = "\x41\154\154";
$dataChart[90]["\164\171\x70\145"] = "\x62\x61\162";
$dataChart[90][
"\142\141\143\153\x67\x72\x6f\x75\x6e\144\103\157\154\157\162"
] = "\43\x46\106\105\103\x43\x43";
$dataChart[90]["\x62\x6f\x72\144\145\162\127\x69\x64\x74\x68"] = 1;
$dataChart[90]["\144\x61\164\141"] = [];
$dataChart[100]["\157\x72\x64\145\x72"] = 0;
$dataChart[100]["\154\141\x62\x65\x6c"] = "\124\x61\162\147\x65\164";
$dataChart[100]["\164\x79\x70\x65"] = "\x73\143\141\x74\164\x65\x72";
$dataChart[100]["\x70\157\x69\x6e\164\122\141\144\151\x75\x73"] = 4;
$dataChart[100][
"\x62\x61\143\153\147\x72\x6f\x75\156\x64\x43\157\x6c\x6f\162"
] = "\171\x65\x6c\x6c\x6f\167";
$dataChart[100]["\x62\157\162\144\145\162\x57\x69\144\x74\x68"] = 1;
$dataChart[100]["\x64\x61\x74\x61"] = [];
$labels = [];
$x = 0;
foreach ($data as $dtInterval) {
$code = $dtInterval["\143\x6f\144\x65"];
if (
$timeFrame ==
"\160\141\163\164\x5f\x31\x32\137\167\x65\x65\x6b\163"
) {
$label = "\x57" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"\160\141\x73\x74\137\61\x32\137\x6d\157\156\x74\150\x73"
) {
$label = "\115" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"\x70\141\163\x74\137\66\x5f\161\165\141\x72\x74\145\x72\163"
) {
$label = "\x51" . substr($code, 4, 2);
} elseif (
$timeFrame == "\160\141\x73\164\137\x36\x5f\x79\145\x61\162\x73"
) {
$label = "\131" . substr($code, 2, 2);
}
array_push($labels, $label);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
foreach ($dtInterval["\x62\147"] as $dtBG) {
$totalRequest += $dtBG["\x72\145\161\165\145\x73\x74"];
$totalDeliver += $dtBG["\144\x65\154\151\x76\x65\x72"];
$classBGStatus = "";
if (
$dtBG["\x61\x63\x74\165\x61\x6c"] <
$dtBG["\x74\141\x72\147\145\164"]
) {
$classBGStatus = "\x72\145\144";
}
$dtBGtable = [
"\x61\143\x74\x75\141\154" =>
$dtBG["\141\143\x74\x75\141\154"],
"\x74\x61\x72\147\x65\164" =>
$dtBG["\x74\141\162\x67\145\164"],
"\143\154\x61\163\x73" => $classBGStatus,
];
array_push($dataTable[$code], $dtBGtable);
array_push(
$dataChart[$dtBG["\151\144"]]["\144\141\164\x61"],
floatval($dtBG["\141\143\x74\x75\x61\x6c"])
);
array_push($dataChart[100]["\x64\x61\x74\x61"], [
"\170" => $label,
"\171" => floatval($dtBG["\164\141\162\x67\x65\164"]),
]);
}
array_push($dataChart[100]["\x64\141\164\141"], [
"\x78" => $label,
"\x79" => floatval($targetSupply),
]);
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
"\56",
""
);
array_push(
$dataChart[90]["\x64\x61\164\x61"],
floatval($totalActual)
);
$classBGStatus = "";
if ($totalActual < $targetSupply) {
$classBGStatus = "\x72\x65\x64";
}
$dtBGtable = [
"\141\143\164\165\141\x6c" => $totalActual,
"\164\x61\162\x67\145\164" => $targetSupply,
"\143\x6c\141\163\163" => $classBGStatus,
];
$data[$code]["\x61\154\154\x20"][
"\x61\143\x74\165\141\x6c"
] = $totalActual;
$data[$code]["\x61\154\154\40"][
"\144\145\x6c\x69\166\x65\x72"
] = $totalDeliver;
$data[$code]["\141\x6c\x6c\40"][
"\x72\145\161\165\145\163\x74"
] = $totalRequest;
array_push($dataTable[$code], $dtBGtable);
$x++;
}
$dataChartReturn = [];
$dataChartReturn["\154\141\142\145\x6c\163"] = $labels;
$dataChartReturn["\144\x61\164\141\x73\x65\x74\163"] = [];
foreach ($dataChart as $dtChart) {
array_push(
$dataChartReturn["\x64\141\x74\x61\163\145\x74\x73"],
$dtChart
);
}
$dataReturn = [
"\x74\141\x62\154\145" => array_reverse($dataTable),
"\143\150\141\x72\x74" => $dataChartReturn,
];
return $dataReturn;
}
public function getBGList($supplyCenter)
{
$supply_center_id = $supplyCenter;
$dtRecords = DB::table(
"\x62\x75\x73\x69\x6e\x65\x73\163\137\x67\162\157\x75\x70\x73"
)
->where(
"\x73\165\160\x70\x6c\171\137\x63\145\x6e\164\x65\x72\x5f\x69\144",
$supply_center_id
)
->orderBY("\x69\144", "\x41\123\103")
->get();
return $dtRecords;
}
public function getHeaderlayer2($timeFrame, $supplyCenter)
{
$supply_center_id = $supplyCenter;
if (
$timeFrame == "\160\x61\x73\164\x5f\x31\62\137\167\x65\x65\153\163"
) {
$header = ["\127\x45\x45\x4b"];
} elseif (
$timeFrame ==
"\x70\x61\163\x74\x5f\x31\62\137\x6d\x6f\x6e\164\150\163"
) {
$header = ["\x4d\x4f\x4e\124\110"];
} elseif (
$timeFrame ==
"\160\141\163\x74\137\x36\x5f\161\165\141\x72\164\145\162\163"
) {
$header = ["\x51\125\x41\122\x54\105\x52"];
} elseif (
$timeFrame == "\160\x61\163\x74\137\66\x5f\x79\x65\141\x72\x73"
) {
$header = ["\131\x45\x41\x52"];
}
$dtRecords = DB::table(
"\x62\165\163\x69\156\x65\x73\x73\x5f\x67\162\x6f\165\160\x73"
)
->where(
"\163\x75\x70\x70\x6c\x79\137\x63\145\x6e\164\145\162\x5f\151\x64",
$supply_center_id
)
->orderBY("\151\x64", "\x41\x53\x43")
->get();
foreach ($dtRecords as $key) {
array_push($header, strtoupper($key->name));
}
array_push($header, "\101\x4c\x4c");
return $header;
}
public function getFilterLayer3($bgID, $vsID, $supplyCenter)
{
$bgSelection = "";
if ($bgID == "\x61\154\154") {
$bgSelection = "\163\145\154\x65\x63\164\145\144";
}
$vsSelection = "";
if ($vsID == "\x61\154\x6c") {
$vsSelection = "\x73\145\x6c\145\143\x74\145\144";
}
$data = [
[
"\x69\144" => "\x62\x67",
"\x6e\x61\155\145" =>
"\x42\165\163\x69\x6e\x65\x73\x73\40\107\162\157\165\160",
"\x76\x61\x6c\165\x65" => [
[
"\151\x64" => "\141\154\x6c",
"\156\x61\x6d\x65" => "\x41\x6c\x6c",
"\x73\x65\154\145\143\x74\x65\x64" => $bgSelection,
],
],
],
[
"\x69\144" => "\166\163",
"\156\141\x6d\x65" =>
"\126\x61\x6c\165\145\x20\x53\x74\162\145\141\155",
"\x76\141\x6c\165\x65" => [
[
"\151\x64" => "\x61\x6c\x6c",
"\156\x61\155\x65" => "\101\154\x6c",
"\x73\145\154\x65\x63\164\145\144" => $vsSelection,
],
],
],
];
$supply_center_id = $supplyCenter;
$dtBGs = DB::table(
"\x62\165\163\x69\156\x65\163\x73\137\x67\x72\157\x75\160\163"
)
->where(
"\x73\x75\160\x70\x6c\171\137\x63\145\156\164\145\162\137\x69\x64",
$supply_center_id
)
->orderBY("\x69\x64", "\x41\123\x43")
->get();
foreach ($dtBGs as $dtBG) {
$bgSelection = "";
if ($bgID == $dtBG->id) {
$bgSelection = "\x73\x65\x6c\145\x63\164\145\144";
}
array_push($data[0]["\166\141\154\165\x65"], [
"\x69\x64" => $dtBG->id,
"\156\x61\155\x65" => $dtBG->name,
"\163\145\x6c\145\143\x74\145\x64" => $bgSelection,
]);
}
if ($bgID != "\141\154\154") {
$dtVSs = DB::table(
"\x76\141\x6c\165\145\x5f\x73\x74\x72\145\x61\x6d\163\40\141\x73\x20\x76\163"
)
->join(
"\166\x61\154\165\145\x5f\x73\x74\162\145\141\x6d\137\144\145\x74\x61\151\x6c\x73\40\141\163\x20\166\163\144",
"\x76\x73\144\x2e\166\x61\154\165\145\x5f\x73\x74\x72\145\x61\155\x5f\x69\x64",
"\x3d",
"\x76\163\56\x69\144"
)
->selectRaw(
"\166\163\56\151\144\54\40\x76\x73\x2e\x6e\x61\x6d\x65\54\40\166\163\x64\56\142\165\163\x69\156\x65\163\163\x5f\147\x72\157\165\x70\x5f\x69\144"
)
->where(
"\x76\x73\x64\x2e\142\165\163\151\156\x65\163\x73\x5f\x67\162\x6f\x75\x70\137\151\144",
"\x3d",
$bgID
)
->orderBY("\x76\163\56\x69\144", "\x41\123\103")
->get();
foreach ($dtVSs as $dtVS) {
$vsSelection = "";
if ($vsID == $dtVS->id) {
$vsSelection = "\x73\145\x6c\x65\x63\x74\x65\x64";
}
array_push($data[1]["\166\x61\154\x75\x65"], [
"\x69\x64" => $dtVS->id,
"\156\x61\155\x65" => $dtVS->name,
"\163\x65\154\x65\x63\x74\145\x64" => $vsSelection,
]);
}
}
return $data;
}
public function getDataLayer3($timeFrame, $bg, $vs, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$query = DB::table(
"\x66\x69\154\154\x5f\162\141\x74\145\x73\x20\141\163\40\146\x72"
);
$supply_center_id = $supplyCenter;
if (
$timeFrame ==
"\160\x61\163\x74\x5f\61\x32\x5f\x77\145\145\x6b\x73" ||
$timeFrame == "\154\141\x73\x74\x5f\167\145\145\153"
) {
$query
->selectRaw(
"\167\145\145\x6b\x20\101\x53\40\x20\x63\157\144\x65"
)
->whereRaw(
"\167\x65\145\x6b\x20\x3e\75\x20\77\x20\x61\x6e\144\40\167\x65\x65\153\40\74\75\40\x3f",
[
$time_range[
"\163\x74\x61\162\x74\x5f\161\165\145\162\171"
],
$time_range["\145\156\144\137\161\165\x65\x72\x79"],
]
)
->groupBy("\167\145\145\x6b")
->orderBy("\167\x65\145\x6b", "\x61\x73\x63");
} elseif (
$timeFrame ==
"\x70\141\x73\x74\137\x31\x32\137\155\x6f\156\164\x68\163"
) {
$query
->selectRaw(
"\x43\x4f\x4e\x43\101\x54\50\171\145\x61\162\54\40\x20\155\x6f\156\x74\150\x5f\156\x75\155\x29\x20\x41\123\x20\40\x63\157\144\145"
)
->whereRaw(
"\103\117\x4e\103\x41\124\50\171\145\x61\x72\x2c\x20\40\155\157\156\x74\x68\137\x6e\165\x6d\51\x20\76\75\x20\x3f\40\141\156\144\x20\103\117\116\x43\101\x54\50\171\x65\x61\162\x2c\x20\40\155\157\x6e\164\x68\x5f\156\165\155\x29\x20\74\x3d\40\x3f",
[
$time_range[
"\163\164\141\162\x74\137\161\165\x65\162\171"
],
$time_range["\145\156\144\x5f\x71\165\145\162\171"],
]
)
->groupBy(
"\171\145\x61\x72",
"\155\157\x6e\164\x68\x5f\156\x75\155"
)
->orderBy("\x79\145\x61\x72", "\141\x73\x63")
->orderBy(
"\x6d\x6f\156\164\x68\137\156\x75\x6d",
"\141\163\x63"
);
} elseif (
$timeFrame ==
"\160\141\163\164\x5f\x36\137\161\x75\141\x72\x74\x65\x72\x73"
) {
$query
->selectRaw(
"\x43\117\116\x43\101\x54\50\x79\145\x61\162\54\x20\x20\161\x75\x61\162\x74\145\x72\x29\x20\x41\x53\40\40\143\157\144\x65"
)
->whereRaw(
"\103\x4f\116\x43\101\124\x28\171\x65\141\x72\x2c\40\x20\x71\165\141\x72\x74\145\x72\51\40\x3e\75\40\x3f\x20\x61\x6e\144\x20\x43\117\116\103\101\x54\50\171\145\x61\x72\54\40\40\x71\x75\141\162\164\x65\162\51\x20\x3c\x3d\x20\x3f",
[
$time_range[
"\163\x74\141\x72\x74\x5f\161\x75\x65\162\x79"
],
$time_range["\x65\x6e\144\x5f\161\165\145\x72\x79"],
]
)
->groupBy("\x79\x65\x61\162", "\x71\165\x61\162\x74\145\x72")
->orderBy("\x79\x65\x61\x72", "\141\163\x63")
->orderBy("\161\x75\x61\x72\x74\x65\x72", "\x61\163\143");
} elseif (
$timeFrame == "\x70\141\x73\x74\x5f\x36\x5f\171\145\x61\x72\163"
) {
$query
->selectRaw(
"\171\x65\x61\162\40\101\123\x20\40\x63\157\x64\145"
)
->whereRaw(
"\x79\145\x61\162\x20\x3e\75\40\x3f\40\141\156\x64\40\x79\145\141\x72\40\74\x3d\40\x3f",
[
$time_range[
"\163\164\141\162\164\137\161\165\x65\x72\x79"
],
$time_range["\145\156\x64\x5f\x71\x75\x65\x72\171"],
]
)
->groupBy("\x79\145\141\162")
->orderBy("\171\145\x61\x72", "\141\163\x63");
}
if ($bg != "\x61\154\x6c") {
$query
->where("\142\x67\x2e\x69\144", "\x3d", $bg)
->selectRaw("\166\163\56\151\144")
->groupBy("\x76\x73\x2e\x69\x64")
->orderBy("\x76\x73\x2e\x69\144", "\x61\163\x63");
} else {
$query
->selectRaw("\x62\147\x2e\151\144")
->groupBy("\x62\147\x2e\151\x64")
->orderBy("\x62\147\56\151\x64", "\x61\x73\143");
}
if ($vs != "\141\x6c\x6c") {
$query->where("\x76\163\x2e\151\144", "\x3d", $vs);
}
$query
->join(
"\x61\x72\164\x69\x63\x6c\145\x5f\x67\x72\157\x75\160\163\40\x61\163\x20\x61\x67",
"\x61\x67\56\x69\x64",
"\75",
"\146\162\56\141\162\164\151\x63\x6c\145\x5f\147\162\157\x75\x70\x5f\x69\144"
)
->join(
"\x76\141\154\x75\x65\137\x73\x74\162\x65\141\155\x73\40\x61\163\x20\x76\163",
"\x76\x73\x2e\151\144",
"\x3d",
"\x61\147\56\x76\x61\x6c\x75\145\137\x73\x74\x72\x65\141\155\x5f\x69\144"
)
->join(
"\x76\141\154\165\145\x5f\163\164\x72\145\x61\x6d\137\x64\145\x74\141\x69\x6c\163\x20\x61\x73\x20\166\163\x64",
"\x76\163\x64\56\x76\141\x6c\x75\145\x5f\163\x74\x72\145\141\x6d\137\x69\x64",
"\75",
"\x76\x73\56\x69\x64"
)
->join(
"\142\x75\163\151\x6e\145\x73\x73\137\147\x72\157\165\x70\x73\40\141\x73\x20\x62\x67",
"\142\x67\56\151\144",
"\75",
"\x76\163\x64\x2e\x62\x75\163\x69\x6e\x65\163\163\137\147\x72\x6f\x75\160\137\151\x64"
)
->where(
"\x62\x67\x2e\x73\x75\x70\160\154\171\137\x63\x65\x6e\x74\x65\162\137\151\x64",
"\75",
$supply_center_id
)
->where(
"\146\x72\x2e\x63\165\163\164\x6f\x6d\x65\x72\137\x6d\141\x70\160\145\144",
"\x21\75",
"\101\x6d\x61\x7a\x6f\156\x2e\143\157\155"
)
->selectRaw(
"\163\165\155\50\161\x74\x79\137\162\145\161\x75\145\x73\x74\x65\x64\51\x20\x61\x73\x20\x71\x74\x79\137\x72\x65\161\x75\x65\163\x74\x65\144\x2c\x20\xa\40\x20\x20\40\40\x20\x20\40\40\40\40\40\163\x75\x6d\50\x71\164\171\137\x64\145\154\x69\166\145\x72\x65\144\x5f\x6f\156\x74\151\155\145\51\x20\141\163\40\161\x74\171\x5f\x64\x65\154\151\166\x65\162\x65\x64\137\157\x6e\x74\151\x6d\145"
);
$dtRecords = $query->get();
$idListKey = [];
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$id = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
"\56",
""
);
$data[$code]["\143\157\144\145"] = $code;
$data[$code]["\x62\147"][$id]["\x69\144"] = $id;
$data[$code]["\x62\x67"][$id]["\x61\143\164\x75\141\154"] = $actual;
$data[$code]["\x62\x67"][$id]["\144\x65\154\x69\x76\145\162"] =
$keyValue->qty_delivered_ontime;
$data[$code]["\142\147"][$id]["\162\145\x71\x75\145\163\x74"] =
$keyValue->qty_requested;
$idListKey[$id] = $id;
}
$idList = [];
foreach ($idListKey as $key => $value) {
array_push($idList, $value);
}
$dataChart = [];
if ($bg == "\141\x6c\x6c") {
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["\x6e\141\155\x65"] = $dtBG->name;
$dataChart[$dtBG->id]["\164\x79\x70\x65"] =
"\143\x6f\x6c\x75\x6d\x6e";
$dataChart[$dtBG->id]["\143\157\154\x6f\162"] = $dtBG->color;
$dataChart[$dtBG->id][
"\163\x68\157\x77\111\156\x4c\145\x67\x65\x6e\x64"
] = true;
$dataChart[$dtBG->id][
"\x64\141\164\141\120\x6f\151\x6e\164\163"
] = [];
}
} else {
$queryVS = DB::table(
"\x76\141\x6c\x75\x65\137\163\x74\x72\145\x61\x6d\163"
)->whereIn("\x69\144", $idList);
$vsList = $queryVS->get();
foreach ($vsList as $dtBG) {
$dataChart[$dtBG->id]["\x6e\141\155\x65"] = $dtBG->name;
$dataChart[$dtBG->id]["\x74\x79\160\x65"] =
"\143\x6f\154\x75\x6d\156";
$dataChart[$dtBG->id]["\143\x6f\x6c\x6f\x72"] = $dtBG->color;
$dataChart[$dtBG->id][
"\x73\x68\x6f\x77\x49\156\x4c\145\147\x65\156\x64"
] = true;
$dataChart[$dtBG->id][
"\x64\141\x74\x61\120\x6f\151\156\164\163"
] = [];
}
}
if ($bg == "\141\154\x6c") {
$dtTarget = DB::table(
"\x73\x75\160\160\x6c\171\x5f\x63\x65\156\x74\x65\x72\163"
)
->orderBY("\x69\144", "\101\123\103")
->where("\x69\144", "\x3d", "\61")
->get();
} else {
$dtTarget = DB::table(
"\x62\x75\163\x69\x6e\145\163\163\x5f\147\162\x6f\x75\160\x73"
)
->orderBY("\x69\x64", "\x41\123\103")
->where("\x69\144", "\75", $bg)
->get();
}
$targetSupply = $dtTarget[0]->target;
if ($bg == "\x61\x6c\x6c") {
$dataChart[90]["\x6e\141\x6d\145"] = "\141\x6c\154";
$dataChart[90]["\x74\171\x70\145"] = "\x63\x6f\x6c\x75\155\x6e";
$dataChart[90]["\x63\x6f\154\157\x72"] =
"\x23\106\x46\105\x43\x43\x43";
$dataChart[90][
"\163\x68\157\x77\x49\156\114\x65\147\x65\x6e\144"
] = true;
$dataChart[90]["\x64\141\164\x61\120\157\151\156\x74\163"] = [];
} elseif ($vs == "\141\x6c\154") {
$dataChart[90]["\x6e\141\155\145"] = "\141\154\x6c";
$dataChart[90]["\x74\171\160\145"] = "\143\x6f\154\x75\155\156";
$dataChart[90]["\143\157\154\x6f\162"] =
"\x23\x46\x46\x45\103\x43\x43";
$dataChart[90][
"\x73\x68\x6f\x77\111\156\114\145\x67\145\156\x64"
] = true;
$dataChart[90]["\x64\141\164\141\120\x6f\x69\x6e\164\x73"] = [];
}
$dataChart[100]["\x74\171\x70\x65"] = "\154\151\156\x65";
$dataChart[100]["\x63\x6f\x6c\x6f\x72"] = "\171\x65\x6c\154\x6f\167";
$dataChart[100]["\x6d\141\162\153\145\162\x54\171\160\x65"] =
"\x6e\157\156\145";
$dataChart[100]["\x64\x61\164\x61\120\x6f\151\156\164\163"] = [
[
"\170" => 0,
"\171" => floatval($targetSupply),
"\154\x61\x62\x65\154" => "\40",
],
];
$x = 1;
foreach ($data as $dtInterval) {
$code = $dtInterval["\143\157\x64\145"];
if (
$timeFrame ==
"\x70\141\163\164\x5f\x31\62\137\167\x65\145\x6b\163" ||
$timeFrame == "\154\x61\163\x74\x5f\x77\145\145\153"
) {
$label = "\x57" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"\x70\x61\163\164\x5f\61\62\x5f\x6d\x6f\x6e\x74\150\163"
) {
$label = "\x4d" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"\x70\x61\163\x74\x5f\66\137\161\165\141\162\164\x65\x72\x73"
) {
$label = "\x51" . substr($code, 4, 2);
} elseif (
$timeFrame == "\160\x61\x73\164\x5f\66\137\x79\x65\x61\x72\163"
) {
$label = "\x59" . substr($code, 2, 2);
}
array_push(
$dataChart[100]["\144\141\x74\x61\120\157\x69\x6e\x74\x73"],
[
"\170" => $x,
"\x79" => floatval($targetSupply),
"\x6c\141\142\x65\154" => $label,
]
);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
if ($bg != "\141\154\154") {
foreach ($idList as $idVs) {
if (isset($dtInterval["\142\147"][$idVs])) {
$totalRequest +=
$dtInterval["\x62\x67"][$idVs][
"\x72\x65\x71\165\x65\x73\164"
];
$totalDeliver +=
$dtInterval["\x62\x67"][$idVs][
"\144\x65\154\151\x76\x65\x72"
];
array_push(
$dataTable[$code],
$dtInterval["\x62\x67"][$idVs][
"\141\143\x74\165\x61\x6c"
]
);
array_push(
$dataChart[
$dtInterval["\142\147"][$idVs]["\x69\144"]
]["\x64\141\164\141"],
floatval(
$dtInterval["\142\147"][$idVs][
"\x61\x63\x74\x75\x61\154"
]
)
);
array_push($dataChart[100]["\x64\x61\164\x61"], [
"\x78" => $label,
"\x79" => floatval(
$dtInterval["\142\147"][$idVs][
"\x74\x61\x72\x67\x65\x74"
]
),
]);
} else {
$totalRequest += 0;
$totalDeliver += 0;
array_push($dataTable[$code], 0);
array_push(
$dataChart[$idVs]["\x64\x61\164\141"],
floatval(0)
);
array_push($dataChart[100]["\144\x61\x74\x61"], [
"\x78" => $label,
"\171" => floatval(0),
]);
}
}
} else {
foreach ($dtInterval["\142\147"] as $dtBG) {
$totalRequest += $dtBG["\162\x65\161\165\145\163\x74"];
$totalDeliver += $dtBG["\144\145\x6c\x69\x76\145\x72"];
array_push(
$dataTable[$code],
$dtBG["\141\x63\x74\x75\141\154"]
);
array_push(
$dataChart[$dtBG["\151\144"]]["\144\141\x74\x61"],
floatval($dtBG["\x61\143\164\165\x61\x6c"])
);
array_push($dataChart[100]["\144\x61\164\x61"], [
"\x78" => $label,
"\171" => floatval($dtBG["\164\141\162\x67\x65\164"]),
]);
}
}
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
"\56",
""
);
$data[$code]["\x61\154\154\x20"][
"\x61\143\x74\165\x61\x6c"
] = $totalActual;
$data[$code]["\141\x6c\x6c\40"][
"\144\145\154\151\166\x65\162"
] = $totalDeliver;
$data[$code]["\141\154\154\40"][
"\x72\145\161\165\x65\x73\x74"
] = $totalRequest;
if ($bg == "\x61\154\x6c") {
}
if ($bg == "\x61\154\154") {
array_push(
$dataChart[90]["\x64\x61\x74\x61\x50\157\x69\156\x74\163"],
[
"\x78" => $x,
"\x79" => floatval($totalActual),
"\x6c\141\142\x65\x6c" => $label,
]
);
} elseif ($vs == "\141\x6c\154") {
array_push(
$dataChart[90]["\x64\141\164\141\x50\157\151\156\x74\x73"],
[
"\x78" => $x,
"\x79" => floatval($totalActual),
"\154\141\x62\x65\154" => $label,
]
);
}
$x++;
}
array_push(
$dataChart[100]["\144\x61\x74\x61\x50\157\x69\156\x74\x73"],
[
"\x78" => $x,
"\171" => floatval($targetSupply),
"\154\141\142\x65\154" => "\x20",
]
);
$dataChartReturn = [];
foreach ($dataChart as $dtChart) {
array_push($dataChartReturn, $dtChart);
}
$dataReturn = ["\143\150\x61\x72\164" => $dataChartReturn];
return $dataReturn;
}
public function getDataLayer3ChartJs($timeFrame, $bg, $vs, $supplyCenter)
{
$data = [];
$time_frame = new TimeFrame();
$time_range = $time_frame->getTimeRange2($timeFrame);
$query = DB::table(
"\x66\x69\154\154\x5f\x72\x61\164\145\x73\x20\141\x73\x20\146\x72"
);
$supply_center_id = $supplyCenter;
if (
$timeFrame ==
"\x70\141\163\x74\x5f\61\62\x5f\x77\145\x65\x6b\x73" ||
$timeFrame == "\154\x61\163\164\x5f\167\x65\145\x6b"
) {
$query
->selectRaw("\167\x65\145\x6b\40\x41\x53\40\40\143\x6f\x64\x65")
->whereRaw(
"\167\145\145\x6b\40\76\x3d\40\77\40\x61\156\x64\40\x77\145\x65\153\40\74\75\40\x3f",
[
$time_range[
"\163\x74\x61\162\x74\x5f\x71\165\x65\x72\x79"
],
$time_range["\145\x6e\x64\x5f\161\165\x65\162\171"],
]
)
->groupBy("\x77\145\x65\x6b")
->orderBy("\167\x65\145\x6b", "\141\163\x63");
} elseif (
$timeFrame ==
"\160\141\163\x74\137\x31\x32\137\155\157\x6e\164\x68\163"
) {
$query
->selectRaw(
"\103\x4f\116\103\101\x54\x28\171\x65\x61\x72\x2c\x20\40\x6d\157\156\164\150\x5f\x6e\165\155\x29\x20\x41\x53\40\x20\143\157\x64\x65"
)
->whereRaw(
"\x43\x4f\116\x43\x41\124\50\x79\x65\141\162\54\40\x20\155\157\x6e\x74\150\137\x6e\x75\x6d\51\40\76\x3d\40\77\40\141\x6e\144\x20\x43\117\116\103\x41\124\50\171\145\x61\162\x2c\x20\x20\155\157\156\164\150\137\156\165\x6d\51\40\x3c\75\x20\77",
[
$time_range[
"\x73\x74\x61\162\164\137\x71\165\x65\x72\171"
],
$time_range["\x65\x6e\144\x5f\x71\165\x65\162\171"],
]
)
->groupBy(
"\171\x65\141\162",
"\155\157\156\164\x68\x5f\156\165\x6d"
)
->orderBy("\x79\145\x61\x72", "\x61\163\143")
->orderBy(
"\155\x6f\x6e\x74\x68\137\x6e\x75\x6d",
"\141\163\143"
);
} elseif (
$timeFrame ==
"\160\x61\x73\x74\137\66\x5f\x71\x75\x61\x72\164\145\162\x73"
) {
$query
->selectRaw(
"\103\117\x4e\x43\x41\x54\50\171\x65\141\x72\54\x20\40\161\x75\141\x72\164\145\x72\x29\40\101\x53\40\x20\143\x6f\144\x65"
)
->whereRaw(
"\103\x4f\x4e\x43\x41\x54\x28\x79\x65\141\x72\54\40\40\x71\x75\141\x72\164\145\x72\51\x20\x3e\x3d\x20\x3f\x20\x61\156\144\x20\x43\x4f\116\x43\x41\124\50\x79\x65\141\x72\54\40\x20\x71\x75\x61\x72\164\145\162\x29\40\74\75\40\77",
[
$time_range[
"\163\x74\141\x72\x74\137\161\x75\145\162\171"
],
$time_range["\145\x6e\144\137\x71\x75\145\x72\171"],
]
)
->groupBy("\171\145\141\162", "\161\165\141\x72\164\x65\162")
->orderBy("\x79\x65\x61\162", "\x61\x73\143")
->orderBy("\161\x75\141\x72\x74\145\x72", "\141\163\143");
} elseif (
$timeFrame == "\160\x61\163\164\x5f\66\x5f\x79\145\x61\162\x73"
) {
$query
->selectRaw(
"\171\x65\141\x72\x20\101\x53\x20\x20\x63\157\x64\145"
)
->whereRaw(
"\171\145\x61\x72\40\76\75\40\x3f\40\x61\x6e\144\40\x79\x65\x61\x72\x20\x3c\x3d\40\x3f",
[
$time_range[
"\x73\164\141\x72\x74\x5f\x71\165\145\x72\171"
],
$time_range["\x65\156\x64\x5f\x71\165\145\162\x79"],
]
)
->groupBy("\171\145\x61\162")
->orderBy("\171\x65\x61\162", "\x61\163\x63");
}
if ($bg != "\x61\x6c\154") {
$query
->where("\x62\147\56\x69\x64", "\75", $bg)
->selectRaw(
"\x76\163\x2e\151\x64\54\40\142\x67\x2e\x74\x61\162\x67\145\164"
)
->groupBy("\166\x73\56\x69\144")
->groupBy("\142\x67\x2e\164\141\162\x67\x65\164")
->orderBy("\166\x73\56\151\x64", "\141\163\143");
} else {
$query
->selectRaw(
"\142\147\x2e\x69\x64\x2c\x20\x62\x67\x2e\164\x61\x72\147\x65\x74"
)
->groupBy("\142\147\x2e\x69\144")
->groupBy("\x62\147\x2e\x74\x61\162\147\x65\164")
->orderBy("\142\x67\x2e\x69\x64", "\141\163\143");
}
if ($vs != "\x61\154\154") {
$query->where("\166\163\x2e\x69\x64", "\x3d", $vs);
}
$query
->join(
"\141\162\x74\x69\143\x6c\145\137\x67\x72\157\165\x70\x73\x20\x61\163\x20\141\x67",
"\x61\x67\x2e\x69\144",
"\x3d",
"\146\162\x2e\141\162\164\x69\x63\x6c\145\137\x67\x72\x6f\165\160\137\151\x64"
)
->join(
"\166\x61\x6c\165\145\137\163\164\162\x65\x61\155\x73\40\x61\163\40\x76\x73",
"\x76\163\56\151\x64",
"\75",
"\141\147\56\166\x61\154\165\145\x5f\x73\x74\x72\145\x61\155\137\151\x64"
)
->join(
"\x76\x61\x6c\165\145\x5f\x73\x74\x72\x65\141\155\x5f\x64\x65\164\x61\151\x6c\x73\40\141\x73\x20\166\x73\144",
"\x76\x73\144\56\x76\x61\x6c\165\x65\x5f\163\x74\162\x65\141\x6d\x5f\x69\144",
"\x3d",
"\x76\x73\x2e\x69\144"
)
->join(
"\142\x75\x73\x69\x6e\145\x73\x73\137\147\x72\x6f\x75\160\x73\40\141\x73\x20\142\147",
"\142\147\56\151\x64",
"\x3d",
"\166\163\x64\56\142\x75\x73\151\x6e\x65\163\163\137\147\x72\157\x75\x70\x5f\x69\x64"
)
->where(
"\x62\147\x2e\x73\x75\160\160\154\x79\137\x63\145\156\x74\x65\x72\137\x69\x64",
"\x3d",
$supply_center_id
)
->where(
"\x66\x72\x2e\x63\165\x73\x74\157\155\145\162\x5f\x6d\141\x70\x70\145\x64",
"\41\x3d",
"\x41\155\141\172\x6f\x6e\56\x63\157\x6d"
)
->selectRaw(
"\163\x75\x6d\50\161\164\171\137\162\145\161\x75\x65\x73\x74\145\144\x29\x20\x61\x73\40\161\x74\171\137\x72\145\161\x75\145\x73\x74\145\x64\x2c\x20\xa\40\40\x20\40\40\x20\x20\x20\x20\40\40\40\163\165\155\x28\x71\x74\x79\x5f\144\x65\x6c\151\x76\145\162\x65\144\137\x6f\x6e\x74\x69\x6d\x65\51\x20\141\163\40\x71\164\171\137\x64\145\x6c\151\x76\x65\x72\x65\x64\137\x6f\156\x74\x69\155\x65"
);
$dtRecords = $query->get();
$idListKey = [];
foreach ($dtRecords as $keyValue) {
$code = $keyValue->code;
$id = $keyValue->id;
$actual = number_format(
($keyValue->qty_delivered_ontime / $keyValue->qty_requested) *
100,
1,
"\56",
""
);
$data[$code]["\143\157\144\x65"] = $code;
$data[$code]["\x62\x67"][$id]["\151\144"] = $id;
$data[$code]["\142\147"][$id]["\x61\x63\x74\x75\141\154"] = $actual;
$data[$code]["\x62\x67"][$id]["\x64\x65\154\151\166\145\162"] =
$keyValue->qty_delivered_ontime;
$data[$code]["\x62\x67"][$id]["\162\145\x71\165\145\x73\164"] =
$keyValue->qty_requested;
$data[$code]["\x62\147"][$id]["\164\141\162\147\145\164"] =
$keyValue->target;
$idListKey[$id] = $id;
}
$idList = [];
foreach ($idListKey as $key => $value) {
array_push($idList, $value);
}
$dataChart = [];
if ($bg == "\x61\154\154") {
$bgList = $this->getBGList($supply_center_id);
foreach ($bgList as $dtBG) {
$dataChart[$dtBG->id]["\157\x72\x64\145\x72"] = 1;
$dataChart[$dtBG->id]["\x6c\141\142\145\x6c"] = $dtBG->name;
$dataChart[$dtBG->id]["\164\171\160\145"] = "\x62\x61\x72";
$dataChart[$dtBG->id][
"\x62\141\x63\x6b\147\x72\x6f\x75\x6e\144\103\x6f\x6c\x6f\x72"
] = $dtBG->color;
$dataChart[$dtBG->id][
"\142\157\162\x64\145\x72\x57\151\144\x74\150"
] = 1;
$dataChart[$dtBG->id]["\144\x61\x74\141"] = [];
}
} else {
$queryVS = DB::table(
"\166\x61\x6c\x75\x65\x5f\x73\164\162\145\141\x6d\x73"
)->whereIn("\x69\144", $idList);
$vsList = $queryVS->get();
foreach ($vsList as $dtBG) {
$dataChart[$dtBG->id]["\157\162\x64\x65\162"] = 1;
$dataChart[$dtBG->id]["\x6c\x61\x62\x65\x6c"] = $dtBG->name;
$dataChart[$dtBG->id]["\x74\171\160\x65"] = "\142\x61\162";
$dataChart[$dtBG->id][
"\x62\141\143\153\147\162\x6f\x75\156\x64\x43\x6f\x6c\x6f\162"
] = $dtBG->color;
$dataChart[$dtBG->id][
"\142\157\162\x64\145\162\x57\x69\x64\164\150"
] = 1;
$dataChart[$dtBG->id]["\144\x61\x74\x61"] = [];
}
}
if ($bg == "\141\154\x6c") {
$dtTarget = DB::table(
"\x73\165\160\x70\x6c\x79\x5f\x63\x65\156\164\145\162\x73"
)
->orderBY("\151\144", "\x41\x53\103")
->where("\x69\144", "\75", "\x31")
->get();
} else {
$dtTarget = DB::table(
"\x62\x75\163\151\156\145\x73\163\137\147\x72\x6f\165\x70\163"
)
->orderBY("\151\x64", "\x41\x53\103")
->where("\151\x64", "\x3d", $bg)
->get();
}
$targetSupplyAll = $dtTarget[0]->target;
if ($bg == "\141\154\x6c") {
$dataChart[90]["\x6f\x72\x64\x65\162"] = 1;
$dataChart[90]["\x6c\x61\142\x65\x6c"] = "\x41\x6c\154";
$dataChart[90]["\x74\x79\x70\145"] = "\x62\x61\x72";
$dataChart[90][
"\x62\x61\143\x6b\147\x72\x6f\x75\x6e\x64\x43\x6f\154\157\162"
] = "\43\106\x46\x45\103\x43\103";
$dataChart[90]["\x62\157\162\x64\x65\162\x57\151\144\x74\x68"] = 1;
$dataChart[90]["\x64\x61\164\x61"] = [];
} elseif ($vs == "\141\154\x6c") {
$dataChart[90]["\x6f\162\x64\x65\162"] = 1;
$dataChart[90]["\x6c\141\x62\145\154"] = "\x41\154\154";
$dataChart[90]["\164\171\x70\x65"] = "\x62\141\162";
$dataChart[90][
"\x62\141\x63\153\x67\162\157\x75\156\144\103\157\x6c\157\162"
] = "\x23\106\x46\105\103\x43\x43";
$dataChart[90]["\142\x6f\162\x64\x65\162\x57\151\x64\x74\x68"] = 1;
$dataChart[90]["\x64\141\164\141"] = [];
}
$dataChart[100]["\x6f\162\144\x65\162"] = 0;
$dataChart[100]["\x6c\x61\142\x65\x6c"] = "\124\141\162\x67\x65\164";
$dataChart[100]["\164\171\160\x65"] = "\x73\143\141\x74\x74\x65\162";
$dataChart[100]["\160\x6f\151\156\x74\x52\141\x64\151\165\163"] = 4;
$dataChart[100][
"\x62\141\x63\153\x67\x72\x6f\165\x6e\144\103\157\x6c\157\162"
] = "\171\x65\154\x6c\157\x77";
$dataChart[100]["\x62\x6f\x72\144\145\x72\127\x69\x64\x74\x68"] = 1;
$dataChart[100]["\144\x61\164\141"] = [];
$x = 1;
$labels = [];
foreach ($data as $dtInterval) {
$code = $dtInterval["\x63\157\x64\x65"];
if (
$timeFrame ==
"\160\141\163\164\x5f\x31\x32\x5f\x77\x65\145\x6b\x73" ||
$timeFrame == "\154\141\163\x74\137\x77\x65\145\x6b"
) {
$label = "\127" . substr($code, 2, 2);
} elseif (
$timeFrame ==
"\160\x61\163\164\x5f\61\62\137\155\x6f\156\x74\x68\x73"
) {
$label = "\115" . substr($code, 4, 2);
} elseif (
$timeFrame ==
"\x70\141\163\164\137\x36\137\x71\x75\x61\162\x74\145\x72\x73"
) {
$label = "\x51" . substr($code, 4, 2);
} elseif (
$timeFrame == "\x70\141\163\164\x5f\66\137\x79\x65\141\x72\163"
) {
$label = "\131" . substr($code, 2, 2);
}
array_push($labels, $label);
$totalRequest = 0;
$totalDeliver = 0;
$dataTable[$code] = [$code];
if ($bg != "\x61\154\154") {
foreach ($idList as $idVs) {
if (isset($dtInterval["\x62\147"][$idVs])) {
$totalRequest +=
$dtInterval["\x62\x67"][$idVs][
"\x72\x65\161\x75\145\x73\164"
];
$totalDeliver +=
$dtInterval["\x62\147"][$idVs][
"\144\x65\154\151\166\145\162"
];
array_push(
$dataTable[$code],
$dtInterval["\142\147"][$idVs][
"\141\x63\x74\165\141\154"
]
);
array_push(
$dataChart[
$dtInterval["\142\x67"][$idVs]["\x69\x64"]
]["\144\x61\x74\141"],
floatval(
$dtInterval["\142\147"][$idVs][
"\x61\x63\164\165\141\154"
]
)
);
array_push($dataChart[100]["\x64\141\164\141"], [
"\170" => $label,
"\x79" => floatval(
$dtInterval["\x62\x67"][$idVs][
"\164\x61\x72\147\x65\164"
]
),
]);
} else {
$totalRequest += 0;
$totalDeliver += 0;
array_push($dataTable[$code], 0);
array_push(
$dataChart[$idVs]["\144\141\164\141"],
floatval(0)
);
array_push($dataChart[100]["\144\x61\164\x61"], [
"\x78" => $label,
"\x79" => floatval($targetSupplyAll),
]);
}
}
} else {
foreach ($dtInterval["\142\x67"] as $dtBG) {
$totalRequest += $dtBG["\162\145\161\x75\x65\x73\164"];
$totalDeliver += $dtBG["\x64\145\x6c\x69\x76\x65\x72"];
array_push(
$dataTable[$code],
$dtBG["\141\x63\x74\165\x61\154"]
);
array_push(
$dataChart[$dtBG["\151\144"]]["\x64\x61\x74\x61"],
floatval($dtBG["\x61\x63\164\x75\141\x6c"])
);
array_push($dataChart[100]["\x64\141\164\141"], [
"\170" => $label,
"\x79" => floatval($dtBG["\x74\141\x72\x67\145\164"]),
]);
}
}
$totalActual = number_format(
($totalDeliver / $totalRequest) * 100,
1,
"\56",
""
);
$data[$code]["\141\x6c\154\40"][
"\141\143\x74\165\x61\x6c"
] = $totalActual;
$data[$code]["\x61\154\x6c\x20"][
"\x64\x65\154\151\x76\145\x72"
] = $totalDeliver;
$data[$code]["\x61\x6c\154\x20"][
"\162\x65\x71\x75\x65\163\x74"
] = $totalRequest;
if ($bg == "\141\154\154") {
array_push(
$dataChart[90]["\x64\141\x74\x61"],
floatval($totalActual)
);
array_push($dataChart[100]["\x64\x61\x74\141"], [
"\170" => $label,
"\171" => floatval($targetSupplyAll),
]);
} elseif ($vs == "\141\154\154") {
array_push(
$dataChart[90]["\x64\x61\164\x61"],
floatval($totalActual)
);
array_push($dataChart[100]["\144\141\164\141"], [
"\x78" => $label,
"\171" => floatval($targetSupplyAll),
]);
}
$x++;
}
$dataChartReturn = [];
$dataChartReturn["\x6c\x61\x62\145\154\163"] = $labels;
$dataChartReturn["\x64\x61\x74\141\x73\145\x74\163"] = [];
foreach ($dataChart as $dtChart) {
array_push(
$dataChartReturn["\x64\x61\164\x61\x73\x65\164\163"],
$dtChart
);
}
$dataReturn = ["\143\x68\x61\162\x74" => $dataChartReturn];
return $dataReturn;
}
public function getSummaryData()
{
$data = [];
for ($i = 12; $i > 0; $i--) {
$week = date(
"\x79\127",
strtotime("\x2d{$i}\40\127\145\x65\x6b\x73")
);
$data_item = [$week, 85, 86, 88, 87];
array_push($data, $data_item);
}
return $data;
}
public function getSelection()
{
$data =
"\x3c\144\151\x76\x20\x63\154\x61\x73\163\75\42\146\154\55\x6c\x65\x66\164\x22\x3e\12\40\x20\40\x20\x20\40\x20\40\x3c\x64\151\x76\40\x63\154\141\163\163\75\42\151\164\x65\x6d\x2d\x73\145\x6c\x65\x63\164\151\x6f\x6e\x20\x66\154\55\x6c\145\146\x74\x20\160\144\55\x6c\61\42\76\12\40\40\x20\40\40\x20\40\x20\40\40\x3c\154\141\x62\145\x6c\40\x66\157\162\x3d\42\164\151\x6d\145\x66\x72\x61\155\x65\x22\40\x63\154\141\163\x73\75\x22\143\x61\x74\x65\x67\157\162\171\x22\76\102\x47\x20\x3a\74\x2f\154\141\142\145\x6c\76\12\x20\x20\40\40\x20\40\x20\40\x20\40\x3c\x73\x65\154\145\143\x74\x20\x6e\141\155\145\x3d\42\x22\x20\151\x64\75\x22\163\145\x6c\145\x63\x74\151\x6f\156\x22\x3e\12\40\x20\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\x3c\x6f\x70\x74\151\x6f\x6e\x20\166\141\154\165\145\x3d\42\61\42\76\114\141\163\164\40\x57\145\x65\x6b\74\x2f\x6f\x70\164\151\157\156\76\xa\40\x20\x20\40\x20\40\x20\40\x20\40\x20\40\x3c\157\160\164\x69\157\156\x20\x76\141\x6c\x75\145\75\42\61\42\x3e\x4c\x61\x73\164\x20\x4d\x6f\156\x74\x68\x3c\x2f\157\160\164\x69\157\156\x3e\12\x20\40\x20\40\40\40\x20\x20\40\x20\x20\40\74\x6f\160\x74\151\x6f\156\x20\x76\141\154\165\x65\x3d\42\61\42\x3e\114\x61\163\164\x20\171\x65\x61\x72\x3c\x2f\x6f\x70\x74\151\x6f\x6e\x3e\xa\40\x20\x20\x20\x20\x20\40\40\x20\x20\x3c\x2f\163\145\x6c\x65\x63\x74\x3e\xa\40\40\40\x20\x20\40\x20\x20\x3c\x2f\x64\151\x76\76\xa\x20\40\x20\40\x20\x20\x20\x20\74\144\x69\x76\40\x63\x6c\x61\x73\163\75\42\151\x74\145\x6d\x2d\x73\145\x6c\145\143\164\151\157\x6e\40\x66\x6c\55\154\x65\146\x74\x20\160\144\x2d\154\x31\42\76\12\40\x20\40\40\x20\40\x20\x20\x20\x20\74\x6c\x61\142\145\154\40\146\x6f\x72\x3d\x22\164\x69\x6d\x65\x66\x72\141\x6d\145\42\40\x63\x6c\141\x73\163\75\42\x63\x61\164\145\x67\157\x72\171\42\76\x50\162\x6f\144\x75\x63\164\x20\x43\x61\x74\x65\x67\x6f\x72\x79\40\x3a\74\x2f\x6c\141\142\x65\154\76\12\40\40\x20\x20\40\x20\40\x20\x20\40\x3c\x73\145\154\x65\x63\x74\x20\156\x61\x6d\145\x3d\42\x22\40\151\x64\75\x22\x73\x65\x6c\x65\143\x74\x69\x6f\156\42\76\xa\x20\x20\40\x20\40\x20\40\40\40\40\x20\40\x3c\x6f\160\x74\x69\157\156\40\x76\x61\154\165\x65\x3d\42\x31\42\x3e\114\x61\x73\164\40\x57\145\145\153\74\57\x6f\x70\x74\151\157\x6e\x3e\xa\40\x20\40\x20\40\40\40\40\x20\40\x20\x20\74\x6f\160\164\151\x6f\x6e\x20\x76\x61\154\x75\x65\x3d\x22\x31\42\76\114\x61\163\164\40\115\157\156\x74\x68\x3c\x2f\x6f\x70\x74\x69\x6f\x6e\x3e\12\x20\x20\x20\40\x20\x20\x20\40\40\40\40\x20\x3c\157\x70\x74\151\157\156\40\x76\141\x6c\165\x65\x3d\x22\61\42\76\114\141\163\164\x20\x79\145\141\162\x3c\x2f\157\160\x74\151\x6f\x6e\76\12\40\x20\40\x20\40\40\40\40\x20\40\74\57\163\x65\154\x65\143\164\76\12\x20\x20\40\x20\x20\40\40\40\x3c\x2f\144\x69\166\x3e\12\40\40\40\40\x20\40\74\57\144\151\166\76";
return $data;
}
}
Function Calls
None |
Stats
MD5 | 20cd4cee9d6f6f378ab9805122f6f268 |
Eval Count | 0 |
Decode Time | 103 ms |