100 lines
2.3 KiB
TypeScript
Executable File
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,
|
|
}
|
|
},
|
|
})
|