mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-27 19:51:09 -04:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			fix-logout
			...
			fix-paymen
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d6cc7564ac | 
| @ -435,7 +435,7 @@ class Payment extends Model implements HasMedia | ||||
|             '{PAYMENT_DATE}' => $this->formattedPaymentDate, | ||||
|             '{PAYMENT_MODE}' => $this->paymentMethod ? $this->paymentMethod->name : null, | ||||
|             '{PAYMENT_NUMBER}' => $this->payment_number, | ||||
|             '{PAYMENT_AMOUNT}' => $this->reference_number, | ||||
|             '{PAYMENT_AMOUNT}' => format_money_pdf($this->amount, $this->customer->currency), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -35,7 +35,16 @@ | ||||
|       </div> | ||||
|  | ||||
|       <div | ||||
|         class="grid col-span-12 mt-6 text-center xl:mt-0 sm:grid-cols-4 xl:text-right xl:col-span-3 xl:grid-cols-1 xxl:col-span-2" | ||||
|         class=" | ||||
|           grid | ||||
|           col-span-12 | ||||
|           mt-6 | ||||
|           text-center | ||||
|           xl:mt-0 | ||||
|           sm:grid-cols-4 | ||||
|           xl:text-right xl:col-span-3 xl:grid-cols-1 | ||||
|           xxl:col-span-2 | ||||
|         " | ||||
|       > | ||||
|         <div class="px-6 py-2"> | ||||
|           <span class="text-xs leading-5 lg:text-sm"> | ||||
| @ -168,12 +177,10 @@ const getChartInvoices = computed(() => { | ||||
|   return [] | ||||
| }) | ||||
|  | ||||
| const customerId = computed(() => route.params.id) | ||||
|  | ||||
| watch( | ||||
|   () => customerId.value, | ||||
|   (id) => { | ||||
|     if (id && route.name === 'customers.view') { | ||||
|   route, | ||||
|   () => { | ||||
|     if (route.params.id) { | ||||
|       loadCustomer() | ||||
|     } | ||||
|     selectedYear.value = 'This year' | ||||
|  | ||||
| @ -37,10 +37,32 @@ | ||||
|  | ||||
|     <!-- Sidebar --> | ||||
|     <div | ||||
|       class="fixed top-0 left-0 hidden h-full pt-16 pb-[6.4rem] ml-56 bg-white xl:ml-64 w-88 xl:block" | ||||
|       class=" | ||||
|         fixed | ||||
|         top-0 | ||||
|         left-0 | ||||
|         hidden | ||||
|         h-full | ||||
|         pt-16 | ||||
|         pb-[6.4rem] | ||||
|         ml-56 | ||||
|         bg-white | ||||
|         xl:ml-64 | ||||
|         w-88 | ||||
|         xl:block | ||||
|       " | ||||
|     > | ||||
|       <div | ||||
|         class="flex items-center justify-between px-4 pt-8 pb-2 border border-gray-200 border-solid height-full" | ||||
|         class=" | ||||
|           flex | ||||
|           items-center | ||||
|           justify-between | ||||
|           px-4 | ||||
|           pt-8 | ||||
|           pb-2 | ||||
|           border border-gray-200 border-solid | ||||
|           height-full | ||||
|         " | ||||
|       > | ||||
|         <div class="mb-6"> | ||||
|           <BaseInput | ||||
| @ -70,7 +92,14 @@ | ||||
|             </template> | ||||
|  | ||||
|             <div | ||||
|               class="px-4 py-1 pb-2 mb-1 mb-2 text-sm border-b border-gray-200 border-solid" | ||||
|               class=" | ||||
|                 px-4 | ||||
|                 py-1 | ||||
|                 pb-2 | ||||
|                 mb-1 mb-2 | ||||
|                 text-sm | ||||
|                 border-b border-gray-200 border-solid | ||||
|               " | ||||
|             > | ||||
|               {{ $t('general.sort_by') }} | ||||
|             </div> | ||||
| @ -127,7 +156,12 @@ | ||||
|  | ||||
|       <div | ||||
|         ref="estimateListSection" | ||||
|         class="h-full overflow-y-scroll border-l border-gray-200 border-solid base-scroll" | ||||
|         class=" | ||||
|           h-full | ||||
|           overflow-y-scroll | ||||
|           border-l border-gray-200 border-solid | ||||
|           base-scroll | ||||
|         " | ||||
|       > | ||||
|         <div v-for="(estimate, index) in estimateList" :key="index"> | ||||
|           <router-link | ||||
| @ -147,11 +181,29 @@ | ||||
|               <BaseText | ||||
|                 :text="estimate.customer.name" | ||||
|                 :length="30" | ||||
|                 class="pr-2 mb-2 text-sm not-italic font-normal leading-5 text-black capitalize truncate" | ||||
|                 class=" | ||||
|                   pr-2 | ||||
|                   mb-2 | ||||
|                   text-sm | ||||
|                   not-italic | ||||
|                   font-normal | ||||
|                   leading-5 | ||||
|                   text-black | ||||
|                   capitalize | ||||
|                   truncate | ||||
|                 " | ||||
|               /> | ||||
|  | ||||
|               <div | ||||
|                 class="mt-1 mb-2 text-xs not-italic font-medium leading-5 text-gray-600" | ||||
|                 class=" | ||||
|                   mt-1 | ||||
|                   mb-2 | ||||
|                   text-xs | ||||
|                   not-italic | ||||
|                   font-medium | ||||
|                   leading-5 | ||||
|                   text-gray-600 | ||||
|                 " | ||||
|               > | ||||
|                 {{ estimate.estimate_number }} | ||||
|               </div> | ||||
| @ -168,11 +220,26 @@ | ||||
|               <BaseFormatMoney | ||||
|                 :amount="estimate.total" | ||||
|                 :currency="estimate.customer.currency" | ||||
|                 class="block mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900" | ||||
|                 class=" | ||||
|                   block | ||||
|                   mb-2 | ||||
|                   text-xl | ||||
|                   not-italic | ||||
|                   font-semibold | ||||
|                   leading-8 | ||||
|                   text-right text-gray-900 | ||||
|                 " | ||||
|               /> | ||||
|  | ||||
|               <div | ||||
|                 class="text-sm not-italic font-normal leading-5 text-right text-gray-600 est-date" | ||||
|                 class=" | ||||
|                   text-sm | ||||
|                   not-italic | ||||
|                   font-normal | ||||
|                   leading-5 | ||||
|                   text-right text-gray-600 | ||||
|                   est-date | ||||
|                 " | ||||
|               > | ||||
|                 {{ estimate.formatted_estimate_date }} | ||||
|               </div> | ||||
| @ -197,7 +264,13 @@ | ||||
|     > | ||||
|       <iframe | ||||
|         :src="`${shareableLink}`" | ||||
|         class="flex-1 border border-gray-400 border-solid rounded-md bg-white frame-style" | ||||
|         class=" | ||||
|           flex-1 | ||||
|           border border-gray-400 border-solid | ||||
|           rounded-md | ||||
|           bg-white | ||||
|           frame-style | ||||
|         " | ||||
|       /> | ||||
|     </div> | ||||
|   </BasePage> | ||||
| @ -272,14 +345,11 @@ const getCurrentEstimateId = computed(() => { | ||||
|   return null | ||||
| }) | ||||
|  | ||||
| const estimateId = computed(() => route.params.id) | ||||
|  | ||||
| watch( | ||||
|   () => estimateId.value, | ||||
|   (id) => { | ||||
|     if (id && route.name === 'estimates.view') loadEstimate() | ||||
| watch(route, (to, from) => { | ||||
|   if (to.name === 'estimates.view') { | ||||
|     loadEstimate() | ||||
|   } | ||||
| ) | ||||
| }) | ||||
|  | ||||
| loadEstimates() | ||||
| loadEstimate() | ||||
|  | ||||
| @ -65,14 +65,11 @@ const getCurrentInvoiceId = computed(() => { | ||||
|   return null | ||||
| }) | ||||
|  | ||||
| const invoiceId = computed(() => route.params.id) | ||||
|  | ||||
| watch( | ||||
|   () => invoiceId.value, | ||||
|   (id) => { | ||||
|     if (id && route.name === 'invoices.view') loadInvoice() | ||||
| watch(route, (to, from) => { | ||||
|   if (to.name === 'invoices.view') { | ||||
|     loadInvoice() | ||||
|   } | ||||
| ) | ||||
| }) | ||||
|  | ||||
| async function onMarkAsSent() { | ||||
|   dialogStore | ||||
| @ -289,10 +286,32 @@ onSearched = debounce(onSearched, 500) | ||||
|  | ||||
|     <!-- sidebar --> | ||||
|     <div | ||||
|       class="fixed top-0 left-0 hidden h-full pt-16 pb-[6.4rem] ml-56 bg-white xl:ml-64 w-88 xl:block" | ||||
|       class=" | ||||
|         fixed | ||||
|         top-0 | ||||
|         left-0 | ||||
|         hidden | ||||
|         h-full | ||||
|         pt-16 | ||||
|         pb-[6.4rem] | ||||
|         ml-56 | ||||
|         bg-white | ||||
|         xl:ml-64 | ||||
|         w-88 | ||||
|         xl:block | ||||
|       " | ||||
|     > | ||||
|       <div | ||||
|         class="flex items-center justify-between px-4 pt-8 pb-2 border border-gray-200 border-solid height-full" | ||||
|         class=" | ||||
|           flex | ||||
|           items-center | ||||
|           justify-between | ||||
|           px-4 | ||||
|           pt-8 | ||||
|           pb-2 | ||||
|           border border-gray-200 border-solid | ||||
|           height-full | ||||
|         " | ||||
|       > | ||||
|         <div class="mb-6"> | ||||
|           <BaseInput | ||||
| @ -316,7 +335,14 @@ onSearched = debounce(onSearched, 500) | ||||
|               </BaseButton> | ||||
|             </template> | ||||
|             <div | ||||
|               class="px-2 py-1 pb-2 mb-1 mb-2 text-sm border-b border-gray-200 border-solid" | ||||
|               class=" | ||||
|                 px-2 | ||||
|                 py-1 | ||||
|                 pb-2 | ||||
|                 mb-1 mb-2 | ||||
|                 text-sm | ||||
|                 border-b border-gray-200 border-solid | ||||
|               " | ||||
|             > | ||||
|               {{ $t('general.sort_by') }} | ||||
|             </div> | ||||
| @ -373,7 +399,12 @@ onSearched = debounce(onSearched, 500) | ||||
|  | ||||
|       <div | ||||
|         ref="invoiceListSection" | ||||
|         class="h-full overflow-y-scroll border-l border-gray-200 border-solid base-scroll" | ||||
|         class=" | ||||
|           h-full | ||||
|           overflow-y-scroll | ||||
|           border-l border-gray-200 border-solid | ||||
|           base-scroll | ||||
|         " | ||||
|       > | ||||
|         <div v-for="(invoice, index) in invoiceList" :key="index"> | ||||
|           <router-link | ||||
| @ -393,11 +424,29 @@ onSearched = debounce(onSearched, 500) | ||||
|               <BaseText | ||||
|                 :text="invoice.customer.name" | ||||
|                 :length="30" | ||||
|                 class="pr-2 mb-2 text-sm not-italic font-normal leading-5 text-black capitalize truncate" | ||||
|                 class=" | ||||
|                   pr-2 | ||||
|                   mb-2 | ||||
|                   text-sm | ||||
|                   not-italic | ||||
|                   font-normal | ||||
|                   leading-5 | ||||
|                   text-black | ||||
|                   capitalize | ||||
|                   truncate | ||||
|                 " | ||||
|               /> | ||||
|  | ||||
|               <div | ||||
|                 class="mt-1 mb-2 text-xs not-italic font-medium leading-5 text-gray-600" | ||||
|                 class=" | ||||
|                   mt-1 | ||||
|                   mb-2 | ||||
|                   text-xs | ||||
|                   not-italic | ||||
|                   font-medium | ||||
|                   leading-5 | ||||
|                   text-gray-600 | ||||
|                 " | ||||
|               > | ||||
|                 {{ invoice.invoice_number }} | ||||
|               </div> | ||||
| @ -411,12 +460,27 @@ onSearched = debounce(onSearched, 500) | ||||
|  | ||||
|             <div class="flex-1 whitespace-nowrap right"> | ||||
|               <BaseFormatMoney | ||||
|                 class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900 block" | ||||
|                 class=" | ||||
|                   mb-2 | ||||
|                   text-xl | ||||
|                   not-italic | ||||
|                   font-semibold | ||||
|                   leading-8 | ||||
|                   text-right text-gray-900 | ||||
|                   block | ||||
|                 " | ||||
|                 :amount="invoice.total" | ||||
|                 :currency="invoice.customer.currency" | ||||
|               /> | ||||
|               <div | ||||
|                 class="text-sm not-italic font-normal leading-5 text-right text-gray-600 est-date" | ||||
|                 class=" | ||||
|                   text-sm | ||||
|                   not-italic | ||||
|                   font-normal | ||||
|                   leading-5 | ||||
|                   text-right text-gray-600 | ||||
|                   est-date | ||||
|                 " | ||||
|               > | ||||
|                 {{ invoice.formatted_invoice_date }} | ||||
|               </div> | ||||
| @ -441,7 +505,13 @@ onSearched = debounce(onSearched, 500) | ||||
|     > | ||||
|       <iframe | ||||
|         :src="`${shareableLink}`" | ||||
|         class="flex-1 border border-gray-400 border-solid bg-white rounded-md frame-style" | ||||
|         class=" | ||||
|           flex-1 | ||||
|           border border-gray-400 border-solid | ||||
|           bg-white | ||||
|           rounded-md | ||||
|           frame-style | ||||
|         " | ||||
|       /> | ||||
|     </div> | ||||
|   </BasePage> | ||||
|  | ||||
| @ -22,10 +22,31 @@ | ||||
|  | ||||
|     <!-- Sidebar --> | ||||
|     <div | ||||
|       class="fixed top-0 left-0 hidden h-full pt-16 pb-[6rem] ml-56 bg-white xl:ml-64 w-88 xl:block" | ||||
|       class=" | ||||
|         fixed | ||||
|         top-0 | ||||
|         left-0 | ||||
|         hidden | ||||
|         h-full | ||||
|         pt-16 | ||||
|         pb-[6rem] | ||||
|         ml-56 | ||||
|         bg-white | ||||
|         xl:ml-64 | ||||
|         w-88 | ||||
|         xl:block | ||||
|       " | ||||
|     > | ||||
|       <div | ||||
|         class="flex items-center justify-between px-4 pt-8 pb-6 border border-gray-200 border-solid" | ||||
|         class=" | ||||
|           flex | ||||
|           items-center | ||||
|           justify-between | ||||
|           px-4 | ||||
|           pt-8 | ||||
|           pb-6 | ||||
|           border border-gray-200 border-solid | ||||
|         " | ||||
|       > | ||||
|         <BaseInput | ||||
|           v-model="searchData.searchText" | ||||
| @ -49,7 +70,14 @@ | ||||
|             </template> | ||||
|  | ||||
|             <div | ||||
|               class="px-4 py-1 pb-2 mb-2 text-sm border-b border-gray-200 border-solid" | ||||
|               class=" | ||||
|                 px-4 | ||||
|                 py-1 | ||||
|                 pb-2 | ||||
|                 mb-2 | ||||
|                 text-sm | ||||
|                 border-b border-gray-200 border-solid | ||||
|               " | ||||
|             > | ||||
|               {{ $t('general.sort_by') }} | ||||
|             </div> | ||||
| @ -131,17 +159,43 @@ | ||||
|               <BaseText | ||||
|                 :text="payment?.customer?.name" | ||||
|                 :length="30" | ||||
|                 class="pr-2 mb-2 text-sm not-italic font-normal leading-5 text-black capitalize truncate" | ||||
|                 class=" | ||||
|                   pr-2 | ||||
|                   mb-2 | ||||
|                   text-sm | ||||
|                   not-italic | ||||
|                   font-normal | ||||
|                   leading-5 | ||||
|                   text-black | ||||
|                   capitalize | ||||
|                   truncate | ||||
|                 " | ||||
|               /> | ||||
|  | ||||
|               <div | ||||
|                 class="mb-1 text-xs not-italic font-medium leading-5 text-gray-500 capitalize" | ||||
|                 class=" | ||||
|                   mb-1 | ||||
|                   text-xs | ||||
|                   not-italic | ||||
|                   font-medium | ||||
|                   leading-5 | ||||
|                   text-gray-500 | ||||
|                   capitalize | ||||
|                 " | ||||
|               > | ||||
|                 {{ payment?.payment_number }} | ||||
|               </div> | ||||
|  | ||||
|               <div | ||||
|                 class="mb-1 text-xs not-italic font-medium leading-5 text-gray-500 capitalize" | ||||
|                 class=" | ||||
|                   mb-1 | ||||
|                   text-xs | ||||
|                   not-italic | ||||
|                   font-medium | ||||
|                   leading-5 | ||||
|                   text-gray-500 | ||||
|                   capitalize | ||||
|                 " | ||||
|               > | ||||
|                 {{ payment?.invoice_number }} | ||||
|               </div> | ||||
| @ -149,7 +203,15 @@ | ||||
|  | ||||
|             <div class="flex-1 whitespace-nowrap right"> | ||||
|               <BaseFormatMoney | ||||
|                 class="block mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900" | ||||
|                 class=" | ||||
|                   block | ||||
|                   mb-2 | ||||
|                   text-xl | ||||
|                   not-italic | ||||
|                   font-semibold | ||||
|                   leading-8 | ||||
|                   text-right text-gray-900 | ||||
|                 " | ||||
|                 :amount="payment?.amount" | ||||
|                 :currency="payment.customer?.currency" | ||||
|               /> | ||||
| @ -251,14 +313,9 @@ const paymentDate = computed(() => { | ||||
|   ) | ||||
| }) | ||||
|  | ||||
| const paymentId = computed(() => route.params.id) | ||||
|  | ||||
| watch( | ||||
|   () => paymentId.value, | ||||
|   (id) => { | ||||
|     if (id && route.name === 'payments.view') loadPayment() | ||||
|   } | ||||
| ) | ||||
| watch(route, () => { | ||||
|   loadPayment() | ||||
| }) | ||||
|  | ||||
| loadPayments() | ||||
| loadPayment() | ||||
|  | ||||
| @ -78,12 +78,10 @@ let isLoading = computed(() => { | ||||
|   return recurringInvoiceStore.isFetchingViewData | ||||
| }) | ||||
|  | ||||
| const invoiceId = computed(() => route.params.id) | ||||
|  | ||||
| watch( | ||||
|   () => invoiceId.value, | ||||
|   (id) => { | ||||
|     if (id && route.name === 'recurring-invoices.view') { | ||||
|   route, | ||||
|   () => { | ||||
|     if (route.params.id && route.name === 'recurring-invoices.view') { | ||||
|       loadRecurringInvoice() | ||||
|     } | ||||
|   }, | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	