|
@@ -35,30 +35,43 @@ EOF;
|
|
|
$dataset = $this->dbHandle->exec($sql);
|
|
$dataset = $this->dbHandle->exec($sql);
|
|
|
$idutente = $this->userId;
|
|
$idutente = $this->userId;
|
|
|
|
|
|
|
|
- $CORE_SETTINGS = \F3::get('CORE.fb');
|
|
|
|
|
- $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
|
|
|
|
|
-
|
|
|
|
|
- foreach($dataset as $row) {
|
|
|
|
|
|
|
+ foreach ($dataset as $row) {
|
|
|
$sqlInsert = "INSERT INTO distinta_esplosa (idutente, commessa, barcode, descrizione, origine, ubicazione, sequenza, qta_prelevare, anomalie)" .
|
|
$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)";
|
|
"VALUES ({$idutente}, '{$row['consegna']}', '{$row['barcode']}', '{$row['descrizione']}', '{$row['origine']}', '{$row['ubicazione']}', '{$row['sequenza']}', '{$row['qta_prelevare']}', 0)";
|
|
|
$err = $this->dbHandle->exec($sqlInsert);
|
|
$err = $this->dbHandle->exec($sqlInsert);
|
|
|
if (!$err)
|
|
if (!$err)
|
|
|
die('CopyDistinta error insert in table distinta_esplosa');
|
|
die('CopyDistinta error insert in table distinta_esplosa');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param string $maxArticles the LIMIT mysql query parameter
|
|
|
|
|
+ * @param bool $blink true if need to blink
|
|
|
|
|
+ */
|
|
|
|
|
+ public function SaveProductsToFindBox(string $maxArticles, bool $blink)
|
|
|
|
|
+ {
|
|
|
|
|
+ $CORE_SETTINGS = \F3::get('CORE.fb');
|
|
|
|
|
+ $findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
|
|
|
|
|
|
|
|
- $dataFields = array(
|
|
|
|
|
- 'qta_prelevare' => $row['qta_prelevare']
|
|
|
|
|
- );
|
|
|
|
|
- $err = $findBoxCore->SaveProducts($row['barcode'], $row['descrizione'], $dataFields);
|
|
|
|
|
|
|
+ $datiDistinta = $this->getDistinta($maxArticles);
|
|
|
|
|
+ foreach ($datiDistinta as $row) {
|
|
|
|
|
|
|
|
$labelId = $this->GetLabelIdFromBarcode($row['barcode']);
|
|
$labelId = $this->GetLabelIdFromBarcode($row['barcode']);
|
|
|
if ($labelId != null) {
|
|
if ($labelId != null) {
|
|
|
|
|
+
|
|
|
|
|
+ $dataFields = array(
|
|
|
|
|
+ 'qr_code' => $row['barcode'],
|
|
|
|
|
+ 'qta_prelevare' => $row['qta_prelevare']
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
$label = new \SmartESL($findBoxCore, [$labelId]);
|
|
$label = new \SmartESL($findBoxCore, [$labelId]);
|
|
|
$sql = "SELECT template_id FROM label_bindings WHERE label_id='{$labelId}'";
|
|
$sql = "SELECT template_id FROM label_bindings WHERE label_id='{$labelId}'";
|
|
|
$tplId = $this->dbHandle->exec($sql);
|
|
$tplId = $this->dbHandle->exec($sql);
|
|
|
-// $details = $label->getDetails();
|
|
|
|
|
-// $devType = $details[$labelId]['status']['dev_type'];
|
|
|
|
|
-// $dt = \F3::get("LABELS.TEMPLATES.DT{$devType}");
|
|
|
|
|
-// $label->Display($dt[1], $row['barcode']);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if ($blink)
|
|
|
|
|
+ $label->BlinkSpecial(0, 1, 1000, 20, 1);
|
|
|
|
|
+
|
|
|
|
|
+ $findBoxCore->SaveProducts($row['barcode'], $row['descrizione'], $dataFields);
|
|
|
$label->Display($tplId[0]['template_id'], $row['barcode']);
|
|
$label->Display($tplId[0]['template_id'], $row['barcode']);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -69,9 +82,9 @@ EOF;
|
|
|
return $this->dbHandle->exec('SELECT distinct consegna, commessa, ordine_produzione, data_creazione, time_creazione, destinazione_merci FROM `distinte` ORDER BY data_creazione');
|
|
return $this->dbHandle->exec('SELECT distinct consegna, commessa, ordine_produzione, data_creazione, time_creazione, destinazione_merci FROM `distinte` ORDER BY data_creazione');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public function getDistinta()
|
|
|
|
|
|
|
+ public function getDistinta(string $maxRows = '3')
|
|
|
{
|
|
{
|
|
|
- return $this->dbHandle->exec("SELECT * FROM distinta_esplosa WHERE idutente={$this->userId} AND qta_prelevare>0 and anomalie=0 ORDER BY sequenza LIMIT 3");
|
|
|
|
|
|
|
+ return $this->dbHandle->exec("SELECT * FROM distinta_esplosa WHERE idutente={$this->userId} AND qta_prelevare>0 and anomalie=0 ORDER BY sequenza LIMIT {$maxRows}");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function MarkBarcodeAsAnomalia(string $labelId)
|
|
public function MarkBarcodeAsAnomalia(string $labelId)
|
|
@@ -87,8 +100,16 @@ EOF;
|
|
|
|
|
|
|
|
public function RemoveQuantity(string $labelId)
|
|
public function RemoveQuantity(string $labelId)
|
|
|
{
|
|
{
|
|
|
- $sql = "UPDATE distinta_esplosa d JOIN label_bindings b ON d.barcode = b.barcode SET qta_prelevare=qta_prelevare-1 WHERE idutente={$this->userId} AND b.barcode='{$labelId}'";
|
|
|
|
|
- return $this->dbHandle->exec($sql);
|
|
|
|
|
|
|
+ $sql = "UPDATE distinta_esplosa d JOIN label_bindings b ON d.barcode = b.barcode SET qta_prelevare=qta_prelevare-1 WHERE idutente={$this->userId} AND b.barcode='{$labelId}' AND qta_prelevare>0";
|
|
|
|
|
+ $ret = $this->dbHandle->exec($sql);
|
|
|
|
|
+ return $ret;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ 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}'";
|
|
|
|
|
+ $record = $this->dbHandle->exec($sql);
|
|
|
|
|
+ return $record[0]['qta_prelevare'];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function GetLabelIdFromBarcode(string $barcode): ?string
|
|
public function GetLabelIdFromBarcode(string $barcode): ?string
|
|
@@ -101,7 +122,7 @@ EOF;
|
|
|
|
|
|
|
|
private function getArticoliByConsegna(string $consegna): array
|
|
private function getArticoliByConsegna(string $consegna): array
|
|
|
{
|
|
{
|
|
|
- $sqlCommesse = "SELECT DISTINCT CONCAT(commessa, ' ', descrizione, ' ', qta_prelevare) FROM `distinta_esplosa` WHERE idutente={$this->userId} AND commessa = '{$consegna}'";
|
|
|
|
|
|
|
+ $sqlCommesse = "SELECT DISTINCT CONCAT(barcode, ' ', descrizione, ' ', qta_prelevare) FROM `distinta_esplosa` WHERE idutente={$this->userId} AND commessa = '{$consegna}'";
|
|
|
return $this->dbHandle->exec($sqlCommesse);
|
|
return $this->dbHandle->exec($sqlCommesse);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -125,11 +146,11 @@ EOF;
|
|
|
$articles = $this->getArticoliByConsegna($consegna);
|
|
$articles = $this->getArticoliByConsegna($consegna);
|
|
|
$joinFields = array_map('array_shift', $articles);
|
|
$joinFields = array_map('array_shift', $articles);
|
|
|
$elenco = [];
|
|
$elenco = [];
|
|
|
- for($i = 1; $i <= 10; $i++) {
|
|
|
|
|
|
|
+ for ($i = 1; $i <= 10; $i++) {
|
|
|
$fieldName = 'campo' . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
$fieldName = 'campo' . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
|
$elenco[$fieldName] = '';
|
|
$elenco[$fieldName] = '';
|
|
|
}
|
|
}
|
|
|
- foreach($joinFields as $i => $campo) {
|
|
|
|
|
|
|
+ foreach ($joinFields as $i => $campo) {
|
|
|
$fieldName = 'campo' . str_pad($i + 1, 2, '0', STR_PAD_LEFT);
|
|
$fieldName = 'campo' . str_pad($i + 1, 2, '0', STR_PAD_LEFT);
|
|
|
$elenco[$fieldName] = $campo;
|
|
$elenco[$fieldName] = $campo;
|
|
|
}
|
|
}
|
|
@@ -138,17 +159,42 @@ EOF;
|
|
|
|
|
|
|
|
$dataFields['end_operations'] = $consegna;
|
|
$dataFields['end_operations'] = $consegna;
|
|
|
|
|
|
|
|
- $err = $findBoxCore->SaveProducts($barcode, $consegna, $dataFields);
|
|
|
|
|
$label = new \SmartESL($findBoxCore, [$labelId]);
|
|
$label = new \SmartESL($findBoxCore, [$labelId]);
|
|
|
-// $details = $label->getDetails();
|
|
|
|
|
-// $devType = $details[$labelId]['status']['dev_type'];
|
|
|
|
|
$devType = 79;
|
|
$devType = 79;
|
|
|
$dt = \F3::get("LABELS.TEMPLATES.DT{$devType}");
|
|
$dt = \F3::get("LABELS.TEMPLATES.DT{$devType}");
|
|
|
|
|
|
|
|
- $label->BlinkSpecial(0, 1, 1000, 5, 0);
|
|
|
|
|
|
|
+ $label->BlinkSpecial(0, 1, 1000, 2, 0);
|
|
|
|
|
+ $err = $findBoxCore->SaveProducts($barcode, $consegna, $dataFields);
|
|
|
$label->Display($dt[1], $barcode);
|
|
$label->Display($dt[1], $barcode);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function SaveProductsForLabel7(string $barcode, string $consegna)
|
|
|
|
|
+ {
|
|
|
|
|
+ $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);
|
|
|
|
|
+
|
|
|
|
|
+ $dataFields = array_shift($dataFields);
|
|
|
|
|
+
|
|
|
|
|
+ $articles = $this->getArticoliByConsegna($consegna);
|
|
|
|
|
+ $joinFields = array_map('array_shift', $articles);
|
|
|
|
|
+ $elenco = [];
|
|
|
|
|
+ for ($i = 1; $i <= 10; $i++) {
|
|
|
|
|
+ $fieldName = 'campo' . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
|
|
|
+ $elenco[$fieldName] = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ 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);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public function ResetDistintaLabels(string $commessa, string $label7Id)
|
|
public function ResetDistintaLabels(string $commessa, string $label7Id)
|
|
|
{
|
|
{
|
|
|
$sql = "SELECT label_id, anomalie, b.barcode FROM distinta_esplosa d JOIN label_bindings b ON d.barcode=b.barcode WHERE idutente={$this->userId} AND commessa='{$commessa}'";
|
|
$sql = "SELECT label_id, anomalie, b.barcode FROM distinta_esplosa d JOIN label_bindings b ON d.barcode=b.barcode WHERE idutente={$this->userId} AND commessa='{$commessa}'";
|
|
@@ -157,7 +203,7 @@ EOF;
|
|
|
$CORE_SETTINGS = \F3::get('CORE.fb');
|
|
$CORE_SETTINGS = \F3::get('CORE.fb');
|
|
|
$findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
|
|
$findBoxCore = new \FindBoxCoreSystem(...array_values($CORE_SETTINGS));
|
|
|
|
|
|
|
|
- foreach($dataset as $row) {
|
|
|
|
|
|
|
+ foreach ($dataset as $row) {
|
|
|
$label = new \SmartESL($findBoxCore, [$row['label_id']]);
|
|
$label = new \SmartESL($findBoxCore, [$row['label_id']]);
|
|
|
// $details = $label->getDetails();
|
|
// $details = $label->getDetails();
|
|
|
// $devType = $details[$row['label_id']]['status']['dev_type'];
|
|
// $devType = $details[$row['label_id']]['status']['dev_type'];
|