Files
crm.e5.pl/modules/EcmWorkCards/js/DetailViewDocumentReady.js
2024-04-27 09:23:34 +02:00

401 lines
19 KiB
JavaScript

$(document).ready(function () {
var tmp = $.parseJSON($("input[name='tableEcmActions_list']").val());
tmp = b64_to_utf8(tmp);
tmp = $.parseJSON(tmp);
InitializeTableEcmActions(tmp);
var sumanetto = 0;
var sumabrutto = 0;
$.each(tmp, function (key, value) {
sumanetto = sumanetto + UnformatNumber(value['ecmactioncost_display']);
sumabrutto = sumabrutto + UnformatNumber(value['costbrutto_display']);
});
$('#sum_netto').text(FormatNumber(sumanetto));
$('#sum_brutto').text(FormatNumber(sumabrutto));
});
function InitializeTableEcmActions(tmp) {
$('#tableEcmActions').appendGrid({
hideRowNumColumn: true,
initData: tmp,
initRows: 0,
columns: [
{
name: 'produkt',
display: 'Produkt',
type: 'custom',
ctrlClass: 'inputs',
ctrlAttr : {readonly : 'readonly'},
displayCss: {
// 'width': '30%',
'vertical-align': 'middle',
'text-align': 'center',
'background-color': 'rgb(224,240,255)',
'border': '1px solid rgb(48,192,255)',
'height': '0px',
'font-family': 'Arial',
'font-size': '12px',
'color': 'black',
},
value: ['', '', ''],
customBuilder: function (parent, idPrefix, name, uniqueIndex) {
// Prepare the control ID/name by using idPrefix, column name and uniqueIndex
var ctrlId = idPrefix + '_' + name + '_table_' + uniqueIndex;
var upperRowId = idPrefix + '_' + name + '_upperRow_' + uniqueIndex;
var lowerRowId = idPrefix + '_' + name + '_lowerRow_' + uniqueIndex;
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
var ctrl = document.createElement('table');
$(ctrl).attr({ id: ctrlId, name: ctrlId }).appendTo(parent);
$(ctrl).css('border', '0px solid white');
$(ctrl).addClass('positions');
var upperRow = document.createElement('tr');
$(upperRow).attr({ id: upperRowId, name: upperRowId }).appendTo(ctrl);
$(upperRow).css('border', '0px solid white');
var lowerRow = document.createElement('tr');
$(lowerRow).attr({ id: lowerRowId, name: lowerRowId }).appendTo(ctrl);
$(lowerRow).css('border', '0px solid white');
var upperCell = document.createElement('td');
$(upperCell).attr({ id: upperCellId, name: upperCellId }).appendTo(upperRow);
$(upperCell).css('border', '0px solid white');
upperCell.style.overflow = "hidden";
var lowerCell = document.createElement('td');
$(lowerCell).attr({ id: lowerCellId, name: lowerCellId }).appendTo(lowerRow);
$(lowerCell).css('border', '0px solid white');
lowerCell.style.overflow = "hidden";
// Create extra controls and add to container
// Finally, return the container control
return ctrl;
},
customGetter: function (idPrefix, name, uniqueIndex) {
return '0';
},
customSetter: function (idPrefix, name, uniqueIndex, value) {
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
if( Object.prototype.toString.call( value ) === '[object Array]' ) {
var indeksUrl = document.createElement('a');
indeksUrl.href = 'index.php?module=EcmProducts&return_module=EcmProducts&action=DetailView&record=' + value[2];
indeksUrl.onclick = function (){
window.open('index.php?module=EcmProducts&return_module=EcmProducts&action=DetailView&record=' + value[2],'1426150651552','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=1,resizable=1,left=0,top=0');
return false;
};
indeksUrl.title = value[0];
indeksUrl.textContent = value[0];
var nazwaUrl = document.createElement('a');
nazwaUrl.href = 'index.php?module=EcmProducts&return_module=EcmProducts&action=DetailView&record=' + value[2];
nazwaUrl.onclick = function (){
window.open('index.php?module=EcmProducts&return_module=EcmProducts&action=DetailView&record=' + value[2],'1426150651552','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=1,resizable=1,left=0,top=0');
return false;
};
nazwaUrl.title = value[1];
if (typeof value[1] === "undefined") {
nazwaUrl.textContent = value[1];
}else{
nazwaUrl.textContent = value[1].replace('"','"');
}
$('#' + upperCellId).html(indeksUrl);
$('#' + lowerCellId).html(nazwaUrl);
}
}
}, {
name: 'czynnosc',
display: 'Czynność',
type: 'custom',
ctrlClass: 'inputs',
ctrlAttr : {readonly : 'readonly'},
displayCss: {
// 'width': '30%',
'vertical-align': 'middle',
'text-align': 'center',
'background-color': 'rgb(224,240,255)',
'border': '1px solid rgb(48,192,255)',
'height': '0px',
'font-family': 'Arial',
'font-size': '12px',
'color': 'black',
},
value: ['', '', ''],
customBuilder: function (parent, idPrefix, name, uniqueIndex) {
// Prepare the control ID/name by using idPrefix, column name and uniqueIndex
var ctrlId = idPrefix + '_' + name + '_table_' + uniqueIndex;
var upperRowId = idPrefix + '_' + name + '_upperRow_' + uniqueIndex;
var lowerRowId = idPrefix + '_' + name + '_lowerRow_' + uniqueIndex;
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
var ctrl = document.createElement('table');
$(ctrl).attr({ id: ctrlId, name: ctrlId }).appendTo(parent);
$(ctrl).css('border', '0px solid white');
$(ctrl).addClass('positions');
var upperRow = document.createElement('tr');
$(upperRow).attr({ id: upperRowId, name: upperRowId }).appendTo(ctrl);
$(upperRow).css('border', '0px solid white');
var lowerRow = document.createElement('tr');
$(lowerRow).attr({ id: lowerRowId, name: lowerRowId }).appendTo(ctrl);
$(lowerRow).css('border', '0px solid white');
var upperCell = document.createElement('td');
$(upperCell).attr({ id: upperCellId, name: upperCellId }).appendTo(upperRow);
$(upperCell).css('border', '0px solid white');
upperCell.style.overflow = "hidden";
var lowerCell = document.createElement('td');
$(lowerCell).attr({ id: lowerCellId, name: lowerCellId }).appendTo(lowerRow);
$(lowerCell).css('border', '0px solid white');
lowerCell.style.overflow = "hidden";
// Create extra controls and add to container
// Finally, return the container control
return ctrl;
},
customGetter: function (idPrefix, name, uniqueIndex) {
return '0';
},
customSetter: function (idPrefix, name, uniqueIndex, value) {
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
if( Object.prototype.toString.call( value ) === '[object Array]' ) {
var indeksUrl = document.createElement('a');
indeksUrl.href = 'index.php?module=EcmProducts&return_module=EcmProducts&action=DetailView&record=' + value[2];
indeksUrl.onclick = function (){
window.open('index.php?module=EcmProducts&return_module=EcmProducts&action=DetailView&record=' + value[2],'1426150651552','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=1,resizable=1,left=0,top=0');
return false;
};
indeksUrl.title = value[0];
indeksUrl.textContent = value[0];
var nazwaUrl = document.createElement('a');
nazwaUrl.href = 'index.php?module=EcmActions&return_module=EcmActions&action=DetailView&record=' + value[2];
nazwaUrl.onclick = function (){
window.open('index.php?module=EcmActions&return_module=EcmActions&action=DetailView&record=' + value[2],'1426150651552','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=1,resizable=1,left=0,top=0');
return false;
};
nazwaUrl.title = value[1];
nazwaUrl.textContent = value[1];
$('#' + upperCellId).html(indeksUrl);
$('#' + lowerCellId).html(nazwaUrl);
}
}
}, {
name: 'quantity',
display: 'Ilość',
type: 'text',
ctrlClass: 'inputs',
ctrlAttr : {readonly : 'readonly'},
ctrlCss: {'text-align': 'right'},
displayCss: {
'width': '50px',
'vertical-align': 'middle',
'text-align': 'center',
'background-color': 'rgb(224,240,255)',
'border': '1px solid rgb(48,192,255)',
'height': '0px',
'font-family': 'Arial',
'font-size': '12px',
'color': 'black',}
},{
name: 'netto',
display: ' Cena / Wartość netto',
type: 'custom',
ctrlClass: 'inputs',
ctrlAttr : {readonly : 'readonly'},
displayCss: {
'width': '130px',
'vertical-align': 'middle',
'text-align': 'center',
'background-color': 'rgb(224,240,255)',
'border': '1px solid rgb(48,192,255)',
'height': '0px',
'font-family': 'Arial',
'font-size': '12px',
'color': 'black',
},
value: ['', ''],
customBuilder: function (parent, idPrefix, name, uniqueIndex) {
// Prepare the control ID/name by using idPrefix, column name and uniqueIndex
var ctrlId = idPrefix + '_' + name + '_table_' + uniqueIndex;
var upperRowId = idPrefix + '_' + name + '_upperRow_' + uniqueIndex;
var lowerRowId = idPrefix + '_' + name + '_lowerRow_' + uniqueIndex;
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
var ctrl = document.createElement('table');
$(ctrl).attr({ id: ctrlId, name: ctrlId }).appendTo(parent);
$(ctrl).css('border', '0px solid white');
$(ctrl).addClass('positions');
var upperRow = document.createElement('tr');
$(upperRow).attr({ id: upperRowId, name: upperRowId }).appendTo(ctrl);
$(upperRow).css('border', '0px solid white');
var lowerRow = document.createElement('tr');
$(lowerRow).attr({ id: lowerRowId, name: lowerRowId }).appendTo(ctrl);
$(lowerRow).css('border', '0px solid white');
var upperCell = document.createElement('td');
$(upperCell).attr({ id: upperCellId, name: upperCellId }).appendTo(upperRow);
$(upperCell).css('border', '0px solid white');
$(upperCell).css('text-align', 'right');
upperCell.style.overflow = "hidden";
var lowerCell = document.createElement('td');
$(lowerCell).attr({ id: lowerCellId, name: lowerCellId }).appendTo(lowerRow);
$(lowerCell).css('border', '0px solid white');
$(lowerCell).css('text-align', 'right');
lowerCell.style.overflow = "hidden";
// Create extra controls and add to container
// Finally, return the container control
return ctrl;
},
customGetter: function (idPrefix, name, uniqueIndex) {
return '0';
},
customSetter: function (idPrefix, name, uniqueIndex, value) {
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
if( Object.prototype.toString.call( value ) === '[object Array]' ) {
$('#' + upperCellId).html(value[0]);
$('#' + lowerCellId).html(value[1]);
}
}
},{
name: 'brutto',
display: ' Cena / Wartość brutto',
type: 'custom',
ctrlClass: 'inputs',
ctrlAttr : {readonly : 'readonly'},
displayCss: {
'width': '130px',
'vertical-align': 'middle',
'text-align': 'center',
'background-color': 'rgb(224,240,255)',
'border': '1px solid rgb(48,192,255)',
'height': '0px',
'font-family': 'Arial',
'font-size': '12px',
'color': 'black',
},
value: ['', ''],
customBuilder: function (parent, idPrefix, name, uniqueIndex) {
// Prepare the control ID/name by using idPrefix, column name and uniqueIndex
var ctrlId = idPrefix + '_' + name + '_table_' + uniqueIndex;
var upperRowId = idPrefix + '_' + name + '_upperRow_' + uniqueIndex;
var lowerRowId = idPrefix + '_' + name + '_lowerRow_' + uniqueIndex;
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
var ctrl = document.createElement('table');
$(ctrl).attr({ id: ctrlId, name: ctrlId }).appendTo(parent);
$(ctrl).css('border', '0px solid white');
$(ctrl).addClass('positions');
var upperRow = document.createElement('tr');
$(upperRow).attr({ id: upperRowId, name: upperRowId }).appendTo(ctrl);
$(upperRow).css('border', '0px solid white');
var lowerRow = document.createElement('tr');
$(lowerRow).attr({ id: lowerRowId, name: lowerRowId }).appendTo(ctrl);
$(lowerRow).css('border', '0px solid white');
var upperCell = document.createElement('td');
$(upperCell).attr({ id: upperCellId, name: upperCellId }).appendTo(upperRow);
$(upperCell).css('border', '0px solid white');
$(upperCell).css('text-align', 'right');
upperCell.style.overflow = "hidden";
var lowerCell = document.createElement('td');
$(lowerCell).attr({ id: lowerCellId, name: lowerCellId }).appendTo(lowerRow);
$(lowerCell).css('border', '0px solid white');
$(lowerCell).css('text-align', 'right');
lowerCell.style.overflow = "hidden";
// Create extra controls and add to container
// Finally, return the container control
return ctrl;
},
customGetter: function (idPrefix, name, uniqueIndex) {
return '0';
},
customSetter: function (idPrefix, name, uniqueIndex, value) {
var upperCellId = idPrefix + '_' + name + '_upperCell_' + uniqueIndex;
var lowerCellId = idPrefix + '_' + name + '_lowerCell_' + uniqueIndex;
if( Object.prototype.toString.call( value ) === '[object Array]' ) {
$('#' + upperCellId).html(value[0]);
$('#' + lowerCellId).html(value[1]);
}
}
},
],
i18n: {
rowEmpty: 'Brak rekordów'
},
hideButtons: {
removeLast: true,
append: true,
insert: true,
remove : true,
moveUp: true,
moveDown: true
}
});
$('thead').removeClass('ui-widget-header');
$('td').removeClass('ui-widget-header');
$('tbody').removeClass('ui-widget-content');
$('td').removeClass('ui-widget-content');
$('tfoot').removeClass('ui-widget-header');
}
function FormatNumber(number, precision) {
var precision = precision || 2;
// make string..
number = number + '';
number = number.replace(',', '.');
// round
number = toFixed(number, precision);
// add 1000 sep
var tmp = number.split(".");
var c = '';
for (var i = tmp[0].length; i != -1; i--) {
c += tmp[0].charAt(i);
if ((tmp[0].length - i) == 0 || i == 0)
continue;
if ((tmp[0].length - i) % 3 == 0)
c += '.';
}
// reverse c
c = c.split("").reverse().join("");
return c + ',' + tmp[1];
}
function toFixed(value, precision) {
var precision = precision || 0,
neg = value < 0, power = Math.pow(10, precision),
value = Math.round(value * power),
integral = String((neg ? Math.ceil : Math.floor)(value / power)),
fraction = String((neg ? -value : value) % power),
padding = new Array(Math.max(precision - fraction.length, 0) + 1).join('0');
//fix problem with Math.floor and Math.ceil with result zero (lose sign)
if (neg && integral=="0")
integral='-'+integral;
return precision ? integral + '.' + padding + fraction : integral;
}
function UnformatNumber(number) {
// make string..
number = number + '';
// remove 1000 sep
number = number.replace(/\./g, '');
// change ',' to '.'
number = number.replace(',', '.');
return parseFloat(number);
}