Added different barcodes

This commit is contained in:
2025-10-31 10:33:20 +01:00
parent a327932ff5
commit 387a1538d4
5 changed files with 97 additions and 17 deletions

View File

@@ -2,8 +2,10 @@
@using Berufsschule_HAM.Models
@model HomeIndexViewModel
@inject IViewLocalizer T
@inject IConfiguration Configuration
@{
ViewData["Title"] = T["Assets"];
string barcodeType = Configuration["BarcodeType"] ?? "EAN13";
}
<link href="https://cdn.jsdelivr.net/npm/tom-select/dist/css/tom-select.bootstrap5.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"/>
<script src="https://cdn.jsdelivr.net/npm/tom-select/dist/js/tom-select.complete.min.js" defer></script>
@@ -672,7 +674,7 @@ function registerRowDetailviewClick(row) {
<div class="row g-3">
<h6 class="fw-bold">@T["Barcode"]</h6>
<div class="col-md-6">
<svg id="ean13" class="form-control" name="Barcode" />
<svg id="@barcodeType" class="form-control" name="Barcode" />
</div>
<div class="col-md-6">
<button id="downloadBtn" class="form-control my-2 btn btn-primary">@T["Download Barcode"]</button>
@@ -749,15 +751,15 @@ function registerRowDetailviewClick(row) {
</div>` : ''}
</div>`;
viewContent.innerHTML = html;
JsBarcode("#ean13", idToEAN13(asset.Cn), {
format: "EAN13",
JsBarcode("#@barcodeType", getBarcodeValue("@barcodeType", asset.Cn), {
format: "@barcodeType",
lineColor: "#000",
width: 2,
height: 80,
displayValue: true
});
document.getElementById("downloadBtn").addEventListener("click", () => {
downloadBarcode("ean13", idToEAN13(asset.Cn));
downloadBarcode("@barcodeType", getBarcodeValue("@barcodeType", asset.Cn));
});
document.getElementById("printBtn").addEventListener("click", () => {
addAssetIdToBatch(asset.Cn);

View File

@@ -2,8 +2,10 @@
@using Berufsschule_HAM.Models
@model HomeIndexViewModel
@inject IViewLocalizer T
@inject IConfiguration Configuration
@{
ViewData["Title"] = T["Inventory"];
string barcodeType = Configuration["BarcodeType"] ?? "EAN13";
}
<link href="https://cdn.jsdelivr.net/npm/tom-select/dist/css/tom-select.bootstrap5.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"/>
<script src="https://cdn.jsdelivr.net/npm/tom-select/dist/js/tom-select.complete.min.js" defer></script>
@@ -72,7 +74,34 @@
async function onScanSuccess(decodedText, decodedResult) {
const rawDecoded = decodedText;
decodedText = decodedText.substr(0,11).replace(/^0+/, '');
const BARCODE_TYPE = "@barcodeType";
switch (BARCODE_TYPE.toUpperCase()) {
case "EAN13":
decodedText = decodedText.substr(0, 11);
break;
case "EAN8":
decodedText = decodedText.substr(0, 6);
break;
case "UPC":
decodedText = decodedText.substr(0, 10);
break;
case "ITF14":
decodedText = decodedText.substr(0, 12);
break;
case "MSI10":
decodedText = decodedText.slice(0,-1);
break;
case "MSI11":
decodedText = decodedText.slice(0,-1);
break;
case "MSI1010":
decodedText = decodedText.slice(0,-2);
break;
case "MSI1110":
decodedText = decodedText.slice(0,-1);
break;
}
decodedText = decodedText.replace(/^0+/, '');
console.log(`Code matched = ${decodedText}`, decodedResult);
document.getElementById("barcodeInput").value = decodedText;
@@ -105,7 +134,7 @@
<div class="row g-3">
<h6 class="fw-bold">@T["Barcode"]</h6>
<div class="col-md-6">
<svg id="ean13" class="form-control" name="Barcode" />
<svg id="@barcodeType" class="form-control" name="Barcode" />
</div>
<div class="col-md-6">
<button id="downloadBtn" class="form-control my-2 btn btn-primary">@T["Download Barcode"]</button>
@@ -184,15 +213,15 @@
viewContent.innerHTML = html;
console.log(rawDecoded);
JsBarcode("#ean13", idToEAN13(decodedText), {
format: "EAN13",
JsBarcode("#@barcodeType", getBarcodeValue("@barcodeType", decodedText), {
format: "@barcodeType",
lineColor: "#000",
width: 2,
height: 80,
displayValue: true
});
document.getElementById("downloadBtn").addEventListener("click", () => downloadBarcode("ean13", decodedText));
document.getElementById("downloadBtn").addEventListener("click", () => downloadBarcode("@barcodeType", decodedText));
document.getElementById("printBtn").addEventListener("click", () => {
addAssetIdToBatch(asset.Cn);
showToast("@T["Successfully added barcode to print batch"]", "success");

View File

@@ -1,6 +1,9 @@
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer T
@inject IConfiguration Configuration
@{
string barcodeType = Configuration["BarcodeType"] ?? "EAN13";
}
<!-- Print Modal -->
<div class="modal fade" id="printModal" tabindex="-1" aria-labelledby="printModalLabel" aria-hidden="true">
@@ -17,6 +20,7 @@
</div>
<script>
const BARCODE_TYPE = '@barcodeType';
const printModal = document.getElementById('printModal');
printModal.addEventListener('show.bs.modal', async () => {
var assetIds = getAssetIdsFromBatch();
@@ -198,8 +202,8 @@
cell.appendChild(svg);
grid.appendChild(cell);
JsBarcode(svg, idToEAN13(asset.Cn), {
format: "EAN13",
JsBarcode(svg, getBarcodeValue(BARCODE_TYPE, asset.Cn), {
format: BARCODE_TYPE,
lineColor: "#000",
width: isMobileM ? 1 : (isMobileS ? 0.5 : 2),
height: isMobileM ? 20 : (isMobileS ? 20 : 40),
@@ -389,8 +393,8 @@
grid.appendChild(cell);
// Generate barcode
printWindow.JsBarcode(`#barcode_${i}`, idToEAN13(asset.Cn), {
format: "EAN13",
printWindow.JsBarcode(`#barcode_${i}`, getBarcodeValue(BARCODE_TYPE, asset.Cn), {
format: BARCODE_TYPE,
lineColor: "#000",
width: 2,
height: 50,