Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 0 additions & 221 deletions src/app/core/mock-data/unflattened-expense.data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,229 +2,8 @@ import deepFreeze from 'deep-freeze-strict';

import { ExpenseSource } from '../models/expense-source.enum';
import { ExpenseState } from '../models/expense-state.enum';
import { PublicPolicyExpense } from '../models/public-policy-expense.model';
import { UnflattenedTransaction } from '../models/unflattened-transaction.model';

export const unflattenExp1: { tx: PublicPolicyExpense } = deepFreeze({
tx: {
risk_state: null,
is_duplicate_expense: null,
duplicates: null,
id: 'txSEM4DtjyKR',
org_user_id: 'ouX8dwsbLCLv',
created_at: new Date('2023-03-06T07:51:36.297Z'),
receipt_required: false,
user_can_delete: true,
spent_at: new Date('2023-03-06T06:30:00.000Z'),
category: null,
amount: 12257.475149999998,
user_amount: 12257.475149999998,
policy_amount: null,
admin_amount: null,
tax: '1869.786',
tax_amount: 1869.786,
tax_group_id: 'tg3iWuqWhfzB',
currency: 'INR',
report_id: null,
reported_at: null,
state: 'DRAFT',
num_files: 1,
invoice_number: null,
purpose: 'test_term (1)',
source: 'MOBILE_CAMERA',
billable: null,
orig_amount: 150,
orig_currency: 'USD',
project_id: 3744,
project_name: '3234',
project_code: 'CPM usr 1 test',
skip_reimbursement: true,
creator_id: 'ouX8dwsbLCLv',
user_reason_for_duplicate_expenses: null,
external_id: null,
cost_center_name: '14',
cost_center_code: '12',
cost_center_id: 13793,
source_account_id: 'acc5APeygFjRd',
transcription_state: null,
verification_state: null,
policy_state: null,
manual_flag: null,
policy_flag: false,
vendor: 'Nilesh As Vendor',
vendor_id: 28923,
platform_vendor: null,
platform_vendor_id: null,
org_category: '00',
sub_category: '00',
fyle_category: 'Entertainment',
org_category_code: null,
category_id: 110351,
expense_number: 'E/2023/03/T/115',
corporate_credit_card_expense_group_id: null,
split_group_id: 'tx1vdITUXIzf',
split_group_user_amount: 20429.125249999997,
extracted_data: {
amount: 90.9,
currency: 'INR',
category: 'Office Supplies',
date: null,
vendor: null,
invoice_dt: null,
},
transcribed_data: null,
user_review_needed: null,
mandatory_fields_present: false,
distance: null,
distance_unit: null,
from_dt: null,
to_dt: null,
num_days: null,
mileage_calculated_distance: null,
mileage_calculated_amount: null,
mileage_vehicle_type: null,
mileage_rate: null,
mileage_is_round_trip: null,
hotel_is_breakfast_provided: null,
flight_journey_travel_class: null,
flight_return_travel_class: null,
train_travel_class: null,
bus_travel_class: null,
taxi_travel_class: null,
per_diem_rate_id: null,
activity_policy_pending: null,
activity_details: null,
custom_properties: [
{
name: 'userlist',
value: [],
},
],
is_implicit_merge_blocked: false,
categoryDisplayName: '00',
exchange_rate: 0,
exchange_rate_diff_percentage: 0,
is_matching_ccc_expense: false,
mileage_rate_id: 0,
payment_id: '',
proposed_exchange_rate: 0,
status_id: '',
updated_at: undefined,
},
});

export const unflattenExp2: { tx: PublicPolicyExpense } = deepFreeze({
tx: {
risk_state: null,
is_duplicate_expense: null,
duplicates: null,
id: 'txNyI8ot5CuJ',
org_user_id: 'ouX8dwsbLCLv',
created_at: new Date('2023-03-06T07:51:36.304Z'),
receipt_required: false,
user_can_delete: true,
spent_at: new Date('2023-03-06T06:30:00.000Z'),
category: null,
amount: 8171.650099999999,
user_amount: 8171.650099999999,
policy_amount: null,
admin_amount: null,
tax: '1246.524',
tax_amount: 1246.524,
tax_group_id: 'tg3iWuqWhfzB',
currency: 'INR',
report_id: null,
reported_at: null,
state: 'DRAFT',
num_files: 1,
invoice_number: null,
purpose: 'test_term (2)',
source: 'MOBILE_CAMERA',
billable: null,
orig_amount: 100,
orig_currency: 'USD',
project_id: 3744,
project_name: '3234',
project_code: 'CPM usr 1 test',
skip_reimbursement: true,
creator_id: 'ouX8dwsbLCLv',
user_reason_for_duplicate_expenses: null,
external_id: null,
cost_center_name: '14',
cost_center_code: '12',
cost_center_id: 13793,
source_account_id: 'acc5APeygFjRd',
transcription_state: null,
verification_state: null,
policy_state: null,
manual_flag: null,
policy_flag: false,
vendor: 'Nilesh As Vendor',
vendor_id: 28923,
platform_vendor: null,
platform_vendor_id: null,
org_category: '00',
sub_category: '00',
fyle_category: 'Entertainment',
org_category_code: null,
category_id: 110351,
expense_number: 'E/2023/03/T/116',
corporate_credit_card_expense_group_id: null,
split_group_id: 'tx1vdITUXIzf',
split_group_user_amount: 20429.125249999997,
extracted_data: {
amount: 90.9,
currency: 'INR',
category: 'Office Supplies',
date: null,
vendor: null,
invoice_dt: null,
},
transcribed_data: null,
user_review_needed: null,
mandatory_fields_present: false,
distance: null,
distance_unit: null,
from_dt: null,
to_dt: null,
num_days: null,
mileage_calculated_distance: null,
mileage_calculated_amount: null,
mileage_vehicle_type: null,
mileage_rate: null,
mileage_is_round_trip: null,
hotel_is_breakfast_provided: null,
flight_journey_travel_class: null,
flight_return_travel_class: null,
train_travel_class: null,
bus_travel_class: null,
taxi_travel_class: null,
per_diem_rate_id: null,
activity_policy_pending: null,
activity_details: null,
custom_properties: [
{
name: 'userlist',
value: [],
},
{
name: 'User List',
value: [],
},
],
is_implicit_merge_blocked: false,
categoryDisplayName: '00',
exchange_rate: 0,
exchange_rate_diff_percentage: 0,
is_matching_ccc_expense: false,
mileage_rate_id: 0,
payment_id: '',
proposed_exchange_rate: 0,
status_id: '',
updated_at: undefined,
},
});

export const unflattenedTxn: UnflattenedTransaction = deepFreeze({
tx: {
risk_state: null,
Expand Down
3 changes: 2 additions & 1 deletion src/app/core/models/public-policy-expense.model.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Destination } from './destination.model';
import { File } from './platform/v1/file.model';

export interface PublicPolicyExpense {
activity_details?: string;
Expand Down Expand Up @@ -46,7 +47,7 @@ export interface PublicPolicyExpense {
mileage_rate: number;
mileage_vehicle_type: string;
num_days: number;
num_files: number;
files: Pick<File, 'id' | 'name' | 'content_type' | 'type'>[];
category_id: number;
org_user_id: string;
orig_amount: number;
Expand Down
3 changes: 2 additions & 1 deletion src/app/core/models/v1/transaction.model.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { ExpenseTransactionStatus } from '../../enums/platform/v1/expense-transaction-status.enum';
import { Destination } from '../destination.model';
import { File } from '../platform/v1/file.model';
import { TxnCustomProperties } from '../txn-custom-properties.model';

export interface Transaction {
Expand Down Expand Up @@ -48,7 +49,7 @@ export interface Transaction {
mileage_rate?: number;
mileage_vehicle_type?: string;
num_days?: number;
num_files?: number;
files: Pick<File, 'id' | 'name' | 'content_type' | 'type'>[];
category_id?: number;
org_user_id?: string;
orig_amount?: number;
Expand Down
13 changes: 1 addition & 12 deletions src/app/core/services/policy.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export class PolicyService {
ended_at: transaction.to_dt,
per_diem_rate_id: transaction.per_diem_rate_id,
per_diem_num_days: transaction.num_days,
num_files: transaction.num_files,
num_files: transaction.files?.length || 0,
is_matching_ccc: transaction.is_matching_ccc_expense,
mileage_rate_id: transaction.mileage_rate_id,
mileage_calculated_distance: transaction.mileage_calculated_distance,
Expand Down Expand Up @@ -191,17 +191,6 @@ export class PolicyService {
selectedCCCTransaction: Partial<MatchedCCCTransaction>,
): Observable<PublicPolicyExpense> {
const transactionCopy = cloneDeep(etxn.tx);
/* Adding number of attachements and sending in test call as tx_num_files
* If editing an expense with receipts, check for already uploaded receipts
*/
if (etxn.tx) {
transactionCopy.num_files = etxn.tx.num_files;

// Check for receipts uploaded from mobile
if (etxn.dataUrls && etxn.dataUrls.length > 0) {
transactionCopy.num_files = etxn.tx.num_files + etxn.dataUrls.length;
}
}

transactionCopy.is_matching_ccc_expense = !!selectedCCCTransaction;
let transaction$ = of(transactionCopy);
Expand Down
23 changes: 0 additions & 23 deletions src/app/core/services/transaction.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -328,29 +328,6 @@ describe('TransactionService', () => {
});
});

describe('generateReceiptAttachedParams():', () => {
const params = { or: [] };
beforeEach(() => {
spyOn(lodash, 'cloneDeep').and.returnValue(params);
});

it('should return receipt attached params if receipt attached is YES', () => {
const filters = { receiptsAttached: 'YES' };
const receiptsAttachedParams = { or: [], tx_num_files: 'gt.0' };
expect(transactionService.generateReceiptAttachedParams(params, filters)).toEqual(receiptsAttachedParams);
});

it('should return receipt attached params if receipt attached is NO', () => {
const filters = { receiptsAttached: 'NO' };
const receiptsAttachedParams = { or: [], tx_num_files: 'eq.0' };
expect(transactionService.generateReceiptAttachedParams(params, filters)).toEqual(receiptsAttachedParams);
});

afterEach(() => {
expect(lodash.cloneDeep).toHaveBeenCalledOnceWith(params);
});
});

describe('generateSplitExpenseParams():', () => {
let params: FilterQueryParams;

Expand Down
19 changes: 1 addition & 18 deletions src/app/core/services/transaction.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -461,23 +461,6 @@ export class TransactionService {
return newQueryParamsCopy;
}

generateReceiptAttachedParams(
newQueryParams: FilterQueryParams,
filters: Partial<ExpenseFilters>,
): FilterQueryParams {
const newQueryParamsCopy = cloneDeep(newQueryParams);
if (filters.receiptsAttached) {
if (filters.receiptsAttached === 'YES') {
newQueryParamsCopy.tx_num_files = 'gt.0';
}

if (filters.receiptsAttached === 'NO') {
newQueryParamsCopy.tx_num_files = 'eq.0';
}
}
return newQueryParamsCopy;
}

generateSplitExpenseParams(newQueryParams: FilterQueryParams, filters: Partial<ExpenseFilters>): FilterQueryParams {
const newQueryParamsCopy = cloneDeep(newQueryParams);
if (filters.splitExpense) {
Expand Down Expand Up @@ -622,7 +605,7 @@ export class TransactionService {
created_at: expense.created_at,
spent_at: expense.spent_at,
categoryDisplayName: expense.category?.display_name,
num_files: expense.files?.length,
files: expense.files,
org_category: expense.category?.name,
fyle_category: expense.category?.system_category,
state: expense.state,
Expand Down
Loading
Loading