Android_Retail/src/Services/utils.js

64 lines
1.9 KiB
JavaScript
Raw Normal View History

2026-02-06 12:56:38 +05:30
import { useSelector, useDispatch } from 'react-redux';
2026-01-27 18:27:29 +05:30
import {
2026-02-06 15:25:33 +05:30
ChangeTotalAmount,
globalExtraTotalAmount,
2026-02-06 12:56:38 +05:30
} from '../Features/ExteraCharges/ExtraCharges';
2026-01-27 18:27:29 +05:30
export const useUtilsComponent = () => {
2026-02-06 15:25:33 +05:30
const dispatch = useDispatch();
const extraCharges = useSelector(globalExtraTotalAmount);
2026-01-27 18:27:29 +05:30
2026-02-06 15:25:33 +05:30
const removeExtraCharge = (item) => {
const filtered = extraCharges?.filter((e) => e?.localId !== item?.localId);
dispatch(ChangeTotalAmount(filtered));
};
2026-01-27 18:27:29 +05:30
2026-02-06 15:25:33 +05:30
return {
removeExtraCharge,
};
2026-02-06 12:56:38 +05:30
};
export const generateBarcode = (code) => {
2026-02-06 15:25:33 +05:30
try {
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
JsBarcode(svg, code, {
format: 'CODE128',
displayValue: false,
lineColor: '#030303',
width: 2,
height: 40,
});
const svgData = new XMLSerializer().serializeToString(svg);
return `data:image/svg+xml;base64,${btoa(svgData)}`;
} catch (error) {
return null;
}
2026-02-06 12:56:38 +05:30
};
export const generateQRCode = (QrandbarcodeDatas, code) => {
2026-02-06 15:25:33 +05:30
let Data = QrandbarcodeDatas?.find((e) => e?.key === code)?.url;
return Data;
2026-02-06 12:56:38 +05:30
};
export const generateQRCodeCopy = (QrandbarcodeDatas, code) => {
2026-02-06 15:25:33 +05:30
const found = QrandbarcodeDatas?.find((e) => e?.key === code);
2026-02-06 12:56:38 +05:30
2026-02-06 15:25:33 +05:30
const count = Number(found?.copiesCount);
return Number.isFinite(count) && count > 0 ? count : 0;
2026-02-06 12:56:38 +05:30
};
2026-02-06 15:25:33 +05:30
export const generateCodeImage = (code, codeType = 'Q', QrandbarcodeDatas) => {
if (codeType === 'B') {
return generateBarcode(code);
} else {
return generateQRCode(QrandbarcodeDatas, code);
}
};
export const formatDateForAPI = (date) => {
if (!date) return '';
const d = new Date(date);
const year = d.getFullYear();
const month = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`; // YYYY-MM-DD
2026-01-27 18:27:29 +05:30
};