Navbar setting icon changes
This commit is contained in:
parent
deec2dbdc1
commit
da28c37e3e
|
|
@ -12,7 +12,6 @@ import { useNavigate } from 'react-router-dom';
|
|||
const UserRelieveManager = lazy(() => import('../../Template/RealivingUser'));
|
||||
// Scss
|
||||
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar1.scss';
|
||||
import NavbarSkeleton from '../../../../Components/Skeleton/NavbarSkeleton';
|
||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||
|
||||
const BSNavBarUserInfo = ({
|
||||
|
|
|
|||
|
|
@ -151,13 +151,12 @@ import PozoMenuIcon from '../UtillComponents/Pozo retail icons/PozoMenuIcon.jsx'
|
|||
|
||||
import TooltipWrapper from '../../../../Components/Tooltip/Tooltip';
|
||||
import { IoMdClose } from 'react-icons/io';
|
||||
import { CgSearchLoading } from 'react-icons/cg';
|
||||
import { TbSettingsSearch } from 'react-icons/tb';
|
||||
import BSNavBarUserInfo from './BSNavBarUserInfo';
|
||||
import { FaParking } from 'react-icons/fa';
|
||||
import { isMobile } from 'react-device-detect';
|
||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
||||
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar1.scss';
|
||||
import NavbarSkeleton from '../../../../Components/Skeleton/NavbarSkeleton.jsx';
|
||||
|
||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||
const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
|
||||
|
|
@ -678,7 +677,7 @@ const BSNavbar1 = (props) => {
|
|||
{/* Multiple search */}
|
||||
<Tooltip title={'Multiple Search'}>
|
||||
<div className="MultiSearchIconDiv">
|
||||
<CgSearchLoading onClick={() => setMultiple(true)} />
|
||||
<TbSettingsSearch onClick={() => setMultiple(true)} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ import {
|
|||
getUserProfile,
|
||||
userDataByUserId,
|
||||
} from '../../../../Features/UserAccount/userData.js';
|
||||
import { CgSearchLoading } from 'react-icons/cg';
|
||||
import { TbSettingsSearch } from 'react-icons/tb';
|
||||
import { FaParking } from 'react-icons/fa';
|
||||
import BSNavBarUserInfo from './BSNavBarUserInfo';
|
||||
import { OtherServicesCardlistdata } from '../../../../Features/OtherServices/OtherServices.js';
|
||||
|
|
@ -130,7 +130,6 @@ const BSCustomerSelect = lazy(
|
|||
);
|
||||
// Scss
|
||||
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar2.scss';
|
||||
import NavbarSkeleton from '../../../../Components/Skeleton/NavbarSkeleton.jsx';
|
||||
|
||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||
const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
|
||||
|
|
@ -625,12 +624,7 @@ const BSNavbar2 = () => {
|
|||
</div>
|
||||
)}
|
||||
</div>
|
||||
{/* Multiple search */}
|
||||
<Tooltip title={'Multiple Search'}>
|
||||
<div className="MultiSearchIconDiv2" style={{ margin: '0 6px' }}>
|
||||
<CgSearchLoading onClick={() => setMultiple(true)} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
|
||||
<div className="BSBillingNav2div2">
|
||||
{searchOption &&
|
||||
!Comboglobal &&
|
||||
|
|
@ -643,6 +637,15 @@ const BSNavbar2 = () => {
|
|||
}}
|
||||
>
|
||||
<BSNavBarSearch nosearch={true} OrderType={OrderType} />
|
||||
{/* Multiple search */}
|
||||
<Tooltip title={'Multiple Search'}>
|
||||
<div
|
||||
className="MultiSearchIconDiv2"
|
||||
style={{ margin: '0 6px' }}
|
||||
>
|
||||
<TbSettingsSearch onClick={() => setMultiple(true)} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
|
|
|||
|
|
@ -102,10 +102,9 @@ import BSNavBarWholeSale from '../UtillComponents/BSNavBarWholeSale.jsx';
|
|||
import { Global_OfferStatus } from '../../../../Features/Offer/Offer.js';
|
||||
import { globalholddata } from '../../../../Features/BookingScreen/HoldOption/HoldOption.js';
|
||||
import BSNavBarWeightScale from '../UtillComponents/BSNavBarWeightScale.jsx';
|
||||
import { CgSearchLoading } from 'react-icons/cg';
|
||||
import { TbSettingsSearch } from 'react-icons/tb';
|
||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
||||
import MultipleSearch from '../UtillComponents/MultipleSearch.jsx';
|
||||
import NavbarSkeleton from '../../../../Components/Skeleton/NavbarSkeleton.jsx';
|
||||
|
||||
// Jsx Files
|
||||
const BSNavBarFavItems = lazy(
|
||||
|
|
@ -630,18 +629,18 @@ const BSNavbar3 = ({ optionNames }) => {
|
|||
)}
|
||||
</div>
|
||||
|
||||
{/* Multiple search */}
|
||||
<Tooltip title={'Multiple Search'}>
|
||||
<div className="MultiSearchIconDiv3">
|
||||
<CgSearchLoading onClick={() => setMultiple(true)} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
{!sportsAppPreference && searchOption && (
|
||||
<div
|
||||
className="BsnavbarSearchMain"
|
||||
onClick={() => searchInputRef.current?.focus()}
|
||||
>
|
||||
<BSNavbarSearchStandard inputRef={searchInputRef} />
|
||||
{/* Multiple search */}
|
||||
<Tooltip title={'Multiple Search'}>
|
||||
<div className="MultiSearchIconDiv3">
|
||||
<TbSettingsSearch onClick={() => setMultiple(true)} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@ import React, { useState } from 'react';
|
|||
import { List, Typography, Tooltip } from 'antd';
|
||||
import { FaKeyboard } from 'react-icons/fa';
|
||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal';
|
||||
import '../../../../Styles/OverAllStyle/OverAllStyle.scss';
|
||||
const { Title, Text } = Typography;
|
||||
const ShortcutKeyHelper = ({ }) => {
|
||||
const ShortcutKeyHelper = ({}) => {
|
||||
const [isModalOpen, setIsModalOpen] = useState(false);
|
||||
|
||||
const shortcuts = [
|
||||
|
|
@ -55,11 +56,28 @@ const ShortcutKeyHelper = ({ }) => {
|
|||
width={500}
|
||||
>
|
||||
<List
|
||||
className="Shot-KeyBoard"
|
||||
dataSource={shortcuts}
|
||||
renderItem={(item) => (
|
||||
<List.Item>
|
||||
<div style={{ display: 'flex', justifyContent: 'space-between', width: '100%' }}>
|
||||
<Text strong style={{ fontFamily: 'monospace', backgroundColor: '#f5f5f5', padding: '2px 6px', borderRadius: '3px' }}>
|
||||
<div
|
||||
className="KBwithKey"
|
||||
style={{
|
||||
display: 'flex',
|
||||
justifyContent: 'space-between',
|
||||
width: '100%',
|
||||
}}
|
||||
>
|
||||
<Text
|
||||
className="KBwithKey"
|
||||
strong
|
||||
style={{
|
||||
fontFamily: 'monospace',
|
||||
backgroundColor: '#f5f5f5',
|
||||
padding: '2px 6px',
|
||||
borderRadius: '3px',
|
||||
}}
|
||||
>
|
||||
{item.key}
|
||||
</Text>
|
||||
<Text>{item.description}</Text>
|
||||
|
|
@ -72,4 +90,4 @@ const ShortcutKeyHelper = ({ }) => {
|
|||
);
|
||||
};
|
||||
|
||||
export default ShortcutKeyHelper;
|
||||
export default ShortcutKeyHelper;
|
||||
|
|
|
|||
|
|
@ -111,7 +111,6 @@ const SalesCountForStandard = lazy(
|
|||
);
|
||||
import BsBookingitemCard from '../../Components/BSItemCards/BsBookingitemCard.jsx';
|
||||
import LayoutSubCategoryFetcher from '../../LayoutSubCategoryFetcher.jsx';
|
||||
import NavbarSkeleton from '../../../../Components/Skeleton/NavbarSkeleton.jsx';
|
||||
import CardSkeleton from '../../../../Components/Skeleton/CardSkeleton.jsx';
|
||||
const ListOfSalesInvoices = lazy(
|
||||
() =>
|
||||
|
|
|
|||
|
|
@ -85,9 +85,11 @@ const AllSalesPageSettings = lazy(
|
|||
|
||||
// Scss
|
||||
import '../../../Styles/BookingScreen/Template/BSLayout2/BSLayout2.scss';
|
||||
import useWhyDidYouUpdate from '../../../Services/findrerender.js';
|
||||
import React from 'react';
|
||||
import { SalesDetailsModal, SalesNetAmountModal } from '../Components/UtillComponents/SalesDetailsNetAmountModal.jsx';
|
||||
import {
|
||||
SalesDetailsModal,
|
||||
SalesNetAmountModal,
|
||||
} from '../Components/UtillComponents/SalesDetailsNetAmountModal.jsx';
|
||||
|
||||
const SalesCountForStandard = React.memo(() => {
|
||||
const dispatch = useDispatch();
|
||||
|
|
@ -484,10 +486,10 @@ const SalesCountForStandard = React.memo(() => {
|
|||
return (
|
||||
DineInAccess?.SettingValue === 'Y' &&
|
||||
DineInOrderCount +
|
||||
TakeAwayOrderCount +
|
||||
SelfTakeAwayOrderCount +
|
||||
SelfDineInOrderCount >
|
||||
0 &&
|
||||
TakeAwayOrderCount +
|
||||
SelfTakeAwayOrderCount +
|
||||
SelfDineInOrderCount >
|
||||
0 &&
|
||||
(takeAwayPreference || dinePreference)
|
||||
);
|
||||
}, [DineInAccess, sales, dinePreference, takeAwayPreference]);
|
||||
|
|
@ -644,7 +646,7 @@ const SalesCountForStandard = React.memo(() => {
|
|||
{DineInAccess?.SettingValue === 'Y' &&
|
||||
takeAwayPreference &&
|
||||
(TakeAwayOrderCount || SelfTakeAwayOrderCount || PreOrderAmount) >
|
||||
0 && (
|
||||
0 && (
|
||||
<Tooltip
|
||||
className="standardTooltipDineIN"
|
||||
title={renderBreakdown([
|
||||
|
|
@ -744,13 +746,15 @@ const SalesCountForStandard = React.memo(() => {
|
|||
Stock
|
||||
</button>
|
||||
)}
|
||||
{preferenceshortcutkey && (
|
||||
<div className="KeyshortCutNav3">
|
||||
<ShortcutKeyHelper />
|
||||
</div>
|
||||
)}
|
||||
<AllSalesPageSettings />
|
||||
<div style={{ display: 'flex', alignItems: 'center' }}>
|
||||
|
||||
<div className="navb3SalesCounticons">
|
||||
{preferenceshortcutkey && (
|
||||
<div className="KeyshortCutNav3">
|
||||
<ShortcutKeyHelper />
|
||||
</div>
|
||||
)}
|
||||
|
||||
<AllSalesPageSettings />
|
||||
{Customisebillno && <CustomisedInvoiceChange />}
|
||||
{SessionData?.FeatureAddonData?.FeatureDtls?.find(
|
||||
(item) => item?.FeatureAddonName?.toLowerCase() === 'kiosk sales'
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -21,8 +21,8 @@ import { getSession, validateSafeInput } from '../../Services/Others';
|
|||
import { postshift, putshift } from '../../Features/ShiftMaster/ShiftMaster.js';
|
||||
import './ShiftMaster.scss';
|
||||
import { FaPlus } from 'react-icons/fa6';
|
||||
import "../../Styles/OverAllStyle/OverAllStyle.scss";
|
||||
|
||||
import '../../Styles/OverAllStyle/OverAllStyle.scss';
|
||||
|
||||
const subDirectory = import.meta.env.BASE_URL;
|
||||
|
||||
const ShiftForm = ({ formType }) => {
|
||||
|
|
@ -103,13 +103,15 @@ const ShiftForm = ({ formType }) => {
|
|||
|
||||
const isValidBreak = shiftEnd.isBefore(shiftStart)
|
||||
? (breakStart.isAfter(shiftStart) || breakStart.isBefore(shiftEnd)) &&
|
||||
(breakEnd.isAfter(shiftStart) || breakEnd.isBefore(shiftEnd))
|
||||
(breakEnd.isAfter(shiftStart) || breakEnd.isBefore(shiftEnd))
|
||||
: breakStart.isBetween(shiftStart, shiftEnd, null, '[]') &&
|
||||
breakEnd.isBetween(shiftStart, shiftEnd, null, '[]');
|
||||
breakEnd.isBetween(shiftStart, shiftEnd, null, '[]');
|
||||
|
||||
if (!isValidBreak) {
|
||||
setMessageType('error');
|
||||
setMessageData(`Break "${breakItem.BreakName}" is not within shift time range`);
|
||||
setMessageData(
|
||||
`Break "${breakItem.BreakName}" is not within shift time range`
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -167,8 +169,10 @@ const ShiftForm = ({ formType }) => {
|
|||
}
|
||||
|
||||
// parse safely (allow formats like "HH:mm" or "HH:mm:ss")
|
||||
const fromParts = (fromTime || '').split(':').map(s => parseInt(s, 10) || 0);
|
||||
const toParts = (toTime || '').split(':').map(s => parseInt(s, 10) || 0);
|
||||
const fromParts = (fromTime || '')
|
||||
.split(':')
|
||||
.map((s) => parseInt(s, 10) || 0);
|
||||
const toParts = (toTime || '').split(':').map((s) => parseInt(s, 10) || 0);
|
||||
|
||||
const [fromHour = 0, fromMinute = 0] = fromParts;
|
||||
const [toHour = 0, toMinute = 0] = toParts;
|
||||
|
|
@ -417,9 +421,9 @@ const ShiftForm = ({ formType }) => {
|
|||
// Validate break time fields before adding
|
||||
await formRef.current?.validateFields([
|
||||
'BreakName',
|
||||
'BreakStartTime',
|
||||
'BreakEndTime'
|
||||
]);
|
||||
'BreakStartTime',
|
||||
'BreakEndTime',
|
||||
]);
|
||||
|
||||
const Formdata = formRef.current?.getFieldsValue();
|
||||
const alreadyExists = Tabledata.some(
|
||||
|
|
@ -753,16 +757,16 @@ const ShiftForm = ({ formType }) => {
|
|||
|
||||
<div
|
||||
className="Quotation-tables Quotation-tablesShift"
|
||||
style={{ maxwidth: '500px', overflowX: 'scroll' }}
|
||||
style={{
|
||||
maxwidth: '500px',
|
||||
overflowX: 'auto',
|
||||
scrollbarWidth: 'thin',
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
bordered
|
||||
// components={components}
|
||||
// rowClassName="editable-row"
|
||||
columns={Columns}
|
||||
dataSource={Tabledata}
|
||||
// pagination={handlePageChange}
|
||||
// onChange={handleChange}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|||
import { Tooltip } from 'antd';
|
||||
import { IoSettingsOutline } from 'react-icons/io5';
|
||||
import { DefaultModal } from '../../Components/Modal/DefaultModal.jsx';
|
||||
|
||||
import '../../Styles/OverAllStyle/OverAllStyle.scss';
|
||||
|
||||
const SettingsIconWithModal = ({
|
||||
tooltipTitle = 'Add Fields',
|
||||
|
|
@ -18,8 +18,7 @@ const SettingsIconWithModal = ({
|
|||
// map labels → values
|
||||
const mappedFields = selectedAdditionalColumn
|
||||
.map(
|
||||
(col) =>
|
||||
tableFieldPreferences.find((pref) => pref.label === col)?.value
|
||||
(col) => tableFieldPreferences.find((pref) => pref.label === col)?.value
|
||||
)
|
||||
.filter(Boolean);
|
||||
|
||||
|
|
@ -47,7 +46,7 @@ const SettingsIconWithModal = ({
|
|||
{/* ⚙️ ICON ONLY */}
|
||||
<Tooltip title={tooltipTitle} placement="top">
|
||||
<IoSettingsOutline
|
||||
style={{ cursor: 'pointer', fontSize: '15px' }}
|
||||
style={{ cursor: 'pointer', fontSize: '20px' }}
|
||||
onClick={handleIconClick}
|
||||
/>
|
||||
</Tooltip>
|
||||
|
|
@ -62,7 +61,7 @@ const SettingsIconWithModal = ({
|
|||
handleSubmit={handleApply}
|
||||
handleCancel={handleCancel}
|
||||
>
|
||||
<div style={{ padding: '20px' }}>
|
||||
<div className="addFiledInProRec">
|
||||
{tableFieldPreferences.map((option) => (
|
||||
<div key={option.value} className="Customized_QuickAdd">
|
||||
<label>
|
||||
|
|
|
|||
|
|
@ -229,8 +229,7 @@ const StoreRecipeform = ({ formType }) => {
|
|||
let RecipeProdName = `${RecipeproductFilter?.ProdName} (${RecipeproductFilter?.Size} ${RecipeproductFilter?.UomName})`;
|
||||
|
||||
let existsData = Tabledata?.filter(
|
||||
(item) =>
|
||||
item.ProdId === formData.ProdId
|
||||
(item) => item.ProdId === formData.ProdId
|
||||
);
|
||||
|
||||
if (existsData?.length == 0) {
|
||||
|
|
@ -337,12 +336,12 @@ const StoreRecipeform = ({ formType }) => {
|
|||
Postdata['RecProdId'] = state.RecProdId;
|
||||
Postdata['RecipeName'] = ProdName;
|
||||
// Postdata["RecipeQty"] = 1;
|
||||
(Postdata['ProductDetails'] = Tabledata.map((item) => ({
|
||||
((Postdata['ProductDetails'] = Tabledata.map((item) => ({
|
||||
ProdId: item?.ProdId,
|
||||
ProdName: item?.ProdName,
|
||||
// "ProdQty": item?.ProdQty
|
||||
}))),
|
||||
(Postdata['CreatedBy'] = UserId);
|
||||
(Postdata['CreatedBy'] = UserId));
|
||||
let response = {};
|
||||
if (formType === 'add') {
|
||||
response = await dispatch(StoreProductCreationpost(Postdata)).unwrap();
|
||||
|
|
@ -475,34 +474,6 @@ const StoreRecipeform = ({ formType }) => {
|
|||
/>
|
||||
</Form.Item>
|
||||
|
||||
{/* <Form.Item
|
||||
name="ProdQty"
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
message: "Please Enter Quantity"
|
||||
},
|
||||
{
|
||||
validator: async (_, value) => {
|
||||
await validateSafeInput(value);
|
||||
if (parseInt(value) === 0 && value.length <= 10) {
|
||||
return Promise.reject("Please enter valid Qty");
|
||||
}
|
||||
// if (value.length > 10) {
|
||||
// return Promise.reject("Quantity cannot exceed 10 characters.");
|
||||
// }
|
||||
// return Promise.resolve();
|
||||
},
|
||||
},
|
||||
]}
|
||||
>
|
||||
<InputField
|
||||
label={<label class="required">Prod Qty</label>}
|
||||
autocomplete="off"
|
||||
isOnChange={!editDataval ? true : false}
|
||||
/>
|
||||
</Form.Item> */}
|
||||
|
||||
<div style={{ fontSize: '25px' }}>
|
||||
<Tooltip title="Add Products" placement="top">
|
||||
<PlusCircleOutlined
|
||||
|
|
@ -517,7 +488,11 @@ const StoreRecipeform = ({ formType }) => {
|
|||
|
||||
<div
|
||||
className="Quotation-tables"
|
||||
style={{ maxwidth: '500px', overflowX: 'scroll' }}
|
||||
style={{
|
||||
maxwidth: '500px',
|
||||
overflowX: 'auto',
|
||||
scrollbarWidth: 'thin',
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
bordered
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
const [index, setindex] = useState();
|
||||
const tableRef = useRef(null);
|
||||
const formData = formRef?.current?.getFieldsValue();
|
||||
console.log(editingKey, "editingKey")
|
||||
console.log(editingKey, 'editingKey');
|
||||
const remainingQty = ReqQty - totalEnteredQty;
|
||||
const isQtyMatched = totalEnteredQty === ReqQty;
|
||||
|
||||
|
|
@ -105,9 +105,9 @@ const StoreKitchenform = ({ formType }) => {
|
|||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
let totalqty = getTotalEnteredQty()
|
||||
setTotalEnteredQty(totalqty)
|
||||
}, [ProductVarientdata])
|
||||
let totalqty = getTotalEnteredQty();
|
||||
setTotalEnteredQty(totalqty);
|
||||
}, [ProductVarientdata]);
|
||||
|
||||
useEffect(() => {
|
||||
const handleClickOutside = (event) => {
|
||||
|
|
@ -264,7 +264,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
onChange={(e) => handleMrpchange(e, record, index)}
|
||||
onBlur={(e) => handleMrpchange(e, record, index)}
|
||||
inputMode="decimal"
|
||||
placeholder='Enter Qty'
|
||||
placeholder="Enter Qty"
|
||||
onInput={(e) => {
|
||||
let cleanedValue = e.target.value.replace(/[^0-9.]/g, ''); // Remove invalid characters
|
||||
const parts = cleanedValue.split('.');
|
||||
|
|
@ -411,7 +411,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
if (Reqqty < 1) {
|
||||
setMessageType('error');
|
||||
setMessageData('Please Enter Qty');
|
||||
return
|
||||
return;
|
||||
}
|
||||
|
||||
setReqQty(Reqqty);
|
||||
|
|
@ -442,7 +442,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
return {
|
||||
...variant,
|
||||
StockDetails: updatedStockDetails,
|
||||
StockAvailable: record?.StockAvailable
|
||||
StockAvailable: record?.StockAvailable,
|
||||
};
|
||||
});
|
||||
|
||||
|
|
@ -463,7 +463,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
}, [ProductVarientdata]);
|
||||
|
||||
const validateConsumption = (data, consumedStock) => {
|
||||
console.log(data, "datadata", consumedStock);
|
||||
console.log(data, 'datadata', consumedStock);
|
||||
|
||||
const errors = [];
|
||||
|
||||
|
|
@ -478,7 +478,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
prodName: product.ProdName || 'Unknown Product',
|
||||
message: 'No stock consumption recorded for this product',
|
||||
expected: product.ProdQty,
|
||||
actual: 0
|
||||
actual: 0,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
|
@ -491,39 +491,42 @@ const StoreKitchenform = ({ formType }) => {
|
|||
if (totalConsumedQty !== product?.ProdQty) {
|
||||
errors.push({
|
||||
prodId: product.ProdId,
|
||||
prodName: product.ProdName || consumedProduct.ProdName || 'Unknown Product',
|
||||
message: totalConsumedQty < product.ProdQty
|
||||
? 'Insufficient stock consumed'
|
||||
: 'Excess stock consumed',
|
||||
prodName:
|
||||
product.ProdName || consumedProduct.ProdName || 'Unknown Product',
|
||||
message:
|
||||
totalConsumedQty < product.ProdQty
|
||||
? 'Insufficient stock consumed'
|
||||
: 'Excess stock consumed',
|
||||
expected: product.ProdQty,
|
||||
actual: totalConsumedQty,
|
||||
difference: Math.abs(totalConsumedQty - product.ProdQty)
|
||||
difference: Math.abs(totalConsumedQty - product.ProdQty),
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
isValid: errors.length === 0,
|
||||
errors
|
||||
errors,
|
||||
};
|
||||
};
|
||||
|
||||
const onFinish = async () => {
|
||||
|
||||
if (Tabledata?.length === 0) {
|
||||
setMessageType('error');
|
||||
setMessageData('No products found');
|
||||
return
|
||||
return;
|
||||
}
|
||||
|
||||
const validation = validateConsumption(Tabledata, UpdatedStockData);
|
||||
console.log(validation, "validation")
|
||||
console.log(validation, 'validation');
|
||||
if (!validation.isValid) {
|
||||
const error = validation.errors?.[0];
|
||||
console.error('Validation failed:');
|
||||
setMessageType('error');
|
||||
setMessageData(`${error?.prodName}: ${error?.message}. Expected: ${error?.expected}, Actual: ${error?.actual}`);
|
||||
return
|
||||
setMessageData(
|
||||
`${error?.prodName}: ${error?.message}. Expected: ${error?.expected}, Actual: ${error?.actual}`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const formData = formRef?.current?.getFieldsValue();
|
||||
|
|
@ -583,12 +586,17 @@ const StoreKitchenform = ({ formType }) => {
|
|||
key: String(variantIndex),
|
||||
// label: `${variant?.ProdVariantName} - <span> Total Available Qty </span>: ${variant?.OverAllQty ?? 0} `,
|
||||
label: (
|
||||
<span style={{ display: 'flex', gap: '10px', alignItems: 'center', justifyContent: 'space-between' }}>
|
||||
<span
|
||||
style={{
|
||||
display: 'flex',
|
||||
gap: '10px',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-between',
|
||||
}}
|
||||
>
|
||||
<span>{variant?.ProdVariantName}</span>
|
||||
<span style={{ fontWeight: 500, color: "#d46b08" }}>
|
||||
Total Available Qty :
|
||||
{" "}
|
||||
{variant?.OverAllQty ?? 0}
|
||||
<span style={{ fontWeight: 500, color: '#d46b08' }}>
|
||||
Total Available Qty : {variant?.OverAllQty ?? 0}
|
||||
</span>
|
||||
</span>
|
||||
),
|
||||
|
|
@ -614,7 +622,10 @@ const StoreKitchenform = ({ formType }) => {
|
|||
<p>
|
||||
<strong>Balance Qty : </strong> {stock?.BalanceQty}
|
||||
</p>
|
||||
<div style={{ display: 'flex', alignItems: 'center', gap: '10px' }} className='stockqtyDiv'>
|
||||
<div
|
||||
style={{ display: 'flex', alignItems: 'center', gap: '10px' }}
|
||||
className="stockqtyDiv"
|
||||
>
|
||||
<strong>Stock Qty : </strong>{' '}
|
||||
<Input
|
||||
type="number"
|
||||
|
|
@ -645,7 +656,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
value,
|
||||
balanceQty
|
||||
) => {
|
||||
const numericValue = parseInt((value || 0), 10);
|
||||
const numericValue = parseInt(value || 0, 10);
|
||||
|
||||
if (isNaN(numericValue) || numericValue < 0) return;
|
||||
|
||||
|
|
@ -661,9 +672,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
}
|
||||
|
||||
if (newTotal > ReqQty) {
|
||||
message.error(
|
||||
`Total quantity cannot exceed required qty (${ReqQty}).`
|
||||
);
|
||||
message.error(`Total quantity cannot exceed required qty (${ReqQty}).`);
|
||||
|
||||
// Reset all TakenQty to 0
|
||||
const resetData = ProductVarientdata.map((variant) => ({
|
||||
|
|
@ -673,11 +682,11 @@ const StoreKitchenform = ({ formType }) => {
|
|||
return {
|
||||
...stock,
|
||||
TakenQty: 0,
|
||||
}
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
...stock
|
||||
}
|
||||
...stock,
|
||||
};
|
||||
}
|
||||
}),
|
||||
}));
|
||||
|
|
@ -844,7 +853,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
const handleMrpchange = (e, record, index) => {
|
||||
const value = e?.target?.value;
|
||||
|
||||
if (value === "") {
|
||||
if (value === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -856,7 +865,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
const ProdQty = parseFloat(value);
|
||||
const totalAvailableQty = record?.ProdVariantDetails?.[0]?.OverAllQty || 0;
|
||||
|
||||
const valid = ((ProdQty > totalAvailableQty) && record?.StockAvailable === 'Y')
|
||||
const valid = ProdQty > totalAvailableQty && record?.StockAvailable === 'Y';
|
||||
const newData = Tabledata?.map((item, index1) => {
|
||||
if (index1 === index) {
|
||||
return {
|
||||
|
|
@ -875,7 +884,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
|
||||
formRef.current?.setFieldsValue({
|
||||
[`ProdQty${index}`]: valid ? 0 : ProdQty,
|
||||
})
|
||||
});
|
||||
|
||||
if (valid) {
|
||||
setMessageType('error');
|
||||
|
|
@ -887,7 +896,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
|
||||
// Build updatedStockItems array
|
||||
const updatedStockItems = newData
|
||||
.map(item => {
|
||||
.map((item) => {
|
||||
if (item?.StockAvailable !== 'N') return null;
|
||||
if (item?.ProdQty === 0 || item?.ProdQty === '') return null;
|
||||
|
||||
|
|
@ -912,14 +921,12 @@ const StoreKitchenform = ({ formType }) => {
|
|||
})
|
||||
.filter(Boolean);
|
||||
|
||||
|
||||
setUpdatedStockData((prev) => {
|
||||
const prevData = Array.isArray(prev) ? prev : [];
|
||||
|
||||
const filteredData = prevData.filter(
|
||||
item =>
|
||||
item?.StockAvailable !== 'N' &&
|
||||
item?.ProdId !== record?.ProdId
|
||||
(item) =>
|
||||
item?.StockAvailable !== 'N' && item?.ProdId !== record?.ProdId
|
||||
);
|
||||
|
||||
return [...filteredData, ...updatedStockItems];
|
||||
|
|
@ -994,24 +1001,6 @@ const StoreKitchenform = ({ formType }) => {
|
|||
/>
|
||||
</Form.Item>
|
||||
|
||||
{/* <Form.Item
|
||||
name="SellingPrice"
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
pattern: /^(?!\s*$).+/,
|
||||
message: `Please Enter SellingPrice`,
|
||||
},
|
||||
]}
|
||||
>
|
||||
<InputField
|
||||
label={<label className="required">Selling Price</label>}
|
||||
autoComplete="off"
|
||||
disabled={editstate ? true : false}
|
||||
isOnChange={editstate ? true : false}
|
||||
/>
|
||||
</Form.Item> */}
|
||||
|
||||
<Form.Item
|
||||
name="EmpID"
|
||||
rules={[
|
||||
|
|
@ -1036,11 +1025,17 @@ const StoreKitchenform = ({ formType }) => {
|
|||
/>
|
||||
</Form.Item>
|
||||
</div>
|
||||
<div style={{ fontFamily: 'Poppins', fontStyle: 'italic' }}>Note : Click on the quantity to edit.</div>
|
||||
<div style={{ fontFamily: 'Poppins', fontStyle: 'italic' }}>
|
||||
Note : Click on the quantity to edit.
|
||||
</div>
|
||||
<div
|
||||
ref={tableRef}
|
||||
className="Quotation-tables StoreKitchen-tables"
|
||||
style={{ maxwidth: '500px', overflowX: 'scroll' }}
|
||||
style={{
|
||||
maxwidth: '500px',
|
||||
overflowX: 'auto',
|
||||
scrollbarWidth: 'thin',
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
bordered
|
||||
|
|
@ -1078,7 +1073,7 @@ const StoreKitchenform = ({ formType }) => {
|
|||
width={1000}
|
||||
handleSubmit={() => StockSelected()}
|
||||
footer={false}
|
||||
className='combo-variant-modal'
|
||||
className="combo-variant-modal"
|
||||
children={
|
||||
<>
|
||||
<div className="product-variants-container">
|
||||
|
|
@ -1116,8 +1111,9 @@ const StoreKitchenform = ({ formType }) => {
|
|||
<span>
|
||||
<Buttons
|
||||
buttonText={
|
||||
isQtyMatched || ProductVarientdata?.[0]?.StockDetails?.[0]?.StockAvailable ===
|
||||
'N'
|
||||
isQtyMatched ||
|
||||
ProductVarientdata?.[0]?.StockDetails?.[0]
|
||||
?.StockAvailable === 'N'
|
||||
? 'SUBMIT'
|
||||
: `ALLOCATE ${remainingQty} MORE`
|
||||
}
|
||||
|
|
@ -1125,8 +1121,8 @@ const StoreKitchenform = ({ formType }) => {
|
|||
icon={<ArrowRightOutlined />}
|
||||
handleSubmit={StockSelected}
|
||||
disabled={
|
||||
ProductVarientdata?.[0]?.StockAvailable ===
|
||||
'Y' && !isQtyMatched
|
||||
ProductVarientdata?.[0]?.StockAvailable === 'Y' &&
|
||||
!isQtyMatched
|
||||
}
|
||||
/>
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -444,27 +444,6 @@
|
|||
pointer-events: none;
|
||||
}
|
||||
|
||||
.MultiSearchIconDiv {
|
||||
background-color: #1292ee;
|
||||
color: #fff !important;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
width: 35px !important;
|
||||
height: 33px;
|
||||
padding: 6px;
|
||||
|
||||
svg {
|
||||
font-size: 22px;
|
||||
width: 35px !important;
|
||||
height: 35px;
|
||||
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.salesUserProfile {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -523,4 +502,23 @@
|
|||
width: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.MultiSearchIconDiv {
|
||||
color: #1292ee !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
width: 27px !important;
|
||||
height: 27px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
left: 6px;
|
||||
}
|
||||
.custom-input {
|
||||
padding: 10px 30px 10px 30px;
|
||||
}
|
||||
.search-icon {
|
||||
top: 53%;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,36 @@
|
|||
display: flex;
|
||||
height: 32px;
|
||||
border-radius: 50px;
|
||||
position: relative;
|
||||
.custom-input {
|
||||
padding: 10px 35px 10px 40px;
|
||||
}
|
||||
.search-icon {
|
||||
top: 50%;
|
||||
}
|
||||
.search-input {
|
||||
bottom: 3px;
|
||||
}
|
||||
.MultiSearchIconDiv2 {
|
||||
color: #1292ee !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
width: 20px !important;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
top: 5px;
|
||||
|
||||
svg {
|
||||
font-size: 22px;
|
||||
width: 32px !important;
|
||||
height: 32px;
|
||||
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.favItem-SearchBar {
|
||||
|
|
@ -374,24 +404,3 @@
|
|||
left: 11px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.MultiSearchIconDiv2 {
|
||||
background-color: #1292ee;
|
||||
color: #ffffff !important;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
width: 32px !important;
|
||||
height: 32px;
|
||||
padding: 4px;
|
||||
|
||||
svg {
|
||||
font-size: 22px;
|
||||
width: 32px !important;
|
||||
height: 32px;
|
||||
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,6 +84,12 @@
|
|||
.BsnavbarSearchMain {
|
||||
width: 25vw;
|
||||
position: relative;
|
||||
.MultiSearchIconDiv3 {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 5px;
|
||||
z-index: 100;
|
||||
}
|
||||
.BarCodeScanMaster {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
|
|
@ -117,7 +123,7 @@
|
|||
|
||||
.ant-input {
|
||||
margin-top: 0 !important;
|
||||
padding-top: 4px !important;
|
||||
padding-top: 3px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -663,12 +669,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
// .BSCategory2New {
|
||||
// // position: absolute;
|
||||
// // bottom: -50%;
|
||||
// // height: 0 !important;
|
||||
// }
|
||||
|
||||
.ant-tooltip {
|
||||
display: none !important;
|
||||
}
|
||||
|
|
@ -720,15 +720,14 @@
|
|||
}
|
||||
|
||||
.MultiSearchIconDiv3 {
|
||||
background-color: #ffffff;
|
||||
color: #1292ee !important;
|
||||
border-radius: 4px;
|
||||
// background-color: #ffffff;
|
||||
color: #aaaaaa !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
width: 32px !important;
|
||||
height: 32px;
|
||||
width: 30px !important;
|
||||
height: 30px;
|
||||
padding: 4px;
|
||||
|
||||
svg {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@
|
|||
|
||||
.Re-Print-table {
|
||||
height: 300px;
|
||||
overflow: scroll;
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
.Re-Print-table .ant-pagination {
|
||||
|
|
@ -66,9 +67,7 @@
|
|||
}
|
||||
|
||||
.Re-Print-table .ant-table-wrapper .ant-table-thead > tr > th {
|
||||
// color: black !important;
|
||||
font-weight: 600 !important;
|
||||
// font-size: 14px;
|
||||
}
|
||||
|
||||
.Re-Print-table .ant-table-row > td {
|
||||
|
|
@ -77,102 +76,6 @@
|
|||
font-size: 14px;
|
||||
}
|
||||
|
||||
// .BSReprint tbody td {
|
||||
// color: black;
|
||||
// font-weight: 600;
|
||||
// font-size: 16px;
|
||||
// }
|
||||
// .BSReprint thead {
|
||||
// // position: -webkit-sticky;
|
||||
// position: sticky;
|
||||
// top: 0;
|
||||
// background-color: rgb(234, 249, 255); /* Set a background color if needed */
|
||||
// z-index: 1;
|
||||
// }
|
||||
|
||||
// .BSReprint{
|
||||
// width: 100vw;
|
||||
// }
|
||||
|
||||
// .Re-print-bold{
|
||||
// font-weight: 600;
|
||||
// font-family: initial;
|
||||
// letter-spacing: 1px;
|
||||
// }
|
||||
|
||||
// .Re-print-bold{
|
||||
// font-weight: 600;
|
||||
// font-family: initial;
|
||||
// letter-spacing: 1px;
|
||||
// color: #000;
|
||||
// }
|
||||
|
||||
// .Re-print-top {
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// align-items: center;
|
||||
// width: 100%;
|
||||
|
||||
// }
|
||||
|
||||
// .Re-print-Table {
|
||||
// width: 100%;
|
||||
// }
|
||||
|
||||
// .Re-print-Table ,.Re-print-th ,.Re-print-td {
|
||||
// border: 1px solid black;
|
||||
// border-collapse: collapse;
|
||||
// font-family: initial;
|
||||
// }
|
||||
|
||||
// .Re-print-Table1
|
||||
// {
|
||||
// border-collapse: collapse;
|
||||
// border-top: 1px solid #BAD4F9;
|
||||
// border-left:1px solid #BAD4F9;
|
||||
// border-right:1px solid #BAD4F9;
|
||||
//}
|
||||
// .Re-print-td1{
|
||||
// border: 1px solid black;
|
||||
// border-collapse: collapse;
|
||||
// font-family: initial;
|
||||
// }
|
||||
// .Re-print-thtd1
|
||||
// {
|
||||
// padding: 10px 0px;
|
||||
// }
|
||||
// .Re-print-th1
|
||||
// {
|
||||
// background-color: #BAD4F9;
|
||||
// z-index: 1;
|
||||
// }
|
||||
|
||||
// .Re-print-body-Tr {
|
||||
// text-align: center;
|
||||
// font-family: initial;
|
||||
// }
|
||||
|
||||
// .Re-print-title {
|
||||
// font-size: 20px;
|
||||
// font-weight: 600;
|
||||
// font-family: initial;
|
||||
// }
|
||||
|
||||
// .Re-print-Add {
|
||||
// width: 100px;
|
||||
// font-family: initial;
|
||||
// }
|
||||
|
||||
// .Re-print-GST {
|
||||
// font-family: initial;
|
||||
// }
|
||||
|
||||
// .Re-print-top2 {
|
||||
// display: flex;
|
||||
// width: 100%;
|
||||
// font-family: initial;
|
||||
// justify-content: space-between;
|
||||
// }
|
||||
.bsreprintmodaltable {
|
||||
width: 100%;
|
||||
height: 70vh;
|
||||
|
|
@ -269,15 +172,12 @@
|
|||
|
||||
.loader {
|
||||
border: 4px solid #f3f3f3;
|
||||
/* Light grey */
|
||||
border-top: 4px solid #3498db;
|
||||
/* Blue */
|
||||
border-radius: 50%;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
animation: spin 1s linear infinite;
|
||||
margin: auto;
|
||||
/* center if inside flex/centered container */
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
|
|
|
|||
|
|
@ -246,6 +246,9 @@ body {
|
|||
color: #fff !important;
|
||||
filter: invert(2);
|
||||
}
|
||||
.KeyshortCutNav3 > div:nth-child(1) {
|
||||
padding: 3.5px 10px !important;
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
padding: 0.55rem 0.5rem !important;
|
||||
|
|
@ -481,3 +484,9 @@ body {
|
|||
font-family: "Poppins" !important;
|
||||
}
|
||||
}
|
||||
|
||||
.navb3SalesCounticons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1575,7 +1575,7 @@
|
|||
position: relative;
|
||||
height: max-content;
|
||||
max-height: 14vh;
|
||||
overflow: scroll;
|
||||
overflow: auto;
|
||||
border: 1px solid #eeeeee;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
|
@ -1772,7 +1772,7 @@
|
|||
|
||||
.creditListCardMain {
|
||||
min-width: 220px;
|
||||
height: 25.5vh;
|
||||
height: 27.5vh;
|
||||
flex: 0.7;
|
||||
overflow: scroll;
|
||||
border-radius: 8px;
|
||||
|
|
|
|||
|
|
@ -1651,3 +1651,40 @@ table {
|
|||
background-color: #2c88ee !important;
|
||||
}
|
||||
}
|
||||
|
||||
.addFiledInProRec {
|
||||
padding: 12px;
|
||||
height: max-content;
|
||||
max-height: 70vh;
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
background-color: #f4f4f4;
|
||||
border-radius: 8px;
|
||||
.Customized_QuickAdd {
|
||||
margin-bottom: 6px;
|
||||
font-family: "Poppins";
|
||||
font-weight: 400;
|
||||
label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
input {
|
||||
width: 18px !important;
|
||||
height: 20px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.Shot-KeyBoard {
|
||||
.KBwithKey,
|
||||
.ant-typography {
|
||||
font-family: "Poppins" !important ;
|
||||
font-weight: 400 !important;
|
||||
strong {
|
||||
font-weight: 500 !important;
|
||||
}
|
||||
}
|
||||
.ant-list-item {
|
||||
padding: 10px 0 !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,3 +31,40 @@
|
|||
flex-direction: row;
|
||||
column-gap: 0.5rem;
|
||||
}
|
||||
|
||||
.defaultandCustomisedTheme {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
font-family: "Poppins";
|
||||
margin: 0 0 10px 0;
|
||||
background-color: #e1e1e1;
|
||||
padding: 4px 4px;
|
||||
width: max-content;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.defaultandCustomisedTheme > div {
|
||||
font-weight: 500;
|
||||
font-size: 20px;
|
||||
padding: 2px 8px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease;
|
||||
border: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.defaultandCustomisedTheme > div:hover {
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
.defaultandCustomisedTheme > div.selected {
|
||||
background-color: #ffffff;
|
||||
font-weight: 500;
|
||||
border-radius: 4px;
|
||||
svg {
|
||||
color: #008b00 !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
.OBamountOwner {
|
||||
display: flex;
|
||||
// align-items: center;
|
||||
align-items: flex-start;
|
||||
height: max-content;
|
||||
gap: 10px;
|
||||
|
|
@ -22,9 +21,6 @@
|
|||
.amountreceivedDate {
|
||||
height: 50px !important;
|
||||
}
|
||||
// .openingbalanceInput2 {
|
||||
// height: 70px !important;
|
||||
// }
|
||||
|
||||
.openingbalanceInput {
|
||||
width: 100%;
|
||||
|
|
|
|||
Loading…
Reference in New Issue