Browse Source

Selected Actions Ok mais pas update des articles

Kongzibapt 3 years ago
parent
commit
92eb17769f
3 changed files with 79 additions and 5 deletions
  1. 1
    1
      src/js/Components/ArticleDetails.js
  2. 52
    1
      src/js/Components/Selected.js
  3. 26
    3
      src/js/Views/Stock.js

+ 1
- 1
src/js/Components/ArticleDetails.js View File

@@ -90,7 +90,7 @@ class ArticleDetails extends React.Component {
90 90
             if (this.state.selected){
91 91
                 this.props.select(this.props.id)
92 92
             } else {
93
-                this.props.deselect()
93
+                this.props.deselect(this.props.id)
94 94
             }
95 95
         })   
96 96
         }

+ 52
- 1
src/js/Components/Selected.js View File

@@ -4,16 +4,67 @@ import { Icon} from '@iconify/react';
4 4
 import minusIcon from '@iconify/icons-fa-solid/minus';
5 5
 import plusIcon from '@iconify/icons-fa-solid/plus';
6 6
 import { Tooltip, Zoom } from '@material-ui/core';
7
+import axios from 'axios';
7 8
 
8 9
 class Selected extends Component {
9 10
 
10 11
     constructor(props){
11 12
         super(props)
12 13
         this.state = {
14
+            redirect:false
15
+        }
16
+    }
17
+
18
+    minusQuantitySelected = () => {
19
+        this.updateArticle(-1)
20
+    }
21
+
22
+    plusQuantitySelected = () => {
23
+        this.updateArticle(1)
24
+    }
25
+
26
+    updateArticle = (value) => {
27
+
28
+        for (let i = 0 ; i < this.props.selectedArticles.length ; i++) {
29
+
30
+            axios.put(`https://etud.insa-toulouse.fr/~proximo/v2/api/articles/${this.props.selectedArticles[i].id}`,
31
+            {
32
+                'name':this.props.selectedArticles[i].name,
33
+                'description':this.props.selectedArticles[i].description,
34
+                'quantity':this.props.selectedArticles[i].quantity+value,
35
+                'price':this.props.selectedArticles[i].price,
36
+                'code':this.props.selectedArticles[i].code,
37
+                'category_id':this.props.selectedArticles[i].category.id
38
+            }
39
+            )
40
+            .then(res => {
41
+                console.log(res.data)
42
+            })
43
+            .catch(error => {
44
+                console.log(error.response)
45
+            })
46
+        
47
+        }
48
+        
49
+
50
+    }
51
+
52
+    deleteSelectedArticles = () => {
53
+
54
+        for (let i = 0 ; i < this.props.selectedArticles.length ; i++) {
55
+
56
+            axios.delete(`https://etud.insa-toulouse.fr/~proximo/v2/api/articles/${this.props.selectedArticles[i].id}`)
57
+            .then(res => {
58
+                    console.log(res.data)
59
+            })
60
+            .catch(error => {
61
+                console.log(error.response)
62
+            })
13 63
 
14 64
         }
15 65
     }
16 66
 
67
+
17 68
     render() {
18 69
         return (
19 70
             <div id="selectedBox">
@@ -33,7 +84,7 @@ class Selected extends Component {
33 84
                         </Tooltip>
34 85
                         <Tooltip title="Supprimer" TransitionComponent={Zoom} aria-label="Supprimer">
35 86
                             <div>
36
-                            <Icon icon={plusIcon} style={{transform : 'rotate(-45deg)', color: '#ffffff', fontSize: '2vw',cursor:'pointer',margin:'0 1vw 0 1vw'}} />
87
+                            <Icon onClick={this.deleteSelectedArticles} icon={plusIcon} style={{transform : 'rotate(-45deg)', color: '#ffffff', fontSize: '2vw',cursor:'pointer',margin:'0 1vw 0 1vw'}} />
37 88
                             </div>
38 89
                         </Tooltip>
39 90
                     </div>

+ 26
- 3
src/js/Views/Stock.js View File

@@ -46,18 +46,39 @@ export default class Stock extends React.Component {
46 46
     this.getArticles()
47 47
   }
48 48
 
49
+
49 50
   select = (id) => {
50 51
     console.log(id)
51 52
     this.setState({counter:this.state.counter+1},()=>{
52 53
       console.log(this.state.counter)
54
+      this.state.selectedArticles.push(this.getArticleById(id))
55
+      console.log(this.state.selectedArticles)
53 56
     })
54
-
55 57
   }
56 58
 
57
-  deselect = () => {
59
+    // RECHERCHE DE L'ARTICLE
60
+    getArticleById(id) {
61
+      let i=0;
62
+      let current = this.state.articles[i];
63
+      let trouve = current.id === id ? true : false;
64
+      while(!trouve) {
65
+        i++;
66
+        current = this.state.articles[i];
67
+        if (current.id === id) {
68
+          trouve = !trouve;
69
+        }
70
+      }
71
+      return(current);
72
+    }
73
+
74
+  deselect = (id) => {
58 75
 
59 76
     this.setState({counter:this.state.counter-1},()=>{
60 77
       console.log(this.state.counter)
78
+      this.setState({selectedArticles: this.state.selectedArticles.filter((item) => item !== this.getArticleById(id))},()=>{
79
+        console.log(this.state.selectedArticles)
80
+      })
81
+      
61 82
     })
62 83
 
63 84
   }
@@ -241,7 +262,9 @@ export default class Stock extends React.Component {
241 262
     }
242 263
   }
243 264
 
265
+
244 266
   render() {
267
+    console.log("rendered");
245 268
     if (!sessionStorage.getItem('token')){
246 269
       return (<div id="errorRouteBlock"><div id="errorRouteTitle">ERREUR </div><br/><div id="errorRouteTxt">Vous n'êtes pas connecté</div><br/><Link id="link" to='/'>Retourner à l'Accueil</Link></div>)
247 270
     } else {
@@ -257,7 +280,7 @@ export default class Stock extends React.Component {
257 280
                 <Sort handleChangeSortType={this.handleChangeSortType} handleChangeSortOrder={this.handleChangeSortOrder} orderIsHidden={this.state.orderIsHidden} lowToHigh={this.state.lowToHigh}/>
258 281
               </div>
259 282
               <div id="selectedBlock">
260
-                <Selected counter={this.state.counter}/>
283
+                <Selected selectedArticles={this.state.selectedArticles} counter={this.state.counter}/>
261 284
               </div>
262 285
               <div id="articleBlock">
263 286
               {this.state.articles && this.state.articles[0] ? 

Loading…
Cancel
Save