diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx
index 08789e2..0ce41c8 100644
--- a/app/(tabs)/_layout.tsx
+++ b/app/(tabs)/_layout.tsx
@@ -49,7 +49,7 @@ export default function TabLayout() {
name="GestionOuvrier"
component={GestionOuvrier}
options={{
- title: 'Bonjour',
+ title: 'Ouvriers',
tabBarIcon: ({ color }) => ,
}}
/>
diff --git a/app/(tabs)/gestionnaire_ressource.tsx b/app/(tabs)/gestionnaire_ressource.tsx
index 0cef0f1..6f19aef 100644
--- a/app/(tabs)/gestionnaire_ressource.tsx
+++ b/app/(tabs)/gestionnaire_ressource.tsx
@@ -10,11 +10,11 @@ import { FlatList, Image, StyleSheet, Text, View } from "react-native";
import { Ressources } from "../../class/class";
import { getRessources } from "../../services/ressourcesService";
import SelectChantier from "@/components/selectChantier";
+import { useRessources } from "../ContextRessource";
export default function GestionnaireRessource() {
- const { nom, prenom } = useLocalSearchParams();
const [search, setSearch] = useState("");
- const [ressource, setRessources] = useState([]);
+ const {ressources, setRessources} = useRessources();
const [filterType, setFilterType] = useState("tout");
const [showFilterMenu, setShowFilterMenu] = useState(false);
const router = useRouter();
@@ -31,7 +31,7 @@ export default function GestionnaireRessource() {
loadData();
}, []);
- const filteredData = ressource.filter((r) => {
+ const filteredData = ressources.filter((r) => {
const matchName = r.name.toLowerCase().includes(search.toLowerCase());
const matchType = filterType === "tout" || r.type === filterType;
return matchName && matchType;
@@ -43,7 +43,6 @@ export default function GestionnaireRessource() {
- {item.id}
Nom : {item.name}
Type : {item.type}
Quantité totale : {item.quantity}
@@ -75,9 +74,11 @@ export default function GestionnaireRessource() {
lvl={1}
shadow={true}
style={{ padding: 10, borderRadius: 8, marginBottom: 10 }}
- onPress={() => {
+ onPress={async () => {
setFilterType(t);
setShowFilterMenu(false);
+ const updateRessource = await getRessources();
+ setRessources(updateRessource)
}}
>
{t}
diff --git a/class/class.tsx b/class/class.tsx
index 23fa415..a514cf8 100644
--- a/class/class.tsx
+++ b/class/class.tsx
@@ -24,7 +24,7 @@ export type User = {
};
export type Ressources = {
- id: number;
+ id: string;
name: string;
type: string; //"machine","outil","ouvrier"
Image: string;
diff --git a/components/add/addRessource.tsx b/components/add/addRessource.tsx
index 5db2a85..7962432 100644
--- a/components/add/addRessource.tsx
+++ b/components/add/addRessource.tsx
@@ -9,7 +9,7 @@ import { StyleSheet, ScrollView, Button, TextInput, Text, View, Modal } from 're
import { useChantier } from '@/app/ContextChantier';
import { useRessources } from '@/app/ContextRessource';
import { useUser } from '@/app/ContextUser';
-import { getRessources, getUsers, addChantier } from '@/services/ressourcesService';
+import { getRessources, getUsers, addChantier , addRessources} from '@/services/ressourcesService';
import { Chantier, Ressources, User } from '@/class/class';
import { ThemedText } from '@/components/theme/themed-text';
import { ThemedButton } from '@/components/theme/themed-button';
@@ -58,20 +58,40 @@ export default function AddRessource({ressourceType, ...otherProps }: Props) {
}
async function onConfirm(): Promise {
- //TODO
- //await changeChantierStatus(chantier.id,tempStatus)
- //Il faut changer le UX
- //setChantier({...chantier,etat: tempStatus})
if(isValidRessource()){
+ try{
+ setLoading(true);
+ const nouvelleRessource : Ressources = {
+ id : '',
+ name: nom,
+ type : ressourceType,
+ quantity : parseInt(quantite),
+ available_quantity : parseInt(quantite),
+ Image : "",
+ allocation : [],
+ };
+ const id = await addRessources(nouvelleRessource);
+
+ if(id){
+ setRessources([...ressources,{...nouvelleRessource, id}]);
+ setOpenConfirmation(false);
+ setNom('');
+ setQuantite('');
+ setQuantiteDisponible('');
+ }
+ }catch(error){
+ }finally{
setOpenConfirmation(false);
+ setLoading(false);
}
}
+ }
function onCancel(): void {
setOpenConfirmation(false);
}
function isValidRessource():Boolean{
- return nom!= "" && quantite != "" && quantiteDisponible != ""
+ return nom!= "" && quantite != ""
}
const renderValidationScreen = () => {
@@ -98,8 +118,7 @@ export default function AddRessource({ressourceType, ...otherProps }: Props) {
)
-}
-
+ }
const renderInut = (name : string, preFill : string, value : string, setValue : ((text:string) => void),numeric:boolean) => {
return (
diff --git a/components/anomaly.tsx b/components/anomaly.tsx
index 7eeee95..e94187e 100644
--- a/components/anomaly.tsx
+++ b/components/anomaly.tsx
@@ -66,7 +66,7 @@ export default function Anomaly({data,style}: Props) {
{data.chantier.anomalies.length > 0 ? (
data.chantier.anomalies.map((anomaly, index) => (
- • {anomaly}
+ • {anomaly}
handleDelete(anomaly)} style={styles.deleteButton}>
✕
@@ -99,7 +99,7 @@ const styles = StyleSheet.create({
anomaliesContainer: {
padding: 5,
borderRadius: 10,
- height: 150,
+ //height: 150,
},
anomaliesTitle: {
fontSize: 16,
@@ -107,10 +107,16 @@ const styles = StyleSheet.create({
marginBottom: 8,
},
anomalyItem: {
+ flexDirection: "row",
+ alignItems: "flex-start",
padding: 8,
marginBottom: 5,
borderRadius: 8,
},
+ anomalyText: {
+ flex: 1,
+ marginLeft: 5,
+ },
noAnomaly: {
fontStyle: "italic",
opacity: 0.7,
@@ -133,6 +139,7 @@ const styles = StyleSheet.create({
//add anomaly styles
addContainer: {
marginTop: 10,
+ marginLeft: 2,
flexDirection: "row",
alignItems: "center"
},
@@ -144,6 +151,7 @@ const styles = StyleSheet.create({
marginRight: 8,
},
addButton: {
+ color: "white",
paddingVertical: 8,
paddingHorizontal: 12,
borderRadius: 8,
diff --git a/services/ressourcesService.ts b/services/ressourcesService.ts
index 5556674..daae994 100644
--- a/services/ressourcesService.ts
+++ b/services/ressourcesService.ts
@@ -37,6 +37,19 @@ export async function getRessources(): Promise {
return [];
}
}
+
+//ADD RESSOURCES
+export async function addRessources(ressourceData: Omit): Promise {
+ try {
+ const colRef = collection(db, "ressources");
+ const ressourcesRef = await addDoc(colRef, ressourceData);
+ console.log(`Ressource ajoutée avec ID: ${ressourcesRef.id}`);
+ return ressourcesRef.id;
+ } catch (err) {
+ console.error("Error adding:", err);
+ return null;
+ }
+}
///////////////////////////////////CHANTIER/////////////////////////////////
export async function getChantiers(): Promise {
const snap = await getDocs(collection(db, "chantier"));