import React, { useEffect, useState, useRef } from 'react'; import { useDispatch } from 'react-redux'; import { Tooltip, Form } from 'antd'; import moment from 'moment'; import { DatePicProd } from '../../Components/Forms/DatePickerProduct.jsx'; import { Tables } from '../../Components/Tables/Table.jsx'; import { BiSolidPrinter } from 'react-icons/bi'; import './WholeSalePaymentPurchaseReport.scss'; import { changeBreadCrumb } from '../../Features/AppPage/CenterPage.js'; import { getPaymentPurchaseReport, UserDataBasedOnBranchId, } from '../../Features/BookingScreen/BookingData/BookingData.js'; import { getSession } from '../../Services/Others.js'; import { printDiv } from '../../Services/WSOthers.js'; import PurchasePaymentReport from '../PurchaseScreen/WholeSalePrint/PurchasePaymentReportPdf.jsx'; import { DropDowns } from '../../Components/Forms/DropDown.jsx'; import { isMobile } from 'react-device-detect'; const subDirectory = import.meta.env.BASE_URL; const WholeSalePaymentPurchaseReport = () => { const formRef = useRef(); const dispatch = useDispatch(); const [datewiseData, setDatewiseData] = useState(); const CompId = getSession('CompId'); const BranchId = getSession('BranchId'); const UserRole = getSession('UserType'); const AppId = getSession('AppId'); const [OrderFromDate, setOrderFromDate] = useState(); const [OrderToDate, setOrderToDate] = useState(); const [UserId, setUserId] = useState( UserRole != 'Employee' ? 0 : getSession('UserId') ); const [userDropDown, setuserDropDown] = useState([]); const [selectedUserData, setSelectedUserData] = useState(null); const [page, setpage] = useState(1); const [receiptText, setreceiptText] = useState(null); const [WholeDataSource, setWholeDataSource] = useState([]); const [insideWholeDataSource, setinsideWholeDataSource] = useState([]); const [openDenomination, setOpenDenomination] = useState(false); console.log(WholeDataSource, 'WholeDataSource', insideWholeDataSource); useEffect(() => { if (WholeDataSource?.length > 0) { mobileDateWisePrintFun(WholeDataSource); } }, [WholeDataSource]); const reprintDate = (date) => { const salesDate = new Date(date); const formattedDate = salesDate.toLocaleDateString('en-GB', { day: '2-digit', month: '2-digit', year: 'numeric', }); return formattedDate; }; const mobileDateWisePrintFun = async (data) => { let Dataa = WholeDataSource; let Tabledata = Dataa?.map((data, index) => { const snoSpacing = Math.max(0, 3 - String(index + 1).length); // Calculate dynamic spacing for Rate const rateSpacing = Math.max(0, 9 - String(data?.NetAmount).length); const QtySpacing = Math.max( 0, 3 - String(data?.CountOfPaymentType).length ); // Generate formatted string with dynamic spacings const formattedString = ' '.repeat(snoSpacing) + parseInt(index + 1) + ' ' + (data?.PaymentMethod + ' '.repeat(22)).substring(0, 22) + ' ' + ' '.repeat(QtySpacing) + String(data?.CountOfPaymentType) + ' ' + ' '.repeat(rateSpacing) + String(data?.NetAmount) + ' ' + '\n'; return formattedString; }); const AmountSpace = Math.max( 0, 6 - String(parseFloat(TotalBill).toFixed(2)).length ); const Billamountspace = Math.max( 0, 6 - String(datewiseData?.[0]?.WholeSaleExpenseNetAmount?.toFixed(2)).length ); const Taxamountspace = Math.max( 0, 6 - String(datewiseData?.[0]?.WholeSaleExpenseTaxAmount?.toFixed(2)).length ); const Netamountspace = Math.max( 0, 6 - String(datewiseData?.[0]?.WholeSaleExpenseNetAmount?.toFixed(2)).length ); var receiptTextdata = "[C]" + 'Datewise Sales' + '\n' + '[L]From Date :' + reprintDate(OrderFromDate) + '[R]' + ' ' + 'To Date :' + reprintDate(OrderToDate) + '\n' + '[C]------------------------------------------------\n' + '[L]' + '' + 'S.No' + ' ' + ' Payment Type ' + ' ' + 'Count ' + ' ' + 'Amount ' + '' + '' + '[L]\n' + '[C]------------------------------------------------\n' + Tabledata.join('') + '[C]------------------------------------------------\n' + '[L]' + 'Total Orders:' + datewiseData?.[0]?.Orders + '' + '[R]' + 'TotalAmount:' + parseFloat(TotalBill).toFixed(2) + ' '.repeat(AmountSpace) + '\n' + '[R]' + 'Total Bill:' + parseFloat(datewiseData?.[0]?.WholeSaleExpenseNetAmount).toFixed(2) + ' '.repeat(Billamountspace) + '\n' + '[R]' + 'Total Tax:' + parseFloat(datewiseData?.[0]?.WholeSaleExpenseTaxAmount).toFixed(2) + ' '.repeat(Taxamountspace) + '\n' + '[L]------------------------------------------------\n' + '[R]' + 'Net:' + parseFloat(datewiseData?.[0]?.WholeSaleExpenseNetAmount).toFixed(2) + ' '.repeat(Netamountspace) + '\n'; setreceiptText(receiptTextdata); }; const items = [ { name: 'Home', link: `${subDirectory}app-page/home`, }, ]; const style = ``; useEffect(() => { dispatch(changeBreadCrumb({ items: items })); fetchInitialData(); if (UserRole != 'Employee') { userDropData(); } }, []); const userDropData = async () => { const gettinguserDropDown = await dispatch( UserDataBasedOnBranchId(BranchId) ).unwrap(); if (gettinguserDropDown?.data?.statusCode === 1) { let finaluserDropDown = gettinguserDropDown?.data?.data?.filter( (value) => value.ActiveStatus === 'A' ); finaluserDropDown.push({ UserId: 0, UserName: 'All User' }); setSelectedUserData(0); formRef.current?.setFieldsValue({ UserId: 0, }); setuserDropDown(finaluserDropDown); } }; const fetchInitialData = async () => { let currentDate = new Date().toJSON().slice(0, 10); formRef?.current?.setFieldsValue({ Fromdate: currentDate, Todate: currentDate, }); setOrderFromDate(currentDate + 'T00:00:00'); setOrderToDate(currentDate + 'T00:00:00'); let data = { CompId: CompId, BranchId: BranchId, AppId: AppId, OrderFromDate: currentDate, OrderToDate: currentDate, UserId: UserRole != 'Employee' ? 0 : UserId, }; let response = await dispatch(getPaymentPurchaseReport(data)).unwrap(); if (response?.data?.statusCode === 1) { setDatewiseData(response?.data?.data?.[0]); setWholeDataSource(response?.data?.data?.[0]?.OrderDetails); } else { setDatewiseData([]); } }; const columns = [ { title: 'SI NO', dataIndex: 'SINO', key: 'SINO', align: 'center', render: (text, object, index) => ( {(page - 1) * 10 + index + 1} ), }, { title: 'Type', dataIndex: 'PaymentMethod', key: 'PaymentMethod', align: 'left', }, { title: 'Qty', dataIndex: 'CountOfPaymentType', key: 'CountOfPaymentType', align: 'right', }, { title: 'Amount', dataIndex: 'NetAmount', key: 'NetAmount', align: 'right', }, ]; const OrderFromDatefetch = async (date, dateString) => { if (dateString === '') { setOrderFromDate(); } if (dateString) { const Date3 = moment(dateString, ['DD-MM-YYYY']).format( 'YYYY-MM-DDTHH:mm:ss' ); formRef.current?.setFieldsValue({ Fromdate: Date3 }); await setOrderFromDate(Date3); } }; const UserDropDownChange = async (e) => { setUserId(e); let mob = userDropDown?.filter((item) => item?.UserId === e); formRef.current?.setFieldsValue({ UserId: e, MobileNo: mob?.[0]?.MobileNo, }); setSelectedUserData(e); }; const OrderToDatefetch = async (date, dateString) => { if (dateString === '') { setOrderToDate(); } if (dateString) { const Date4 = moment(dateString, ['DD-MM-YYYY']).format( 'YYYY-MM-DDTHH:mm:ss' ); formRef.current?.setFieldsValue({ Todate: Date4 }); await setOrderToDate(Date4); } }; const Print = async () => { let LogoImage = ''; let OrderId = ''; let UpiId = ''; let TokenData = ''; let FooterPrint = ''; if (isMobile) { var textEncoded = encodeURI(receiptText); var TypeCheck = 'PrintReceipt'; var scheme = 'pozoprinter'; var packageName = 'com.example.pozoprinter'; window.location.href = scheme + '://' + textEncoded + '#Intent;scheme=' + scheme + ';package=' + packageName + 'ImgS' + LogoImage + 'ImgE' + TypeCheck + 'TokenS' + TokenData + 'TokenE' + 'EstimateS' + '' + 'EstimateE' + 'HasFooterTextS' + FooterPrint + 'HasFooterTextE' + ';end;'; } else { await printDiv('RePrint', style); } }; const onFinish = async (values) => { let data = { CompId: CompId, BranchId: BranchId, AppId: AppId, OrderFromDate: OrderFromDate?.split('T')?.[0], OrderToDate: OrderToDate?.split('T')?.[0], UserId: UserId, }; let response = await dispatch(getPaymentPurchaseReport(data)).unwrap(); if (response?.data?.statusCode === 1) { setDatewiseData(response?.data?.data?.[0]); setWholeDataSource(response?.data?.data?.[0]?.OrderDetails); } else { setDatewiseData([]); setWholeDataSource([]); } }; const TotalBill = datewiseData?.[0]?.WholeSaleExpenseNetAmount; const handlePageChange = (current) => { setpage(current); }; let count = WholeDataSource?.reduce((accumulator, currentValue) => { return accumulator + currentValue?.CountOfPaymentType; }, 0); let amount = WholeDataSource?.reduce((accumulator, currentValue) => { return accumulator + currentValue?.BillAmount; }, 0); return (

Purchase Payment

From Date

To Date

{UserRole != 'Employee' && ( ({ value: option?.UserId, label: option?.UserName, }))} label={} id="UserId" field="UserId" fieldState={true} fieldApi={true} className="field-DropDown-Emp" onChangeFunction={(e) => UserDropDownChange(e)} isOnchanges={selectedUserData ? true : false} valueData={selectedUserData} /> )}
0 ? 'PurchaseReport-payment-printerIcon' : 'PurchaseReport-payment-printerIcon-disabled' } onClick={Print} />
{' '} Qty :{' '} {count}
Total :{' '} {amount}
); }; export default WholeSalePaymentPurchaseReport;