add articles reference list in facture list and devis list
This commit is contained in:
parent
5d7d21087d
commit
3fbfc0380c
@ -34,6 +34,7 @@ return [
|
||||
|
||||
['name' => 'page#getDevis', 'url' => '/getDevis', 'verb' => 'PROPFIND'],
|
||||
['name' => 'page#getDevisDelphine', 'url' => '/getDevisDelphine/{idtrajetdetails}', 'verb' => 'PROPFIND'],
|
||||
['name' => 'page#getDevisWithProduits', 'url' => '/getDevisWithProduits', 'verb' => 'PROPFIND'],
|
||||
['name' => 'page#devisshow', 'url' => '/devis/{numdevis}/show', 'verb' => 'GET'],
|
||||
['name' => 'page#insertDevis', 'url' => '/devis/insert', 'verb' => 'POST'],
|
||||
['name' => 'page#insertProduitDevis', 'url' => '/insertProduitDevis', 'verb' => 'POST'],
|
||||
@ -59,6 +60,7 @@ return [
|
||||
['name' => 'page#insertLieu', 'url' => '/lieu/insert', 'verb' => 'POST'],
|
||||
|
||||
['name' => 'page#getFactures', 'url' => '/getFactures', 'verb' => 'PROPFIND'],
|
||||
['name' => 'page#getFacturesWithProduits', 'url' => '/getFacturesWithProduits', 'verb' => 'PROPFIND'],
|
||||
['name' => 'page#factureshow', 'url' => '/facture/{numfacture}/show', 'verb' => 'GET'],
|
||||
['name' => 'page#apercustoutesfactures', 'url' => '/factures/apercus', 'verb' => 'GET'],
|
||||
['name' => 'page#apercustousdevis', 'url' => '/devis/apercus', 'verb' => 'GET'],
|
||||
|
||||
@ -139,6 +139,11 @@
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
.devisOrFactureInputDate{
|
||||
min-width: 120px !important;
|
||||
max-width: 120px !important;
|
||||
}
|
||||
|
||||
.configuration-global{
|
||||
margin-top:15px;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1251,6 +1251,14 @@ class PageController extends Controller {
|
||||
return $this->myDb->getDevis($this->idNextcloud);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
public function getDevisWithProduits(){
|
||||
return $this->myDb->getDevisWithProduits($this->idNextcloud);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
@ -1312,6 +1320,18 @@ class PageController extends Controller {
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
public function getFacturesWithProduits() {
|
||||
$result = $this->myDb->getFacturesWithProduits($this->idNextcloud);
|
||||
$this->refreshFEC();
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private function synchronize_facture() {
|
||||
$factures = json_decode($this->myDb->getFactures($this->idNextcloud));
|
||||
foreach ($factures as $key => $facture) {
|
||||
|
||||
@ -215,6 +215,16 @@ class Bdd {
|
||||
return $this->execSQL($sql, array());
|
||||
}
|
||||
|
||||
public function getDevisWithProduits($idNextcloud){
|
||||
$devis = $this->getDevis($idNextcloud);
|
||||
$devisList = json_decode($devis);
|
||||
foreach($devisList as $currentDevis){
|
||||
$produits = $this->getProduitsDevisByDevisId($currentDevis->devisid);
|
||||
$currentDevis->produits = $produits;
|
||||
}
|
||||
return json_encode($devisList);
|
||||
}
|
||||
|
||||
public function getDevisEmmanuelle($idNextcloud){
|
||||
$sql = "SELECT ".$this->tableprefix."devis.id, ".$this->tableprefix."devis.id as devisid, ".$this->tableprefix."devis.user_id,".$this->tableprefix."devis.id_nextcloud ,".$this->tableprefix."devis.comment ,"
|
||||
.$this->tableprefix."client.nom, ".$this->tableprefix."client.prenom, ".$this->tableprefix."client.id as cid, ".$this->tableprefix."client.id as id_client, "
|
||||
@ -271,6 +281,16 @@ class Bdd {
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getFacturesWithProduits($idNextCloud){
|
||||
$factures = $this->getFactures($idNextCloud);
|
||||
$facturesList = json_decode($factures);
|
||||
foreach($facturesList as $currentFacture){
|
||||
$produits = $this->getProduitsDevisByDevisId($currentFacture->id_devis);
|
||||
$currentFacture->produits = $produits;
|
||||
}
|
||||
return json_encode($facturesList);
|
||||
}
|
||||
|
||||
public function getCurrentMonthFactures_byClient($idNextcloud, $date, $idclient) {
|
||||
$sql = "SELECT YEAR(".$this->tableprefix."facture.date_paiement) AS year, MONTH(".$this->tableprefix."facture.date_paiement) AS month,"
|
||||
.$this->tableprefix."facture.id, ".$this->tableprefix."facture.user_id, ".$this->tableprefix."facture.num, ".$this->tableprefix."facture.date, "
|
||||
|
||||
@ -23,9 +23,20 @@ export class Devis {
|
||||
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);
|
||||
let thanatoPrenom = "";
|
||||
let thanatoNom = "";
|
||||
let thanatoFullName = "";
|
||||
this.nomThanato = Devis.getDevisThanatoFullname(myresp);
|
||||
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`);
|
||||
this.devisFullNumber = ((myresp.devis_full_number != null && myresp.mentions.devis_full_number != 0) ? myresp.devis_full_number : '-');
|
||||
|
||||
this.devisProduits = Devis.getDevisProduitsString(myresp);
|
||||
}
|
||||
|
||||
static getDevisThanatoFullname(myresp){
|
||||
let thanatoPrenom = '';
|
||||
let thanatoNom = '';
|
||||
let thanatoFullName = '';
|
||||
if(myresp.nom_thanato != null && myresp.nom_thanato.length != 0){
|
||||
thanatoNom = myresp.nom_thanato;
|
||||
thanatoFullName += thanatoNom;
|
||||
@ -37,12 +48,22 @@ export class Devis {
|
||||
}
|
||||
thanatoFullName += thanatoPrenom;
|
||||
}
|
||||
this.nomThanato = (thanatoFullName.length === 0) ? '-' : thanatoFullName;
|
||||
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`);
|
||||
this.devisFullNumber = ((myresp.devis_full_number != null && myresp.mentions.devis_full_number != 0) ? myresp.devis_full_number : '-');
|
||||
return (thanatoFullName.length === 0) ? '-' : thanatoFullName;
|
||||
}
|
||||
|
||||
static getDevisProduitsString(myresp){
|
||||
let devisProduitsAsString = '';
|
||||
if(myresp.produits != null && myresp.produits.length > 0){
|
||||
let devisProduits = myresp.produits;
|
||||
let devisProduitsLength = devisProduits.length;
|
||||
for (let i = 0; i < devisProduitsLength; i++) {
|
||||
devisProduitsAsString += devisProduits[i].produit_reference;
|
||||
if(i != devisProduitsLength - 1){
|
||||
devisProduitsAsString += '-';
|
||||
}
|
||||
}
|
||||
}
|
||||
return devisProduitsAsString.length === 0 ? '-' : devisProduitsAsString;
|
||||
}
|
||||
|
||||
/**undefined
|
||||
@ -55,12 +76,13 @@ export class Devis {
|
||||
'<input class="devisToFacture" data-id= '+ this.user_id + ' type="checkbox" name="devisToFacture" value="' + this.id + '"/>',
|
||||
'<div>' + this.user_id + '</div>',
|
||||
'<div>' + this.devisFullNumber + '</div>',
|
||||
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date + ' data-table="devis" data-column="date" data-id="' + this.id + '"/>',
|
||||
'<input style="margin:0;padding:0;" class="inputDate devisOrFactureInputDate" type="date" value=' + this.date + ' data-table="devis" data-column="date" data-id="' + this.id + '"/>',
|
||||
// '<div class="editable" data-table="devis" data-column="num" data-id="' + this.id + '" style="display:inline">' + this.num + '</div>',
|
||||
'<div class="loadSelect_listdefunt" data-table="devis" data-column="id_defunt" data-id="' + this.id + '" data-current="' + this.id_defunt + '">'+ this.id_defunt + ' (' + this.nom_defunt + ')</div>',
|
||||
'<div class="loadSelect_listclient" data-table="devis" data-column="id_client" data-id="' + this.id + '" data-current="' + this.cid + '">'+ this.cid + ' (' + this.prenom + ' ' + this.nom + ')</div>',
|
||||
'<div class="loadSelect_listthanato" data-table="devis" data-column="id_thanato" data-id="' + this.id + '" data-current="' + this.tid + '">'+ this.tid + ' (' + this.nomThanato+ ')</div>',
|
||||
'<div class="loadSelect_listlieu" data-table="devis" data-column="id_lieu" data-id="' + this.id + '" data-current="' + this.lid + '">' + this.lieu + '</div>',
|
||||
'<div>' + this.devisProduits + '</div>',
|
||||
(this.mentions == "facturé")?('<div data-table="devis" data-column="mentions" data-id="' + this.id +'" style="display:inline; border-radius: 5px; padding: 8px;background-color:green !important; color: white">'+ this.mentions + '</div>'):('<div data-table="devis" data-column="mentions" data-id="' + this.id +'" style="display:inline; border-radius: 5px; padding: 8px;background-color:yellow !important">'+ this.mentions + '</div>'),
|
||||
'<div style="display:inline-block;margin-right:0px;width:80%;"><a href="' + this.baseUrl + '"><button>' + t('gestion', 'Open') + '</button></a></div><div data-modifier="devis" data-id=' + this.id + ' data-table="devis" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div>'
|
||||
];
|
||||
@ -91,10 +113,11 @@ export class Devis {
|
||||
*/
|
||||
static loadDevisDT(devisDT) {
|
||||
var oReq = new XMLHttpRequest();
|
||||
oReq.open('PROPFIND', baseUrl + '/getDevis', true);
|
||||
oReq.open('PROPFIND', baseUrl + '/getDevisWithProduits', true);
|
||||
oReq.setRequestHeader("Content-Type", "application/json");
|
||||
oReq.onload = function(e){
|
||||
if (this.status == 200) {
|
||||
console.log(this.response);
|
||||
// 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);
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { showError } from "@nextcloud/dialogs";
|
||||
import { generateUrl } from "@nextcloud/router";
|
||||
import { baseUrl, LoadDT, showDone } from "../modules/mainFunction.mjs";
|
||||
import { Devis } from "./devis.mjs";
|
||||
|
||||
export class Facture {
|
||||
|
||||
@ -24,6 +25,7 @@ export class Facture {
|
||||
this.status_paiement = ((myresp.status_paiement == null || myresp.status_paiement.length === 0) ? '-' : myresp.status_paiement);
|
||||
this.id_devis = ((myresp.id_devis == null || myresp.id_devis.length === 0) ? '-' : myresp.id_devis);
|
||||
this.baseUrl = generateUrl(`/apps/gestion/facture/${this.id}/show`);
|
||||
this.factureProduits = Devis.getDevisProduitsString(myresp);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -33,11 +35,12 @@ export class Facture {
|
||||
let myrow = [
|
||||
'<div>' + this.user_id + '</div>',
|
||||
'<div class="factureNum" data-table="facture" data-column="num" data-id="' + this.id + '">' + this.num + '</div>',
|
||||
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date + ' data-table="facture" data-column="date" data-id="' + this.id + '"/>',
|
||||
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date_paiement + ' data-table="facture" data-column="date_paiement" data-id="' + this.id + '"/>',
|
||||
'<input style="margin:0;padding:0;" class="inputDate devisOrFactureInputDate" type="date" value=' + this.date + ' data-table="facture" data-column="date" data-id="' + this.id + '"/>',
|
||||
'<input style="margin:0;padding:0;" class="inputDate devisOrFactureInputDate" type="date" value=' + this.date_paiement + ' data-table="facture" data-column="date_paiement" data-id="' + this.id + '"/>',
|
||||
'<div class="editable" data-table="facture" data-column="type_paiement" data-id="' + this.id + '">' + this.type_paiement + '</div>',
|
||||
'<div class="loadSelect_listdevis" data-table="facture" data-column="id_devis" data-id="' + this.id + '" data-current="' + this.id_devis + '">' + this.nom_defunt + ' | <span style="font-size: 0.7rem">' + this.prenom + ' ' + this.nom + '</span></div>',
|
||||
'<div class="" data-table="facture" data-column="" data-id="' + this.id + '" style="display:inline">' + this.lieu + '</div>',
|
||||
'<div>' + this.factureProduits + '</div>',
|
||||
'<div class="editable" data-table="facture" data-column="status_paiement" data-id="' + this.id + '" style="display:inline">' + this.status_paiement + '</div>',
|
||||
'<div style="display:inline-block;margin-right:0px;width:80%;"><a href="' + this.baseUrl +'"><button>' + t('gestion', 'Open') + '</button></a></div><div data-modifier="facture" data-id=' + this.id + ' data-table="facture" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div>',
|
||||
];
|
||||
@ -46,7 +49,7 @@ export class Facture {
|
||||
|
||||
static loadFactureDT(factureDT) {
|
||||
var oReq = new XMLHttpRequest();
|
||||
oReq.open('PROPFIND', baseUrl + '/getFactures', true);
|
||||
oReq.open('PROPFIND', baseUrl + '/getFacturesWithProduits', true);
|
||||
oReq.setRequestHeader("Content-Type", "application/json");
|
||||
oReq.onload = function(e){
|
||||
if (this.status == 200) {
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<table id="devis" class="display tabledt devisDataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php p($l->t('A facturer'));?></th>
|
||||
<th></th>
|
||||
<th><?php p($l->t('ID'));?></th>
|
||||
<th><?php p($l->t('Numéro de devis'));?></th>
|
||||
<th><?php p($l->t('Quote date'));?></th>
|
||||
@ -40,6 +40,7 @@
|
||||
<th><?php p($l->t('Customer quote'));?></th>
|
||||
<th>Thanatopracteur</th>
|
||||
<th>Lieu</th>
|
||||
<th><?php p($l->t('Articles'));?></th>
|
||||
<!-- <th>Chambre funéraire</th> -->
|
||||
<th><?php p($l->t('Status'));?></th>
|
||||
<th><?php p($l->t('Actions'));?></th>
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
<th><?php p($l->t('Means of payment'));?></th>
|
||||
<th>Devis associé</th>
|
||||
<th>Lieu</th>
|
||||
<th><?php p($l->t('Articles'));?></th>
|
||||
<th><?php p($l->t('Status'));?></th>
|
||||
<th><?php p($l->t('Actions'));?></th>
|
||||
</tr>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user