ETAT DES STOCKS
'; // //print("
".print_r($result,true).""); echo '
| produit/grossiste'; for($p = 0 ; $p < sizeof($grossistes); $p++){ echo ' | '.$grossistes[$p]['accountname'].''; } echo' | Total | 
|---|
get('roleid'); $userId = $current_user->get('id'); if(isset($_POST["Export"])){ $filename = "ETAT_DES_STOCKS".date('Ymd') . ".xls"; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"$filename\""); $export_res = getExportResult($_POST["initDate"],$_POST["endDate"]); // print_r($export_res);die; ExportFile($export_res); } $viewer = new Vtiger_Viewer(); $viewer->assign('CURRENTDATE', Vtiger_Date_UIType::getDisplayDateValue(date('Y-n-j'))); $viewer->assign('MODULE', 'Home'); $viewer->assign('MODULE_NAME', 'Home'); $viewer->assign('QUALIFIED_MODULE', 'Home'); $viewer->assign('PARENT_MODULE', ''); $viewer->assign('VIEW', 'DashBoard'); $menuModelsList = Vtiger_Menu_Model::getAll(true); $menuStructure = Vtiger_MenuStructure_Model::getInstanceFromMenuList($menuModelsList, 'Home'); uksort($menuModelsList, array('Vtiger_MenuStructure_Model', 'sortMenuItemsByProcess')); $viewer->assign('SELECTED_MENU_CATEGORY', 'MARKETING'); $viewer->assign('SELECTED_MENU_CATEGORY_LABEL', 'Tableau de bord'); //$viewer->assign('SELECTED_CATEGORY_MENU_LIST', $menuGroupedByParent['MARKETING']); $viewer->assign('MENUS', $menuModelsList); $viewer->assign('QUICK_CREATE_MODULES', Vtiger_Menu_Model::getAllForQuickCreate()); $viewer->assign('MENU_STRUCTURE', $menuStructure); $viewer->assign('MENU_SELECTED_MODULENAME', 'Home'); $viewer->assign('MENU_TOPITEMS_LIMIT', $menuStructure->getLimit()); $viewer->assign('COMPANY_LOGO', Vtiger_CompanyDetails_Model::getInstanceById()->getLogo()); $viewer->assign('COMPANY_DETAILS_SETTINGS',new Settings_Vtiger_CompanyDetails_Model()); $viewer->assign('USER_MODEL', $current_user); $viewer->assign('CURRENT_USER_MODEL', $current_user); require_once 'libraries/csrf-magic/csrf-magic.php'; $viewer->assign('HOME_MODULE_MODEL', Vtiger_Module_Model::getInstance('Home')); $viewer->assign('HEADER_LINKS', Vtiger_Header_View::getHeaderLinks()); $viewer->assign('ANNOUNCEMENT', Vtiger_Header_View::getAnnouncement()); $viewer->assign('SEARCHABLE_MODULES', Vtiger_Module_Model::getSearchableModules()); $viewer->assign('INVENTORY_MODULES', getInventoryModules()); $viewer->assign('PAGETITLE','ETAT DES STOCKS'); $viewer->assign('LANGUAGE_STRINGS', Vtiger_Language_Handler::export('Home', 'jsLanguageStrings')); $viewer->view('CustomDashboard.tpl'); $months = array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"); $monthNumber = date('m'); $currentDate = new DateTime(); $year = $currentDate->format("Y"); //all function function getResultat($year , $monthNumber){ global $adb; $query = "SELECT etat_stock.grossiste as grossiste , lignes_etat_stock.produit as produit, sum(qte) as quantite ,etat_stock.date, EXTRACT(YEAR FROM etat_stock.date) as year,EXTRACT(MONTH FROM etat_stock.date) as month FROM `etat_stock` , `lignes_etat_stock` WHERE etat_stock.id=lignes_etat_stock.id_etat_stock GROUP by etat_stock.grossiste,lignes_etat_stock.produit,EXTRACT(YEAR FROM etat_stock.date) ,EXTRACT(MONTH FROM etat_stock.date) having year = {$year} and month = {$monthNumber}"; $sql_get_result = $adb->query($query); $res= array(); while ($recordinfo = $adb->fetch_array($sql_get_result)) { $res[] = $recordinfo; } return $res; } function getExportResult($date_start,$date_end){ global $adb; $query = "SELECT lignes_etat_stock.*,etat_stock.*,vtiger_users.user_name FROM `lignes_etat_stock` LEFT JOIN etat_stock on etat_stock.id = lignes_etat_stock.id_etat_stock LEFT JOIN vtiger_users ON etat_stock.creator_id = vtiger_users.id WHERE date BETWEEN ? AND ? ORDER BY etat_stock.date_creation DESC;"; $sql_get_result = $adb->pquery($query,array($date_start,$date_end)); $res= array(); while ($recordinfo = $adb->fetch_array($sql_get_result)) { $res[] = $recordinfo; } return $res; } function getLastStockUpdate($clause){ global $adb; $query = "SELECT CASE WHEN Max(date_creation) IS null THEN Max(date_creation) ELSE Max(date_creation) END as last_update FROM `etat_stock` WHERE grossiste = ?;"; $sql_get_result = $adb->pquery($query,array($clause)); return $adb->fetch_array($sql_get_result); } function getGrossiste(){ global $adb; $query5 = "SELECT accountname FROM `vtiger_account` WHERE industry like '%Grossiste%' "; $result5 =$adb->query($query5); $res=array(); while ($recordinfo = $adb->fetch_array($result5)) { $res[] = $recordinfo; } return $res; } function ExportFile($records) { $heading = false; if(!empty($records)) foreach($records as $row) { if(!$heading) { // display field/column names as a first row echo implode("\t;", array("Produit","Quantité","Date de péremption","Grossiste", "Date détat du stock","KAM","Date de saisie")) . "\n"; $heading = true; } echo implode("\t;", array($row['produit'],$row['qte'],$row['dper'], html_entity_decode($row['grossiste']),$row['date'],$row['user_name'], $row['date_creation'])) . "\n"; } exit; } function getProduits(){ global $adb; $query5 = "SELECT productname FROM `vtiger_products` "; $result5 =$adb->query($query5); $res=array(); while ($recordinfo = $adb->fetch_array($result5)) { $res[] = $recordinfo; } return $res; } function search($array, $search_list) { // Create the result array $result = array(); // Iterate over each array element foreach ($array as $key => $value) { // Iterate over each search condition foreach ($search_list as $k => $v) { // If the array element does not meet // the search condition then continue // to the next element if (!isset($value[$k]) || $value[$k] != $v) { // Skip two loops continue 2; } } // Append array element's key to the //result array $result[] = $value; } // Return result return $result; } function convertArray($result){ $a = array(); $b = array(); $c = array(); if(isset($result) > 0 && sizeof($result) > 0 ){ $produits = getProduits(); for($i = 0 ; $i < sizeof($produits) ; $i++){ $d = array(); if(in_array($produits[$i]['productname'], $a) == false){ $grossistes = getGrossiste(); for($bb = 0 ; $bb < sizeof($grossistes); $bb++){ $search_items = array('produit'=>$produits[$i]['productname'], 'grossiste'=>$grossistes[$bb]['accountname']); $val = search($result, $search_items); if(sizeof($val) == 0 || $val[0]['quantite'] == null){ $d = $d + [$bb+1=>0]; }else{ $d = $d + [$bb+1=> (int) $val[0]['quantite']]; } } $b = [0=>$produits[$i]['productname']]; $total =[ $bb+1=>array_sum($d)] ; $b = $b + $d + $total; array_push($c,$b); } array_push($a,$produits[$i]['productname']); } // SUM LIGNES $derniereLigne = ["TOTAL"]; for($u = 1 ; $u < $bb+2; $u++){ $long = sizeof($c); $sum = 0; for($ligne = 1 ; $ligne < $long; $ligne++){ $valeur = $c[$ligne][$u]; $sum = $sum + $valeur; } array_push($derniereLigne,$sum); } array_push($c,$derniereLigne); } return $c; } if(isset($_POST['year']) || isset($_POST['month'])){ $year = $_POST['year']; $monthNumber = $_POST['month']; } $result = getResultat($year ,$monthNumber); $result = convertArray($result); $grossistes = getGrossiste(); $produit = getProduits(); // print_r($export_res);die; echo '
".print_r($result,true).""); echo '
| produit/grossiste'; for($p = 0 ; $p < sizeof($grossistes); $p++){ echo ' | '.$grossistes[$p]['accountname'].''; } echo' | Total | 
|---|