Merge pull request 'Email-Loader' (#291) from Email-Loader into main
Reviewed-on: Pozomind/pozo-retail-app#291
This commit is contained in:
commit
aa2a3b3c79
|
|
@ -1158,10 +1158,10 @@ function BSReprint({ setOpenModel = () => { } }) {
|
|||
};
|
||||
|
||||
const handleSendEmail = async (value) => {
|
||||
const toEmail = value.email;
|
||||
setLoading(true);
|
||||
try {
|
||||
const toEmail = value.email;
|
||||
if (selectedRows.length === 0) {
|
||||
setLoading(true);
|
||||
const result = await MobilePdfPrint({
|
||||
printerTemplateStyle,
|
||||
printDatas,
|
||||
|
|
@ -1172,16 +1172,25 @@ function BSReprint({ setOpenModel = () => { } }) {
|
|||
});
|
||||
|
||||
if (result?.data?.status === 1) {
|
||||
setEmailModalOpen(false); // ✅ Close modal
|
||||
setEmailId(''); // ✅ Reset email input (optional)
|
||||
setLoading(false);
|
||||
setMessage({ type: 'success', data: result?.data?.response || 'Email sent successfully' });
|
||||
setEmailModalOpen(false);
|
||||
setEmailId('');
|
||||
form.resetFields();
|
||||
} else {
|
||||
setMessage({ type: 'error', data: result?.data?.response || 'Email sending failed' });
|
||||
}
|
||||
} else {
|
||||
mutiplePrint('email',toEmail);
|
||||
await mutiplePrint('email', toEmail);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('❌ Email error:', err);
|
||||
setMessage({ type: 'error', data: err?.message || 'Something went wrong while sending email' });
|
||||
} finally {
|
||||
setLoading(false);
|
||||
if (selectedRows.length === 0) {
|
||||
// for single row, form already reset on success; for failure, still reset to clear bad input
|
||||
form.resetFields();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -1844,10 +1853,10 @@ function BSReprint({ setOpenModel = () => { } }) {
|
|||
/>
|
||||
</Modal> */}
|
||||
|
||||
{(emailModalOpen || isProcessing) && (
|
||||
{(emailModalOpen || loading) && (
|
||||
<EmailModel
|
||||
open={emailModalOpen}
|
||||
emailSending={isProcessing}
|
||||
emailSending={loading}
|
||||
handleCancel={() => setEmailModalOpen(false)}
|
||||
form={form}
|
||||
handleSendEmailWithEnteredEmail={handleSendEmail}
|
||||
|
|
|
|||
|
|
@ -90,6 +90,8 @@ const ReprintReasonReportList = () => {
|
|||
const [message, setMessage] = useState({ type: null, data: null });
|
||||
const [searchedText, setSearchedText] = useState('');
|
||||
const [tableData, setTableData] = useState([]);
|
||||
console.log(tableData, 'tableData23232');
|
||||
|
||||
const [fromDate, setFromDate] = useState();
|
||||
const [toDate, setToDate] = useState();
|
||||
const [page, setpage] = useState(1);
|
||||
|
|
@ -103,21 +105,21 @@ const ReprintReasonReportList = () => {
|
|||
index: index + 1
|
||||
}));
|
||||
|
||||
const items = [
|
||||
{
|
||||
name: 'Home',
|
||||
link: `${subDirectory}app-page/home`,
|
||||
},
|
||||
|
||||
{
|
||||
name: 'Reprint Details',
|
||||
link: `${subDirectory}report/reprintreasonreport`,
|
||||
},
|
||||
];
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(changeBreadCrumb({ items: items }));
|
||||
}, []);
|
||||
const items = [
|
||||
{
|
||||
name: 'Home',
|
||||
link: `${subDirectory}app-page/home`,
|
||||
},
|
||||
|
||||
{
|
||||
name: 'Reprint Details',
|
||||
link: `${subDirectory}report/reprintreasonreport`,
|
||||
},
|
||||
];
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(changeBreadCrumb({ items: items }));
|
||||
}, []);
|
||||
const columns = [
|
||||
{
|
||||
title: 'Sl.No',
|
||||
|
|
@ -463,11 +465,13 @@ const ReprintReasonReportList = () => {
|
|||
>
|
||||
<BiSolidPrinter
|
||||
onClick={Print}
|
||||
className={
|
||||
tableData?.length > 0
|
||||
? 'ItemWiseReport-printerIcon'
|
||||
: 'ItemWiseReport-printerIcon-disabled'
|
||||
}
|
||||
style={{
|
||||
fontSize: '24px',
|
||||
cursor: tableData?.length > 0 ? 'pointer' : 'not-allowed',
|
||||
opacity: tableData?.length > 0 ? 1 : 0.5,
|
||||
pointerEvents: tableData?.length > 0 ? 'auto' : 'none'
|
||||
}}
|
||||
|
||||
/>
|
||||
{/* <div
|
||||
style={{
|
||||
|
|
@ -501,20 +505,20 @@ const ReprintReasonReportList = () => {
|
|||
</Form.Item>
|
||||
</div>
|
||||
</div> */}
|
||||
<div style={{paddingTop:'15px'}}>
|
||||
<Form.Item name="DateRange">
|
||||
<DatePicker.RangePicker
|
||||
format={'DD/MM/YYYY'}
|
||||
value={
|
||||
fromDate && toDate
|
||||
? [dayjs(fromDate, 'DD-MM-YYYY HH:mm:ss'), dayjs(toDate, 'DD-MM-YYYY HH:mm:ss')]
|
||||
: null
|
||||
}
|
||||
onChange={onChange_Pending_DateRange}
|
||||
disabledDate={(current) => current && current > dayjs()}
|
||||
/>
|
||||
</Form.Item>
|
||||
</div>
|
||||
<div style={{ paddingTop: '15px' }}>
|
||||
<Form.Item name="DateRange">
|
||||
<DatePicker.RangePicker
|
||||
format={'DD/MM/YYYY'}
|
||||
value={
|
||||
fromDate && toDate
|
||||
? [dayjs(fromDate, 'DD-MM-YYYY HH:mm:ss'), dayjs(toDate, 'DD-MM-YYYY HH:mm:ss')]
|
||||
: null
|
||||
}
|
||||
onChange={onChange_Pending_DateRange}
|
||||
disabledDate={(current) => current && current > dayjs()}
|
||||
/>
|
||||
</Form.Item>
|
||||
</div>
|
||||
|
||||
</Form>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue