const ManageBasketDraft = (props) => {
const { getBasketsDraft, handleClose, setBaskets, config } = props;
const { ListGroup, Row, Col } = ReactBootstrap;
const [loading, setLoading] = useState(false);
const btnOpenDraftRef = useRef(null);
// Mẫu dữ liệu giỏ hàng tạm thời
let basketListTmp = getBasketsDraft();
const [basketList, setBasketList] = useState(basketListTmp)
// Tính tổng số lượng cho mỗi giỏ hàng
const calculateTotalQty = (items) => {
return items?.reduce((total, item) => total + item.qty, 0);
};
const handleSelectBasket = (basket) => {
handleOpenDraft(basket);
handleClose(); // Đóng modal sau khi chọn
};
const handleOpenDraft = (basket) => {
let jTmpBasket = getBasketsDraft();
if (jTmpBasket?.length > 0) {
const basketSelect = jTmpBasket.find(b => b.basket_id === basket.basket_id);
if (basketSelect) {
const updatedBasket = jTmpBasket.filter(b => b.basket_id !== basketSelect.basket_id);
commonFunc.setCookies('tmp_baskets', JSON.stringify(updatedBasket), undefined);
setBaskets(basketSelect);
}
}
};
const handleRemoveBasket = async (basket) => {
const sw = typeof Swal !== 'undefined' ? Swal : (window.Swal || null);
let confirmDelete = false;
if (sw) {
const { isConfirmed } = await sw.fire({
title: "Xóa giỏ hàng nháp?",
text: "Bạn có chắc muốn xóa basket này?",
icon: "question",
showCancelButton: true,
confirmButtonColor: "#7c3aed",
cancelButtonColor: "#64748b",
confirmButtonText: "Xác nhận",
cancelButtonText: "Hủy"
});
confirmDelete = isConfirmed;
} else {
confirmDelete = confirm("Bạn có chắc muốn xóa basket này?");
}
if (!confirmDelete) {
return;
}
let jTmpBasket = getBasketsDraft();
const updatedBasket = jTmpBasket.filter(b => b?.basket?.basket_id !== basket?.basket.basket_id);
commonFunc.setCookies('tmp_baskets', JSON.stringify(updatedBasket), undefined);
setBasketList(getBasketsDraft())
};
useEffect(() => {
if (btnOpenDraftRef.current) {
btnOpenDraftRef .current.focus(); // Tự động tập trung vào Button khi load
}
}, []); // Chạy chỉ một lần sau khi component render
return (
<>
{basketList?.map((basket) => (
{config?.lang=='vi'?"Mã Giỏ Hàng:":"Basket ID:"} {basket?.basket?.basket_id}
{config?.lang=='vi'?"Ngày:":"Date:"} {commonFunc.formatDate(new Date(basket?.basket?.basket_date),"DD-MM-YYYY HH:mm") }
{config?.lang=='vi'?"Mã Khách Hàng:":"Customer Code:"} {basket?.basket?.cust_code}
{config?.lang=='vi'?"Tổng SL:":"Total Q.ty:"} {calculateTotalQty(basket?.items)}
{basket &&
{config?.lang=='vi'?"Chọn":"Select"}}
onClick={() => handleSelectBasket(basket)}
variant='primary'
type='button'
style={{margin:'10px 0px 0px 10px', float:'left'}}
tabIndex={1}
refCtl={btnOpenDraftRef}
/>
}
{basket &&
{config?.lang=='vi'?"Xóa":"Del"}}
onClick={() => handleRemoveBasket(basket)}
variant='danger'
type='button'
style={{margin:'10px 0px 0px 10px', float:'right'}}
tabIndex={2}
/>
}
))}
{config?.lang=='vi'?"Đóng":"Close"}}
onClick={()=>handleClose()}
variant='secondary'
type='button'
style={{margin:'10px 0px 0px 10px', float:'right'}}
tabIndex={3}
/>
>
);
};