This commit is contained in:
Rochas
2025-12-13 17:03:48 +01:00
6 changed files with 104 additions and 49 deletions

View File

@@ -2,7 +2,6 @@ import ChantierSummary from '@/components/chantierSummary';
import SelectChantier from '@/components/selectChantier';
import SetStatus from '@/components/setStatus';
import { ThemedView } from '@/components/theme/themed-view';
import React, { useEffect, useState } from 'react';
import { StyleSheet, ScrollView, Button, TextInput, Text, View, Modal } from 'react-native';
@@ -19,10 +18,10 @@ import DateTimePicker, { DateTimePickerEvent } from '@react-native-community/dat
import Constants from 'expo-constants'; //pour connaître la taille de la barre menu de l'OS en haut
import SelectChafChantier from '@/components/selectChefChantier';
import SelectRessource from '@/components/selectRessource';
import { db } from '@/firebase_config';
import { doc } from 'firebase/firestore';
type RessourcesQte = [Ressources, number];
type RessourcesQte = [Ressources, number];
//Uniquement accessible par le RESPONSSABLE du chantier
//Pour créer ou modifier un chantier
@@ -41,8 +40,8 @@ export default function AddChantier() {
const [adresse, setAdresse] = useState('');
const [duree, setDuree] = useState('');
const [contact, setContact] = useState('');
const [machine, setMachines] = useState<RessourcesQte[]>();
const [ouvrier, setOuvier] = useState<RessourcesQte[]>();
const [machines, setMachines] = useState<RessourcesQte[]>();
const [ouvriers, setOuviers] = useState<RessourcesQte[]>();
const [showDateSelect,setSowDateSelect] = useState(false);
const [openConfirmation,setOpenConfirmation] = useState(false);
@@ -50,9 +49,6 @@ export default function AddChantier() {
const [userSelect, setUserSelect] = useState<string[]>([]);
const [ressourcesSelect, setRessourcesSelect] = useState<string[]>([]);
async function handleAddChantier() {
setLoading(true);
setOpenConfirmation(true);
@@ -65,16 +61,42 @@ export default function AddChantier() {
setDate(selectedDate);
}
};
async function onConfirm(): Promise<void> {
//TODO
//await changeChantierStatus(chantier.id,tempStatus)
//Il faut changer le UX
//setChantier({...chantier,etat: tempStatus})
if(isValidChantier()){
setOpenConfirmation(false);
if (!isValidChantier() || !chefChantier) return;
const chantierDate = new Date(date);
chantierDate.setHours(morning ? 0 : 12, 0, 0, 0);
//CREATE NEW TYPE CHANTIER FOR FIRESTORE
const chantierFirestore = {
adresse,
etat: "En cours",
contact,
chef: doc(db, "user", chefChantier.id),
equipe: [],
/*materiel: materiels
? [doc(db, "ressources", String(materiels.id))]
: [],*/
vehicules: machines?.map(e =>
doc(db, "ressources", String(e[0].id))
) || [],
anomalies: [],
dateDep: chantierDate,
tempsEst: parseInt(duree) || 1,
latitude: 0, //TODO
longitude: 0, //TODO
};
const id = await addChantier(chantierFirestore as any);
if (id) {
//console.log("Chantier created with ID:", id);
setChantier({ ...chantierFirestore,
id,
chef: chefChantier,
equipe: [],
materiel: [],//materiels ? [materiels] : [],
vehicules: [], //data.map(([ressource]) => ressource)|| []
} as Chantier);
setOpenConfirmation(false);
}
}
}
function onCancel(): void {
setOpenConfirmation(false);
@@ -185,7 +207,7 @@ export default function AddChantier() {
</View>
<View style = {styles.inputLine}>
<ThemedText style = {styles.inputName}>Ouvriers:</ThemedText>
<SelectRessource style={styles.input} sendRessources={setOuvier} ressourceType="Ouvrier"/>
<SelectRessource style={styles.input} sendRessources={setOuviers} ressourceType="Ouvrier"/>
</View>

View File

@@ -61,7 +61,6 @@ export default function RootLayout() {
<ChantierProvider>
<RessourcesProvider>
<ThemeProvider value={colorScheme === "dark" ? DarkTheme : DefaultTheme}>
//faut que le login soit ici
<Stack>
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
<Stack.Screen name="selectChantier" options={{ headerShown: false }}/>