import React from "react";
import { useDispatch, useSelector } from "react-redux";


import {

    GlobalPritdummyData,
    changeReprintDataFound,
    GlobalprinttermsAndConditions,
    Globalnotes,
    GlobalthemeFormat,
} from "../../../Features/ThemeChange/ThemeChange";
import { extractLastNumber } from "../../../Services/Others";
import "../../../Styles/BookingScreen/PrintTemplates/ThermalPrinter/PrintStyle2.scss";
import { isMobile } from "react-device-detect";

const PurPrintstyle2 = ({ index, totalQuantityFilter, Date1, base64Image, CashierName, totalQuantity, OrderDetailGST, OrderDetailIGST,
    OrderDetailVAT, table2Data, PaymentStatus, PrintLogo, PrintGreeting, printDatas }) => {
    const dispatch = useDispatch();
    const FieldDetails = printDatas?.FieldDetails?.reduce((acc, item) => {
        acc[item.ConfigName] = true;
        return acc;
    }, {});

    const SLNO = FieldDetails?.["Sl.No"];
    const Item = FieldDetails?.["Item"];
    const MRP = FieldDetails?.["MRP"];
    const Discount = FieldDetails?.["Discount"];
    const Quantity = FieldDetails?.["Quantity"];
    const Rate = FieldDetails?.["Rate"];
    const Amount = FieldDetails?.["Amount"];
    const HsnCode = FieldDetails?.["HsnCode"];
    const GlobaldummyData = useSelector(GlobalPritdummyData);
    const GlobaltermsAndConditions = useSelector(GlobalprinttermsAndConditions);




    let TermsAndConditions = printDatas?.TermsandConditions
    let SignatureImg = printDatas?.Signature
    let Notestext = printDatas?.Notes
    let BillName = printDatas?.PrintHdrName
    let FormatTheme = printDatas?.PrintType == "S" ? true : false
    let PageSize = printDatas?.PageSize
    const Signature = FieldDetails?.["signature"];
    const TermsnAdCondition = FieldDetails?.["terms&conditions"];



    const keysLength = Object.keys(table2Data ?? {}).length;
    const dataSource = table2Data?.[0]?.ProductDetails;
    if (keysLength > 0) {
        dispatch(changeReprintDataFound(true));
    }
    const currentDate = new Date();
    const day = currentDate.getDate().toString().padStart(2, "0");
    const monthNames = [
        "Jan",
        "Feb",
        "Mar",
        "Apr",
        "May",
        "Jun",
        "Jul",
        "Aug",
        "Sep",
        "Oct",
        "Nov",
        "Dec",
    ];


    const TakeawayData = table2Data?.[0]?.ProductDetails

    console.log(TakeawayData, "TakeawayDataTakeawayDataTakeawayData")

    let TotalOfferAmount = 0;

    // Calculate SalesWiseOffers total amount


    const chunkSize = PageSize == "A5" ? 11 : 16;

    // Paginate the data
    const paginatedChunks = [];
    for (let i = 0; i < dataSource?.length; i += chunkSize) {
        paginatedChunks.push(dataSource?.slice(i, i + chunkSize));
    }
    const lastChunkRows = paginatedChunks.length > 0 ? paginatedChunks[paginatedChunks.length - 1].length : 0;
    const shouldFooterBeOnNewPage = lastChunkRows > (PageSize == "A5" ? 5 : 13);
    console.log(FormatTheme, "paginatedChunks")
    return (
        <>
            {FormatTheme ?

                <div
                    className='PrintStyle2MasterDiv'
                    id={`SQPrintStyle2`}
                    style={{ fontFamily: "'Courier New', Courier, monospace", position: "relative", width: "100%", minHeight: isMobile ? (PageSize === "A5" ? "210mm" : "297mm") : "auto" }}>
                    {paginatedChunks?.map((dataChunk, chunkIndex) => (
                        <div className={`container print-chunk${chunkIndex > 0 ? ' print-page-break' : ''}`} style={{ display: "flex", flexDirection: "column", justifyContent: ((chunkIndex === paginatedChunks.length - 1) && (!shouldFooterBeOnNewPage)) && FormatTheme ? "space-between" : "", height: FormatTheme ? PageSize == "A5" ? '170mm' : "257mm" : "", }} key={chunkIndex}>

                            {/* <div className="header" style={{ position: "fixed", top: 0, width: "100%" }}> */}
                            <div className="header" style={{ position: isMobile ? GlobaldummyData ? "absolute" : "fixed" : "", top: 0, width: "100%" }}>
                                <div className='PrintStyle2-fistDiv' >

                                    <div style={{ display: 'flex', flexDirection: 'row' }}>
                                        {(base64Image && PrintLogo?.SettingValue === "Y") ? <img className='PrintStyle2-BrandImage' src={base64Image} alt='image' /> : null}
                                    </div>

                                    <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'center', fontSize: '12px', fontWeight: '600' }}>
                                        <div style={{ fontSize: '18px', fontWeight: '600' }} >{table2Data?.[0]?.BrMobile}</div>

                                        <div>{
                                            (table2Data?.[0]?.AddressDetails?.[0]?.Address1 || '') +
                                            (table2Data?.[0]?.AddressDetails?.[0]?.City ?
                                                (table2Data?.[0]?.AddressDetails?.[0]?.Address1 && table2Data?.[0]?.AddressDetails?.[0]?.City ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.City : '') + (table2Data?.[0]?.AddressDetails?.[0]?.Zip ? (table2Data?.[0]?.AddressDetails?.[0]?.City && table2Data?.[0]?.AddressDetails?.[0]?.Zip ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.Zip : '')}
                                        </div>

                                        <div>  Mobile : +91 {table2Data?.[0]?.BrMobile}</div>

                                    </div>

                                </div>

                                {<div style={{ fontWeight: '600', fontSize: '14px', display: 'flex', justifyContent: 'center', textTransform: 'uppercase' }}>{BillName} </div>}


                                <div className='PrintStyle2-SecondDivMaster'>
                                    <div className='PrintStyle2-SecondDiv'>
                                        <div style={{ fontWeight: '600', fontSize: '10px' }}>Bill No :{
                                            table2Data?.[0]?.QuotationNo && extractLastNumber(table2Data?.[0]?.QuotationNo)

                                        }</div>
                                    </div>
                                    <div style={{ fontWeight: '600', fontSize: '10px' }}>{Date1}</div>
                                </div>

                            </div>

                            <div style={{ marginTop: "0rem" }} className="print-body">
                                <div className="PrintStyle2-print-tableMaster">
                                    {
                                        <div style={{ margin: 0, padding: 0, display: "flex", flexDirection: "column", alignItems: "center", fontSize: "12px" }}>

                                            <table className="PrintStyle2-print-table">
                                                <thead>
                                                    <tr>
                                                        {SLNO && <th style={{ width: '8px' }}>S.No</th>}
                                                        {Item && <th >Item</th>}
                                                        {HsnCode && <th style={{ width: '8px', textAlign: 'right' }}>HSN</th>}
                                                        {Quantity && <th style={{ width: '8px', textAlign: 'right' }}>Qty</th>}
                                                        {MRP && <th style={{ width: '8px', textAlign: 'right' }}>MRP</th>}
                                                        {Amount && <th style={{ width: '8px', textAlign: 'right' }}>Amt</th>}
                                                        {Discount && <th style={{ width: '8px', textAlign: 'right' }}>Dis </th>}
                                                        {Rate && <th style={{ width: '8px', textAlign: 'right' }}>Rate</th>}
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    {dataChunk?.map((item, index) => {
                                                        return (
                                                            <tr key={index} >
                                                                {SLNO && <td className="Re-print-body-Rate">{chunkIndex * chunkSize + index + 1}</td>}
                                                                {Item &&
                                                                    <td className="Re-print-body-Product" style={{ display: 'flex', flexDirection: 'column' }}>
                                                                        <div>{item?.ProdName}</div>
                                                                        <div>({item?.Size ? item?.Size : "1"} {item?.SinglePc == 'Y' ? 'PCS' : item?.Type != "C" ? item?.UomName : "COMBO"})&nbsp; {item?.BrandName !== null ? item?.BrandName : ""}&nbsp;
                                                                            {item?.ProductIdentifierDtls?.length > 0 ? (item?.ProductIdentifierDtls?.filter((items) => !(items.SerialNumber == "" || items.SerialNumber == null))
                                                                                ?.map(a => { return (<div>{a.SerialNumber}</div>) })) : ""} {item?.ProductIdentifierDtls?.length > 0 ? item?.ProductIdentifierDtls.filter((item1) => item1.IMEI1 !== "" || item1.IMEI2 !== "")
                                                                                    ?.map(item2 => {
                                                                                        const imei1 = item2.IMEI1 || "";
                                                                                        const imei2 = item2.IMEI2 || "";
                                                                                        return (<div>{[imei1, imei2].filter(Boolean).join(",")}</div>);
                                                                                    }
                                                                                    ) : ""}</div>
                                                                    </td>
                                                                }
                                                                {HsnCode && <td className="Re-print-body-Rate">{item?.HSN}</td>}
                                                                {Quantity && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>{item?.Qty}</td>}
                                                                {MRP && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>{item?.SinglePc === 'Y' ? item?.Price : item?.MRP}</td>}
                                                                {Amount && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>  {item?.NetAmt?.toFixed(2)}</td>}
                                                                {Discount && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>  {item?.Type != "C" ? item?.OfferAmt || 0 : item?.OfferValue || 0}</td>}
                                                                {Rate && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>{item?.Price}</td>}
                                                            </tr>
                                                        )
                                                    })}
                                                </tbody>
                                            </table>
                                        </div>

                                    }

                                </div>

                            </div>

                            {((chunkIndex === paginatedChunks.length - 1) && (!shouldFooterBeOnNewPage)) && FormatTheme &&
                                <>
                                    <div className='PrintStyle2-ThirdDivMaster'>
                                        <div className='PrintStyle2-ThirdP'>
                                            <div>
                                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Qty</div>
                                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Items</div>
                                                {(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) && <div style={{ textAlign: 'left', fontWeight: '600' }}>Off</div>}
                                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Amount</div>
                                            </div>
                                            <div>
                                                <div>:</div>
                                                <div>:</div>
                                                {(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) && <div>:</div>}
                                                <div>:</div>
                                            </div>
                                            <div>
                                                <div style={{ textAlign: 'right', fontWeight: '600' }} >{totalQuantity}</div>
                                                <div style={{ textAlign: 'right', fontWeight: '600' }}>{totalQuantityFilter?.length}</div>
                                                {(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) && <div style={{ textAlign: 'right', fontWeight: '600' }}>{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}</div>}
                                                <div style={{ textAlign: 'right', fontWeight: '600' }} >{Number(table2Data?.[0]?.NetAmount).toFixed(2)}</div>
                                            </div>
                                        </div>
                                    </div>


                                    {((OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) ||
                                        (OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) ||
                                        (OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0)) &&
                                        <>
                                            <hr className="PrintStyle2-print-dottline" />

                                            <div>
                                                <div style={{ margin: 0, padding: 0, fontSize: "12px", textAlign: "center", fontWeight: "600" }}>
                                                    --------- GST Breakup Details -----------</div>
                                                {(OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) &&
                                                    <table style={{ width: "90%" }}>

                                                        <tr>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                Taxable Amount
                                                            </td>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                CGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%)
                                                            </td>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                SGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%)
                                                            </td>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>

                                                                Total Amount
                                                            </td>
                                                        </tr>
                                                        {OrderDetailGST?.map((item) =>
                                                            <tr>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    {Number(item.WithoutTaxRate).toFixed(2)}
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    {Number(item.CGST).toFixed(2)}
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    {Number(item.SGST).toFixed(2)}
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                            </tr>
                                                        )
                                                        }
                                                    </table>
                                                }

                                                {(OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) &&
                                                    <>
                                                        <div style={{ border: "0.01px dashed black", margin: "10px 0 5px 10px", width: '90%' }}></div>
                                                        <table style={{ width: "90%" }}>

                                                            <tr>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    Taxable Amount
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    IGST ({OrderDetailIGST?.[0]?.TaxPercentage}%)
                                                                </td>

                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>

                                                                    Total Amount
                                                                </td>
                                                            </tr>
                                                            {OrderDetailIGST?.map((item) =>
                                                                <tr>
                                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                        {Number(item.WithoutTaxRate).toFixed(2)}
                                                                    </td>
                                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                        {Number(item.TaxAmt).toFixed(2)}
                                                                    </td>

                                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                                </tr>
                                                            )
                                                            }
                                                        </table>
                                                    </>
                                                }
                                                {(OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0) &&
                                                    <>
                                                        <div style={{ border: "0.01px dashed black", margin: "10px 0 5px 10px", width: '90%' }}></div>
                                                        <table style={{ width: "90%" }}>

                                                            <tr>
                                                                <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                    Taxable Amount
                                                                </td>
                                                                <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                    VAT ({OrderDetailVAT?.[0]?.TaxPercentage}%)
                                                                </td>

                                                                <td style={{ fontSize: "10px", textAlign: "center" }}>

                                                                    Total Amount
                                                                </td>
                                                            </tr>
                                                            {OrderDetailVAT?.map((item) =>
                                                                <tr>
                                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                        {Number(item.WithoutTaxRate).toFixed(2)}
                                                                    </td>
                                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                        {Number(item.TaxAmt).toFixed(2)}
                                                                    </td>

                                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                                </tr>
                                                            )
                                                            }
                                                        </table>
                                                    </>
                                                }

                                            </div>

                                        </>
                                    }





                                    <div>
                                        <div className='PrintStyle2-FourthDivMaster'>
                                            <div className='PrintStyle2-FourthP'>


                                                {CashierName && CashierName !== undefined && CashierName !== null && !GlobaldummyData &&
                                                    <div style={{ fontWeight: '600' }}>Cashier : {CashierName}
                                                    </div>
                                                }


                                                {table2Data?.CustSuppName && table2Data?.CustSuppName !== undefined && table2Data?.CustSuppName !== null && !GlobaldummyData &&
                                                    <div>Customer : {table2Data?.CustSuppName}
                                                    </div>
                                                }


                                            </div>





                                            <div className="page-footerA4Style11"
                                                style={{
                                                    marginTop: "auto",
                                                    pageBreakBefore: "avoid",
                                                    pageBreakInside: "avoid",
                                                    minHeight: "auto",
                                                }}
                                            >
                                                {
                                                    Notestext && (<div>
                                                        <p style={{ padding: "0rem 1rem" }}>{Notestext}</p>

                                                        <hr className="PrintA4Style11-print-dottline" />
                                                    </div>)
                                                }


                                                <div style={{ display: "flex", width: "90%", padding: "0 1rem", justifyContent: GlobaltermsAndConditions ? "space-between" : "flex-end", alignItems: "center" }}>
                                                    {
                                                        (TermsnAdCondition == true && TermsAndConditions?.length > 0) && (<div style={{ margin: "8px 0", fontFamily: "sans-serif", width: "100%", display: "flex", flexDirection: "column", alignItems: "flex-start" }}>
                                                            <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>
                                                                Terms & Conditions
                                                            </p>
                                                            <ol style={{ fontSize: "12px", paddingLeft: "18px", margin: 0, lineHeight: "1" }}>
                                                                {TermsAndConditions?.map(item => (<li style={{ textAlign: "start" }}>{item?.TermsandConditions}</li>))}
                                                                {/* <li>Please check the product before leaving the counter.</li> */}
                                                            </ol>
                                                        </div>)
                                                    }

                                                    {Signature == true && (<div style={{ display: "flex", flexDirection: "column", alignItems: "center", marginTop: "1rem", paddingBottom: "1rem" }}>
                                                        <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>Signature</p>
                                                        <img style={{ width: "100px", height: "60px" }} src={SignatureImg} alt="" />
                                                    </div>)}

                                                </div>
                                            </div>

                                            {PrintGreeting?.SettingValue === "Y" &&
                                                <div style={{
                                                    display: 'flex',
                                                    justifyContent: 'center', alignItems: 'center'
                                                }}>
                                                    Thank You Visit Again
                                                </div>
                                            }
                                        </div>
                                    </div>

                                </>
                            }
                        </div>
                    ))}



                    {shouldFooterBeOnNewPage && FormatTheme &&
                        <div
                            className="print-page"
                            style={{
                                display: "flex",
                                flexDirection: "column",
                                minHeight: PageSize == "A5" ? "200mm" : "297mm",
                                justifyContent: "flex-end",
                                pageBreakBefore: "always",
                            }}
                        >
                            <div className="page-footerA4Style11"
                                style={{
                                    marginTop: "auto",
                                    pageBreakBefore: "avoid",
                                    pageBreakInside: "avoid",
                                    minHeight: "auto",
                                }}
                            >
                                <>
                                    <div className='PrintStyle2-ThirdDivMaster'>
                                        <div className='PrintStyle2-ThirdP'>
                                            <div>
                                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Qty</div>
                                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Items</div>
                                                {(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) && <div style={{ textAlign: 'left', fontWeight: '600' }}>Off</div>}
                                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Amount</div>
                                            </div>
                                            <div>
                                                <div>:</div>
                                                <div>:</div>
                                                {(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) && <div>:</div>}
                                                <div>:</div>
                                            </div>
                                            <div>
                                                <div style={{ textAlign: 'right', fontWeight: '600' }} >{totalQuantity}</div>
                                                <div style={{ textAlign: 'right', fontWeight: '600' }}>{totalQuantityFilter?.length}</div>
                                                {(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) && <div style={{ textAlign: 'right', fontWeight: '600' }}>{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}</div>}
                                                <div style={{ textAlign: 'right', fontWeight: '600' }} >{Number(table2Data?.[0]?.NetAmount).toFixed(2)}</div>
                                            </div>
                                        </div>
                                    </div>


                                    {((OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) ||
                                        (OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) ||
                                        (OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0)) &&
                                        <>
                                            <hr className="PrintStyle2-print-dottline" />

                                            <div>
                                                <div style={{ margin: 0, padding: 0, fontSize: "12px", textAlign: "center", fontWeight: "600" }}>
                                                    --------- GST Breakup Details -----------</div>
                                                {(OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) &&
                                                    <table style={{ width: "90%" }}>

                                                        <tr>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                Taxable Amount
                                                            </td>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                CGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%)
                                                            </td>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                SGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%)
                                                            </td>
                                                            <td style={{ fontSize: "12px", textAlign: "center" }}>

                                                                Total Amount
                                                            </td>
                                                        </tr>
                                                        {OrderDetailGST?.map((item) =>
                                                            <tr>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    {Number(item.WithoutTaxRate).toFixed(2)}
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    {Number(item.CGST).toFixed(2)}
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    {Number(item.SGST).toFixed(2)}
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                            </tr>
                                                        )
                                                        }
                                                    </table>
                                                }

                                                {(OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) &&
                                                    <>
                                                        <div style={{ border: "0.01px dashed black", margin: "10px 0 5px 10px", width: '90%' }}></div>
                                                        <table style={{ width: "90%" }}>

                                                            <tr>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    Taxable Amount
                                                                </td>
                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                    IGST ({OrderDetailIGST?.[0]?.TaxPercentage}%)
                                                                </td>

                                                                <td style={{ fontSize: "12px", textAlign: "center" }}>

                                                                    Total Amount
                                                                </td>
                                                            </tr>
                                                            {OrderDetailIGST?.map((item) =>
                                                                <tr>
                                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                        {Number(item.WithoutTaxRate).toFixed(2)}
                                                                    </td>
                                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                                        {Number(item.TaxAmt).toFixed(2)}
                                                                    </td>

                                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                                </tr>
                                                            )
                                                            }
                                                        </table>
                                                    </>
                                                }
                                                {(OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0) &&
                                                    <>
                                                        <div style={{ border: "0.01px dashed black", margin: "10px 0 5px 10px", width: '90%' }}></div>
                                                        <table style={{ width: "90%" }}>

                                                            <tr>
                                                                <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                    Taxable Amount
                                                                </td>
                                                                <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                    VAT ({OrderDetailVAT?.[0]?.TaxPercentage}%)
                                                                </td>

                                                                <td style={{ fontSize: "10px", textAlign: "center" }}>

                                                                    Total Amount
                                                                </td>
                                                            </tr>
                                                            {OrderDetailVAT?.map((item) =>
                                                                <tr>
                                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                        {Number(item.WithoutTaxRate).toFixed(2)}
                                                                    </td>
                                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                                        {Number(item.TaxAmt).toFixed(2)}
                                                                    </td>

                                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                                </tr>
                                                            )
                                                            }
                                                        </table>
                                                    </>
                                                }

                                            </div>

                                        </>
                                    }


                                    <div>
                                        <div className='PrintStyle2-FourthDivMaster'>
                                            <div className='PrintStyle2-FourthP'>

                                                {GlobaldummyData &&
                                                    <div> Cashier : Cashier Name</div>

                                                }
                                                {CashierName && CashierName !== undefined && CashierName !== null && !GlobaldummyData &&
                                                    <div style={{ fontWeight: '600' }}>Cashier : {CashierName}
                                                    </div>
                                                }

                                                {GlobaldummyData &&
                                                    <div> Customer : Customer Name</div>

                                                }
                                                {table2Data?.CustSuppName && table2Data?.CustSuppName !== undefined && table2Data?.CustSuppName !== null && !GlobaldummyData &&
                                                    <div>Customer : {table2Data?.CustSuppName}
                                                    </div>
                                                }

                                                {(table2Data?.BookingTypeName == 'Dine In' && dinePreference) &&
                                                    <div style={{ marginLeft: '10px', padding: 0, fontSize: "12px", fontWeight: "600" }}>
                                                        Waiter : {table2Data?.SalesTableLinkDetails?.[0]?.WaiterName}
                                                    </div>}
                                            </div>



                                            <div className="page-footerA4Style11"
                                                style={{
                                                    marginTop: "auto",
                                                    pageBreakBefore: "avoid",
                                                    pageBreakInside: "avoid",
                                                    minHeight: "auto",
                                                }}
                                            >
                                                {
                                                    Notestext && (<div>
                                                        <p style={{ padding: "0rem 1rem" }}>{Notestext}</p>

                                                        <hr className="PrintA4Style11-print-dottline" />
                                                    </div>)
                                                }


                                                <div style={{ display: "flex", width: "90%", padding: "0 1rem", justifyContent: GlobaltermsAndConditions ? "space-between" : "flex-end", alignItems: "center" }}>
                                                    {GlobaldummyData ? GlobaltermsAndConditions &&
                                                        (<div style={{ margin: "8px 0", padding: "8px", fontFamily: "sans-serif", width: "100%" }}>
                                                            <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>
                                                                Terms & Conditions
                                                            </p>
                                                            <ol style={{ fontSize: "12px", paddingLeft: "18px", margin: 0, lineHeight: "1" }}>
                                                                <li>Once goods are sold, they are not exchangeable or refundable.</li>
                                                                <li>Please check the product before leaving the counter.</li>
                                                            </ol>
                                                        </div>)
                                                        :
                                                        (TermsnAdCondition == true && TermsAndConditions?.length > 0) && (<div style={{ margin: "8px 0", fontFamily: "sans-serif", width: "100%", display: "flex", flexDirection: "column", alignItems: "flex-start" }}>
                                                            <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>
                                                                Terms & Conditions
                                                            </p>
                                                            <ol style={{ fontSize: "12px", paddingLeft: "18px", margin: 0, lineHeight: "1" }}>
                                                                {TermsAndConditions?.map(item => (<li style={{ textAlign: "start" }}>{item?.TermsandConditions}</li>))}
                                                                {/* <li>Please check the product before leaving the counter.</li> */}
                                                            </ol>
                                                        </div>)
                                                    }

                                                    {GlobaldummyData ? GlobalSignature && (<div style={{ display: "flex", flexDirection: "column", alignItems: "flex-end", paddingBottom: "1rem" }}>
                                                        <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>Signature</p>
                                                        <img style={{ width: "70px", height: "40px" }} src={GlobalSignatureImages ? GlobalSignatureImages : signature} alt="" />
                                                    </div>) : Signature == true && (<div style={{ display: "flex", flexDirection: "column", alignItems: "center", marginTop: "1rem", paddingBottom: "1rem" }}>
                                                        <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>Signature</p>
                                                        <img style={{ width: "100px", height: "60px" }} src={SignatureImg} alt="" />
                                                    </div>)}

                                                </div>
                                            </div>

                                            {PrintGreeting?.SettingValue === "Y" &&
                                                <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
                                                    Thank You Visit Again
                                                </div>
                                            }
                                        </div>
                                    </div>

                                </>
                            </div>
                        </div>
                    }
                </div>

                :
                <div id={`SQPrintStyle2`} className='PrintStyle2MasterDiv' style={{ fontFamily: "'Courier New', Courier, monospace" }}>


                    <div className='PrintStyle2-fistDiv' >

                        <div style={{ display: 'flex', flexDirection: 'row' }}>
                            {(base64Image && PrintLogo?.SettingValue === "Y") ? <img className='PrintStyle2-BrandImage' src={GlobaldummyData ? Logo : base64Image} alt='image' /> : null}
                        </div>

                        <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'center', fontSize: '12px', fontWeight: '600' }}>
                            <div style={{ fontSize: '18px', fontWeight: '600' }} >{table2Data?.[0]?.BrName}</div>

                            <div>{GlobaldummyData ?
                                'BranchAddress, Town- 635XXX City - State' :
                                (table2Data?.[0]?.AddressDetails?.[0]?.Address1 || '') +
                                (table2Data?.[0]?.AddressDetails?.[0]?.City ?
                                    (table2Data?.[0]?.AddressDetails?.[0]?.Address1 && table2Data?.[0]?.AddressDetails?.[0]?.City ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.City : '') + (table2Data?.[0]?.AddressDetails?.[0]?.Zip ? (table2Data?.[0]?.AddressDetails?.[0]?.City && table2Data?.[0]?.AddressDetails?.[0]?.Zip ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.Zip : '')}
                            </div>

                            <div>  Mobile : +91 {table2Data?.[0]?.BrMobile}</div>

                        </div>

                    </div>

                    {<div style={{ fontWeight: '600', fontSize: '14px', display: 'flex', justifyContent: 'center', textTransform: 'uppercase' }}>{BillName} </div>}


                    <div className='PrintStyle2-SecondDivMaster'>
                        <div className='PrintStyle2-SecondDiv'>
                            <div style={{ fontWeight: '600', fontSize: '10px' }}>Bill No :{
                                table2Data?.[0]?.QuotationNo && extractLastNumber(table2Data?.[0]?.QuotationNo)

                            }</div>
                        </div>
                        <div style={{ fontWeight: '600', fontSize: '10px' }}>{Date1}</div>
                    </div>



                    <div className="PrintStyle2-print-tableMaster">
                        {
                            <div style={{ margin: 0, padding: 0, display: "flex", flexDirection: "column", alignItems: "center", fontSize: "12px" }}>

                                <table className="PrintStyle2-print-table">
                                    <thead>
                                        <tr>
                                            {SLNO && <th style={{ width: '8px' }}>S.No</th>}
                                            {Item && <th >Item</th>}
                                            {HsnCode && <th style={{ width: '8px', textAlign: 'right' }}>HSN</th>}
                                            {Quantity && <th style={{ width: '8px', textAlign: 'right' }}>Qty</th>}
                                            {MRP && <th style={{ width: '8px', textAlign: 'right' }}>MRP</th>}
                                            {Amount && <th style={{ width: '8px', textAlign: 'right' }}>Amt</th>}
                                            {Discount && <th style={{ width: '8px', textAlign: 'right' }}>Dis </th>}
                                            {Rate && <th style={{ width: '8px', textAlign: 'right' }}>Rate</th>}
                                        </tr>
                                    </thead>
                                    <tbody>
                                        {(TakeawayData)?.map((item, index) => {
                                            return (
                                                <tr key={index} >
                                                    {SLNO && <td className="Re-print-body-Rate">{index + 1}</td>}
                                                    {Item &&
                                                        <td className="Re-print-body-Product" style={{ display: 'flex', flexDirection: 'column' }}>
                                                            <div>{item?.ProdName}</div>
                                                            <div>({item?.Size ? item?.Size : "1"} {item?.SinglePc == 'Y' ? 'PCS' : item?.Type != "C" ? item?.UomName : "COMBO"})&nbsp; {item?.BrandName !== null ? item?.BrandName : ""}&nbsp;
                                                                {item?.ProductIdentifierDtls?.length > 0 ? (item?.ProductIdentifierDtls?.filter((items) => !(items.SerialNumber == "" || items.SerialNumber == null))
                                                                    ?.map(a => { return (<div>{a.SerialNumber}</div>) })) : ""} {item?.ProductIdentifierDtls?.length > 0 ? item?.ProductIdentifierDtls.filter((item1) => item1.IMEI1 !== "" || item1.IMEI2 !== "")
                                                                        ?.map(item2 => {
                                                                            const imei1 = item2.IMEI1 || "";
                                                                            const imei2 = item2.IMEI2 || "";
                                                                            return (<div>{[imei1, imei2].filter(Boolean).join(",")}</div>);
                                                                        }
                                                                        ) : ""}</div>
                                                        </td>
                                                    }
                                                    {HsnCode && <td className="Re-print-body-Rate">{item?.HSN}</td>}
                                                    {Quantity && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>{item?.Qty}</td>}
                                                    {MRP && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>{item?.SinglePc === 'Y' ? item?.Price : item?.MRP}</td>}
                                                    {Amount && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>  {item?.NetAmt?.toFixed(2)}</td>}
                                                    {Discount && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>  {item?.Type != "C" ? item?.OfferAmt || 0 : item?.OfferValue || 0}</td>}
                                                    {Rate && <td className="Re-print-body-Rate" style={{ textAlign: 'right' }}>{item?.Price}</td>}
                                                </tr>
                                            )
                                        })}
                                    </tbody>
                                </table>
                            </div>

                        }

                    </div>


                    <div className='PrintStyle2-ThirdDivMaster'>
                        <div className='PrintStyle2-ThirdP'>
                            <div>
                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Qty</div>
                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Items</div>
                                {(table2Data?.[0]?.OverallDisc > 0 || TotalOfferAmount > 0) && <div style={{ textAlign: 'left', fontWeight: '600' }}>Off</div>}
                                <div style={{ textAlign: 'left', fontWeight: '600' }}>Amount</div>
                            </div>
                            <div>
                                <div>:</div>
                                <div>:</div>
                                {(table2Data?.[0]?.OverallDisc > 0 || TotalOfferAmount > 0) && <div>:</div>}
                                <div>:</div>
                            </div>
                            <div>
                                <div style={{ textAlign: 'right', fontWeight: '600' }} >{totalQuantity}</div>
                                <div style={{ textAlign: 'right', fontWeight: '600' }}>{totalQuantityFilter?.length}</div>
                                {(table2Data?.[0]?.OverallDisc > 0 || TotalOfferAmount > 0) && <div style={{ textAlign: 'right', fontWeight: '600' }}>{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}</div>}
                                <div style={{ textAlign: 'right', fontWeight: '600' }} >{Number(table2Data?.[0]?.NetAmount).toFixed(2)}</div>
                            </div>
                        </div>
                    </div>


                    {((OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) ||
                        (OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) ||
                        (OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0)) &&
                        <>
                            <hr className="PrintStyle2-print-dottline" />

                            <div>
                                <div style={{ margin: 0, padding: 0, fontSize: "12px", textAlign: "center", fontWeight: "600" }}>
                                    --------- GST Breakup Details -----------</div>
                                {(OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) &&
                                    <table style={{ width: "90%" }}>

                                        <tr>
                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                Taxable Amount
                                            </td>
                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                CGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%)
                                            </td>
                                            <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                SGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%)
                                            </td>
                                            <td style={{ fontSize: "12px", textAlign: "center" }}>

                                                Total Amount
                                            </td>
                                        </tr>
                                        {OrderDetailGST?.map((item) =>
                                            <tr>
                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                    {Number(item.WithoutTaxRate).toFixed(2)}
                                                </td>
                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                    {Number(item.CGST).toFixed(2)}
                                                </td>
                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                    {Number(item.SGST).toFixed(2)}
                                                </td>
                                                <td style={{ fontSize: "12px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                            </tr>
                                        )
                                        }
                                    </table>
                                }

                                {(OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) &&
                                    <>
                                        <div style={{ border: "0.01px dashed black", margin: "10px 0 5px 10px", width: '90%' }}></div>
                                        <table style={{ width: "90%" }}>

                                            <tr>
                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                    Taxable Amount
                                                </td>
                                                <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                    IGST ({OrderDetailIGST?.[0]?.TaxPercentage}%)
                                                </td>

                                                <td style={{ fontSize: "12px", textAlign: "center" }}>

                                                    Total Amount
                                                </td>
                                            </tr>
                                            {OrderDetailIGST?.map((item) =>
                                                <tr>
                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                        {Number(item.WithoutTaxRate).toFixed(2)}
                                                    </td>
                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>
                                                        {Number(item.TaxAmt).toFixed(2)}
                                                    </td>

                                                    <td style={{ fontSize: "12px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                </tr>
                                            )
                                            }
                                        </table>
                                    </>
                                }
                                {(OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0) &&
                                    <>
                                        <div style={{ border: "0.01px dashed black", margin: "10px 0 5px 10px", width: '90%' }}></div>
                                        <table style={{ width: "90%" }}>

                                            <tr>
                                                <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                    Taxable Amount
                                                </td>
                                                <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                    VAT ({OrderDetailVAT?.[0]?.TaxPercentage}%)
                                                </td>

                                                <td style={{ fontSize: "10px", textAlign: "center" }}>

                                                    Total Amount
                                                </td>
                                            </tr>
                                            {OrderDetailVAT?.map((item) =>
                                                <tr>
                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                        {Number(item.WithoutTaxRate).toFixed(2)}
                                                    </td>
                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>
                                                        {Number(item.TaxAmt).toFixed(2)}
                                                    </td>

                                                    <td style={{ fontSize: "10px", textAlign: "center" }}>{Number(item.TotalAmt).toFixed(2)}</td>
                                                </tr>
                                            )
                                            }
                                        </table>
                                    </>
                                }

                            </div>

                        </>
                    }

                    <div>
                        <div className='PrintStyle2-FourthDivMaster'>

                            <div className="page-footerA4Style11"
                                style={{
                                    marginTop: "auto",
                                    pageBreakBefore: "avoid",
                                    pageBreakInside: "avoid",
                                    minHeight: "auto",
                                }}
                            >
                                {
                                    Notestext && (<div>
                                        <p style={{ padding: "0rem 1rem" }}>{Notestext}</p>

                                        <hr className="PrintA4Style11-print-dottline" />
                                    </div>)
                                }


                                <div style={{ display: "flex", width: "90%", padding: "0 1rem", justifyContent: GlobaltermsAndConditions ? "space-between" : "flex-end", alignItems: "center" }}>
                                    {
                                        (TermsnAdCondition == true && TermsAndConditions?.length > 0) && (<div style={{ margin: "8px 0", fontFamily: "sans-serif", width: "100%", display: "flex", flexDirection: "column", alignItems: "flex-start" }}>
                                            <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>
                                                Terms & Conditions
                                            </p>
                                            <ol style={{ fontSize: "12px", paddingLeft: "18px", margin: 0, lineHeight: "1" }}>
                                                {TermsAndConditions?.map(item => (<li style={{ textAlign: "start" }}>{item?.TermsandConditions}</li>))}
                                                {/* <li>Please check the product before leaving the counter.</li> */}
                                            </ol>
                                        </div>)
                                    }

                                    {Signature == true && (<div style={{ display: "flex", flexDirection: "column", alignItems: "center", marginTop: "1rem", paddingBottom: "1rem" }}>
                                        <p style={{ fontSize: "13px", fontWeight: "bold", marginBottom: "6px" }}>Signature</p>
                                        <img style={{ width: "100px", height: "60px" }} src={SignatureImg} alt="" />
                                    </div>)}

                                </div>
                            </div>

                            {PrintGreeting?.SettingValue === "Y" &&
                                <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
                                    Thank You Visit Again
                                </div>
                            }
                        </div>
                    </div>
                </div>
            }
        </>
    )
}

export default PurPrintstyle2;
