Project
IfadAssetRequestWeb
Publicador de Conteúdos e Mídias
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> cofinancier_item.cofinancier_int_amount [in template "10154#10192#PROJECT" at line 153, column 70] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign cofinancierAmount = cofinanci... [in template "10154#10192#PROJECT" at line 153, column 41] ----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
3<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
4<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
5<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") />
6
7<#assign globalGroup = groupLocalService.getFriendlyURLGroup(companyId, "/global")>
8<#assign destMacroClassId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetEntry")>
9<#include "_TEMPLATE_CONTEXT_/${companyId}/${globalGroup.groupId}/${destMacroClassId}/ASSET_ENTRY_MACROS" />
10
11<#assign countries_vocabulary = assetVocabularyLocalService.getGroupVocabulary(company.getGroupId(), "Countries")>
12<#assign projects_vocabulary = assetVocabularyLocalService.getGroupVocabulary(company.getGroupId(), "Project")>
13
14<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(articleGroupId), .vars['reserved-article-id'].data)>
15<#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', article.resourcePrimKey)>
16
17<div class="container project-container generic-container">
18 <div class="row project-structure">
19
20 <div class="col-xl-10 col-lg-12 offset-xl-1">
21 <div class="row">
22 <div class="col-lg-6 col-md-12 pub-header">
23 <#if project_title.getData()?has_content>
24 <h1>${project_title.getData()}</h1>
25 <#elseif article.getTitle(locale)?has_content>
26 <h1>${article.getTitle(locale)}</h1>
27 <#else>
28 <h1>${abstract_title.getData()}</h1>
29 </#if>
30
31 <div class="main-content">${main_content.getData()}</div>
32 </div>
33
34 <div class="col-lg-5 col-md-12 offset-lg-1">
35 <div class="shadow mb-3 pb-3 bg-white rounded project-shadowbox">
36 <#if mapStream.getData()?has_content>
37 <img class="img-fluid w-100 project-map-image" src="${mapStream.getData()}"/>
38 </#if>
39 <div class="m-3 project-row">
40
41 <#if status.getData()?has_content>
42 <dd class="project-status mt-3">
43 <#if status.getData() == "B" || status.getData() == "C" || status.getData() ==
44 "D" || status.getData() == "I" || status.getData() ==
45 "J" || status.getData() == "K">
46 <span><@liferay.language key="status" />: <@liferay.language key="custom-msg-planned" /></span>
47 <#elseif status.getData() == "G" || status.getData() ==
48 "H" || status.getData() =="U" || status.getData() =="Z">
49 <span><@liferay.language key="status" />:
50 <@liferay.language key="custom-msg-ongoing" /></span>
51 <#elseif status.getData() == "M" || status.getData() == "N">
52 <span><@liferay.language key="status" />: <@liferay.language key="custom-msg-closed" /></span>
53 <#elseif status.getData() == "E">
54 <span><@liferay.language key="status" />: <@liferay.language key="approved" /></span>
55 <#elseif status.getData() == "F">
56 <span><@liferay.language key="status" />: <@liferay.language key="custom-msg-signed" /></span>
57 <#else>
58 <span><@liferay.language key="status" />: <@liferay.language key="custom-msg-not-planned" /></span>
59 </#if>
60 </dd>
61 </#if>
62
63 <#if type.getData() == "INVPR">
64 <#list asset.getCategories() as category>
65 <#if category.getVocabularyId() == countries_vocabulary.getVocabularyId()>
66 <#--<div class="project-row">-->
67 <dt class="project-row-title"><@liferay.language key="country" /></dt>
68 <dd class="project-row-text">
69 <a href="${getCountryUrl(category, locale)}">${category.getDescription(locale)}</a>
70 </dd>
71 <#--#break-->
72 </#if>
73 </#list>
74 </#if>
75
76 <#if status_date?? && status_date.getData()?has_content && status_date.getData() != "null">
77 <#assign formatted_status_date_obj =
78 dateUtil.parseDate("yyyy-MM-dd", status_date.getData(), locale)>
79
80 <#assign formatted_status_date =
81 dateUtil.getDate(formatted_status_date_obj, "dd MMMM yyyy", locale)>
82
83 <dt class="project-row-title"><@liferay.language key="approval-date" /></dt>
84 <dd class="project-row-text">${formatted_status_date}</dd>
85 </#if>
86
87 <#if type.getData() == "GRANT" && beneficiary.getData()?has_content>
88 <dt class="project-row-title"><@liferay.language key="recipient" /></dt>
89 <dd class="project-row-text">${beneficiary.getData()}</dd>
90 </#if>
91
92 <#-- Don't display duration for "planned" projects-->
93 <#if !(status.getData() == "B" || status.getData() == "C" || status.getData() ==
94 "D" || status.getData() == "I" || status.getData() == "J" || status.getData() ==
95 "K")>
96 <#if duration.getData()?has_content>
97 <dt class="project-row-title"><@liferay.language key="duration" /></dt>
98 <dd class="project-row-text">${duration.getData()}</dd>
99 </#if>
100 </#if>
101
102 <#if sector.getData()?has_content && sector.getData() != " ">
103 <dt class="project-row-title"><@liferay.language key="sector" /></dt>
104 <dd class="project-row-text"><@liferay.language key="sector.${sector.getData()?lower_case}" /></dd>
105 </#if>
106
107 <#if current_amount.getData()?has_content>
108 <#assign totalProjectCost = current_amount.getData()?replace(",",".")?number?double>
109
110 <dt class="project-row-title">
111 <#if type.getData() == "GRANT">
112 <@liferay.language key="total-cost" />
113 <#elseif type.getData() == "INVPR">
114 <@liferay.language key="total-project-cost" />
115 </#if>
116 </dt>
117 <dd class="project-row-text">
118 <#if totalProjectCost < 2.0>
119 ${languageUtil.format(locale, "million-usd", ifadNumberFormatter.format(locale, totalProjectCost))}
120 <#else>
121 ${languageUtil.format(locale, "millions-usd", ifadNumberFormatter.format(locale, totalProjectCost))}
122 </#if>
123 </dd>
124 </#if>
125
126 <#if current_ifad_amount?? && current_ifad_amount.getData()?has_content>
127 <#assign ifadFinancing = current_ifad_amount.getData()?replace(",",".")?number?double>
128
129 <dt class="project-row-title">
130 <#if type.getData() == "GRANT">
131 <@liferay.language key="ifad-grant-amount" />
132 <#elseif type.getData() == "INVPR">
133 <@liferay.language key="ifad-financing" />
134 </#if>
135 </dt>
136 <dd class="project-row-text">
137 <#if ifadFinancing < 2.0>
138 ${languageUtil.format(locale, "million-usd", ifadNumberFormatter.format(locale, ifadFinancing))}
139 <#else>
140 ${languageUtil.format(locale, "millions-usd", ifadNumberFormatter.format(locale, ifadFinancing))}
141 </#if>
142 </dd>
143 </#if>
144
145 <#if type.getData() == "INVPR">
146 <#if cofinancier_int?? &&
147 cofinancier_int.getData()?has_content &&
148 cofinancier_int.getSiblings()?has_content &&
149 cofinancier_int.getSiblings()[0].getData()?has_content >
150
151 <dt class="project-row-title"><@liferay.language key="co-financiers-int" /></dt>
152 <#list cofinancier_int.getSiblings() as cofinancier_item>
153 <#assign cofinancierAmount = cofinancier_item.cofinancier_int_amount.data?replace(",", ".")?number?double>
154
155 <dd class="project-row-text">
156 <#if cofinancierAmount < 2.0>
157 ${cofinancier_item.getData()} ${languageUtil.format(locale, "million-usd", ifadNumberFormatter.format(locale, cofinancierAmount))}
158 <#else>
159 ${cofinancier_item.getData()} ${languageUtil.format(locale, "millions-usd", ifadNumberFormatter.format(locale, cofinancierAmount))}
160 </#if>
161 </dd>
162 </#list>
163 </#if>
164
165 <#if cofinancier_dom?? &&
166 cofinancier_dom.getData()?has_content &&
167 cofinancier_dom.getSiblings()?has_content &&
168 cofinancier_dom.getSiblings()[0].getData()?has_content>
169
170 <dt class="project-row-title"><@liferay.language key="co-financiers-dom" /></dt>
171 <#list cofinancier_dom.getSiblings() as cofinancier_item>
172 <#assign cofinancierAmount = cofinancier_item.cofinancier_dom_amount.data?replace(",", ".")?number?double>
173
174 <dd class="project-row-text">
175 <#if cofinancierAmount < 2.0>
176 ${cofinancier_item.getData()} ${languageUtil.format(locale, "million-usd", ifadNumberFormatter.format(locale, cofinancierAmount))}
177 <#else>
178 ${cofinancier_item.getData()} ${languageUtil.format(locale, "millions-usd", ifadNumberFormatter.format(locale, cofinancierAmount))}
179 </#if>
180 </dd>
181 </#list>
182 </#if>
183
184 <#if financing_gap?? && financing_gap.getData()?has_content &&
185 financing_gap.getData() != "null">
186 <dt class="project-row-title"><@liferay.language key="financing-gap" /></dt>
187
188 <#assign financingGap = financing_gap.getData()?replace(",",".")?number?double>
189
190 <dd class="project-row-text">
191 <#if financingGap < 2.0>
192 ${languageUtil.format(locale, "million-usd", ifadNumberFormatter.format(locale, financingGap))}
193 <#else>
194 ${languageUtil.format(locale, "millions-usd", ifadNumberFormatter.format(locale, financingGap))}
195 </#if>
196 </dd>
197 </#if>
198
199 <#if lending_terms?? && lending_terms.getData()?has_content>
200 <dt class="project-row-title"><@liferay.language key="financing-terms" /></dt>
201 <dd class="project-row-text">
202 <#if lending_terms.getData() == "null">
203 <@liferay.language key="not-available" />
204 <#else>
205 <@liferay.language key="lending-term.${lending_terms.getData()?lower_case}" />
206 </#if>
207 </dd>
208 </#if>
209 </#if>
210
211 <#list asset.getCategories() as category>
212 <#if category.getVocabularyId() == projects_vocabulary.getVocabularyId()>
213 <dt class="project-row-title">
214 <#if type.getData() == "GRANT">
215 <@liferay.language key="grant-id" />
216 <#elseif type.getData() == "INVPR">
217 <@liferay.language key="project-id" />
218 </#if>
219 </dt>
220 <dd class="project-row-text">${category.name}</dd>
221 <#--#break-->
222 </#if>
223 </#list>
224
225 <#if type.getData() == "INVPR" && contact.getData()?has_content && contact.getData() != "null">
226 <dt class="project-row-title"><@liferay.language key="project-contact" /></dt>
227 <dd class="project-row-text">
228 <#if contact_email.getData()?has_content>
229 <a href="mailto:${contact_email.getData()}">${contact.getData()}</a>
230 <#else>
231 ${contact.getData()}
232 </#if>
233 </dd>
234 </#if>
235 </div>
236 </div>
237 </div>
238 </div>
239 </div>
240 </div>
241</div>
President's reports
President's reports
Project design reports
Project design reports
Supervision and implementation support documents
Supervision and implementation support documents
Environmental and social impact assessment
Final environmental and social management framework
Interim (mid-term) review report
Interim (mid-term) review report
Resettlement action framework
PCR digest
Special study
Project list
Audit and Financial Statements
Audit and Financial Statements
2021-Ministry of Finance-AUDIT_REPORT
Ano: 2021
2020-Ministry of Finance-AUDIT_REPORT
Ano: 2020
Project completion report
Project completion report
Co-financiers
Related
Related
Tajikistan: Livestock and Pasture Development Project II
Outubro 2023
In the pursuit of sustainable rural development, the LPDP-II project empowered rural people, enabling them to establish Pasture User Unions and create Community Livestock Pasture Management Plans to address the degradation of pasture resources.
Management of Livestock Using Rotational Grazing
Outubro 2022
This publication provides a brief background on rangeland management in Tajikistan and offers key principles of rotational grazing practices that explain how and why such systems can achieve ecologically sustainable outcomes.