1651 lines
55 KiB
JavaScript
1651 lines
55 KiB
JavaScript
var ajax_url = "index.php?module=EcmInvoiceOuts&action=javahelper&to_pdf=1";
|
|
var itemsTable = 'itemsTable';
|
|
var items = new Array();
|
|
var displayArray = new Array();
|
|
var searchedProducts = new Array();
|
|
|
|
function FillTable(data, allReadOnly) {
|
|
html = '';
|
|
var pozycja=1;
|
|
var color;
|
|
// loop throw data rows
|
|
$
|
|
.each(
|
|
data,
|
|
function(row_index, row) {
|
|
html += '<tr>';
|
|
if(row.product_item=="false"){
|
|
color='#D4D9DB';
|
|
} else {
|
|
color='#ffffff';
|
|
}
|
|
// and insert columns
|
|
|
|
$
|
|
.each(
|
|
columns,
|
|
function(col_index, column) {
|
|
// row must have code and name
|
|
if (!row.product_code
|
|
|| row.product_code == ''
|
|
|| !row.name
|
|
|| row.name == '')
|
|
return; // return in each =
|
|
// continue in php for
|
|
// loop
|
|
// special types
|
|
if (column.name == 'number') {
|
|
html += '<td style="background-color:'+color+';"><input class="inputs" style="text-align: center;background-color:'+color+';" type="text" id="number_'
|
|
+ row_index
|
|
+ '" name="number_'
|
|
+ row_index
|
|
+ '" readonly value="';
|
|
if(row.product_item=="true"){
|
|
html+= 'było';
|
|
allReadOnly='y';
|
|
} else if(row.product_item=="false"){
|
|
html+= pozycja;
|
|
pozycja++;
|
|
readonly='readonly';
|
|
allReadOnly=null;
|
|
} else {
|
|
html+=+ row_index+1;
|
|
}
|
|
|
|
html+='"/></td>';
|
|
} else if (column.name == 'name') {
|
|
html += '<td style="background-color:'+color+';"><textarea style="width: 100%; height: 100%;background-color:'+color+';" id="name_'
|
|
+ row_index
|
|
+ '" name="name_'
|
|
+ row_index + '"';
|
|
if (allReadOnly)
|
|
html += ' readonly';
|
|
html += '>' + row.name
|
|
+ '</textarea></td>';
|
|
} else if (column.name == 'options') {
|
|
if (allReadOnly)
|
|
html += '<td style="background-color:'+color+';"></tr>';
|
|
else {
|
|
html += '<td style="background-color:'+color+';">';
|
|
// move up
|
|
html += '<a onClick="moveUpRow('
|
|
+ row_index
|
|
+ ')" target="_blank"><img style="cursor:pointer;" src="modules/EcmInvoiceOuts/images/moverowup.gif"/></a>';
|
|
html += ' ';
|
|
// move down
|
|
html += '<a onClick="moveDownRow('
|
|
+ row_index
|
|
+ ')" target="_blank"><img style="cursor:pointer;" src="modules/EcmInvoiceOuts/images/moverowdown.gif"/></a>';
|
|
html += '<br>';
|
|
// delete row
|
|
html += '<a onClick="deleteRow('
|
|
+ row_index
|
|
+ ')" target="_blank"><img style="cursor:pointer;" src="modules/EcmInvoiceOuts/images/deleterow.gif"/></a>';
|
|
html += '</td>';
|
|
}
|
|
}
|
|
// other types
|
|
else {
|
|
html += '<td style="background-color:'+color+';">';
|
|
$
|
|
.each(
|
|
column.content,
|
|
function(
|
|
cell_index,
|
|
cell) {
|
|
var cellname = column.name
|
|
+ cell.name;
|
|
if (cellname == 'product_link') {
|
|
html += '<a href="index.php?module=EcmProducts&action=DetailView&record='
|
|
+ row.product_id
|
|
+ '" target="_blank">'
|
|
+ row.product_code
|
|
+ '</a>';
|
|
} else if (cellname == 'price_start_div'
|
|
&& !allReadOnly) {
|
|
html += '<br><img style="cursor: pointer;" src="modules/EcmInvoiceOuts/images/search.gif" onClick="if ($(\'#price_start_div_'
|
|
+ row_index
|
|
+ '\').css(\'display\')==\'none\') getPricesInfo('
|
|
+ row_index
|
|
+ '); else $(\'#price_start_div_'
|
|
+ row_index
|
|
+ '\').hide(\'slow\')"/>';
|
|
html += '<div id="'
|
|
+ cellname
|
|
+ '_'
|
|
+ row_index
|
|
+ '" style="display:none;float:right;text-align:right;border: 1px #cccccc solid;padding:3px;"></div>';
|
|
} else {
|
|
if (cell.label
|
|
&& cell.label != '')
|
|
html += '<p>'
|
|
+ cell.label
|
|
+ '</p>';
|
|
html += '<input class="inputs" type="'
|
|
+ cell.type
|
|
+ '" name="'
|
|
+ cellname
|
|
+ '_'
|
|
+ row_index
|
|
+ '" id="'
|
|
+ cellname
|
|
+ '_'
|
|
+ row_index
|
|
+ '"';
|
|
if (cell.readonly
|
|
|| allReadOnly)
|
|
html += ' readonly ';
|
|
if (column.align)
|
|
html += ' style="text-align: '
|
|
+ column.align
|
|
+ ';background-color:'+color+';"';
|
|
if (cell.onChange
|
|
|| cell.isNumber)
|
|
html += ' onChange="$(this).val(FormatNumber($(this).val()));'
|
|
+ cell.onChange
|
|
+ '" onClick="$(this).select();"';
|
|
else if (cell.onChange
|
|
|| !cell.isNumber)
|
|
html += ' onChange="'
|
|
+ cell.onChange
|
|
+ '" ';
|
|
if (row[cellname]
|
|
&& cell.isNumber)
|
|
html += ' value="'
|
|
+ FormatNumber(row[cellname])
|
|
+ '" ';
|
|
else if (row[cellname])
|
|
html += ' value="'
|
|
+ row[cellname]
|
|
+ '" ';
|
|
else {
|
|
if (cell.isNumber)
|
|
html += ' value="0,00" ';
|
|
else
|
|
html += ' value="" ';
|
|
}
|
|
html += '>';
|
|
}
|
|
});
|
|
html += '</td>';
|
|
}
|
|
|
|
});
|
|
html += '</tr>';
|
|
|
|
});
|
|
|
|
$('#' + itemsTable + '_T > tbody').html(html);
|
|
if (!allReadOnly) {
|
|
// calculate totals
|
|
var count = $('#' + itemsTable + '_T tr').length - 1; // -1 - thead row
|
|
for (var index = 0; index != count; index++)
|
|
calculateRow(index);
|
|
} else
|
|
DrawDetailSummary();
|
|
}
|
|
|
|
function calculatePaymentDate(pid) {
|
|
var date = $("#register_date").val();
|
|
var d = date.split(".");
|
|
|
|
date = d.join(".");
|
|
var params = {
|
|
job : 'calculatePaymentDate',
|
|
pid: pid,
|
|
date : date,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
$('#payment_date').val(data);
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
|
|
|
|
function getPayer(id){
|
|
var account_id=$("#address_id :selected").val();
|
|
var params = {
|
|
job : 'getAddress',
|
|
account_id : account_id,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
if (data != '-1') {
|
|
$("#parent_payer_address_name").val(data[0].description);
|
|
$("#parent_payer_address_street").val(data[0].street);
|
|
$("#parent_payer_address_postalcode").val(data[0].postalcode);
|
|
$("#parent_payer_address_city").val(data[0].city);
|
|
$("#parent_payer_address_country").val(data[0].country);
|
|
|
|
|
|
}
|
|
//$(".loading_panel").css("display", "none");
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function getAddress(id){
|
|
var account_id=$("#address_id :selected").val();
|
|
var params = {
|
|
job : 'getAddress',
|
|
account_id : account_id,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
if (data != '-1') {
|
|
|
|
$("#parent_shipping_address_name").val(data[0].description);
|
|
$("#parent_shipping_address_street").val(data[0].street);
|
|
$("#parent_shipping_address_postalcode").val(data[0].postalcode);
|
|
$("#parent_shipping_address_city").val(data[0].city);
|
|
$("#parent_shipping_address_country").val(data[0].country);
|
|
|
|
|
|
}
|
|
//$(".loading_panel").css("display", "none");
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function setAddressSend(result){
|
|
var p = new Object();
|
|
p.street=result.street;
|
|
alert(p.street);
|
|
}
|
|
|
|
function getAddresses(account_id) {
|
|
|
|
//show loading
|
|
|
|
var params = {
|
|
job : 'getAddresses',
|
|
account_id : account_id,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
$('#addresses').append(data);
|
|
$(".loading_panel").css("display", "none");
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function getPayers(account_id) {
|
|
|
|
//show loading
|
|
|
|
var params = {
|
|
job : 'getPayers',
|
|
account_id : account_id,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
$('#payer').append(data);
|
|
$(".loading_panel").css("display", "none");
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function calculateRow(index) {
|
|
if (index == -1)
|
|
return;
|
|
|
|
// liczone według najlepszych zasad księgowości
|
|
var price_start = UnformatNumber($('#price_start_' + index).val());
|
|
var discount = UnformatNumber($('#discount_' + index).val());
|
|
var vat_value = $('#ecmvat_value_' + index).val();
|
|
var quantity = UnformatNumber($('#quantity_' + index).val());
|
|
var price_netto = 0;
|
|
if (discount > 0)
|
|
price_netto = price_start - (price_start * (discount / 100));
|
|
else
|
|
price_netto = price_start;
|
|
|
|
var total_netto = price_netto * quantity;
|
|
|
|
// put data
|
|
$('#price_netto_' + index).val(FormatNumber(price_netto));
|
|
$('#total_netto_' + index).val(FormatNumber(total_netto));
|
|
$('#total_vat_' + index).val(FormatNumber((total_netto*vat_value)/100));
|
|
$('#price_brutto_' + index).val(FormatNumber(((price_netto*vat_value)/100)+price_netto));
|
|
$('#total_brutto_' + index).val(FormatNumber(((total_netto*vat_value)/100)+total_netto));
|
|
// put data to items array
|
|
items[index].price_start = toFixed(price_start, 2);
|
|
items[index].price_netto = toFixed(price_netto, 2);
|
|
items[index].price_brutto = toFixed(((price_netto*vat_value)/100)+price_netto, 2);
|
|
items[index].total_netto = toFixed(total_netto, 2);
|
|
items[index].total_brutto = toFixed(((total_netto*vat_value)/100)+total_netto, 2);
|
|
items[index].total_vat = toFixed(((total_netto*vat_value)/100), 2);
|
|
items[index].quantity = toFixed(quantity, 2);
|
|
items[index].discount = toFixed(discount, 2);
|
|
items[index].ecmvat_id = $('#ecmvat_id_' + index).val();
|
|
items[index].ecmvat_name = $('#ecmvat_name_' + index).val();
|
|
items[index].ecmvat_value = vat_value;
|
|
|
|
// put other data
|
|
items[index].recipient_code = $('#recipient_code_' + index).val();
|
|
items[index].remarks = $('#remarks_' + index).val();
|
|
// change name or language?
|
|
items[index].name = $('#name_' + index).val();
|
|
items[index].unit_name = $('#unit_name_' + index).val();
|
|
|
|
console.log(items[index]);
|
|
|
|
// calculate total
|
|
calculateTotal();
|
|
}
|
|
|
|
function calculateTotal() {
|
|
var count = $('#' + itemsTable + '_T tr').length - 1; // -1 - thead row
|
|
var vats = new Array();
|
|
var all_subtotal = 0;
|
|
var all_total = 0;
|
|
var sum_vats = 0;
|
|
var sum_discounts = 0;
|
|
|
|
for (var index = 0; index != count; index++) {
|
|
subtotal = UnformatNumber($('#total_netto_' + index).val());
|
|
product_item = $('#product_item_' + index).val();
|
|
if(product_item=='true')continue;
|
|
|
|
all_subtotal += subtotal;
|
|
if (!$("#no_tax").is(":checked")) {
|
|
// font color to black
|
|
$("#ecmvat_name_" + index).css("color", "black");
|
|
if (!($('#ecmvat_id_' + index).val() in vats)) {
|
|
vats[$('#ecmvat_id_' + index).val()] = new Object();
|
|
vats[$('#ecmvat_id_' + index).val()].value_name = $(
|
|
'#ecmvat_name_' + index).val(); // ex. 23
|
|
vats[$('#ecmvat_id_' + index).val()].value = subtotal
|
|
* ($('#ecmvat_value_' + index).val() / 100);
|
|
} else
|
|
vats[$('#ecmvat_id_' + index).val()].value += subtotal
|
|
* ($('#ecmvat_value_' + index).val() / 100);
|
|
sum_vats += subtotal * ($('#ecmvat_value_' + index).val() / 100);
|
|
} else {
|
|
// set color to red
|
|
$("#ecmvat_name_" + index).css("color", "red");
|
|
}
|
|
|
|
if (UnformatNumber($('#discount_' + index).val()) > 0)
|
|
sum_discounts += (UnformatNumber($('#price_start_' + index).val()) * UnformatNumber($(
|
|
'#quantity_' + index).val()))
|
|
* (UnformatNumber($('#discount_' + index).val()) / 100);
|
|
}
|
|
all_total = all_subtotal + sum_vats;
|
|
|
|
DrawSummary();
|
|
$('#total_vat').val(sum_vats);
|
|
$("#t_netto").val(FormatNumber(all_subtotal));
|
|
$("#t_brutto").val(FormatNumber(all_total));
|
|
$('#to_paid').text(FormatNumber(all_total));
|
|
var paid=$('#paid_val').val();
|
|
var prepaid=$('#prepaid').val();
|
|
$('#left').text(FormatNumber(all_total-paid-prepaid));
|
|
$("#disc").val(FormatNumber(sum_discounts));
|
|
console.log(vats);
|
|
// add vats
|
|
var html = '';
|
|
var vats_summary = '';
|
|
for ( var x in vats) {
|
|
html += '<td class="positionsLabel">' + vats[x].value_name + '</td>';
|
|
html += '<td class="positionsField"><input type="text" readonly="readonly" style="border:0px;font-weight:900;width:100%;text-align:right;" name="vat" id="vat" value="'
|
|
+ FormatNumber(vats[x].value) + '"></td>';
|
|
$('#result_table > tbody > tr:eq(1)').after(html);
|
|
vats_summary += vats[x].value_name + ':' + toFixed(vats[x].value, 2)
|
|
+ ',';
|
|
}
|
|
|
|
$("#vats_summary").val(vats_summary);
|
|
}
|
|
|
|
function deleteRow(index) {
|
|
items.splice(index, 1);
|
|
FillTable(items);
|
|
}
|
|
|
|
function moveUpRow(index) {
|
|
if (index == 0)
|
|
return; // Can't go upper.. :(
|
|
var new_index = index - 1;
|
|
var old_index = index;
|
|
if (new_index >= items.length) {
|
|
var k = new_index - items.length;
|
|
while ((k--) + 1) {
|
|
items.push(undefined);
|
|
}
|
|
}
|
|
items.splice(new_index, 0, items.splice(old_index, 1)[0]);
|
|
FillTable(items);
|
|
}
|
|
|
|
function moveDownRow(index) {
|
|
if (index == items.length - 1)
|
|
return; // Can't go lower.. :(
|
|
var new_index = index + 1;
|
|
var old_index = index;
|
|
if (new_index >= items.length) {
|
|
var k = new_index - items.length;
|
|
while ((k--) + 1) {
|
|
items.push(undefined);
|
|
}
|
|
}
|
|
items.splice(new_index, 0, items.splice(old_index, 1)[0]);
|
|
FillTable(items);
|
|
}
|
|
|
|
function searchAllProducts() {
|
|
var searchKey = '%';
|
|
$("#searchResultDiv").html(
|
|
'<img src="modules/EcmSales/images/loading.gif"/>');
|
|
setTimeout(function() {
|
|
|
|
var params = {
|
|
job : 'searchProducts',
|
|
searchKey : searchKey,
|
|
searchCategory : $("#productSearchCategory :selected").val(),
|
|
searchStock : $("#productSearchStock :selected").val(),
|
|
searchSort : $("#productSearchSort :selected").val(),
|
|
};
|
|
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
success : function(data) {
|
|
if (data != '-1')
|
|
if (data.length == 0)
|
|
$('#searchResultDiv').html(
|
|
'MOD.LBL_SEARCH_NO_RESULT');
|
|
else
|
|
createSearchResult(data);
|
|
},
|
|
data : params
|
|
});
|
|
|
|
}, 1000);
|
|
}
|
|
|
|
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 UnformatNumber(number) {
|
|
// make string..
|
|
number = number + '';
|
|
// remove 1000 sep
|
|
number = number.replace('.', '');
|
|
// change ',' to '.'
|
|
number = number.replace(',', '.');
|
|
|
|
return parseFloat(number);
|
|
}
|
|
|
|
// round with precision
|
|
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');
|
|
|
|
return precision ? integral + '.' + padding + fraction : integral;
|
|
}
|
|
|
|
// draw table
|
|
function DrawHeaders() {
|
|
var html = '<link rel="stylesheet" type="text/css" href="modules/EcmInvoiceOuts/MyTable.css" />';
|
|
html += '<div style="width:100%;border: 1px solid rgb(48,192,255);background-color:white;height: 250px;overflow:auto;" id="'
|
|
+ itemsTable + 'DIV">';
|
|
html += '<table class="positions" style="width:100%;" id="' + itemsTable
|
|
+ '_T">';
|
|
html += '<thead id="head">';
|
|
html += '<tr id="tr">';
|
|
// draw columns headers
|
|
$.each(columns, function(index, column) {
|
|
html += '<td width="' + column.width + '%">' + column.label + '</td>';
|
|
});
|
|
html += '</tr></thead><tbody></tbody></table>';
|
|
html += '</div><br>';
|
|
// totals table
|
|
html += '<table width="100%"" cellpadding="0" cellspacing="0" border="0">';
|
|
html += '<tr>';
|
|
html += '<td width="55%" class="dataLabel" valign="top">';
|
|
html += ' ';
|
|
html += '</td> <!--color:#b3b9cf;-->';
|
|
html += '<td width="40%" class="dataField" style="text-align: left;">';
|
|
html += '<br>';
|
|
html += '<table id="result_table" cellpadding="0" cellspacing="0" style="width:100%; height:100%; border: 1px solid rgb(48,192,255);">';
|
|
html += '</table>';
|
|
html += '</td>';
|
|
html += '<td width="5%" class="dataField" style="text-align: left;"> </td>';
|
|
html += '</tr>';
|
|
html += '</table>';
|
|
// sort? why not!
|
|
/*
|
|
* html += 'Sortowanie: '; html += '<select id="sort_field"
|
|
* onChange="sortTable();"'; html += '<option value=""></option>'; html += '<option
|
|
* value="name">Nazwa</option>'; html += '<option value="code">Kod</option>';
|
|
* html += '<option value="category">Kategoria</option>'; html += '<option
|
|
* value="category">Kategoria</option>'; html += '<option
|
|
* value="price">Cena po<br>upuście</option>'; html += '<option
|
|
* value="total">Wartość</option>'; html += '</select>';
|
|
*/
|
|
$('#' + itemsTable).html(html);
|
|
}
|
|
|
|
function DrawSummary() {
|
|
$("#result_table").html('');
|
|
html = '';
|
|
html += '<tr id="subtotal_tr"> ';
|
|
html += '<td class="positionsLabel" style="border-top:0px;">Suma netto</td>';
|
|
html += '<td class="positionsField" style="border-top:0px;"><input type="text" style="border:0px;font-weight:900;width:100%;text-align:right;" readonly="readonly" name="t_netto" id="t_netto" value=\'\'></td>';
|
|
html += '</tr>';
|
|
html += '<tr id="discount_tr"> ';
|
|
html += '<td class="positionsLabel">Upust</td>';
|
|
html += '<td class="positionsField"><input type="text" readonly="readonly" style="border:0px;font-weight:900;width:100%;text-align:right;" name="disc" id="disc" value=\'\'></td>';
|
|
html += '</tr>';
|
|
html += '<tr id="total_tr"> ';
|
|
html += '<td class="positionsLabel">Suma brutto</td>';
|
|
html += '<td class="positionsField"><input type="text" readonly="readonly" style="border:0px;font-weight:900;width:100%;text-align:right;" name="t_brutto" id="t_brutto" value=\'\'></td>';
|
|
html += '</tr>';
|
|
$("#result_table").html(html);
|
|
}
|
|
|
|
function searchProducts() {
|
|
var searchKey = $('#searchProductsInput').val();
|
|
if (searchKey.length < 2 && searchKey != '%') {
|
|
return;
|
|
}
|
|
$("#searchResultDiv").html(
|
|
'<img src="modules/EcmInvoiceOuts/images/loading.gif"/>');
|
|
setTimeout(function() {
|
|
if (searchKey == $('#searchProductsInput').val()) {
|
|
var params = {
|
|
job : 'searchProducts',
|
|
searchKey : searchKey,
|
|
searchCategory : $("#productSearchCategory :selected").val(),
|
|
searchStock : $("#productSearchStock :selected").val(),
|
|
searchSort : $("#productSearchSort :selected").val(),
|
|
};
|
|
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
success : function(data) {
|
|
if (data != '-1')
|
|
if (data.length == 0)
|
|
$('#searchResultDiv').html(
|
|
'MOD.LBL_SEARCH_NO_RESULT');
|
|
else
|
|
createSearchResult(data);
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
}, 1000);
|
|
}
|
|
|
|
function createSearchResult(data) {
|
|
var html = '<table style="text-align: center;" cellpadding="0" cellspacing="0" width="100%" border="0" class="list view">';
|
|
html += '<theader><tr>';
|
|
html += '<th style="width: 15pt; margin: auto auto;"> </th>';
|
|
html += '<th style="width: 100pt; text-align: center;">Kod</th>';
|
|
html += '<th style="width: 300pt; text-align: center;">Nazwa</th>';
|
|
if ($("#productSearchStock :selected").val() != '1')
|
|
html += '<th style="width: 30pt; text-align: center;">Stan</th>';
|
|
html += '<th style="width: 15pt; margin: auto auto;"> </th>';
|
|
|
|
html += '</tr></thead>';
|
|
var counter;
|
|
$
|
|
.each(
|
|
data,
|
|
function(index, value) {
|
|
if(counter%2==0){
|
|
html += '<tr style="height: 15pt;" class="oddListRowS1">';
|
|
} else {
|
|
html += '<tr style="height: 15pt;" class="evenListRowS1">';
|
|
}
|
|
html += '<td style=""><input id="prod_'
|
|
+ value.id + '" type="checkbox"/></td>';
|
|
html += '<td style="" onClick="$(\'#prod_'
|
|
+ value.id
|
|
+ '\').prop(\'checked\', true);">'
|
|
+ value.code + '</td>';
|
|
html += '<td style="" onClick="unsetAllCheckboxes(); $(\'#prod_'
|
|
+ value.id
|
|
+ '\').prop(\'checked\', true); return addProducts();">'
|
|
+ value.name + '</td>';
|
|
if ($("#productSearchStock :selected").val() != '1')
|
|
html += '<td style="">'
|
|
+ value.stock_state + '</td>';
|
|
html += '<td style="">';
|
|
html += '<img style="cursor: pointer;" src="modules/EcmSales/images/search.gif" onClick="if ($(\'#search_info_div_'
|
|
+ value.id
|
|
+ '\').css(\'display\')==\'none\') getSearchInfo(\''
|
|
+ value.id
|
|
+ '\',\''
|
|
+ value.code
|
|
+ '\'); else $(\'#search_info_div_'
|
|
+ value.id
|
|
+ '\').hide(\'slow\')"/>';
|
|
html += '<div id="'
|
|
+ 'search_info_div_'
|
|
+ value.id
|
|
+ '" style="display:none;float:right;text-align:right;border: 1px #cccccc solid;padding:3px;"></div>';
|
|
html += '</td>';
|
|
html += '</tr>';
|
|
searchedProducts.push(value.id);
|
|
counter++;
|
|
});
|
|
// add button
|
|
html += '</table><br>';
|
|
html += 'Cena: <input type="text" id="searchInputPrice" value=""/> Ilość: <input type="text" id="searchInputQty" value=""/>';
|
|
html += '<br><br><input type="button" value="Dodaj wiele" onClick="return addProducts();"/>';
|
|
$('#searchResultDiv').html(html);
|
|
}
|
|
|
|
function unsetAllCheckboxes() {
|
|
$("#searchResultDiv input[type=checkbox]").each(function() {
|
|
$(this).prop("checked", false);
|
|
});
|
|
}
|
|
|
|
function addProducts() {
|
|
$(".loading_panel").css("display", "block");
|
|
var products = new Array();
|
|
$.each(searchedProducts, function(index, value) {
|
|
if ($('#prod_' + value).is(':checked'))
|
|
products[value] = true;
|
|
});
|
|
var pricebook = $("#pricebook_id :selected").val();
|
|
for ( var key in products) {
|
|
var params = {
|
|
job : 'getProduct',
|
|
id : key,
|
|
pricebook : pricebook,
|
|
account_id : $("#parent_id").val(),
|
|
language : $("#ecmlanguage").val(),
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
if (data != '-1') {
|
|
var p = new Object();
|
|
p.product_id = data.id;
|
|
p.name = data.name;
|
|
p.product_code = data.code;
|
|
p.product_id = data.id;
|
|
p.ecmvat_id = data.ecmvat_id;
|
|
p.ecmvat_value = data.ecmvat_value;
|
|
p.ecmvat_name = data.ecmvat_name;
|
|
p.product_ean = data.ean;
|
|
p.product_ean2 = data.ean2;
|
|
p.unit_name = data.unit_name;
|
|
p.unit_id = data.unit_id;
|
|
p.price_start = data.price_start;
|
|
p.recipient_code = data.recipient_code;
|
|
if ($("#searchInputPrice").val() != ''
|
|
&& !isNaN(parseFloat(UnformatNumber($(
|
|
"#searchInputPrice").val()))))
|
|
p.price_start = $("#searchInputPrice").val();
|
|
if ($("#searchInputQty").val() != ''
|
|
&& !isNaN(parseFloat(UnformatNumber($(
|
|
"#searchInputQty").val()))))
|
|
p.quantity = $("#searchInputQty").val();
|
|
items.push(p);
|
|
}
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
FillTable(items);
|
|
// clear results
|
|
$('#searchResultDiv').html('');
|
|
searchedProducts = new Array();
|
|
$('#searchProductsInput').val('');
|
|
|
|
$(".loading_panel").css("display", "none");
|
|
}
|
|
|
|
function getItems(editview) {
|
|
var record = '';
|
|
if ($("#duplicate").val() == true)
|
|
record = $("input[name='return_id']").val();
|
|
else
|
|
record = $("input[name='record']").val();
|
|
|
|
var type = '';
|
|
if ($("#is_correct").val() == true)
|
|
type=true;
|
|
else
|
|
type='';
|
|
|
|
if (isNaN(editview))
|
|
editview = true;
|
|
var params = {
|
|
job : 'getItems',
|
|
record : record,
|
|
type : type,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
success : function(data) {
|
|
items = data;
|
|
if (editview)
|
|
FillTable(items, false);
|
|
else
|
|
FillTable(items, true);
|
|
$(".loading_panel").css("display", "none");
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function getItemsFromSale(editview) {
|
|
var record = '';
|
|
|
|
if ($("#is_sale").val() == true)
|
|
record = $("input[name='so_id']").val();
|
|
else
|
|
record = $("input[name='so_id']").val();
|
|
|
|
var type = '';
|
|
if ($("#is_correct").val() == true)
|
|
type=true;
|
|
else
|
|
type='';
|
|
|
|
if (isNaN(editview))
|
|
editview = true;
|
|
var params = {
|
|
job : 'getItemsFromSale',
|
|
record : record,
|
|
type : type,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
success : function(data) {
|
|
items = data;
|
|
if (editview)
|
|
FillTable(items, false);
|
|
else
|
|
FillTable(items, true);
|
|
$(".loading_panel").css("display", "none");
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function getItemsFromWZ(editview) {
|
|
var record = '';
|
|
|
|
if ($("#is_wz").val() == true)
|
|
record = $("input[name='wz_id']").val();
|
|
else
|
|
record = $("input[name='wz_id']").val();
|
|
|
|
var type = '';
|
|
if ($("#is_correct").val() == true)
|
|
type=true;
|
|
else
|
|
type='';
|
|
|
|
if (isNaN(editview))
|
|
editview = true;
|
|
var params = {
|
|
job : 'getItemsFromWZ',
|
|
record : record,
|
|
type : type,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
success : function(data) {
|
|
items = data;
|
|
if (editview)
|
|
FillTable(items, false);
|
|
else
|
|
FillTable(items, true);
|
|
$(".loading_panel").css("display", "none");
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function DrawDetailSummary() {
|
|
DrawSummary();
|
|
$("#t_netto").val(FormatNumber($("#total_netto").val()));
|
|
$("#t_brutto").val(FormatNumber($("#total_brutto").val()));
|
|
$("#disc").val(FormatNumber($("#discount").val()));
|
|
|
|
if ($("#no_tax").val() == '1') {
|
|
$("input[name^=ecmvat_name]").css("color", "red");
|
|
return;
|
|
}
|
|
|
|
var html = '';
|
|
var vats = $("#vats_summary").val().split(",");
|
|
for (var i = 0; i < vats.length - 1; i++) {// last element is empty
|
|
var vat = vats[i].split(":");
|
|
html += '<tr><td class="positionsLabel">' + vat[0] + '</td>';
|
|
html += '<td class="positionsField"><input type="text" readonly="readonly" style="border:0px;font-weight:900;width:100%;text-align:right;" name="vat" id="vat" value="'
|
|
+ FormatNumber(vat[2]) + '"></td></tr>';
|
|
|
|
}
|
|
$('#result_table > tbody > tr:eq(1)').after(html);
|
|
}
|
|
|
|
function changeLanguage() {
|
|
$(".loading_panel").css("display", "block");
|
|
var count = $('#' + itemsTable + '_T tr').length - 1; // -1 - thead row
|
|
for (var index = 0; index != count; index++) {
|
|
var params = {
|
|
job : 'getTranslation',
|
|
product_id : $("#product_id_" + index).val(),
|
|
language : $("#ecmlanguage").val(),
|
|
unit_id : $("#unit_id_" + index).val(),
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
async : false,
|
|
dataType : "json",
|
|
success : function(data) {
|
|
$("#name_" + index).val(data.name);
|
|
$("#unit_name_" + index).val(data.unit_name);
|
|
calculateRow(index);
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
$(".loading_panel").css("display", "none");
|
|
}
|
|
|
|
function getPricesInfo(index) {
|
|
$("#price_start_div_" + index).show('slow');
|
|
$("#price_start_div_" + index).html(
|
|
'<img src="modules/EcmInvoiceOuts/images/loading.gif"/>');
|
|
|
|
var params = {
|
|
job : 'getPricesInfo',
|
|
product_id : $("#product_id_" + index).val(),
|
|
pricebook_id : $("#pricebook_id :selected").val(),
|
|
account_id : $("#parent_id").val(),
|
|
};
|
|
$
|
|
.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
html = '<ul style="font-size: 7pt;">';
|
|
$
|
|
.each(
|
|
data,
|
|
function(key, value) {
|
|
console.log(value.price);
|
|
if (value.name == 'pricebook') {
|
|
html += '<li style="cursor:pointer;" onClick="$(\'#price_start_'
|
|
+ index
|
|
+ '\').val(\''
|
|
+ FormatNumber(value.price)
|
|
+ '\'); $(this).closest(\'div\').hide(\'slow\');calculateRow('
|
|
+ index
|
|
+ ')"><u>'
|
|
+ $(
|
|
"#pricebook_id :selected")
|
|
.html()
|
|
+ ': '
|
|
+ FormatNumber(value.price)
|
|
+ '</u></li>';
|
|
} else if (value.name == $(
|
|
"#ecmprice_name").val()) {
|
|
html += '<li style="cursor:pointer;" onClick="$(\'#price_start_'
|
|
+ index
|
|
+ '\').val(\''
|
|
+ FormatNumber(value.price)
|
|
+ '\'); $(this).closest(\'div\').hide(\'slow\');calculateRow('
|
|
+ index
|
|
+ ');"><b>'
|
|
+ value.name
|
|
+ ': '
|
|
+ FormatNumber(value.price)
|
|
+ '</b></li>';
|
|
} else {
|
|
html += '<li style="cursor:pointer;" onClick="$(\'#price_start_'
|
|
+ index
|
|
+ '\').val(\''
|
|
+ FormatNumber(value.price)
|
|
+ '\'); $(this).closest(\'div\').hide(\'slow\');calculateRow('
|
|
+ index
|
|
+ ');">'
|
|
+ value.name
|
|
+ ': '
|
|
+ FormatNumber(value.price)
|
|
+ '</li>';
|
|
}
|
|
});
|
|
html += '</ul>';
|
|
},
|
|
data : params
|
|
});
|
|
$("#price_start_div_" + index).html(html);
|
|
}
|
|
|
|
function getSearchInfo(product_id, product_code) {
|
|
$("#search_info_div_" + product_id).show('slow');
|
|
var html = '<a href="index.php?module=EcmProducts&action=DetailView&record='
|
|
+ product_id + '" target="_blank">' + product_code + '</a><br><br>';
|
|
html += '<table><tr><td><table><tr><td>';
|
|
// get prices info
|
|
var params = {
|
|
job : 'getPricesInfo',
|
|
product_id : product_id,
|
|
pricebook_id : $("#pricebook_id :selected").val(),
|
|
account_id : $("#parent_id").val(),
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
html += 'Ceny<br>';
|
|
$.each(data, function(key, value) {
|
|
if (value.name == 'pricebook')
|
|
html += $("#pricebook_id :selected").html() + ': '
|
|
+ FormatNumber(value.price) + '<br>';
|
|
if (value.name == $("#ecmprice_name").val())
|
|
html += '<b>' + value.name + ': '
|
|
+ FormatNumber(value.price) + '</b><br>';
|
|
else
|
|
html += value.name + ': ' + FormatNumber(value.price)
|
|
+ '<br>';
|
|
});
|
|
},
|
|
data : params
|
|
});
|
|
html += '</td></tr></table></td><td><table><tr><td>';
|
|
var params = {
|
|
job : 'getStockArray',
|
|
product_id : product_id,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
html += 'Stany<br>';
|
|
$.each(data, function(key, value) {
|
|
html += key + ': ' + FormatNumber(value)
|
|
+ '<br>';
|
|
});
|
|
},
|
|
data : params
|
|
});
|
|
html += '</td></tr></table></td>';
|
|
var show_purchase_prices = false;
|
|
|
|
if (show_purchase_prices) {
|
|
html+='<td><table><tr><td>';
|
|
var params = {
|
|
job : 'getPurchaseArray',
|
|
product_id : product_id,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
console.log(data);
|
|
},
|
|
data : params
|
|
});
|
|
html+='</td></tr></table></td>';
|
|
}
|
|
|
|
html+='</tr></table>';
|
|
|
|
$("#search_info_div_" + product_id).html(html);
|
|
}
|
|
|
|
//sortable rows in main table
|
|
$("#"+itemsTable+" tbody").sortable();
|
|
//get parent info use ajax
|
|
function getParentInfo(parent_id, parent_type) {
|
|
var params = {
|
|
id : parent_id,
|
|
type : parent_type,
|
|
job : 'getParentInfo'
|
|
};
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: ajax_url,
|
|
dataType : "json",
|
|
success: function(data) {
|
|
if (data == '-1') {
|
|
alert('Błąd');
|
|
$("#parent_name").val('');
|
|
$("#parent_id").val('');
|
|
} else {
|
|
setParentInfo(data);
|
|
}
|
|
},
|
|
data: params
|
|
});
|
|
getAddresses(parent_id);
|
|
getPayers(parent_id);
|
|
}
|
|
|
|
//insert parent info in fields
|
|
function setParentInfo(data) {
|
|
//pricebooks
|
|
createPricebookSelect(data.pricebooks);
|
|
if (data.ecmprice_id && data.ecmprice_name) {
|
|
$("#ecmprice_id").val(data.ecmprice_id);
|
|
$("#ecmprice_name").val(data.ecmprice_name);
|
|
}
|
|
if ($("#new_number").val() == false) return; //if edit exists load only pricebooks
|
|
if (data.name)
|
|
$("#parent_name_copy").val(data.name);
|
|
if (data.parent_nip)
|
|
$("#parent_nip").val(data.parent_nip);
|
|
if (data.parent_address_street)
|
|
$("#parent_address_street").val(data.parent_address_street);
|
|
if (data.parent_address_city)
|
|
$("#parent_address_city").val(data.parent_address_city);
|
|
if (data.parent_address_postalcode)
|
|
$("#parent_address_postalcode").val(data.parent_address_postalcode);
|
|
if (data.parent_address_country)
|
|
$("#parent_address_country").val(data.parent_address_country);
|
|
if (data.invoice_type && data.invoice_type!='K')
|
|
$("#no_tax").attr('checked', true);
|
|
if (data.ecmpaymentcondition_id && data.ecmpaymentcondition_name) {
|
|
$("#ecmpaymentcondition_id").val(data.ecmpaymentcondition_id);
|
|
$("#ecmpaymentcondition_name").val(data.ecmpaymentcondition_name);
|
|
}
|
|
if (data.ecmdeliverycondition_id && data.ecmdeliverycondition_name) {
|
|
$("#ecmdeliverycondition_id").val(data.ecmdeliverycondition_id);
|
|
$("#ecmdeliverycondition_name").val(data.ecmdeliverycondition_name);
|
|
}
|
|
if (data.currency_id)
|
|
$("#currency_id option[value=\""+data.currency_id+"\"]").attr('selected', 'selected');
|
|
//hide loading
|
|
$(".loading_panel").css("display", "none");
|
|
}
|
|
|
|
function createPricebookSelect(pricebooks) {
|
|
var s = $("<select id=\"pricebook_id\"/>");
|
|
var opt = '';
|
|
$.each(pricebooks, function(index, value) {
|
|
opt+='<option value="'+value.id+'">'+value.name+'</option>';
|
|
});
|
|
s.html(opt);
|
|
$("#pricebooks").append(s);
|
|
}
|
|
|
|
function generateNumber(stock_id) {
|
|
var params = {
|
|
job : 'generateNumber',
|
|
stock_id : stock_id
|
|
};
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: ajax_url,
|
|
dataType : "json",
|
|
success: function(data) {
|
|
if (data == '-1') {
|
|
//try loading again
|
|
generateNumber(stock_id);
|
|
} else {
|
|
$("#document_no").val(data.document_no);
|
|
$("#number").val(data.number);
|
|
$(".loading_panel").css("display", "none");
|
|
}
|
|
},
|
|
data: params
|
|
});
|
|
}
|
|
|
|
function generateNumberCorrect() {
|
|
var params = {
|
|
job : 'generateNumberCorrect'
|
|
};
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: ajax_url,
|
|
dataType : "json",
|
|
success: function(data) {
|
|
if (data == '-1') {
|
|
//try loading again
|
|
generateNumberCorrect();
|
|
} else {
|
|
$("#document_no").val(data.document_no);
|
|
$("#number").val(data.number);
|
|
$(".loading_panel").css("display", "none");
|
|
}
|
|
},
|
|
data: params
|
|
});
|
|
}
|
|
|
|
$.event.special.inputchange = {
|
|
setup: function() {
|
|
var self = this, val;
|
|
$.data(this, 'timer', window.setInterval(function() {
|
|
val = self.value;
|
|
if ( $.data( self, 'cache') != val ) {
|
|
$.data( self, 'cache', val );
|
|
$( self ).trigger( 'inputchange' );
|
|
}
|
|
}, 20));
|
|
},
|
|
teardown: function() {
|
|
window.clearInterval( $.data(this, 'timer') );
|
|
},
|
|
add: function() {
|
|
$.data(this, 'cache', this.value);
|
|
}
|
|
};
|
|
|
|
function getCategoriesList() {
|
|
var params = {
|
|
job : 'getCategoriesList'
|
|
};
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: ajax_url,
|
|
dataType : "json",
|
|
success: function(data) {
|
|
var html = '<option value=""></option>';
|
|
$.each(data, function(index, value){
|
|
html+='<option value="'+value.id+'">'+value.name+'</option>';
|
|
$("#productSearchCategory").html(html);
|
|
});
|
|
},
|
|
data: params
|
|
});
|
|
}
|
|
|
|
function htmlspecialchars_decode(string, quote_style) {
|
|
// discuss at: http://phpjs.org/functions/htmlspecialchars_decode/
|
|
// original by: Mirek Slugen
|
|
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
|
// bugfixed by: Mateusz "loonquawl" Zalega
|
|
// bugfixed by: Onno Marsman
|
|
// bugfixed by: Brett Zamir (http://brett-zamir.me)
|
|
// bugfixed by: Brett Zamir (http://brett-zamir.me)
|
|
// input by: ReverseSyntax
|
|
// input by: Slawomir Kaniecki
|
|
// input by: Scott Cariss
|
|
// input by: Francois
|
|
// input by: Ratheous
|
|
// input by: Mailfaker (http://www.weedem.fr/)
|
|
// revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
|
// reimplemented by: Brett Zamir (http://brett-zamir.me)
|
|
// example 1: htmlspecialchars_decode("<p>this -> "</p>",
|
|
// 'ENT_NOQUOTES');
|
|
// returns 1: '<p>this -> "</p>'
|
|
// example 2: htmlspecialchars_decode("&quot;");
|
|
// returns 2: '"'
|
|
|
|
var optTemp = 0,
|
|
i = 0,
|
|
noquotes = false;
|
|
if (typeof quote_style === 'undefined') {
|
|
quote_style = 2;
|
|
}
|
|
string = string.toString()
|
|
.replace(/</g, '<')
|
|
.replace(/>/g, '>');
|
|
var OPTS = {
|
|
'ENT_NOQUOTES': 0,
|
|
'ENT_HTML_QUOTE_SINGLE': 1,
|
|
'ENT_HTML_QUOTE_DOUBLE': 2,
|
|
'ENT_COMPAT': 2,
|
|
'ENT_QUOTES': 3,
|
|
'ENT_IGNORE': 4
|
|
};
|
|
if (quote_style === 0) {
|
|
noquotes = true;
|
|
}
|
|
if (typeof quote_style !== 'number') { // Allow for a single string or an
|
|
// array of string flags
|
|
quote_style = [].concat(quote_style);
|
|
for (i = 0; i < quote_style.length; i++) {
|
|
// Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
|
|
if (OPTS[quote_style[i]] === 0) {
|
|
noquotes = true;
|
|
} else if (OPTS[quote_style[i]]) {
|
|
optTemp = optTemp | OPTS[quote_style[i]];
|
|
}
|
|
}
|
|
quote_style = optTemp;
|
|
}
|
|
if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
|
|
string = string.replace(/�*39;/g, "'"); // PHP doesn't currently escape
|
|
// if more than one 0, but it
|
|
// should
|
|
// string = string.replace(/'|�*27;/g, "'"); // This would also be
|
|
// useful here, but not a part of PHP
|
|
}
|
|
if (!noquotes) {
|
|
string = string.replace(/"/g, '"');
|
|
}
|
|
// Put this in last place to avoid escape being double-decoded
|
|
string = string.replace(/&/g, '&');
|
|
|
|
return string;
|
|
}
|
|
|
|
function drawbuttons(number) {
|
|
var buttons = '<button onclick="'
|
|
+ "open_popup( $('#parent_type_" + number + "').val(), 600, 400, "", true, false,"
|
|
+ "{"call_back_function":"set_return","form_name":"EditView","field_to_name_array":"
|
|
+ "{"id":"parent_id_" + number + "","name":"parent_name_" + number + ""}}, "single", true);"
|
|
+ '" value="Wybierz" class="button firstChild" accesskey="T" title="Wybierz [Alt+T]" tabindex="101" id="btn_parent_name" name="btn_parent_name" style="vertical-align: top;" type="button">'
|
|
+ '<img src="themes/default/images/id-ff-select.png?s=bed8cd35065048ceebdc639ebe305e2c&c=1"></button>'
|
|
+ ' <button value="Wyczyść" onclick="'
|
|
+ "$('#parent_name_" + number + "').val(''); $('#parent_id_" + number + "').val('');"
|
|
+ '" class="button lastChild" style="vertical-align: top;" accesskey="C" title="Wyczyść[Alt+C]" tabindex="101" id="btn_clr_parent_name" name="btn_clr_parent_name" type="button">'
|
|
+ '<img src="themes/default/images/id-ff-clear.png?s=bed8cd35065048ceebdc639ebe305e2c&c=1"></button>';
|
|
return buttons;
|
|
}
|
|
|
|
function drawbuttons2(number) {
|
|
var buttons = '<button onclick="'
|
|
+ "open_popup('Users', 600, 400, "", true, false,"
|
|
+ "{"call_back_function":"set_return","form_name":"EditView","field_to_name_array":"
|
|
+ "{"id":"user_id_" + number + "","name":"user_name_" + number + ""}}, "single", true);"
|
|
+ '" value="Wybierz" class="button firstChild" accesskey="T" title="Wybierz [Alt+T]" tabindex="101" id="btn_user_name" name="btn_user_name" style="vertical-align: top;" type="button">'
|
|
+ '<img src="themes/default/images/id-ff-select.png?s=bed8cd35065048ceebdc639ebe305e2c&c=1"></button>'
|
|
+ ' <button value="Wyczyść" onclick="'
|
|
+ "$('#user_name_" + number + "').val(''); $('#user_id_" + number + "').val('');"
|
|
+ '" class="button lastChild" style="vertical-align: top;" accesskey="C" title="Wyczyść[Alt+C]" tabindex="101" id="btn_clr_user_name" name="btn_clr_user_name" type="button">'
|
|
+ '<img src="themes/default/images/id-ff-clear.png?s=bed8cd35065048ceebdc639ebe305e2c&c=1"></button>';
|
|
return buttons;
|
|
}
|
|
|
|
function ParentEditList() {
|
|
// parent start
|
|
|
|
var MaxInputs = 10; // maximum input boxes allowed
|
|
var InputsWrapper = $("#InputsWrapper"); // Input boxes wrapper ID
|
|
var AddButton = $("#AddMoreWWWBox"); // Add button ID
|
|
|
|
var x = InputsWrapper.length; // initlal text box count
|
|
var FieldCount = 1; // to keep track of text box added
|
|
|
|
var parent_list = $.parseJSON($("input[name='parent_list']").val()); // get
|
|
// and
|
|
// decode
|
|
// json
|
|
// object
|
|
var parent_type = $.parseJSON($("input[name='parent_type_list']").val()); // get
|
|
// and
|
|
// decode
|
|
// json
|
|
// object
|
|
// create select parent type
|
|
|
|
|
|
$.each(parent_list, function (idx, obj) { // add existing elements
|
|
FieldCount++; // text box added increment
|
|
|
|
// add input box
|
|
if (idx == 0) {
|
|
// first element
|
|
|
|
$("div select[name='parent_type[]'] option[value='" + obj.parent_type + "s']").attr('selected', 'selected');
|
|
$("div input[name='parent_name[]']").first().val(htmlspecialchars_decode(obj.parent_name));
|
|
$("div input[name='list_id[]']").first().val(obj.id);
|
|
$("div input[name='parent_id[]']").first().val(obj.parent_id);
|
|
} else {
|
|
var select_parent = '<select id="parent_type_' + x + '" name="parent_type[]">';
|
|
var seleted = '';
|
|
$.each(parent_type, function (idx2, obj2) {
|
|
|
|
if (idx2 == obj.parent_type + 's') {
|
|
seleted = 'selected="selected"';
|
|
} else {
|
|
seleted = '';
|
|
}
|
|
select_parent = select_parent + '<option value="' + idx2 + '" label="' + obj2 + '" ' + seleted + '>' + obj2 + '</OPTION>';
|
|
});
|
|
select_parent = select_parent + '</select>';
|
|
$(InputsWrapper).append('<tr><td>' + select_parent + ' <input type="hidden" value="' + obj.parent_id + '" id="parent_id_' + x + '" name="parent_id[]"><input type="hidden" value="' + obj.id + '" name="list_id[]"><input type="text" size="30" name="parent_name[]" id="parent_name_' + x + '" value=""/></td><td><a href="#" class="removeclass"><img class="id-ff-remove" name="0" src="index.php?entryPoint=getImage&themeName=Sugar5&imageName=id-ff-remove.png"></a> ' + drawbuttons(x) + '</td></tr>');
|
|
$('#parent_name_' + x).val(htmlspecialchars_decode(obj.parent_name));
|
|
}
|
|
|
|
x++; // text box increment
|
|
|
|
});
|
|
|
|
$(AddButton).click(function (e) // on add input button click
|
|
{
|
|
if (x <= MaxInputs) // max input box allowed
|
|
{
|
|
if (x == 1)
|
|
x = 2;
|
|
var select_parent = '<select id="parent_type_' + x + '" name="parent_type[]">';
|
|
$.each(parent_type, function (idx2, obj2) {
|
|
|
|
select_parent = select_parent + '<option value="' + idx2 + '" label="' + obj2 + '">' + obj2 + '</OPTION>';
|
|
});
|
|
select_parent = select_parent + '</select>';
|
|
FieldCount++; // text box added increment
|
|
// add input box
|
|
$(InputsWrapper).append('<tr><td>' + select_parent + ' <input type="hidden" value="" name="parent_id[]" id="parent_id_' + x + '"><input type="hidden" value="" name="list_id[]"><input type="text" size="30" name="parent_name[]" id="parent_name_' + x + '" value=""/></td><td><a href="#" class="removeclass"><img class="id-ff-remove" name="0" src="index.php?entryPoint=getImage&themeName=Sugar5&imageName=id-ff-remove.png"></a> ' + drawbuttons(x) + '</td>,/tr>');
|
|
x++; // text box increment
|
|
}
|
|
return false;
|
|
});
|
|
$("body").on("click", ".removeclass", function (e) { // user click on remove
|
|
// text
|
|
if (x > 1) {
|
|
$(this).closest('tr').remove();// remove text box
|
|
x--; // decrement textbox
|
|
}
|
|
return false;
|
|
});
|
|
}
|
|
|
|
function InitializeVatTable(){
|
|
// Initialize appendGrid
|
|
$('#tblAppendGrid').appendGrid({
|
|
hideRowNumColumn: true,
|
|
initRows: 1,
|
|
// definicje kolumn
|
|
columns: [
|
|
{name: 'vat_value', display: 'Stawka VAT', ctrlClass: 'inputs', ctrlAttr: {maxlength: 100, readonly: 'readonly'}},
|
|
{name: 'netto', display: 'Wartość netto', type: 'text', ctrlAttr: {maxlength: 100}, ctrlCss: {width: '100%','text-align': 'right'}, ctrlClass: 'inputs',
|
|
onChange: function (evt, rowIndex) {
|
|
// liczenie vatu
|
|
var data = $('#tblAppendGrid').appendGrid('getRowValue', rowIndex);
|
|
if (data.netto != '' && data.vat_id != '') {
|
|
var vat_value = (data.netto * data.vat_id) / 100;
|
|
// wtrzykwianie danych
|
|
$('#tblAppendGrid').appendGrid('setCtrlValue', 'vat', rowIndex, FormatNumber(vat_value));
|
|
$('#tblAppendGrid').appendGrid('setCtrlValue', 'netto', rowIndex, FormatNumber(data.netto));
|
|
}
|
|
},
|
|
onClick: function (evt, rowIndex) {
|
|
// zaznacznie wybranego pola
|
|
var elem = $('#tblAppendGrid').appendGrid('getCellCtrl', 'netto', rowIndex);
|
|
$(elem).select();
|
|
}},
|
|
{name: 'vat', display: 'Wartość VAT', type: 'text', ctrlAttr: {maxlength: 100}, ctrlCss: {width: '100%','text-align': 'right'}, ctrlClass: 'inputs'},
|
|
{name: 'vat_id', display: 'ID', invisible: true}
|
|
|
|
],
|
|
// custome guziczki
|
|
customGridButtons: {
|
|
insert: $('<img>').css('color', 'red').text('Insert').get(0),
|
|
// Use a function that create DOM element
|
|
moveUp: function (){
|
|
var button = document.createElement('img');
|
|
button.src = 'modules/EcmQuotes/images/moverowup.gif';
|
|
return button;
|
|
},
|
|
moveDown: function (){
|
|
var button = document.createElement('img');
|
|
button.src = 'modules/EcmQuotes/images/moverowdown.gif';
|
|
return button;
|
|
}
|
|
},
|
|
// startowa zawartosc tableki
|
|
initData: [
|
|
{'vat_value': '23%', 'netto': '', 'vat': '', 'vat_id': '23'},
|
|
{'vat_value': '0%', 'netto': '', 'vat': '', 'vat_id': '0'},
|
|
{'vat_value': '8%', 'netto': '', 'vat': '', 'vat_id': '8'},
|
|
{'vat_value': '22%', 'netto': '', 'vat': '', 'vat_id': '22'},
|
|
{'vat_value': '7%', 'netto': '', 'vat': '', 'vat_id': '7'},
|
|
{'vat_value': 'Zw', 'netto': '', 'vat': '', 'vat_id': '0'},
|
|
{'vat_value': 'Np', 'netto': '', 'vat': '', 'vat_id': '0'},
|
|
],
|
|
// ukrywanie nie potrzebnych guziczkow
|
|
hideButtons: {
|
|
remove: true,
|
|
removeLast: true,
|
|
insert: true,
|
|
append: true
|
|
}
|
|
});
|
|
// wczytywanie danych do tabelki
|
|
LoadDataFromVatList();
|
|
// hide css classes
|
|
$('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 getNBPCurrencyExchange(c_id) {
|
|
|
|
var date = $("#document_date").val();
|
|
var d = date.split(".");
|
|
d[0] -= 1;
|
|
date = d.join(".");
|
|
var params = {
|
|
job : 'getNBPCurrencyExchange',
|
|
c_id : c_id,
|
|
date : date,
|
|
};
|
|
$.ajax({
|
|
type : "POST",
|
|
url : ajax_url,
|
|
dataType : "json",
|
|
async : false,
|
|
success : function(data) {
|
|
if (data.value != null) {
|
|
|
|
$("#currency_value").val(FormatNumber(data.value));
|
|
|
|
} else {
|
|
|
|
$("#currency_value").val(FormatNumber(0));
|
|
|
|
}
|
|
},
|
|
data : params
|
|
});
|
|
}
|
|
|
|
function LoadDataFromVatList(){
|
|
var vat_list = $.parseJSON($("input[name='vat_list']").val());
|
|
console.log(vat_list.length);
|
|
if (vat_list.length > 0) {
|
|
$.each(vat_list, function (idx2, obj2) {
|
|
|
|
if($.isNumeric(obj2.vat)){obj2.vat=FormatNumber(obj2.vat);}else{obj2.vat=0;}
|
|
if($.isNumeric(obj2.netto)){obj2.netto=FormatNumber(obj2.netto);}else{obj2.netto=0;}
|
|
$('#tblAppendGrid').appendGrid('setCtrlValue', 'vat_value', idx2, obj2.vat_value);
|
|
$('#tblAppendGrid').appendGrid('setCtrlValue', 'vat', idx2, obj2.vat);
|
|
$('#tblAppendGrid').appendGrid('setCtrlValue', 'vat_id', idx2, obj2.vat_id);
|
|
$('#tblAppendGrid').appendGrid('setCtrlValue', 'netto', idx2,obj2.netto );
|
|
});
|
|
}
|
|
}
|
|
|
|
function UserListEdit() {
|
|
var MaxInputs2 = 10; // maximum input boxes allowed
|
|
var InputsWrapper2 = $("#InputsWrapper2"); // Input boxes wrapper ID
|
|
var AddButton2 = $("#AddMoreUSERBox"); // Add button ID
|
|
|
|
var x2 = InputsWrapper2.length; // initlal text box count
|
|
var FieldCount2 = 1; // to keep track of text box added
|
|
|
|
var user_list = $.parseJSON($("input[name='user_list']").val()); // get
|
|
// and
|
|
// decode
|
|
// json
|
|
// object
|
|
// create select user type
|
|
$.each(user_list, function (idx, obj) { // add existing elements
|
|
FieldCount2++; // text box added increment
|
|
console.log(obj);
|
|
// add input box
|
|
if (idx == 0) {
|
|
// first element
|
|
$("div input[name='user_name[]']").first().val(htmlspecialchars_decode(obj.user_name));
|
|
$("div input[name='user_id[]']").first().val(obj.user_id);
|
|
$("div input[name='accepted_description[]']").first().val(obj.accepted_description);
|
|
$("div input[name='accepted[]']").first().val(obj.accepted);
|
|
$("div input[name='date_accepted[]']").first().val(obj.date_accepted);
|
|
} else {
|
|
// rest of elements
|
|
$(InputsWrapper2).append('\
|
|
<tr>\
|
|
<td> \
|
|
<input type="hidden" value="' + obj.user_id + '" name="user_id[]" id="user_id_' + x2 + '">\
|
|
<input type="hidden" value="' + obj.id + '" name="listUser_id[]">\
|
|
<input type="text" size="30" name="user_name[]" id="user_name_' + x2 + '" value="' + obj.user_name + '"/>\
|
|
<input type="hidden" value="' + obj.accepted_description + '" name="accepted_description[]" id="accepted_description_' + x2 + '">\
|
|
<input type="hidden" value="' + obj.accepted + '" name="accepted[]" id="accepted_' + x2 + '">\
|
|
<input type="hidden" value="' + obj.date_accepted + '" name="date_accepted[]" id="date_accepted_' + x2 + '">\
|
|
</td>\
|
|
<td>\
|
|
<a href="#" class="removeclassuser"><img class="id-ff-remove" name="0" src="index.php?entryPoint=getImage&themeName=Sugar5&imageName=id-ff-remove.png"></a>\
|
|
' + drawbuttons2(x2) + '\
|
|
</td>\
|
|
</tr>');
|
|
}
|
|
x2++; // text box increment
|
|
});
|
|
|
|
$(AddButton2).click(function (e) // on add input button click
|
|
{
|
|
if (x2 <= MaxInputs2) // max input box allowed
|
|
{
|
|
if (x2 == 1)
|
|
x2 = 2;
|
|
FieldCount2++; // text box added increment
|
|
// add input box
|
|
$(InputsWrapper2).append('\
|
|
<tr>\
|
|
<td> \
|
|
<input type="hidden" value="" name="user_id[]" id="user_id_' + x2 + '">\
|
|
<input type="hidden" value="" name="accepted_description[]" id="accepted_description_' + x2 + '">\
|
|
<input type="hidden" value="" name="accepted[]" id="accepted_' + x2 + '">\
|
|
<input type="hidden" value="" name="date_accepted[]" id="date_accepted_' + x2 + '">\
|
|
<input type="hidden" value="" name="listUser_id[]">\
|
|
<input type="text" size="30" name="user_name[]" id="user_name_' + x2 + '" value=""/>\
|
|
</td>\
|
|
<td>\
|
|
<a href="#" class="removeclassuser"><img class="id-ff-remove" name="0" src="index.php?entryPoint=getImage&themeName=Sugar5&imageName=id-ff-remove.png"></a>\
|
|
' + drawbuttons2(x2) + '\
|
|
</td>\
|
|
</tr>');
|
|
x2++; // text box increment
|
|
}
|
|
return false;
|
|
});
|
|
|
|
$("body").on("click", ".removeclassuser", function (e) { // user click on remove
|
|
// text
|
|
if (x2 > 1) {
|
|
$(this).closest('tr').remove();// remove text box
|
|
x2--; // decrement textbox
|
|
}
|
|
return false;
|
|
});
|
|
}
|
|
|
|
function InitializeTableCost() {
|
|
$(function () {
|
|
// Initialize appendGrid
|
|
$('#tableCostEdit').appendGrid({
|
|
hideRowNumColumn: true,
|
|
caption: 'Tabela kosztów',
|
|
initRows: 0,
|
|
columns: [
|
|
{name: 'nazwa', display: 'Nazwa', type: 'text',ctrlAttr: {readonly: 'readonly'},ctrlCss: {width: '70%','text-align': 'left', 'vertical-align':'middle'}},
|
|
{name: 'koszt', display: 'Koszt', type: 'text',ctrlCss: {width: '97%','text-align': 'right'}
|
|
,onChange: function (evt, rowIndex) {
|
|
// formatowanie
|
|
var data = $('#tableCostEdit').appendGrid('getRowValue', rowIndex);
|
|
if (data.koszt != '') {
|
|
$('#tableCostEdit').appendGrid('setCtrlValue', 'koszt', rowIndex, FormatNumber(data.koszt));
|
|
}
|
|
},
|
|
},
|
|
{name: 'addcolumn', display: 'addcolumn', type: 'text',ctrlCss: {width: '97%','text-align': 'right'}}
|
|
],
|
|
i18n: {
|
|
append: 'Dodawanie rekordu',
|
|
remove: 'Usuwanie rekordu',
|
|
insert: 'Dodanie rekordu nad',
|
|
moveUp: 'Przesuń rekord w górę',
|
|
moveDown: 'Przesun rekord w dół',
|
|
removeLast: 'Usuń ostatni wiersz',
|
|
rowEmpty: 'Brak rekordów'
|
|
}
|
|
});
|
|
//var tabela_list = $.parseJSON($("input[name='vat_list']").val());
|
|
});
|
|
} |