Android_Retail/src/Services/utils.js

64 lines
1.9 KiB
JavaScript

import { useSelector, useDispatch } from 'react-redux';
import {
ChangeTotalAmount,
globalExtraTotalAmount,
} from '../Features/ExteraCharges/ExtraCharges';
export const useUtilsComponent = () => {
const dispatch = useDispatch();
const extraCharges = useSelector(globalExtraTotalAmount);
const removeExtraCharge = (item) => {
const filtered = extraCharges?.filter((e) => e?.localId !== item?.localId);
dispatch(ChangeTotalAmount(filtered));
};
return {
removeExtraCharge,
};
};
export const generateBarcode = (code) => {
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;
}
};
export const generateQRCode = (QrandbarcodeDatas, code) => {
let Data = QrandbarcodeDatas?.find((e) => e?.key === code)?.url;
return Data;
};
export const generateQRCodeCopy = (QrandbarcodeDatas, code) => {
const found = QrandbarcodeDatas?.find((e) => e?.key === code);
const count = Number(found?.copiesCount);
return Number.isFinite(count) && count > 0 ? count : 0;
};
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
};