mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-27 19:51:09 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div class="grid grid-cols-12 gap-8 mt-6 mb-8">
 | |
|     <BaseCustomerSelectPopup
 | |
|       v-model="invoiceStore.newInvoice.customer"
 | |
|       :valid="v.customer_id"
 | |
|       :content-loading="isLoading"
 | |
|       type="invoice"
 | |
|       class="col-span-12 lg:col-span-5 pr-0"
 | |
|     />
 | |
| 
 | |
|     <BaseInputGrid class="col-span-12 lg:col-span-7">
 | |
|       <BaseInputGroup
 | |
|         :label="$t('invoices.invoice_date')"
 | |
|         :content-loading="isLoading"
 | |
|         required
 | |
|         :error="v.invoice_date.$error && v.invoice_date.$errors[0].$message"
 | |
|       >
 | |
|         <BaseDatePicker
 | |
|           v-model="invoiceStore.newInvoice.invoice_date"
 | |
|           :content-loading="isLoading"
 | |
|           :calendar-button="true"
 | |
|           calendar-button-icon="calendar"
 | |
|         />
 | |
|       </BaseInputGroup>
 | |
| 
 | |
|       <BaseInputGroup
 | |
|         :label="$t('invoices.due_date')"
 | |
|         :content-loading="isLoading"
 | |
|       >
 | |
|         <BaseDatePicker
 | |
|           v-model="invoiceStore.newInvoice.due_date"
 | |
|           :content-loading="isLoading"
 | |
|           :calendar-button="true"
 | |
|           calendar-button-icon="calendar"
 | |
|         />
 | |
|       </BaseInputGroup>
 | |
| 
 | |
|       <BaseInputGroup
 | |
|         :label="$t('invoices.invoice_number')"
 | |
|         :content-loading="isLoading"
 | |
|         :error="v.invoice_number.$error && v.invoice_number.$errors[0].$message"
 | |
|         required
 | |
|       >
 | |
|         <BaseInput
 | |
|           v-model="invoiceStore.newInvoice.invoice_number"
 | |
|           :content-loading="isLoading"
 | |
|           @input="v.invoice_number.$touch()"
 | |
|         />
 | |
|       </BaseInputGroup>
 | |
| 
 | |
|       <ExchangeRateConverter
 | |
|         :store="invoiceStore"
 | |
|         store-prop="newInvoice"
 | |
|         :v="v"
 | |
|         :is-loading="isLoading"
 | |
|         :is-edit="isEdit"
 | |
|         :customer-currency="invoiceStore.newInvoice.currency_id"
 | |
|       />
 | |
|     </BaseInputGrid>
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script setup>
 | |
| import ExchangeRateConverter from '@/scripts/components/estimate-invoice-common/ExchangeRateConverter.vue'
 | |
| import { useInvoiceStore } from '@/scripts/stores/invoice'
 | |
| 
 | |
| const props = defineProps({
 | |
|   v: {
 | |
|     type: Object,
 | |
|     default: null,
 | |
|   },
 | |
|   isLoading: {
 | |
|     type: Boolean,
 | |
|     default: false,
 | |
|   },
 | |
|   isEdit: {
 | |
|     type: Boolean,
 | |
|     default: false,
 | |
|   },
 | |
| })
 | |
| 
 | |
| const invoiceStore = useInvoiceStore()
 | |
| </script>
 |