import { generateUrl } from "@nextcloud/router"; import { updateDB } from "../modules/ajaxRequest.mjs"; import { baseUrl, checkSelectPurJs, LoadDT, showDone } from "../modules/mainFunction.mjs"; export class Devis { /** * Devis object * @param myresp instantiate devis object */ constructor(myresp) { this.id = myresp.id; this.user_id = myresp.user_id; this.id_nextcloud = myresp.id_nextcloud; this.date = ((myresp.date == null || myresp.date.length === 0) ? '-' : myresp.date); this.num = ((myresp.num == null || myresp.num.length === 0) ? '-' : myresp.num); // defunt this.id_defunt = ((myresp.id_defunt == null || myresp.id_defunt.length === 0) ? '-' : myresp.id_defunt); this.nom_defunt = ((myresp.nom_defunt == null || myresp.nom_defunt.length === 0) ? '-' : myresp.nom_defunt); // fin defunt this.cid = ((myresp.cid == null || myresp.cid.length === 0) ? '-' : myresp.cid); this.lid = ((myresp.lid == null || myresp.lid.length === 0) ? '-' : myresp.lid); this.tid = ((myresp.tid == null || myresp.tid.length === 0) ? '-' : myresp.tid); this.nom = ((myresp.nom == null || myresp.nom.length === 0) ? '-' : myresp.nom); this.prenom = ((myresp.prenom == null || myresp.prenom.length === 0) ? '-' : myresp.prenom); this.nomThanato = ((myresp.nom_thanato == null || myresp.prenom_thanato.length === 0) ? '-' : `${myresp.nom_thanato +' '+ myresp.prenom_thanato}`); this.version = ((myresp.version == null || myresp.version.length === 0) ? '-' : myresp.version); this.lieu = ((myresp.lieu == null || myresp.lieu.length === 0) ? '-' : myresp.lieu); this.mentions = ((myresp.mentions == null || myresp.mentions.length === 0) ? '-' : myresp.mentions); this.baseUrl = generateUrl(`/apps/gestion/devis/${this.id}/show`); } /**undefined * Get datatable row for a devis */ getDTRow() { // let signe_prop = (this.id_nextcloud.toLowerCase() == 'emmanuelle')?'propdevis-emmanuelle':(this.id_nextcloud.toLowerCase() == 'delphine')?'propdevis-delphine':''; let myrow = [ // '
' + this.user_id + '
', '', '
' + this.user_id + '
', '', // '
' + this.num + '
', '
'+ this.id_defunt + ' (' + this.nom_defunt + ')
', '
'+ this.cid + ' (' + this.prenom + ' ' + this.nom + ')
', '
'+ this.tid + ' (' + this.nomThanato+ ')
', '
' + this.lieu + '
', (this.mentions == "facturé")?('
'+ this.mentions + '
'):('
'+ this.mentions + '
'), '
' ]; return myrow; } /** * * @param {*} dt */ static newDevis(dt) { var oReq = new XMLHttpRequest(); oReq.open('POST', baseUrl + '/devis/insert', true); oReq.onload = function(e){ if (this.status == 200) { showDone() Devis.loadDevisDT(dt); }else{ showError(this.response); } }; oReq.send(); } /** * Load devis ajax * @param devisDT devis datatable */ static loadDevisDT(devisDT) { var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getDevis', true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.onload = function(e){ if (this.status == 200) { // let devis_temp = (JSON.parse(JSON.parse(this.response))).filter((d)=>(d.mentions != "facturé")); // devis_temp = JSON.stringify(JSON.stringify(devis_temp)); LoadDT(devisDT, JSON.parse(this.response), Devis); }else{ showError(this.response); } }; oReq.send(); } static getDevis(callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getDevis', true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.onload = function(e){ if (this.status == 200) { let devis_temp = (JSON.parse(JSON.parse(this.response))).filter((d)=>(d.mentions != "facturé")); devis_temp = JSON.stringify(JSON.stringify(devis_temp)); callback(JSON.parse(devis_temp)); }else{ showError(this.response); } }; oReq.send(); } static getAllDevis(callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getDevis', true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.onload = function(e){ if (this.status == 200) { let devis_temp = (JSON.parse(JSON.parse(this.response))); devis_temp = JSON.stringify(JSON.stringify(devis_temp)); callback(JSON.parse(devis_temp)); }else{ showError(this.response); } }; oReq.send(); } static getAllDevisDelphine(e, callback){ var oReq = new XMLHttpRequest(); oReq.open('PROPFIND', baseUrl + '/getDevisDelphine/'+e.target.dataset.id, true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.onload = function(e){ if (this.status == 200) { let devis_temp = (JSON.parse(JSON.parse(this.response))); devis_temp = JSON.stringify(JSON.stringify(devis_temp)); callback(JSON.parse(devis_temp)); }else{ showError(this.response); } }; oReq.send(); } static loadDevisList_dnum(e){ Devis.getDevis( response => { var selectElement = document.createElement("select"); selectElement.dataset.current = e.target.dataset.current; selectElement.dataset.id = e.target.dataset.id; selectElement.dataset.old = e.target.innerHTML; selectElement.addEventListener("change", el=>{ if(el.target.value != 0){ updateDB(el.target.parentElement.dataset.table, el.target.parentElement.dataset.column, el.target.value, el.target.parentElement.dataset.id ); location.reload(); var parentElement = el.target.parentElement; parentElement.innerHTML = el.target.options[el.target.selectedIndex].text; parentElement.dataset.current = el.target.value; }else{ var parentElement = el.target.parentElement parentElement.innerHTML = el.target.dataset.old } }); var option = document.createElement("option"); option.value = 0; option.text = t('gestion', 'Cancel'); selectElement.appendChild(option); JSON.parse(response).forEach(myresp => { var nomClient = (myresp.prenom&&myresp.nom) ? ((myresp.prenom?myresp.prenom:'') + ' ' + (myresp.nom?myresp.nom:'')) : '-'; var nomDefunt = myresp.nom_defunt ? myresp.nom_defunt : '-'; var txt = document.createElement("textarea"); txt.innerHTML = nomDefunt + ' (' + nomClient +')'; var option = document.createElement("option"); option.value = myresp.id; option.text = txt.value; selectElement.appendChild(option); }); checkSelectPurJs(selectElement); e.target.innerHTML = '' e.target.appendChild(selectElement); }); } static loadAllDevisList_dnum(e){ Devis.getAllDevis( response => { var selectElement = document.createElement("select"); selectElement.dataset.current = e.target.dataset.current; selectElement.dataset.id = e.target.dataset.id; selectElement.dataset.old = e.target.innerHTML; selectElement.addEventListener("change", el=>{ if(el.target.value != 0){ updateDB(el.target.parentElement.dataset.table, el.target.parentElement.dataset.column, el.target.value, el.target.parentElement.dataset.id ); location.reload(); var parentElement = el.target.parentElement; parentElement.innerHTML = el.target.options[el.target.selectedIndex].text; parentElement.dataset.current = el.target.value; }else{ var parentElement = el.target.parentElement parentElement.innerHTML = el.target.dataset.old } }); var option = document.createElement("option"); option.value = 0; option.text = t('gestion', 'Cancel'); selectElement.appendChild(option); JSON.parse(response).forEach(myresp => { var nomClient = (myresp.prenom&&myresp.nom) ? ((myresp.prenom?myresp.prenom:'') + ' ' + (myresp.nom?myresp.nom:'')) : '-'; var nomDefunt = myresp.nom_defunt ? myresp.nom_defunt : '-'; var txt = document.createElement("textarea"); txt.innerHTML = nomDefunt + ' (' + nomClient +')'; var option = document.createElement("option"); option.value = myresp.id; option.text = txt.value; selectElement.appendChild(option); }); checkSelectPurJs(selectElement); e.target.innerHTML = '' e.target.appendChild(selectElement); }); } static loadDelphineDevisList_dnum(e){ Devis.getAllDevisDelphine( e, response => { var selectElement = document.createElement("select"); selectElement.dataset.current = e.target.dataset.current; selectElement.dataset.id = e.target.dataset.id; selectElement.dataset.old = e.target.innerHTML; selectElement.addEventListener("change", el=>{ if(el.target.value != 0){ updateDB(el.target.parentElement.dataset.table, el.target.parentElement.dataset.column, el.target.value, el.target.parentElement.dataset.id ); location.reload(); var parentElement = el.target.parentElement; parentElement.innerHTML = el.target.options[el.target.selectedIndex].text; parentElement.dataset.current = el.target.value; }else{ var parentElement = el.target.parentElement parentElement.innerHTML = el.target.dataset.old } }); var option = document.createElement("option"); option.value = 0; option.text = t('gestion', 'Cancel'); selectElement.appendChild(option); JSON.parse(response).forEach(myresp => { var nomClient = (myresp.prenom&&myresp.nom) ? ((myresp.prenom?myresp.prenom:'') + ' ' + (myresp.nom?myresp.nom:'')) : '-'; var nomDefunt = myresp.nom_defunt ? myresp.nom_defunt : '-'; var txt = document.createElement("textarea"); txt.innerHTML = nomDefunt + ' (' + nomClient +')'; var option = document.createElement("option"); option.value = myresp.id; option.text = txt.value; selectElement.appendChild(option); }); checkSelectPurJs(selectElement); e.target.innerHTML = '' e.target.appendChild(selectElement); }); } }