Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
4 changes: 2 additions & 2 deletions src/APIUtils/APIUtils.res
Original file line number Diff line number Diff line change
Expand Up @@ -1031,8 +1031,8 @@ let useGetURL = () => {
switch methodType {
| Get =>
switch id {
| Some(ruleId) => `${reconBaseURL}/recon_rules/${ruleId}`
| None => `${reconBaseURL}/recon_rules`
| Some(ruleId) => `${reconBaseURL}/recon_rules/v2/${ruleId}`
| None => `${reconBaseURL}/recon_rules/v2`
}
| _ => ""
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ let make = () => {
~methodType=Get,
)
let res = await fetchDetails(url)
let ruleDetails = res->getArrayDataFromJson(getRulePayloadFromDict)
let ruleDetails = res->getArrayDataFromJson(ruleItemToObjMapper)
setReconRulesList(_ => ruleDetails)
setScreenState(_ => PageLoaderWrapper.Success)
} catch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ let make = () => {
~methodType=Get,
)
let res = await fetchDetails(url)
let ruleDetails = res->getArrayDataFromJson(getRulePayloadFromDict)
let ruleDetails = res->getArrayDataFromJson(ruleItemToObjMapper)
setReconRulesList(_ => ruleDetails)
setScreenState(_ => PageLoaderWrapper.Success)
} catch {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@react.component
let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
let make = (~ruleDetails: ReconEngineRulesTypes.rulePayload) => {
<div className="flex flex-col gap-8 mt-8">
<ReconEngineOverviewStackedBarGraph ruleDetails />
<ReconEngineOverviewColumnGraphs ruleDetails />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
open ReconEngineRulesTypes

@react.component
let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
open ReconEngineTypes
let make = (~ruleDetails: rulePayload) => {
open ReconEngineOverviewSummaryUtils
open ReconEngineOverviewHelper
open LogicUtils
open ReconEngineAccountsUtils

let (screenState, setScreenState) = React.useState(_ => PageLoaderWrapper.Loading)
let (accountData, setAccountData) = React.useState(_ => [])
Expand Down Expand Up @@ -34,14 +33,18 @@ let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
None
}, [])

let (sourceAccountData, targetAccountData) = React.useMemo(() => {
let source =
ruleDetails.sources->getValueFromArray(0, Dict.make()->getAccountRefPayloadFromDict)
let target =
ruleDetails.targets->getValueFromArray(0, Dict.make()->getAccountRefPayloadFromDict)
let (sourceAccountId, targetAccountId) = switch ruleDetails.strategy {
| OneToOne(oneToOne) =>
switch oneToOne {
| SingleSingle(data) => (data.source_account.account_id, data.target_account.account_id)
| SingleMany(data) => (data.source_account.account_id, data.target_account.account_id)
| ManySingle(data) => (data.source_account.account_id, data.target_account.account_id)
}
}

let sourceAccount = getAccountData(accountData, source.account_id)
let targetAccount = getAccountData(accountData, target.account_id)
let (sourceAccountData, targetAccountData) = React.useMemo(() => {
let sourceAccount = getAccountData(accountData, sourceAccountId)
let targetAccount = getAccountData(accountData, targetAccountId)

(sourceAccount, targetAccount)
}, (ruleDetails, accountData))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
open ReconEngineRulesTypes

@react.component
let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
let make = (~ruleDetails: rulePayload) => {
open LogicUtils
open ReconEngineOverviewUtils
open ReconEngineOverviewHelper
open ReconEngineAccountsUtils

let (accountData, setAccountData) = React.useState(_ => [])
let (screenState, setScreenState) = React.useState(_ => PageLoaderWrapper.Loading)
Expand All @@ -28,16 +29,21 @@ let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
}
}

let (sourceAccountId, targetAccountId) = switch ruleDetails.strategy {
| OneToOne(oneToOne) =>
switch oneToOne {
| SingleSingle(data) => (data.source_account.account_id, data.target_account.account_id)
| SingleMany(data) => (data.source_account.account_id, data.target_account.account_id)
| ManySingle(data) => (data.source_account.account_id, data.target_account.account_id)
}
}

let (
(sourceAccountName, sourceAccountCurrency),
(targetAccountName, targetAccountCurrency),
) = React.useMemo(() => {
let source =
ruleDetails.sources->getValueFromArray(0, Dict.make()->getAccountRefPayloadFromDict)
let target =
ruleDetails.targets->getValueFromArray(0, Dict.make()->getAccountRefPayloadFromDict)
let sourceInfo = getAccountNameAndCurrency(accountData, source.account_id)
let targetInfo = getAccountNameAndCurrency(accountData, target.account_id)
let sourceInfo = getAccountNameAndCurrency(accountData, sourceAccountId)
let targetInfo = getAccountNameAndCurrency(accountData, targetAccountId)
(sourceInfo, targetInfo)
}, (ruleDetails, accountData))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@react.component
let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
let make = (~ruleDetails: ReconEngineRulesTypes.rulePayload) => {
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
<FilterContext index="recon_reconciled_graph">
<ReconEngineReconciledVolumeColumnGraph ruleId={ruleDetails.rule_id} />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
open Typography

@react.component
let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
let make = (~ruleDetails: ReconEngineRulesTypes.rulePayload) => {
open CurrencyFormatUtils

let (allTransactionsData, setAllTransactionsData) = React.useState(_ => [])
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@react.component
let make = (~ruleDetails: ReconEngineTypes.reconRuleType) => {
let make = (~ruleDetails: ReconEngineRulesTypes.rulePayload) => {
open LogicUtils
open HierarchicalTransactionsTableEntity

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ module AccountsList = {
}

@react.component
let make = (~reconRulesList: array<reconRuleType>) => {
let make = (~reconRulesList: array<ReconEngineRulesTypes.rulePayload>) => {
open ReconEngineOverviewSummaryUtils
open ReconEngineAccountsUtils

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ module FlowWithLayoutControls = {
}

@react.component
let make = (~reconRulesList: array<ReconEngineTypes.reconRuleType>) => {
let make = (~reconRulesList: array<ReconEngineRulesTypes.rulePayload>) => {
open ReconEngineOverviewSummaryUtils
open ReactFlow
open LogicUtils
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
open Typography
open ReconEngineTypes
open ReconEngineRulesTypes

module RuleWiseStackedBarGraph = {
@react.component
let make = (~rule: ReconEngineTypes.reconRuleType) => {
let make = (~rule: rulePayload) => {
open CurrencyFormatUtils
open LogicUtils

Expand Down Expand Up @@ -83,7 +83,7 @@ module RuleWiseStackedBarGraph = {
}

@react.component
let make = (~reconRulesList: array<reconRuleType>) => {
let make = (~reconRulesList: array<rulePayload>) => {
<div className="grid gap-6 grid-cols-1 lg:grid-cols-2">
{reconRulesList
->Array.map(rule => <RuleWiseStackedBarGraph rule key={rule.rule_id} />)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,17 @@ let getAccountData = (accountData: array<accountType>, accountId: string): accou
->Option.getOr(Dict.make()->getOverviewAccountPayloadFromDict)
}

let getAllAccountIds = (reconRulesList: array<reconRuleType>) => {
let getAllAccountIds = (reconRulesList: array<ReconEngineRulesTypes.rulePayload>) => {
reconRulesList
->Array.flatMap(rule =>
Array.concat(
rule.sources->Array.map(source => source.account_id),
rule.targets->Array.map(target => target.account_id),
)
switch rule.strategy {
| OneToOne(oneToOne) =>
switch oneToOne {
| SingleSingle(data) => [data.source_account.account_id, data.target_account.account_id]
| SingleMany(data) => [data.source_account.account_id, data.target_account.account_id]
| ManySingle(data) => [data.source_account.account_id, data.target_account.account_id]
}
}
)
->getUniqueArray
}
Expand All @@ -219,21 +223,21 @@ let getPercentageLabel = (~postedCount, ~totalCount) =>
"0% Reconciled"
}
let makeEdge = (
~source: reconRuleAccountRefType,
~target: reconRuleAccountRefType,
~sourceAccountId: string,
~targetAccountId: string,
~ruleTransactions,
~selectedNodeId,
) => {
let (postedCount, totalCount) = summarizeTransactions(ruleTransactions)
let label = getPercentageLabel(~postedCount, ~totalCount)
let sourceNodeId = `${source.account_id}-node`
let targetNodeId = `${target.account_id}-node`
let sourceNodeId = `${sourceAccountId}-node`
let targetNodeId = `${targetAccountId}-node`
let isHighlighted = switch selectedNodeId {
| Some(id) => id === sourceNodeId || id === targetNodeId
| None => false
}
{
id: `${source.account_id}-to-${target.account_id}`,
id: `${sourceAccountId}-to-${targetAccountId}`,
ReconEngineOverviewSummaryTypes.source: sourceNodeId,
target: targetNodeId,
edgeType: "smoothstep",
Expand All @@ -246,19 +250,46 @@ let makeEdge = (
}
}
let getEdges = (
~reconRulesList: array<reconRuleType>,
~reconRulesList: array<ReconEngineRulesTypes.rulePayload>,
~allTransactions: array<transactionType>,
~selectedNodeId,
) =>
reconRulesList->Array.flatMap(rule =>
rule.sources->Array.flatMap(source =>
rule.targets->Array.map(
target => {
let ruleTransactions = allTransactions->Array.filter(t => t.rule.rule_id === rule.rule_id)
makeEdge(~source, ~target, ~ruleTransactions, ~selectedNodeId)
},
)
)
switch rule.strategy {
| OneToOne(oneToOne) =>
switch oneToOne {
| SingleSingle(data) =>
let ruleTransactions = allTransactions->Array.filter(t => t.rule.rule_id === rule.rule_id)
[
makeEdge(
~sourceAccountId=data.source_account.account_id,
~targetAccountId=data.target_account.account_id,
~ruleTransactions,
~selectedNodeId,
),
]
| SingleMany(data) =>
let ruleTransactions = allTransactions->Array.filter(t => t.rule.rule_id === rule.rule_id)
[
makeEdge(
~sourceAccountId=data.source_account.account_id,
~targetAccountId=data.target_account.account_id,
~ruleTransactions,
~selectedNodeId,
),
]
| ManySingle(data) =>
let ruleTransactions = allTransactions->Array.filter(t => t.rule.rule_id === rule.rule_id)
[
makeEdge(
~sourceAccountId=data.source_account.account_id,
~targetAccountId=data.target_account.account_id,
~ruleTransactions,
~selectedNodeId,
),
]
}
}
)

let getTransactionsData = (
Expand All @@ -271,7 +302,7 @@ let getTransactionsData = (
}

let generateNodesAndEdgesWithTransactionAmounts = (
reconRulesList: array<reconRuleType>,
reconRulesList: array<ReconEngineRulesTypes.rulePayload>,
accountsData: array<accountType>,
accountTransactionData: Dict.t<accountTransactionData>,
allTransactions: array<transactionType>,
Expand Down Expand Up @@ -343,7 +374,7 @@ let makeAmountData = (amount, currency): balanceType => {
}

let processAllTransactionsWithAmounts = (
reconRulesList: array<reconRuleType>,
reconRulesList: array<ReconEngineRulesTypes.rulePayload>,
allTransactions: array<transactionType>,
accountsData: array<accountType>,
) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ open ReconEngineRulesEntity
@react.component
let make = () => {
open APIUtils
open ReconEngineRulesUtils

let getURL = useGetURL()
let fetchDetails = useGetMethod()
let (screenState, setScreenState) = React.useState(_ => PageLoaderWrapper.Success)
Expand Down
Loading
Loading