wip frontend part of commandes
This commit is contained in:
parent
3960e2a642
commit
ff724d60b1
@ -15,7 +15,7 @@ return [
|
|||||||
['name' => 'page#isConfig', 'url' => '/isconfig', 'verb' => 'GET'],
|
['name' => 'page#isConfig', 'url' => '/isconfig', 'verb' => 'GET'],
|
||||||
['name' => 'page#statistique', 'url' => '/statistique', 'verb' => 'GET'],
|
['name' => 'page#statistique', 'url' => '/statistique', 'verb' => 'GET'],
|
||||||
['name' => 'page#legalnotice', 'url' => '/legalnotice', 'verb' => 'GET'],
|
['name' => 'page#legalnotice', 'url' => '/legalnotice', 'verb' => 'GET'],
|
||||||
['name' => 'page#orders', 'url' => '/orders', 'verb' => 'GET'],
|
['name' => 'order#orders', 'url' => '/orders', 'verb' => 'GET'],
|
||||||
|
|
||||||
['name' => 'page#france', 'url' => '/legalnotice/france', 'verb' => 'GET'],
|
['name' => 'page#france', 'url' => '/legalnotice/france', 'verb' => 'GET'],
|
||||||
|
|
||||||
@ -151,6 +151,6 @@ return [
|
|||||||
['name' => 'page#getUsersNotLinkedToThanato','url' => '/user/getUsersNotLinkedToThanato', 'verb' => 'PROPFIND'],
|
['name' => 'page#getUsersNotLinkedToThanato','url' => '/user/getUsersNotLinkedToThanato', 'verb' => 'PROPFIND'],
|
||||||
|
|
||||||
//order
|
//order
|
||||||
['name' => 'page#getOrders','url' => '/order/list', 'verb' => 'GET'],
|
['name' => 'order#getOrdersWithDetails','url' => '/order/list', 'verb' => 'GET'],
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
@ -3,7 +3,7 @@ namespace OCA\Gestion\Controller;
|
|||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use OCA\Gestion\Service\NavigationService;
|
use OCA\Gestion\Service\NavigationService;
|
||||||
use OCA\Gestion\Service\OrderService;
|
use OCA\Gestion\Service\Order\OrderService;
|
||||||
defined("TAB1") or define("TAB1", "\t");
|
defined("TAB1") or define("TAB1", "\t");
|
||||||
|
|
||||||
use OCP\IGroupManager;
|
use OCP\IGroupManager;
|
||||||
@ -37,7 +37,7 @@ class OrderController extends Controller {
|
|||||||
private $user;
|
private $user;
|
||||||
private $groups = [];
|
private $groups = [];
|
||||||
|
|
||||||
/** @var \OCA\Gestion\Service\OrderService */
|
/** @var OrderService */
|
||||||
private $orderService;
|
private $orderService;
|
||||||
|
|
||||||
/** @var \OCA\Gestion\Service\NavigationService */
|
/** @var \OCA\Gestion\Service\NavigationService */
|
||||||
@ -102,7 +102,7 @@ class OrderController extends Controller {
|
|||||||
* @NoAdminRequired
|
* @NoAdminRequired
|
||||||
* @NoCSRFRequired
|
* @NoCSRFRequired
|
||||||
*/
|
*/
|
||||||
public function getOrders() {
|
public function getOrdersWithDetails() {
|
||||||
$orders = $this->orderService->getOrdersWithDetailsAsArray();
|
$orders = $this->orderService->getOrdersWithDetailsAsArray();
|
||||||
return json_encode($orders);
|
return json_encode($orders);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -160,8 +160,8 @@ class OrderBdd {
|
|||||||
orders.fk_lieu_id,
|
orders.fk_lieu_id,
|
||||||
orders.fk_client_id,
|
orders.fk_client_id,
|
||||||
orders.fk_thanato_id,
|
orders.fk_thanato_id,
|
||||||
orders.fk_orders_status_key,
|
orders.fk_order_status_key,
|
||||||
thanto.id as thanato_id,
|
thanato.id as thanato_id,
|
||||||
thanato.nom as thanato_nom,
|
thanato.nom as thanato_nom,
|
||||||
thanato.prenom as thanato_prenom,
|
thanato.prenom as thanato_prenom,
|
||||||
client.id as client_id,
|
client.id as client_id,
|
||||||
|
|||||||
@ -24,7 +24,7 @@ declare(strict_types=1);
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace OCA\Gestion\Service;
|
namespace OCA\Gestion\Service\Order;
|
||||||
|
|
||||||
use OCA\Gestion\Db\OrderBdd;
|
use OCA\Gestion\Db\OrderBdd;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
|
|||||||
3
gestion/src/js/constants/orderConstant.js
Normal file
3
gestion/src/js/constants/orderConstant.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export const OrderStatusOrdered = "ORDERED";
|
||||||
|
export const OrderStatusNew = "NEW";
|
||||||
|
export const OrderStatusCanceled = "CANCELED";
|
||||||
@ -194,7 +194,7 @@ export class Client {
|
|||||||
);
|
);
|
||||||
|
|
||||||
var parentElement = el.target.parentElement
|
var parentElement = el.target.parentElement
|
||||||
parentElement.innerHTML = el.target.value + " " + el.target.options[el.target.selectedIndex].text;
|
parentElement.innerHTML = el.target.options[el.target.selectedIndex].text;
|
||||||
parentElement.dataset.current = el.target.value;
|
parentElement.dataset.current = el.target.value;
|
||||||
}else{
|
}else{
|
||||||
var parentElement = el.target.parentElement
|
var parentElement = el.target.parentElement
|
||||||
|
|||||||
@ -142,7 +142,7 @@ export class Defunt {
|
|||||||
);
|
);
|
||||||
|
|
||||||
var parentElement = el.target.parentElement
|
var parentElement = el.target.parentElement
|
||||||
parentElement.innerHTML = el.target.value + " " + el.target.options[el.target.selectedIndex].text;
|
parentElement.innerHTML = el.target.options[el.target.selectedIndex].text;
|
||||||
parentElement.dataset.current = el.target.value;
|
parentElement.dataset.current = el.target.value;
|
||||||
}else{
|
}else{
|
||||||
var parentElement = el.target.parentElement
|
var parentElement = el.target.parentElement
|
||||||
|
|||||||
@ -1,29 +1,62 @@
|
|||||||
import { showError } from "@nextcloud/dialogs";
|
import { showError } from "@nextcloud/dialogs";
|
||||||
import { baseUrl, checkSelectPurJs, LoadDT, showDone } from "../modules/mainFunction.mjs";
|
import { baseUrl, checkSelectPurJs, LoadDT, showDone } from "../modules/mainFunction.mjs";
|
||||||
import { updateDB } from "../modules/ajaxRequest.mjs";
|
import { updateDB } from "../modules/ajaxRequest.mjs";
|
||||||
|
import { OrderStatusOrdered,OrderStatusNew,OrderStatusCanceled } from "../constants/orderConstant";
|
||||||
export class Order {
|
export class Order {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param myresp instantiate client group object
|
* @param myresp instantiate order object
|
||||||
*/
|
*/
|
||||||
constructor(myresp) {
|
constructor(myresp) {
|
||||||
this.id = myresp.id;
|
this.id = myresp.id;
|
||||||
this.clientGroupName = ((myresp.client_group_name.length === 0) ? '-' : myresp.client_group_name);
|
this.orderDate = ((myresp.order_date == null || myresp.order_date.length === 0) ? '-' : myresp.order_date);
|
||||||
|
this.orderFullNumber = ((myresp.order_full_number == null || myresp.order_full_number.length === 0) ? '-' : myresp.order_full_number);
|
||||||
|
this.defuntName = ((myresp.defunt_nom == null || myresp.defunt_nom.length === 0) ? '-' : myresp.defunt_nom);
|
||||||
|
this.thanatoName = ((myresp.thanato_nom == null || myresp.thanato_nom.length === 0) ? '-' : myresp.thanato_nom);
|
||||||
|
this.thanatoLastName = ((myresp.thanato_prenom == null || myresp.thanato_prenom.length === 0) ? '-' : myresp.thanato_prenom);
|
||||||
|
this.clientName = ((myresp.client_nom == null || myresp.client_nom.length === 0) ? '-' : myresp.client_nom);
|
||||||
|
this.clientLastName = ((myresp.client_prenom == null || myresp.client_prenom.length === 0) ? '-' : myresp.client_prenom);
|
||||||
|
this.locationName = ((myresp.lieu_nom == null || myresp.lieu_nom.length === 0) ? '-' : myresp.lieu_nom);
|
||||||
|
this.statusLabel = ((myresp.order_status_label == null || myresp.order_status_label.length === 0) ? '-' : myresp.order_status_label);
|
||||||
|
this.defuntId = ((myresp.fk_defunt_id == null || myresp.fk_defunt_id.length === 0) ? '-' : myresp.fk_defunt_id);
|
||||||
|
this.thanatoId = ((myresp.fk_thanato_id == null || myresp.fk_thanato_id.length === 0) ? '-' : myresp.fk_thanato_id);
|
||||||
|
this.clientId = ((myresp.fk_client_id == null || myresp.fk_client_id.length === 0) ? '-' : myresp.fk_client_id);
|
||||||
|
this.locationId = ((myresp.fk_lieu_id == null || myresp.fk_lieu_id.length === 0) ? '-' : myresp.fk_lieu_id);
|
||||||
|
this.statusKey = ((myresp.fk_order_status_key == null || myresp.fk_order_status_key.length === 0) ? '-' : myresp.fk_order_status_key);
|
||||||
|
}
|
||||||
|
|
||||||
|
static getComandStatusCssSytle(orderStatusKey){
|
||||||
|
let style = "display:inline; border-radius: 5px; padding: 8px;";
|
||||||
|
if(orderStatusKey === OrderStatusOrdered){
|
||||||
|
style += " background-color:green !important; color: white";
|
||||||
|
}
|
||||||
|
else if(orderStatusKey === OrderStatusCanceled){
|
||||||
|
style += " background-color:red !important; color: white";
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
style += " background-color:yellow !important";
|
||||||
|
}
|
||||||
|
return style;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get datatable row for a client group
|
* Get datatable row for an order
|
||||||
*/
|
*/
|
||||||
getDTRow() {
|
getDTRow() {
|
||||||
let clientGroupRow = [
|
let orderRow = [
|
||||||
'<div>' + this.id + '</div>',
|
'<div>' + this.id + '</div>',
|
||||||
'<div class="editable" data-table="client_group" data-column="client_group_name" data-id="' + this.id + '">' + this.clientGroupName + '</div>',
|
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.orderDate + ' data-table="orders" data-column="order_date" data-id="' + this.id + '"/>',
|
||||||
'<div data-modifier="clientGroup" data-id=' + this.id + ' data-table="client_group" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div>'
|
'<div>' + this.orderFullNumber + '</div>',
|
||||||
|
'<div class="loadSelect_listdefunt" data-table="orders" data-column="fk_defunt_id" data-id="' + this.id + '" data-current="' + this.defuntId + '">'+ this.defuntName + '</div>',
|
||||||
|
'<div class="loadSelect_listclient" data-table="orders" data-column="fk_client_id" data-id="' + this.id + '" data-current="' + this.clientId + '">'+ this.clientLastName + ' ' +this.clientName + '</div>',
|
||||||
|
'<div class="loadSelect_listthanato" data-table="orders" data-column="fk_thanato_id" data-id="' + this.id + '" data-current="' + this.thanatoId + '">'+ this.thanatoLastName + ' ' + this.thanatoName + '</div>',
|
||||||
|
'<div class="loadSelect_listlieu" data-table="orders" data-column="fk_lieu_id" data-id="' + this.id + '" data-current="' + this.locationId + '">'+ this.locationName + '</div>',
|
||||||
|
'<div style="'+ Order.getComandStatusCssSytle(this.statusKey) +'">' + this.statusLabel + '</div>',
|
||||||
|
'<div data-modifier="orders" data-id=' + this.id + ' data-table="orders" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div>'
|
||||||
];
|
];
|
||||||
|
|
||||||
return clientGroupRow;
|
return orderRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,11 +65,11 @@ export class Order {
|
|||||||
*/
|
*/
|
||||||
static loadOrderDatatable(orderDatatable) {
|
static loadOrderDatatable(orderDatatable) {
|
||||||
var oReq = new XMLHttpRequest();
|
var oReq = new XMLHttpRequest();
|
||||||
oReq.open('PROPFIND', baseUrl + '/getClientGroups', true);
|
oReq.open('PROPFIND', baseUrl + '/order/list', true);
|
||||||
oReq.setRequestHeader("Content-Type", "application/json");
|
oReq.setRequestHeader("Content-Type", "application/json");
|
||||||
oReq.onload = function(e){
|
oReq.onload = function(e){
|
||||||
if (this.status == 200) {
|
if (this.status == 200) {
|
||||||
LoadDT(orderDatatable, JSON.parse(this.response), ClientGroup);
|
LoadDT(orderDatatable, JSON.parse(this.response), Order);
|
||||||
}else{
|
}else{
|
||||||
showError(this.response);
|
showError(this.response);
|
||||||
}
|
}
|
||||||
@ -48,97 +81,13 @@ export class Order {
|
|||||||
*
|
*
|
||||||
* @param {*} dt
|
* @param {*} dt
|
||||||
*/
|
*/
|
||||||
static newProduct(dt) {
|
static createDefaultOrder(dt) {
|
||||||
var oReq = new XMLHttpRequest();
|
var oReq = new XMLHttpRequest();
|
||||||
oReq.open('POST', baseUrl + '/produit/insert', true);
|
oReq.open('POST', baseUrl + '/order/createDefaultOrder', true);
|
||||||
oReq.onload = function(e){
|
oReq.onload = function(e){
|
||||||
if (this.status == 200) {
|
if (this.status == 200) {
|
||||||
showDone()
|
showDone()
|
||||||
Produit.loadProduitDT(dt);
|
Order.loadOrderDatatable(dt);
|
||||||
}else{
|
|
||||||
showError(this.response);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
oReq.send();
|
|
||||||
}
|
|
||||||
|
|
||||||
static getClientGroups(callback){
|
|
||||||
var oReq = new XMLHttpRequest();
|
|
||||||
oReq.open('PROPFIND', baseUrl + '/getClientGroups', true);
|
|
||||||
oReq.setRequestHeader("Content-Type", "application/json");
|
|
||||||
oReq.onload = function(e){
|
|
||||||
if (this.status == 200) {
|
|
||||||
callback(JSON.parse(this.response));
|
|
||||||
}else{
|
|
||||||
showError(this.response);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
oReq.send();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {*} lid
|
|
||||||
*/
|
|
||||||
static loadClientGroupListToSelect(e){
|
|
||||||
ClientGroup.getClientGroups(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 txt = document.createElement("textarea");
|
|
||||||
txt.innerHTML = myresp.client_group_name;
|
|
||||||
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);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {*} dt
|
|
||||||
*/
|
|
||||||
static createDefaultClientGroup(dt) {
|
|
||||||
var oReq = new XMLHttpRequest();
|
|
||||||
oReq.open('POST', baseUrl + '/clientGroup/createDefaultClientGroup', true);
|
|
||||||
oReq.onload = function(e){
|
|
||||||
if (this.status == 200) {
|
|
||||||
showDone()
|
|
||||||
ClientGroup.loadClientGroupDatatable(dt);
|
|
||||||
}else{
|
}else{
|
||||||
showError(this.response);
|
showError(this.response);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,7 +142,7 @@ export class Thanatopracteur {
|
|||||||
);
|
);
|
||||||
|
|
||||||
var parentElement = el.target.parentElement
|
var parentElement = el.target.parentElement
|
||||||
parentElement.innerHTML = el.target.value + " " + el.target.options[el.target.selectedIndex].text;
|
parentElement.innerHTML = el.target.options[el.target.selectedIndex].text;
|
||||||
parentElement.dataset.current = el.target.value;
|
parentElement.dataset.current = el.target.value;
|
||||||
}else{
|
}else{
|
||||||
var parentElement = el.target.parentElement
|
var parentElement = el.target.parentElement
|
||||||
|
|||||||
12
gestion/src/js/order.js
Normal file
12
gestion/src/js/order.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import "@nextcloud/dialogs/dist/index.css";
|
||||||
|
import "datatables.net-dt/css/jquery.dataTables.css";
|
||||||
|
import "../css/mycss.css";
|
||||||
|
|
||||||
|
import DataTable from "datatables.net";
|
||||||
|
import { globalConfiguration, optionDatatable } from "./modules/mainFunction.mjs";
|
||||||
|
import "./listener/main_listener";
|
||||||
|
import { Order } from "./objects/order.mjs";
|
||||||
|
window.addEventListener("DOMContentLoaded", function () {
|
||||||
|
globalConfiguration();
|
||||||
|
Order.loadOrderDatatable(new DataTable(".tabledt",optionDatatable));
|
||||||
|
});
|
||||||
Loading…
x
Reference in New Issue
Block a user