From: Kilian Saffran Date: Thu, 20 Jun 2024 09:03:39 +0000 (+0200) Subject: v20240620110023 X-Git-Tag: 0.25.1^0 X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=5bf2617d37fe6fa154b2ac101e018c67e828ce05;p=ngl-snep.git v20240620110023 --- diff --git a/public_html/lib/App/Bankaccounts.php b/public_html/lib/App/Bankaccounts.php index 5bb0896..ca1f6cd 100644 --- a/public_html/lib/App/Bankaccounts.php +++ b/public_html/lib/App/Bankaccounts.php @@ -23,16 +23,25 @@ class Bankaccounts extends stdClass { } public function getList($monthdate,$debit=false){ - $sql="select bs.id,m.id_member,unaccent(UPPER(m.firstname)) as firstname,unaccent(UPPER(m.lastname)) as lastname,CONCAT(coalesce(unaccent(UPPER(m.lastname)),null),' ',coalesce(unaccent(UPPER(m.firstname)),'')) as membername,mc.date_month,bs.account,bs.bank,bs.statement_number,bs.transaction_amount,bs.value_date,bs.transaction_motivation,bs.transaction_label,bs.transaction_type,bs.client_reference,bs.counterparty_name,bs.counterparty_account,bs.filename + $sql="select * from ( +select bs.id,mc.id_member,mc.membername,mc.date_month,bs.account,bs.bank,bs.statement_number,bs.transaction_amount,bs.value_date,bs.transaction_motivation,bs.transaction_label,bs.transaction_type,bs.client_reference,bs.counterparty_name,bs.counterparty_account,bs.filename from bank_statements bs - left join members m on (m.ID_member=bs.id_member) - left join members_cotisation mc on (mc.id=bs.id_members_cotisation) - where bs.value_date between date(".$this->dbh->value($monthdate).") and LAST_DAY(".$this->dbh->value($monthdate).") ".(($debit==true)?"":" AND bs.transaction_amount > 0.00 ")." order by bs.value_date,bs.statement_number;"; - // $sql ="SELECT mc.id, mc.id_member, mc.date_month, mc.date_transaction, mc.status, mc.sepa_file_out, mc.transaction_file_in, mc.transaction_id, mc.last_sepa_code, mc.amount, mc.paymenttype, mc.created, mc.modified, -// FROM members_cotisation mc join members m on (m.ID_member=mc.id_member) where mc.date_month = date(".$this->dbh->value($monthdate).");"; + join (select mc1.id,mc1.id_bank_statement,mc1.date_month,mc1.id_member,CONCAT(unaccent(UPPER(coalesce(m1.lastname,''))),' ',unaccent(UPPER(coalesce(m1.firstname,'')))) as membername +from members_cotisation mc1 join members m1 on (mc1.id_member=m1.ID_member) where mc1.id_bank_statement is not null) mc on (bs.id=mc.id_bank_statement) + where bs.value_date between date(".$this->dbh->value($monthdate).") and LAST_DAY(".$this->dbh->value($monthdate).") +union +select bs.id, null id_member, null as membername, null as date_month,bs.account,bs.bank,bs.statement_number,bs.transaction_amount,bs.value_date,bs.transaction_motivation,bs.transaction_label,bs.transaction_type,bs.client_reference,bs.counterparty_name,bs.counterparty_account,bs.filename +from bank_statements bs where bs.value_date between date(".$this->dbh->value($monthdate).") and LAST_DAY(".$this->dbh->value($monthdate).") and bs.id not in (select id_bank_statement from members_cotisation where id_bank_statement is not null)) aa ".(($debit==true)?"":" WHERE transaction_amount > 0.00 ")." order by value_date,statement_number"; + return $this->dbh->queryarray($sql); } + public function getCotisationLinks($idstatement){ + $sql = "select mc1.id,mc1.id_bank_statement,mc1.date_month,mc1.id_member,CONCAT(unaccent(UPPER(coalesce(m1.lastname,''))),' ',unaccent(UPPER(coalesce(m1.firstname,'')))) as membername, mc1.amount,mc1.payed_amount +from members_cotisation mc1 join members m1 on (mc1.id_member=m1.ID_member) where mc1.id_bank_statement=".$this->dbh->value($idstatement).";"; +return $this->dbh->queryarray($sql); + } + public function getRowData($id){ $sql = "SELECT * FROM bank_statements where id=".$this->dbh->value($id).";"; return $this->dbh->query($sql); diff --git a/public_html/lib/App/Cotisations.php b/public_html/lib/App/Cotisations.php index a1c066b..a562d5b 100644 --- a/public_html/lib/App/Cotisations.php +++ b/public_html/lib/App/Cotisations.php @@ -36,6 +36,13 @@ unaccent(UPPER(m.firstname)) as firstname,unaccent(UPPER(m.lastname)) as lastnam return $this->dbh->queryarray($sql); } + public function getUnpaidVirList($idmember){ + if ($idmember == null){ return array();} + $sql = "select mc.id, DATE_FORMAT(mc.date_month,'%m/%Y') as dspdatemonth, mc.id_member,mc.date_month,mc.status from members_cotisation mc where mc.paymenttype ='VIR' +and (mc.status != 'payed' or mc.status is null) and mc.id_member=".$this->dbh->value($idmember)." order by date_month DESC;"; + return $this->dbh->queryarray($sql); + } + public function getRowData($id){ $sql = "SELECT id, id_member, date_month,DATE_FORMAT(date_month,'%m/%Y') as dspdate_month, date_transaction, status, sepa_file_out, transaction_file_in, transaction_id, last_sepa_code, amount, paymenttype, created, modified FROM members_cotisation where id=".$this->dbh->value($id).";"; return $this->dbh->query($sql); diff --git a/public_html/lib/App/Members.php b/public_html/lib/App/Members.php index 088fbbc..107091b 100644 --- a/public_html/lib/App/Members.php +++ b/public_html/lib/App/Members.php @@ -33,6 +33,11 @@ class Members extends stdClass { return $this->dbh->queryarray($sql); } + public function getVirList(){ + $sql = "select ID_member,CONCAT(unaccent(UPPER(coalesce(m.lastname,''))),' ',unaccent(UPPER(coalesce(m.firstname,''))),' (',m.ID_member,')') as membername from members m where m.daterelease is null and m.deleted is null and m.id_famillycommon is null and sepasigned != '1' order by membername ASC;"; + return $this->dbh->queryarray($sql); + } + public function getFamillyCommonList(){ $sql= "SELECT ID_member as id, CONCAT(coalesce(unaccent(UPPER(lastname)),''),' ',coalesce(unaccent(UPPER(firstname)),''),' (',ID_member,')') as description FROM members WHERE daterelease is null and ID_famillycommon is null order by lastname ASC,firstname ASC;"; diff --git a/public_html/lib/version.php b/public_html/lib/version.php index c170b88..94d9fe8 100644 --- a/public_html/lib/version.php +++ b/public_html/lib/version.php @@ -1,5 +1,5 @@ exec($updsql); $db->exec($updsql2); } else { - $inssql = "INSERT INTO members_cotisation (id_member, date_month, date_transaction, status, transaction_file_in, transaction_id, amount, paymenttype, payed_amount) VALUES (".$res[0]["ID_member"].", date('".substr($r["value_date"],0,8)."-01'), date('".$r["value_date"]."), 'payed', '".$r["filename"]."', '".$r["transaction_label"]."', '".$res[0]["quota"]."', 'VIR', '".$r["transaction_amount"]."');"; + $inssql = "INSERT INTO members_cotisation (id_member, date_month, date_transaction, status, transaction_file_in, transaction_id, amount, paymenttype, payed_amount,id_bank_statement) VALUES (".$res[0]["ID_member"].", date('".substr($r["value_date"],0,8)."-01'), date('".$r["value_date"]."), 'payed', '".$r["filename"]."', '".$r["transaction_label"]."', '".$res[0]["quota"]."', 'VIR', '".$r["transaction_amount"]."','".$r["id"]."');"; $db->exec($inssql); - $sqlget= "select id,id_member from members_cotisation where date_month=date('".substr($r["value_date"],0,8)."-01') and id_member='".$res[0]["ID_member"]."';"; - $sres = $db->query($sqlget); - $updsql2= "update bank_statements set id_member=".$sres["id_member"].",id_members_cotisation=".$sres["id"]." WHERE id=".$r["id"].";"; + // $sqlget= "select id,id_member from members_cotisation where date_month=date('".substr($r["value_date"],0,8)."-01') and id_member='".$res[0]["ID_member"]."';"; + // $sres = $db->query($sqlget); + // $updsql2= "update bank_statements set id_member=".$sres["id_member"].",id_members_cotisation=".$sres["id"]." WHERE id=".$r["id"].";"; $db->exec($updsql2); } } diff --git a/public_html/tmpl/common/foot_js.php b/public_html/tmpl/common/foot_js.php index 8e035b5..3a8832f 100644 --- a/public_html/tmpl/common/foot_js.php +++ b/public_html/tmpl/common/foot_js.php @@ -3,6 +3,7 @@ + diff --git a/public_html/tmpl/dialogs/dlg_bank_statements.php b/public_html/tmpl/dialogs/dlg_bank_statements.php index 9242b8a..5602b9f 100644 --- a/public_html/tmpl/dialogs/dlg_bank_statements.php +++ b/public_html/tmpl/dialogs/dlg_bank_statements.php @@ -6,58 +6,48 @@
-
+ "VIR","text" => "VIR"), - // array("value" => "SEPA","text" => "SEPA") - // ); - // $statusopts = array( - // array("value" => "","text" => ""), - // array("value" => "exported","text" => "exporté"), - // array("value" => "sended","text" => "envoyé"), - // array("value" => "payed","text" => "payé"), - // array("value" => "error","text" => "erreur") - // ); -// id -// id_member -// id_members_cotisation -// filename -// account -// bank -// statement_number -// value_date -// transaction_amount -// transaction_currency -// transaction_label -// transaction_type -// client_reference -// counterparty_name -// counterparty_account -// counterparty_data -// transaction_motivation - - // $frm->hidden("bank_statements","id"); - // $frm->hidden("bank_statements","id_member"); - // $frm->hidden("bank_statements","id_member_cotisation"); - // $frm->hidden("bank_statements","value_date"); - // $frm->input("bank_statements","dspdate_month","Mois","text",(object) array("readonly" => "1","containerClass" => "s2")); - // $frm->input("bank_statements","date_transaction","Date Traitement","date",null); - // $frm->select("bank_statements","status","Status",(object) array("data" => $statusopts,"containerClass" => "s2")); - // $frm->input("bank_statements","amount","montant","number",(object) array("containerClass" => "s2")); - // $frm->select("bank_statements","paymenttype","Type Payement",(object) array("data" => $typeopts,"containerClass" => "s2")); - // $frm->input("bank_statements","last_sepa_code","Code Sepa","text",(object) array("readonly" => "1","containerClass" => "s2")); - // $frm->input("bank_statements","sepa_file_out","Fichier SEPA Export","text",(object) array("readonly" => "1","containerClass" => "s6")); - // $frm->input("bank_statements","transaction_file_in","Fichier SEPA Import","text",(object) array("readonly" => "1","containerClass" => "s6")); - // $frm->input("bank_statements","transaction_id","Id Transaction","text",(object) array("readonly" => "1","containerClass" => "s6")); + $frm->hidden("bank_statements","id"); + ?>
input("bank_statements","account","Compte bancaire","text",(object) array("readonly" => "1","containerClass" => "s6")); + $frm->input("bank_statements","bank","Banque","text",(object) array("readonly" => "1","containerClass" => "s6")); + ?>
input("bank_statements","value_date","Date","text",(object) array("readonly" => "1","containerClass" => "s3")); + $frm->input("bank_statements","statement_number","Extrait No","text",(object) array("readonly" => "1","containerClass" => "s1")); + $frm->input("bank_statements","transaction_amount","Montant","text",(object) array("readonly" => "1","containerClass" => "s2")); + $frm->input("bank_statements","filename","Fichier import","text",(object) array("readonly" => "1","containerClass" => "s6")); + ?>
input("bank_statements","counterparty_name","Nom Contrepartie","text",(object) array("readonly" => "1","containerClass" => "s12")); + $frm->input("bank_statements","transaction_motivation","Message","text",(object) array("readonly" => "1","containerClass" => "s12")); + ?>
+
+
+ +
+ + - +
\ No newline at end of file diff --git a/public_html/tmpl/js/app/bankaccounts.min.js b/public_html/tmpl/js/app/bankaccounts.min.js index 213db28..dd0fd53 100644 --- a/public_html/tmpl/js/app/bankaccounts.min.js +++ b/public_html/tmpl/js/app/bankaccounts.min.js @@ -1 +1 @@ -let bankaccounts={tbl:null,tblmonths:null,selects:{},debit:!0,filters:{status:{"":""}},init:function(){bankaccounts.tblmonths=new Tabulator("#tbl_months",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 65px)",layout:"fitDataStretch",selectable:1,columns:[{title:"Mois",field:"id",width:100,hozAlign:"center",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Balance",field:"balance",width:80,headerFilter:!1,headerSort:!1,hozAlign:"right",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:".",symbol:"€",symbolAfter:"p",negativeSign:"-",precision:2}}]}),bankaccounts.tblmonths.on("rowClick",(function(e,row){console.log("Show Month Data!"),bankaccounts.gettblData()})),bankaccounts.tbl=new Tabulator("#tbl_bankaccounts",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 120px)",layout:"fitDataFill",selectable:!0,selectableRangeMode:"click",rowContextMenu:[{label:'éditer',action:function(e,row){return bankaccounts.edit(),!1}}],columns:[{title:"#",formatter:"rownum",headerFilter:null,headerMenu:tablehelper.headerMenu},{title:"Banque",field:"bank",width:200},{title:"account",field:"bank",width:200,visible:!1},{title:"membre",field:"membername",width:200},{title:"Mois",field:"date_month",visible:!1,formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Date",field:"value_date",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"dd/MM/yyyy",invalidPlaceholder:""}},{title:"Extrait",field:"statement_number"},{title:"Montant",field:"transaction_amount",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:".",symbol:"€",symbolAfter:"p",negativeSign:"-",precision:2},bottomCalc:tablehelper.totalAmount},{title:"Message",field:"transaction_motivation"},{title:"ID Transaction",field:"transaction_label",visible:!1},{title:"Type",field:"transaction_type",visible:!1},{title:"Ref Client",field:"client_reference",visible:!1},{title:"Nom contrepartie",field:"counterparty_name"},{title:"Compte contrepartie",field:"counterparty_account",visible:!1}]}),bankaccounts.tbl.on("rowDblClick",(function(e,row){bankaccounts.edit()}))},load:function(){bankaccounts.gettblmonths(),myapp.viewpanel("bankaccounts")},gettblmonths:function(){let sel=null;bankaccounts.tblmonths.initialized&&(sel=bankaccounts.tblmonths.getSelectedData()),postData({cl:"Bankaccounts",fn:"getMonthList",debit:bankaccounts.debit}).then(data=>{bankaccounts.tblmonths.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},gettblData:function(){let sel=null;bankaccounts.tblmonths.initialized&&(sel=bankaccounts.tblmonths.getSelectedData()),console.log("Bankaccounts",sel),sel&&sel[0]&&postData({cl:"Bankaccounts",fn:"getList",monthdate:sel[0].id,debit:bankaccounts.debit}).then(data=>{bankaccounts.tbl.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},edit:function(){let sel=null;bankaccounts.tbl&&(sel=bankaccounts.tbl.getSelectedData()),document.getElementById("dlg_bank_statements_btnok").setAttribute("onclick","bankaccounts.save();"),sel[0]&&postData({cl:"Bankaccounts",fn:"getRowData",id:sel[0].id}).then(data=>{dataform.fillform("bank_statements",this.selects,data.result.data),myapp.viewdialog("bank_statements")})},save(){},importCSV(){myapp.upload("Import fichier CSV/TXT","","importer","annuler","bankaccounts.importFile();","text/plain")},getProcessInfo(logfile){postData({cl:"WorkerProcess",fn:"getLastWorkerInfo",logfile:logfile}).then(data=>{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("importcsv.log")&&!data.result.data.info.startsWith("End: Erreur:")&&myapp.message("Succès",data.result.data.success+" données importées!"),logfile.endsWith("parsestatements.log")&&!data.result.data.info.startsWith("End: Erreur:")&&bankaccounts.gettblData())):"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!")})},importFile(){myapp.openDataload("Import données","Attendez svp! Import Fichier encours!"),postFile(document.getElementById("dlg_uploadfile_files"),{folder:"importstatement"}).then(data=>{data.file?postData({cl:"Bankaccounts",fn:"startImport",file:data.file}).then(data=>{progressinfo.startGetInfo("bankaccounts.getProcessInfo('"+data.result.data.log+"')",1)}):(myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier!"))}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier!",e.msg)})},findCotisation:function(){myapp.openDataload("Recherche Cotisations","Attendez svp! Recherche en cours!");let selmonyear=bankaccounts.tblmonths.getSelectedData();selmonyear[0]?postData({cl:"Bankaccounts",fn:"checkTransactions",month:selmonyear[0].id}).then(data=>{progressinfo.startGetInfo("bankaccounts.getProcessInfo('"+data.result.data.log+"')",1)}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","pas de fichier status retourné!",e.msg)}):myapp.message("Info","Pas de mois sélectionné!")}}; \ No newline at end of file +let bankaccounts={tbl:null,tblmonths:null,selects:{},debit:!0,filters:{status:{"":""}},init:function(){flatpickr("#date_month",{altInput:!0,allowInput:!1,altFormat:"m/Y",dateFormat:"Y-m-d",onClose:function(selectedDates,dateStr,instance){}}),bankaccounts.selects.id_member=new SlimSelect({select:"#id_member",settings:{showSearch:!0},events:{afterClose:()=>{bankaccounts.getMembersUnpaidMonth(bankaccounts.selects.id_member.getSelected()[0])}}}),bankaccounts.selects.id_members_cotisation=new SlimSelect({select:"#id_members_cotisation",settings:{showSearch:!1},events:{afterClose:()=>{}}}),bankaccounts.tblmonths=new Tabulator("#tbl_months",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 65px)",layout:"fitDataStretch",selectable:1,columns:[{title:"Mois",field:"id",width:100,hozAlign:"center",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Balance",field:"balance",width:80,headerFilter:!1,headerSort:!1,hozAlign:"right",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:".",symbol:"€",symbolAfter:"p",negativeSign:"-",precision:2}}]}),bankaccounts.tblmonths.on("rowClick",(function(e,row){bankaccounts.gettblData()})),bankaccounts.tblcotisationlink=new Tabulator("#tbl_cotisationlink",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!1,headerFilter:!1,formatter:"html"},height:"120px",layout:"fitDataStretch",selectable:1,rowContextMenu:[{label:'supprimer',action:function(e,row){return bankaccounts.confirmDeleteCotisationLink(),!1}}],columns:[{title:"Membre",field:"membername",width:400},{title:"Mois",field:"date_month",width:150,hozAlign:"center",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Montant",field:"amount",width:80,headerFilter:!1,headerSort:!1,hozAlign:"right",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:".",symbol:"€",symbolAfter:"p",negativeSign:"-",precision:2}}]}),bankaccounts.tbl=new Tabulator("#tbl_bankaccounts",{columnDefaults:{resizable:!1,headerFilterPlaceholder:"",headerSort:!0,headerFilter:"input",formatter:"html"},height:"calc(100vh - 120px)",layout:"fitDataFill",selectable:!0,selectableRangeMode:"click",rowContextMenu:[{label:'éditer',action:function(e,row){return bankaccounts.edit(),!1}}],columns:[{title:"#",formatter:"rownum",headerFilter:null,headerMenu:tablehelper.headerMenu},{title:"Banque",field:"bank",width:200},{title:"account",field:"bank",width:200,visible:!1},{title:"membre",field:"membername",width:200},{title:"Mois",field:"date_month",visible:!1,formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}},{title:"Date",field:"value_date",formatter:"datetime",formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"dd/MM/yyyy",invalidPlaceholder:""}},{title:"Extrait",field:"statement_number"},{title:"Montant",field:"transaction_amount",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:".",symbol:"€",symbolAfter:"p",negativeSign:"-",precision:2},bottomCalc:tablehelper.totalAmount},{title:"Message",field:"transaction_motivation"},{title:"ID Transaction",field:"transaction_label",visible:!1},{title:"Type",field:"transaction_type",visible:!1},{title:"Ref Client",field:"client_reference",visible:!1},{title:"Nom contrepartie",field:"counterparty_name"},{title:"Compte contrepartie",field:"counterparty_account",visible:!1}]}),bankaccounts.tbl.on("rowDblClick",(function(e,row){bankaccounts.edit()})),bankaccounts.getVirMembers()},load:function(){bankaccounts.gettblmonths(),myapp.viewpanel("bankaccounts")},gettblmonths:function(){let sel=null;bankaccounts.tblmonths.initialized&&(sel=bankaccounts.tblmonths.getSelectedData()),postData({cl:"Bankaccounts",fn:"getMonthList",debit:bankaccounts.debit}).then(data=>{bankaccounts.tblmonths.setData(data.result.data).then(data=>{})}).catch(e=>{console.log(e)})},gettblData:function(){let sel=null;myapp.openDataload("Cmptes bancaires","Attendez svp! chargement en cours!"),bankaccounts.tblmonths.initialized&&(sel=bankaccounts.tblmonths.getSelectedData()),sel&&sel[0]&&postData({cl:"Bankaccounts",fn:"getList",monthdate:sel[0].id,debit:bankaccounts.debit}).then(data=>{myapp.closeDataload(),bankaccounts.tbl.setData(data.result.data).then(data=>{})}).catch(e=>{myapp.closeDataload(),console.log(e)})},edit:function(){let sel=null;bankaccounts.tbl&&(sel=bankaccounts.tbl.getSelectedData()),console.log("bank account data",sel[0]),bankaccounts.tblcotisationlink.setData([]),sel[0]&&(postData({cl:"Bankaccounts",fn:"getRowData",id:sel[0].id}).then(data=>{dataform.fillform("bank_statements",this.selects,data.result.data),myapp.viewdialog("bank_statements")}),postData({cl:"Bankaccounts",fn:"getCotisationLinks",idstatement:sel[0].id}).then(data=>{data.result.data&&bankaccounts.tblcotisationlink.setData(data.result.data)}))},save(){let datatosave=dataform.getContent("bank_statements",bankaccounts.selects);console.log(datatosave)},importCSV(){myapp.upload("Import fichier CSV/TXT","","importer","annuler","bankaccounts.importFile();","text/plain")},getProcessInfo(logfile){postData({cl:"WorkerProcess",fn:"getLastWorkerInfo",logfile:logfile}).then(data=>{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("importcsv.log")&&!data.result.data.info.startsWith("End: Erreur:")&&myapp.message("Succès",data.result.data.success+" données importées!"),logfile.endsWith("parsestatements.log")&&!data.result.data.info.startsWith("End: Erreur:")&&bankaccounts.gettblData())):"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!")})},importFile(){myapp.openDataload("Import données","Attendez svp! Import Fichier encours!"),postFile(document.getElementById("dlg_uploadfile_files"),{folder:"importstatement"}).then(data=>{data.file?postData({cl:"Bankaccounts",fn:"startImport",file:data.file}).then(data=>{progressinfo.startGetInfo("bankaccounts.getProcessInfo('"+data.result.data.log+"')",1)}):(myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier!"))}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","Échec de l'importation du fichier!",e.msg)})},findCotisation:function(){myapp.openDataload("Recherche Cotisations","Attendez svp! Recherche en cours!");let selmonyear=bankaccounts.tblmonths.getSelectedData();selmonyear[0]?postData({cl:"Bankaccounts",fn:"checkTransactions",month:selmonyear[0].id}).then(data=>{progressinfo.startGetInfo("bankaccounts.getProcessInfo('"+data.result.data.log+"')",1)}).catch(e=>{myapp.closeDataload(),myapp.message("Erreur","pas de fichier status retourné!",e.msg)}):myapp.message("Info","Pas de mois sélectionné!")},getVirMembers:function(){this.selects.id_member&&postData({cl:"Members",fn:"getVirList"}).then(data=>{data.result.data.unshift({ID_member:null,membername:null}),dataform.fillselectlist(this.selects.id_member,data.result.data,"ID_member","membername")})},getMembersUnpaidMonth:function(){this.selects.id_members_cotisation&&postData({cl:"Cotisations",fn:"getUnpaidVirList"}).then(data=>{data.result.data.unshift({id:null,dspdatemonth:null}),dataform.fillselectlist(this.selects.id_members_cotisation,data.result.data,"id","dspdatemonth")})},confirmDeleteCotisationLink:function(){myapp.message("Info","Ceci ne fonctionne pas encore!")},addCotisationLink:function(){myapp.message("Info","Ceci ne fonctionne pas encore!")}}; \ No newline at end of file diff --git a/public_html/tmpl/js/pages/bankaccounts.js b/public_html/tmpl/js/pages/bankaccounts.js index 508ea07..80a69a2 100644 --- a/public_html/tmpl/js/pages/bankaccounts.js +++ b/public_html/tmpl/js/pages/bankaccounts.js @@ -8,6 +8,50 @@ let bankaccounts = { status:{"":""} }, init: function(){ + flatpickr("#date_month",{altInput: true, + allowInput: false, + altFormat: "m/Y", + dateFormat: "Y-m-d", + // plugins: [ + // new monthSelectPlugin({ + // shorthand: true, //defaults to false + // dateFormat: "Y-m-d", //defaults to "F Y" + // altFormat: "m/Y", //defaults to "F Y" + // }) + // ], + //disable: true, + onClose: function(selectedDates, dateStr, instance) { + //dataform.savefield(document.getElementById("date_transaction"),null); + }, + }); + bankaccounts.selects["id_member"]=new SlimSelect({ + select: "#id_member", + settings: {showSearch: true }, + events: { + afterClose: () =>{ + bankaccounts.getMembersUnpaidMonth(bankaccounts.selects["id_member"].getSelected()[0]) + + //let sel = index.tbl.getSelectedData(); + // if (sel[0]){ + // //index.setFamillyCommon(); + // //dataform.savefielddata(document.getElementById("ID_famillyid_membercommon"),index.selects["ID_famillycommon"].getSelected()[0]); + // } + } + } + }); + bankaccounts.selects["id_members_cotisation"]=new SlimSelect({ + select: "#id_members_cotisation", + settings: {showSearch: false }, + events: { + afterClose: () =>{ + //let sel = index.tbl.getSelectedData(); + // if (sel[0]){ + // //index.setFamillyCommon(); + // //dataform.savefielddata(document.getElementById("ID_famillyid_membercommon"),index.selects["ID_famillycommon"].getSelected()[0]); + // } + } + } + }); bankaccounts.tblmonths = new Tabulator("#tbl_months", { columnDefaults:{ resizable: false, @@ -32,9 +76,35 @@ let bankaccounts = { ] }); bankaccounts.tblmonths.on("rowClick",function(e, row){ - console.log("Show Month Data!"); + //console.log("Show Month Data!"); bankaccounts.gettblData(); }); + bankaccounts.tblcotisationlink = new Tabulator("#tbl_cotisationlink", { + columnDefaults:{ + resizable: false, + headerFilterPlaceholder:"", + headerSort: false, + headerFilter:false, + formatter:"html", + }, + height: "120px", + layout: "fitDataStretch", + selectable: 1, + rowContextMenu:[ + {label:'supprimer', action:function(e, row){bankaccounts.confirmDeleteCotisationLink(); return false;}}, + ], + //selectableRangeMode:"click", + //selectableRangeMode:"click", + // groupBy:["groupname", + // groupStartOpen:[true], + // groupHeader:[function(value, count, data,group){ return ((value)?value:"");}], + columns: [ + { title: "Membre",field: "membername",width: 400 }, + { title: "Mois",field: "date_month",width: 150,hozAlign: "center",formatter:"datetime", formatterParams:{inputFormat:"yyyy-MM-dd",outputFormat:"MM/yyyy",invalidPlaceholder:""}}, + { title: "Montant",field: "amount", width: 80,headerFilter:false,headerSort: false,hozAlign: "right",formatter:"money",hozAlign:"right",formatterParams:{decimal:",",thousand:".",symbol:"€",symbolAfter:"p", negativeSign:"-",precision:2}}, + ] + }); + //ofh_tbl_payments = tablehelper.findTop("tbar_tabmembers") ; bankaccounts.tbl = new Tabulator("#tbl_bankaccounts",{ columnDefaults:{ @@ -72,7 +142,7 @@ let bankaccounts = { bankaccounts.tbl.on("rowDblClick",function(e, row){ bankaccounts.edit(); }); - + bankaccounts.getVirMembers(); }, load: function(){ @@ -105,13 +175,15 @@ let bankaccounts = { gettblData: function(){ //console.log("Bankaccounts"); let sel = null; + myapp.openDataload("Cmptes bancaires","Attendez svp! chargement en cours!"); if (bankaccounts.tblmonths.initialized){ sel = bankaccounts.tblmonths.getSelectedData(); } - console.log("Bankaccounts",sel); + //console.log("Bankaccounts",sel); if (sel && sel[0]){ postData({"cl":"Bankaccounts","fn":"getList","monthdate":sel[0].id,"debit":bankaccounts.debit}).then(data => { //console.log("Bankaccounts",data.result.data); + myapp.closeDataload(); bankaccounts.tbl.setData(data.result.data).then( data => { }); @@ -119,7 +191,7 @@ let bankaccounts = { // if(sel && sel[0]){bankaccounts.tblmonths.selectRow(sel[0]['id']);} // } //); - }).catch(e => { console.log(e)}); + }).catch(e => { myapp.closeDataload();console.log(e)}); } }, @@ -132,18 +204,28 @@ let bankaccounts = { if (bankaccounts.tbl){ sel = bankaccounts.tbl.getSelectedData(); } - document.getElementById("dlg_bank_statements_btnok").setAttribute('onclick',"bankaccounts.save();"); + console.log("bank account data",sel[0]); + bankaccounts.tblcotisationlink.setData([]); + //document.getElementById("dlg_bank_statements_btnok").setAttribute('onclick',"bankaccounts.save();"); if (sel[0]){ postData({"cl":"Bankaccounts","fn":"getRowData","id":sel[0].id}).then( data => { //console.log("get Cotisation",data.result.data); dataform.fillform("bank_statements",this.selects,data.result.data); myapp.viewdialog("bank_statements"); + + }); + postData({"cl":"Bankaccounts","fn":"getCotisationLinks","idstatement":sel[0].id}).then(data => { + if (data.result.data){ + bankaccounts.tblcotisationlink.setData(data.result.data); + } }); } }, save(){ - // let datatosave = dataform.getContent("bank_statements",bankaccounts.selects); + + let datatosave = dataform.getContent("bank_statements",bankaccounts.selects); + console.log(datatosave); // let transferdata = {"amount":datatosave["amount"], // "paymenttype":datatosave["paymenttype"], // "date_transaction":datatosave["date_transaction"], @@ -241,5 +323,27 @@ let bankaccounts = { } else { myapp.message("Info","Pas de mois sélectionné!"); } + }, + getVirMembers: function(){ + if (this.selects["id_member"]){ + postData({"cl":"Members","fn":"getVirList"}).then(data => { + data.result.data.unshift({"ID_member":null,"membername":null}); + dataform.fillselectlist(this.selects["id_member"],data.result.data,'ID_member','membername'); + }); + } + }, + getMembersUnpaidMonth: function(){ + if (this.selects["id_members_cotisation"]){ + postData({"cl":"Cotisations","fn":"getUnpaidVirList"}).then(data => { + data.result.data.unshift({"id":null,"dspdatemonth":null}); + dataform.fillselectlist(this.selects["id_members_cotisation"],data.result.data,'id','dspdatemonth'); + }); + } + }, + confirmDeleteCotisationLink: function(){ + myapp.message("Info","Ceci ne fonctionne pas encore!"); + }, + addCotisationLink: function(){ + myapp.message("Info","Ceci ne fonctionne pas encore!"); } };