get('id');
$event = $_GET["event"];
$objective = 0;
if (!isVPSuperviseur($roleid) && !isTopDG($roleid) && !isResponsableCommercial($roleid)) {
die("
Vous n'êtes pas autorisé à lire cette ressource.
");
}
if (isTopDG($roleid)) {
$roleid = "H10";
}
// $datedeb = date("Y-m-d", strtotime("-1 month"));
// $datefin = date('Y-m-d');
$datedeb = '2026-11-04';
$datefin = '2026-11-30';
if ($event == "Saidalya") {
$datedeb = '2026-02-04';
$datefin = '2026-02-07';
$objective = 300000000.00; // Objective value (0-100)
echo getMonitoringMainBarVP(9);
} else if ($event == "November") {
$datedeb = '2026-01-13';
$datefin = '2026-02-15';
$objective = 500000000.00; // Objective value (0-100)
echo getMonitoringMainBarVP(10);
} else {
die("Unauthorized");
}
$vpFilter = "";
if ($event == "Saidalya") {
$vpFilter = " AND us.id IN (156,125,215,137,149,261,127,124,43,254,212,255,253,186,248,222)";
}
$currentValue = 0; // Current gauge value (0-100)
?>
1
JOIN vtiger_salesorder so ON so.salesorderid = crm.crmid
JOIN vtiger_accountscf acf ON acf.accountid = so.accountid";
$queryCA = $queryCA . " WHERE so.duedate BETWEEN '" . $datedeb . "' and '" . $datefin . "' $vpFilter order by total_bc asc";
$queryCA = $queryCA . ") AS subquery order by total_bc desc; ";
$sql_get_result_ca = $adb->query($queryCA);
$result_ca = array();
while ($recordinfo = $adb->fetch_array($sql_get_result_ca)) {
$result_ca[] = $recordinfo;
}
$currentValue = $result_ca[0][0] ?? 0;
// CA Par Client
$query = "SELECT soc.cf_854 as accountname,
sum(so.subtotal) as totalmargin
FROM `vtiger_salesorder` so
JOIN vtiger_salesordercf soc on soc.salesorderid = so.salesorderid
JOIN vtiger_crmentity e on so.`salesorderid` = e.crmid and e.deleted <> 1 and e.setype='SalesOrder'
JOIN vtiger_users us on us.id = e.smownerid and us.status <> 'Inactive'
JOIN vtiger_user2role usr ON usr.userid = us.id
JOIN vtiger_role ro ON ro.roleid = usr.roleid";
$query = $query . " WHERE so.duedate BETWEEN '" . $datedeb . "' and '" . $datefin . "' $vpFilter";
$query = $query . " GROUP by accountname order by totalmargin desc";
$sql_get_result_client = $adb->query($query);
$result_client = array();
while ($recordinfo = $adb->fetch_array($sql_get_result_client)) {
$result_client[] = $recordinfo;
}
$json_data = json_encode($result_client);
// Par produit
$query_produit = "SELECT p.productname, sum(ip.quantity) as totalquantity , sum(ip.margin) as totalmargin
FROM `vtiger_salesorder` so
JOIN vtiger_inventoryproductrel ip on so.`salesorderid` = ip.id
JOIN vtiger_crmentity e on so.`salesorderid` = e.crmid and e.deleted = 0
JOIN vtiger_products p on p.productid = ip.productid
JOIN vtiger_users us on us.id = e.smownerid and us.status <> 'Inactive'
JOIN vtiger_user2role usr ON usr.userid = us.id
JOIN vtiger_role ro ON ro.roleid = usr.roleid";
$query_produit = $query_produit . " WHERE so.duedate BETWEEN '" . $datedeb . "' and '" . $datefin . "' $vpFilter";
$query_produit = $query_produit . " GROUP by p.productname order by totalmargin desc"; //, month , year";
$sql_get_result_product = $adb->query($query_produit);
$result_products_arr = array();
while ($recordinfo = $adb->fetch_array($sql_get_result_product)) {
$result_products_arr[] = $recordinfo;
}
$result_products = json_encode($result_products_arr);
// $totalMargins = array_column($result_products, 'totalmargin');
// PAR VP
$query_vp = "SELECT
fullname,
total_bc AS bc
FROM
(SELECT us.id,CONCAT(first_name, ' ', last_name) AS fullname,SUM(subtotal) AS total_bc
FROM vtiger_users us JOIN vtiger_user2role usr ON usr.userid = us.id
JOIN vtiger_crmentity crm ON crm.smownerid = us.id AND crm.setype = 'SalesOrder' AND crm.deleted <> 1
JOIN vtiger_salesorder so ON so.salesorderid = crm.crmid ";
$query_vp = $query_vp . " WHERE so.duedate BETWEEN '" . $datedeb . "' and '" . $datefin . "' $vpFilter";
$query_vp = $query_vp . " GROUP BY us.id,fullname) as s ";
$sql_get_result_vp = $adb->query($query_vp);
$result_vp = array();
while ($recordinfo = $adb->fetch_array($sql_get_result_vp)) {
$result_vp[] = $recordinfo;
}
$result_vp = json_encode($result_vp);
// echo "";
// print_r($result_products);
// echo "
";
// // print_r($productNames);
// echo $result_vp;
// die();
?>
Dashboard
Répartition Marge Totale (Top 10 Produits)
Répartition Quantité Totale (Top 10 Produits - Pie Chart)
Répartition CA par VP (Top 10)
CA par Client
| Client |
Marge Totale (D.A) |
| = htmlspecialchars($row['accountname']) ?> |
= $row['totalmargin'] ?> |
Produits : Quantité & Marge Totale
| Produit |
Quantité Totale |
Marge Totale (D.A) |
| = htmlspecialchars($row['productname']) ?> |
= $row['totalquantity'] ?> |
= $row['totalmargin'] ?> |