Skip to content

Commit 1be07a0

Browse files
committed
refactor(Expense Claim Summary): get fiscal years from Accounting api
1 parent 760f237 commit 1be07a0

File tree

3 files changed

+46
-55
lines changed

3 files changed

+46
-55
lines changed

frontend/src/components/ExpenseClaimSummary.vue

+23-34
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
</div>
2424
<span class="text-gray-800 text-base font-semibold leading-6">
2525
{{
26-
formatCurrency(
27-
summary.data?.total_pending_amount,
28-
company_currency
29-
)
30-
}}
26+
formatCurrency(
27+
summary.data?.total_pending_amount,
28+
company_currency
29+
)
30+
}}
3131
</span>
3232
</div>
3333
<div class="flex flex-col gap-1">
@@ -39,11 +39,11 @@
3939
</div>
4040
<span class="text-gray-800 text-base font-semibold leading-6">
4141
{{
42-
formatCurrency(
43-
summary.data?.total_approved_amount,
44-
company_currency
45-
)
46-
}}
42+
formatCurrency(
43+
summary.data?.total_approved_amount,
44+
company_currency
45+
)
46+
}}
4747
</span>
4848
</div>
4949

@@ -56,11 +56,11 @@
5656
</div>
5757
<span class="text-gray-800 text-base font-semibold leading-6">
5858
{{
59-
formatCurrency(
60-
summary.data?.total_rejected_amount,
61-
company_currency
62-
)
63-
}}
59+
formatCurrency(
60+
summary.data?.total_rejected_amount,
61+
company_currency
62+
)
63+
}}
6464
</span>
6565
</div>
6666
</div>
@@ -70,7 +70,7 @@
7070
label="Select Fiscal Year"
7171
class="w-full"
7272
placeholder="Select Fiscal Year"
73-
:options="fiscalYears.data"
73+
:options="fiscalYears.data.fiscal_years"
7474
v-model="selectedPeriod"
7575
/>
7676
</div>
@@ -88,17 +88,6 @@ const dayjs = inject("$dayjs")
8888
8989
let selectedPeriod = ref({})
9090
91-
const initializeSelectedPeriod = () => {
92-
const today = dayjs().format("YYYY-MM-DD")
93-
94-
const currentPeriod = fiscalYears.data.find(
95-
(period) => today >= period.year_start_date && today <= period.year_end_date
96-
)
97-
selectedPeriod.value = (currentPeriod && currentPeriod.value) || fiscalYears.data[0].value
98-
}
99-
100-
initializeSelectedPeriod()
101-
10291
const total_claimed_amount = computed(() => {
10392
return (
10493
summary.data?.total_pending_amount +
@@ -108,23 +97,23 @@ const total_claimed_amount = computed(() => {
10897
})
10998
11099
const fetchExpenseClaimSummary = (selectedPeriod) => {
111-
const year_start_date = fiscalYears.data
112-
? fiscalYears.data.find((period) => period.value === selectedPeriod).year_start_date
113-
: ""
114-
const year_end_date = fiscalYears.data
115-
? fiscalYears.data.find((period) => period.value === selectedPeriod).year_end_date
116-
: ""
100+
const year_start_date = selectedPeriod && selectedPeriod.year_start_date
101+
const year_end_date = selectedPeriod && selectedPeriod.year_end_date
117102
summary.reload({ year_start_date, year_end_date })
118103
}
119104
120105
watch(
121106
() => selectedPeriod.value,
122-
(newValue) => fetchExpenseClaimSummary(newValue.value)
107+
(newValue) => {
108+
return fetchExpenseClaimSummary(newValue)
109+
},
110+
{ deep: true }
123111
)
124112
125113
const company_currency = computed(() => summary.data?.currency)
126114
127115
onMounted(() => {
116+
selectedPeriod.value = fiscalYears.data.current_fiscal_year
128117
fetchExpenseClaimSummary(selectedPeriod.value)
129118
})
130119
</script>

frontend/src/data/claims.js

+17-5
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,30 @@ function getPeriodLabel(period) {
2121
).format("MMM YYYY")}`
2222
}
2323

24+
const add_options = (period) => {
25+
return {
26+
...period,
27+
value: getPeriodLabel(period),
28+
label: getPeriodLabel(period),
29+
}
30+
}
31+
2432
export const fiscalYears = createResource({
2533
url: "hrms.api.get_fiscal_years_for_company",
2634
params: {
2735
company: employeeResource.data?.company,
36+
current_date: dayjs().format("YYYY-MM-DD"),
2837
},
2938
auto: true,
3039
transform: (data) => {
31-
return data.map((period) => {
32-
; (period.value = getPeriodLabel(period)), (period.label = getPeriodLabel(period))
33-
return period
34-
})
35-
}
40+
const newdata = {
41+
current_fiscal_year: add_options(data.current_fiscal_year),
42+
fiscal_years: data.fiscal_years.map((period) => {
43+
return add_options(period)
44+
}),
45+
}
46+
return newdata
47+
},
3648
})
3749

3850
const transformClaimData = (data) => {

hrms/api/__init__.py

+6-16
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from frappe.utils import getdate
66
from frappe.utils.data import cint
77

8+
from erpnext.accounts.utils import get_fiscal_year, get_fiscal_years
9+
810
SUPPORTED_FIELD_TYPES = [
911
"Link",
1012
"Select",
@@ -645,19 +647,7 @@ def is_employee_checkin_allowed():
645647

646648
@frappe.whitelist()
647649
def get_fiscal_years_for_company(company):
648-
periods = frappe.db.sql(
649-
f"""
650-
SELECT FY.year_start_date as year_start_date, FY.year_end_date as year_end_date, FY.year as year
651-
FROM `tabFiscal Year` as FY
652-
INNER JOIN `tabFiscal Year Company` as FYC
653-
ON FY.name = FYC.parent
654-
WHERE FYC.company = '{company}'
655-
ORDER BY FY.year;
656-
"""
657-
)
658-
659-
def get_period_obj(period):
660-
return {"year_start_date": period[0], "year_end_date": period[1], "year": period[2]}
661-
662-
fiscal_years = [get_period_obj(period) for period in periods]
663-
return fiscal_years
650+
today = getdate()
651+
fiscal_years = get_fiscal_years(company=company, as_dict=True)
652+
current_fiscal_year = get_fiscal_year(company=company, date=today, as_dict=True)
653+
return {"fiscal_years": fiscal_years, "current_fiscal_year": current_fiscal_year}

0 commit comments

Comments
 (0)