{"id":21349,"date":"2022-04-11T13:56:08","date_gmt":"2022-04-11T11:56:08","guid":{"rendered":"https:\/\/help.openbee.com\/open-bee-scan-capture\/knowledge-base\/how-to-guides\/scripts-in-capture\/case-studies\/wording\/label-defined-based-on-a-time-period\/"},"modified":"2026-05-13T09:36:50","modified_gmt":"2026-05-13T07:36:50","slug":"label-defined-based-on-a-time-period","status":"publish","type":"page","link":"https:\/\/help.openbee.com\/en\/open-bee-scan-capture\/knowledge-base\/how-to-guides\/scripts-in-capture\/case-studies\/wording\/label-defined-based-on-a-time-period\/","title":{"rendered":"Label: Defined based on a time period"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"Libell&#xE9;:d&#xE9;finienfonctiond'unep&#xE9;riode-Principe:\">Principle:<\/h2>\n\n<p>Label changes mainly according to a period. This can be populated via indexes or item lines or the built-in period division functionality.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"Libell&#xE9;:d&#xE9;finienfonctiond'unep&#xE9;riode-Script:\">Script:<\/h2>\n\n<pre class=\"wp-block-code\"><code>var transformSiteLabel = function(strSite){\n\tif(strSite != null){\n\t\tstrSite = strSite.toUpperCase();\n\t\tif(strSite.length &gt; 3)\n\t\t\treturn strSite.substr(0, 3);\n\t\treturn strSite;\t\n\t} \n\treturn \"\";\n};\nvar getDateSplit = function(strDate){\n\tvar result = &#91;];\n\tvar res = strDate.split(\"\/\");\n\t\n\tif(res.length == 3){\n\t\tvar year = res&#91;2];\n\t\tif(res&#91;2].length == 4)\n\t\t\tyear = res&#91;2].substr(2,2);\n\t\tresult.push(res&#91;1]);\n\t\tresult.push(year);\n\t}\n\treturn result;\n};\nvar getMonthYear = function(strDate){\n\tvar res = getDateSplit(strDate);\n\tif(res.length == 2)\n\t\treturn res&#91;0] + \".\"+ res&#91;1];\n\treturn \"\";\n};\nvar getMonthYearPeriod = function(strDateStart, strDateEnd){\n\tvar resStart = getDateSplit(strDateStart);\n\tvar resEnd = getDateSplit(strDateEnd);\n\tif(resStart.length == 2 &amp;&amp; resEnd.length == 2)\n\t{\n\t\tif(resStart&#91;0] == resEnd&#91;0])\n\t\t\treturn resStart&#91;0] + \".\" + resEnd&#91;1];\n\t\telse\n\t\t\treturn resStart&#91;0] + \"-\"+ resEnd&#91;0] + \".\" + resEnd&#91;1];\n\t}\n\treturn \"\";\n};\nvar addToMonth = function(month, nbInc){\n\tvar res = parseInt(month);\n\tif(res &gt; 0){\n\t\tres += nbInc;\n\t\tif(res &gt; 12)\n\t\t\tres = res % 12;\n\t\tvar resStr = res + \"\";\n\t\tif(resStr.length &gt; 1)\n\t\t\treturn resStr;\n\t\telse \n\t\t\treturn \"0\" + resStr;\n\t}\n\treturn \"00\";\n}\nvar sortDate = function(pDates){\n\tvar dates = &#91;];\n\tfor(var i=0;i &lt; pDates.length;i++){\n\t\tvar pDate = pDates&#91;i];\n\t\tvar pSlipDate = getDateSplit(pDate);\n\t\tvar found = false;\n\t\tfor(var j=0;j &lt; dates.length;j++){\n\t\t\tvar jSplitDate = getDateSplit(dates&#91;j]);\n\t\t\tif((pSlipDate&#91;1] &lt; jSplitDate&#91;1]) || (pSlipDate&#91;1] == jSplitDate&#91;1] &amp;&amp; pSlipDate&#91;0] &lt; jSplitDate&#91;0]))\n\t\t\t{\n\t\t\t\tdates.splice(j,0,pDate);\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif(!found)\n\t\t\tdates.push(pDate);\n\t}\n\treturn dates;\n}\n\/**\n* pParameters : List des indexInfos sans les groupes\n**\/\nvar getSiteLabel = function(pParameters){\n\tvar textSite = \"\";\n\tif(IS_ARTICLE){\n\t\tvar articleLine = getArticleLine(pParameters, \"ARTICLES_INDEX\", ID_UNIT);\n\t\tif(articleLine != null &amp;&amp; articleLine.indexInfos != null){\n\t\t\tvar siteInfo = getIndexFromArticleLine(articleLine, \"SITE_ARTICLES_INDEX\");\n\t\t\tif(siteInfo != null)\n\t\t\t\ttextSite = transformSiteLabel(getTextFromIndexInfo(siteInfo));\n\t\t}\n\t\tif(textSite == \"\"){\n\t\t\tvar siteGeneralIndex = getFirstIndexFromID(pParameters, \"SITE_INDEX\");\n\t\t\tif(siteGeneralIndex != null)\n\t\t\t\treturn transformSiteLabel(getTextFromIndexInfo(siteGeneralIndex));\n\t\t}else\n\t\t\treturn textSite;\n\t}else{\n\t\tvar articleLines = getArticleLines(pParameters, \"ARTICLES_INDEX\");\n\t\tif(articleLines != null &amp;&amp; articleLines.length &gt; 0){\n\t\t\tvar sites = &#91;];\n\t\t\tfor(var i=0;i &lt; articleLines.length;i++){\n\t\t\t\tvar siteInfo = getIndexFromArticleLine(articleLines&#91;i], \"SITE_ARTICLES_INDEX\");\n\t\t\t\tif(siteInfo != null){\n\t\t\t\t\ttextSite = transformSiteLabel(getTextFromIndexInfo(siteInfo));\n\t\t\t\t\tif(textSite != \"\" &amp;&amp; sites.indexOf(textSite) == -1)\n\t\t\t\t\t\tsites.push(textSite);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(sites.length &gt; 2)\n\t\t\t\treturn \"ALL\";\n\t\t\telse{\n\t\t\t\ttextSite = \"\";\n\t\t\t\tfor(var i=0;i &lt; sites.length;i++){\n\t\t\t\t\ttextSite += sites&#91;i];\n\t\t\t\t\tif(i + 1 &lt; sites.length)\n\t\t\t\t\t\ttextSite += \" \";\n\t\t\t\t}\n\t\t\t}\n\t\t}else{\n\t\t\tvar siteGeneralIndex = getFirstIndexFromID(pParameters, \"SITE_INDEX\");\n\t\t\tif(siteGeneralIndex != null)\n\t\t\t\treturn transformSiteLabel(getTextFromIndexInfo(siteGeneralIndex));\n\t\t}\n\t}\n\treturn textSite;\n};\nvar getDateLabel = function(pParameters){\n\tvar textDate = \"\";\n\tif(IS_ARTICLE){\n\t\tvar articleLine = getArticleLine(pParameters, \"ARTICLES_INDEX\", ID_UNIT);\n\t\tif(articleLine != null &amp;&amp; articleLine.indexInfos != null &amp;&amp; articleLine.indexInfos.length &gt; 0){\n\t\t\tvar dateInfo = getIndexFromArticleLine(articleLine, \"DATE_ARTICLES_INDEX\");\n\t\t\tif(dateInfo != null)\n\t\t\t\ttextDate = getMonthYear(getTextFromIndexInfo(dateInfo));\n\t\t}\n\t\tif(textDate == \"\"){\n\t\t\tvar dateGeneralIndex = getFirstIndexFromID(pParameters,\"DATE_INDEX\");\n\t\t\tif(dateGeneralIndex != null)\n\t\t\t\treturn getMonthYear(getTextFromIndexInfo(dateGeneralIndex));\n\t\t}else\n\t\t\treturn textDate;\n\t}else if(IS_REPARTITION &amp;&amp; DATE_START_PERIOD_DIVISION != \"\" &amp;&amp; ID_GENERATION_DIVISION &gt; 0){\n\t\tvar dateSplit = getDateSplit(DATE_START_PERIOD_DIVISION);\n\t\tif(dateSplit.length == 2){\n\t\t\tvar month = addToMonth(dateSplit&#91;0], ID_GENERATION_DIVISION-1);\n\t\t\treturn month + \".\" + dateSplit&#91;1];\n\t\t}\n\t}else{\n\t\tvar articleLines = getArticleLines(pParameters, \"ARTICLES_INDEX\");\n\t\tif(articleLines != null &amp;&amp; articleLines.length &gt; 0){\n\t\t\tvar dates = &#91;];\n\t\t\tfor(var i=0;i &lt; articleLines.length;i++){\n\t\t\t\tvar dateInfo = getIndexFromArticleLine(articleLines&#91;i], \"DATE_ARTICLES_INDEX\");\n\t\t\t\tif(dateInfo != null){\n\t\t\t\t\ttextDate = getTextFromIndexInfo(dateInfo);\n\t\t\t\t\tif(textDate != \"\" &amp;&amp; dates.indexOf(textDate) == -1)\n\t\t\t\t\t\tdates.push(textDate);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(dates.length &gt; 1)\n\t\t\t{\n\t\t\t\tvar sortedDates = sortDate(dates);\n\t\t\t\treturn getMonthYearPeriod(sortedDates&#91;0], sortedDates&#91;sortedDates.length-1]);\n\t\t\t}\n\t\t\telse if(dates.length &gt; 0)\n\t\t\t\treturn getMonthYear(dates&#91;0]);\n\t\t}\n\t\t\n\t\tvar dateStartPeriodIndex = getFirstIndexFromID(pParameters,\"DEBUT_PERIODE_INDEX\");\n\t\tvar dateEndPeriodIndex = getFirstIndexFromID(pParameters,\"FIN_PERIODE_INDEX\");\n\t\tif(dateStartPeriodIndex != null &amp;&amp; dateEndPeriodIndex != null){\n\t\t\tvar textStartDate = getTextFromIndexInfo(dateStartPeriodIndex);\n\t\t\tvar textEndDate = getTextFromIndexInfo(dateEndPeriodIndex);\n\t\t\tif(textStartDate != \"\" &amp;&amp; textEndDate !=  \"\")\n\t\t\t\treturn getMonthYearPeriod(textStartDate, textEndDate);\n\t\t}\n\t\tvar dateGeneralIndex = getFirstIndexFromID(pParameters,\"DATE_INDEX\");\n\t\tif(dateGeneralIndex != null)\n\t\t\treturn getMonthYear(getTextFromIndexInfo(dateGeneralIndex));\n\t}\n\treturn textDate;\n};\nreturn getSiteLabel(pParameters) + \" \" + THIRDPART + \" \" + getDateLabel(pParameters);<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Principle: Label changes mainly according to a period. This can be populated via indexes or item lines or the built-in period division functionality. Script:<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":21271,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/ob-help-products.php","meta":{"footnotes":""},"class_list":["post-21349","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/comments?post=21349"}],"version-history":[{"count":1,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21349\/revisions"}],"predecessor-version":[{"id":21350,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21349\/revisions\/21350"}],"up":[{"embeddable":true,"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/pages\/21271"}],"wp:attachment":[{"href":"https:\/\/help.openbee.com\/en\/wp-json\/wp\/v2\/media?parent=21349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}