Merge pull request 'bugfixed in Print' (#213) from bugfixingprint into main

Reviewed-on: Pozomind/pozo-retail-app#213
This commit is contained in:
karthikalakshmi 2026-03-03 11:31:38 +05:30
commit 3e7e04031b
17 changed files with 350 additions and 370 deletions

53
package-lock.json generated
View File

@ -547,6 +547,7 @@
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@ -595,6 +596,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz",
"integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==",
"peer": true,
"dependencies": {
"@babel/code-frame": "^7.28.6",
"@babel/generator": "^7.28.6",
@ -645,7 +647,6 @@
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
"integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/types": "^7.27.3"
},
@ -780,7 +781,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
"integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
},
@ -796,7 +796,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
"integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
},
@ -812,7 +811,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz",
"integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
"@babel/helper-module-imports": "^7.28.6",
@ -832,7 +830,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz",
"integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/plugin-transform-react-jsx": "^7.27.1"
},
@ -878,7 +875,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz",
"integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.1",
"@babel/helper-plugin-utils": "^7.27.1"
@ -994,6 +990,7 @@
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.1.0.tgz",
"integrity": "sha512-UfMBMWc1v7J+14AhH03QmeNwV3HZx3qnOWhpwnHfzALEwAwlV/itQOQqcasMQYhOHWL0tiymc5ByaLTn7KKQxw==",
"license": "MIT",
"peer": true,
"dependencies": {
"tslib": "^2.1.0"
}
@ -1013,6 +1010,7 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
"integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
"peer": true,
"dependencies": {
"@dnd-kit/accessibility": "^3.1.1",
"@dnd-kit/utilities": "^3.2.2",
@ -1143,6 +1141,7 @@
"version": "11.14.0",
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
"integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
"peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@ -1188,6 +1187,7 @@
"version": "11.14.1",
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz",
"integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==",
"peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@ -2009,6 +2009,7 @@
"resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz",
"integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==",
"deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
"peer": true,
"dependencies": {
"@babel/runtime": "^7.4.4",
"@material-ui/styles": "^4.11.5",
@ -2045,6 +2046,7 @@
"version": "4.11.3",
"resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz",
"integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==",
"peer": true,
"dependencies": {
"@babel/runtime": "^7.4.4"
},
@ -3015,6 +3017,7 @@
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@ -3084,6 +3087,7 @@
"version": "5.90.20",
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.20.tgz",
"integrity": "sha512-vXBxa+qeyveVO7OA0jX1z+DeyCA4JKnThKv411jd5SORpBKgkcVnYKCiBgECvADvniBX7tobwBmg01qq9JmMJw==",
"peer": true,
"dependencies": {
"@tanstack/query-core": "5.90.20"
},
@ -3352,6 +3356,7 @@
"version": "18.3.27",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
"integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
"peer": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.2.2"
@ -3362,6 +3367,7 @@
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
"integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
"devOptional": true,
"peer": true,
"peerDependencies": {
"@types/react": "^18.0.0"
}
@ -3498,6 +3504,7 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@ -3527,7 +3534,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==",
"license": "MIT",
"peer": true,
"dependencies": {
"co": "^4.6.0",
"fast-deep-equal": "^1.0.0",
@ -3578,8 +3584,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==",
"license": "MIT",
"peer": true
"license": "MIT"
},
"node_modules/align-text": {
"version": "0.1.4",
@ -3672,6 +3677,7 @@
"version": "5.29.3",
"resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz",
"integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==",
"peer": true,
"dependencies": {
"@ant-design/colors": "^7.2.1",
"@ant-design/cssinjs": "^1.23.0",
@ -4049,6 +4055,7 @@
"version": "1.13.3",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.3.tgz",
"integrity": "sha512-ERT8kdX7DZjtUm7IitEyV7InTHAF42iJuMArIiDIV5YtPanJkgw4hw5Dyg9fh0mihdWNn1GKaeIWErfe56UQ1g==",
"peer": true,
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.4",
@ -4337,6 +4344,7 @@
"url": "https://github.com/sponsors/ai"
}
],
"peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759",
@ -4717,7 +4725,6 @@
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"license": "MIT",
"peer": true,
"engines": {
"iojs": ">= 1.0.0",
"node": ">= 0.12.0"
@ -5241,6 +5248,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
"integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"peer": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/kossnocorp"
@ -5249,7 +5257,8 @@
"node_modules/dayjs": {
"version": "1.11.19",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
"integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
"integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
"peer": true
},
"node_modules/debounce-fn": {
"version": "6.0.0",
@ -5892,6 +5901,7 @@
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@ -7190,7 +7200,8 @@
"node_modules/highcharts": {
"version": "11.4.8",
"resolved": "https://registry.npmjs.org/highcharts/-/highcharts-11.4.8.tgz",
"integrity": "sha512-5Tke9LuzZszC4osaFisxLIcw7xgNGz4Sy3Jc9pRMV+ydm6sYqsPYdU8ELOgpzGNrbrRNDRBtveoR5xS3SzneEA=="
"integrity": "sha512-5Tke9LuzZszC4osaFisxLIcw7xgNGz4Sy3Jc9pRMV+ydm6sYqsPYdU8ELOgpzGNrbrRNDRBtveoR5xS3SzneEA==",
"peer": true
},
"node_modules/highcharts-react-official": {
"version": "3.2.3",
@ -8015,6 +8026,7 @@
"resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.2.2.tgz",
"integrity": "sha512-+7oXAUnFCA6vS0omIGHcWpSr67dUBIF7FKGYSXyzxShSLqM6LBgdugWKFl0XrYtGWyJMGfQR5F4LL85iCefkRA==",
"dev": true,
"peer": true,
"dependencies": {
"@javascript-obfuscator/escodegen": "2.3.1",
"@javascript-obfuscator/estraverse": "5.4.0",
@ -8315,8 +8327,7 @@
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==",
"license": "MIT",
"peer": true
"license": "MIT"
},
"node_modules/json-schema-typed": {
"version": "8.0.2",
@ -8996,6 +9007,7 @@
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"peer": true,
"engines": {
"node": "*"
}
@ -9710,6 +9722,7 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"peer": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@ -10482,6 +10495,7 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
},
@ -10642,6 +10656,7 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@ -10711,7 +10726,8 @@
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"peer": true
},
"node_modules/react-qr-code": {
"version": "2.0.18",
@ -10729,6 +10745,7 @@
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz",
"integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==",
"peer": true,
"dependencies": {
"@babel/runtime": "^7.12.1",
"@types/hoist-non-react-statics": "^3.3.1",
@ -11009,6 +11026,7 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
"integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
"peer": true,
"dependencies": {
"@babel/runtime": "^7.9.2"
}
@ -11025,7 +11043,8 @@
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
"integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
"dev": true
"dev": true,
"peer": true
},
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
@ -11389,6 +11408,7 @@
"resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz",
"integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==",
"dev": true,
"peer": true,
"dependencies": {
"chokidar": "^4.0.0",
"immutable": "^5.0.2",
@ -12829,6 +12849,7 @@
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz",
"integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==",
"dev": true,
"peer": true,
"dependencies": {
"esbuild": "^0.18.10",
"postcss": "^8.4.27",

View File

@ -1313,21 +1313,18 @@ const InvoiceTemplate = ({
{/* Identifiers */}
{identifiers.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
{/* Serial + IMEIs in one line */}
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div style={{ display: 'flex', gap: '3px' }}>
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}</div>
)}
</div>
)}
{/* Description on new line */}
{id?.Description && <div>{id.Description}</div>}
</div>
(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div key={i} style={{ display: 'flex', gap: '3px' }}>
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}</div>
)}
</div>
)
))}
{/* Description from first identifier */}
{identifiers[0]?.Description && <div>{identifiers[0].Description}</div>}
</>
);
})()}
@ -3016,24 +3013,40 @@ const InvoiceTemplate = ({
{item?.BrandName && <div>{item.BrandName}</div>}
{/* Identifiers */}
{item?.ProductIdentifierDtls?.map((id, index) => (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
{(() => {
const firstDescription = item?.ProductIdentifierDtls?.find(
d => d?.Description
)?.Description;
{/* Serial + IMEIs in one row */}
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div style={{ display: 'flex', gap: '4px' }}>
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}</div>
)}
</div>
)}
return (
<>
{/* Serial + IMEI */}
{item?.ProductIdentifierDtls?.map((id, index) => (
<div
key={index}
style={{ display: 'flex', gap: '4px', marginBottom: '2px' }}
>
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && (
<div>
{[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}
</div>
)}
</div>
))}
{/* Description Outside */}
{firstDescription && (
<div style={{ marginTop: '4px' }}>
{firstDescription}
</div>
)}
</>
);
})()}
{/* Description on new line */}
{id?.Description && <div>{id.Description}</div>}
</div>
))}
</td>
)}
{GlobaldummyData

View File

@ -1792,25 +1792,20 @@ const PrintA4Style11 = ({
{/* Identifiers */}
{item?.ProductIdentifierDtls?.map((id, index) => (
<div key={index}>
{/* Serial Number */}
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{/* IMEI */}
{(id?.IMEI1 || id?.IMEI2) && (
<div>
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div>
)}
{/* Description */}
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && id?.Description && (
<div>{id.Description}</div>
)}
</div>
(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</div>
)}
</div>
)
))}
{/* Description from first identifier */}
{item?.ProductIdentifierDtls?.[0]?.Description && (
<div>{item.ProductIdentifierDtls[0].Description}</div>
)}
</td>
)
)}

View File

@ -1711,26 +1711,20 @@ const PrintA5Style11 = ({
{item?.BrandName && <div>{item.BrandName}</div>}
{item?.ProductIdentifierDtls?.map((id, index) => (
<div key={index}>
{/* Serial Number */}
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{/* IMEI */}
{(id?.IMEI1 || id?.IMEI2) && (
<div>
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div>
)}
{/* Description */}
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) &&
id?.Description && (
<div>{id.Description}</div>
(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</div>
)}
</div>
</div>
)
))}
{/* Description from first identifier */}
{item?.ProductIdentifierDtls?.[0]?.Description && (
<div>{item.ProductIdentifierDtls[0].Description}</div>
)}
</td>
)
)}

View File

@ -836,21 +836,26 @@ const TaxInvoice = ({
)}
<div>
{item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i}>
<div style={{ display: "flex", gap: "5px", flexWrap: "wrap" }}>
{id?.SerialNumber && <span>{id.SerialNumber}</span>}
{(id?.IMEI1 || id?.IMEI2) && (
<span>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</span>
)}
</div>
{id?.Description && (
<div style={{ marginTop: "3px", wordBreak: "break-word" }}>
{id.Description}
</div>
<div key={i} style={{ display: "flex", gap: "5px", flexWrap: "wrap" }}>
{id?.SerialNumber && <span>{id.SerialNumber}</span>}
{(id?.IMEI1 || id?.IMEI2) && (
<span>
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</span>
)}
</div>
))}
{/* Description outside */}
{item?.ProductIdentifierDtls
?.find(d => d?.Description)
?.Description && (
<div style={{ marginTop: "3px", wordBreak: "break-word" }}>
{item?.ProductIdentifierDtls
?.find(d => d?.Description)
?.Description}
</div>
)}
</div>
</div>

View File

@ -829,15 +829,16 @@ const PrintStyle1 = ({
);
})
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
{item?.ProductIdentifierDtls?.length > 0 &&
item?.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => (
<div key={i}>{a.Description}</div>
))
: ''}
)?.Description && (
<div>{item.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}</div>
)}
</div>
</td>
@ -4044,14 +4045,16 @@ const PrintStyle1 = ({
);
})
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
{item?.ProductIdentifierDtls?.length > 0 &&
item?.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => (
<div key={i}>{a.Description} </div>
))
: ''}
)?.Description && (
<div>{item.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}</div>
)}
</div>
</td>
)}

View File

@ -724,14 +724,16 @@ const PrintStyle10 = ({
&nbsp;
<div style={{ display: 'flex', flexDirection: 'column', gap: '3px' }}>
{item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
<div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>
)}
{id.Description && <div>{id.Description}</div>}
</div>
))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</div>
) : (
@ -744,14 +746,16 @@ const PrintStyle10 = ({
{/* Product identifiers */}
{item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
<div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>
)}
{id.Description && <div>{id.Description}</div>}
</div>
))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
)}
</td>
@ -3286,12 +3290,14 @@ const PrintStyle10 = ({
{/* Product Identifiers */}
{item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
<div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>}
{id.Description && <div>{id.Description}</div>}
</div>
))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
) : (
<div>
@ -3328,14 +3334,16 @@ const PrintStyle10 = ({
: ''} */}
<div style={{ display: 'flex', flexDirection: 'column', gap: "3px" }}>
{item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: "2px" }}>
<div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>
)}
{id.Description && <div>{id.Description}</div>}
</div>
))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</div>
)}

View File

@ -693,25 +693,19 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if nothing exists
if (!serial && !imeis && !description) return null;
if (!serial && !imeis) return null;
return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
{/* Serial + IMEI in one line */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imei && <div>{imeis}</div>}
</div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
);
})}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</div>
) : (
@ -731,22 +725,20 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber;
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(',');
const description = detail.Description;
// Only render if at least one value exists
if (!serial && !imeis && !description) return null;
if (!serial && !imeis) return null;
return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
{description && <div>{description}</div>}
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
);
})}
</div>
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
)}
@ -3284,25 +3276,19 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, idx) => {
const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if nothing exists
if (!serial && !imeis && !description) return null;
if (!serial && !imeis) return null;
return (
<div key={idx} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
{/* Serial + IMEIs on one line */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
<div key={idx} style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
);
})}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
) : (
<div>
@ -3351,25 +3337,19 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if nothing exists
if (!serial && !imeis && !description) return null;
if (!serial && !imeis) return null;
return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
{/* Serial + IMEIs on one line */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
);
})}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</div>
)}

View File

@ -843,26 +843,19 @@ const Printstyle12 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if all are empty
if (!serial && !imeis && !description) return null;
if (!serial && !imeis) return null;
return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
{/* Serial + IMEIs on the same row */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
);
})}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</div>
) : (
@ -3540,26 +3533,19 @@ const Printstyle12 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip empty entries
if (!serial && !imeis && !description) return null;
if (!serial && !imeis) return null;
return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}>
{/* Serial + IMEIs in one row */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>}
</div>
);
})}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</div>
)}

View File

@ -765,15 +765,16 @@ const Printstyle2 = ({
);
})
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
{item?.ProductIdentifierDtls?.length > 0 &&
item?.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => (
<div key={i}>{a.Description}</div>
))
: ''}
)?.Description && (
<div>{item.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}</div>
)}
</div>
</div>
@ -3357,15 +3358,16 @@ const Printstyle2 = ({
);
})
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
{item?.ProductIdentifierDtls?.length > 0 &&
item?.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => (
<div key={i}>{a.Description}</div>
))
: ''}
)?.Description && (
<div>{item.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}</div>
)}
</div>
</div>
</td>

View File

@ -327,15 +327,16 @@ const PrintStyle3 = ({ index, totalQuantityFilter, Date1, CashierName, totalQuan
);
})
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
{item?.ProductIdentifierDtls?.length > 0 &&
item?.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => (
<div key={i}>{a.Description} </div>
))
: ''}
)?.Description && (
<div>{item.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}</div>
)}
</div>
</div>
</div>}
@ -1286,15 +1287,16 @@ const PrintStyle3 = ({ index, totalQuantityFilter, Date1, CashierName, totalQuan
);
})
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
{item?.ProductIdentifierDtls?.length > 0 &&
item?.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => (
<span key={i}>{a.Description}</span>
))
: ''}
)?.Description && (
<span>{item.ProductIdentifierDtls.find(
(items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}</span>
)}
</div>
</div>
</div>}

View File

@ -784,12 +784,10 @@ const Printstyle4 = ({
<div key={`imei-${i}`}>{iVal}</div>
))}
{/* Description - Always New Line */}
{descriptions.map((d, i) => (
<div key={`desc-${i}`}>{d}</div>
))}
{/* Description from first identifier */}
{descriptions[0] && (
<div>{descriptions[0]}</div>
)}
</td>
)
}
@ -3357,14 +3355,12 @@ const Printstyle4 = ({
</div>
))}
{/* ✅ Description ALWAYS NEW LINE */}
{item?.ProductIdentifierDtls
?.filter(d => d.Description)
?.map((d, i) => (
<div key={`desc-${i}`}>
{d.Description}
</div>
))}
{/* Description from first identifier */}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>
{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
</div>
)}
</td>
)}
{GlobaldummyData
@ -3403,14 +3399,12 @@ const Printstyle4 = ({
</div>
))}
{/* ✅ Description NEW LINE */}
{item?.ProductIdentifierDtls
?.filter(d => d.Description)
?.map((d, i) => (
<div key={`desc-${i}`}>
{d.Description}
</div>
))}
{/* Description from first identifier */}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>
{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
</div>
)}
</div>
) : (
@ -3709,16 +3703,15 @@ const Printstyle4 = ({
.join('')
: '')
+
(item?.ProductIdentifierDtls
?.length > 0
? item?.ProductIdentifierDtls.filter(
(item?.ProductIdentifierDtls?.length > 0 &&
item?.ProductIdentifierDtls.find(
(item1) =>
item1.IMEI1 || item1.IMEI2 || item1.SerialNumber
)
.map((item2) => {
return ` ${item2?.Description}`;
})
.join('')
)?.Description
? ` ${item.ProductIdentifierDtls.find(
(item1) =>
item1.IMEI1 || item1.IMEI2 || item1.SerialNumber
).Description}`
: '')
).trim()}
</td>

View File

@ -729,23 +729,26 @@ const PrintStyle5 = ({
</div>
))}
{/* 🔢 Identifiers (Serial / IMEI / Description) */}
{/* 🔢 Identifiers (Serial / IMEI) */}
{identifiers.map((d, i) => {
const serial = d.SerialNumber;
const imei = [d.IMEI1, d.IMEI2].filter(Boolean).join(", ");
const description = d.Description;
if (!serial && !imei && !description) return null;
if (!serial && !imei) return null;
return (
<div key={i}>
{serial && <div>{serial}</div>}
{imei && <div>{imei}</div>}
{description && <div>{description}</div>}
</div>
);
})}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🔢 Quantity */}
<div>
{GlobaldummyData
@ -777,23 +780,26 @@ const PrintStyle5 = ({
<div>{item.BrandName}</div>
)}
{/* 🔢 Identifiers (Serial / IMEI / Description) */}
{/* 🔢 Identifiers (Serial / IMEI) */}
{identifiers.map((d, i) => {
const serial = d.SerialNumber;
const imei = [d.IMEI1, d.IMEI2].filter(Boolean).join(", ");
const description = d.Description;
if (!serial && !imei && !description) return null;
if (!serial && !imei) return null;
return (
<div key={i}>
{serial && <div>{serial}</div>}
{imei && <div>{imei}</div>}
{description && <div>{description}</div>}
</div>
);
})}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🔢 Quantity */}
<div>
-
@ -3043,13 +3049,12 @@ const PrintStyle5 = ({
{/* 🏷 Brand */}
{item?.BrandName && <div>{item.BrandName}</div>}
{/* 🔢 Serial / IMEI / Description */}
{/* 🔢 Serial / IMEI */}
{identifiers.map((d, i) => {
const values = [
d.SerialNumber,
d.IMEI1,
d.IMEI2,
d.Description
d.IMEI2
].filter(Boolean);
if (values.length === 0) return null;
@ -3061,6 +3066,11 @@ const PrintStyle5 = ({
);
})}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🧪 Debug / Extra Text */}
<div>ssd3</div>
@ -3094,13 +3104,12 @@ const PrintStyle5 = ({
{/* 🏷 Brand */}
{item?.BrandName && <div>{item.BrandName}</div>}
{/* 🔢 Serial / IMEI / Description */}
{/* 🔢 Serial / IMEI */}
{identifiers.map((d, i) => {
const values = [
d.SerialNumber,
d.IMEI1,
d.IMEI2,
d.Description
d.IMEI2
].filter(Boolean);
if (values.length === 0) return null;
@ -3112,6 +3121,11 @@ const PrintStyle5 = ({
);
})}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🧪 Debug / Extra Text */}
<div>ssd4</div>

View File

@ -816,14 +816,12 @@ const Printstyle6 = ({
</div>
))}
{/* 📝 Description (Always New Line) */}
{(item?.ProductIdentifierDtls ?? [])
.filter(d => d.SerialNumber || d.IMEI1 || d.IMEI2 || d.Description)
.map((d, i) => (
<div key={`description-${i}`}>
{d.Description}
</div>
))}
{/* 📝 Description from first identifier */}
{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>
{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
</div>
)}
{/* 🔢 Quantity */}
<div>
@ -1184,11 +1182,12 @@ const Printstyle6 = ({
{[d.IMEI1, d.IMEI2].filter(Boolean).join(", ")}
</div>
))}
{(item?.ProductIdentifierDtls ?? [])
.filter(d => d.IMEI1 || d.IMEI2 || d.SerialNumber)
.map((d, i) => (
<div key={`description-${i}`}>{d.Description}</div>
))}
{/* 📝 Description from first identifier */}
{(item?.ProductIdentifierDtls ?? []).find(d => d.IMEI1 || d.IMEI2 || d.SerialNumber)?.Description && (
<div>
{(item?.ProductIdentifierDtls ?? []).find(d => d.IMEI1 || d.IMEI2 || d.SerialNumber).Description}
</div>
)}
{/* 🔢 Quantity */}
<div>
@ -3905,16 +3904,12 @@ const Printstyle6 = ({
</div>
))}
{/* 📝 Description (only if Serial or IMEI exists) */}
{identifiers
.filter(d => d.SerialNumber || d.IMEI1 || d.IMEI2 || d.Description)
.map((d, i) =>
d.Description ? (
<div key={`description-${i}`}>
{d.Description}
</div>
) : null
)}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
</div>
)}
{/* 🔢 Quantity */}
<div>

View File

@ -718,14 +718,12 @@ const PrintStyle7 = ({
))}
{(item?.ProductIdentifierDtls ?? [])
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2)
.map((a, i) =>
a.Description ? (
<div key={`desc-${i}`}>
{a.Description}
</div>
) : null
)}
.find(items => items.SerialNumber || items.IMEI1 || items.IMEI2)?.Description && (
<div>
{(item?.ProductIdentifierDtls ?? [])
.find(items => items.SerialNumber || items.IMEI1 || items.IMEI2).Description}
</div>
)}
</div>
</td>
)}
@ -955,6 +953,8 @@ const PrintStyle7 = ({
const hasSerial = data.SerialNumber;
const hasIMEI = data.IMEI1 || data.IMEI2;
if (!hasSerial && !hasIMEI) return null;
return (
<div key={i}>
{hasSerial && <div>{data.SerialNumber}</div>}
@ -966,13 +966,16 @@ const PrintStyle7 = ({
.join(",")}
</div>
)}
{(hasSerial || hasIMEI) && data.Description && (
<div>{data.Description}</div>
)}
</div>
);
})}
{/* 📝 Description from first identifier */}
{(item?.ProductIdentifierDtls ?? []).find(data => data.SerialNumber || data.IMEI1 || data.IMEI2)?.Description && (
<div>
{(item?.ProductIdentifierDtls ?? []).find(data => data.SerialNumber || data.IMEI1 || data.IMEI2).Description}
</div>
)}
</div>
</td>
)
@ -3170,15 +3173,15 @@ const PrintStyle7 = ({
</div>
))}
{(item?.ProductIdentifierDtls ?? []).filter(
{(item?.ProductIdentifierDtls ?? []).find(
items => items.SerialNumber || items.IMEI1 || items.IMEI2
).map((a, i) => (
a.Description && (
<div key={`desc-${i}`}>
{a.Description}
</div>
)
))}
)?.Description && (
<div>
{(item?.ProductIdentifierDtls ?? []).find(
items => items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}
</div>
)}
</div>
</td>
)}
@ -3401,13 +3404,11 @@ const PrintStyle7 = ({
</div>
))}
{(item?.ProductIdentifierDtls ?? [])
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2)
.map((a, i) =>
a.Description ? (
<div key={`desc-${i}`}>{a.Description}</div>
) : null
)}
{(item?.ProductIdentifierDtls ?? []).find(items => items.SerialNumber || items.IMEI1 || items.IMEI2)?.Description && (
<div>
{(item?.ProductIdentifierDtls ?? []).find(items => items.SerialNumber || items.IMEI1 || items.IMEI2).Description}
</div>
)}
</div>
</div>
</td>

View File

@ -806,17 +806,11 @@ const Printstyle8 = ({
</div>
);
})
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
(items) =>
items.SerialNumber || items.IMEI1 || id.IMEI2
)?.map((a, i) => (
<span key={i}>{a.Description}</span>
))
: ''}
</div>
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</td>
)}
{GlobaldummyData
@ -1154,17 +1148,10 @@ const Printstyle8 = ({
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div>
))}
{(item?.ProductIdentifierDtls ?? [])
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2)
.map((a, i) =>
a.Description ? (
<div key={`desc-${i}`}>
{a.Description}
</div>
) : null
)}
</div>
{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</td>
)}
{GlobaldummyData
@ -3780,28 +3767,17 @@ const Printstyle8 = ({
{/* 🔢 Identifiers */}
<div style={{ display: "flex", flexDirection: "column", gap: "3px" }}>
{(item?.ProductIdentifierDtls ?? []).map((data, i) => {
const hasSerial = data.SerialNumber;
const hasIMEI = data.IMEI1 || data.IMEI2;
return (
<div key={i}>
{hasSerial && <div>{data.SerialNumber}</div>}
{hasIMEI && (
<div>
{[data.IMEI1, data.IMEI2]
.filter(Boolean)
.join(",")}
</div>
)}
{(hasSerial || hasIMEI) && data.Description && (
<div>{data.Description}</div>
)}
</div>
);
})}
{(item?.ProductIdentifierDtls ?? []).map((data, i) => (
<div key={i}>
{data.SerialNumber && <div>{data.SerialNumber}</div>}
{(data.IMEI1 || data.IMEI2) && (
<div>{[data.IMEI1, data.IMEI2].filter(Boolean).join(",")}</div>
)}
</div>
))}
{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</td>
)

View File

@ -741,11 +741,11 @@ const PrintStyle9 = ({
{(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</div>
)}
{(id.SerialNumber || id.IMEI1 || id.IMEI2) && id.Description && (
<div>{id.Description}</div>
)}
</div>
))}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</div>
) : (
@ -774,13 +774,11 @@ const PrintStyle9 = ({
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div>
)}
{(id.SerialNumber || id.IMEI1 || id.IMEI2) &&
id.Description && (
<div>{id.Description}</div>
)}
</div>
))}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
);
})()}
@ -3432,15 +3430,9 @@ const PrintStyle9 = ({
</div>
))}
{(item?.ProductIdentifierDtls ?? [])
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2)
.map((a, i) =>
a.Description ? (
<div key={`desc-${i}`}>
{a.Description}
</div>
) : null
)}
{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div>
</td>
)}