mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-27 11:41:09 -04:00
105 lines
2.9 KiB
Vue
105 lines
2.9 KiB
Vue
<template>
|
|
<div class="md:grid-cols-12 grid-cols-1 md:gap-x-6 mt-6 mb-8 grid gap-y-5">
|
|
<BaseCustomerSelectPopup
|
|
v-model="estimateStore.newEstimate.customer"
|
|
:valid="v.customer_id"
|
|
:content-loading="isLoading"
|
|
type="estimate"
|
|
class="col-span-5 pr-0"
|
|
/>
|
|
|
|
<BaseInputGrid class="col-span-7">
|
|
<BaseInputGroup
|
|
:label="$t('reports.estimates.estimate_date')"
|
|
:content-loading="isLoading"
|
|
required
|
|
:error="v.estimate_date.$error && v.estimate_date.$errors[0].$message"
|
|
>
|
|
<BaseDatePicker
|
|
v-model="estimateStore.newEstimate.estimate_date"
|
|
:content-loading="isLoading"
|
|
:calendar-button="true"
|
|
calendar-button-icon="calendar"
|
|
/>
|
|
</BaseInputGroup>
|
|
|
|
<BaseInputGroup
|
|
:label="$t('estimates.expiry_date')"
|
|
:content-loading="isLoading"
|
|
>
|
|
<BaseDatePicker
|
|
v-model="estimateStore.newEstimate.expiry_date"
|
|
:content-loading="isLoading"
|
|
:calendar-button="true"
|
|
calendar-button-icon="calendar"
|
|
:show-extra-options="true"
|
|
:source-date="estimateStore.newEstimate.estimate_date"
|
|
/>
|
|
</BaseInputGroup>
|
|
|
|
<BaseInputGroup
|
|
:label="$t('estimates.estimate_number')"
|
|
:content-loading="isLoading"
|
|
required
|
|
:error="
|
|
v.estimate_number.$error && v.estimate_number.$errors[0].$message
|
|
"
|
|
>
|
|
<BaseInput
|
|
v-model="estimateStore.newEstimate.estimate_number"
|
|
:content-loading="isLoading"
|
|
>
|
|
</BaseInput>
|
|
</BaseInputGroup>
|
|
|
|
<!-- <BaseInputGroup
|
|
:label="$t('estimates.ref_number')"
|
|
:content-loading="isLoading"
|
|
:error="
|
|
v.reference_number.$error && v.reference_number.$errors[0].$message
|
|
"
|
|
>
|
|
<BaseInput
|
|
v-model="estimateStore.newEstimate.reference_number"
|
|
:content-loading="isLoading"
|
|
@input="v.reference_number.$touch()"
|
|
>
|
|
<template #left="slotProps">
|
|
<BaseIcon name="HashtagIcon" :class="slotProps.class" />
|
|
</template>
|
|
</BaseInput>
|
|
</BaseInputGroup> -->
|
|
<ExchangeRateConverter
|
|
:store="estimateStore"
|
|
store-prop="newEstimate"
|
|
:v="v"
|
|
:is-loading="isLoading"
|
|
:is-edit="isEdit"
|
|
:customer-currency="estimateStore.newEstimate.currency_id"
|
|
/>
|
|
</BaseInputGrid>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { useEstimateStore } from '@/scripts/admin/stores/estimate'
|
|
import ExchangeRateConverter from '@/scripts/admin/components/estimate-invoice-common/ExchangeRateConverter.vue'
|
|
|
|
const props = defineProps({
|
|
v: {
|
|
type: Object,
|
|
default: null,
|
|
},
|
|
isLoading: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
isEdit: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
})
|
|
|
|
const estimateStore = useEstimateStore()
|
|
</script>
|