{"id":3826,"date":"2026-08-23T09:29:34","date_gmt":"2026-08-23T09:29:34","guid":{"rendered":"https:\/\/maroczain.com\/?page_id=3826"},"modified":"2026-08-23T12:25:30","modified_gmt":"2026-08-23T12:25:30","slug":"pole-fret-programmation-des-vols-2","status":"publish","type":"page","link":"https:\/\/maroczain.com\/en\/pole-fret-programmation-des-vols-2\/","title":{"rendered":"P\u00f4le Fret &#038; Programmation des vols"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n<title>P\u00f4le Fret &#038; Programmation des Vols | Maroc Zain Academy<\/title>\n\n<style>\n:root{\n  --navy:#062947;\n  --blue:#0d6fb8;\n  --gold:#d8b34f;\n  --green:#16845c;\n  --red:#c23b36;\n  --light:#f4f7fb;\n  --white:#fff;\n  --text:#172033;\n  --muted:#667085;\n  --shadow:0 12px 35px rgba(0,0,0,.08);\n}\n\n*{box-sizing:border-box}\n\nbody{\n  margin:0;\n  font-family:Arial,Helvetica,sans-serif;\n  background:var(--light);\n  color:var(--text);\n}\n\nheader{\n  background:linear-gradient(135deg,var(--navy),var(--blue));\n  color:white;\n  padding:70px 25px;\n}\n\n.wrap{\n  max-width:1280px;\n  margin:auto;\n}\n\n.hero{\n  display:grid;\n  grid-template-columns:1.2fr .8fr;\n  gap:30px;\n  align-items:center;\n}\n\n.badge{\n  display:inline-block;\n  background:var(--gold);\n  color:#172033;\n  padding:8px 16px;\n  border-radius:30px;\n  font-weight:bold;\n}\n\nh1{\n  font-size:52px;\n  line-height:1.05;\n  margin:15px 0;\n}\n\n.hero-card{\n  background:rgba(255,255,255,.1);\n  padding:25px;\n  border-radius:20px;\n}\n\nsection{\n  padding:55px 20px;\n}\n\n.section-title{\n  text-align:center;\n  margin-bottom:35px;\n}\n\n.section-title h2{\n  color:var(--navy);\n  font-size:36px;\n  margin:5px 0;\n}\n\n.grid{\n  display:grid;\n  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));\n  gap:20px;\n}\n\n.stat,\n.role-card,\n.module-card{\n  background:white;\n  border-radius:16px;\n  box-shadow:var(--shadow);\n}\n\n.stat{\n  padding:22px;\n  text-align:center;\n}\n\n.stat strong{\n  display:block;\n  font-size:34px;\n  color:var(--blue);\n}\n\n.role-card{\n  padding:24px;\n  cursor:pointer;\n  border-top:5px solid var(--blue);\n  transition:.2s;\n}\n\n.role-card:hover{\n  transform:translateY(-4px);\n}\n\n.role-card h3{\n  color:var(--navy);\n}\n\n.toolbar{\n  background:white;\n  padding:18px;\n  border-radius:15px;\n  display:flex;\n  gap:10px;\n  flex-wrap:wrap;\n  margin-bottom:25px;\n  box-shadow:var(--shadow);\n}\n\n.toolbar input,\n.toolbar select{\n  padding:12px;\n  border:1px solid #cfd8e3;\n  border-radius:8px;\n  flex:1;\n  min-width:170px;\n}\n\n.btn{\n  border:0;\n  border-radius:8px;\n  padding:12px 18px;\n  cursor:pointer;\n  font-weight:bold;\n}\n\n.btn-blue{background:var(--blue);color:white}\n.btn-gold{background:var(--gold);color:#172033}\n.btn-green{background:var(--green);color:white}\n.btn-red{background:var(--red);color:white}\n\n.modules{\n  display:grid;\n  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));\n  gap:18px;\n}\n\n.module-card{\n  padding:22px;\n  border-left:6px solid var(--blue);\n}\n\n.module-card.validated{\n  border-left-color:var(--green);\n}\n\n.module-card h3{\n  color:var(--navy);\n  margin-top:8px;\n}\n\n.tag{\n  display:inline-block;\n  padding:5px 10px;\n  border-radius:20px;\n  background:#eaf3fc;\n  color:var(--blue);\n  font-size:12px;\n  font-weight:bold;\n  margin:2px;\n}\n\n.progress{\n  height:16px;\n  background:#e2e8ef;\n  border-radius:20px;\n  overflow:hidden;\n}\n\n.progress-bar{\n  height:100%;\n  width:0%;\n  background:linear-gradient(90deg,var(--blue),var(--gold));\n  transition:.4s;\n}\n\n.lesson-panel{\n  background:white;\n  padding:28px;\n  border-radius:18px;\n  box-shadow:var(--shadow);\n  margin-top:30px;\n}\n\n.lesson-panel h2{\n  color:var(--navy);\n}\n\n.quiz-option{\n  display:block;\n  width:100%;\n  text-align:left;\n  padding:13px;\n  border:1px solid #d7dfe8;\n  background:white;\n  border-radius:9px;\n  margin:8px 0;\n  cursor:pointer;\n}\n\n.quiz-option.good{\n  background:#e7f7ef;\n  border-color:var(--green);\n}\n\n.quiz-option.bad{\n  background:#fff0ef;\n  border-color:var(--red);\n}\n\n.hidden{display:none}\n\nfooter{\n  background:#02182c;\n  color:white;\n  text-align:center;\n  padding:35px 20px;\n}\n\n@media(max-width:800px){\n  .hero{grid-template-columns:1fr}\n  h1{font-size:40px}\n}\n<\/style>\n<\/head>\n\n<body>\n\n<header>\n<div class=\"wrap hero\">\n\n<div>\n<span class=\"badge\">MAROC ZAIN ACADEMY<\/span>\n<h1>P\u00f4le Fret &#038; Programmation des Vols<\/h1>\n\n<p>\n5 cursus professionnels \u2022 100 modules \u2022 cas pratiques \u2022 QCM \u2022 examens \u2022 certification\n<\/p>\n\n<\/div>\n\n<div class=\"hero-card\">\n\n<h3>Progression globale<\/h3>\n\n<div class=\"progress\">\n  <div id=\"globalProgress\" class=\"progress-bar\"><\/div>\n<\/div>\n\n<p>\nModules valid\u00e9s :\n<strong id=\"validatedCount\">0<\/strong> \/ 100\n<\/p>\n\n<p>\nProgression :\n<strong id=\"globalPercent\">0%<\/strong>\n<\/p>\n\n<\/div>\n\n<\/div>\n<\/header>\n\n\n<section>\n<div class=\"wrap\">\n\n<div class=\"section-title\">\n<h2>Les 5 cursus<\/h2>\n<p>Choisissez un m\u00e9tier pour afficher ses 20 modules.<\/p>\n<\/div>\n\n<div class=\"grid\">\n\n<div class=\"role-card\" onclick=\"filterRole('import')\">\n<h3>\ud83d\udce6 Chef de Service Import Fret<\/h3>\n<p>Arriv\u00e9es, magasin, documents, douane, irr\u00e9gularit\u00e9s, KPI et management.<\/p>\n<\/div>\n\n<div class=\"role-card\" onclick=\"filterRole('export')\">\n<h3>\u2708\ufe0f Chef de Service Export Fret<\/h3>\n<p>R\u00e9servation, acceptation, AWB, capacit\u00e9, ULD, cut-off et supervision.<\/p>\n<\/div>\n\n<div class=\"role-card\" onclick=\"filterRole('agentfret')\">\n<h3>\ud83e\uddf3 Agent Fret<\/h3>\n<p>AWB, taxation, r\u00e9servation, tracking, import\/export et relation client.<\/p>\n<\/div>\n\n<div class=\"role-card\" onclick=\"filterRole('programmation')\">\n<h3>\ud83d\uddd3\ufe0f Agent Programmation des Vols<\/h3>\n<p>Programme, rotations, fr\u00e9quences, flotte, slots et optimisation r\u00e9seau.<\/p>\n<\/div>\n\n<div class=\"role-card\" onclick=\"filterRole('pc')\">\n<h3>\ud83d\udef0\ufe0f Agent PC \/ Programme Control<\/h3>\n<p>Suivi programme, changements, retards, annulations, OCC et reporting.<\/p>\n<\/div>\n\n<\/div>\n\n<\/div>\n<\/section>\n\n\n<section>\n<div class=\"wrap\">\n\n<div class=\"section-title\">\n<h2>Catalogue des 100 modules<\/h2>\n<\/div>\n\n<div class=\"toolbar\">\n\n<select id=\"roleFilter\" onchange=\"renderModules()\">\n<option value=\"all\">Tous les m\u00e9tiers<\/option>\n<option value=\"import\">Chef Service Import<\/option>\n<option value=\"export\">Chef Service Export<\/option>\n<option value=\"agentfret\">Agent Fret<\/option>\n<option value=\"programmation\">Programmation Vols<\/option>\n<option value=\"pc\">Programme Control<\/option>\n<\/select>\n\n<input\nid=\"searchModule\"\ntype=\"text\"\nplaceholder=\"Rechercher un module...\"\noninput=\"renderModules()\">\n\n<select id=\"statusFilter\" onchange=\"renderModules()\">\n<option value=\"all\">Tous statuts<\/option>\n<option value=\"validated\">Valid\u00e9s<\/option>\n<option value=\"pending\">\u00c0 faire<\/option>\n<\/select>\n\n<\/div>\n\n<div id=\"moduleList\" class=\"modules\"><\/div>\n\n<div id=\"lessonPanel\" class=\"lesson-panel hidden\"><\/div>\n\n<\/div>\n<\/section>\n\n\n<footer>\n<h2>MAROC ZAIN ACADEMY<\/h2>\n<p>P\u00f4le Fret &#038; Programmation des Vols<\/p>\n<\/footer>\n\n\n<script>\n\nconst roleNames = {\n  import:\"Chef de Service Import Fret\",\n  export:\"Chef de Service Export Fret\",\n  agentfret:\"Agent Fret\",\n  programmation:\"Agent Programmation des Vols\",\n  pc:\"Agent PC \/ Programme Control\"\n};\n\nconst modulesData = {\n\nimport:[\n\"Organisation d'une escale cargo\",\n\"R\u00f4le du Chef de Service Import\",\n\"Cha\u00eene logistique a\u00e9rienne\",\n\"AWB, HAWB et manifestes\",\n\"Acteurs compagnie, GHA, transitaire et douane\",\n\"Pr\u00e9paration avant arriv\u00e9e\",\n\"R\u00e9ception documentaire\",\n\"D\u00e9chargement et transfert fret\",\n\"Contr\u00f4le des exp\u00e9ditions\",\n\"Magasinage et localisation\",\n\"Produits p\u00e9rissables\",\n\"Animaux vivants\",\n\"Marchandises de valeur\",\n\"HUM et traitements particuliers\",\n\"Sensibilisation marchandises dangereuses\",\n\"Irr\u00e9gularit\u00e9s import\",\n\"Dommages et manquants\",\n\"R\u00e9clamations et litiges\",\n\"KPI et qualit\u00e9 import\",\n\"Management et simulation finale\"\n],\n\nexport:[\n\"Organisation du service export\",\n\"R\u00e9servation cargo\",\n\"Gestion de capacit\u00e9\",\n\"Documentation export\",\n\"AWB et HAWB\",\n\"Contr\u00f4les documentaires\",\n\"Poids, dimensions et conformit\u00e9\",\n\"Poids taxable\",\n\"Exigences de s\u00fbret\u00e9 applicables\",\n\"Pr\u00e9paration avant vol\",\n\"ULD et pr\u00e9paration physique\",\n\"Build-up selon responsabilit\u00e9s\",\n\"Cut-off export\",\n\"Coordination chargement\",\n\"Correspondances cargo\",\n\"Irr\u00e9gularit\u00e9s export\",\n\"Offload\",\n\"Changement de vol\",\n\"KPI et supervision\",\n\"Simulation export sous contrainte\"\n],\n\nagentfret:[\n\"Introduction au fret a\u00e9rien\",\n\"Terminologie cargo\",\n\"AWB\",\n\"Itin\u00e9raires cargo\",\n\"R\u00e9servation\",\n\"Poids brut\",\n\"Volume\",\n\"Poids taxable\",\n\"Principes tarifaires\",\n\"Contr\u00f4le documentaire\",\n\"Acceptation\",\n\"Traitement export\",\n\"Traitement import\",\n\"Tracking\",\n\"ULD\",\n\"PER, AVI, VAL, HUM\",\n\"Irr\u00e9gularit\u00e9s\",\n\"R\u00e9clamations\",\n\"Relation transitaires et clients\",\n\"Examen pratique Agent Fret\"\n],\n\nprogrammation:[\n\"Introduction \u00e0 la programmation\",\n\"R\u00e9seau a\u00e9rien\",\n\"Saisons de programme\",\n\"Fr\u00e9quences\",\n\"Horaires\",\n\"Rotations\",\n\"Flotte\",\n\"Temps de rotation\",\n\"Contraintes a\u00e9roportuaires\",\n\"Slots et couvre-feux\",\n\"Correspondances\",\n\"Utilisation flotte\",\n\"Programme r\u00e9gulier\",\n\"Vols suppl\u00e9mentaires\",\n\"Charters\",\n\"Changement machine\",\n\"Modification horaire\",\n\"Annulation de vol\",\n\"Reconstruction programme\",\n\"Simulation finale programmation\"\n],\n\npc:[\n\"R\u00f4le du Programme Control\",\n\"Lecture du programme\",\n\"Suivi des rotations\",\n\"Statuts op\u00e9rationnels\",\n\"Coordination intervenants\",\n\"Gestion retard\",\n\"Changement machine\",\n\"Modification horaire\",\n\"Annulation\",\n\"Vol suppl\u00e9mentaire\",\n\"Indisponibilit\u00e9 avion\",\n\"Contraintes a\u00e9roportuaires\",\n\"Perturbation r\u00e9seau\",\n\"Correspondances\",\n\"Coordination OCC\",\n\"Priorisation\",\n\"Communication de crise\",\n\"Journal des modifications\",\n\"Reporting et KPI\",\n\"Simulation journ\u00e9e r\u00e9seau perturb\u00e9e\"\n]\n\n};\n\n\nlet modules = [];\n\nObject.keys(modulesData).forEach(role=>{\n\n  modulesData[role].forEach((title,index)=>{\n\n    modules.push({\n      id: role+\"-\"+(index+1),\n      role:role,\n      number:index+1,\n      title:title\n    });\n\n  });\n\n});\n\n\nlet state =\nJSON.parse(\n  localStorage.getItem(\"MZA_FRET_PROGRAMMES\")\n) || {\n  validated:{}\n};\n\n\nfunction saveState(){\n\n  localStorage.setItem(\n    \"MZA_FRET_PROGRAMMES\",\n    JSON.stringify(state)\n  );\n\n  updateProgress();\n}\n\n\nfunction filterRole(role){\n\n  document.getElementById(\n    \"roleFilter\"\n  ).value = role;\n\n  renderModules();\n\n  document.getElementById(\n    \"moduleList\"\n  ).scrollIntoView({\n    behavior:\"smooth\"\n  });\n\n}\n\n\nfunction renderModules(){\n\n  const roleFilter =\n  document.getElementById(\n    \"roleFilter\"\n  ).value;\n\n  const search =\n  document.getElementById(\n    \"searchModule\"\n  ).value.toLowerCase();\n\n  const status =\n  document.getElementById(\n    \"statusFilter\"\n  ).value;\n\n  const list =\n  document.getElementById(\n    \"moduleList\"\n  );\n\n  list.innerHTML=\"\";\n\n\n  modules\n  .filter(m=>{\n\n    const roleOK =\n    roleFilter===\"all\"\n    || m.role===roleFilter;\n\n    const searchOK =\n    m.title\n    .toLowerCase()\n    .includes(search);\n\n    const validated =\n    !!state.validated[m.id];\n\n    const statusOK =\n    status===\"all\"\n    ||\n    (status===\"validated\" && validated)\n    ||\n    (status===\"pending\" && !validated);\n\n    return roleOK && searchOK && statusOK;\n\n  })\n  .forEach(m=>{\n\n    const validated =\n    !!state.validated[m.id];\n\n    const card =\n    document.createElement(\"div\");\n\n    card.className =\n    \"module-card \"+\n    (validated ? \"validated\" : \"\");\n\n    card.innerHTML = `\n\n    <span class=\"tag\">\n    ${roleNames[m.role]}\n    <\/span>\n\n    <span class=\"tag\">\n    Module ${m.number}\n    <\/span>\n\n    <h3>\n    ${m.title}\n    <\/h3>\n\n    <p>\n    Statut :\n    <strong>\n    ${validated ? \"Valid\u00e9\" : \"\u00c0 faire\"}\n    <\/strong>\n    <\/p>\n\n    <button\n    class=\"btn btn-blue\"\n    onclick=\"openModule('${m.id}')\">\n    Ouvrir le module\n    <\/button>\n\n    `;\n\n    list.appendChild(card);\n\n  });\n\n}\n\n\nfunction openModule(id){\n\n  const module =\n  modules.find(m=>m.id===id);\n\n  if(!module) return;\n\n\n  const panel =\n  document.getElementById(\n    \"lessonPanel\"\n  );\n\n  panel.classList.remove(\"hidden\");\n\n\n  panel.innerHTML = `\n\n  <span class=\"tag\">\n  ${roleNames[module.role]}\n  <\/span>\n\n  <span class=\"tag\">\n  Module ${module.number}\n  <\/span>\n\n  <h2>\n  ${module.title}\n  <\/h2>\n\n  <h3>Objectifs<\/h3>\n\n  <p>\n  Comprendre les principes du module,\n  savoir analyser une situation professionnelle,\n  identifier les contr\u00f4les n\u00e9cessaires\n  et prendre une d\u00e9cision conforme aux proc\u00e9dures applicables.\n  <\/p>\n\n  <h3>Mini-cours<\/h3>\n\n  <p>\n  Ce module doit \u00eatre travaill\u00e9 autour de quatre axes :\n  connaissances m\u00e9tier, proc\u00e9dure, analyse des risques\n  et communication op\u00e9rationnelle.\n  L'apprenant doit \u00eatre capable de distinguer\n  les faits confirm\u00e9s, les hypoth\u00e8ses et les d\u00e9cisions\n  n\u00e9cessitant une escalade.\n  <\/p>\n\n  <h3>Cas pratique<\/h3>\n\n  <p>\n  Une situation op\u00e9rationnelle inhabituelle survient\n  pendant votre prise de poste.\n  Plusieurs informations arrivent simultan\u00e9ment\n  et une d\u00e9cision rapide est attendue.\n  Vous devez identifier la priorit\u00e9,\n  v\u00e9rifier les donn\u00e9es utiles,\n  coordonner les intervenants\n  et tracer les actions.\n  <\/p>\n\n  <h3>QCM de validation<\/h3>\n\n  <p>\n  Quelle est la meilleure premi\u00e8re action ?\n  <\/p>\n\n  <button\n  class=\"quiz-option\"\n  onclick=\"answerModuleQuiz('${module.id}',0,this)\">\n  A \u2014 Agir imm\u00e9diatement sans v\u00e9rifier\n  <\/button>\n\n  <button\n  class=\"quiz-option\"\n  onclick=\"answerModuleQuiz('${module.id}',1,this)\">\n  B \u2014 V\u00e9rifier les informations essentielles et qualifier la situation\n  <\/button>\n\n  <button\n  class=\"quiz-option\"\n  onclick=\"answerModuleQuiz('${module.id}',2,this)\">\n  C \u2014 Attendre syst\u00e9matiquement\n  <\/button>\n\n  <button\n  class=\"quiz-option\"\n  onclick=\"answerModuleQuiz('${module.id}',3,this)\">\n  D \u2014 Transf\u00e9rer le probl\u00e8me sans analyse\n  <\/button>\n\n  <div id=\"quizFeedback-${module.id}\"><\/div>\n\n  `;\n\n\n  panel.scrollIntoView({\n    behavior:\"smooth\"\n  });\n\n}\n\n\nfunction answerModuleQuiz(\n  moduleId,\n  answer,\n  button\n){\n\n  const parent =\n  button.parentElement;\n\n  const buttons =\n  parent.querySelectorAll(\n    \".quiz-option\"\n  );\n\n  buttons.forEach(\n    b=>b.disabled=true\n  );\n\n\n  if(answer===1){\n\n    button.classList.add(\"good\");\n\n    state.validated[moduleId]=true;\n\n    saveState();\n\n    document.getElementById(\n      \"quizFeedback-\"+moduleId\n    ).innerHTML = `\n\n    <p style=\"\n    background:#e7f7ef;\n    padding:14px;\n    border-radius:8px\">\n\n    <strong>Module valid\u00e9.<\/strong><br>\n    Le bon r\u00e9flexe est de v\u00e9rifier\n    les informations essentielles avant de d\u00e9cider.\n\n    <\/p>\n\n    `;\n\n  }else{\n\n    button.classList.add(\"bad\");\n\n    buttons[1]\n    .classList.add(\"good\");\n\n    document.getElementById(\n      \"quizFeedback-\"+moduleId\n    ).innerHTML = `\n\n    <p style=\"\n    background:#fff0ef;\n    padding:14px;\n    border-radius:8px\">\n\n    <strong>\u00c0 revoir.<\/strong><br>\n    Une d\u00e9cision professionnelle\n    doit \u00eatre pr\u00e9c\u00e9d\u00e9e d'une v\u00e9rification\n    des informations essentielles.\n\n    <\/p>\n\n    `;\n\n  }\n\n\n  renderModules();\n\n}\n\n\nfunction updateProgress(){\n\n  const validated =\n  Object.keys(\n    state.validated\n  ).filter(\n    id=>state.validated[id]\n  ).length;\n\n\n  const percent =\n  Math.round(\n    validated \/\n    modules.length *\n    100\n  );\n\n\n  document.getElementById(\n    \"validatedCount\"\n  ).textContent =\n  validated;\n\n\n  document.getElementById(\n    \"globalPercent\"\n  ).textContent =\n  percent+\"%\";\n\n\n  document.getElementById(\n    \"globalProgress\"\n  ).style.width =\n  percent+\"%\";\n\n}\n\n\n\/* INIT *\/\n\nrenderModules();\nupdateProgress();\n\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>P\u00f4le Fret &#038; Programmation des Vols | Maroc Zain Academy MAROC ZAIN ACADEMY P\u00f4le Fret &#038; Programmation des Vols 5 cursus professionnels \u2022 100 modules \u2022 cas pratiques \u2022 QCM \u2022 examens \u2022 certification Progression globale Modules valid\u00e9s : 0 \/ 100 Progression : 0% Les 5 cursus Choisissez un m\u00e9tier pour afficher ses 20 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3826","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages\/3826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/comments?post=3826"}],"version-history":[{"count":2,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages\/3826\/revisions"}],"predecessor-version":[{"id":3918,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/pages\/3826\/revisions\/3918"}],"wp:attachment":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/media?parent=3826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}