Giancarlo Voci 8 years ago
parent
commit
01e406f54d
9 changed files with 109 additions and 10228 deletions
  1. 0 0
      bundle.js
  2. 1 1
      config.ini
  3. 22 5
      index.php
  4. 20 10171
      omlink_lamborghini.sql
  5. 20 14
      src/Distinta.php
  6. 20 20
      src/Modules/Pages.php
  7. 1 1
      src/SmartESL.php
  8. 8 1
      ui/custom.js
  9. 17 15
      ui/pick2light.tpl

File diff suppressed because it is too large
+ 0 - 0
bundle.js


+ 1 - 1
config.ini

@@ -15,8 +15,8 @@ HIGHLIGHT = false
 JAR.expire = {{time()+31536000}}
 
 [CORE.fb]
-port=50443
 host=192.168.1.193
+port=50443
 key=C0000000000011474023057
 pass=ZrgzkvJrOKnNSCnPnGz3u{A6eHSNXVvs
 

+ 22 - 5
index.php

@@ -16,11 +16,6 @@ $config = gzuncompress(base64_decode(file_get_contents("config.bin")));
 $f3->config('config.ini', true);
 $f3->config('labels.ini', true);
 
-// TODO: per testare le api
-//$CORE_SETTINGS = $f3->get('CORE.fb');
-//$findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
-//$label = new \SmartESL($findBoxCore, ['010714CE']);
-//$label->Display(1004, '4ML867738');
 
 $f3->set('DB',
   new \DB\SQL(
@@ -30,6 +25,28 @@ $f3->set('DB',
     array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_PERSISTENT => TRUE))
 );
 
+//// TODO: per testare le api
+//$CORE_SETTINGS = $f3->get('CORE.fb');
+//$findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
+//$label = new \SmartESL($findBoxCore, ['01076733']);
+//$label->Display(1004, '1111');
+//sleep(1);
+//$label->BlinkSpecial(0, 1, 1000, 20, 0);
+//sleep(1);
+//$label->BlinkOff();
+
+//
+//$f3->set('USERID', 0);
+//$CORE_SETTINGS = $f3->get('CORE.fb');
+//$findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
+//$label = new \SmartESL($findBoxCore, ['010A19ED']);
+//$label->BlinkSpecial(0, 1, 1000, 20, 0);
+//$distinta = new \Distinta($f3);
+//$ret = $distinta->SaveProductsForLabel7('010A19ED', '81891252');
+//$ret = $label->Display(1017, '010A19ED');
+//
+//
+
 // Pages
 $f3->route('GET /', "Modules\Pages->Login", $f3->get('CACHE_TTL'));
 $f3->route('GET /homemenu', "Modules\Pages->HomeMenu", $f3->get('CACHE_TTL'));

File diff suppressed because it is too large
+ 20 - 10171
omlink_lamborghini.sql


+ 20 - 14
src/Distinta.php

@@ -35,7 +35,7 @@ EOF;
     $dataset = $this->dbHandle->exec($sql);
     $idutente = $this->userId;
 
-    foreach ($dataset as $row) {
+    foreach($dataset as $row) {
       $sqlInsert = "INSERT INTO distinta_esplosa (idutente, commessa, barcode, descrizione, origine, ubicazione, sequenza, qta_prelevare, anomalie)" .
         "VALUES ({$idutente}, '{$row['consegna']}', '{$row['barcode']}', '{$row['descrizione']}', '{$row['origine']}', '{$row['ubicazione']}', '{$row['sequenza']}', '{$row['qta_prelevare']}', 0)";
       $err = $this->dbHandle->exec($sqlInsert);
@@ -48,13 +48,13 @@ EOF;
    * @param string $maxArticles the LIMIT mysql query parameter
    * @param bool $blink true if need to blink
    */
-  public function SaveProductsToFindBox(string $maxArticles, bool $blink)
+  public function SaveProductsToFindBox(string $maxArticles, bool $blink, int $iterations = 20)
   {
     $CORE_SETTINGS = \F3::get('CORE.fb');
     $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
 
     $datiDistinta = $this->getDistinta($maxArticles);
-    foreach ($datiDistinta as $row) {
+    foreach($datiDistinta as $row) {
 
       $labelId = $this->GetLabelIdFromBarcode($row['barcode']);
       if ($labelId != null) {
@@ -68,11 +68,12 @@ EOF;
         $sql = "SELECT template_id FROM label_bindings WHERE label_id='{$labelId}'";
         $tplId = $this->dbHandle->exec($sql);
 
-        if ($blink)
-          $label->BlinkSpecial(0, 1, 1000, 20, 1);
 
         $findBoxCore->SaveProducts($row['barcode'], $row['descrizione'], $dataFields);
         $label->Display($tplId[0]['template_id'], $row['barcode']);
+        if ($blink) {
+          $label->BlinkSpecial(0, 1, 1000, $iterations, 0);
+        }
       }
     }
   }
@@ -107,7 +108,7 @@ EOF;
 
   public function GetArticleCount(string $barcode): int
   {
-    $sql = "SELECT qta_prelevare from distinta_esplosa d JOIN label_bindings b ON d.barcode = b.barcode WHERE idutente=0 AND b.barcode='{$barcode}'";
+    $sql = "SELECT qta_prelevare from distinta_esplosa d JOIN label_bindings b ON d.barcode = b.barcode WHERE idutente={$this->userId} AND b.barcode='{$barcode}'";
     $record = $this->dbHandle->exec($sql);
     return $record[0]['qta_prelevare'];
   }
@@ -132,25 +133,29 @@ EOF;
    * @param string $labelId
    * @param string $barcode
    * @param string $consegna
+   * @return bool true if successfull
    */
-  public function SaveLabelCarrello(string $labelId, string $barcode, string $consegna)
+  public function SaveLabelCarrello(string $labelId, string $barcode, string $consegna): bool
   {
     $CORE_SETTINGS = \F3::get('CORE.fb');
     $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
 
     $sqlCommesse = "SELECT DISTINCT origine, commessa, ordine_produzione, data_creazione, time_creazione, destinazione_merci FROM `distinte` WHERE consegna = '{$consegna}'";
     $dataFields = $this->dbHandle->exec($sqlCommesse);
+    if (count($dataFields)==0) {
+      return false;
+    }
 
     $dataFields = array_shift($dataFields);
 
     $articles = $this->getArticoliByConsegna($consegna);
     $joinFields = array_map('array_shift', $articles);
     $elenco = [];
-    for ($i = 1; $i <= 10; $i++) {
+    for($i = 1; $i <= 10; $i++) {
       $fieldName = 'campo' . str_pad($i, 2, '0', STR_PAD_LEFT);
       $elenco[$fieldName] = '';
     }
-    foreach ($joinFields as $i => $campo) {
+    foreach($joinFields as $i => $campo) {
       $fieldName = 'campo' . str_pad($i + 1, 2, '0', STR_PAD_LEFT);
       $elenco[$fieldName] = $campo;
     }
@@ -163,9 +168,10 @@ EOF;
     $devType = 79;
     $dt = \F3::get("LABELS.TEMPLATES.DT{$devType}");
 
-    $label->BlinkSpecial(0, 1, 1000, 2, 0);
     $err = $findBoxCore->SaveProducts($barcode, $consegna, $dataFields);
     $label->Display($dt[1], $barcode);
+    $label->BlinkSpecial(0, 1, 1000, 2, 0);
+    return true;
   }
 
   public function SaveProductsForLabel7(string $barcode, string $consegna)
@@ -181,18 +187,18 @@ EOF;
     $articles = $this->getArticoliByConsegna($consegna);
     $joinFields = array_map('array_shift', $articles);
     $elenco = [];
-    for ($i = 1; $i <= 10; $i++) {
+    for($i = 1; $i <= 22; $i++) {
       $fieldName = 'campo' . str_pad($i, 2, '0', STR_PAD_LEFT);
       $elenco[$fieldName] = '';
     }
-    foreach ($joinFields as $i => $campo) {
+    foreach($joinFields as $i => $campo) {
       $fieldName = 'campo' . str_pad($i + 1, 2, '0', STR_PAD_LEFT);
       $elenco[$fieldName] = $campo;
     }
 
     $dataFields = array_merge($dataFields, $elenco);
     $dataFields['end_operations'] = $consegna;
-    $err = $findBoxCore->SaveProducts($barcode, $consegna, $dataFields);
+    return $findBoxCore->SaveProducts($barcode, $barcode, $dataFields);
   }
 
   public function ResetDistintaLabels(string $commessa, string $label7Id)
@@ -203,7 +209,7 @@ EOF;
     $CORE_SETTINGS = \F3::get('CORE.fb');
     $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
 
-    foreach ($dataset as $row) {
+    foreach($dataset as $row) {
       $label = new \SmartESL($findBoxCore, [$row['label_id']]);
 //      $details = $label->getDetails();
 //      $devType = $details[$row['label_id']]['status']['dev_type'];

+ 20 - 20
src/Modules/Pages.php

@@ -42,12 +42,13 @@ class Pages extends BaseController
         $distinta = new \Distinta($f3);
         $distinta->CleanDistintaTable();
         $distinta->CopyDistinta($stepValues['consegna']);
-        $distinta->SaveLabelCarrello($stepValues['labelid'], $stepValues['labelid'], $stepValues['consegna']);
+        if(!$distinta->SaveLabelCarrello($stepValues['labelid'], $stepValues['labelid'], $stepValues['consegna']))
+        {
+          \f3::set('INFOTEXT', 'Etichetta 5" non bindata nel sistema');
+          break;
+        }
 
-        $rowsDistinta = $distinta->getDistinta();
-        $CORE_SETTINGS = \F3::get('CORE.fb');
-        $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
-        $distinta->SaveProductsToFindBox('3', true); // prende soltanto i primi 3 dalla tabella copia delle distinte
+        $distinta->SaveProductsToFindBox('3', true, 50); // prende soltanto i primi 3 dalla tabella copia delle distinte
 
         $f3->set('COOKIE.p2l', json_encode($stepValues));
         $f3->set('COOKIE.consegna', $stepValues['consegna']);
@@ -57,7 +58,7 @@ class Pages extends BaseController
         break;
       case 4:
         $distinta = new \Distinta($f3);
-        $distinta->SaveProductsToFindBox('3, 1000', false); // LIMIT 3,1000 perchè i primi 3 li ha fatti nel case 3
+        $distinta->SaveProductsToFindBox('3, 2000', false); // LIMIT 3,1000 perchè i primi 3 li ha fatti nel case 3
         break;
       case 5:
         $datiCommessa['consegna'] = $f3->get('COOKIE.consegna');
@@ -82,13 +83,15 @@ class Pages extends BaseController
           } else { // E' stato passato un barcode
             if ($distinta->RemoveQuantity($pickedBarcode)) {
               // BlinkOFF solo se non è lo stesso barcode precedente
-              if ($f3->get('COOKIE.previousbarcode') != $pickedBarcode) {
-                // SPEGNE LED ETICHETTA DOPO PICKING
-                $CORE_SETTINGS = \F3::get('CORE.fb');
-                $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
-                $label = new \SmartESL($findBoxCore, [$distinta->GetLabelIdFromBarcode($pickedBarcode)]);
-                $label->BlinkSpecial(0, 1, 0, 0, 0);
-              }
+//              if ($distinta->GetArticleCount($pickedBarcode) == 0) {
+              // SPEGNE LED ETICHETTA DOPO PICKING
+              $CORE_SETTINGS = \F3::get('CORE.fb');
+              $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
+              $label = new \SmartESL($findBoxCore, [$distinta->GetLabelIdFromBarcode($pickedBarcode)]);
+              $label->BlinkOff();
+              sleep(3);
+              $label->BlinkOff();
+//              }
             } else
               $f3->set('INFOTEXT', 'Barcode non riconosciuto o non associato a nessuna etichetta elettronica arcode selezionato');
           }
@@ -105,7 +108,7 @@ class Pages extends BaseController
           $CORE_SETTINGS = $f3->get('CORE.fb');
           $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
           $label = new \SmartESL($findBoxCore, [$datiCommessa['labelid']]);
-          $label->BlinkSpecial(0, 1, 1000, 20, 1);
+          $label->BlinkSpecial(0, 1, 5000, 20, 0);
           $distinta->SaveProductsForLabel7($datiCommessa['labelid'], $datiCommessa['consegna']);
           $label->Display(1017, $datiCommessa['labelid']);
 
@@ -115,16 +118,15 @@ class Pages extends BaseController
           }
         } else {
           // Seleziona le prossime tre etichette
-          foreach ($rowsDistinta as $rowDist) {
+          foreach($rowsDistinta as $rowDist) {
             $CORE_SETTINGS = $f3->get('CORE.fb');
             $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
             $labelId = $distinta->GetLabelIdFromBarcode($rowDist['barcode']);
             if ($labelId != null) {
-              sleep(2);
               $label = new \SmartESL($findBoxCore, [$labelId]);
               // Se è lo stesso barcode di quello appena pickato dall'operatore, non lo blinka di nuovo
-              if ($f3->get('COOKIE.previousbarcode') != $rowDist['barcode']) {
-                $label->BlinkSpecial(0, 1, 1000, 20, 1);
+              if ($distinta->GetArticleCount($rowDist['barcode']) > 0) {
+                $label->BlinkSpecial(0, 1, 5000, 20, 0);
               }
             }
           }
@@ -132,8 +134,6 @@ class Pages extends BaseController
         break;
     }
 
-    $f3->set('COOKIE.previousbarcode', $pickedBarcode);
-
     $f3->set('COOKIE.p2l', json_encode($stepValues));
 
     $f3->set('DISTINTE', $f3->Get('DB')->exec('SELECT DISTINCT consegna, time_creazione, destinazione_merci FROM distinte ORDER BY data_creazione, time_creazione'));

+ 1 - 1
src/SmartESL.php

@@ -81,7 +81,7 @@ class SmartESL
     public function BlinkOff()
     {
         $URI = "/1.0.0/index.php/smartesl.blink_special/2.0.0/";
-        $this->core->CallAPI("GET", $URI, "[[\"{$this->labels[0]}\"],0,0,0,0,0,1]", true);
+        $this->core->CallAPI("GET", $URI, "[[\"{$this->labels[0]}\"],0,1,1,500,1,1]", true);
     }
 
     /**

+ 8 - 1
ui/custom.js

@@ -1,2 +1,9 @@
-document.addEventListener("DOMContentLoaded", function(event) {
+document.addEventListener("DOMContentLoaded", function (event) {
 });
+
+function FMSubmit(idForm) {
+  alert('submit14');
+  $('#sectionform input,select').prop('readonly', 'readonly');
+  $('#submitform').click();
+}
+

+ 17 - 15
ui/pick2light.tpl

@@ -3,23 +3,25 @@
 <div class="row h-100 justify-content-center">
     <check if="{{ @STEP < 4 }}">
         <div class="col-md-5 align-self-center">
-            <form class="form" method="post" action="{{@BASEURL}}/pick2light/{{@STEP+1}}">
+            <form id="myform" class="form" method="post" action="{{@BASEURL}}/pick2light/{{@STEP+1}}">
                 <input type="submit" hidden id="submitform"/>
 
-                <select name="consegna" class="form-control form-control-lg bg-secondary mb-3" onchange="javascript:{$('#submitform').click()}">
-                    <option {{isset(@PAGEVALUES.consegna) ? '' : 'selected'}} >Seleziona una distinta</option>
-                    <repeat group="{{ @DISTINTE }}" value="{{ @DISTINTA }}">
-                        <option {{@PAGEVALUES.consegna == @@DISTINTA.consegna ? 'selected' : ''}} value="{{@@DISTINTA.consegna}}">{{@@DISTINTA.consegna}} - {{@@DISTINTA.time_creazione}} - {{@@DISTINTA.destinazione_merci}}</option>
-                    </repeat>
-                </select>
-                <check if="{{ @STEP > 1}}">
-                    <input type="text" name="labelid" {{ @STEP==2 ? 'autofocus' : ''}} value="{{@PAGEVALUES.labelid}}" class="form-control form-control-lg mb-3" placeholder="Codice etichetta" required autocomplete="false"/>
-                </check>
-                <check if="{{ isset(@INFOTEXT) }}">
-                    <div class="alert alert-info mt-3" role="alert">
-                        {{@INFOTEXT}}
-                    </div>
-                </check>
+                <div id="sectionform">
+                    <select name="consegna" class="form-control form-control-lg bg-secondary mb-3" onchange="javascript:FMSubmit()">
+                        <option {{isset(@PAGEVALUES.consegna) ? '' : 'selected'}} >Seleziona una distinta</option>
+                        <repeat group="{{ @DISTINTE }}" value="{{ @DISTINTA }}">
+                            <option {{@PAGEVALUES.consegna == @@DISTINTA.consegna ? 'selected' : ''}} value="{{@@DISTINTA.consegna}}">{{@@DISTINTA.consegna}} - {{@@DISTINTA.time_creazione}} - {{@@DISTINTA.destinazione_merci}}</option>
+                        </repeat>
+                    </select>
+                    <check if="{{ @STEP > 1}}">
+                        <input type="text" name="labelid" {{ @STEP==2 ? 'autofocus' : ''}} value="{{@PAGEVALUES.labelid}}" class="form-control form-control-lg mb-3" placeholder="Codice etichetta" required autocomplete="false"/>
+                    </check>
+                    <check if="{{ isset(@INFOTEXT) }}">
+                        <div class="alert alert-info mt-3" role="alert">
+                            {{@INFOTEXT}}
+                        </div>
+                    </check>
+                </div>
             </form>
         </div>
     </check>

Some files were not shown because too many files changed in this diff