-let invoicing={tbl:null,tbldates:null,selects:{},init:function(){let tomorrow=new Date;tomorrow.setDate(tomorrow.getDate()+1),flatpickr("#debitdate",{altInput:!0,allowInput:!0,altFormat:"d/m/Y",dateFormat:"Y-m-d",defaultDate:tomorrow,minDate:tomorrow}),this.selects=dataform.initSelects(document.getElementsByClassName("select")),invoicing.tbldates=new Tabulator("#tbl_dates",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 65px)",layout:"fitDataStretch",selectableRows:1,columns:[{title:"Mois",field:"id",width:120,hozAlign:"center",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Count",field:"cnt",width:50,headerFilter:!1,headerSort:!1,hozAlign:"right"}]}),invoicing.tbldates.on("rowClick",(function(e,row){invoicing.gettblCotisationsData(),invoicing.gettblTransactionsData()})),invoicing.tbl_cotisations=new Tabulator("#tbl_cotisations",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 120px)",layout:"fitDataStretch",selectableRows:!0,selectableRowsRangeMode:"click",rowContextMenu:[{label:'<span class="rowicon icon-edit"></span>éditer',action:function(e,row){return invoicing.editCotisation(),!1}},{label:'<span class="rowicon icon-group"></span>voir fiche membre',action:function(e,row){return invoicing.viewMember(),!1}},{separator:!0},{label:'<span class="rowicon icon-checkbox-checked"></span>Selectionner tous les visibles',action:function(e,row){return invoicing.selectVisibleCotisationRows(),!1}},{label:'<span class="rowicon icon-copy"></span>Ajouter la selection à la table d\'export SEPA',action:function(e,row){return invoicing.copySelectedToExportView(),!1}}],rowHeader:{formatter:"rownum",headerSort:!1,hozAlign:"center",resizable:!1,frozen:!0,headerMenu:tablehelper.headerMenu},columns:[{title:"ID",field:"id_member"},{title:"Nom",field:"lastname",width:200},{title:"Prénom",field:"firstname",width:200},{title:"Mois",field:"date_month",visible:!1,formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Date Traitement",field:"date_transaction",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"dd/MM/yyyy",invalidPlaceholder:""}},{title:"status",field:"status",headerFilter:"list",formatter:tablehelper.statusFormatter,headerFilterParams:{valuesLookup:!0,clearable:!0}},{title:"Montant",field:"amount",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:"",symbol:"€",symbolAfter:"p",negativeSign:!0,precision:2},bottomCalc:tablehelper.totalAmount},{title:"Type Payement",field:"paymenttype",headerFilter:"list",headerFilterParams:{valuesLookup:!0,clearable:!0}},{title:"Fichier Export",field:"sepa_file_out",visible:!1},{title:"Fichier Import",field:"transaction_file_in",visible:!1},{title:"ID Transaction",field:"transaction_id",visible:!1},{title:"Code SEPA",field:"last_sepa_code",visible:!1},{title:"IBAN",field:"bank_account"},{title:"BIC",field:"bank_bic"},{title:"Type Sepa",field:"sepa_type"}]}),invoicing.tbl_cotisations.on("rowDblClick",(function(e,row){invoicing.editCotisation()})),invoicing.tbl_transactions=new Tabulator("#tbl_transactions",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 120px)",layout:"fitDataStretch",selectableRows:!0,selectableRowsRangeMode:"click",rowContextMenu:[{label:'<span class="rowicon icon-edit"></span>éditer',action:function(e,row){return invoicing.editTransaction(),!1}}],rowHeader:{formatter:"rownum",headerSort:!1,hozAlign:"center",resizable:!1,frozen:!0},columns:[{title:"Date Transaction",field:"datemovement"},{title:"nom",field:"lastname"},{title:"Prénom",field:"firstname"},{title:"succès",field:"success"},{title:"Cotisation Type",field:"quotatype"},{title:"Montant",field:"quota",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:"",symbol:"€",symbolAfter:"p",negativeSign:!0,precision:2}},{title:"Fichier XML Retour",field:"filexml"},{title:"Ficher XML Envoi",field:"refxml"},{title:"Sepa signé",field:"sepasigned"},{title:"Groupe Sepa",field:"sepagroup"},{title:"Compte Débiteur",field:"accountout"},{title:"Compter Crediteur",field:"accountin"},{title:"Note",field:"quotaobs"},{title:"Message Erreur",field:"errormsg"},{title:"Code Erreur",field:"errorcode"}]}),invoicing.tblexportsepa=new Tabulator("#tbl_exportsepa",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 125px)",layout:"fitDataStretch",selectableRows:!0,selectableRowsRangeMode:"click",rowContextMenu:[{label:'<span class="rowicon icon-edit"></span>éditer',action:function(e,row){return invoicing.editExportSepa(),!1}}],rowHeader:{formatter:"rownum",headerSort:!1,hozAlign:"center",resizable:!1,frozen:!0},columns:[{title:"ID Membre",field:"id_member"},{title:"Nom",field:"fullname",width:250},{title:"Mois",field:"date_month",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Montant",field:"amount",headerFilter:!1,headerSort:!1,width:100,formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:"",symbol:"€",symbolAfter:"p",negativeSign:!0,precision:2},bottomCalc:tablehelper.totalAmount},{title:"Message",field:"message",width:250},{title:"Signature Date",field:"sepasig_date",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"dd/MM/yyyy",invalidPlaceholder:""}},{title:"Type SEPA",field:"sepa_type"},{title:"IBAN",field:"iban",width:200},{title:"BIC",field:"bic",width:80}]})},load:function(){invoicing.gettbldates(),invoicing.gettblTransactionsData(),invoicing.gettblCotisationsData(),myapp.viewpanel("invoicing")},gettbldates:function(){let sel=null;invoicing.tbldates.initialized&&(sel=invoicing.tbldates.getSelectedData()),postData({cl:"Cotisations",fn:"getDatesList"}).then(data=>{invoicing.tbldates.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},gettblTransactionsData:function(){let sel=null;invoicing.tbldates.initialized&&(sel=invoicing.tbldates.getSelectedData()),sel&&sel[0]&&postData({cl:"Payments",fn:"getList",month:sel[0].month,year:sel[0].year}).then(data=>{invoicing.tbl_transactions.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},gettblCotisationsData:function(){let sel=null;invoicing.tbldates.initialized&&(sel=invoicing.tbldates.getSelectedData()),sel&&sel[0]&&postData({cl:"Cotisations",fn:"getList",monthdate:sel[0].id}).then(data=>{invoicing.tbl_cotisations.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},editCotisation:function(){let sel=null;invoicing.tbl_cotisations&&(sel=invoicing.tbl_cotisations.getSelectedData()),document.getElementById("dlg_cotisation_btnok").setAttribute("onclick","invoicing.saveCotisation();"),sel[0]&&postData({cl:"Cotisations",fn:"getRowData",id:sel[0].id}).then(data=>{dataform.fillform("cotisation",this.selects,data.result.data),myapp.viewdialog("cotisation")})},saveCotisation(){let datatosave=dataform.getContent("cotisation",invoicing.selects),transferdata={amount:datatosave.amount,paymenttype:datatosave.paymenttype,date_transaction:datatosave.date_transaction,status:datatosave.status,bank_account:datatosave.bank_account,bank_bic:datatosave.bank_bic,sepa_type:datatosave.sepa_type};postData({cl:"Cotisations",fn:"saveRow",id:datatosave.id,data:transferdata}).then(data=>{invoicing.gettblCotisationsData(),document.getElementById("dlg_cotisation").style.display="none"}).catch(e=>{document.getElementById("dlg_cotisation").style.display="none"})},editExportSepa:function(){let sel=null;invoicing.tblexportsepa&&(sel=invoicing.tblexportsepa.getSelectedData()),document.getElementById("dlg_nextsepaexport_btnok").setAttribute("onclick","invoicing.saveExportSepa();"),sel[0]&&postData({cl:"Cotisations",fn:"getExportSepaRowData",id:sel[0].id}).then(data=>{dataform.fillform("nextsepaexport",this.selects,data.result.data,"nse"),myapp.viewdialog("nextsepaexport")})},saveExportSepa(){let datatosave=dataform.getContent("nextsepaexport",invoicing.selects),transferdata={amount:datatosave.amount,sepasig_date:datatosave.sepasig_date,fullname:datatosave.fullname,amount:datatosave.amount,message:datatosave.message,iban:datatosave.iban,bic:datatosave.bic,sepa_type:datatosave.sepa_type};postData({cl:"Cotisations",fn:"saveExportSepaRow",id:datatosave.nextsepaexport_id,data:transferdata}).then(data=>{invoicing.viewTabExport(),document.getElementById("dlg_nextsepaexport").style.display="none"}).catch(e=>{document.getElementById("dlg_nextsepaexport").style.display="none"})},editTransaction:function(){let sel=null;invoicing.tbl&&(sel=invoicing.tbl.getSelectedData()),sel[0]&&postData({cl:"Cotisations",fn:"getRowData",id:sel[0].id}).then(data=>{dataform.fillform("cotisation",this.selects,data.result.data),myapp.viewdialog("cotisation")})},saveTransaction(){},viewMember:function(){var windowReference;(invoicing.tbl_cotisations&&(sel=invoicing.tbl_cotisations.getSelectedData()),sel[0])&&(window.open().location=api+"index?id="+sel[0].id_member)},getCountries:function(){postData({cl:"Countries",fn:"getCountries"}).then(data=>{data.result.data.unshift({iso2:null,country:null}),dataform.fillselectlist(this.selects.birthcountry,data.result.data,"iso2","country"),dataform.fillselectlist(this.selects.addresscountry,data.result.data,"iso2","country")})},loadFileDlg(){},importSepa(){myapp.upload("Import fichier XML SEPA","","importer","annuler","invoicing.importSepaFile();","text/xml")},getProcessInfo(logfile){postData({cl:"WorkerProcess",fn:"getLastWorkerInfo",logfile:logfile}).then(data=>{var windowReference;data.result.data.info&&"error"!=data.result.data.status?(myapp.setDataloadText(data.result.data.info),data.result.data.info.startsWith("End: ")&&(progressinfo.stopGetInfo(),logfile.endsWith("exportsepa.log")&&!data.result.data.info.startsWith("End: Erreur:")&&(window.open().location=api+"file.php?open="+encodeURIComponent(invoicing.exportfile)))):"error"==data.result.data.status&&(myapp.setDataloadText(data.result.data.error),progressinfo.stopGetInfo())}).catch(e=>{myapp.setDataloadText("ne peux pas avoir d'info sur le progrès!")})},importSepaFile(){myapp.openDataload("Import données","Attendez svp! Import XML encours!"),postFile(document.getElementById("dlg_uploadfile_files"),{folder:"importsepa"}).then(data=>{data.file?postData({cl:"Sepa",fn:"startSepaImport",xmlfile:data.file}).then(data=>{progressinfo.startGetInfo("invoicing.getProcessInfo('"+data.result.data.log+"')",1)}):(myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier XML!"))}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier XML!",e.msg)})},viewTabExport:function(){myapp.viewtab("tab_invoicing","inv_export"),myapp.openDataload("Recherche données","Attendez svp!"),postData({cl:"Cotisations",fn:"getExportTable"}).then(data=>{invoicing.tblexportsepa.setData(data.result.data).then(data=>{}),myapp.closeDataload()}).catch(e=>{console.log(e),myapp.closeDataload()})},viewTabTransactions:function(){myapp.viewtab("tab_invoicing","inv_transactions")},viewTabCotisations:function(){myapp.viewtab("tab_invoicing","inv_cotisations")},addCotisationMonth:function(){myapp.openDataload("Synchronisation des données en cours","Attendez svp!"),postData({cl:"Cotisations",fn:"addCotisationMonth",monthdate:"latest"}).then(data=>{invoicing.gettbldates(),myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})},syncSepaTransactions:function(){let selmonyear=invoicing.tbldates.getSelectedData();selmonyear[0]?(myapp.openDataload("Synchronisation des données en cours","Attendez svp!"),postData({cl:"Cotisations",fn:"syncSepaTransactions",monthdate:selmonyear[0].id}).then(data=>{invoicing.gettblCotisationsData(),invoicing.gettblTransactionsData(),myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})):myapp.message("Info","Pas de mois sélectionné!")},syncMembers:function(){let selmonyear=invoicing.tbldates.getSelectedData();selmonyear[0]?(myapp.openDataload("Synchronisation des données en cours","Attendez svp!"),postData({cl:"Cotisations",fn:"addCotisationMonth",monthdate:selmonyear[0].id}).then(data=>{invoicing.gettbldates(),invoicing.gettblCotisationsData(),myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})):myapp.message("Info","Pas de mois sélectionné!")},selectVisibleCotisationRows:function(){invoicing.tbl_cotisations.selectRow("active")},copySelectedToExportView:function(){let selexp=invoicing.tbl_cotisations.getSelectedData();if(selexp[0]){myapp.openDataload("Copy des données en cours","Attendez svp!");let addsel=[];for(i=0;i<selexp.length;i++)addsel.push(selexp[i].id);console.log("selected Ids!",addsel),postData({cl:"Cotisations",fn:"addToExportTable",ids:addsel}).then(data=>{myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})}},cleanExportTable:function(){postData({cl:"Cotisations",fn:"cleanExportTable"}).then(data=>{invoicing.viewTabExport()}).catch(e=>{})},removefromExportTable:function(){let selexp=invoicing.tblexportsepa.getSelectedData();if(selexp[0]){let rmsel=[];for(i=0;i<selexp.length;i++)rmsel.push(selexp[i].id);postData({cl:"Cotisations",fn:"removeFromExportTable",ids:rmsel}).then(data=>{invoicing.viewTabExport()}).catch(e=>{})}},exportSepa:function(){let debitdate=document.getElementById("debitdate").value;myapp.openDataload("Export des données","Attendez svp! Export XML encours!"),postData({cl:"Sepa",fn:"createSepa",debitdate:debitdate}).then(data=>{progressinfo.startGetInfo("invoicing.getProcessInfo('"+data.result.data.log+"')",1),invoicing.exportfile=data.result.data.file}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","Échec de l'export du fichier XML!",e.msg)})}};
\ No newline at end of file
+let invoicing={tbl:null,tbldates:null,selects:{},init:function(){let tomorrow=new Date;tomorrow.setDate(tomorrow.getDate()+1),flatpickr("#debitdate",{altInput:!0,allowInput:!0,altFormat:"d/m/Y",dateFormat:"Y-m-d",defaultDate:tomorrow,minDate:tomorrow}),this.selects=dataform.initSelects(document.getElementsByClassName("select")),invoicing.tbldates=new Tabulator("#tbl_dates",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 65px)",layout:"fitDataStretch",selectableRows:1,columns:[{title:"Mois",field:"id",width:120,hozAlign:"center",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Count",field:"cnt",width:50,headerFilter:!1,headerSort:!1,hozAlign:"right"}]}),invoicing.tbldates.on("rowClick",(function(e,row){invoicing.gettblCotisationsData(),invoicing.gettblTransactionsData()})),invoicing.tbl_cotisations=new Tabulator("#tbl_cotisations",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 120px)",layout:"fitDataStretch",selectableRows:!0,selectableRowsRangeMode:"click",rowContextMenu:[{label:'<span class="rowicon icon-edit"></span>éditer',action:function(e,row){return invoicing.editCotisation(),!1}},{label:'<span class="rowicon icon-group"></span>voir fiche membre',action:function(e,row){return invoicing.viewMember(),!1}},{separator:!0},{label:'<span class="rowicon icon-checkbox-checked"></span>Selectionner tous les visibles',action:function(e,row){return invoicing.selectVisibleCotisationRows(),!1}},{label:'<span class="rowicon icon-copy"></span>Ajouter la selection à la table d\'export SEPA',action:function(e,row){return invoicing.copySelectedToExportView(),!1}},{label:'<span class="rowicon icon-loop"></span>Changer status (sélection)',action:function(e,row){return invoicing.viewChangeStatus(),!1}}],rowHeader:{formatter:"rownum",headerSort:!1,hozAlign:"center",resizable:!1,frozen:!0,headerMenu:tablehelper.headerMenu},columns:[{title:"ID",field:"id_member"},{title:"Nom",field:"lastname",width:200},{title:"Prénom",field:"firstname",width:200},{title:"Mois",field:"date_month",visible:!1,formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Date Traitement",field:"date_transaction",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"dd/MM/yyyy",invalidPlaceholder:""}},{title:"status",field:"status",headerFilter:"list",formatter:tablehelper.statusFormatter,headerFilterParams:{valuesLookup:!0,clearable:!0}},{title:"Montant",field:"amount",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:"",symbol:"€",symbolAfter:"p",negativeSign:!0,precision:2},bottomCalc:tablehelper.totalAmount},{title:"Type Payement",field:"paymenttype",headerFilter:"list",headerFilterParams:{valuesLookup:!0,clearable:!0}},{title:"Fichier Export",field:"sepa_file_out",visible:!1},{title:"Fichier Import",field:"transaction_file_in",visible:!1},{title:"ID Transaction",field:"transaction_id",visible:!1},{title:"Code SEPA",field:"last_sepa_code",visible:!1},{title:"IBAN",field:"bank_account"},{title:"BIC",field:"bank_bic"},{title:"Type Sepa",field:"sepa_type"}]}),invoicing.tbl_cotisations.on("rowDblClick",(function(e,row){invoicing.editCotisation()})),invoicing.tbl_transactions=new Tabulator("#tbl_transactions",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 120px)",layout:"fitDataStretch",selectableRows:!0,selectableRowsRangeMode:"click",rowContextMenu:[{label:'<span class="rowicon icon-edit"></span>éditer',action:function(e,row){return invoicing.editTransaction(),!1}}],rowHeader:{formatter:"rownum",headerSort:!1,hozAlign:"center",resizable:!1,frozen:!0},columns:[{title:"Date Transaction",field:"datemovement"},{title:"nom",field:"lastname"},{title:"Prénom",field:"firstname"},{title:"succès",field:"success"},{title:"Cotisation Type",field:"quotatype"},{title:"Montant",field:"quota",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:"",symbol:"€",symbolAfter:"p",negativeSign:!0,precision:2}},{title:"Fichier XML Retour",field:"filexml"},{title:"Ficher XML Envoi",field:"refxml"},{title:"Sepa signé",field:"sepasigned"},{title:"Groupe Sepa",field:"sepagroup"},{title:"Compte Débiteur",field:"accountout"},{title:"Compter Crediteur",field:"accountin"},{title:"Note",field:"quotaobs"},{title:"Message Erreur",field:"errormsg"},{title:"Code Erreur",field:"errorcode"}]}),invoicing.tblexportsepa=new Tabulator("#tbl_exportsepa",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 125px)",layout:"fitDataStretch",selectableRows:!0,selectableRowsRangeMode:"click",rowContextMenu:[{label:'<span class="rowicon icon-edit"></span>éditer',action:function(e,row){return invoicing.editExportSepa(),!1}}],rowHeader:{formatter:"rownum",headerSort:!1,hozAlign:"center",resizable:!1,frozen:!0},columns:[{title:"ID Membre",field:"id_member"},{title:"Nom",field:"fullname",width:250},{title:"Mois",field:"date_month",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Montant",field:"amount",headerFilter:!1,headerSort:!1,width:100,formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:"",symbol:"€",symbolAfter:"p",negativeSign:!0,precision:2},bottomCalc:tablehelper.totalAmount},{title:"Message",field:"message",width:250},{title:"Signature Date",field:"sepasig_date",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"dd/MM/yyyy",invalidPlaceholder:""}},{title:"Type SEPA",field:"sepa_type"},{title:"IBAN",field:"iban",width:200},{title:"BIC",field:"bic",width:80}]}),invoicing.tblexportsepa.on("rowDblClick",(function(e,row){invoicing.editExportSepa()}))},load:function(){invoicing.gettbldates(),invoicing.gettblTransactionsData(),invoicing.gettblCotisationsData(),myapp.viewpanel("invoicing")},gettbldates:function(){let sel=null;invoicing.tbldates.initialized&&(sel=invoicing.tbldates.getSelectedData()),postData({cl:"Cotisations",fn:"getDatesList"}).then(data=>{invoicing.tbldates.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},gettblTransactionsData:function(){let sel=null;invoicing.tbldates.initialized&&(sel=invoicing.tbldates.getSelectedData()),sel&&sel[0]&&postData({cl:"Payments",fn:"getList",month:sel[0].month,year:sel[0].year}).then(data=>{invoicing.tbl_transactions.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},gettblCotisationsData:function(){let sel=null;invoicing.tbldates.initialized&&(sel=invoicing.tbldates.getSelectedData()),sel&&sel[0]&&postData({cl:"Cotisations",fn:"getList",monthdate:sel[0].id}).then(data=>{invoicing.tbl_cotisations.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},editCotisation:function(){let sel=null;invoicing.tbl_cotisations&&(sel=invoicing.tbl_cotisations.getSelectedData()),document.getElementById("dlg_cotisation_btnok").setAttribute("onclick","invoicing.saveCotisation();"),sel[0]&&postData({cl:"Cotisations",fn:"getRowData",id:sel[0].id}).then(data=>{dataform.fillform("cotisation",this.selects,data.result.data),myapp.viewdialog("cotisation")})},saveCotisation(){let datatosave=dataform.getContent("cotisation",invoicing.selects),transferdata={amount:datatosave.amount,paymenttype:datatosave.paymenttype,date_transaction:datatosave.date_transaction,status:datatosave.status,bank_account:datatosave.bank_account,bank_bic:datatosave.bank_bic,sepa_type:datatosave.sepa_type};postData({cl:"Cotisations",fn:"saveRow",id:datatosave.id,data:transferdata}).then(data=>{invoicing.gettblCotisationsData(),document.getElementById("dlg_cotisation").style.display="none"}).catch(e=>{document.getElementById("dlg_cotisation").style.display="none"})},editExportSepa:function(){let sel=null;invoicing.tblexportsepa&&(sel=invoicing.tblexportsepa.getSelectedData()),document.getElementById("dlg_nextsepaexport_btnok").setAttribute("onclick","invoicing.saveExportSepa();"),sel[0]&&postData({cl:"Cotisations",fn:"getExportSepaRowData",id:sel[0].id}).then(data=>{dataform.fillform("nextsepaexport",this.selects,data.result.data,"nse"),myapp.viewdialog("nextsepaexport")})},saveExportSepa(){let datatosave=dataform.getContent("nextsepaexport",invoicing.selects),transferdata={amount:datatosave.nextsepaexport_amount,fullname:datatosave.nextsepaexport_fullname,amount:datatosave.nextsepaexport_amount,message:datatosave.nextsepaexport_message,iban:datatosave.nextsepaexport_iban,bic:datatosave.nextsepaexport_bic,sepa_type:datatosave.nextsepaexport_sepa_type};console.log("Export row to save",transferdata,datatosave.nextsepaexport_id),postData({cl:"Cotisations",fn:"saveExportSepaRow",id:datatosave.nextsepaexport_id,data:transferdata}).then(data=>{invoicing.viewTabExport(),document.getElementById("dlg_nextsepaexport").style.display="none"}).catch(e=>{document.getElementById("dlg_nextsepaexport").style.display="none"})},editTransaction:function(){let sel=null;invoicing.tbl&&(sel=invoicing.tbl.getSelectedData()),sel[0]&&postData({cl:"Cotisations",fn:"getRowData",id:sel[0].id}).then(data=>{dataform.fillform("cotisation",this.selects,data.result.data),myapp.viewdialog("cotisation")})},saveTransaction(){},viewChangeStatus:function(){let sel=null;invoicing.tbl_cotisations&&(sel=invoicing.tbl_cotisations.getSelectedData()),sel[0]&&(document.getElementById("dlg_changestatus_btnok").setAttribute("onclick","invoicing.changeStatus();"),myapp.viewdialog("changestatus"))},changeStatus:function(){let sel=null;invoicing.tbl_cotisations&&(sel=invoicing.tbl_cotisations.getSelectedData());let chsel=[];for(i=0;i<sel.length;i++)chsel.push(sel[i].id);let datatosave=dataform.getContent("changestatus",invoicing.selects);console.log("set Status",datatosave,chsel),sel[0]&&postData({cl:"Cotisations",fn:"setStatus",ids:chsel,status:datatosave.changestatus}).then(data=>{invoicing.gettblCotisationsData(),myapp.closeDialog("changestatus")}).catch(e=>{myapp.closeDialog("changestatus")})},viewMember:function(){var windowReference;(invoicing.tbl_cotisations&&(sel=invoicing.tbl_cotisations.getSelectedData()),sel[0])&&(window.open().location=api+"index?id="+sel[0].id_member)},getCountries:function(){postData({cl:"Countries",fn:"getCountries"}).then(data=>{data.result.data.unshift({iso2:null,country:null}),dataform.fillselectlist(this.selects.birthcountry,data.result.data,"iso2","country"),dataform.fillselectlist(this.selects.addresscountry,data.result.data,"iso2","country")})},loadFileDlg(){},importSepa(){myapp.upload("Import fichier XML SEPA","","importer","annuler","invoicing.importSepaFile();","text/xml")},getProcessInfo(logfile){postData({cl:"WorkerProcess",fn:"getLastWorkerInfo",logfile:logfile}).then(data=>{var windowReference;data.result.data.info&&"error"!=data.result.data.status?(myapp.setDataloadText(data.result.data.info),data.result.data.info.startsWith("End: ")&&(progressinfo.stopGetInfo(),logfile.endsWith("exportsepa.log")&&!data.result.data.info.startsWith("End: Erreur:")&&(window.open().location=api+"file.php?open="+encodeURIComponent(invoicing.exportfile)))):"error"==data.result.data.status&&(myapp.setDataloadText(data.result.data.error),progressinfo.stopGetInfo())}).catch(e=>{myapp.setDataloadText("ne peux pas avoir d'info sur le progrès!")})},importSepaFile(){myapp.openDataload("Import données","Attendez svp! Import XML encours!"),postFile(document.getElementById("dlg_uploadfile_files"),{folder:"importsepa"}).then(data=>{data.file?postData({cl:"Sepa",fn:"startSepaImport",xmlfile:data.file}).then(data=>{progressinfo.startGetInfo("invoicing.getProcessInfo('"+data.result.data.log+"')",1)}):(myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier XML!"))}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier XML!",e.msg)})},viewTabExport:function(){myapp.viewtab("tab_invoicing","inv_export"),myapp.openDataload("Recherche données","Attendez svp!"),postData({cl:"Cotisations",fn:"getExportTable"}).then(data=>{invoicing.tblexportsepa.setData(data.result.data).then(data=>{}),myapp.closeDataload()}).catch(e=>{console.log(e),myapp.closeDataload()})},viewTabTransactions:function(){myapp.viewtab("tab_invoicing","inv_transactions")},viewTabCotisations:function(){myapp.viewtab("tab_invoicing","inv_cotisations")},addCotisationMonth:function(){myapp.openDataload("Synchronisation des données en cours","Attendez svp!"),postData({cl:"Cotisations",fn:"addCotisationMonth",monthdate:"latest"}).then(data=>{invoicing.gettbldates(),myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})},syncSepaTransactions:function(){let selmonyear=invoicing.tbldates.getSelectedData();selmonyear[0]?(myapp.openDataload("Synchronisation des données en cours","Attendez svp!"),postData({cl:"Cotisations",fn:"syncSepaTransactions",monthdate:selmonyear[0].id}).then(data=>{invoicing.gettblCotisationsData(),invoicing.gettblTransactionsData(),myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})):myapp.message("Info","Pas de mois sélectionné!")},syncMembers:function(){let selmonyear=invoicing.tbldates.getSelectedData();selmonyear[0]?(myapp.openDataload("Synchronisation des données en cours","Attendez svp!"),postData({cl:"Cotisations",fn:"addCotisationMonth",monthdate:selmonyear[0].id}).then(data=>{invoicing.gettbldates(),invoicing.gettblCotisationsData(),myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})):myapp.message("Info","Pas de mois sélectionné!")},selectVisibleCotisationRows:function(){invoicing.tbl_cotisations.selectRow("active")},copySelectedToExportView:function(){let selexp=invoicing.tbl_cotisations.getSelectedData();if(selexp[0]){myapp.openDataload("Copy des données en cours","Attendez svp!");let addsel=[];for(i=0;i<selexp.length;i++)addsel.push(selexp[i].id);console.log("selected Ids!",addsel),postData({cl:"Cotisations",fn:"addToExportTable",ids:addsel}).then(data=>{myapp.closeDataload()}).catch(e=>{myapp.closeDataload()})}},cleanExportTable:function(){postData({cl:"Cotisations",fn:"cleanExportTable"}).then(data=>{invoicing.viewTabExport()}).catch(e=>{})},removefromExportTable:function(){let selexp=invoicing.tblexportsepa.getSelectedData();if(selexp[0]){let rmsel=[];for(i=0;i<selexp.length;i++)rmsel.push(selexp[i].id);postData({cl:"Cotisations",fn:"removeFromExportTable",ids:rmsel}).then(data=>{invoicing.viewTabExport()}).catch(e=>{})}},exportSepa:function(){let debitdate=document.getElementById("debitdate").value;myapp.openDataload("Export des données","Attendez svp! Export XML encours!"),postData({cl:"Sepa",fn:"createSepa",debitdate:debitdate}).then(data=>{progressinfo.startGetInfo("invoicing.getProcessInfo('"+data.result.data.log+"')",1),invoicing.exportfile=data.result.data.file}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","Échec de l'export du fichier XML!",e.msg)})}};
\ No newline at end of file