mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-27 19:51: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>
 |