395 lines
12 KiB
JavaScript
Executable File
395 lines
12 KiB
JavaScript
Executable File
//START:
|
|
$(document).ready(function() {
|
|
InitializePositionList();
|
|
$("#create_ks").on('click',create_ks);
|
|
});
|
|
|
|
function create_ks(){
|
|
var potwierdzenie = confirm('Czy na pewno utworzyć dokumenty KS i wprowadzić zmiany na magazynie?');
|
|
if(!potwierdzenie){
|
|
return;
|
|
}
|
|
//Formatka do daty
|
|
var today = new Date();
|
|
var dd = today.getDate();
|
|
var mm = today.getMonth()+1; //January is 0!
|
|
var yyyy = today.getFullYear();
|
|
|
|
if(dd<10){
|
|
dd = "0" + dd;
|
|
}
|
|
|
|
if(mm<10){
|
|
mm = "0" + mm;
|
|
}
|
|
var data_dokumentu = window.prompt("Data dokumentu KS:","" + dd + "." + mm + "." + yyyy);
|
|
if(data_dokumentu === null){
|
|
alert("Operacja anulowana.");
|
|
}
|
|
// Sprawdzamy wstepnie czy dobrze wyglada
|
|
var pattern = /(\d{2})\.(\d{2})\.(\d{4})/;
|
|
var dt = new Date(data_dokumentu.replace(pattern,'$3-$2-$1'));
|
|
if ( isNaN( dt.getTime() ) ) { // d.valueOf() could also work
|
|
alert("Zły format daty. Operacja anulowana.");
|
|
return;
|
|
}
|
|
// zmiana dla mysql
|
|
data_dokumentu_splited = data_dokumentu.split(".");
|
|
data_dokumentu = data_dokumentu_splited[2] + "-" + data_dokumentu_splited[1]+ "-" + data_dokumentu_splited[0];
|
|
|
|
|
|
var id_dokumentu = $("input[name='record']").val();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "index.php?module=EcmInventorys&action=ajax&to_pdf=1",
|
|
dataType: "json",
|
|
async: false,
|
|
data: {
|
|
job: "create_ks_documents",
|
|
ecminventory_id: id_dokumentu,
|
|
ks_date_document : data_dokumentu
|
|
},
|
|
success: function (data) {
|
|
console.log(data);
|
|
if(data==1){
|
|
location.reload();
|
|
}else if(data==-1){
|
|
alert('Nie wprowadzono żadnych zmian. Brak różnic pomiędzy listą, a stanem magazynowym.');
|
|
}else if(data == -2){
|
|
alert('Podana data jest starsza niż ostatni dokument KS w bazie. Operacja anulowana.');
|
|
}else{
|
|
alert(data);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function InitializePositionList() {
|
|
var ecminventory_id = $("input[name='record']").val();
|
|
var init_data = '';
|
|
if(ecminventory_id !=''){
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "index.php?module=EcmInventorys&action=ajax&to_pdf=1",
|
|
dataType: "json",
|
|
async: false,
|
|
data: {
|
|
job: "getPositionList",
|
|
ecminventory_id: ecminventory_id,
|
|
},
|
|
success: function (data) {
|
|
init_data = data;
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
// Initialize appendGrid
|
|
$('#position_list').appendGrid({
|
|
hideRowNumColumn: false,
|
|
initRows: 1,
|
|
initData: init_data,
|
|
columns: [
|
|
{
|
|
name: 'id',
|
|
display: 'id',
|
|
type: 'text',
|
|
invisible: true,
|
|
},{
|
|
name: 'dd_unit_id',
|
|
display: 'dd_unit_id',
|
|
type: 'text',
|
|
invisible: true,
|
|
},{
|
|
name: 'dd_unit_precision',
|
|
display: 'dd_unit_precision',
|
|
type: 'text',
|
|
value: 0,
|
|
invisible: true,
|
|
},{
|
|
name: 'ecmproductcategory_id',
|
|
display: 'ecmproductcategory_id',
|
|
type: 'text',
|
|
invisible: true,
|
|
},{
|
|
name: 'ecmproduct_id',
|
|
display: 'ecmproduct_id',
|
|
type: 'text',
|
|
invisible: true,
|
|
}, {
|
|
name: 'modified_user_id',
|
|
display: 'modified_user_id',
|
|
type: 'text',
|
|
value: $("#current_user_id").val(),
|
|
invisible: true,
|
|
},{
|
|
name: 'code',
|
|
display: SUGAR.language.get("app_strings", "LBL_INDEX"),
|
|
type: 'text',
|
|
displayCss: {
|
|
'width': '10%',
|
|
'vertical-align': 'middle',
|
|
'background-color': 'rgb(224,240,255)',
|
|
'border': '1px solid rgb(48,192,255)',
|
|
},
|
|
ctrlCss: {
|
|
'text-align': 'left',
|
|
'vertical-align': 'middle',
|
|
},
|
|
ctrlClass: 'inputs',
|
|
ctrlAttr: {
|
|
readonly: 'readonly'
|
|
},
|
|
}, {
|
|
name: 'name',
|
|
display: SUGAR.language.get("app_strings", "LBL_NAME"),
|
|
type: 'text',
|
|
displayCss: {
|
|
'width': '40%',
|
|
'vertical-align': 'middle',
|
|
'background-color': 'rgb(224,240,255)',
|
|
'border': '1px solid rgb(48,192,255)',
|
|
},
|
|
ctrlClass: 'inputs',
|
|
ctrlCss: {
|
|
'text-align': 'left'
|
|
},
|
|
ctrlAttr: {
|
|
readonly: 'readonly'
|
|
},
|
|
}, {
|
|
name: 'dd_unit_name',
|
|
display: SUGAR.language.get("app_strings", "LBL_JM"),
|
|
type: 'text',
|
|
displayCss: {
|
|
'width': '5%',
|
|
'vertical-align': 'middle',
|
|
'background-color': 'rgb(224,240,255)',
|
|
'border': '1px solid rgb(48,192,255)',
|
|
},
|
|
ctrlClass: 'inputs',
|
|
ctrlAttr: {
|
|
readonly: 'readonly'
|
|
},
|
|
}, {
|
|
name: 'ecmproductcategory_name',
|
|
display: SUGAR.language.get("app_strings", "LBL_CATEGORY"),
|
|
type: 'text',
|
|
displayCss: {
|
|
'width': '20%',
|
|
'vertical-align': 'middle',
|
|
'background-color': 'rgb(224,240,255)',
|
|
'border': '1px solid rgb(48,192,255)',
|
|
},
|
|
ctrlCss: {
|
|
'text-align': 'left'
|
|
},
|
|
ctrlClass: 'inputs',
|
|
ctrlAttr: {
|
|
readonly: 'readonly'
|
|
},
|
|
}, {
|
|
name: 'quantity',
|
|
display: 'Ilość remanentowa',
|
|
type: 'custom',
|
|
displayCss: {
|
|
'width': '12%',
|
|
'vertical-align': 'middle',
|
|
'background-color': 'rgb(224,240,255)',
|
|
'border': '1px solid rgb(48,192,255)',
|
|
},
|
|
customBuilder: function (parent, idPrefix, name, uniqueIndex) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
var ctrl = $('<input/>', { type: 'text', id: ctrlId, name: ctrlId}).css({'text-align':'right'});
|
|
ctrl.addClass('inputs');
|
|
ctrl.on('change',function(){
|
|
var wiersz = $(this).closest('tr');
|
|
var ilosc = UnformatNumber($(this).val());
|
|
var precyzja = wiersz.find('input[name^="position_list_dd_unit_precision_"]').val();
|
|
|
|
$(this).val(FormatNumber(ilosc,precyzja));
|
|
var cena_str = wiersz.find('input[name^="position_list_price_"]').val();
|
|
if(cena_str==''){
|
|
return;
|
|
}
|
|
var cena = UnformatNumber(cena_str);
|
|
wiersz.find('input[name^="position_list_total_"]').val(FormatNumber(ilosc*cena));
|
|
|
|
var stan = UnformatNumber(wiersz.find('input[name^="position_list_stock_state_"]').val());
|
|
|
|
var roznica = ilosc-stan;
|
|
wiersz.find('input[name^="position_list_difference_"]').val(FormatNumber(roznica,precyzja));
|
|
if(ilosc > stan){
|
|
wiersz.find('input[name^="position_list_difference_"]').css('color','green');
|
|
}
|
|
if(ilosc < stan){
|
|
wiersz.find('input[name^="position_list_difference_"]').css('color','red');
|
|
}
|
|
if(ilosc == stan){
|
|
wiersz.find('input[name^="position_list_difference_"]').css('color','black');
|
|
}
|
|
});
|
|
$(ctrl).appendTo(parent);
|
|
return ctrl;
|
|
},
|
|
customGetter: function (idPrefix, name, uniqueIndex) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
return UnformatNumber($('#'+ctrlId).val());
|
|
},
|
|
customSetter: function (idPrefix, name, uniqueIndex, value) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
var precyzja = $(this).closest('tr').find('input[name^="position_list_dd_unit_precision_"]').val();
|
|
$('#'+ctrlId).val(FormatNumber(value,precyzja));
|
|
},
|
|
}, {
|
|
name: 'stock_state',
|
|
display: 'Stan kartotekowy',
|
|
type: 'custom',
|
|
displayCss: {
|
|
'width': '10%',
|
|
'vertical-align': 'middle',
|
|
'background-color': 'rgb(224,240,255)',
|
|
'border': '1px solid rgb(48,192,255)',
|
|
},
|
|
customBuilder: function (parent, idPrefix, name, uniqueIndex) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
var ctrl = $('<input/>', { type: 'text', id: ctrlId, name: ctrlId }).css({'text-align':'right','color':'black'}).prop({'disabled': 'disabled','readonly': 'readonly'});
|
|
ctrl.addClass('inputs');
|
|
ctrl.on('change',function(){
|
|
var wartosc_przed = UnformatNumber($(this).val());
|
|
$(this).val(FormatNumber(wartosc_przed));
|
|
});
|
|
$(ctrl).appendTo(parent);
|
|
return ctrl;
|
|
},
|
|
customGetter: function (idPrefix, name, uniqueIndex) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
return UnformatNumber($('#'+ctrlId).val());
|
|
},
|
|
customSetter: function (idPrefix, name, uniqueIndex, value) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
$('#'+ctrlId).val(FormatNumber(value));
|
|
},
|
|
},{
|
|
name: 'difference',
|
|
display: 'Różnica',
|
|
type: 'custom',
|
|
displayCss: {
|
|
'width': '10%',
|
|
'vertical-align': 'middle',
|
|
'background-color': 'rgb(224,240,255)',
|
|
'border': '1px solid rgb(48,192,255)',
|
|
},
|
|
customBuilder: function (parent, idPrefix, name, uniqueIndex) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
var ctrl = $('<input/>', { type: 'text', id: ctrlId, name: ctrlId }).css({'text-align':'right'}).prop({'disabled': 'disabled','readonly': 'readonly'});
|
|
ctrl.addClass('inputs');
|
|
ctrl.on('change',function(){
|
|
var wartosc_przed = UnformatNumber($(this).val());
|
|
$(this).val(FormatNumber(wartosc_przed));
|
|
});
|
|
$(ctrl).appendTo(parent);
|
|
return ctrl;
|
|
},
|
|
customGetter: function (idPrefix, name, uniqueIndex) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
return UnformatNumber($('#'+ctrlId).val());
|
|
},
|
|
customSetter: function (idPrefix, name, uniqueIndex, value) {
|
|
var ctrlId = idPrefix + '_' + name + '_' + uniqueIndex;
|
|
$('#'+ctrlId).val(FormatNumber(value));
|
|
|
|
if(value > 0){
|
|
$('#'+ctrlId).css('color','green');
|
|
}
|
|
if(value < 0){
|
|
$('#'+ctrlId).css('color','red');
|
|
}
|
|
if(value == 0){
|
|
$('#'+ctrlId).css('color','black');
|
|
}
|
|
|
|
},
|
|
},
|
|
],
|
|
i18n: {
|
|
append: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_APPEND"),
|
|
remove: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_REMOVE"),
|
|
insert: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_INSERT"),
|
|
moveUp: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_MOVEUP"),
|
|
moveDown: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_MOVEDOWN"),
|
|
removeLast: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_REMOVELAST"),
|
|
rowEmpty: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_ROWEMPTY"),
|
|
rowDrag: SUGAR.language.get("app_strings", "LBL_APPENDGRID_I18_ROWDRAG"),
|
|
},
|
|
customGridButtons: {
|
|
insert: function () {
|
|
var button = document.createElement('img');
|
|
button.src = 'modules/EcmQuotes/images/add_position.gif';
|
|
return button;
|
|
},
|
|
remove: function () {
|
|
var button = document.createElement('img');
|
|
button.src = 'modules/EcmQuotes/images/deleterow.gif';
|
|
return button;
|
|
},
|
|
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;
|
|
},
|
|
},
|
|
afterRowRemoved: function (caller, rowIndex) {
|
|
var quantity = $('#position_list').appendGrid(
|
|
'getRowCount');
|
|
if (quantity == 0) {
|
|
$('#position_list').appendGrid('appendRow', 1);
|
|
}
|
|
},
|
|
hideButtons: {
|
|
removeLast: true,
|
|
append: true,
|
|
insert: true,
|
|
remove: true,
|
|
moveUp: true,
|
|
moveDown: true
|
|
}
|
|
});
|
|
|
|
var tmp = {};
|
|
$.each(init_data,function (k,v){
|
|
tmp[v['ecmproduct_id']] = v;
|
|
});
|
|
|
|
var data_table = $('#position_list').appendGrid('getAllValue', false);
|
|
// iteruje po tabelce by poprawić precyzje bo niestety kolejnosc zdarzen nie jest taka jaka bym chcial
|
|
$.each(data_table,function (indeks_row, row_values){
|
|
|
|
if(tmp[row_values['ecmproduct_id']]!== undefined){
|
|
var id = $('#position_list').appendGrid('getUniqueIndex', indeks_row);
|
|
var precyzja = tmp[row_values['ecmproduct_id']]['dd_unit_precision'];
|
|
var stan = tmp[row_values['ecmproduct_id']]['stock_state'];
|
|
var ilosc = tmp[row_values['ecmproduct_id']]['quantity'];
|
|
|
|
$('#position_list_stock_state_'+id).val(FormatNumber(stan,precyzja));
|
|
$('#position_list_quantity_'+id).val(FormatNumber(ilosc,precyzja));
|
|
var roznica = ilosc-stan;
|
|
$('#position_list_difference_'+id).val(FormatNumber(roznica,precyzja));
|
|
if(ilosc > stan){
|
|
$('#position_list_difference_'+id).css('color','green');
|
|
}
|
|
if(ilosc < stan){
|
|
$('#position_list_difference_'+id).css('color','red');
|
|
}
|
|
if(ilosc == stan){
|
|
$('#position_list_difference_'+id).css('color','black');
|
|
}
|
|
|
|
}
|
|
});
|
|
} |