import { useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { DeleteOutlined } from '@ant-design/icons'; import { Form, Table, InputNumber, Button, Tooltip, message, Space, Col, } from 'antd'; import SwapIcon from '../../../BookingScreen/Components/UtillComponents/Pozo retail icons/PozoSwapIcon'; import Buttons from '../../../../Components/Forms/Buttons'; import { DropDowns } from '../../../../Components/Forms/DropDown.jsx'; import { GlobalCompBranchData } from '../../../../Features/BrachLogin/BranchLogin'; import { branchIdBasedUserData, getBranchBasedUserList, } from '../../../../Features/UserAccount/userData.js'; import { changeBtoBQuickProductTransfer, GlobalBtoBQuickProductTransfer, } from '../../../../Features/BookingScreen/BookingData/BookingData.js'; const style = { padding: '10px', }; const BranchTransferComponent = () => { const [form] = Form.useForm(); const dispatch = useDispatch(); const branches = useSelector(GlobalCompBranchData); const users = useSelector(branchIdBasedUserData); const { action, selectedProducts } = useSelector( GlobalBtoBQuickProductTransfer ); const [selectedBranch, setSelectedBranch] = useState(); const [selectedUser, setSelectedUser] = useState(); useEffect(() => { if (branches?.length === 1 && action) { const updateBranchID = async (brId) => { form?.setFieldValue({ toBranch: brId }); setSelectedBranch(brId); await dispatch(getBranchBasedUserList(brId))?.unwrap(); }; updateBranchID(branches?.[0]?.BrId); } }, [branches, action]); useEffect(() => { if (users?.length === 1 && action) { form?.setFieldValue({ assignedUser: users?.[0]?.UserId }); setSelectedUser(users?.[0]?.UserId); } }, [users, action]); const handleSubmit = (values) => { console.log('Transfer Details:', { ...values, products: selectedProducts, }); message.success('Transfer request submitted successfully!'); dispatch( changeBtoBQuickProductTransfer({ action: false, selectedProducts: [], }) ); form.resetFields(); }; const onChangeToBranch = async (branchId) => { form?.setFieldValue({ toBranch: branchId }); setSelectedBranch(branchId); await dispatch(getBranchBasedUserList(branchId))?.unwrap(); }; const OnChangeAssignedUser = (userId) => { form?.setFieldValue({ assignedUser: userId }); setSelectedUser(userId); }; const handleQuantityChange = (value, record) => { dispatch( changeBtoBQuickProductTransfer({ action: action, selectedProducts: selectedProducts.map((product) => { if (product.ProdId === record.ProdId) { const newTotalPrice = value * product.OrderRate; return { ...product, OrderQty: value, TotalAmt: newTotalPrice, }; } return product; }), }) ); }; const handleDeleteProduct = (ProdId) => { dispatch( changeBtoBQuickProductTransfer({ action: action, selectedProducts: selectedProducts.filter( (product) => product.ProdId !== ProdId ), }) ); message.success('Product removed from transfer list'); }; const calculateGrandTotal = () => { return selectedProducts.reduce( (total, product) => total + product.TotalAmt, 0 ); }; const columns = [ { title: 'Sl.No', dataIndex: 'ProdId', key: 'ProdId', width: 5, align: 'center', render: (t, o, index) => {index + 1}, }, { title: 'Product Name', dataIndex: 'ProdName', key: 'ProdName', width: 200, }, { title: 'Quantity', dataIndex: 'OrderQty', key: 'OrderQty', width: 50, render: (text, record) => ( console.log('text', record), ( handleQuantityChange(value, record)} style={{ width: '100%' }} /> ) ), }, { title: 'Rate', dataIndex: 'OrderRate', key: 'OrderRate', width: 50, render: (text) => `₹${text}`, }, { title: 'Total Price', dataIndex: 'TotalAmt', key: 'TotalAmt', width: 80, render: (text, record) => `₹${record.OrderQty * record.OrderRate}`, }, { title: 'Action', key: 'action', width: 1, align: 'center', render: (_, record) => (