fix: calc price
This commit is contained in:
parent
67cde37e34
commit
c430b6082e
5 changed files with 119 additions and 50 deletions
|
|
@ -12,10 +12,13 @@ import { baseUrl, formatNumberDecimal } from 'src/stores/utils';
|
|||
import { precisionRound } from 'src/utils/arithmetic';
|
||||
import { productColumn } from '../constants';
|
||||
|
||||
import { useCreditNote } from 'src/stores/credit-note';
|
||||
|
||||
const configStore = useConfigStore();
|
||||
const { data: config } = storeToRefs(configStore);
|
||||
|
||||
const currentExpanded = ref<boolean[]>([]);
|
||||
const creditNote = useCreditNote();
|
||||
|
||||
defineProps<{
|
||||
readonly?: boolean;
|
||||
|
|
@ -44,15 +47,22 @@ function calcPricePerUnit(product: RequestWork['productService']) {
|
|||
return product.pricePerUnit - product.discount / product.amount;
|
||||
}
|
||||
|
||||
function calcPrice(c: RequestWork['productService'], amount: number) {
|
||||
const pricePerUnit = c.pricePerUnit - c.discount / c.amount;
|
||||
const priceNoVat = pricePerUnit;
|
||||
const priceDiscountNoVat = priceNoVat * amount;
|
||||
function calcVat(c: RequestWork['productService']) {
|
||||
const vatFactor = c.product.serviceChargeCalcVat
|
||||
? (config.value?.vat ?? 0.07)
|
||||
: 0;
|
||||
|
||||
const rawVatTotal =
|
||||
c.vat === 0 ? 0 : priceDiscountNoVat * (config.value?.vat || 0.07);
|
||||
const price = precisionRound(
|
||||
c.pricePerUnit * (1 + vatFactor) - c.discount / (1 + vatFactor),
|
||||
);
|
||||
|
||||
return precisionRound(priceNoVat * amount + rawVatTotal);
|
||||
const vat = (price / (1 + vatFactor)) * vatFactor;
|
||||
return vat;
|
||||
}
|
||||
|
||||
function calcPrice(c: RequestWork[]) {
|
||||
const price = creditNote.getfinalPriceCredit(c);
|
||||
return price.finalPrice;
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
|
|
@ -162,12 +172,7 @@ function calcPrice(c: RequestWork['productService'], amount: number) {
|
|||
|
||||
<!-- total -->
|
||||
<q-td class="text-right">
|
||||
{{
|
||||
formatNumberDecimal(
|
||||
calcPrice(props.row.product, props.row.list.length),
|
||||
2,
|
||||
)
|
||||
}}
|
||||
{{ formatNumberDecimal(calcPrice(props.row.list), 2) }}
|
||||
</q-td>
|
||||
<q-td>
|
||||
<q-btn
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue