import { tools } from '../../store/Modules/tools' import { CCardState } from '../CCardState' import { CCopyBtn } from '../CCopyBtn' import { IOperators, IOrder, IProduct } from '@src/model' import { defineComponent, PropType, toRef } from 'vue' import { CTitleBanner } from '@src/components/CTitleBanner' import { useProducts } from '@store/Products' import { useI18n } from '@src/boot/i18n' import { useQuasar } from 'quasar' export default defineComponent({ name: 'CSingleCart', props: { order: { type: Object as PropType, required: true, }, editmode: { type: Boolean, required: false, default: false, }, showall: { type: Boolean, required: false, default: false, }, idOrdersCart: { type: String, required: false, default: '', }, nomodif: { type: Boolean, required: false, default: false, }, }, components: { CTitleBanner, CCardState, CCopyBtn }, setup(props, { emit }) { const products = useProducts() const order = toRef(props, 'order') const { t } = useI18n() const $q = useQuasar() function myimgclass() { if (props.showall) { return 'imgNormal' } else { return 'imgSmall' } } function addsubqty(addqty: boolean, subqty: boolean) { if (products.isQtyAvailableByOrder(props.order)) { if (addqty) { if (props.order.quantity >= 100) return false } if (subqty) { if (props.order.quantity === 0) return false } } else { if (products.isInPreorderByOrder(props.order)) { if (addqty) { if (props.order.quantitypreordered >= 100) return false } if (subqty) { if (props.order.quantitypreordered === 0) return false } } } products.addSubQtyToItem({ addqty, subqty, order: props.order, }).then((res: any) => { if (res.risult) { if (res.myord) { order.value.quantity = res.myord.quantity order.value.quantitypreordered = res.myord.quantitypreordered } } }) } function isApplicatoSconto() { const totalipotetico = order.value.product!.price * (order.value.quantity + order.value.quantitypreordered) if (totalipotetico > order.value.TotalPriceProduct) { return true } return false } function removeFromCard() { if (props.idOrdersCart) { // } else { products.removeFromCart({ order: order.value }) } } async function updateOrder(paramstoupdate: any) { await products.updateOrderByOrder(props.idOrdersCart, order.value._id, paramstoupdate) emit('update') } function getRisparmio(): string { return ((order.value.product!.price * order.value.quantity) - order.value.TotalPriceProduct).toFixed(2) } return { myimgclass, addsubqty, removeFromCard, isApplicatoSconto, getRisparmio, tools, products, t, updateOrder, } }, })