Initial Commit after switching from SVN to git
This commit is contained in:
@@ -0,0 +1,287 @@
|
||||
|
||||
let gi = (n, c) => $$.sc('glyphicon glyphicon-' + n).aC(c);
|
||||
let $inv = {}, $req = {
|
||||
init2: function (type, options) {
|
||||
type = type || 'inv';
|
||||
options = options || {};
|
||||
$ocms.getScript([
|
||||
//{ script: 'web/jstree.min.js', css: 'web/jstree.min.css', condition: typeof $.fn.jstree !== 'function' }
|
||||
//, { script: 'web/jquery.qtip.min.js', css: 'web/jquery.qtip.min.css', condition: typeof $.fn.qtip !== 'function' }
|
||||
//, { script: 'web/typeahead.min.js', css: '', condition: typeof $.fn.typeahead !== 'function' }
|
||||
//, { script: 'web/fullcalendar.min.js', module: 'FullCalendar', css: 'web/fullcalendar.min.css', condition: typeof FullCalendar !== 'object' }
|
||||
], function () {
|
||||
//FullCalendar = $vm.FullCalendar;
|
||||
$req.init3(type, options);
|
||||
});
|
||||
}, init3: async function (type, options) {
|
||||
let cf = $fis.cf(true), lf = $fis.lf(true);
|
||||
$('#topbar').ocmsmenu([]); //{ lbl: 'home', fnc: $inv.init3 }
|
||||
$('#activemodule').text($rct.mdl);
|
||||
await $fis.prepAuth('fds_req,fds_inv,fds_reminder');
|
||||
let pa = [(async () => {
|
||||
if ($fis.isAuth('fds_req', 1) === true) {
|
||||
$req.prepLst('');
|
||||
lf.aC('fix'); //initially should be shown - for convenience
|
||||
}
|
||||
})(), new Promise((resolve, reject) => {
|
||||
lf.find('div.oreq2').aC('selected');
|
||||
$req.renderreq(fdt(new Date(), 'yy-MM-dd'), 'r');
|
||||
resolve();
|
||||
})];
|
||||
await Promise.all(pa);
|
||||
}, prepLst: function (includes) {
|
||||
let td = new Date();
|
||||
let lf = $fis.lf(true).ldng(1), sd = new Date('2021-01-01');
|
||||
let frm = $fis.frm_list();
|
||||
frm.IN(function () { });
|
||||
let opn = $$.dc('mth oreq', lf).text($rct.or).click(function (ev) {
|
||||
let mth = $(this);
|
||||
ev.stopPropagation();
|
||||
mth.siblings().rC('selected');
|
||||
if (mth.is('.selected') === true) {
|
||||
mth.tC('selected');
|
||||
$req.renderreq(fdt(new Date(), 'yy-MM-dd'), 'o');
|
||||
}
|
||||
mth.aC('selected');
|
||||
});
|
||||
let opnr = $$.dc('mth oreq2', lf).text($rct.orr).click(function (ev) {
|
||||
let mth = $(this);
|
||||
ev.stopPropagation();
|
||||
mth.siblings().rC('selected');
|
||||
if (mth.is('.selected') === true) {
|
||||
mth.tC('selected');
|
||||
$req.renderreq(fdt(new Date(), 'yy-MM-dd'), 'r');
|
||||
}
|
||||
mth.aC('selected');
|
||||
});
|
||||
let osb = $$.i({ placeholder: $rct.rn }).appendTo($$.dc('mth oreqn', lf)).enterKey(function (ev) {
|
||||
let mth = $(this), v = mth.val() ||'';
|
||||
ev.stopPropagation();
|
||||
mth.parent().siblings().rC('selected');
|
||||
if (v.length > 3) {
|
||||
mth.parent().aC('selected');
|
||||
$req.renderreq('n:' + v, 's');
|
||||
mth.val('');
|
||||
}
|
||||
});
|
||||
lf.append('<hr />');
|
||||
let mthl = $$.dc('mthl', lf), thisyear = td.getFullYear(), thismonth = td.getMonth() + 1;
|
||||
for (let tyr = sd.getFullYear(); tyr <= thisyear; tyr++) {
|
||||
let yr = $$.dc('yr').prependTo(mthl).text($rct.iov[includes] + ' - ' + tyr.toString()).toggleClass('selected', tyr === thisyear);
|
||||
yr.click({
|
||||
yr: tyr
|
||||
}, function (ev) {
|
||||
ev.stopPropagation();
|
||||
yr.siblings().rC('selected');
|
||||
yr.aC('selected');
|
||||
});
|
||||
let mfrm = $$.dc('mfrm', yr);
|
||||
for (let tmt = 0; tmt < (tyr !== thisyear ? 12 : thismonth); tmt++) {
|
||||
sd = new Date(tyr, tmt, 1);
|
||||
let mth = $$.dc('mth').prependTo(mfrm).text($rct.iov[includes] + ' - ' + fdt(sd, 'MMM yyyy'));
|
||||
mth.click({
|
||||
yr: tyr, mt: tmt
|
||||
}, function (ev) {
|
||||
ev.stopPropagation();
|
||||
mth.siblings().rC('selected');
|
||||
if (mth.is('.selected') === true) {
|
||||
mth.tC('selected');
|
||||
|
||||
let tgt = fdt(new Date(ev.data.yr, ev.data.mt, 1), 'yy-MM-dd');
|
||||
$req.renderreq(tgt, 'm');
|
||||
}
|
||||
mth.aC('selected');
|
||||
});
|
||||
|
||||
let fwf = getMonday(sd), rd = fwf, lwf = new Date(sd);
|
||||
lwf.setMonth(lwf.getMonth() + 1);
|
||||
lwf.setDate(0);
|
||||
lwf = getMonday(lwf);
|
||||
let wfrm = $$.dc('wfrm', mth);
|
||||
while (rd <= lwf) {
|
||||
let wk = $$.dc('wk', wfrm).text(($rct.wk || 'W') + ' ' + fdt(rd, 'dd.MM.yy'));
|
||||
wk.click({
|
||||
rd: new Date(rd)
|
||||
}, function (ev) {
|
||||
ev.stopPropagation();
|
||||
let tgt = fdt(ev.data.rd, 'yy-MM-dd');
|
||||
$req.renderreq(tgt, 'w');
|
||||
mth.siblings().rC('selected').find('.wk').rC('selected');
|
||||
mth.aC('selected').find('.wk').rC('selected');
|
||||
wk.aC('selected');
|
||||
});
|
||||
let wkdl = $$.dc('wkdl', wk).append($$.sc('ico glyphicon glyphicon-compressed'));
|
||||
if ($fis.isAuth('fds_inv', 2) === true) {
|
||||
wkdl.click({
|
||||
rd: new Date(rd)
|
||||
}, function (ev) {
|
||||
ev.stopPropagation();
|
||||
let tgt = fdt(ev.data.rd, 'yy-MM-dd');
|
||||
$req.downloadzip.call(tgt, 'w');
|
||||
});
|
||||
}
|
||||
rd.setDate(rd.getDate() + 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
lf.ldng(0);
|
||||
}, renderreq: function (tgt, mode) {
|
||||
let invlst = $fis.frm_list().ldng(1), invfrm = $$.dc('invfrm', invlst).aC('md' + mode);
|
||||
let lf = $fis.lf();
|
||||
$ocms.postXT({
|
||||
url: $ocms.url('req/reql'), data: { mode: mode, tgt: tgt }, success: (response) => {
|
||||
lf.rC('fix').aC('hd');
|
||||
$$.dc('ovhd', invfrm).append($$.s(response.admin.title)).appendIf($$.sc('note', response.admin.note), ne(response.admin.note, '') !== '');
|
||||
let ts = $$.tblset({}, invfrm), fd = $rcol.req;
|
||||
let thr = $$.tr(ts.hd), haux = $$.th(thr);
|
||||
$.each(fd.fields || [], (ci, cx) => {
|
||||
$$.th(thr).text(cx.label);
|
||||
if (cx.name === 'vat') {
|
||||
$$.th(thr);
|
||||
}
|
||||
});
|
||||
let ctr = 0, cst = false;
|
||||
$.each(response.requests || [], (ri, rw) => {
|
||||
if (ctr > 0 && ctr !== rw.ParentServiceRequestId) {
|
||||
cst = !cst;
|
||||
}
|
||||
let tr = $$.tr(ts.bdy).tC('alt', cst);
|
||||
ctr = rw.ParentServiceRequestId;
|
||||
tr.click(function () {
|
||||
lf.rC('fix').aC('hd');
|
||||
tr.tC('selected').siblings().rC('selected').find('td.av').rC('av');
|
||||
tr.find('td.av').rC('av');
|
||||
});
|
||||
tr.tC('child', rw.isChild);
|
||||
let raux = $$.td(tr, { class: 'raux' });
|
||||
if (bool(rw.open, false) === true) {
|
||||
$$.dc('ihd ilbtn', raux).append(gi('eye-close', 'ico')).click({ id: rw.Id }, $req.tHd);
|
||||
}
|
||||
$$.dc('iitm ilbtn', raux).append(gi('list', 'ico')).click({ id: rw.Id }, $req.showitm);
|
||||
if ($fis.isAuth('fds_inv', 2) === true) {
|
||||
$$.dc('invc ilbtn', raux).append(gi('edit', 'ico')).click({ id: rw.Id }, $inv.cInv);
|
||||
}
|
||||
$.each(fd.fields || [], (ci, cx) => {
|
||||
let td = $$.td(tr).aC(cx.dtype), val = rw[cx.name];
|
||||
if (typeof cx.dfnc === 'function') {
|
||||
cx.dfnc.call(td, val, rw);
|
||||
} else {
|
||||
switch (cx.type || '') {
|
||||
case 'date':
|
||||
td.text(fdt(rw[cx.name], 'dd.MM.yy'));
|
||||
break;
|
||||
case 'datetime':
|
||||
td.text(fdt(rw[cx.name]));
|
||||
break;
|
||||
case 'html':
|
||||
td.append($$.dc('ctw').html(val));
|
||||
td.append($$.dc('ttip').html(val));
|
||||
break;
|
||||
default:
|
||||
td.text(rw[cx.name]);
|
||||
}
|
||||
}
|
||||
switch (cx.name || '') {
|
||||
case 'State':
|
||||
td.text($rct.sts[val || '-']);
|
||||
break;
|
||||
case 'Name':
|
||||
td.aC(cx.name.toLowerCase());
|
||||
break;
|
||||
case 'vat':
|
||||
$$.sel().appendTo($$.td(tr, { class: 'vsel' })).click(function (ev) { ev.stopPropagation(); }).append([$$.opt('19,0 %', '19,0 %'), $$.opt('16,0 %', '16,0 %'), $$.opt('0,0 %', '0,0 %')]).val(rw[cx.name]).change().change({ frm: invfrm, tgt: tgt, mode: mode, id: rw.Id, td: td }, $req.setvat);
|
||||
td.tC('hl', rw[cx.name].substr(0, 2) !== '19').click(function (ev) {
|
||||
ev.stopPropagation();
|
||||
$(this).tC('av');
|
||||
});
|
||||
break;
|
||||
case 'balance':
|
||||
td.aC('sh_' + (rw.SollHaben || '').toLowerCase());
|
||||
break;
|
||||
case 'InvoiceId':
|
||||
td.aC('keep');
|
||||
break;
|
||||
}
|
||||
switch (typeof cx.title) {
|
||||
case 'function':
|
||||
cx.title.call(td, rw);
|
||||
break;
|
||||
case 'string':
|
||||
td.attr('title', cs.title);
|
||||
}
|
||||
});
|
||||
});
|
||||
}, complete: () => { invlst.ldng(0); }
|
||||
});
|
||||
}, tHd: function (ev) {
|
||||
let tr = $(this).closest('tr');
|
||||
ev.stopPropagation();
|
||||
if (tr.is('.selected') === false) {
|
||||
return;
|
||||
} else if (confirm($rct.cthd)){
|
||||
$ocms.postXT({
|
||||
url: $ocms.url('req/rthd'), data: { id: ev.data.id }, success: (response) => {
|
||||
if (response.id === ev.data.id && bool(response.visible, true) === false) {
|
||||
if (tr.is('.tbhd') === false) {
|
||||
setTimeout(() => { tr.filter('.tbhd').remove(); }, 15000); // by the filter, it can be prevented by removing the class
|
||||
}
|
||||
tr.aC('tbhd');
|
||||
} else if (response.id === ev.data.id) {
|
||||
tr.rC('tbhd');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}, showitm: function (ev) {
|
||||
let tr = $(this).closest('tr');
|
||||
ev.stopPropagation();
|
||||
if (tr.is('.selected') === false) {
|
||||
return;
|
||||
}
|
||||
let fr = $$.dc('rfrm').ldng(1);
|
||||
$ocms.postXT({
|
||||
url: $ocms.url('req/pget'), data: { id: ev.data.id }, success: (response) => {
|
||||
$ocms.postXT({
|
||||
url: $ocms.url('req/get'), data: { id: ev.data.id, mode: 'ful' }, success: (response) => {
|
||||
let rqa = {};
|
||||
if ((response.requests || []).length < 1) {
|
||||
fr.text($rct.nd);
|
||||
} else {
|
||||
let rq = $$.dc('srq', fr);
|
||||
let rif = $$.tblset({ class: 'if' }, rq);
|
||||
$.each(response.requests || [], function (ri, rx) {
|
||||
if (ri > 0) {
|
||||
$$.tr(rif.bdy).aC('sep').append($$.td({ colspan: 6 }));
|
||||
}
|
||||
let rtr = $$.tr(rif.bdy).aC('title'), cl = $rcol.itm.lbl();
|
||||
let worknotes = $inv.worknotes(rx);
|
||||
$$.td(rtr, { colspan: 6 }).append([$$.s($rcol.req.label_sng), $$.sc('eid', rx.ExternalId), $$.sc('nme', fdt(rx.WorkDoneAt,'dd.MM.yy') + ': ' + worknotes.ne(rx.Name))]);
|
||||
let sdh = $$.tr(rif.bdy).aC('shd').append([$$.td(), $$.td(cl.NameOrNumber), $$.td(cl.Type), $$.td(cl.net_pos), $$.td(cl.bo_pos), $$.td(cl.vat)]); /* header row for items */
|
||||
$.each(rx.items || [], (ii, ix) => {
|
||||
let sid = ix.ServiceRequestId;
|
||||
let itr = $$.tr(rif.bdy, { id: 'itm' + ix.Id }).aC(ix.Type);
|
||||
$$.td(itr).aC('ico');
|
||||
$$.td(itr).text(ix.NameOrNumber);
|
||||
$$.td(itr).text(ix.Type);
|
||||
$$.td(itr).aC('currency').text(ix.net_pos);
|
||||
$$.td(itr).aC('currency').text(ix.bo_pos);
|
||||
$$.td(itr).aC('num').text(ix.vat);
|
||||
});
|
||||
});
|
||||
}
|
||||
}, error: () => {
|
||||
fr.text($t.t12);
|
||||
}, complete: () => {
|
||||
fr.ldng(0);
|
||||
}
|
||||
});
|
||||
}, error: () => {
|
||||
fr.text($t.t12);
|
||||
fr.ldng(0);
|
||||
}
|
||||
});
|
||||
$ocms.dlg(fr, { width: 1000 });
|
||||
}
|
||||
}
|
||||
let $$req = { init2: $req.init2, auth: {} };
|
||||
export default $$req;
|
||||
Reference in New Issue
Block a user