After Lazy Loading Design Solved

This commit is contained in:
Your Name 2026-02-11 11:35:57 +05:30
parent 7536be8bb9
commit 01b77af722
27 changed files with 1702 additions and 759 deletions

View File

@ -564,7 +564,7 @@ Button[disabled] {
.ant-table-cell { .ant-table-cell {
background: #fafafa7a; background: #fafafa7a;
//vicky //vicky
padding: 1px 8px !important; padding: 6px 6px !important;
border: 0.5px solid rgb(235, 235, 235); border: 0.5px solid rgb(235, 235, 235);
} }

View File

@ -20,6 +20,7 @@ import { DefaultModal } from "../../Components/Modal/DefaultModal";
import { FaRegEye } from "react-icons/fa"; import { FaRegEye } from "react-icons/fa";
import { render } from "react-dom"; import { render } from "react-dom";
import { useAuth } from "../../AuthContext"; import { useAuth } from "../../AuthContext";
import "./AutomatedReorder.scss";
const subDirectory = import.meta.env.BASE_URL; const subDirectory = import.meta.env.BASE_URL;

View File

@ -1,436 +1,488 @@
import { Switch, Tooltip } from "antd" import { Switch, Tooltip } from 'antd';
import { useDispatch } from "react-redux"; import { useDispatch } from 'react-redux';
import { changeBillName, changeNotes, changeSelectedAmount, changeSelectedDiscount, changeSelectedHsnCode, changeSelectedItem, changeSelectedMRP, changeSelectedprintStyle, changeSelectedQrcode, changeSelectedQuantity, changeSelectedRate, changeSelectedSignature, changeSelectedSlNo, changeSelectedtermsAndConditions, changeSignatureImage, changethemeFormat, getPrintSelectionComponentData, putPrintSelectionComponentData, changeSelectedPrintdummyData } from "../../../../Features/ThemeChange/ThemeChange"; import {
import { useEffect, useState, useMemo, useCallback } from "react"; changeBillName,
import { InfoCircleOutlined, UploadOutlined, PlusOutlined, MinusCircleOutlined, ArrowRightOutlined, EditFilled, DeleteFilled } from '@ant-design/icons'; changeNotes,
import { getSession } from "../../../../Services/Others"; changeSelectedAmount,
import Buttons from "../../../../Components/Forms/Buttons"; changeSelectedDiscount,
import { Messages } from "../../../../Components/Notifications/Messages"; changeSelectedHsnCode,
changeSelectedItem,
changeSelectedMRP,
changeSelectedprintStyle,
changeSelectedQrcode,
changeSelectedQuantity,
changeSelectedRate,
changeSelectedSignature,
changeSelectedSlNo,
changeSelectedtermsAndConditions,
changeSignatureImage,
changethemeFormat,
getPrintSelectionComponentData,
putPrintSelectionComponentData,
changeSelectedPrintdummyData,
} from '../../../../Features/ThemeChange/ThemeChange';
import { useEffect, useState, useMemo, useCallback } from 'react';
import {
InfoCircleOutlined,
UploadOutlined,
PlusOutlined,
MinusCircleOutlined,
ArrowRightOutlined,
EditFilled,
DeleteFilled,
} from '@ant-design/icons';
import { getSession } from '../../../../Services/Others';
import Buttons from '../../../../Components/Forms/Buttons';
import { Messages } from '../../../../Components/Notifications/Messages';
const SalesPrintSize = ({ onSettingsChange, closeModel }) => { const SalesPrintSize = ({ onSettingsChange, closeModel }) => {
const CompId = getSession("CompId") const CompId = getSession('CompId');
const BranchId = getSession("BranchId") const BranchId = getSession('BranchId');
const AppId = getSession("AppId") const AppId = getSession('AppId');
const UserId = getSession('UserId'); const UserId = getSession('UserId');
const dispatch = useDispatch() const dispatch = useDispatch();
const [PrintType, setPrintType] = useState(false); const [PrintType, setPrintType] = useState(false);
const [PageSize, setPageSize] = useState(false); const [PageSize, setPageSize] = useState(false);
// const [PrintTemplates, setPrintTemplates] = useState([]) // const [PrintTemplates, setPrintTemplates] = useState([])
const [SizeOptionData, setSizeOptionData] = useState([]) const [SizeOptionData, setSizeOptionData] = useState([]);
const [selectedTemplate, setSelectedTemplate] = useState(null) const [selectedTemplate, setSelectedTemplate] = useState(null);
const [messageType, setMessageType] = useState('') const [messageType, setMessageType] = useState('');
const [messageData, setMessageData] = useState('') const [messageData, setMessageData] = useState('');
console.log(selectedTemplate, 'selectedTemplate'); console.log(selectedTemplate, 'selectedTemplate');
// Memoized values for better performance
const currentPrintType = useMemo(() => {
if (selectedTemplate) {
return selectedTemplate.PrintType === 'S' ? true : false;
}
return PrintType;
}, [selectedTemplate, PrintType]);
// Memoized values for better performance const currentPageSize = useMemo(() => {
const currentPrintType = useMemo(() => { if (selectedTemplate) {
if (selectedTemplate) { return selectedTemplate.PageSize === 'A5' ? true : false;
return selectedTemplate.PrintType === 'S' ? true : false; }
} return PageSize;
return PrintType; }, [selectedTemplate, PageSize]);
}, [selectedTemplate, PrintType]);
const currentPageSize = useMemo(() => { // Get the actual values to pass to parent component
if (selectedTemplate) { const getPrintTypeValue = () => {
return selectedTemplate.PageSize === 'A5' ? true : false; if (selectedTemplate) {
} return selectedTemplate.PrintType;
return PageSize; }
}, [selectedTemplate, PageSize]); return PrintType ? 'S' : 'C';
};
// Get the actual values to pass to parent component const getPageSizeValue = () => {
const getPrintTypeValue = () => { if (selectedTemplate) {
if (selectedTemplate) { return selectedTemplate.PageSize;
return selectedTemplate.PrintType; }
} return PageSize ? 'A5' : 'A4';
return PrintType ? 'S' : 'C'; };
};
const getPageSizeValue = () => { useEffect(() => {
if (selectedTemplate) { printsyleget();
return selectedTemplate.PageSize; }, []);
}
return PageSize ? 'A5' : 'A4';
};
useEffect(() => { // Auto-select default template when data loads
printsyleget() useEffect(() => {
}, []) if (SizeOptionData.length > 0) {
const defaultTemplate = SizeOptionData.find(
(template) => template.SetasDefault === 'Y'
);
if (defaultTemplate) {
handleTemplateSelect(defaultTemplate);
}
}
}, [SizeOptionData]);
// Auto-select default template when data loads const handleTemplateSelect = (template) => {
useEffect(() => { setSelectedTemplate(template);
if (SizeOptionData.length > 0) { setPrintType(template.PrintType === 'S');
const defaultTemplate = SizeOptionData.find(template => template.SetasDefault === "Y"); setPageSize(template.PageSize === 'A5');
if (defaultTemplate) { stylePreview(template);
handleTemplateSelect(defaultTemplate);
}
}
}, [SizeOptionData]);
const handleTemplateSelect = (template) => { // Immediately pass the template settings
setSelectedTemplate(template); if (onSettingsChange && typeof onSettingsChange === 'function') {
setPrintType(template.PrintType === 'S'); const currentSettings = {
setPageSize(template.PageSize === 'A5'); PrintType: template.PrintType,
stylePreview(template); PageSize: template.PageSize,
selectedTemplate: template,
};
console.log('Template Selected - Settings:', currentSettings);
onSettingsChange(currentSettings);
}
};
// Immediately pass the template settings const onChangeToggle = async (e) => {
if (onSettingsChange && typeof onSettingsChange === 'function') { setPrintType(e);
const currentSettings = { await dispatch(changethemeFormat(e));
PrintType: template.PrintType,
PageSize: template.PageSize,
selectedTemplate: template
};
console.log('Template Selected - Settings:', currentSettings);
onSettingsChange(currentSettings);
}
};
const onChangeToggle = async (e) => { // If a template is selected, update it
setPrintType(e); if (selectedTemplate) {
await dispatch(changethemeFormat(e)); const updatedTemplate = {
...selectedTemplate,
PrintType: e ? 'S' : 'C',
};
setSelectedTemplate(updatedTemplate);
// If a template is selected, update it // Immediately pass updated settings
if (selectedTemplate) { if (onSettingsChange && typeof onSettingsChange === 'function') {
const updatedTemplate = {
...selectedTemplate,
PrintType: e ? 'S' : 'C'
};
setSelectedTemplate(updatedTemplate);
// Immediately pass updated settings
if (onSettingsChange && typeof onSettingsChange === 'function') {
const currentSettings = {
PrintType: updatedTemplate.PrintType,
PageSize: updatedTemplate.PageSize,
selectedTemplate: updatedTemplate
};
onSettingsChange(currentSettings);
}
}
};
const onChangepageSize = async (e) => {
setPageSize(e);
// If a template is selected, update it
if (selectedTemplate) {
const updatedTemplate = {
...selectedTemplate,
PageSize: e ? 'A5' : 'A4'
};
setSelectedTemplate(updatedTemplate);
if (onSettingsChange && typeof onSettingsChange === 'function') {
const currentSettings = {
PrintType: updatedTemplate.PrintType,
PageSize: updatedTemplate.PageSize,
selectedTemplate: updatedTemplate
};
onSettingsChange(currentSettings);
}
}
};
const stylePreview = async (template) => {
if (!template) return;
const { StyleId, StyleName, PrintType: printType, PageSize, Notes, PrintHdrName, Signature, TermsandConditions, OptionDetails } = template;
const helperFunction = (param) => {
return OptionDetails.some(
(item) => item.ConfigName === param
)
}
dispatch(changeSelectedSlNo(helperFunction('Sl.No')));
dispatch(changeSelectedItem(helperFunction('Item')));
dispatch(changeSelectedMRP(helperFunction('MRP')));
dispatch(changeSelectedDiscount(helperFunction('Discount')));
dispatch(changeSelectedQuantity(helperFunction('Quantity')));
dispatch(changeSelectedRate(helperFunction('Rate')));
dispatch(changeSelectedAmount(helperFunction('Amount')));
dispatch(changeSelectedHsnCode(helperFunction('HsnCode')));
dispatch(changeSelectedQrcode(helperFunction('Qrcode')));
dispatch(changeSelectedSignature(helperFunction('signature')));
dispatch(changeSelectedtermsAndConditions(helperFunction('terms&conditions')));
dispatch(changeNotes(helperFunction('Notes')));
dispatch(changeSignatureImage(Signature));
dispatch(changeBillName(PrintHdrName));
dispatch(changeSelectedprintStyle({
ConfigId: StyleId,
ConfigName: StyleName,
}));
};
const printsyleget = async () => {
try {
const Data = { AppId, CompId, BranchId };
let response = await dispatch(getPrintSelectionComponentData(Data)).unwrap();
if (response?.data?.statusCode === 1) {
// const salesTemplates = response.data.data?.flatMap(template =>
// (template.ComponentDetails || []).filter(comp => comp.PrintTypeName === "Sales" && comp.SetasDefault === "Y")
// );
// setPrintTemplates(salesTemplates);
let TableData = response?.data?.data?.[0]?.ComponentDetails.map(
(item) => ({
ActiveStatus: 'A',
OptionDetails: item.FieldDetails,
StyleId: item.StyleId,
SetasDefault: item.SetasDefault,
SetasDefaultInvoice: item.SetasDefaultInvoice,
StyleName: item.StyleName,
Signature: item.Signature,
PrintType: item.PrintType,
PrintHdrName: item.PrintHdrName,
Notes: item?.Notes,
PageSize: item?.PageSize,
PrintTypeId: item?.PrintTypeId,
TermsandConditions: (item?.TermsandConditions
? item?.TermsandConditions
: []
)?.map((tc) => tc?.TermsandConditions),
})
)?.sort((a, b) => {
if ((a.StyleName || '') === 'A4Standard') return 1;
if ((b.StyleName || '') === 'A4Standard') return -1;
const isA4orA5 = (name) => /A4|A5/i.test(name);
const nameA = a.StyleName || '';
const nameB = b.StyleName || '';
if (isA4orA5(nameA) && !isA4orA5(nameB)) return 1;
if (!isA4orA5(nameA) && isA4orA5(nameB)) return -1;
const numA = parseInt(nameA.match(/\d+/)?.[0]) || 0;
const numB = parseInt(nameB.match(/\d+/)?.[0]) || 0;
return numA - numB;
});
setSizeOptionData(TableData);
}
} catch (error) {
console.error('Error fetching print styles:', error);
}
};
// Log current values for debugging
console.log('Current PrintType:', getPrintTypeValue());
console.log('Current PageSize:', getPageSizeValue());
console.log('Selected Template:', selectedTemplate);
useEffect(() => {
const currentSettings = { const currentSettings = {
PrintType: getPrintTypeValue(), PrintType: updatedTemplate.PrintType,
PageSize: getPageSizeValue(), PageSize: updatedTemplate.PageSize,
selectedTemplate selectedTemplate: updatedTemplate,
}; };
console.log('Current Print Settings:', currentSettings); onSettingsChange(currentSettings);
}
}
};
// Call the callback if provided const onChangepageSize = async (e) => {
if (onSettingsChange && typeof onSettingsChange === 'function') { setPageSize(e);
onSettingsChange(currentSettings);
}
}, [selectedTemplate, PrintType, PageSize]); // Removed onSettingsChange from dependencies
// Also pass data when component mounts and when selectedTemplate changes // If a template is selected, update it
useEffect(() => { if (selectedTemplate) {
if (selectedTemplate && onSettingsChange && typeof onSettingsChange === 'function') { const updatedTemplate = {
const currentSettings = { ...selectedTemplate,
PrintType: selectedTemplate.PrintType, PageSize: e ? 'A5' : 'A4',
PageSize: selectedTemplate.PageSize, };
selectedTemplate setSelectedTemplate(updatedTemplate);
}; if (onSettingsChange && typeof onSettingsChange === 'function') {
console.log('Template-based Print Settings:', currentSettings); const currentSettings = {
onSettingsChange(currentSettings); PrintType: updatedTemplate.PrintType,
} PageSize: updatedTemplate.PageSize,
}, [selectedTemplate]); selectedTemplate: updatedTemplate,
};
onSettingsChange(currentSettings);
}
}
};
const onfinish = async (values) => { const stylePreview = async (template) => {
try { if (!template) return;
if (!SizeOptionData || SizeOptionData.length === 0) {
setMessageType('error');
setMessageData('Please Setup the Screen');
return;
}
if (!selectedTemplate) { const {
setMessageType('error'); StyleId,
setMessageData('Please select a template first'); StyleName,
return; PrintType: printType,
} PageSize,
Notes,
PrintHdrName,
Signature,
TermsandConditions,
OptionDetails,
} = template;
const helperFunction = (param) => {
const currentPrintType = getPrintTypeValue(); // 'S' or 'C' return OptionDetails.some((item) => item.ConfigName === param);
const currentPageSize = getPageSizeValue(); // 'A4' or 'A5'
// Only one "Sales" style should have SetasDefault: "Y"
const updatedTemplates = SizeOptionData.map((item) => {
if (
(item.PrintType === "Sales" || item.PrintType === "S")
) {
return {
...item,
SetasDefault:
item.StyleId === selectedTemplate.StyleId ? "Y" : "N",
};
}
return item;
});
let TemplateDetails = updatedTemplates.map((item) => {
const isSelectedTemplate = item.StyleId === selectedTemplate.StyleId;
return {
SizeId: null,
StyleId: item.StyleId,
SetasDefault: item.SetasDefault,
SetasDefaultInvoice: item.SetasDefaultInvoice,
PrintTypeId: item?.PrintTypeId,
SizeDetails: item.OptionDetails.map((opt) => ({
OptionId: opt.ConfigId,
})),
...(item?.TermsandConditions?.length > 0
? {
PrintTermsandConditions: (item?.TermsandConditions
? item?.TermsandConditions
: []
)?.map((tc) => ({
TermsandConditions: tc,
})),
}
: {}),
...(item?.Notes ? { Notes: item.Notes } : {}),
PageSize: isSelectedTemplate ? currentPageSize : item?.PageSize,
...(item?.PrintHdrName ? { PrintHdrName: item.PrintHdrName } : {}),
...(item?.Signature ? { Signature: item?.Signature } : {}),
PrintType: isSelectedTemplate ? currentPrintType : item?.PrintType,
};
});
const Data = {
CompId: CompId,
BranchId: BranchId,
AppId: AppId,
TemplateDetails: TemplateDetails,
CreatedBy: UserId,
};
// console.log('API Request Data:', Data);
const response = await dispatch(
putPrintSelectionComponentData(Data)
).unwrap();
if (response?.data?.statusCode === 1) {
dispatch(changeSelectedPrintdummyData(false));
await printsyleget();
setMessageType('success');
setMessageData(response?.data?.response);
if (closeModel) {
closeModel();
}
}
} catch (error) {
console.error('Error setting default template:', error);
setMessageType('error');
setMessageData('Failed to set default template');
}
}; };
const onComplete = useCallback(() => { dispatch(changeSelectedSlNo(helperFunction('Sl.No')));
setMessageData(null); dispatch(changeSelectedItem(helperFunction('Item')));
setMessageType(null); dispatch(changeSelectedMRP(helperFunction('MRP')));
}, []); dispatch(changeSelectedDiscount(helperFunction('Discount')));
dispatch(changeSelectedQuantity(helperFunction('Quantity')));
dispatch(changeSelectedRate(helperFunction('Rate')));
dispatch(changeSelectedAmount(helperFunction('Amount')));
dispatch(changeSelectedHsnCode(helperFunction('HsnCode')));
dispatch(changeSelectedQrcode(helperFunction('Qrcode')));
dispatch(changeSelectedSignature(helperFunction('signature')));
dispatch(
changeSelectedtermsAndConditions(helperFunction('terms&conditions'))
);
dispatch(changeNotes(helperFunction('Notes')));
dispatch(changeSignatureImage(Signature));
dispatch(changeBillName(PrintHdrName));
dispatch(
changeSelectedprintStyle({
ConfigId: StyleId,
ConfigName: StyleName,
})
);
};
return ( const printsyleget = async () => {
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}> try {
<Messages const Data = { AppId, CompId, BranchId };
messageType={messageType} let response = await dispatch(
messageData={messageData} getPrintSelectionComponentData(Data)
onComplete={onComplete} ).unwrap();
/>
<div style={{ textAlign: 'center' }}> if (response?.data?.statusCode === 1) {
<p> Print : {selectedTemplate?.StyleName}</p> // const salesTemplates = response.data.data?.flatMap(template =>
</div> // (template.ComponentDetails || []).filter(comp => comp.PrintTypeName === "Sales" && comp.SetasDefault === "Y")
<div style={{ display: 'flex', gap: '1rem' }}> // );
<div> // setPrintTemplates(salesTemplates);
{(
<div let TableData = response?.data?.data?.[0]?.ComponentDetails.map(
style={{ (item) => ({
display: 'flex', ActiveStatus: 'A',
alignItems: 'center', OptionDetails: item.FieldDetails,
gap: '1rem', StyleId: item.StyleId,
backgroundColor: '#f5f5f5', SetasDefault: item.SetasDefault,
padding: '0.75rem 1rem', SetasDefaultInvoice: item.SetasDefaultInvoice,
borderRadius: '12px', StyleName: item.StyleName,
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', Signature: item.Signature,
maxWidth: 'fit-content', PrintType: item.PrintType,
margin: '1rem 0 0 0', PrintHdrName: item.PrintHdrName,
}} Notes: item?.Notes,
> PageSize: item?.PageSize,
<span style={{ fontWeight: '500', color: '#555' }}> PrintTypeId: item?.PrintTypeId,
Customized TermsandConditions: (item?.TermsandConditions
<Tooltip title="Print will stop when the content finishes. It won't waste paper."> ? item?.TermsandConditions
<InfoCircleOutlined : []
style={{ )?.map((tc) => tc?.TermsandConditions),
color: '#1890ff', })
cursor: 'pointer', )?.sort((a, b) => {
marginLeft: '5px', if ((a.StyleName || '') === 'A4Standard') return 1;
}} if ((b.StyleName || '') === 'A4Standard') return -1;
/> const isA4orA5 = (name) => /A4|A5/i.test(name);
</Tooltip> const nameA = a.StyleName || '';
</span> const nameB = b.StyleName || '';
if (isA4orA5(nameA) && !isA4orA5(nameB)) return 1;
<Switch checked={currentPrintType} onChange={onChangeToggle} /> if (!isA4orA5(nameA) && isA4orA5(nameB)) return -1;
<span style={{ fontWeight: '500', color: '#555' }}> const numA = parseInt(nameA.match(/\d+/)?.[0]) || 0;
Standard const numB = parseInt(nameB.match(/\d+/)?.[0]) || 0;
<Tooltip title=" Print will take full paper, even if there's less content."> return numA - numB;
<InfoCircleOutlined });
style={{ setSizeOptionData(TableData);
color: '#1890ff', }
cursor: 'pointer', } catch (error) {
marginLeft: '5px', console.error('Error fetching print styles:', error);
}} }
/> };
</Tooltip>
</span> // Log current values for debugging
</div> console.log('Current PrintType:', getPrintTypeValue());
)} console.log('Current PageSize:', getPageSizeValue());
</div> console.log('Selected Template:', selectedTemplate);
<div> useEffect(() => {
{currentPrintType && ( const currentSettings = {
<div PrintType: getPrintTypeValue(),
style={{ PageSize: getPageSizeValue(),
display: 'flex', selectedTemplate,
alignItems: 'center', };
gap: '1rem', console.log('Current Print Settings:', currentSettings);
backgroundColor: '#f5f5f5',
padding: '0.75rem 1rem', // Call the callback if provided
borderRadius: '12px', if (onSettingsChange && typeof onSettingsChange === 'function') {
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', onSettingsChange(currentSettings);
maxWidth: 'fit-content', }
margin: '1rem 0 0 0', }, [selectedTemplate, PrintType, PageSize]); // Removed onSettingsChange from dependencies
}}
> // Also pass data when component mounts and when selectedTemplate changes
<span style={{ fontWeight: '500', color: '#555' }}>A4</span> useEffect(() => {
<Switch checked={currentPageSize} onChange={onChangepageSize} /> if (
<span style={{ fontWeight: '500', color: '#555' }}>A5</span> selectedTemplate &&
</div> onSettingsChange &&
)} typeof onSettingsChange === 'function'
</div> ) {
</div> const currentSettings = {
PrintType: selectedTemplate.PrintType,
<div style={{ display: 'flex', justifyContent: 'flex-end', width: '100%' }}> PageSize: selectedTemplate.PageSize,
<Buttons selectedTemplate,
buttonText="Save" };
color="901D77" console.log('Template-based Print Settings:', currentSettings);
icon={<ArrowRightOutlined />} onSettingsChange(currentSettings);
htmlType={true} }
handleSubmit={onfinish} }, [selectedTemplate]);
/>
const onfinish = async (values) => {
try {
if (!SizeOptionData || SizeOptionData.length === 0) {
setMessageType('error');
setMessageData('Please Setup the Screen');
return;
}
if (!selectedTemplate) {
setMessageType('error');
setMessageData('Please select a template first');
return;
}
const currentPrintType = getPrintTypeValue(); // 'S' or 'C'
const currentPageSize = getPageSizeValue(); // 'A4' or 'A5'
// Only one "Sales" style should have SetasDefault: "Y"
const updatedTemplates = SizeOptionData.map((item) => {
if (item.PrintType === 'Sales' || item.PrintType === 'S') {
return {
...item,
SetasDefault: item.StyleId === selectedTemplate.StyleId ? 'Y' : 'N',
};
}
return item;
});
let TemplateDetails = updatedTemplates.map((item) => {
const isSelectedTemplate = item.StyleId === selectedTemplate.StyleId;
return {
SizeId: null,
StyleId: item.StyleId,
SetasDefault: item.SetasDefault,
SetasDefaultInvoice: item.SetasDefaultInvoice,
PrintTypeId: item?.PrintTypeId,
SizeDetails: item.OptionDetails.map((opt) => ({
OptionId: opt.ConfigId,
})),
...(item?.TermsandConditions?.length > 0
? {
PrintTermsandConditions: (item?.TermsandConditions
? item?.TermsandConditions
: []
)?.map((tc) => ({
TermsandConditions: tc,
})),
}
: {}),
...(item?.Notes ? { Notes: item.Notes } : {}),
PageSize: isSelectedTemplate ? currentPageSize : item?.PageSize,
...(item?.PrintHdrName ? { PrintHdrName: item.PrintHdrName } : {}),
...(item?.Signature ? { Signature: item?.Signature } : {}),
PrintType: isSelectedTemplate ? currentPrintType : item?.PrintType,
};
});
const Data = {
CompId: CompId,
BranchId: BranchId,
AppId: AppId,
TemplateDetails: TemplateDetails,
CreatedBy: UserId,
};
// console.log('API Request Data:', Data);
const response = await dispatch(
putPrintSelectionComponentData(Data)
).unwrap();
if (response?.data?.statusCode === 1) {
dispatch(changeSelectedPrintdummyData(false));
await printsyleget();
setMessageType('success');
setMessageData(response?.data?.response);
if (closeModel) {
closeModel();
}
}
} catch (error) {
console.error('Error setting default template:', error);
setMessageType('error');
setMessageData('Failed to set default template');
}
};
const onComplete = useCallback(() => {
setMessageData(null);
setMessageType(null);
}, []);
return (
<div
style={{
display: 'flex',
flexDirection: 'column',
gap: '1rem',
alignItems: 'center',
justifyContent: 'center',
}}
>
<Messages
messageType={messageType}
messageData={messageData}
onComplete={onComplete}
/>
<div style={{ textAlign: 'center' }}>
<p> Print : {selectedTemplate?.StyleName}</p>
</div>
<div style={{ display: 'flex', gap: '1rem' }}>
<div>
{
<div
style={{
display: 'flex',
alignItems: 'center',
gap: '1rem',
backgroundColor: '#f5f5f5',
padding: '0.75rem 1rem',
borderRadius: '12px',
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
maxWidth: 'fit-content',
margin: '1rem 0 0 0',
}}
>
<span style={{ fontWeight: '500', color: '#555' }}>
Customized
<Tooltip title="Print will stop when the content finishes. It won't waste paper.">
<InfoCircleOutlined
style={{
color: '#1890ff',
cursor: 'pointer',
marginLeft: '5px',
}}
/>
</Tooltip>
</span>
<Switch checked={currentPrintType} onChange={onChangeToggle} />
<span style={{ fontWeight: '500', color: '#555' }}>
Standard
<Tooltip title=" Print will take full paper, even if there's less content.">
<InfoCircleOutlined
style={{
color: '#1890ff',
cursor: 'pointer',
marginLeft: '5px',
}}
/>
</Tooltip>
</span>
</div> </div>
}
</div> </div>
)
}
export default SalesPrintSize <div>
{currentPrintType && (
<div
style={{
display: 'flex',
alignItems: 'center',
gap: '1rem',
backgroundColor: '#f5f5f5',
padding: '0.75rem 1rem',
borderRadius: '12px',
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
maxWidth: 'fit-content',
margin: '1rem 0 0 0',
}}
>
<span style={{ fontWeight: '500', color: '#555' }}>A4</span>
<Switch checked={currentPageSize} onChange={onChangepageSize} />
<span style={{ fontWeight: '500', color: '#555' }}>A5</span>
</div>
)}
</div>
</div>
<div
style={{ display: 'flex', justifyContent: 'flex-end', width: '100%' }}
>
<Buttons
buttonText="Save"
color="901D77"
icon={<ArrowRightOutlined />}
htmlType={true}
handleSubmit={onfinish}
/>
</div>
</div>
);
};
export default SalesPrintSize;

View File

@ -1,215 +1,215 @@
import { ArrowRightOutlined } from "@ant-design/icons"; import { ArrowRightOutlined } from '@ant-design/icons';
import Buttons from "../../../../Components/Forms/Buttons"; import Buttons from '../../../../Components/Forms/Buttons';
import { gettableData, postPreferenceAppNames } from "../../../../Features/PreferenceMaster/PreferenceMaster"; import {
import { getSession } from "../../../../Services/Others"; gettableData,
import { useDispatch } from "react-redux"; postPreferenceAppNames,
import { useEffect, useState } from "react"; } from '../../../../Features/PreferenceMaster/PreferenceMaster';
import { getPreferenceData } from "../../../../Features/BookingScreen/BookingData/BookingData"; import { getSession } from '../../../../Services/Others';
import { Messages } from "../../../../Components/Notifications/Messages"; import { useDispatch } from 'react-redux';
import { changeSelectedPrintdummyData } from "../../../../Features/ThemeChange/ThemeChange"; import { useEffect, useState } from 'react';
import { getPreferenceData } from '../../../../Features/BookingScreen/BookingData/BookingData';
import { Messages } from '../../../../Components/Notifications/Messages';
import { changeSelectedPrintdummyData } from '../../../../Features/ThemeChange/ThemeChange';
const SelectPrintMode = ({ closeModel }) => { const SelectPrintMode = ({ closeModel }) => {
const CompId = getSession("CompId"); const CompId = getSession('CompId');
const BranchId = getSession("BranchId"); const BranchId = getSession('BranchId');
const AppId = getSession("AppId"); const AppId = getSession('AppId');
const UserId = getSession("UserId"); const UserId = getSession('UserId');
const dispatch = useDispatch(); const dispatch = useDispatch();
const [modes, setModes] = useState([]); const [modes, setModes] = useState([]);
const [selected, setSelected] = useState({ const [selected, setSelected] = useState({
whatsapp: false, whatsapp: false,
sms: false, sms: false,
print: false, print: false,
email: false email: false,
});
const [messageType, setMessageType] = useState('');
const [messageData, setMessageData] = useState('');
console.log(selected, 'selected');
useEffect(() => {
fetchTableData();
}, []);
const fetchTableData = async () => {
const response = await dispatch(
gettableData({ CompId, BranchId, AppId })
).unwrap();
const data = response?.data?.data?.[0]?.SettingDtlDetails || [];
console.log(data, 'datadata');
setModes(data);
// Pre-fill checkboxes from API data
setSelected({
whatsapp: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === 'whatsapp' &&
i.SettingValue === 'Y'
),
sms: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === 'sms' &&
i.SettingValue === 'Y'
),
print: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === 'print' &&
i.SettingValue === 'Y'
),
email: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === 'email' &&
i.SettingValue === 'Y'
),
}); });
const [messageType, setMessageType] = useState(""); };
const [messageData, setMessageData] = useState("");
console.log(selected, 'selected'); const handleChange = (key) => {
setSelected((prev) => ({
...prev,
[key]: !prev[key],
}));
};
const handleSave = async () => {
const allowed = ['whatsapp', 'sms', 'print', 'email'];
useEffect(() => { const updatedSettings = modes.map((item) => {
fetchTableData(); const name = item.SettingIdName?.trim()?.toLowerCase();
}, []);
const fetchTableData = async () => { if (allowed?.includes(name)) {
return {
const response = await dispatch( ...item,
gettableData({ CompId, BranchId, AppId }) SettingValue: selected[name] ? 'Y' : 'N',
).unwrap();
const data = response?.data?.data?.[0]?.SettingDtlDetails || [];
console.log(data, 'datadata');
setModes(data);
// Pre-fill checkboxes from API data
setSelected({
whatsapp: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === "whatsapp" &&
i.SettingValue === "Y"
),
sms: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === "sms" &&
i.SettingValue === "Y"
),
print: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === "print" &&
i.SettingValue === "Y"
),
email: !!data.find(
(i) =>
i.SettingIdName?.trim()?.toLowerCase() === "email" &&
i.SettingValue === "Y"
)
});
};
const handleChange = (key) => {
setSelected((prev) => ({
...prev,
[key]: !prev[key]
}));
};
const handleSave = async () => {
const allowed = ["whatsapp", "sms", "print", "email"];
const updatedSettings = modes.map((item) => {
const name = item.SettingIdName?.trim()?.toLowerCase();
if (allowed?.includes(name)) {
return {
...item,
SettingValue: selected[name] ? "Y" : "N"
};
}
return item;
});
const payload = {
CompId,
BranchId,
CreatedBy: UserId,
AppId,
SettingDtlDetails: updatedSettings
}; };
}
console.log(payload, "payload to send"); return item;
});
try { const payload = {
const response = await dispatch(postPreferenceAppNames(payload)).unwrap(); CompId,
BranchId,
if (response?.data?.statusCode === 1) { CreatedBy: UserId,
setMessageType("success"); AppId,
setMessageData("Printer settings saved successfully."); SettingDtlDetails: updatedSettings,
dispatch(changeSelectedPrintdummyData(false));
await updatePreference();
closeModel()
} else {
setMessageType("error");
setMessageData(response?.data?.message || "Failed to save printer settings.");
}
} catch (error) {
console.error("Error while saving:", error);
}
}; };
const updatePreference = async () => { console.log(payload, 'payload to send');
await dispatch(getPreferenceData({ CompId, BranchId, AppId }));
try {
const response = await dispatch(postPreferenceAppNames(payload)).unwrap();
if (response?.data?.statusCode === 1) {
setMessageType('success');
setMessageData('Printer settings saved successfully.');
dispatch(changeSelectedPrintdummyData(false));
await updatePreference();
closeModel();
} else {
setMessageType('error');
setMessageData(
response?.data?.message || 'Failed to save printer settings.'
);
}
} catch (error) {
console.error('Error while saving:', error);
} }
};
return ( const updatePreference = async () => {
<div await dispatch(getPreferenceData({ CompId, BranchId, AppId }));
style={{ };
display: "flex",
flexDirection: "column",
alignItems: "center",
justifyContent: "center",
}}
>
<Messages
messageType={messageType}
messageData={messageData}
onComplete={() => {
setMessageData(null);
setMessageType(null);
}}
/>
<p style={{ fontSize: "18px", marginBottom: "10px" }}>
Select Print Mode
</p>
<div style={{ display: "flex", gap: "1rem", padding: "10px" }}> return (
<label> <div
<input style={{
type="checkbox" display: 'flex',
style={{ marginRight: "0.5rem" }} flexDirection: 'column',
checked={selected.whatsapp} alignItems: 'center',
onChange={() => handleChange("whatsapp")} justifyContent: 'center',
/> backgroundColor:"#c4c4c4",
WhatsApp padding:"16px",
</label> borderRadius:"8px"
}}
>
<Messages
messageType={messageType}
messageData={messageData}
onComplete={() => {
setMessageData(null);
setMessageType(null);
}}
/>
<p style={{ fontSize: '18px', marginBottom: '10px' }}>
Select Print Mode
</p>
<label> <div style={{ display: 'flex', gap: '1rem', padding: '10px' }}>
<input <label>
type="checkbox" <input
style={{ marginRight: "0.5rem" }} type="checkbox"
checked={selected.sms} style={{ marginRight: '0.5rem' }}
onChange={() => handleChange("sms")} checked={selected.whatsapp}
/> onChange={() => handleChange('whatsapp')}
SMS />
</label> WhatsApp
</label>
<label> <label>
<input <input
type="checkbox" type="checkbox"
style={{ marginRight: "0.5rem" }} style={{ marginRight: '0.5rem' }}
checked={selected.print} checked={selected.sms}
onChange={() => handleChange("print")} onChange={() => handleChange('sms')}
/> />
Print SMS
</label> </label>
<label> <label>
<input <input
type="checkbox" type="checkbox"
style={{ marginRight: "0.5rem" }} style={{ marginRight: '0.5rem' }}
checked={selected.email} checked={selected.print}
onChange={() => handleChange("email")} onChange={() => handleChange('print')}
/> />
Email Print
</label> </label>
</div>
<label>
<input
type="checkbox"
style={{ marginRight: '0.5rem' }}
checked={selected.email}
onChange={() => handleChange('email')}
/>
Email
</label>
</div>
<div <div
style={{ style={{
width: "100%", width: '100%',
display: "flex", display: 'flex',
justifyContent: "flex-end", justifyContent: 'flex-end',
marginTop: 24, marginTop: 24,
}} }}
> >
<Buttons <Buttons
buttonText="Save" buttonText="Save"
color="901D77" color="901D77"
icon={<ArrowRightOutlined />} icon={<ArrowRightOutlined />}
htmlType={true} htmlType={true}
handleSubmit={handleSave} handleSubmit={handleSave}
/> />
</div> </div>
</div> </div>
); );
}; };
export default SelectPrintMode; export default SelectPrintMode;

View File

@ -4,7 +4,7 @@
flex-wrap: wrap; flex-wrap: wrap;
gap: 1rem; gap: 1rem;
.ant-input-affix-wrapper>input.ant-input { .ant-input-affix-wrapper > input.ant-input {
padding: 4px 1px !important; padding: 4px 1px !important;
padding-top: 1rem !important; padding-top: 1rem !important;
} }
@ -61,6 +61,10 @@
.DeliveryChallan-inputForm .ant-table-content { .DeliveryChallan-inputForm .ant-table-content {
width: 70vw; width: 70vw;
} }
.DeliveryChallan-inputForm .ant-table-thead tr {
background-color: #2c88ee !important;
}
.DeliveryChallan-inputForm { .DeliveryChallan-inputForm {
display: flex; display: flex;
@ -107,8 +111,8 @@
// right: 100px; // right: 100px;
} }
.ant-table-wrapper .ant-table-tbody>tr.ant-table-row:hover>td, .ant-table-wrapper .ant-table-tbody > tr.ant-table-row:hover > td,
.ant-table-wrapper .ant-table-tbody>tr>th.ant-table-cell-row-hover>td.ant-table-cell-row-hover { .ant-table-wrapper .ant-table-tbody > tr > th.ant-table-cell-row-hover > td.ant-table-cell-row-hover {
background: rgb(224, 223, 223) !important; background: rgb(224, 223, 223) !important;
font-size: unset !important; font-size: unset !important;
transition-duration: 0.4s !important; transition-duration: 0.4s !important;
@ -129,7 +133,6 @@
} }
.Deliverychallan-table { .Deliverychallan-table {
// width: 70px; // width: 70px;
.ant-table table { .ant-table table {
border-spacing: 0px; border-spacing: 0px;
@ -138,4 +141,8 @@
.ant-table-wrapper table { .ant-table-wrapper table {
width: 84% !important; width: 84% !important;
} }
}
.product-scan .sales-quotation{
display: flex;
} }

View File

@ -61,6 +61,7 @@ import { useSelector } from 'react-redux';
import { getPrintSelectionComponentData } from '../../Features/ThemeChange/ThemeChange.js'; import { getPrintSelectionComponentData } from '../../Features/ThemeChange/ThemeChange.js';
import { DCPDFMobilePrint } from './DCPDFMobilePrint.js'; import { DCPDFMobilePrint } from './DCPDFMobilePrint.js';
import { isMobile } from 'react-device-detect'; import { isMobile } from 'react-device-detect';
const DeliveryChellanForm = () => { const DeliveryChellanForm = () => {
const { SadminuserAccess } = useAuth(); const { SadminuserAccess } = useAuth();

View File

@ -24,6 +24,9 @@
vertical-align: middle; vertical-align: middle;
height: 35px; height: 35px;
} }
.ant-table-thead tr {
background-color: #2c88ee !important;
}
} }
.dc-to-invoice-payment-mode { .dc-to-invoice-payment-mode {
@ -46,4 +49,16 @@
margin: 0px 2rem; margin: 0px 2rem;
gap: 10px; gap: 10px;
padding-top: 0; padding-top: 0;
} }
.delivery-challan-to-invoice-form {
width: 100%;
}
.DCformDivAnt {
display: flex;
align-items: flex-start;
gap: 1rem;
justify-content: flex-start;
flex-direction: column;
}

View File

@ -342,7 +342,7 @@ const DeliveryChallanToInvoiceForm = () => {
<Form <Form
ref={formRef} ref={formRef}
initialValues={editstate} initialValues={editstate}
className="formDivAnt" className="DCformDivAnt"
onFinish={onFinish} onFinish={onFinish}
> >
<Form.Item <Form.Item
@ -409,7 +409,7 @@ const DeliveryChallanToInvoiceForm = () => {
/> />
</Form.Item> </Form.Item>
</>} </>}
<div className="submitButton">
<Form.Item> <Form.Item>
<Buttons <Buttons
buttonText="SUBMIT" buttonText="SUBMIT"
@ -442,7 +442,7 @@ const DeliveryChallanToInvoiceForm = () => {
</div> </div>
</div> </div>
)} )}
</div>
</Form> </Form>

View File

@ -1,9 +1,9 @@
.OfferList-Master { .OfferList-Master {
padding: 20px; padding: 0;
background: #fff; background: #fff;
min-height: 100vh; min-height: 100vh;
width: 100%; width: 100%;
margin: 0 0 1rem 1rem; margin: 0 0 0 0;
overflow: auto; overflow: auto;
margin-bottom: 2rem; margin-bottom: 2rem;
border-radius: 12px; border-radius: 12px;
@ -477,6 +477,12 @@
font-size: 14px; font-size: 14px;
color: #878787; color: #878787;
} }
.ant-input-affix-wrapper {
width: 250px !important;
}
.ant-input {
padding: 3px 14px 9px 11px !important;
}
} }
// Table Styles // Table Styles

View File

@ -1156,6 +1156,7 @@ const PaymentDetailsList = () => {
flexWrap: 'wrap', flexWrap: 'wrap',
alignItems: 'flex-start', alignItems: 'flex-start',
gap: '1rem', gap: '1rem',
display: 'flex',
}} }}
> >
<Tooltip <Tooltip

View File

@ -71,21 +71,7 @@
font-size: 12px !important; font-size: 12px !important;
} }
// .custom-table tbody tr {
// >td:nth-child(6) {
// display: flex;
// flex-direction: column;
// width: 100%;
// gap: 2rem;
// }
// >td:nth-child(7) {
// display: flex;
// flex-direction: column;
// width: 100%;
// gap: 2rem;
// }
// }
.custom-table tbody tr td { .custom-table tbody tr td {
text-align: left; text-align: left;
@ -138,11 +124,7 @@
} }
} }
.summaryContent2 {
.centerDivList {
// width: 50%;
}
}
.custom-table { .custom-table {
Button:disabled, Button:disabled,

View File

@ -4419,6 +4419,7 @@
} }
.CustomerForm-Master { .CustomerForm-Master {
width: 100%;
.inputForm { .inputForm {
width: 50% !important; width: 50% !important;
} }

View File

@ -5,8 +5,9 @@ import { Modal } from "antd";
import { getProductStockDetails } from "../../../Features/PurchaseOrder/PurchaseOrder"; import { getProductStockDetails } from "../../../Features/PurchaseOrder/PurchaseOrder";
import { dateFormatChange, ExtractDateFormate, getSession } from "../../../Services/Others"; import { dateFormatChange, ExtractDateFormate, getSession } from "../../../Services/Others";
import { useDispatch } from "react-redux"; import { useDispatch } from "react-redux";
import { changeBreadCrumb } from "../../../Features/AppPage/CenterPage"; import { changeBreadCrumb } from "../../../Features/AppPage/CenterPage";
// import "./PurchaseOrderReport.css"; import "./PurchaseOrderReport.scss";
const subDirectory = import.meta.env.BASE_URL; const subDirectory = import.meta.env.BASE_URL;
const PurchaseOrderReport = () => { const PurchaseOrderReport = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();

View File

@ -0,0 +1,646 @@
.ItemWiseReport-table .ant-table table {
// height:60vh;
// overflow:scroll;
overflow: scroll;
// height: clamp(30vh , 85vh,95vh);
border-spacing: 0 0.3rem;
}
.ItemWiseReport-table .ant-table-thead {
position: sticky;
top: 0 !important;
background-color: #bad4f9;
z-index: 1;
border-spacing: 0 0 !important;
}
.ItemWiseReport-table .ant-table-wrapper .ant-table-thead > tr > th,
.ant-table-wrapper .ant-table-thead > tr > td {
color: #000000;
font-size: 12px;
font-weight: 600;
border-spacing: 0 0.3rem;
}
.ItemWiseReport-table .ant-table-row > td {
color: black !important;
font-weight: 500 !important;
font-size: 16px;
}
.ItemWiseReport-search {
display: flex;
justify-content: end;
column-gap: 1rem;
margin-bottom: 10px;
}
.ItemWiseReport-search-button {
border: none;
background-color: #e167ff;
padding: 1rem 1.5rem;
border-radius: 6px;
}
.ItemWiseReport-Date-from-heading {
width: 7rem;
}
.ItemWiseReport-container {
display: flex;
flex-direction: column;
row-gap: 0.5rem;
// padding: 10px 15px;
height: 88vh;
// overflow: hidden;
overflow: auto;
width: 100%;
flex-wrap: wrap;
background-color: #fff;
border-radius: 12px;
}
.ItemWiseReport-table .ant-pagination {
position: sticky;
bottom: 0;
margin: 0 !important;
padding: 0.5rem;
background-color: #fafafa;
}
.ItemWiseReport-header {
display: flex;
gap: 10px;
justify-content: space-between;
flex-wrap: wrap;
align-items: center;
margin-top: 10px;
}
.ItemWiseReport-heading {
font-size: 20px;
font-weight: 500;
}
.search-purchase {
input,
.ant-input {
border-start-end-radius: 6px !important;
border-end-end-radius: 6px !important;
padding-top: 6px !important;
}
.ant-input {
height: 40px;
}
.searchDiv {
height: 42px;
}
}
.ItemWiseReport-submit-btn-container {
display: flex;
flex-direction: column;
justify-content: center;
width: max-content;
margin-left: 20px;
}
.ItemWiseReport-PrinttAndSubmit {
display: flex;
column-gap: 3vw;
align-items: center;
// width: 100%;
justify-content: space-between;
margin-left: 30px;
}
.ItemWiseReport-dateaAnd-buttons {
display: flex;
column-gap: 2rem;
row-gap: 1rem;
// align-items: center;
// flex-wrap: wrap;
}
.ItemWiseReport-Date-picker {
display: flex;
flex-wrap: wrap;
align-items: center;
column-gap: 2rem;
// row-gap: 1rem;
.ant-form-item {
margin-bottom: 0 !important;
}
}
.ItemWiseReport-Date .ant-picker {
width: 20rem;
}
.ItemWiseReport-submit-btn {
padding: 0.6rem 1rem;
border: none;
background-color: var(--PRIMARY_BUTTON_BG_COLOR) !important;
margin-bottom: 2px;
font-size: 16px;
font-family: "Gilroy";
color: #ffffff;
border-radius: 5px;
cursor: pointer;
}
// .ItemWiseReport-submit-btn:hover {
// background-color: #a8a8a8;
// }
.ItemWiseReport-PrinterIcon-Container {
cursor: pointer;
// position: absolute;
// top: 6rem;
// right: 5rem;
}
.ItemWiseReport-printerIcon {
font-size: 25px;
cursor: pointer;
}
.ItemWiseReport-printerIcon:hover {
color: #414141;
}
.ItemWiseReport-Date {
display: flex;
column-gap: 1rem;
align-items: center;
}
.ItemWiseReport-Details-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-right: 2rem;
column-gap: 1rem;
flex-wrap: wrap;
}
.ItemWiseReport-Details {
margin-left: 0.7rem;
display: flex;
column-gap: 1rem;
row-gap: 0.5rem;
flex-wrap: wrap;
}
.ItemWiseReport-Details-buttons {
border: none;
padding: 0.6rem 1rem;
width: max-content;
background-color: #006aff;
border-radius: 5px;
color: #fff;
cursor: pointer;
}
.ItemWiseReport-printerIcon {
font-size: 30px;
}
.ItemWiseReport-table-container {
margin: 1rem 1rem;
}
.ItemWiseReport-Date p {
font-size: 11px;
color: #5a5a5a;
margin-left: 5px;
margin-top: 2px;
}
.ItemWiseReport-table {
overflow: auto;
height: clamp(50vh, 30vh, 95vh);
scrollbar-width: thin;
tr:nth-child(even) {
background-color: #e9e8e8 !important;
border: none;
}
//dhana
// height: clamp(30vh, 50vh, 95vh);
}
// writed by sree
.ItemWiseReport-table1 {
overflow: auto;
height: clamp(40vh, 30vh, 95vh);
width: 79vw !important;
}
.ItemWiseReport-table .ant-table-thead tr .ant-table-cell {
font-size: 25px;
font-weight: 800;
}
.ItemWiseReport-Amount-Collected-table {
display: flex;
justify-content: flex-end;
}
.ItemWiseReport-netAmount {
display: flex;
justify-content: flex-end;
padding-top: 10px;
}
.ItemWiseReport-search .ant-input {
border-radius: 10px !important;
padding: 0.35rem 0.5rem !important;
}
.BSitemwise-Search-icon {
font-size: 25px;
color: #1292ee;
}
.dropDownandsumit {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
.ant-form-item {
margin-bottom: 0 !important;
}
}
.Submit_Print {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
}
@media only screen and (max-width: 950px) {
.ItemWiseReport-PrinttAndSubmit {
display: flex;
column-gap: 3vw;
align-items: center;
justify-content: space-between;
// margin-left: 30px;
// margin-bottom: 23px;
}
.ItemWiseReport-PrinterIcon-Container {
margin-left: 30px;
cursor: pointer;
// position: absolute;
// top: 5rem;
// right: 1rem;
}
.ItemWiseReport-table {
overflow: scroll;
height: 40vh;
}
.ItemWiseReport-container {
padding: 15px 15px;
}
.ItemWiseReport-dateaAnd-buttons {
column-gap: 0.5rem;
}
.ItemWiseReport-netAmount {
justify-content: flex-start !important;
padding-top: 10px;
}
.dropdownUserid {
margin-top: 0 !important;
}
// .ItemWiseReport-dateaAnd-buttons {
// // flex-wrap: wrap;
// }
.ItemWiseReport-submit-btn-container {
margin-left: 4.5rem;
justify-content: flex-start !important;
flex-direction: row;
column-gap: 0.5rem;
margin-bottom: 24px;
width: 83px;
}
.ItemWiseReport-Date p {
padding: 0;
}
.ItemWiseReport-table .ant-table-wrapper .ant-table-thead > tr > th,
.ant-table-wrapper .ant-table-thead > tr > td {
font-size: 10px !important;
}
}
@media only screen and (max-width: 768px) {
.ItemWiseReport-submit-btn-container {
margin-left: 5px;
}
.ItemWiseReport-table {
width: 80vw;
}
}
@media only screen and (max-width: 499px) {
.ItemWiseReport-submit-btn-container {
font-size: 12px !important;
}
.centerPageSub {
margin: 0;
}
.ItemWiseReport-table {
overflow-x: scroll;
height: 26vh;
}
}
@media only screen and (max-width: 280px) {
// .ItemWiseReport-PrinttAndSubmit {
// position: absolute !important;
// top: 18rem !important;
// }
.ItemWiseReport-PrinterIcon-Container {
position: absolute;
top: 290px !important;
left: 200px !important;
}
.Submit_Print {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-around;
margin-left: 20px;
}
.ItemWiseReport-Date {
width: 3rem !important;
}
.ItemWiseReport-Date p {
font-size: 12px !important;
}
.dropDownandsumit {
margin-top: 30px !important;
height: 160px;
}
.ItemWiseReport-search {
display: flex;
justify-content: start;
column-gap: 1rem;
width: 4rem !important;
}
.ItemWiseReport-heading {
font-size: 13px;
font-weight: 500;
}
.ItemWiseReport-submit-btn-container {
margin-top: 20px;
}
.ItemWiseReport-dateaAnd-buttons {
column-gap: 0.5rem;
width: 75vw !important;
overflow: auto !important;
}
.ItemWiseReport-table {
overflow: scroll;
height: 30vh;
}
}
.ItemWiseReport-table .ant-table-thead th.ant-table-column-has-sorters:hover {
background-color: #bad4f9;
}
.ItemWiseReport-table .ant-table-wrapper .ant-table-thead > tr > th,
.ant-table-wrapper .ant-table-thead > tr > td {
background-color: #bad4f9;
}
.ItemWiseReport-printerIcon-disabled {
opacity: 0.5;
/* You can adjust the opacity to visually indicate it's disabled */
pointer-events: none;
/* Disable pointer events so it won't respond to clicks */
cursor: not-allowed;
/* Change cursor to indicate it's not clickable */
font-size: 30px;
}
.dropdownUserid {
margin-top: 10px;
}
.itemwiseDropdown {
width: 9rem !important;
}
.ItemWiseReport-Date {
width: 8rem;
}
.ItemWiseReport-table .ant-table-content table {
table-layout: unset !important;
}
.toggle {
display: flex;
width: inherit;
height: 2vw;
flex-direction: row-reverse;
z-index: 1;
// padding-right: 93px;
padding-bottom: 25px;
}
// .ant-switch:hover:not(.ant-switch-disabled) {
// background:var(--SELECTED_COLOR) ;
// }
//nk
@media only screen and (max-width: 499px) {
.ItemWiseReport-Amount-Collected-table tr {
justify-content: flex-start;
column-gap: 5rem;
}
.ItemWiseReport-border-dashed {
width: 10rem;
}
.ItemWiseReport-Amount-Collected-table {
justify-content: flex-start;
}
.centerPageSub {
margin: 0 !important;
}
.ItemWiseReport-border-dashed {
font-size: 15px;
}
.ItemWiseReport-border-dashed {
width: 10rem;
}
}
@media only screen and (max-width: 768px) {
.overalTotal {
width: 7rem;
font-size: 20px;
}
}
.ItemWiseReport-Amount-Collected-table {
display: flex;
justify-content: flex-end;
}
.ItemWiseReport-Amount-Collected-table tr {
display: flex;
// width: 15rem;
justify-content: space-between;
}
.ItemWiseReport-border-dashed {
border-bottom: 1px dashed rgb(46, 46, 46);
width: 17rem;
}
.ItemWiseReport-border-dashed {
font-size: 23px;
font-weight: 600;
}
.custom-table {
width: 100%;
border-collapse: collapse;
border: 1px solid #909090;
font-family: "Poppins", sans-serif;
> thead {
position: sticky;
top: -1px;
}
}
.custom-table th {
background-color: #a4c5f4;
color: #1e1e1e;
padding: 6px;
text-align: left;
border: 1px solid #909090;
-webkit-text-stroke-width: 0.2px;
font-size: 12px;
font-weight: 500;
font-family: VAR(--HEADING_FONT_FAMILY);
// text-transform: uppercase;
text-transform: capitalize;
letter-spacing: 0.2px;
}
.centerDivList {
display: flex;
flex-direction: column;
gap: 4px;
// width: 100%;
// height: 43vh;
overflow: scroll;
padding-bottom: 2rem;
}
.custom-table td {
padding: 4px 6px;
border: 1px solid #909090;
text-align: left;
font-size: 12px !important;
}
.custom-table tbody tr td {
text-align: left;
.ant-select.ant-select-in-form-item {
width: 190px !important;
}
}
.custom-table tbody tr td[colspan="7"] {
padding: 20px;
}
.custom-table tbody tr.additionalCharges-selected {
background-color: #dddddd;
}
.custom-table tbody tr.setAsDefault-selected {
background-color: #cceaf0;
}
.custom-table {
.ant-form-item {
margin-bottom: 0 !important;
}
.float-label {
margin-bottom: 8px !important;
}
}
.ChargesAddAndCancel {
display: flex;
justify-content: flex-end;
gap: 1rem;
> div {
border-radius: 6px;
padding: 5px 10px;
color: #fff;
font-weight: 600 !important;
cursor: pointer;
}
> div:nth-child(1) {
background-color: #28aa3a;
}
> div:nth-child(2) {
background-color: #ff0000;
}
}
.custom-table {
Button:disabled,
Button[disabled] {
width: unset !important;
height: unset !important;
border-radius: 50px !important;
}
}

View File

@ -21,7 +21,8 @@ import { getSession, validateSafeInput } from '../../Services/Others';
import { postshift, putshift } from '../../Features/ShiftMaster/ShiftMaster.js'; import { postshift, putshift } from '../../Features/ShiftMaster/ShiftMaster.js';
import './ShiftMaster.scss'; import './ShiftMaster.scss';
import { FaPlus } from 'react-icons/fa6'; import { FaPlus } from 'react-icons/fa6';
import "../../Styles/OverAllStyle/OverAllStyle.scss";
const subDirectory = import.meta.env.BASE_URL; const subDirectory = import.meta.env.BASE_URL;
const ShiftForm = ({ formType }) => { const ShiftForm = ({ formType }) => {

View File

@ -254,8 +254,128 @@
.stockAdjustListMaster { .custom-table {
.primary_Button { width: 100%;
width: 290px !important; border-collapse: collapse;
border: 1px solid #909090;
font-family: 'Poppins', sans-serif;
> thead {
position: sticky;
top: -1px;
} }
} }
.custom-table th {
background-color: #a4c5f4;
color: #1e1e1e;
padding: 6px;
text-align: left;
border: 1px solid #909090;
-webkit-text-stroke-width: 0.2px;
font-size: 12px;
font-weight: 500;
font-family: VAR(--HEADING_FONT_FAMILY);
// text-transform: uppercase;
text-transform: capitalize;
letter-spacing: 0.2px;
}
.centerDivList {
display: flex;
flex-direction: column;
gap: 4px;
// width: 100%;
// height: 43vh;
overflow: scroll;
padding-bottom: 2rem;
}
.custom-table td {
padding: 4px 6px;
border: 1px solid #909090;
text-align: left;
font-size: 12px !important;
}
.custom-table tbody tr td {
text-align: left;
.ant-select.ant-select-in-form-item {
width: 190px !important;
}
}
.custom-table tbody tr td[colspan='7'] {
padding: 20px;
}
.custom-table tbody tr.additionalCharges-selected {
background-color: #dddddd;
}
.custom-table tbody tr.setAsDefault-selected {
background-color: #cceaf0;
}
.custom-table {
.ant-form-item {
margin-bottom: 0 !important;
}
.float-label {
margin-bottom: 8px !important;
}
}
.ChargesAddAndCancel {
display: flex;
justify-content: flex-end;
gap: 1rem;
> div {
border-radius: 6px;
padding: 5px 10px;
color: #fff;
font-weight: 600 !important;
cursor: pointer;
}
> div:nth-child(1) {
background-color: #28aa3a;
}
> div:nth-child(2) {
background-color: #ff0000;
}
}
.custom-table {
Button:disabled,
Button[disabled] {
width: unset !important;
height: unset !important;
border-radius: 50px !important;
}
}
.openingStock-ignoreProductBTN {
width: max-content;
white-space: nowrap;
height: max-content;
padding: 10px 16px;
color: #fff;
border-radius: 8px;
cursor: pointer;
border: none;
background-color: #e42006;
font-size: 14px;
font-weight: 400;
font-family: "Poppins";
margin-left: 6px;
}

View File

@ -203,7 +203,7 @@ const StockadjustmentList = () => {
<div> <div>
<FormHeader title={'Stock Adjustment'} /> <FormHeader title={'Stock Adjustment'} />
</div> </div>
<div className="searchAddDiv">
<div className="formSearch"> <div className="formSearch">
<Search <Search
placeholder="Search" placeholder="Search"
@ -211,7 +211,7 @@ const StockadjustmentList = () => {
onSearchChange={onSearchChange} onSearchChange={onSearchChange}
/> />
</div> </div>
</div>
<Buttons <Buttons
buttonText={'Stock Adjustment'} buttonText={'Stock Adjustment'}
handleSubmit={() => handelAddButton()} handleSubmit={() => handelAddButton()}

View File

@ -106,7 +106,7 @@ const KitechenFinishform = ({ formType }) => {
useEffect(() => { useEffect(() => {
Proddatas(); Proddatas();
dispatch(changeBreadCrumb({ items: items })); dispatch(changeBreadCrumb({ items: items }));
getPreference() getPreference();
}, []); }, []);
const Empchanges = async (e) => { const Empchanges = async (e) => {
@ -982,12 +982,16 @@ const KitechenFinishform = ({ formType }) => {
const getPreference = async () => { const getPreference = async () => {
const data = { AppId: AppId, CompId: CompId, BranchId: BranchId }; const data = { AppId: AppId, CompId: CompId, BranchId: BranchId };
const { data: res } = await dispatch(getPreferenceData(data)).unwrap() const { data: res } = await dispatch(getPreferenceData(data)).unwrap();
const decimalSetting = res?.data?.[0]?.SettingDtlDetails?.find((setting) => setting?.SettingIdName?.toLowerCase() === "decimal" && setting?.SettingValue === 'Y'); const decimalSetting = res?.data?.[0]?.SettingDtlDetails?.find(
(setting) =>
setting?.SettingIdName?.toLowerCase() === 'decimal' &&
setting?.SettingValue === 'Y'
);
if (decimalSetting) { if (decimalSetting) {
setAllowDecimal(true) setAllowDecimal(true);
} }
} };
function safeRound(amountStr) { function safeRound(amountStr) {
if (amountStr == null) return allowDecimal ? '0.00' : '0'; if (amountStr == null) return allowDecimal ? '0.00' : '0';

View File

@ -274,4 +274,27 @@
margin-bottom: 10px; margin-bottom: 10px;
color: #1292ee; color: #1292ee;
text-decoration: underline; text-decoration: underline;
} }
.purchase-entry-fh {
@media (max-width: 600px) {
padding-top: 0;
}
.formName {
display: flex;
}
// .formHeader {
// width: -webkit-fill-available;
// }
.header-buttons {
display: flex;
align-items: center;
justify-content: flex-end;
flex-direction: row;
width: 100%;
gap: 10px;
}
}

View File

@ -168,6 +168,7 @@
flex-direction: row; flex-direction: row;
row-gap: 0.5rem; row-gap: 0.5rem;
gap: 2rem; gap: 2rem;
padding-bottom: 4px;
// flex-wrap: wrap; // flex-wrap: wrap;
@media (max-width: 768px) { @media (max-width: 768px) {
flex-wrap: wrap; flex-wrap: wrap;
@ -458,3 +459,8 @@
background-color: #2c88ee1c !important; background-color: #2c88ee1c !important;
font-weight: unset; font-weight: unset;
} }
.ant-table-thead tr {
background-color: #2c88ee !important;
}

View File

@ -46,7 +46,7 @@
padding: 5px; padding: 5px;
gap: 5px; gap: 5px;
align-items: center; align-items: center;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
float: right; float: right;
background-color: #000; background-color: #000;
font-size: x-small; font-size: x-small;
@ -178,6 +178,9 @@
height: 70vh; height: 70vh;
overflow: scroll; overflow: scroll;
scrollbar-width: thin; scrollbar-width: thin;
.ant-table-thead tr {
background-color: #2c88ee !important;
}
.ant-table-cell { .ant-table-cell {
padding: 8px 8px !important; padding: 8px 8px !important;
@ -190,8 +193,8 @@
padding: 0.5rem; padding: 0.5rem;
background-color: #fafafa; background-color: #fafafa;
} }
.ant-table-content{ .ant-table-content {
font-family: 'Poppins'; font-family: "Poppins";
} }
} }
@ -208,7 +211,7 @@
} }
.bsreprintmodaltable-search input { .bsreprintmodaltable-search input {
font-family: 'Poppins'; font-family: "Poppins";
width: 250px; width: 250px;
padding: 4px 14px; padding: 4px 14px;
border: 1px solid #ccc; border: 1px solid #ccc;

View File

@ -1,9 +1,8 @@
.receipt-reprint { .receipt-reprint {
font-family: "Poppins";
font-family: 'Poppins';
.ant-table { .ant-table {
font-family: 'Poppins', sans-serif !important; font-family: "Poppins", sans-serif !important;
font-weight: 400 !important; font-weight: 400 !important;
} }
@ -12,24 +11,27 @@
align-items: center; align-items: center;
// justify-content: space-between; // justify-content: space-between;
gap: 10px; gap: 10px;
margin-bottom: 16px; margin-bottom: 16px;
} }
.receipt-reprint-body { .receipt-reprint-body {
height: 70vh; height: 70vh;
.ant-table-thead tr {
background-color: #2c88ee !important;
}
table { table {
tbody { tbody {
>tr { > tr {
box-shadow: unset !important; box-shadow: unset !important;
border-bottom: unset !important; border-bottom: unset !important;
} }
>tr:nth-child(even) { > tr:nth-child(even) {
background-color: #4b4b4b49 !important; background-color: #4b4b4b49 !important;
} }
>tr:nth-child(odd) { > tr:nth-child(odd) {
background-color: #ffffff00 !important; background-color: #ffffff00 !important;
} }
} }
@ -38,29 +40,23 @@
.search-input { .search-input {
width: 280px !important; width: 280px !important;
padding: 4px 12px; padding: 5px 12px;
border: 1px solid rgb(204, 204, 204) !important; border: 1px solid rgb(204, 204, 204) !important;
border-radius: 6px; border-radius: 6px;
font-size: 14px; font-size: 14px;
outline: none; outline: none;
transition: 0.2s; transition: 0.2s;
font-family: 'Poppins'; font-family: "Poppins";
&:focus { &:focus {
border: 1px solid #1677ff !important; border: 1px solid #1677ff !important;
} }
} }
.reprint-reason-header { .reprint-reason-header {
font-size: 3rem !important; font-size: 3rem !important;
} }
@media (max-width: 567px) { @media (max-width: 567px) {
.search-input { .search-input {
width: unset !important; width: unset !important;
@ -73,20 +69,18 @@
scrollbar-width: thin; scrollbar-width: thin;
} }
} }
} }
.reprint-reason-modal { .reprint-reason-modal {
font-family: 'Poppins' !important; font-family: "Poppins" !important;
.ant-table-cell { .ant-table-cell {
font-weight: 400 !important; font-weight: 400 !important;
font-family: 'Poppins' !important; font-family: "Poppins" !important;
font-size: 14px !important; font-size: 14px !important;
>div { > div {
font-family: 'Poppins' !important; font-family: "Poppins" !important;
} }
} }
@ -96,10 +90,9 @@
} }
.original-duplicate-switch { .original-duplicate-switch {
.ant-switch-inner-checked, .ant-switch-inner-checked,
.ant-switch-inner-unchecked { .ant-switch-inner-unchecked {
font-family: 'Poppins'; font-family: "Poppins";
font-weight: 500; font-weight: 500;
} }
@ -118,7 +111,6 @@
.ant-select-arrow { .ant-select-arrow {
top: 75%; top: 75%;
} }
} }
.action-icons-reprint { .action-icons-reprint {
@ -151,12 +143,10 @@
} }
.icon-email { .icon-email {
background-color: #f59e0b; background-color: #f59e0b;
} }
.icon-whatsapp { .icon-whatsapp {
background-color: #076e26ff; background-color: #076e26ff;
} }
} }

View File

@ -158,3 +158,9 @@
flex-wrap: wrap; flex-wrap: wrap;
margin-bottom: 10px; margin-bottom: 10px;
} }
.stockAdjustListMaster {
.primary_Button {
width: max-content !important;
}
}

View File

@ -10,7 +10,7 @@
.productListBrowseImageButton2 { .productListBrowseImageButton2 {
width: 65px; width: 65px;
background-color: #dbd1d1; background-color: #dbd1d1;
border: 0.5px solid gray; border: 0.5px solid #808080;
border-radius: 3px; border-radius: 3px;
font-size: 10px; font-size: 10px;
font-weight: 600; font-weight: 600;
@ -74,7 +74,7 @@
.samplereportTableButton { .samplereportTableButton {
justify-content: flex-end; justify-content: flex-end;
margin: 1rem 0; margin: 10px 0;
align-items: center; align-items: center;
display: flex; display: flex;
width: 100%; width: 100%;
@ -754,6 +754,7 @@
.StorekitchenlistTable { .StorekitchenlistTable {
scrollbar-width: thin; scrollbar-width: thin;
padding-right: 8px; padding-right: 8px;
margin-top: 10px;
@media (max-width: 600px) { @media (max-width: 600px) {
} }
@ -1538,6 +1539,9 @@ table {
padding: 3px 14px 4px 11px !important; padding: 3px 14px 4px 11px !important;
text-align: center; text-align: center;
} }
.ant-table-thead tr {
background-color: #2c88ee !important;
}
} }
.PriChangeUpper { .PriChangeUpper {
display: flex; display: flex;
@ -1561,3 +1565,44 @@ table {
} }
} }
} }
.pruchaseCatBTN {
display: flex;
align-items: center;
gap: 7px;
padding: 8px 16px;
background-color: #0bad77;
border-radius: 7px;
color: white;
cursor: pointer;
font-family: "Poppins";
font-weight: 400;
white-space: nowrap;
font-size: 13.5px;
transition: all 0.2s;
&:hover {
background-color: #069666;
}
}
.scan-receipt-btn {
display: flex;
align-items: center;
gap: 7px;
padding: 8px 16px;
background-color: #1292ee;
border-radius: 7px;
color: white;
cursor: pointer;
font-family: "Poppins";
font-weight: 400;
white-space: nowrap;
font-size: 13.5px;
transition: all 0.2s;
&:hover {
background-color: #0985be;
}
}
.CustomerForm-Master {
width: 100%;
}

View File

@ -4,7 +4,7 @@
flex-wrap: wrap; flex-wrap: wrap;
gap: 1rem; gap: 1rem;
.ant-input-affix-wrapper>input.ant-input { .ant-input-affix-wrapper > input.ant-input {
padding-top: 1.7rem; padding-top: 1.7rem;
} }
} }
@ -18,6 +18,9 @@
overflow: auto !important; overflow: auto !important;
scrollbar-width: thin; scrollbar-width: thin;
} }
.ant-table-thead tr {
background-color: #2c88ee !important;
}
} }
.purchaseQuoaDetails { .purchaseQuoaDetails {
@ -86,8 +89,8 @@
// right: 100px; // right: 100px;
} }
.ant-table-wrapper .ant-table-tbody>tr.ant-table-row:hover>td, .ant-table-wrapper .ant-table-tbody > tr.ant-table-row:hover > td,
.ant-table-wrapper .ant-table-tbody>tr>th.ant-table-cell-row-hover>td.ant-table-cell-row-hover { .ant-table-wrapper .ant-table-tbody > tr > th.ant-table-cell-row-hover > td.ant-table-cell-row-hover {
background: rgb(224, 223, 223) !important; background: rgb(224, 223, 223) !important;
font-size: unset !important; font-size: unset !important;
transition-duration: 0.4s !important; transition-duration: 0.4s !important;
@ -102,7 +105,6 @@
} }
.Quotation-table { .Quotation-table {
// width: 70px; // width: 70px;
.ant-table table { .ant-table table {
border-spacing: 0px; border-spacing: 0px;
@ -122,7 +124,7 @@
border-radius: 8px; border-radius: 8px;
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
padding: 6px 12px; padding: 6px 12px;
border: 1px solid #d1d1d1; border: 1px solid #d1d1d1;
} }
@ -146,4 +148,4 @@
input { input {
padding: 6px 25px 6px 12px !important; padding: 6px 25px 6px 12px !important;
} }
} }

View File

@ -146,7 +146,7 @@
background-color: var(--PRIMARY_BUTTON_BG_COLOR) !important; background-color: var(--PRIMARY_BUTTON_BG_COLOR) !important;
margin-bottom: 2px; margin-bottom: 2px;
font-size: 16px; font-size: 16px;
font-family: 'Gilroy'; font-family: "Gilroy";
color: #ffffff; color: #ffffff;
border-radius: 5px; border-radius: 5px;
cursor: pointer; cursor: pointer;
@ -436,51 +436,6 @@
} }
} }
// @media screen and (max-width: 620px) {
// .ItemWiseReport-table{
// height: 41vh !important;
// }
// .ItemWiseReport-dateaAnd-buttons{
// display: flex;
// flex-direction: column;
// column-gap: 0.5rem;
// row-gap: 0.5rem;
// // align-items: center;
// flex-wrap: wrap;
// }
// .ItemWiseReport-Date-picker {
// display: flex;
// // flex-wrap: wrap;
// column-gap: 0.3rem;
// row-gap: 0rem;
// }
// .dropdownUserid{
// .ant-select-single:not(.ant-select-customize-input) .ant-select-selector
// {
// width: 10rem;
// }
// }
// .ItemWiseReport-netAmount {
// display: flex;
// justify-content: flex-start;
// }
// }
// @media only screen and (min-width: 450px) and (max-width: 640px){
// .ItemWiseReport-table{
// width: 500px;
// }
// .ItemWiseReport-dateaAnd-buttons{
// display: flex;
// column-gap: 1rem;
// row-gap: 1rem;
// align-items: center;
// flex-wrap: wrap;
// justify-content: space-between;
// }
// }
.ItemWiseReport-table .ant-table-thead th.ant-table-column-has-sorters:hover { .ItemWiseReport-table .ant-table-thead th.ant-table-column-has-sorters:hover {
background-color: #bad4f9; background-color: #bad4f9;
} }
@ -585,29 +540,107 @@
font-weight: 600; font-weight: 600;
} }
// .ItemWiseReport-table { .custom-table {
// overflow-y: auto; width: 100%;
// scrollbar-width: unset; border-collapse: collapse;
// scrollbar-color: #c1c1c1 transparent; border: 1px solid #909090;
// } font-family: "Poppins", sans-serif;
// .ItemWiseReport-table::-webkit-scrollbar { > thead {
// width: 25px; position: sticky;
// } top: -1px;
}
}
// .ItemWiseReport-table::-webkit-scrollbar-track { .custom-table th {
// background: #f0f0f0; background-color: #a4c5f4;
// border-radius: 10px; color: #1e1e1e;
// } padding: 6px;
text-align: left;
border: 1px solid #909090;
-webkit-text-stroke-width: 0.2px;
font-size: 12px;
font-weight: 500;
font-family: VAR(--HEADING_FONT_FAMILY);
// text-transform: uppercase;
text-transform: capitalize;
letter-spacing: 0.2px;
}
// .ItemWiseReport-table::-webkit-scrollbar-thumb { .centerDivList {
// background-color: #c1c1c1; display: flex;
// border-radius: 10px; flex-direction: column;
// border: 6px solid transparent; gap: 4px;
// background-clip: content-box; // width: 100%;
// transition: background-color 0.3s ease; // height: 43vh;
// } overflow: scroll;
padding-bottom: 2rem;
}
// .ItemWiseReport-table::-webkit-scrollbar-thumb:hover { .custom-table td {
// background-color: #a0a0a0; padding: 4px 6px;
// } border: 1px solid #909090;
text-align: left;
font-size: 12px !important;
}
.custom-table tbody tr td {
text-align: left;
.ant-select.ant-select-in-form-item {
width: 190px !important;
}
}
.custom-table tbody tr td[colspan="7"] {
padding: 20px;
}
.custom-table tbody tr.additionalCharges-selected {
background-color: #dddddd;
}
.custom-table tbody tr.setAsDefault-selected {
background-color: #cceaf0;
}
.custom-table {
.ant-form-item {
margin-bottom: 0 !important;
}
.float-label {
margin-bottom: 8px !important;
}
}
.ChargesAddAndCancel {
display: flex;
justify-content: flex-end;
gap: 1rem;
> div {
border-radius: 6px;
padding: 5px 10px;
color: #fff;
font-weight: 600 !important;
cursor: pointer;
}
> div:nth-child(1) {
background-color: #28aa3a;
}
> div:nth-child(2) {
background-color: #ff0000;
}
}
.custom-table {
Button:disabled,
Button[disabled] {
width: unset !important;
height: unset !important;
border-radius: 50px !important;
}
}

View File

@ -101,11 +101,6 @@ a {
background: #999999; background: #999999;
} }
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
/* background: #8F1E78; */
}
.samplereportTable { .samplereportTable {
overflow: auto; overflow: auto;
width: 80vw; width: 80vw;
@ -178,8 +173,6 @@ a {
/* Position the tooltip */ /* Position the tooltip */
position: absolute; position: absolute;
z-index: 1; z-index: 1;
} }
.navbar-top { .navbar-top {
@ -331,3 +324,7 @@ a {
.ant-table table { .ant-table table {
border-spacing: 0 0 !important; border-spacing: 0 0 !important;
} }
.ant-table-tbody .ant-table-cell {
font-family: 'Poppins' !important;
}