Compare commits
No commits in common. "9f8f2a233bc8f868a0283585ae4fcdc1408c95d3" and "807f8200b1ebaf4369d41e9506a51f01f0e42086" have entirely different histories.
9f8f2a233b
...
807f8200b1
5 changed files with 90 additions and 81 deletions
|
|
@ -96,58 +96,60 @@
|
||||||
<FormLabel>Description *</FormLabel>
|
<FormLabel>Description *</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Textarea
|
<Textarea
|
||||||
placeholder="A detailed description of the income source, and what it was for (event/project/etc)..."
|
placeholder="e.g., Workshop fee, Donation, Service revenue"
|
||||||
v-bind="componentField"
|
v-bind="componentField"
|
||||||
rows="3"
|
rows="3"
|
||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
|
<FormDescription>Describe the source of this income</FormDescription>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
<div class="grid grid-cols-2 gap-4">
|
<FormField v-slot="{ componentField }" name="amount">
|
||||||
<FormField v-slot="{ componentField }" name="amount">
|
<FormItem>
|
||||||
<FormItem>
|
<FormLabel>Amount *</FormLabel>
|
||||||
<FormLabel>Amount *</FormLabel>
|
<FormControl>
|
||||||
<FormControl>
|
<Input
|
||||||
<Input
|
type="number"
|
||||||
type="number"
|
placeholder="0.00"
|
||||||
placeholder="0.00"
|
v-bind="componentField"
|
||||||
v-bind="componentField"
|
min="0.01"
|
||||||
min="0.01"
|
step="0.01"
|
||||||
step="0.01"
|
/>
|
||||||
/>
|
</FormControl>
|
||||||
</FormControl>
|
<FormDescription>Amount in selected currency</FormDescription>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
<FormField v-slot="{ componentField }" name="currency">
|
<FormField v-slot="{ componentField }" name="currency">
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>Currency *</FormLabel>
|
<FormLabel>Currency *</FormLabel>
|
||||||
<Select v-bind="componentField">
|
<Select v-bind="componentField">
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<SelectTrigger class="w-full">
|
<SelectTrigger>
|
||||||
<SelectValue placeholder="Select currency" />
|
<SelectValue placeholder="Select currency" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem v-for="currency in availableCurrencies" :key="currency" :value="currency">
|
<SelectItem v-for="currency in availableCurrencies" :key="currency" :value="currency">
|
||||||
{{ currency }}
|
{{ currency }}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
<FormMessage />
|
<FormDescription>Currency for this income</FormDescription>
|
||||||
</FormItem>
|
<FormMessage />
|
||||||
</FormField>
|
</FormItem>
|
||||||
</div>
|
</FormField>
|
||||||
|
|
||||||
<FormField v-slot="{ componentField }" name="reference">
|
<FormField v-slot="{ componentField }" name="reference">
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>Reference (optional)</FormLabel>
|
<FormLabel>Reference</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input placeholder="e.g., Invoice #123, Receipt #456" v-bind="componentField" />
|
<Input placeholder="e.g., Invoice #123, Receipt #456" v-bind="componentField" />
|
||||||
</FormControl>
|
</FormControl>
|
||||||
|
<FormDescription>Optional reference number or note</FormDescription>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
@ -199,6 +201,7 @@ import { Textarea } from '@/components/ui/textarea'
|
||||||
import { Badge } from '@/components/ui/badge'
|
import { Badge } from '@/components/ui/badge'
|
||||||
import {
|
import {
|
||||||
FormControl,
|
FormControl,
|
||||||
|
FormDescription,
|
||||||
FormField,
|
FormField,
|
||||||
FormItem,
|
FormItem,
|
||||||
FormLabel,
|
FormLabel,
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ const messages: LocaleMessages = {
|
||||||
income: {
|
income: {
|
||||||
title: 'Add Income',
|
title: 'Add Income',
|
||||||
description: 'Submit income for the organization',
|
description: 'Submit income for the organization',
|
||||||
selectAccount: 'Select the revenue account. Use the "Other" account if you\'re not sure.',
|
selectAccount: 'Select the revenue account',
|
||||||
submitIncome: 'Submit Income',
|
submitIncome: 'Submit Income',
|
||||||
notAvailable: 'Income submission is not yet available. This feature is coming soon.',
|
notAvailable: 'Income submission is not yet available. This feature is coming soon.',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ const messages: LocaleMessages = {
|
||||||
income: {
|
income: {
|
||||||
title: 'A\u00f1adir ingreso',
|
title: 'A\u00f1adir ingreso',
|
||||||
description: 'Enviar un ingreso para la organizaci\u00f3n',
|
description: 'Enviar un ingreso para la organizaci\u00f3n',
|
||||||
selectAccount: 'Seleccionar la cuenta de ingresos. Use la cuenta "Other" si no está seguro.',
|
selectAccount: 'Seleccionar la cuenta de ingresos',
|
||||||
submitIncome: 'Enviar ingreso',
|
submitIncome: 'Enviar ingreso',
|
||||||
notAvailable: 'El registro de ingresos a\u00fan no est\u00e1 disponible. Esta funci\u00f3n llegar\u00e1 pronto.',
|
notAvailable: 'El registro de ingresos a\u00fan no est\u00e1 disponible. Esta funci\u00f3n llegar\u00e1 pronto.',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ const messages: LocaleMessages = {
|
||||||
income: {
|
income: {
|
||||||
title: 'Ajouter un revenu',
|
title: 'Ajouter un revenu',
|
||||||
description: 'Soumettre un revenu pour l\u2019organisation',
|
description: 'Soumettre un revenu pour l\u2019organisation',
|
||||||
selectAccount: 'S\u00e9lectionner le compte de revenus. Utilisez le compte "Other" si vous n\'\u00eates pas s\u00fbr.',
|
selectAccount: 'S\u00e9lectionner le compte de revenus',
|
||||||
submitIncome: 'Soumettre le revenu',
|
submitIncome: 'Soumettre le revenu',
|
||||||
notAvailable: 'La saisie de revenus n\u2019est pas encore disponible. Cette fonctionnalit\u00e9 arrive bient\u00f4t.',
|
notAvailable: 'La saisie de revenus n\u2019est pas encore disponible. Cette fonctionnalit\u00e9 arrive bient\u00f4t.',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -113,60 +113,66 @@
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
<!-- Amount + Currency -->
|
<!-- Amount -->
|
||||||
<div class="grid grid-cols-2 gap-4">
|
<FormField v-slot="{ componentField }" name="amount">
|
||||||
<!-- Amount -->
|
<FormItem>
|
||||||
<FormField v-slot="{ componentField }" name="amount">
|
<FormLabel>Amount *</FormLabel>
|
||||||
<FormItem>
|
<FormControl>
|
||||||
<FormLabel>Amount *</FormLabel>
|
<Input
|
||||||
<FormControl>
|
type="number"
|
||||||
<Input
|
placeholder="0.00"
|
||||||
type="number"
|
v-bind="componentField"
|
||||||
placeholder="0.00"
|
min="0.01"
|
||||||
v-bind="componentField"
|
step="0.01"
|
||||||
min="0.01"
|
/>
|
||||||
step="0.01"
|
</FormControl>
|
||||||
/>
|
<FormDescription>
|
||||||
</FormControl>
|
Amount in selected currency
|
||||||
<FormMessage />
|
</FormDescription>
|
||||||
</FormItem>
|
<FormMessage />
|
||||||
</FormField>
|
</FormItem>
|
||||||
|
</FormField>
|
||||||
|
|
||||||
<!-- Currency -->
|
<!-- Currency -->
|
||||||
<FormField v-slot="{ componentField }" name="currency">
|
<FormField v-slot="{ componentField }" name="currency">
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>Currency *</FormLabel>
|
<FormLabel>Currency *</FormLabel>
|
||||||
<Select v-bind="componentField">
|
<Select v-bind="componentField">
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<SelectTrigger class="w-full">
|
<SelectTrigger>
|
||||||
<SelectValue placeholder="Select currency" />
|
<SelectValue placeholder="Select currency" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem
|
<SelectItem
|
||||||
v-for="currency in availableCurrencies"
|
v-for="currency in availableCurrencies"
|
||||||
:key="currency"
|
:key="currency"
|
||||||
:value="currency"
|
:value="currency"
|
||||||
>
|
>
|
||||||
{{ currency }}
|
{{ currency }}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
<FormMessage />
|
<FormDescription>
|
||||||
</FormItem>
|
Currency for this expense
|
||||||
</FormField>
|
</FormDescription>
|
||||||
</div>
|
<FormMessage />
|
||||||
|
</FormItem>
|
||||||
|
</FormField>
|
||||||
|
|
||||||
<!-- Reference (optional) -->
|
<!-- Reference (optional) -->
|
||||||
<FormField v-slot="{ componentField }" name="reference">
|
<FormField v-slot="{ componentField }" name="reference">
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>Reference (optional)</FormLabel>
|
<FormLabel>Reference</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input
|
<Input
|
||||||
placeholder="e.g., Invoice #123, Receipt #456"
|
placeholder="e.g., Invoice #123, Receipt #456"
|
||||||
v-bind="componentField"
|
v-bind="componentField"
|
||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
|
<FormDescription>
|
||||||
|
Optional reference number or note
|
||||||
|
</FormDescription>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue