Insights Home

Ruta de navegación

De la bóveda de Brink’s

Le brindamos perspectivas sobre eficiencia operativa, tendencias emergentes y perspectivas de la industria que realmente puede utilizar.

Tres mitos acerca de la gestión de dinero en efectivo

No existe ninguna receta secreta para tener una empresa exitosa. Pero hay un sencillo ingrediente para mejorar las operaciones y el flujo monetario: asegurarse de tener una buena gestión de dinero en efectivo. Es un componente del manejo del negocio que, con frecuencia, se pasa por alto, pero que puede hacer una gran diferencia de ahorro de tiempo y dinero. Hay tres errores de concepto comunes que impiden a los propietarios de las empresas optimizar las soluciones de gestión de dinero en efectivo.


Leer más

Publicador de contenidos

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> templateKey  [in template "20101#20128#81003" at line 135, column 51]

----
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: @liferay_journal["journal-article"] a...  [in template "20101#20128#81003" at line 133, column 29]
----
1<#assign caseStudyStructureId = brinks_freemarker_util.getStructureIdsByStructureKey(["CASE_STUDY"])!"" /> 
2<#assign blogStructureId = brinks_freemarker_util.getStructureIdsByStructureKey(["BLOG_POST"])!"" /> 
3<#assign eventStructureId = brinks_freemarker_util.getStructureIdsByStructureKey(["EVENT"])!"" /> 
4<#assign insightTopics = brinks_freemarker_util.getInsightTopicsByGroupIdAndLocale(themeDisplay.getSiteGroupId())!"" /> 
5 
6<div class="component-blue brinks-filter-container insight-container"> 
7    <div class="page-width spacing-small"> 
8        <div class="card-filters"> 
9            <h2 class="text-center card-filters-title f-white"><@liferay.language key="our-insights" /></h2> 
10            <@portlet["renderURL"] var="searchURL"></@> 
11            <@liferay_aui["form"] action="${searchURL}" name="fm1" method="get"> 
12                <div class="row relative"> 
13                    <#if insightTopics?has_content> 
14                        <div class="col-12 col-md-4 col-lg-3"> 
15                            <div class="brinks-select"> 
16                                <@liferay_aui["select"] id="categoryId" name="categoryId" label=""> 
17                                    <@liferay_aui["option"] label="all-topics" value="0"></@> 
18                                    <#list insightTopics as topic> 
19                                        <@liferay_aui["option"] label="${topic.getTitle(locale)}" value="${topic.getCategoryId()}"></@><#--passing category id as value  --> 
20                                    </#list> 
21                                </@> 
22                            </div> 
23                        </div>                     
24                        <div class="col-12 col-md-4 col-lg-3"> 
25                            <div class="brinks-select"> 
26                                <@liferay_aui["select"] id="classTypeId" name="classTypeId" label=""> 
27                                    <@liferay_aui["option"] label="all-content-types" value="0"></@> 
28                                    <#if caseStudyStructureId?has_content> 
29                                        <@liferay_aui["option"] label="case-study" value="${caseStudyStructureId[0]}"></@><#--passing structure Id as value  --> 
30                                    </#if> 
31                                    <#if blogStructureId?has_content> 
32                                        <@liferay_aui["option"] label="blog-posts" value="${blogStructureId[0]}"></@> 
33                                    </#if> 
34                                    <#if eventStructureId?has_content> 
35                                        <@liferay_aui["option"] label="events" value="${eventStructureId[0]}"></@> 
36                                    </#if> 
37                                </@> 
38                            </div> 
39                        </div> 
40                        <div class="col-12 col-md-4 col-lg-3"> 
41                            <div class="brinks-select"> 
42                                <#assign endDate = 2019 /> 
43                                <@liferay_aui["select"] id="orderDate" name="orderDate" label=""> 
44                                    <@liferay_aui["option"] label="most-recent" value=""></@> 
45                                    <#list .now?string('yyyy')?number+1..endDate as i> 
46                                        <@liferay_aui["option"] value="${i}">${i}</@> 
47                                    </#list> 
48                                </@> 
49                            </div> 
50                        </div> 
51                        <div class="col-12 col-md-12 col-lg-3"> 
52                            <div class="brinks-input"> 
53                                <@liferay_aui["input"] type="text" name="keywords" label="" placeholder="keywords"></@>  
54                            </div> 
55                        </div> 
56                    <#else> 
57                        <div class="col-12 col-md-4"> 
58                            <div class="brinks-select"> 
59                                <@liferay_aui["select"] id="classTypeId" name="classTypeId" label=""> 
60                                    <@liferay_aui["option"] label="all-content-types" value="0"></@> 
61                                    <#if caseStudyStructureId?has_content> 
62                                        <@liferay_aui["option"] label="case-study" value="${caseStudyStructureId[0]}"></@><#--passing structure Id as value  --> 
63                                    </#if> 
64                                    <#if blogStructureId?has_content> 
65                                        <@liferay_aui["option"] label="blog-posts" value="${blogStructureId[0]}"></@> 
66                                    </#if> 
67                                    <#if eventStructureId?has_content> 
68                                        <@liferay_aui["option"] label="events" value="${eventStructureId[0]}"></@> 
69                                    </#if> 
70                                </@> 
71                            </div> 
72                        </div> 
73                        <div class="col-12 col-md-4"> 
74                            <div class="brinks-select"> 
75                                <#assign endDate = 2019 /> 
76                                <@liferay_aui["select"] id="orderDate" name="orderDate" label=""> 
77                                    <@liferay_aui["option"] label="most-recent" value=""></@> 
78                                    <#list .now?string('yyyy')?number+1..endDate as i> 
79                                        <@liferay_aui["option"] value="${i}">${i}</@> 
80                                    </#list> 
81                                </@> 
82                            </div> 
83                        </div> 
84                        <div class="col-12 col-md-4"> 
85                            <div class="brinks-input"> 
86                                <@liferay_aui["input"] type="text" name="keywords" label="" placeholder="keywords"></@>  
87                            </div> 
88                        </div> 
89                    </#if> 
90                    <@liferay_aui["input"] type="hidden" name="scrollIntoView" value="false"></@> 
91                    <@liferay_aui["input"] type="hidden" id="enableCustomDateRangeFilter" name="enableCustomDateRangeFilter" value=false></@> 
92                    <@liferay_aui["input"] type="hidden" name="customDateAttributeKeys"></@> 
93                    <@liferay_aui["input"] type="hidden" id="fromDate" name="fromDate"></@> 
94                    <@liferay_aui["input"] type="hidden" id="toDate" name="toDate"></@> 
95                    <@liferay_aui["input"] type="hidden" id="enableCustomAttributesFilter" name="enableCustomAttributesFilter" value=false></@> 
96                    <@liferay_aui["input"] type="hidden" id="customAttributeKeyValueMap" name="customAttributeKeyValueMap"></@> 
97                    <@liferay_aui["input"] type="hidden" id="customDateRangeJSON" name="customDateRangeJSON"></@> 
98                    <@liferay_aui["input"] type="hidden" id="additionalParams" name="additionalParams" value="scrollIntoView,orderDate,classTypeId"></@> 
99 
100                    <#assign queryString = httpUtil.getQueryString(searchURL)> 
101                    <#assign parameterMap = httpUtil.getParameterMap(queryString)> 
102                    <#list parameterMap?keys as key> 
103                        <input name="${key}" type="hidden" value="${parameterMap[key][0]}" /> 
104                    </#list> 
105                </div> 
106            </@> 
107        </div> 
108    </div> 
109</div> 
110 
111<#if entries?has_content> 
112    <div class="component-gray title-section nobutton" id="insight-list"> 
113        <div class="page-width spacing-small"> 
114            <div class="row equal-content-height"> 
115                <#list entries as curEntry> 
116                    <#if "com.liferay.journal.model.JournalArticle" == curEntry.getAssetRenderer().getClassName() > 
117 
118                        <#assign assetRenderer = curEntry.getAssetRenderer()> 
119                        <#assign article = assetRenderer.getArticle()> 
120                        <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 
121                        <div class="col-lg-4 col-md-6"> 
122                            <div class="custom-edit align-card"> 
123                                <@getEditIcon /> 
124                            </div> 
125 
126                            <#if curEntry.getAssetRenderer().getArticle().getDDMStructure().getName()?contains("Case Study")> 
127                            <#assign templateKey = (themeDisplay.getCompanyGroupId() == assetRenderer.getGroupId())?then('GLOBAL_CASE_STUDY_ABSTRACT', 'CASE_STUDY_ABSTRACT')/> 
128                            <#elseif curEntry.getAssetRenderer().getArticle().getDDMStructure().getName()?contains("Blog Post")> 
129                                <#assign templateKey = (themeDisplay.getCompanyGroupId() == assetRenderer.getGroupId())?then('GLOBAL_BLOG_POST_ABSTRACT', 'BLOG_POST_ABSTRACT')/> 
130                            <#elseif curEntry.getAssetRenderer().getArticle().getDDMStructure().getName()?contains("Event")> 
131                                <#assign templateKey = (themeDisplay.getCompanyGroupId() == assetRenderer.getGroupId())?then('GLOBAL_EVENT_ABSTRACT', 'WEBINAR_ABSTRACT')/> 
132                            </#if> 
133                            <@liferay_journal["journal-article"] 
134                                articleId="${curEntry.getAssetRenderer().getArticle().getArticleId()}"  
135                                ddmTemplateKey="${templateKey}" 
136                                groupId=curEntry.getAssetRenderer().getGroupId() /> 
137 
138                        </div> 
139                    </#if> 
140                </#list> 
141            </div> 
142        </div> 
143    </div> 
144<#else> 
145    <div class="alert alert-info"> 
146        <@liferay_ui["message"] key="there-are-no-results" /> 
147    </div> 
148</#if> 
149 
150<#macro getEditIcon> 
151    <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
152        <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("NORMAL"), themeDisplay.getURLCurrent())!"" /> 
153 
154        <#if validator.isNotNull(editPortletURL)> 
155            <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 
156 
157            <@liferay_ui["icon"] 
158                cssClass="icon-monospaced visible-interaction" 
159                icon="pencil" 
160                markupView="lexicon" 
161                message=title 
162                url=editPortletURL.toString() 
163            /> 
164        </#if> 
165    </#if> 
166</#macro> 
167 
168<script> 
169    var prefix = "#" + "${portletDisplay.namespace}" 
170    var formId = prefix + "fm1"; 
171 
172    $(document).ready(function () { 
173 
174        /* Grab form field inputs */ 
175        var orderDate = $(prefix + "orderDate"); 
176 
177        /* Grab hidden form inputs */ 
178        var fromDate = $(prefix + "fromDate"); 
179        var toDate = $(prefix + "toDate"); 
180        var customDateRangeFilter = $(prefix + "enableCustomDateRangeFilter"); 
181        var customDateRangeJSON = $(prefix + "customDateRangeJSON"); 
182        var customAttributesFilter = $(prefix + "enableCustomAttributesFilter"); 
183        var customAttributeKeyValueMap = $(prefix + "customAttributeKeyValueMap"); 
184        var customDateAttributeKeys = $(prefix + "customDateAttributeKeys"); 
185        var insightSelects = $('.brinks-select'); 
186         
187        for (let i = 0; i < insightSelects.length; i++) { 
188            insightSelects[i].addEventListener('click', function(event) { 
189                $("form[name='${portletDisplay.namespace}fm1']").submit(); 
190            }); 
191
192        /* Handle onFormSubmition */ 
193        $(prefix + "fm1").submit(function () { 
194            $(fromDate).val(""); 
195            $(toDate).val(""); 
196            let dateRangeJson = {}; 
197 
198            if($(orderDate).val().length > 0){ 
199                var fromDateSelection = $(orderDate).val() + "-01-01"; 
200                var toDateSelection = $(orderDate).val() + "-" + (12) + "-" + (31); 
201                 
202                $(fromDate).val(fromDateSelection); 
203                $(toDate).val(toDateSelection); 
204                 
205                dateRangeJson["filterable_startDate"] = {}; 
206                dateRangeJson["filterable_startDate"]['fromDate'] = fromDateSelection; 
207                dateRangeJson["filterable_startDate"]['toDate'] = toDateSelection; 
208                 
209                var blogFieldName = "filterable_date_${locale}"; 
210                var caseFieldName = "filterable_eventDate_${locale}"; 
211                 
212                dateRangeJson[blogFieldName] = {}; 
213                dateRangeJson[blogFieldName]['fromDate'] = fromDateSelection; 
214                dateRangeJson[blogFieldName]['toDate'] = toDateSelection; 
215 
216                dateRangeJson[caseFieldName] = {}; 
217                dateRangeJson[caseFieldName]['fromDate'] = fromDateSelection; 
218                dateRangeJson[caseFieldName]['toDate'] = toDateSelection; 
219
220 
221            /* Generate customDateRangeJSON String */ 
222            if(Object.keys(dateRangeJson).length > 0){ 
223                $(customDateRangeFilter).val(true); 
224                $(customDateRangeJSON).val(JSON.stringify(dateRangeJson)); 
225
226 
227            $(prefix + "scrollIntoView").val('true'); 
228        }); 
229 
230        /* Remove quotes on page load */ 
231        var $keywordsInput = $("input[name='${portletDisplay.namespace}keywords']"); 
232        if ($keywordsInput.val().length > 0) { 
233            if ($keywordsInput.val().indexOf("\"") == 0) { 
234                $keywordsInput.val($keywordsInput.val().slice(1)); 
235
236            if ($keywordsInput.val().lastIndexOf("\"") == ($keywordsInput.val().length - 1)) { 
237                $keywordsInput.val($keywordsInput.val().slice(0, $keywordsInput.val().length - 1)); 
238
239
240 
241        /* Add quotes on form submit */ 
242        $("form[name='${portletDisplay.namespace}fm1']").submit(function () { 
243            var $keywordsInput = $("input[name='${portletDisplay.namespace}keywords']"); 
244            if ($keywordsInput.val().length > 0) { 
245                if ($keywordsInput.val().indexOf("\"") == -1) { 
246                    $keywordsInput.val("\"" + $keywordsInput.val()); 
247
248                if ($keywordsInput.val().lastIndexOf("\"") == 0) { 
249                    $keywordsInput.val($keywordsInput.val() + "\""); 
250
251
252        }); 
253 
254    }); 
255</script>