Bonjour,

Dans le cadre du développement de la gestion de stock au sein de l’entreprise ou je travail,
J’ai trouver le crm dolibarr qui permet cette gestion ainsi que la prise en charge des codes barres.

Pour faciliter la vie à notre responsable du magasin ou nous traitons plus de 800 références en accessoires et quincailleries, j’ai trouver l’application helloscan qui fournis une applis android, ios qui permet à travers un script php de se connecter à une base de donnée mysql*.

En utilisant le script de base fournis par helloscan, je souhaite me connecter à la table : llx_stock_mouvement afin de modifier la ligne value d'une référence.

Nom : Capture d'écran 2017-03-27 12.26.08.png
Affichages : 271
Taille : 134,6 Ko

Code du script de 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
 
/**
 * Exemple basique d'utilisation de HelloScan
 * http://helloscan.mobi
 */
 
 /* Table Mysql 'inscrits'
 CREATE TABLE `inscrits` (
 `id` INT( 10 ) UNSIGNED NOT NULL ,
 `nom` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
 `prenom` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
 `actif` TINYINT( 1 ) NOT NULL DEFAULT '0'
 ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin;
 */
 
// configuration de l'accès à votre base de données
define('HELLO_HOST', 'sql_server');
define('HELLO_USER', 'sql_user');
define('HELLO_PASS', 'sql_pass');
define('HELLO_DB', 'sql_database');
 
// votre table d'inscrits
define('HELLO_TABLE', 'inscrits');
 
// votre champ d'identifiant présent dans le QRCode
define('HELLO_FIELD', 'id');
 
// le champ qui va marquer l'utilisateur actif 
define('HELLO_ACTIVE_FIELD', 'actif');
 
// exemple de clé d'authentification
define('HELLO_KEY', 'MaCleHelloScan');
 
// les erreur de requêtes
function sendError($fonction,$sql=null) {
    $response = array(
        'status' => 404,
        'result' => $fonction.' : Impossible d\'exécuter la requête',
    );
    // plus verbeux
    $response['result']  = $fonction.' : Impossible d\'exécuter la requête '.mysql_error().';'.$sql;
    echo json_encode($response);
    exit;
}
 
// connecter/tester la connexion à la base
$connect = mysql_connect(HELLO_HOST, HELLO_USER, HELLO_PASS);
if (!$connect) {
    sendError('connectDB');
    exit;
}
$select_database = mysql_select_db(HELLO_DB, $connect);
if (!$select_database) {
    sendError('selectDatabase');
    exit;
}
 
// tester si l'identifiant est présent dans la table
function checkId($id) {
    // on compte les résultats
    $sql_select = '
        SELECT COUNT(*) 
        FROM '.HELLO_TABLE.'
        WHERE '.HELLO_FIELD.'='.mysql_escape_string($id);
    $result = mysql_query($sql_select);
    // erreur renvoyé à helloscan
    if(!$result) {
        sendError(__FUNCTION__,$sql_select);
        exit(0);
    }
    $num_result = mysql_num_rows($result);
    // c'est OK !
    if($num_result==1) {
        return true;
    }
}
 
// récupérer les informations
function getInfos($id) {
    $sql_select = '
        SELECT * 
        FROM '.HELLO_TABLE.'
        WHERE '.HELLO_FIELD.'='.mysql_escape_string($id).'
        LIMIT 1';
    $result = mysql_query($sql_select);
    // erreur renvoyé à helloscan
    if(!$result) {
        sendError(__FUNCTION__,$sql_select);
        exit(0);
    }
    $data = mysql_fetch_assoc($result);
    mysql_free_result($result);
    if(!empty($data)) {
        return array(
            'status' => 200,
            'result' => 'Informations sur l\'inscrit',
            'data' => $data,
        );
    } else {
        return array(
            'status' => 404,
            'result' => __FUNCTION__.': Impossible de récupérer les informations sur l\'inscrit',
        );
    }
}
 
// mettre à 1 le champ actif
function updateInfos($id) {
    // requête de mise à jour
    $sql_update = '
        UPDATE '.HELLO_TABLE.'
        SET '.HELLO_ACTIVE_FIELD.'=1
        WHERE '.HELLO_FIELD.'='.mysql_escape_string($id);
    $result = mysql_query($sql_update);
    // erreur renvoyé à helloscan
    if(!$result) {
        return sendError(__FUNCTION__,$sql_update);
    }
    // nombre de ligne affectée
    $num = mysql_affected_rows();
    if($num==1) {
        return array(
            'status' => 200,
            'result' => 'Inscrit validé et actif',
        );
    } else {
        return array(
            'status' => 404,
            'result' => __FUNCTION__.': Impossible de mettre à jour les informations sur l\'inscrit (déjà validé ?)',
        );
    }
}
 
// vérifier l'authentification
if(empty($_GET['key']) || 
    (!empty($_GET['key']) && $_GET['key']!=HELLO_KEY)) {
    // réponse à HelloScan
    $response = array(
        'status' => 401, // statut http
        'result' => 'Authentification incorrecte',
    );
    echo json_encode($response);
    exit;
}
 
// vérifier la présence de l'id
if(!empty($_GET['id'])) {
    $id = htmlspecialchars($_GET['id']);
} else {
    // réponse à HelloScan
    $response = array(
        'status' => 404,
        'result' => 'Aucun identifiant reçu',
    );
    echo json_encode($response);
    exit;
}
 
// vérifier l'id dans la table
if(!checkId($id)) {
    // réponse à HelloScan
    $response = array(
        'status' => 404,
        'msg' => 'Aucun identifiant correspondant dans la table des inscrits',
    );
    echo json_encode($response);
    exit;
}
 
// renvoyer les informations
if(!empty($_GET['action']) && $_GET['action']=='get') {
    echo json_encode(getInfos($id));
    exit;
}
 
// mettre à jour le champ actif
if(!empty($_GET['action']) && $_GET['action']=='put') {
    echo json_encode(updateInfos($id));
    exit;
}
 
// aucune action demandée
$response = array(
    'status' => 404,
    'msg' => 'Aucune action demandée (get ou put)',
);
echo json_encode($response);
exit;
et depuis l'application par le moyen de 2 boutons : entrée / sortie modifier la table afin d'ajouter ou retirer un article du stock.


Nom : IMG_6301.PNG
Affichages : 196
Taille : 377,0 Ko


est-ce possible qu'un âme charitable puisse m'aider dans le script??
Merci