From 528371b95c7c4c6fdc56b247723f3c46f1e99802 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Jul 2024 12:49:10 +0200 Subject: [PATCH] fix(livraison): fix --- .../[modalites_livraisonID]/page.tsx | 113 +++--------------- .../[donsID]/modalites-livraison/page.tsx | 32 +++-- migration/13-Table-Modalites-Livraison.sql | 14 +-- 3 files changed, 45 insertions(+), 114 deletions(-) diff --git a/app/dons/[donsID]/modalites-livraison/[modalites_livraisonID]/page.tsx b/app/dons/[donsID]/modalites-livraison/[modalites_livraisonID]/page.tsx index 0d1d0d47..c0c88527 100644 --- a/app/dons/[donsID]/modalites-livraison/[modalites_livraisonID]/page.tsx +++ b/app/dons/[donsID]/modalites-livraison/[modalites_livraisonID]/page.tsx @@ -38,12 +38,12 @@ interface Modalite_livraisonID { prenom_contact_livraison: string telephone_contact_livraison: string mail_contact_livraison: string - nombre_palettes_prevu: number - nombre_palettes_consignees_prevu: number - nombre_cartons_prevu: number - poids_prevu_kg: number + nombre_palettes_prevu: string + nombre_palettes_consignees_prevu: string + nombre_cartons_prevu: string + poids_prevu_kg: string produits_sur_palettes: string - temperature_conserv_produits: number + temperature_conserv_produits: string commentaires: string pieces_associees: string libelle_type_livraison: string @@ -196,48 +196,6 @@ function Modalites_livraisonPage({ : new Date().toISOString().split('T')[0] } - const handleHeureChange = (event: React.ChangeEvent) => { - if ( - event.target.value[event.target.value.length - 1] === ':' || - !isNaN(parseInt(event.target.value[event.target.value.length - 1])) - ) { - if (parseInt(event.target.value.slice(0, 2)) > 23) { - event.target.value = '23' + event.target.value.slice(2) - } - if (parseInt(event.target.value.slice(3, 5)) > 59) { - event.target.value = - event.target.value.slice(0, 3) + - '59' + - event.target.value.slice(5) - } - if (parseInt(event.target.value.slice(6, 8)) > 59) { - event.target.value = - event.target.value.slice(0, 6) + - '59' + - event.target.value.slice(8) - } - if ( - event.target.value.length === 3 && - event.target.value[2] !== ':' - ) { - event.target.value = - event.target.value.slice(0, 2) + ':' + event.target.value[2] - } - if (event.target.value.length === 5) { - event.target.value = event.target.value + ':00' - } - if (event.target.value.length === 7) { - event.target.value = event.target.value.slice(0, 5) - } - modalite_livraison[0].heure_prevue_livraison = event.target.value - } else { - event.target.value = event.target.value.slice( - 0, - event.target.value.length - 1, - ) - } - } - const handleFileChange: React.ChangeEventHandler< HTMLInputElement > = event => { @@ -267,9 +225,6 @@ function Modalites_livraisonPage({ 'adresse_livraison', 'telephone_contact_livraison', 'mail_contact_livraison', - 'nombre_palettes_prevu', - 'nombre_palettes_consignees_prevu', - 'nombre_cartons_prevu', ] keysToCheck.forEach(key => { @@ -301,12 +256,6 @@ function Modalites_livraisonPage({ if ( !modifiedModalite_livraison.adresse_enlevement || modifiedModalite_livraison.adresse_enlevement.trim() === '' || - !modifiedModalite_livraison.nombre_palettes_prevu || - modifiedModalite_livraison.nombre_palettes_prevu === 0 || - !modifiedModalite_livraison.nombre_palettes_consignees_prevu || - modifiedModalite_livraison.nombre_palettes_consignees_prevu === 0 || - !modifiedModalite_livraison.nombre_cartons_prevu || - modifiedModalite_livraison.nombre_cartons_prevu === 0 || !( modifiedModalite_livraison.telephone_contact_enlevement || modifiedModalite_livraison.mail_contact_enlevement @@ -602,38 +551,14 @@ function Modalites_livraisonPage({

Heure prévue livraison :

- {modify && - session?.user.role === - ('AD' || 'AP' || 'EN' || 'SU') ? ( - - ) : ( -

- {modalite_livraison[0] - .heure_prevue_livraison == null - ? '/' - : modalite_livraison[0] - .heure_prevue_livraison} -

- )} + +

+ {modalite_livraison[0] + .heure_prevue_livraison == (null || '') + ? '/' + : modalite_livraison[0] + .heure_prevue_livraison} +

@@ -1129,8 +1054,7 @@ function Modalites_livraisonPage({ type='number' name='nombre_palettes_prevu' value={ - modifiedModalite_livraison.nombre_palettes_prevu ?? - '' + modifiedModalite_livraison.nombre_palettes_prevu } placeholder={ modalite_livraison[0] @@ -1156,7 +1080,8 @@ function Modalites_livraisonPage({ ) : (

{modalite_livraison[0] - .nombre_palettes_prevu == null + .nombre_palettes_prevu == + (null || '') ? '/' : modalite_livraison[0] .nombre_palettes_prevu} @@ -1179,8 +1104,7 @@ function Modalites_livraisonPage({ type='number' name='nombre_palettes_consignees_prevu' value={ - modifiedModalite_livraison.nombre_palettes_consignees_prevu ?? - '' + modifiedModalite_livraison.nombre_palettes_consignees_prevu } placeholder={ modalite_livraison[0] @@ -1230,8 +1154,7 @@ function Modalites_livraisonPage({ type='number' name='nombre_cartons_prevu' value={ - modifiedModalite_livraison.nombre_cartons_prevu ?? - '' + modifiedModalite_livraison.nombre_cartons_prevu } placeholder={ modalite_livraison[0] diff --git a/app/dons/[donsID]/modalites-livraison/page.tsx b/app/dons/[donsID]/modalites-livraison/page.tsx index 151e0eea..d0efe872 100644 --- a/app/dons/[donsID]/modalites-livraison/page.tsx +++ b/app/dons/[donsID]/modalites-livraison/page.tsx @@ -27,12 +27,12 @@ export interface ModalitesLivraison { prenom_contact_livraison: string telephone_contact_livraison: string mail_contact_livraison: string - nombre_palettes_prevu: number - nombre_palettes_consignees_prevu: number - nombre_cartons_prevu: number - poids_prevu_kg: number + nombre_palettes_prevu: string + nombre_palettes_consignees_prevu: string + nombre_cartons_prevu: string + poids_prevu_kg: string produits_sur_palettes: string - temperature_conserv_produits: number + temperature_conserv_produits: string commentaires: string pieces_associees: Blob } @@ -68,7 +68,7 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { const [codeDon] = useState(params.donsID) const [codeTypeLivraison, setCodeTypeLivraison] = useState('') const [datePrevueLivraison, setDatePrevueLivraison] = useState(new Date()) - const [heurePrevueLivraison, setHeurePrevueLivraison] = useState('') + const [heurePrevueLivraison, setHeurePrevueLivraison] = useState('12:00:00') const [adresseEnlevement, setAdresseEnlevement] = useState('') const [civiliteContactEnlevement, setCiviliteContactEnlevement] = useState('') @@ -309,7 +309,6 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { id: 'heure_prevue_livraison', type: 'input', value: heurePrevueLivraison, - required: true, maxLength: 8, onInputChange: handleHeurePrevueLivraison, placeholder: 'Exemple: 14:00', @@ -320,7 +319,6 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { placeholder: 'Exemple: 1 rue de la Paix, 75000 Paris', value: adresseEnlevement, maxLength: 255, - required: true, onInputChange: handleAdresseEnlevement, }, { @@ -337,7 +335,7 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { placeholder: 'Exemple: Dupont', maxLength: 20, onInputChange: handleNomContactEnlevement, - }, // a voir si select + }, { id: 'prenom_contact_enlevement', type: 'input', @@ -421,7 +419,7 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { type: 'number', value: nombrePalettesPrevu, placeholder: 'Exemple: 10', - required: true, + maxLength: 10, onInputChange: handleNombrePalettesPrevu, }, { @@ -429,7 +427,7 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { type: 'number', value: nombrePalettesConsigneesPrevu, placeholder: 'Exemple: 7', - required: true, + maxLength: 10, onInputChange: handleNombrePalettesConsigneesPrevu, }, { @@ -437,7 +435,7 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { type: 'number', value: nombreCartonsPrevu, placeholder: 'Exemple: 34', - required: true, + maxLength: 10, onInputChange: handleNombreCartonsPrevu, }, { @@ -476,6 +474,15 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { if (fields[FindIndex('poids_prevu_kg')].value === '') { fields[FindIndex('poids_prevu_kg')].value = null } + if (fields[FindIndex('nombre_cartons_prevu')].value === '') { + fields[FindIndex('nombre_cartons_prevu')].value = null + } + if (fields[FindIndex('nombre_palettes_consignees_prevu')].value === '') { + fields[FindIndex('nombre_palettes_consignees_prevu')].value = null + } + if (fields[FindIndex('nombre_palettes_prevu')].value === '') { + fields[FindIndex('nombre_palettes_prevu')].value = null + } if (fields[FindIndex('telephone_contact_livraison')].value !== '') { fields[FindIndex('mail_contact_livraison')].required = false } else if (fields[FindIndex('mail_contact_livraison')].value !== '') { @@ -533,6 +540,7 @@ function ModalitesLivraisonPage({ params }: { params: { donsID: string } }) { type: 'number', placeholder: 'Exemple: 27', value: temperatureConservProduits, + maxLength: 3, onInputChange: handleTemperatureConservProduits, }) diff --git a/migration/13-Table-Modalites-Livraison.sql b/migration/13-Table-Modalites-Livraison.sql index 96b48bc5..60eece05 100644 --- a/migration/13-Table-Modalites-Livraison.sql +++ b/migration/13-Table-Modalites-Livraison.sql @@ -3,8 +3,8 @@ CREATE TABLE ModalitesLivraison ( code_Don INT NOT NULL, code_type_livraison CHAR(3) NOT NULL, date_prevue_livraison DATE NOT NULL, - heure_prevue_livraison TIME NOT NULL, - adresse_enlevement VARCHAR(255) NOT NULL, + heure_prevue_livraison TIME, + adresse_enlevement VARCHAR(255), civilite_contact_enlevement VARCHAR(3), nom_contact_enlevement VARCHAR(20), prenom_contact_enlevement VARCHAR(20), @@ -17,12 +17,12 @@ CREATE TABLE ModalitesLivraison ( prenom_contact_livraison VARCHAR(20), telephone_contact_livraison VARCHAR(12), mail_contact_livraison VARCHAR(255), - nombre_palettes_prevu INT, - nombre_palettes_consignees_prevu INT, - nombre_cartons_prevu INT, - poids_prevu_kg INT, + nombre_palettes_prevu VARCHAR(10), + nombre_palettes_consignees_prevu VARCHAR(10), + nombre_cartons_prevu VARCHAR(10), + poids_prevu_kg VARCHAR(10), produits_sur_palettes ENUM('O', 'N'), - temperature_conserv_produits INT, + temperature_conserv_produits VARCHAR(3), commentaires VARCHAR(200), pieces_associees VARCHAR(200), PRIMARY KEY (numero_livraison),