Files
salvato.newfreeplanet/src/components/CSingleCart/CSingleCart.ts
2023-12-20 21:56:30 +01:00

100 lines
2.3 KiB
TypeScript
Executable File

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'
export default defineComponent({
name: 'CSingleCart',
props: {
order: {
type: Object as PropType<IOrder>,
required: true,
},
showall: {
type: Boolean,
required: false,
default: false,
},
nomodif: {
type: Boolean,
required: false,
default: false,
},
},
components: { CTitleBanner, CCardState, CCopyBtn },
setup(props) {
const products = useProducts()
const order = toRef(props, 'order')
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 >= 20)
return false
}
if (subqty) {
if (props.order.quantity === 0)
return false
}
} else {
if (products.isInPreorderByOrder(props.order)) {
if (addqty) {
if (props.order.quantitypreordered >= 20)
return false
}
if (subqty) {
if (props.order.quantitypreordered === 0)
return false
}
}
}
products.addSubQtyToItem({
addqty,
subqty,
order: props.order,
}).then((res: any) => {
if (res.risult) {
order.value.quantity = res.myord.quantity
order.value.quantitypreordered = res.myord.quantitypreordered
}
})
}
function isApplicatoSconto() {
const totalipotetico = order.value.price * (order.value.quantity + order.value.quantitypreordered)
if (totalipotetico > order.value.TotalPriceProduct) {
return true
}
return false
}
function removeFromCard() {
products.removeFromCart({ order: order.value })
}
return {
myimgclass,
addsubqty,
removeFromCard,
isApplicatoSconto,
}
},
})