﻿
function OnInit(initData) {
	initData.name = 'sort-create-test';
	initData.version = '1.0';
	initData.copyright = '(c) 2026 Cris';
	//	initData.url = 'https://resource.dopus.com/c/buttons-scripts/16';
	initData.desc = '';
	initData.default_enable = true;
	initData.min_version = '13.0';

}

// Called to add columns to Opus
function OnAddColumns(addColData) {
	var col = addColData.AddColumn();
	col.name = 'sort_create_test';
	col.method = 'Onsort_create_test';
	col.justify = 'right';
	col.type = 'number,signed';
	col.autogroup = true;
}

var obj;
// Implement the sort_create_test column
function Onsort_create_test(scriptColData) {
	var item = scriptColData.item;
	if (!item) return;
	var tab = scriptColData.tab;
	if (!tab) {
		scriptColData.value = 1;
		return;
	}
	if (!obj) obj = BuildArray(tab);
	scriptColData.value = obj[item.def_value] || -1;
}

function BuildArray(tab) {
	var arr = [];
	var items = tab.all;
	for (var i = items.count - 1; i >= 0; i--) {
		try {
			var create = items(i).create;
			create = create ? create.GetTime() : 0;
			arr.push({
				key: items(i),
				value: create
			});
		}
		catch (err) {
			DOpus.Output('Something has failed bla bla...');
		};
	}
	arr.sort(function(A, B) {
		return B.value - A.value;
	});
	var obj = {};
	for (var i = 0; i < arr.length; i++) {
		var item = arr[i].key;
		obj[item.def_value] = i + 1;
	}
	return obj;
}