Add JS files

This commit is contained in:
2025-05-12 15:45:17 +00:00
parent 7ddd15c4fa
commit 967007b0c7
3239 changed files with 1157078 additions and 0 deletions

View File

@@ -0,0 +1,124 @@
//START:
$(document).ready(
function() {
// confirm exit
window.onbeforeunload = confirmExit;
// prevent submit by enter press
lockEnter();
//// categories
getCategoriesList();
$("#parent_name").change(
function() {
$(".loading_panel").css("display", "block");
setTimeout(function() {
getParentInfo($("#parent_id").val(), 'Accounts');
}, 1000);
});
// searchProductInput change
$('#searchProductsInput').keyup(function() {
searchProducts();
});
$("#stock_pw").change(function() {
$("#pw_stock_id").val(($("#stock_pw :selected").val()));
});
$("#stock_rw").change(function() {
$("#rw_stock_id").val(($("#stock_rw :selected").val()));
});
DrawHeaders();
$("#register_date").prop("disabled", true);
$("#assigned_user_name").prop("disabled", true);
//$("#register_date_trigger").hide();
$("#btn_assigned_user_name").hide();
$("#btn_clr_assigned_user_name").hide();
if (($("#new_number").val() == true)
&& ($("#duplicate").val() != true)) {
generateNumber();
} else if (($("#new_number").val() == true)
&& ($("#duplicate").val() == true)) {
generateNumber();
getParentInfo($("#parent_id").val(),
$("#parent_type :selected").val());
getItems();
} else {
getParentInfo($("#parent_id").val(),
'Accounts');
getItems();
$("#rw_stock_id").val(($("#stock_rw :selected").val()));
$("#pw_stock_id").val(($("#stock_pw :selected").val()));
}
// handle setItems
setITEMS = function() {
SetTab('ITEMS');
//var formname = 'EditView';
//if (check_form_(formname) == true) {
// SetTab('ITEMS');
// //checkProducts();
// //disable stock change
// //$("#stock_pw").prop("disabled", true);
// $("#stock_rw").prop("disabled", true);
//}
};
// add mz@bim-it.pl 11.11.2023
if ($("#position_list").val().length) {
const data = JSON.parse($("#position_list").val().replaceAll("'", '"'));
items = data;
FillTable(data, false);
}
$("#stock_rw").change(function() {
for (var i = 0; i < items.length; i++) {
if (items[i].product_component === 1) {
refreshStock(i, 1);
}
}
});
$("#stock_pw").change(function() {
for (var i = 0; i < items.length; i++) {
if (items[i].product_component === 0) {
refreshStock(i, 0);
}
}
});
// enc mz
});
// handle save
var check_form_ = check_form;
check_form = function(formname) {
window.onbeforeunload = null;
if (items.length == 0) {
alert("Brak produktów");
return false;
}
$(".loading_panel").css("display", "block");
$("#register_date").prop("disabled", false);
$("#assigned_user_name").prop("disabled", false);
$("#position_list").val(JSON.stringifyNoSecurity(items));
var check = checkProducts();
$(".loading_panel").css("display", "none");
if (check_form_(formname) == false || check == false) {
$("#register_date").prop("disabled", true);
$("#assigned_user_name").prop("disabled", true);
window.onbeforeunload = confirmExit;
$(".loading_panel").css("display", "none");
return false;
} else {
return true;
}
};
function confirmExit() {
return "";
}
function lockEnter() {
// prevent default
$(window).keydown(function(event) {
if (event.keyCode == 13 && $(":focus").prop('tagName')!='TEXTAREA') {
event.preventDefault();
return false;
}
});
}

View File

@@ -0,0 +1,7 @@
//START:
$(document).ready(
function() {
DrawHeaders();
getItems(false);
});

View File

@@ -0,0 +1,89 @@
//START:
$(document).ready(
function() {
// confirm exit
window.onbeforeunload = confirmExit;
// prevent submit by enter press
lockEnter();
// categories
getCategoriesList();
// searchProductInput change
$('#searchProductsInput').keyup(function() {
searchProducts();
});
$("#stock_in").change(function() {
$("#stock_in_id").val(($("#stock_in :selected").val()));
});
$("#stock_out").change(function() {
$("#stock_out_id").val(($("#stock_out :selected").val()));
});
DrawHeaders();
$("#register_date").prop("disabled", true);
$("#assigned_user_name").prop("disabled", true);
//$("#register_date_trigger").hide();
$("#btn_assigned_user_name").hide();
$("#btn_clr_assigned_user_name").hide();
if (($("#new_number").val() == true)
&& ($("#duplicate").val() != true)) {
generateNumber();
} else if (($("#new_number").val() == true)
&& ($("#duplicate").val() == true)) {
generateNumber();
getItems();
}
// handle setItems
setITEMS = function() {
var formname = 'EditView';
if (check_form_(formname) == true) {
SetTab('ITEMS');
checkProducts();
//disable stock change
$("#stock_in").prop("disabled", true);
$("#stock_out").prop("disabled", true);
}
};
});
// handle save
var check_form_ = check_form;
check_form = function(formname) {
window.onbeforeunload = null;
if (items.length == 0) {
alert("Brak produktów");
return false;
}
$(".loading_panel").css("display", "block");
$("#register_date").prop("disabled", false);
$("#assigned_user_name").prop("disabled", false);
$("#position_list").val(JSON.stringifyNoSecurity(items));
var check = true;
$(".loading_panel").css("display", "none");
if (check_form_(formname) == false || check == false) {
$("#register_date").prop("disabled", true);
$("#assigned_user_name").prop("disabled", true);
window.onbeforeunload = confirmExit;
$(".loading_panel").css("display", "none");
return false;
} else {
return true;
}
};
function confirmExit() {
return "";
}
function lockEnter() {
// prevent default
$(window).keydown(function(event) {
if (event.keyCode == 13 && $(":focus").prop('tagName')!='TEXTAREA') {
event.preventDefault();
return false;
}
});
}

View File

@@ -0,0 +1,7 @@
//START:
$(document).ready(
function() {
DrawHeaders();
getItems(false);
});

View File

@@ -0,0 +1,823 @@
var itemsTable = 'itemsTable';
var items = new Array();
var displayArray = new Array();
var searchedProducts = new Array();
var ajax_url = "index.php?module=EcmInsideOrders&action=javahelper&to_pdf=1";
function FillTable(data, allReadOnly) {
html = '';
// loop throw data rows
var comp_count = 0;
var color;
$.each(
data,
function (row_index, row) {
if (row.product_component == 0) {
comp_count++;
color = '#D4D9DB';
} else {
color = '#ffffff';
}
html += '<tr>';
//alert(row_index);
//alert(comp_count);
// 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_component == 0) {
html += (comp_count);
} else {
html += '';
}
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/EcmInsideOrders/images/moverowup.gif"/></a>';
html += '&nbsp;';
// move down
html += '<a onClick="moveDownRow('
+ row_index
+ ')" target="_blank"><img style="cursor:pointer;" src="modules/EcmInsideOrders/images/moverowdown.gif"/></a>';
html += '<br>';
// delete row
html += '<a onClick="deleteRow('
+ row_index
+ ')" target="_blank"><img style="cursor:pointer;" src="modules/EcmInsideOrders/images/deleterow.gif"/></a>';
html += '&nbsp;';
// get components
html += '<a onClick="getComponents('
+ row_index
+ ')" target="_blank"><img style="cursor:pointer;" src="modules/EcmInsideOrders/images/get_components.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/EcmQuotes/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.precision) precision = cell.precision; else precision = 2;
if (cell.onChange
|| cell.isNumber) {
if (cellname == 'quantity')
precision = 4;
else
precision = 2;
html += ' onChange="$(this).val(FormatNumber($(this).val(),' + precision + '));'
+ 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], precision)
+ '" ';
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) {
DrawDetailSummary();
}
}
function deleteRow(index) {
var count = $('#' + itemsTable + '_T tr').length - 1; // -1 - thead row
var error = false; // hope :)
var id = $("#product_id_" + index).val();
var howmany = 1;
for (var row = 0; row != count; row++) {
comp_id = $("#product_product_id_" + row).val();
if (comp_id == id) howmany++;
}
items.splice(index, howmany);
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 FormatNumber(number, precision) {
if (number < 0)
number = 0;
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/EcmQuotes/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 += '&nbsp;';
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;">&nbsp;</td>';
html += '</tr>';
html += '</table>';
// sort? why not!
/*
* html += 'Sortowanie:&nbsp;'; 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 searchProducts() {
var searchKey = $('#searchProductsInput').val();
if (searchKey.length < 2 && searchKey != '%') {
return;
}
$("#searchResultDiv").html(
'<img src="modules/EcmQuotes/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(),
searchStockId: $("#stock_out_id :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;">&nbsp</th>';
html += '<th style="width: 100pt; text-align: left;">Kod</th>';
html += '<th style="width: 300pt; text-align: left;">Nazwa</th>';
if ($("#productSearchStock :selected").val() != '1')
html += '<th style="width: 30pt; text-align: right;">Stan</th>';
html += '<th style="width: 15pt; margin: auto auto;">&nbsp</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 "><input id="prod_'
+ value.id + '" type="checkbox"/></td>';
html += '<td style="text-align:left;" onClick="$(\'#prod_'
+ value.id
+ '\').prop(\'checked\', true);">'
+ value.code + '</td>';
html += '<td style="text-align:left;" onClick="unsetAllCheckboxes(); $(\'#prod_'
+ value.id
+ '\').prop(\'checked\', true); return addProducts();">'
+ value.name + '</td>';
if ($("#productSearchStock :selected").val() != '1')
html += '<td style="border: 0.5px dashed black;text-align:right;">'
+ value.stock_state + '</td>';
html += '<td>';
html += '<img style="cursor: pointer;" src="modules/EcmQuotes/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:&nbsp<input type="text" id="searchInputPrice" value=""/>&nbspIlość:&nbsp<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 searchIn(id) {
var error = 0;
for (var item in items) {
if (items[item].product_id == id) {
error = 1
}
}
return error;
}
function addProducts() {
var i = 0;
$(".loading_panel").css("display", "block");
var products = new Array();
$.each(searchedProducts, function (index, value) {
if ($('#prod_' + value).is(':checked'))
products[value] = true;
});
for (var key in products) {
if (searchIn(key) == 0) {
var params = {
job: 'getProduct',
id: key,
stockId: $("#pw_stock_id").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.unit_name = data.unit_name;
p.unit_id = data.unit_id;
p.stock_state = data.stock_state;
p.product_category_id = data.product_category_id;
p.product_component = '0';
p.product_product_id = '';
if ($("#searchInputQty").val() != ''
&& !isNaN(parseFloat(UnformatNumber($(
"#searchInputQty").val()))))
p.quantity = $("#searchInputQty").val();
items.push(p);
i++;
}
},
data: params
});
var params = {
job: 'getComponents',
product_id: key,
};
$.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
async: false,
success: function (data) {
$.each(data, function (id, value) {
var a = new Object();
a.product_id = value.id;
a.name = value.name;
a.product_code = value.code;
a.unit_name = value.unit_name;
a.unit_id = value.unit_id;
a.stock_state = refreshStock2(value.id, 1);
a.product_category_id = value.product_category_id;
if ($("#searchInputQty").val() != ''
&& !isNaN(parseFloat(UnformatNumber($(
"#searchInputQty").val()))))
a.quantity = value.quantity * $("#searchInputQty").val();
a.quantity_comp = value.quantity;
a.unit_id = value.unit_id;
a.unit_name = value.unit_name;
a.product_product_id = key;
a.product_component = '1';
items.push(a);
i++;
});
// items.push(p);
},
data: params
});
} else {
alert('Wybrany produkt już znajduje się na liście!');
}
}
FillTable(items, false);
// clear results
$('#searchResultDiv').html('');
searchedProducts = new Array();
$('#searchProductsInput').val('');
$(".loading_panel").css("display", "none");
}
function getItems(editview) {
var record = '';
var stock = $("#stock_rw :selected").val();
stock += ',' + $("#stock_pw :selected").val();
if ($("#duplicate").val() == true)
record = $("input[name='return_id']").val();
else
record = $("input[name='record']").val();
if (isNaN(editview))
editview = true;
var params = {
job: 'getItems',
record: record,
stockId: stock,
};
$.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() {
$("#result_table").html('');
html = '';
html += '<tr id="subtotal_tr"> ';
html += '<td class="positionsLabel" style="border-top:0px;">Suma dokumentu</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=\''
+ $("#doc_total").val() + '\'></td>';
html += '</tr>';
html += '<tr id="discount_tr"> ';
html += '<td class="positionsLabel">Suma operacji: wyjście</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=\''
+ $("#operations_out").val() + '\'></td>';
html += '</tr>';
html += '<tr id="total_tr"> ';
html += '<td class="positionsLabel">Suma operacji: wyjście</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=\''
+ $("#operations_in").val() + '\'></td>';
html += '</tr>';
html += '<tr id="total_tr"> ';
html += '<td class="positionsLabel"><a href="index.php?module=EcmStockOperations&custom_parent_id='
+ $("input[name=record]").val()
+ '" target="blank">Podgląd operacji magazynowych</a></td>';
html += '<td class="positionsField">&nbsp;</td>';
html += '</tr>';
$("#result_table").html(html);
}
function generateNumber() {
var params = {
job: 'generateNumber'
};
$.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
success: function (data) {
if (data == '-1') {
// try loading again
generateNumber();
} else {
$("#document_no").val(data.document_no);
$("#number").val(data.number);
$(".loading_panel").css("display", "none");
}
},
data: params
});
}
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 refreshStock(index, mag) {
var mag_id;
if (mag == 1)
mag_id = $("#rw_stock_id").val();
else
mag_id = $("#pw_stock_id").val();
var params = {
job: 'getStockState',
id: $("#product_id_" + index).val(),
stockId: mag_id,
};
$.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
async: false,
success: function (data) {
$("#stock_state_" + index).val(FormatNumber(data));
},
data: params
});
}
function refreshStock2(id, mag) {
var mag_id;
var stock;
if (mag == 1)
mag_id = $("#rw_stock_id").val();
else
mag_id = $("#pw_stock_id").val();
var params = {
job: 'getStockState',
id: id,
stockId: mag_id,
};
$.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
async: false,
success: function (data) {
stock = data;
},
data: params
});
return stock;
}
function checkProducts() {
var count = $('#' + itemsTable + '_T tr').length - 1; // -1 - thead row
var error = false; // hope :)
var id;
var pqty;
for (var index = 0; index != count; index++) {
refreshStock(1);
var qty = UnformatNumber($("#quantity_" + index).val());
if (items[index].product_component == 0) {
id = items[index].product_id;
pqty = UnformatNumber($("#quantity_" + index).val());
$("#quantity_" + index).val(FormatNumber(pqty, 4));
items[index].quantity = pqty;
}
if (items[index].product_component == 1
&& id == items[index].product_product_id) {
items[index].quantity = pqty * $("#quantity_comp_" + index).val();
$("#quantity_" + index).val(FormatNumber(items[index].quantity, 4));
}
//refreshStock(index,items[index].product_component);
var cat_id = $("#product_category_id_" + index).val();
// refresh items array
//items[index].quantity = qty;
var stock = UnformatNumber($("#stock_state_" + index).val());
if ((qty > stock || qty == 0) && cat_id != 'd7f876b0-1a3d-43a1-7c9b-511ba40df3d1') {
error = true;
$("#quantity_" + index).css("color", "red");
} else
$("#quantity_" + index).css("color", "black");
}
if (error)
return true;
else
return true;
}
function getComponents(index) {
$(".loading_panel").css("display", "block");
var product_id = items[index].product_id;
var qty = items[index].quantity;
var params = {
job: 'getComponents',
product_id: product_id,
};
$.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
async: false,
success: function (data) {
if (data.length > 0) {
items.splice(index, 1);
$.each(data, function (index, value) {
var p = new Object();
p.product_id = value.id;
p.name = value.name;
p.product_code = value.code;
p.unit_name = value.unit_name;
p.unit_id = value.unit_id;
p.quantity = qty * parseInt(value.quantity);
p.product_category_id = value.product_category_id;
if (p.product_category_id == 'd7f876b0-1a3d-43a1-7c9b-511ba40df3d1')
return;
items.push(p);
});
};
},
data: params
});
FillTable(items);
$(".loading_panel").css("display", "none");
}
// sortable rows in main table
$("#" + itemsTable + " tbody").sortable();
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
});
}
//insert parent info in fields
function setParentInfo(data) {
//pricebooks
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");
}

View File

@@ -0,0 +1,54 @@
columns = new Array();
//define columns
//begin: number
columns[0] = {
'name' : 'number',
'label' : 'Lp.',
'width' : 4,
'content' : new Array(),
};
columns[0]['content'][0] = {'name' : '', 'type': 'text', 'readonly' : true};
//end: number
//begin: code
columns[1] = {
'name' : 'product_',
'label' : 'Kod',
'width' : 6,
'content' : new Array(),
};
columns[1]['content'][0] = {'name' : 'code', 'type': 'hidden', 'readonly' : true};
columns[1]['content'][1] = {'name' : 'id', 'type': 'hidden'};
columns[1]['content'][2] = {'name' : 'link', 'type': 'text', 'readonly' : true};
columns[1]['content'][3] = {'name' : 'component', 'type': 'hidden'};
//end: code
//begin: name
columns[2] = {
'name' : 'name',
'label' : 'Nazwa',
'width' : 20,
'content' : new Array(),
};
columns[2]['content'][0] = {'name' : '', 'type': 'text'};
//end: name
//begin: quantity
columns[3] = {
'name' : 'quantity',
'label' : 'Ilość',
'width' : 5,
'content' : new Array(),
'align' : 'right',
};
columns[3]['content'][0] = {'name' : '', 'type': 'text', 'isNumber' : true, 'onChange' : 'checkProducts();'};
columns[3]['content'][1] = {'name' : '_comp', 'type': 'hidden'};
//end: quantity
//begin: unit
columns[4] = {
'name' : 'unit_',
'label' : 'J.M.',
'width' : 5,
'content' : new Array(),
'align' : 'center',
};
columns[4]['content'][0] = {'name' : 'name', 'type': 'text','readonly' : true};
columns[4]['content'][1] = {'name' : 'id', 'type': 'hidden'};
//end: units

View File

@@ -0,0 +1,73 @@
columns = new Array();
//define columns
//begin: number
columns[0] = {
'name' : 'number',
'label' : 'Lp.',
'width' : 4,
'content' : new Array(),
};
columns[0]['content'][0] = {'name' : '', 'type': 'text', 'readonly' : true};
//end: number
//begin: code
columns[1] = {
'name' : 'product_',
'label' : 'Kod',
'width' : 6,
'content' : new Array(),
};
columns[1]['content'][0] = {'name' : 'code', 'type': 'hidden', 'readonly' : true};
columns[1]['content'][1] = {'name' : 'id', 'type': 'hidden'};
columns[1]['content'][2] = {'name' : 'product_id', 'type': 'hidden'};
columns[1]['content'][3] = {'name' : 'component', 'type': 'hidden'};
columns[1]['content'][4] = {'name' : 'link', 'type': 'text', 'readonly' : true};
columns[1]['content'][5] = {'name' : 'category_id', 'type': 'hidden'};
//end: code
//begin: name
columns[2] = {
'name' : 'name',
'label' : 'Nazwa',
'width' : 20,
'content' : new Array(),
};
columns[2]['content'][0] = {'name' : '', 'type': 'text'};
//end: name
//begin: quantity
columns[3] = {
'name' : 'quantity',
'label' : 'Ilość',
'width' : 5,
'content' : new Array(),
'align' : 'right',
};
columns[3]['content'][0] = {'name' : '', 'type': 'text', 'isNumber' : true, 'onChange' : 'checkProducts();', 'precision' : '4'};
columns[3]['content'][1] = {'name' : '_comp', 'type': 'hidden'};
//end: quantity
//begin: unit
columns[4] = {
'name' : 'unit_',
'label' : 'J.M.',
'width' : 5,
'content' : new Array(),
'align' : 'center',
};
columns[4]['content'][0] = {'name' : 'name', 'type': 'text','readonly' : true};
columns[4]['content'][1] = {'name' : 'id', 'type': 'hidden'};
//end: unit
//begin: stock_state
columns[5] = {
'name' : 'stock_state',
'label' : 'Stan',
'width' : 5,
'content' : new Array(),
'align' : 'right',
};
columns[5]['content'][0] = {'name' : '', 'type': 'text', 'isNumber' : true};
//end: stock_state
//begin: options
columns[6] = {
'name' : 'options',
'label' : 'Opcje',
'width' : 3,
'content' : new Array(),
};

View File

@@ -0,0 +1,117 @@
var ajax_url = "index.php?module=EcmInsideOrders&action=javahelper&to_pdf=1";
//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
});
}
//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() {
var params = {
job : 'generateNumber'
};
$.ajax({
type: "POST",
url: ajax_url,
dataType : "json",
success: function(data) {
if (data == '-1') {
//try loading again
generateNumber();
} else {
$("#document_no").val(data.document_no);
$("#number").val(data.number);
$(".loading_panel").css("display", "none");
}
},
data: params
});
}
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
});
}