mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-28 04:01:10 -04:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			dark-cust-
			...
			dark-statu
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e06ac0f7a3 | |||
| 8841bcf499 | |||
| 503b9d6a8f | 
| @ -1,33 +1,40 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="bg-white shadow overflow-hidden rounded-lg mt-6"> |   <div class="bg-white shadow overflow-hidden rounded-lg mt-6 dark:bg-gray-800"> | ||||||
|     <div class="px-4 py-5 sm:px-6"> |     <div class="px-4 py-5 sm:px-6"> | ||||||
|       <h3 class="text-lg leading-6 font-medium text-gray-900"> |       <h3 class="text-lg leading-6 font-medium text-gray-900 dark:text-gray-100"> | ||||||
|         {{ $t('invoices.invoice_information') }} |         {{ $t('invoices.invoice_information') }} | ||||||
|       </h3> |       </h3> | ||||||
|     </div> |     </div> | ||||||
|     <div v-if="invoice" class="border-t border-gray-200 px-4 py-5 sm:p-0"> |     <div v-if="invoice" | ||||||
|       <dl class="sm:divide-y sm:divide-gray-200"> |       class=" | ||||||
|  |         border-t | ||||||
|  |         border-gray-200 | ||||||
|  |         px-4 py-5 sm:p-0 | ||||||
|  |         dark:border-gray-600 | ||||||
|  |       " | ||||||
|  |     > | ||||||
|  |       <dl class="sm:divide-y sm:divide-gray-200 sm:dark:divide-gray-500"> | ||||||
|         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> |         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> | ||||||
|           <dt class="text-sm font-medium text-gray-500"> |           <dt class="text-sm font-medium text-gray-500 dark:dark:text-gray-400"> | ||||||
|             {{ $t('general.from') }} |             {{ $t('general.from') }} | ||||||
|           </dt> |           </dt> | ||||||
|           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2"> |           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100"> | ||||||
|             {{ invoice.company.name }} |             {{ invoice.company.name }} | ||||||
|           </dd> |           </dd> | ||||||
|         </div> |         </div> | ||||||
|         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> |         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> | ||||||
|           <dt class="text-sm font-medium text-gray-500"> |           <dt class="text-sm font-medium text-gray-500 dark:dark:text-gray-400"> | ||||||
|             {{ $t('general.to') }} |             {{ $t('general.to') }} | ||||||
|           </dt> |           </dt> | ||||||
|           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2"> |           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100"> | ||||||
|             {{ invoice.customer.name }} |             {{ invoice.customer.name }} | ||||||
|           </dd> |           </dd> | ||||||
|         </div> |         </div> | ||||||
|         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> |         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> | ||||||
|           <dt class="text-sm font-medium text-gray-500 capitalize"> |           <dt class="text-sm font-medium text-gray-500 capitalize dark:dark:text-gray-400"> | ||||||
|             {{ $t('invoices.paid_status').toLowerCase() }} |             {{ $t('invoices.paid_status').toLowerCase() }} | ||||||
|           </dt> |           </dt> | ||||||
|           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2"> |           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100"> | ||||||
|             <BaseInvoiceStatusBadge |             <BaseInvoiceStatusBadge | ||||||
|               :status="invoice.paid_status" |               :status="invoice.paid_status" | ||||||
|               class="px-3 py-1" |               class="px-3 py-1" | ||||||
| @ -37,10 +44,10 @@ | |||||||
|           </dd> |           </dd> | ||||||
|         </div> |         </div> | ||||||
|         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> |         <div class="py-4 sm:py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6"> | ||||||
|           <dt class="text-sm font-medium text-gray-500"> |           <dt class="text-sm font-medium text-gray-500 dark:dark:text-gray-400"> | ||||||
|             {{ $t('invoices.total') }} |             {{ $t('invoices.total') }} | ||||||
|           </dt> |           </dt> | ||||||
|           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2"> |           <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2 dark:text-gray-100"> | ||||||
|             <BaseFormatMoney |             <BaseFormatMoney | ||||||
|               :currency="invoice.currency" |               :currency="invoice.currency" | ||||||
|               :amount="invoice.total" |               :amount="invoice.total" | ||||||
|  | |||||||
| @ -18,17 +18,17 @@ const props = defineProps({ | |||||||
| const badgeColorClasses = computed(() => { | const badgeColorClasses = computed(() => { | ||||||
|   switch (props.status) { |   switch (props.status) { | ||||||
|     case 'DRAFT': |     case 'DRAFT': | ||||||
|       return 'bg-yellow-300 bg-opacity-25 px-2  py-1 text-sm  text-yellow-800 uppercase font-normal text-center ' |       return 'bg-yellow-300 bg-opacity-25 px-2  py-1 text-sm  text-yellow-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500' | ||||||
|     case 'SENT': |     case 'SENT': | ||||||
|       return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm  text-yellow-900 uppercase font-normal text-center ' |       return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm  text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-200 dark:text-yellow-200' | ||||||
|     case 'VIEWED': |     case 'VIEWED': | ||||||
|       return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center' |       return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300' | ||||||
|     case 'EXPIRED': |     case 'EXPIRED': | ||||||
|       return 'bg-red-300 bg-opacity-25 px-2 py-1 text-sm  text-red-800 uppercase font-normal text-center' |       return 'bg-red-300 bg-opacity-25 px-2 py-1 text-sm  text-red-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-red-500 dark:text-red-500' | ||||||
|     case 'ACCEPTED': |     case 'ACCEPTED': | ||||||
|       return 'bg-green-400 bg-opacity-25 px-2 py-1 text-sm  text-green-800 uppercase font-normal text-center' |       return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm  text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400' | ||||||
|     case 'REJECTED': |     case 'REJECTED': | ||||||
|       return 'bg-purple-300 bg-opacity-25 px-2 py-1 text-sm  text-purple-800 uppercase font-normal text-center' |       return 'bg-purple-300 bg-opacity-25 px-2 py-1 text-sm  text-purple-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-purple-400 dark:text-purple-400' | ||||||
|     default: |     default: | ||||||
|       return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm  text-gray-900 uppercase font-normal text-center' |       return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm  text-gray-900 uppercase font-normal text-center' | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -20,25 +20,25 @@ export default { | |||||||
|     const badgeColorClasses = computed(() => { |     const badgeColorClasses = computed(() => { | ||||||
|       switch (props.status) { |       switch (props.status) { | ||||||
|         case 'DRAFT': |         case 'DRAFT': | ||||||
|           return 'bg-yellow-300 bg-opacity-25 px-2  py-1 text-sm  text-yellow-800 uppercase font-normal text-center' |           return 'bg-yellow-300 bg-opacity-25 px-2  py-1 text-sm  text-yellow-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500' | ||||||
|         case 'SENT': |         case 'SENT': | ||||||
|           return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm  text-yellow-900 uppercase font-normal text-center ' |           return ' bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm  text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-lime-200 dark:text-yellow-200' | ||||||
|         case 'VIEWED': |         case 'VIEWED': | ||||||
|           return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center' |           return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300' | ||||||
|         case 'COMPLETED': |         case 'COMPLETED': | ||||||
|           return 'bg-green-500 bg-opacity-25 px-2  py-1 text-sm  text-green-900 uppercase font-normal text-center' |           return 'bg-green-500 bg-opacity-25 px-2  py-1 text-sm  text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400' | ||||||
|         case 'DUE': |         case 'DUE': | ||||||
|           return 'bg-yellow-500 bg-opacity-25 px-2  py-1 text-sm  text-yellow-900 uppercase font-normal text-center' |           return 'bg-yellow-500 bg-opacity-25 px-2  py-1 text-sm  text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500' | ||||||
|         case 'OVERDUE': |         case 'OVERDUE': | ||||||
|           return 'bg-red-300 bg-opacity-50 px-2  py-1 text-sm  text-red-900 uppercase font-normal text-center' |           return 'bg-red-300 bg-opacity-50 px-2  py-1 text-sm  text-red-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-red-500 dark:text-red-500' | ||||||
|         case 'UNPAID': |         case 'UNPAID': | ||||||
|           return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm  text-yellow-900 uppercase font-normal text-center' |           return 'bg-yellow-500 bg-opacity-25 px-2 py-1 text-sm  text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-500 dark:text-yellow-500' | ||||||
|         case 'PARTIALLY_PAID': |         case 'PARTIALLY_PAID': | ||||||
|           return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center' |           return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300' | ||||||
|         case 'PAID': |         case 'PAID': | ||||||
|           return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm  text-green-900 uppercase font-normal text-center' |           return 'bg-green-500 bg-opacity-25 px-2 py-1 text-sm  text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400' | ||||||
|         default: |         default: | ||||||
|           return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm  text-gray-900 uppercase font-normal text-center' |           return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm  text-gray-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-gray-502 dark:text-gray-200' | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     return { badgeColorClasses } |     return { badgeColorClasses } | ||||||
|  | |||||||
| @ -24,15 +24,15 @@ export default { | |||||||
|     const badgeColorClasses = computed(() => { |     const badgeColorClasses = computed(() => { | ||||||
|       switch (props.status) { |       switch (props.status) { | ||||||
|         case 'PAID': |         case 'PAID': | ||||||
|           return 'bg-primary-300 bg-opacity-25 text-primary-800 uppercase font-normal text-center' |           return 'bg-primary-300 bg-opacity-25 text-primary-800 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-indigo-400 dark:text-indigo-400' | ||||||
|         case 'UNPAID': |         case 'UNPAID': | ||||||
|           return ' bg-yellow-500 bg-opacity-25 text-yellow-900 uppercase font-normal text-center ' |           return ' bg-yellow-500 bg-opacity-25 text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-orange-300 dark:text-orange-300' | ||||||
|         case 'PARTIALLY_PAID': |         case 'PARTIALLY_PAID': | ||||||
|           return 'bg-blue-400 bg-opacity-25 text-blue-900 uppercase font-normal text-center' |           return 'bg-blue-400 bg-opacity-25 text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300' | ||||||
|         case 'OVERDUE': |         case 'OVERDUE': | ||||||
|           return 'bg-red-300 bg-opacity-50 px-2  py-1 text-sm  text-red-900 uppercase font-normal text-center' |           return 'bg-red-300 bg-opacity-50 px-2  py-1 text-sm  text-red-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-red-500 dark:text-red-500' | ||||||
|         default: |         default: | ||||||
|           return 'bg-gray-500 bg-opacity-25 text-gray-900 uppercase font-normal text-center' |           return 'bg-gray-500 bg-opacity-25 text-gray-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-gray-300 dark:text-gray-300' | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     return { badgeColorClasses } |     return { badgeColorClasses } | ||||||
|  | |||||||
| @ -20,11 +20,11 @@ export default { | |||||||
|     const badgeColorClasses = computed(() => { |     const badgeColorClasses = computed(() => { | ||||||
|       switch (props.status) { |       switch (props.status) { | ||||||
|         case 'COMPLETED': |         case 'COMPLETED': | ||||||
|           return 'bg-green-500 bg-opacity-25 px-2  py-1 text-sm  text-green-900 uppercase font-normal text-center' |           return 'bg-green-500 bg-opacity-25 px-2  py-1 text-sm  text-green-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-green-400 dark:text-green-400' | ||||||
|         case 'ON_HOLD': |         case 'ON_HOLD': | ||||||
|           return 'bg-yellow-500 bg-opacity-25 px-2  py-1 text-sm  text-yellow-900 uppercase font-normal text-center' |           return 'bg-yellow-500 bg-opacity-25 px-2  py-1 text-sm  text-yellow-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-yellow-200 dark:text-yellow-200' | ||||||
|         case 'ACTIVE': |         case 'ACTIVE': | ||||||
|           return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center' |           return 'bg-blue-400 bg-opacity-25 px-2  py-1 text-sm  text-blue-900 uppercase font-normal text-center dark:bg-transparent dark:border dark:border-blue-300 dark:text-blue-300' | ||||||
|         default: |         default: | ||||||
|           return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm  text-gray-900 uppercase font-normal text-center' |           return 'bg-gray-500 bg-opacity-25 px-2 py-1 text-sm  text-gray-900 uppercase font-normal text-center' | ||||||
|       } |       } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	