<% /* English only for the moment, 7.0 or later. Areas that would need to be changed for other languages are marked with the **TRANSLATIONS** tag. */ var allQuarters = CRM.FindRecord("Custom_Captions","Capt_Family='Quarter'"); var maxYear = 0; var maxQuarter = 0; var maxYearOrder = 0; var tempTrans = ''; while (!allQuarters.eof) { tempTrans = allQuarters('capt_code'); if (parseInt(tempTrans.substring(0,4)) >= maxYear) { if(parseInt(tempTrans.substring(0,4)) > maxYear) { maxYear = parseInt(tempTrans.substring(0,4)); maxQuarter = parseInt(tempTrans.charAt(6)); maxYearOrder = tempTrans.substring(2,4); } else if ((parseInt(tempTrans.substring(0,4)) == maxYear) && (parseInt(tempTrans.charAt(6)) > maxQuarter)) { maxQuarter = parseInt(tempTrans.charAt(6)); } } allQuarters.NextRecord(); } if (CRM.Mode == Save) { if (maxQuarter == 4) { maxQuarter = 1; maxYearOrder++; maxYear++; var newYear = CRM.CreateRecord('Custom_Captions'); newYear.item('Capt_Code') = maxYear.toString(); newYear.item('Capt_Family') = 'fcst_year'; newYear.item('Capt_FamilyType') = 'Choices'; /* **TRANSLATIONS** You can add translations for other languages here. Just reference the applicable column in Custom_Captions, e.g for German use something like this: newYear.item('Capt_DE') = maxYear.toString(); */ newYear.item('Capt_US') = maxYear.toString(); newYear.item('Capt_UK') = maxYear.toString(); newYear.item('Capt_Order') = maxYearOrder; newYear.SaveChanges(); } else { maxQuarter++; } var newQuarter = CRM.CreateRecord('Custom_Captions'); newQuarter.item('Capt_Code') = maxYear + '-Q' + maxQuarter; newQuarter.item('Capt_Family') = 'Quarter'; newQuarter.item('Capt_FamilyType') = 'Choices'; newQuarter.item('Capt_Order') = parseInt(maxYear + '0' + maxQuarter); /* **TRANSLATIONS** Again, modify the below if you want this to work for other languages */ newQuarter.item('Capt_US') = maxYear + ' - Quarter ' + maxQuarter; newQuarter.item('Capt_UK') = maxYear + ' - Quarter ' + maxQuarter; newQuarter.SaveChanges(); Response.Redirect(CRM.Url("incForecasts.asp")); } else { CRM.Mode = Edit; var mainContainer = CRM.GetBlock('Container'); var contentArea = CRM.GetBlock('EntryGroup'); /* **TRANSLATIONS** Ideally you would create a new caption and use CRM.GetTrans(), but internationalising it full would require better language skills than my own. In any case, a caption could be added for any of the English tags below and GetTrans could be used if the screen needed to be properly multi-lingual. */ contentArea.Title = 'Add a forecasting period'; // Using this as a stub var periodField = CRM.GetBlock('Entry') with (periodField) { EntryType = 10; DefaultType = 1; DefaultValue = maxYear + ' - Quarter ' + maxQuarter; FieldName = "custom_periodStub"; // **TRANSLATIONS** Caption = "Latest quarter:"; CaptionPos = CapLeft; maxLength = 60; readonly = true; } // **TRANSLATIONS** var infoMessage = "
"; infoMessage+= "You will need to refresh your captions metadata after " infoMessage+= "adding new forecast periods.
" CRM.AddContent(infoMessage); contentArea.AddEntry(periodField); mainContainer.AddBlock(contentArea); mainContainer.DisplayButton(Button_Default) = false; mainContainer.DisplayButton(Button_Delete) = false; mainContainer.DisplayButton(Button_Continue) = false; // **TRANSLATIONS** var addPeriod = CRM.Button("Add quarter", "Addappointment.gif", "javascript:document.EntryForm.submit();"); mainContainer.AddButton(addPeriod); var newCancel = CRM.Button(CRM.GetTrans('GenCaptions','cancel'), "Cancel.gif", CRM.URL(1650)); mainContainer.AddButton(newCancel); var refreshMetadata = CRM.Button(CRM.GetTrans('Captions','RefreshMetaData'), "refresh.gif", CRM.URL(1651) + "&Mode=1&CLk=T&MenuName=&BC=Admin,Admin,AdminSystem,System,,Metadata&Parent=Metadata&Act2=760"); mainContainer.AddButton(refreshMetadata); CRM.AddContent(mainContainer.Execute()); Response.Write(CRM.GetPage('none')); } %>