IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] Gestion stock pièces !


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [Forum] Gestion stock pièces !
    Bonjour,

    Je me suis mis en tête, de faire un script : gestion de stock pour mon service maintenance. Donc je crée une page avec le stock du magasin ensuite un formulaire Sortie de pièces et un entrée de pièces.
    Les entrées et sorties fonctionnent le résultat s'affiche Et c'est là ou les problèmes commencent le stock ne se met pas a jour, mon code fait juste une soustraction !
    J'ai essayer pleins de chose mais toujours pas de mise a jour. Je pense que je ne part pas sur la bonne chose.
    Si quelqu'un pouvait me donner une piste de départ ou me dire ce qu'il faut mettre a mon code pour qu'il me fasse la mise a jour en temps réel.

    Merci.

    Voici les bases de mon résonnement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    	<head>
    		<title>Stock SAP</title>
    		<meta http-equiv="content-type" 
    			content="text/html;charset=utf-8" />
    	</head>
    		<body>
    			<?php
    					include("header.php");include("menu.php"); 
    			?>			
    			  <h1>Recherche articles :</h1></br></br><center>
    			<?php
     // on se connect.
    				$host = 'localhost';
    				$user = 'root';
    				$pass = '';
    				$db = 'sap_bdd';
     
    // verification de connexion.			 
    				$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    					mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    // connexion a la table.		 
    				$select = 'SELECT id, total_1, total_2 FROM sout ';
    				$select = 'SELECT id, total_1, total_2,(total_1-total_2) AS calcul FROM soust ';				
    				$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    				$total = mysql_num_rows($result);
     
    // si on a récupéré un résultat on l'affiche.
    					if($total) 
    			{
     
    // début du tableau
    				echo '<table bgcolor="#FFFFFF">'."\n";
     
    // première ligne on affiche les stocks, les sorties et ce qui reste dans 3 colonnes
    					echo '<tr>';
    					echo '<td bgcolor="#3db2e1"><b><u>Stock</u></b></td>';
    					echo '<td bgcolor="#3db2e1"><b><u>Sortie</u></b></td>';
    					echo '<td bgcolor="#3db2e1"><b><u>Reste</u></b></td>';
    					echo '</tr>'."\n";
     
    // lecture et affichage des résultats sur 3 colonnes, 1 résultat par ligne.    
    				while($row = mysql_fetch_array($result)) 
    			{
    					echo '<tr>';       
    					echo '<td bgcolor="#CCCCCC">'.$row['total_1'].'</td>';
    					echo '<td bgcolor="#CCCCCC">'.$row['total_2'].'</td>';		
    					echo '<td'; 
    					if($row['calcul']>=0 && $row['calcul']<=3){ echo ' bgcolor="#FF0000"'; } else { echo ' bgcolor="#7FDD4C"'; }
    					echo'>'.$row['calcul'].'</td>';
    			}
    				echo '</table>'."\n";
    // fin du tableau.
    			}
    			    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    			    mysql_free_result($result);
     
    			?>
     
    		</body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    -- phpMyAdmin SQL Dump
    -- version 4.2.7.1
    -- http://www.phpmyadmin.net
    --
    -- Client :  
    -- Généré le :  Lun 13 Juillet 2015 à 14:19
    -- Version du serveur :  5.6.20
    -- Version de PHP :  5.5.15
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
     
    --
    -- Base de données :  `sap_bdd`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `soust`
    --
     
    CREATE TABLE IF NOT EXISTS `soust` (
    `id` int(11) NOT NULL,
      `total_1` int(11) NOT NULL,
      `total_2` int(11) NOT NULL
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
     
    --
    -- Contenu de la table `soust`
    --
     
    INSERT INTO `soust` (`id`, `total_1`, `total_2`) VALUES
    (1, 59, 1),
    (2, 144, 55);
     
    --
    -- Index pour les tables exportées
    --
     
    --
    -- Index pour la table `soust`
    --
    ALTER TABLE `soust`
     ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT pour les tables exportées
    --
     
    --
    -- AUTO_INCREMENT pour la table `soust`
    --
    ALTER TABLE `soust`
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    il faudrait peut-être d'abord bien définir ce qui est stocké dans la base de données
    à quoi correspond total_1 et total_2 ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    re,

    Le total_1 correspond au stock réel du magasin.
    Le total_2 est-ce que je retire du magasin.

    Pour être plus concret, je vous met le code (alléger) de ma vrais base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    -- phpMyAdmin SQL Dump
    -- version 4.2.7.1
    -- http://www.phpmyadmin.net
    --
    -- Client :  
    -- Généré le :  Mar 14 Juillet 2015 à 09:43
    -- Version du serveur :  5.6.20
    -- Version de PHP :  5.5.15
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
     
    --
    -- Base de données :  `sap_bdd`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `stock_sap`
    --
     
    CREATE TABLE IF NOT EXISTS `stock_sap` (
    `id` int(11) NOT NULL,
      `code_sap` varchar(50) COLLATE ucs2_unicode_ci NOT NULL,
      `machine` varchar(50) COLLATE ucs2_unicode_ci NOT NULL,
      `nom` varchar(50) COLLATE ucs2_unicode_ci NOT NULL,
      `genre` varchar(50) CHARACTER SET ucs2 NOT NULL,
      `stock` varchar(50) COLLATE ucs2_unicode_ci NOT NULL,
      `sortie` varchar(55) COLLATE ucs2_unicode_ci NOT NULL
    ) ENGINE=InnoDB  DEFAULT CHARSET=ucs2 COLLATE=ucs2_unicode_ci AUTO_INCREMENT=5 ;
     
    --
    -- Contenu de la table `stock_sap`
    --
     
    INSERT INTO `stock_sap` (`id`, `code_sap`, `machine`, `nom`, `genre`, `stock`, `sortie`) VALUES
    (1, '700006', 'AA200', 'Couteau circulaire', '711', '12', '6'),
    (2, '789123', 'OPA 2 Poses', 'Joint de soudure', '711', '5', '3'),
    (3, '745889', 'trancheur', 'capteur', '721', '12', '7'),
    (4, '785412', 'LAO 1', 'Maillons de châine', '711', '51', '15');
     
    --
    -- Index pour les tables exportées
    --
     
    --
    -- Index pour la table `stock_sap`
    --
    ALTER TABLE `stock_sap`
     ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT pour les tables exportées
    --
     
    --
    -- AUTO_INCREMENT pour la table `stock_sap`
    --
    ALTER TABLE `stock_sap`
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=5;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    Mon code qui affiche le résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Stock réel</title>
    		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
    	</head>
    		<body>
     
    			<?php
     
    //Inclus en-tête et menu
     
    					include("header.php");
    					include("menu.php"); 
    			?>
     
    			<h1>Stock :</h1></br></br><center>
     
        		<?php
     
     // on se connect.
     
    					$host = 'localhost';
    					$user = 'root';
    					$pass = '';
    					$db = 'sap_bdd';
     
    // verification de connexion.
     
    					$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    					mysql_select_db($db) or die ('Erreur :'.mysql_error());
    					mysql_query("SET NAMES UTF8");
     
    // connexion a la table.
     
    					$select = 'SELECT id, code_sap, machine, nom, genre, stock, sortie, FROM stock_sap ';
    					$select = 'SELECT id, code_sap, machine, nom, genre, stock, sortie, (stock-sortie) AS calcul FROM stock_sap ';
     
    					$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    					$total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
     
    							if($total) 
    					{
     
    // début du tableau
     
    							echo '<table bgcolor="#FFFFFF">'."\n";
     
    // première ligne on affiche les codes, noms, genre, stock dans 5 colonnes
     
    							echo '<tr>';
    							echo '<td bgcolor="#3db2e1"><b>Code SAP</b></td>';
    							echo '<td bgcolor="#3db2e1"><b>Machine</b></td>';
    							echo '<td bgcolor="#3db2e1"><b>Nom</b></td>';
    							echo '<td bgcolor="#3db2e1"><b>genre</b></td>';
    							echo '<td bgcolor="#3db2e1"><b>Stock</b></td>';
    							echo '</tr>'."\n";
     
    // lecture et affichage des résultats sur 5 colonnes, 1 résultat par ligne. 
     
    						while($row = mysql_fetch_array($result)) {
    							echo '<tr>';       
    							echo '<td bgcolor="#CCCCCC">'.$row['code_sap'].'</td>';
    							echo '<td bgcolor="#CCCCCC">'.$row['machine'].'</td>';
    							echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';	
    							echo '<td bgcolor="#CCCCCC">'.$row['genre'].'</td>';	
    							echo '<td'; 
    							if($row['calcul']>=0 && $row['calcul']<=3){ echo ' bgcolor="#FF0000"'; } else { echo ' bgcolor="#7FDD4C"'; }
    							echo'>'.$row['calcul'].'</td>';
    					}
    							echo '</table>'."\n";
     
    // fin du tableau.
     
    					}
    							else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
     
    							mysql_free_result($result);
     
    			?>
     
    		</body>
    </html>
    Et le code qui modifie ma base de donnée (manuel pour l'instant):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Sortie de stockl</title>
    		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
    	</head>
    		<body>
     
    		<?php
    //Inclus en-tête et menu
     
    					include("header.php");
    					include("menu.php"); 
     
     // on se connect.
     
    					$host = 'localhost';
    					$user = 'root';
    					$pass = '';
    					$db = 'sap_bdd';
     
    // verification de connexion.
     
                        $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    					mysql_select_db($db) or die ('Erreur :'.mysql_error());
    					mysql_query("SET NAMES UTF8");
     
     // Insertion d'un enregistrement dans la table code_sap
     
    					mysql_query ("UPDATE stock_sap SET sortie='15' WHERE code_sap='785412' ");
     
     // On se déconnecte de la base de données
     
    					mysql_close(); 
     
    					?>
     
    		</body>
    </html>
    Et une image du résultat:

    Nom : stock reel.JPG
Affichages : 378
Taille : 31,1 Ko

    Cette partie fonctionne !

    Maintenant je voudrai que mon stock dans ma bdd s'actualise par apport au calcul : stock - sortie (ex: 785412 -> (stock) 51 - (sortie) 15 = (résultat) 36)
    et je voudrais que 36 mon résultat prenne la place de 51 dans stock.
    Si au moins je pouvez enregistrer le calcul dans ma bdd je pourrai faire une mise a jour avec un autre calcul ou a la limite faire un triggers.

    En tout cas merci de vous intéresser a mon problème. ^^

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    déjà il faudrait revoir la structure des tables parce je pense qu'une table ne devrait pas contenir une colonne avec le stock et une autre avec le nombres de pièces sorties.

    la 1re chose est de savoir si tu as besoin de garder en mémoire les entrées et sorties de pièces ? ou alors tu as juste besoin d'afficher le nombre de pièce actuellement en stock et avec un formulaire tu vas indiquer que 5 pièces sont sorties par exemple ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Je souhaite juste afficher le stock qui me reste en magasin: Si j'ai : 10 pièces en stock, j'en sort 5 il m'en reste 5 puis je sort encore 2 pièces il m'en reste 3.

    C'est ca que j'arrive pas a faire !

    De la façon que je m'y prend mon code ne décrémente pas mon stock "initial" : Si j'ai : 10 pièces en stock, j'en sort 5 il m'en reste 5 puis je sort encore 2 pièces il m'en reste encore 8 puisque le calcul se fait sur le stock "initial" = 10 et pas sur le stock "réel" ce que je voudrais faire c'est que quand je sort des pièces le stock "initial" se décrémente aussi !

    Je pensai que j'aurai fait cette formule en 1 heure maximum et ca fait 3 jours que j'y suis et toujours au même point !

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    dans ce cas le seul nombre que tu stockes dans la base de données c'est le stock et pas le nombre de pièce entrées ou sorties

    ensuite pour faire le retrait du stock par exemple, tu fais un formulaire où on rentre le nombre et dans le code PHP tu exécutes une requête de ce genre
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE stock_sap SET stock = stock - '5' WHERE code_sap='785412'

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci pour les réponses.
    Pourquoi faire simple quand on peut faire compliqué?
    Mon sujet et résolu, bonne continuation, on apprend plein de bonnes choses ici.
    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Sous Access Gestion Stock
    Par aounnate dans le forum Access
    Réponses: 9
    Dernier message: 11/10/2006, 14h30
  2. [FAQ] [Access 2007] Gestion des pièces jointes en VBA
    Par Tofalu dans le forum Contribuez
    Réponses: 4
    Dernier message: 04/07/2006, 00h16
  3. Gestion Stock
    Par fb40 dans le forum Access
    Réponses: 4
    Dernier message: 11/03/2006, 23h42
  4. gestion des Piéces Jointes
    Par dimkha dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 01/12/2005, 17h09
  5. [Forum][Script] Envoi pièce jointe
    Par valentin73 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 05/09/2005, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo