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#statistique', 'url' => '/statistique', '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'],
|
||||
|
||||
@ -151,6 +151,6 @@ return [
|
||||
['name' => 'page#getUsersNotLinkedToThanato','url' => '/user/getUsersNotLinkedToThanato', 'verb' => 'PROPFIND'],
|
||||
|
||||
//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 OCA\Gestion\Service\NavigationService;
|
||||
use OCA\Gestion\Service\OrderService;
|
||||
use OCA\Gestion\Service\Order\OrderService;
|
||||
defined("TAB1") or define("TAB1", "\t");
|
||||
|
||||
use OCP\IGroupManager;
|
||||
@ -37,7 +37,7 @@ class OrderController extends Controller {
|
||||
private $user;
|
||||
private $groups = [];
|
||||
|
||||
/** @var \OCA\Gestion\Service\OrderService */
|
||||
/** @var OrderService */
|
||||
private $orderService;
|
||||
|
||||
/** @var \OCA\Gestion\Service\NavigationService */
|
||||
@ -102,7 +102,7 @@ class OrderController extends Controller {
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
public function getOrders() {
|
||||
public function getOrdersWithDetails() {
|
||||
$orders = $this->orderService->getOrdersWithDetailsAsArray();
|
||||
return json_encode($orders);
|
||||
}
|
||||
|
||||
@ -160,8 +160,8 @@ class OrderBdd {
|
||||
orders.fk_lieu_id,
|
||||
orders.fk_client_id,
|
||||
orders.fk_thanato_id,
|
||||
orders.fk_orders_status_key,
|
||||
thanto.id as thanato_id,
|
||||
orders.fk_order_status_key,
|
||||
thanato.id as thanato_id,
|
||||
thanato.nom as thanato_nom,
|
||||
thanato.prenom as thanato_prenom,
|
||||
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 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
|
||||
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;
|
||||
}else{
|
||||
var parentElement = el.target.parentElement
|
||||
|
||||
@ -142,7 +142,7 @@ export class Defunt {
|
||||
);
|
||||
|
||||
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;
|
||||
}else{
|
||||
var parentElement = el.target.parentElement
|
||||
|
||||
@ -1,29 +1,62 @@
|
||||
import { showError } from "@nextcloud/dialogs";
|
||||
import { baseUrl, checkSelectPurJs, LoadDT, showDone } from "../modules/mainFunction.mjs";
|
||||
import { updateDB } from "../modules/ajaxRequest.mjs";
|
||||
|
||||
import { OrderStatusOrdered,OrderStatusNew,OrderStatusCanceled } from "../constants/orderConstant";
|
||||
export class Order {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param myresp instantiate client group object
|
||||
* @param myresp instantiate order object
|
||||
*/
|
||||
constructor(myresp) {
|
||||
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() {
|
||||
let clientGroupRow = [
|
||||
let orderRow = [
|
||||
'<div>' + this.id + '</div>',
|
||||
'<div class="editable" data-table="client_group" data-column="client_group_name" data-id="' + this.id + '">' + this.clientGroupName + '</div>',
|
||||
'<div data-modifier="clientGroup" data-id=' + this.id + ' data-table="client_group" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></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>' + 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) {
|
||||
var oReq = new XMLHttpRequest();
|
||||
oReq.open('PROPFIND', baseUrl + '/getClientGroups', true);
|
||||
oReq.open('PROPFIND', baseUrl + '/order/list', true);
|
||||
oReq.setRequestHeader("Content-Type", "application/json");
|
||||
oReq.onload = function(e){
|
||||
if (this.status == 200) {
|
||||
LoadDT(orderDatatable, JSON.parse(this.response), ClientGroup);
|
||||
LoadDT(orderDatatable, JSON.parse(this.response), Order);
|
||||
}else{
|
||||
showError(this.response);
|
||||
}
|
||||
@ -48,97 +81,13 @@ export class Order {
|
||||
*
|
||||
* @param {*} dt
|
||||
*/
|
||||
static newProduct(dt) {
|
||||
static createDefaultOrder(dt) {
|
||||
var oReq = new XMLHttpRequest();
|
||||
oReq.open('POST', baseUrl + '/produit/insert', true);
|
||||
oReq.open('POST', baseUrl + '/order/createDefaultOrder', true);
|
||||
oReq.onload = function(e){
|
||||
if (this.status == 200) {
|
||||
showDone()
|
||||
Produit.loadProduitDT(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);
|
||||
Order.loadOrderDatatable(dt);
|
||||
}else{
|
||||
showError(this.response);
|
||||
}
|
||||
|
||||
@ -142,7 +142,7 @@ export class Thanatopracteur {
|
||||
);
|
||||
|
||||
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;
|
||||
}else{
|
||||
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