333 lines
14 KiB
JavaScript
333 lines
14 KiB
JavaScript
|
||
|
||
if(typeof window.DataModelOrderArchive ==="undefined"){
|
||
window.OrderArchiveModulDefault={
|
||
actionFunction: function () {},
|
||
}
|
||
class DataModelOrderArchive extends DataModel{
|
||
|
||
/*
|
||
* Constructor
|
||
*/
|
||
constructor (data,options) {
|
||
super(data,options)
|
||
if(typeof this.items ==="undefined"){
|
||
this.items={};
|
||
}
|
||
console.log(this.constructor.name+' constructor called');
|
||
};
|
||
};
|
||
window.DataModelOrderArchive=DataModelOrderArchive;
|
||
}
|
||
|
||
|
||
if(typeof window.OrderArchiveModule ==="undefined") {
|
||
class OrderArchiveModule extends ModuleBase{
|
||
constructor (options,data) {
|
||
super(options,data)
|
||
if(data!=="undefined" || data!=null){
|
||
}else{
|
||
this.data=new DataModelOrderArchive();
|
||
}
|
||
this.dataTable=null;
|
||
this.Opts.dataTable.advanceSearchParameter={
|
||
deliveryDateFrom:null,
|
||
deliveryDateTo:null,
|
||
profitCenterId:null,
|
||
supplierId:null,
|
||
}
|
||
|
||
}
|
||
|
||
datatableRowActionAttachment(rowData,node) {
|
||
debug('call datatableRowActionAttachment');
|
||
super.datatableRowActionAttachment(rowData,node,{defaultFileName:"order"});
|
||
}
|
||
|
||
datatableRowActionView(rowData,node) {
|
||
debug('call datatableRowActionView');
|
||
super.datatableRowActionView(rowData,node,APP.OrderArchiveModule)
|
||
console.log('datatableRowActionEdit End');
|
||
}
|
||
|
||
datatableRowActionButtonClick(event) {
|
||
debug('datatableRowActionButtonClick');
|
||
super.datatableRowActionButtonClick(event,APP.OrderArchiveModule);
|
||
}
|
||
/*
|
||
datatableRowActionButtonClick (event){
|
||
debug('datatableRowActionButtonClick');
|
||
let node=$(event[0].currentTarget);
|
||
let row=$(dataTableCSSSelector).DataTable().row(node.parents('tr'));
|
||
let rowData=row.data();
|
||
let actionName='datatableRowAction'+node.data('buttontype').capitalize();
|
||
if (typeof root[actionName] === "function") {
|
||
return root[actionName](rowData,node)
|
||
}
|
||
}
|
||
*/
|
||
datatableRowActionEdit(rowData,node) {
|
||
console.log('datatableRowActionEdit Called');
|
||
//Opts.onAfterInitViewDetails=root.autofillDetails;
|
||
let ajaxUrl=this.Opts.URL.edit.replace('%id%',rowData.id);
|
||
console.log(this.Opts.URL);
|
||
console.log(ajaxUrl);
|
||
/*
|
||
*/
|
||
APP.loadMainContent(ajaxUrl);
|
||
console.log('datatableRowActionEdit End');
|
||
}
|
||
|
||
initViewShow(){
|
||
debug('call initViewShow');
|
||
let root=APP.OrderArchiveModule;
|
||
let styleStr='<link rel="stylesheet" href="'+root.Opts.URL.root+'/css/invoice.css">';
|
||
$('table.invoice button.printButton').off('click');
|
||
$('table.invoice button.printButton').on('click',function () {
|
||
window.print();
|
||
return;
|
||
let newWin= window.open("");
|
||
newWin.document.write(styleStr);
|
||
let print=$('table.invoice').clone();
|
||
print.find('button.printButton').remove();
|
||
// newWin.document.write($('table.invoice').prop('outerHTML'));
|
||
newWin.document.write(print.prop('outerHTML'));
|
||
newWin.print();
|
||
// newWin.close();
|
||
});
|
||
}
|
||
|
||
datatableCustomHeadButtonClickCallBack(){
|
||
console.info('hello itt vagyok');
|
||
$('.advanceSearchModal').modal('show');
|
||
}
|
||
|
||
initAdvancedSearch(){
|
||
console.log('initAdvancedSearch');
|
||
window.datePickerTarget='';
|
||
$('.deliveryDateFrom,.deliveryDateTo').datepicker({
|
||
dateFormat: 'yy-mm-dd',
|
||
//minDate:new Date(),
|
||
onSelect:function (dateText){
|
||
debug('target:'+window.datePickerTarget);
|
||
$('.'+window.datePickerTarget+'SelectedDateText').text(dateText);
|
||
debug($(' input[name="'+window.datePickerTarget+'"]'));
|
||
$(' input[name="'+window.datePickerTarget+'"]').val(dateText);
|
||
},
|
||
});
|
||
|
||
|
||
|
||
$('.datePickerClick').click(function(){
|
||
debug($(this).data('target'));
|
||
datePickerTarget=$(this).data('target');
|
||
//$('.datePicker .'+datePickerTarget).datepicker('show');
|
||
$('.'+datePickerTarget).datepicker('show');
|
||
});
|
||
$(".selectProfitCenter,.selectSupplier").select2({
|
||
maximumSelectionLength: 1,
|
||
});
|
||
/*
|
||
stored advanceSearchParameter restoring
|
||
*/
|
||
let advanceFiltered=false;
|
||
$.each(this.Opts.dataTable.advanceSearchParameter,function (k,v) {
|
||
if(v!=null){
|
||
advanceFiltered=true;
|
||
console.log(k+' > '+v);
|
||
$('.advanceSearchModal input[name='+k+'],.advanceSearchModal select[name='+k+']').val(v).trigger('change');
|
||
$('.'+k+'SelectedDateText').text(v);
|
||
}
|
||
|
||
});
|
||
if(advanceFiltered){
|
||
$('.dt-button.btn-advanceSearchParameter').addClass('btn-success');
|
||
}
|
||
/*
|
||
clearing advanceSearchParameter
|
||
*/
|
||
$('.advanceSearchModal .buttonClear').off('click');
|
||
$('.advanceSearchModal .buttonClear').on('click',function () {
|
||
$('.advanceSearchModal input,.advanceSearchModal select').val('').trigger('change');
|
||
$('.SelectedDateText').text('\xa0');
|
||
let root=APP.OrderArchiveModule;
|
||
$.each(root.Opts.dataTable.advanceSearchParameter,function (k,v) {
|
||
root.Opts.dataTable.advanceSearchParameter[k]=null;
|
||
});
|
||
$('.dt-button.btn-advanceSearchParameter').removeClass('btn-success');
|
||
let dataTableCSSSelector=root.Opts.CSSSelectorContainer+' .dataTable';
|
||
$(dataTableCSSSelector).DataTable().ajax.reload();
|
||
$('.advanceSearchModal').modal('hide');
|
||
|
||
});
|
||
|
||
/*
|
||
process advanceSearchParameter
|
||
*/
|
||
$('.advanceSearchModal .buttonSave').off('click');
|
||
$('.advanceSearchModal .buttonSave').on('click',function (){
|
||
console.log('clicked advanced search ');
|
||
let root=APP.OrderArchiveModule;
|
||
let dataSearch=$('.advanceSearchModalForm').find('input,select').serializeArray();
|
||
console.log(dataSearch);
|
||
console.log(root.Opts);
|
||
console.log(root.Opts.dataTable.advanceSearchParameter);
|
||
$.each(root.Opts.dataTable.advanceSearchParameter,function (k,v) {
|
||
root.Opts.dataTable.advanceSearchParameter[k]=null;
|
||
});
|
||
$.each(dataSearch,function (k,item) {
|
||
console.log(item['name']);
|
||
console.log(item['value']);
|
||
if( typeof root.Opts.dataTable.advanceSearchParameter[item['name']]!= 'undefined'
|
||
&& item['value'].length>0
|
||
){
|
||
root.Opts.dataTable.advanceSearchParameter[item['name']]=item['value'];
|
||
}
|
||
})
|
||
console.log(root.Opts.dataTable.advanceSearchParameter);
|
||
let dataTableCSSSelector=root.Opts.CSSSelectorContainer+' .dataTable';
|
||
$(dataTableCSSSelector).DataTable().ajax.reload();
|
||
$('.dt-button.btn-advanceSearchParameter').addClass('btn-success');
|
||
$('.advanceSearchModal').modal('hide');
|
||
});
|
||
|
||
}
|
||
|
||
initViewList(options={}) {
|
||
console.log('[OA-DEBUG] initViewList() START');
|
||
debug('listview inicialization');
|
||
|
||
if(APP.IsUserAdmin){
|
||
this.DtColumns=[
|
||
{ "data": "supplier_name" },
|
||
{ "data": "deliveryDate" },
|
||
{ "data": "profit_center.name" },
|
||
{ "data": "deliveryAddressName" },
|
||
{ "data": "sentTime" },
|
||
{ "data": "humanId" },
|
||
{ "data": "confirmed" },
|
||
null,
|
||
];
|
||
}else{
|
||
this.DtColumns=[
|
||
{ "data": "supplier_name" },
|
||
{ "data": "deliveryDate" },
|
||
{ "data": "deliveryAddressName" },
|
||
{ "data": "sentTime" },
|
||
{ "data": "humanId" },
|
||
{ "data": "confirmed" },
|
||
null,
|
||
];
|
||
}
|
||
|
||
let dataTableCSSSelector=this.Opts.CSSSelectorContainer+' .dataTable'; //
|
||
console.log('[OA-DEBUG] dataTableCSSSelector =', dataTableCSSSelector);
|
||
console.log('[OA-DEBUG] table element found =', $(dataTableCSSSelector).length, 'db');
|
||
let colNum=$(dataTableCSSSelector+' thead th').length; //buttons insert position need
|
||
console.log('[OA-DEBUG] colNum (thead th count) =', colNum);
|
||
console.log('[OA-DEBUG] AJAX URL =', this.Opts.URL.getDataTableContent);
|
||
APP.setOpts({
|
||
//datatableRowActionButtonClickCallBack:this.datatableRowActionButtonClick,
|
||
datatableRowActionButtonClickCallBack:this.datatableRowActionButtonClick,
|
||
datatableCustomHeadButtonClickCallBack:this.datatableCustomHeadButtonClickCallBack,
|
||
})
|
||
let orderDirective=this.Opts.dataTable.orderDirective;
|
||
let advanceSearchParameter=this.Opts.dataTable.advanceSearchParameter;
|
||
|
||
if(typeof options['orderDirective']!='undefined'){
|
||
orderDirective=options['orderDirective'];
|
||
}
|
||
//let ajaxUrl=this.Opts.URL.getDataTableContent;
|
||
console.log('[OA-DEBUG] Calling .DataTable() init...');
|
||
this.dataTable=$(dataTableCSSSelector).DataTable( {
|
||
language: {
|
||
url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json'
|
||
},
|
||
|
||
//"ajax": "{{asset('exapmle2.json')}}",
|
||
"ajax": {
|
||
url:this.Opts.URL.getDataTableContent,
|
||
data:function (data) {
|
||
console.log('[OA-DEBUG] DataTable AJAX data() called – request indul:', this.Opts?.URL?.getDataTableContent ?? 'URL ismeretlen');
|
||
data.advanceSearchParameter=advanceSearchParameter;
|
||
/*
|
||
data.searchParam=this.Opts.dataTable.advanceSearchParameter
|
||
data.searchStr=dataTableSearchStr;
|
||
data.groupId=selectedProductGroup;
|
||
data.supplierId=Order.supplierId;
|
||
data.deliveryDate=Order.deliveryDate;
|
||
*/
|
||
}
|
||
},
|
||
"columnDefs": [
|
||
{
|
||
"targets": colNum-1,
|
||
"render": function ( data, type, row ) {
|
||
let buttons=APP.datatableAddRowViewButton(0,arguments);
|
||
buttons+=APP.datatableAddRowAttachmentButton(0,arguments);
|
||
//buttons+=APP.datatableAddRowEditButton(0, arguments);
|
||
if(row.canEditable){
|
||
buttons+=APP.datatableAddRowEditButton(0, {title:"módosítás"});
|
||
}
|
||
return buttons;
|
||
},
|
||
},
|
||
{
|
||
"targets": colNum-2,
|
||
"render": function ( data, type, row ) {
|
||
if(row.confirmed==null){
|
||
return '<span class="badge badge-pill badge-danger"><i class="fas fa-handshake-slash"></i></span>';
|
||
}else{
|
||
return row.confirmed;
|
||
}
|
||
|
||
},
|
||
},
|
||
{
|
||
"targets": 1,
|
||
"render": function ( data, type, row ) {
|
||
row=null;
|
||
return type === "sort" ? data.latinise() : data;
|
||
},
|
||
},
|
||
//{ "visible": false, "targets": [ 0 ] }
|
||
],
|
||
buttons:{
|
||
buttons: [
|
||
'excel','pdf',
|
||
{
|
||
extend: 'print',
|
||
//text: 'Print current page',
|
||
'title': 'title custom text',
|
||
'messageTop': 'Message On Top',
|
||
autoPrint: true
|
||
},
|
||
{
|
||
text: 'Szürők',
|
||
action: function ( e, dt, node, config ) {
|
||
APP.datatableCustomHeadButtonClickCallBack();
|
||
},
|
||
className: 'btn-advanceSearchParameter'
|
||
}
|
||
/**/
|
||
]
|
||
},
|
||
"columns": this.DtColumns,
|
||
"order": orderDirective,
|
||
"stateSave": false,
|
||
"drawCallback": function( settings ) {
|
||
console.log('[OA-DEBUG] drawCallback fired – DataTable rendered');
|
||
settings=null;
|
||
APP.datatableAddRowAction(dataTableCSSSelector);
|
||
}
|
||
} );
|
||
|
||
console.log('[OA-DEBUG] .DataTable() init returned. Instance =', this.dataTable);
|
||
this.initAdvancedSearch();
|
||
console.log('[OA-DEBUG] initViewList() END');
|
||
debug('listview end');
|
||
}
|
||
}
|
||
window.OrderArchiveModule=OrderArchiveModule;
|
||
}
|