wip frontend part of commandes

This commit is contained in:
Tiavina 2025-02-05 15:39:22 +03:00
parent 3960e2a642
commit ff724d60b1
10 changed files with 72 additions and 108 deletions

View File

@ -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'],
]
];

View File

@ -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);
}

View File

@ -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,

View File

@ -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;

View File

@ -0,0 +1,3 @@
export const OrderStatusOrdered = "ORDERED";
export const OrderStatusNew = "NEW";
export const OrderStatusCanceled = "CANCELED";

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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
View 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));
});