feat: add bill & payment made ability.

This commit is contained in:
elforjani13
2021-11-23 20:29:35 +02:00
parent 3a8e1f5238
commit 1cba4b5f18
6 changed files with 143 additions and 89 deletions

View File

@@ -14,12 +14,14 @@ import { useHistory } from 'react-router-dom';
import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar';
import {
If,
Can,
FormattedMessage as T,
DashboardActionViewsList,
DashboardFilterButton,
AdvancedFilterPopover,
DashboardRowsHeightButton,
} from 'components';
import { Bill_Abilities, AbilitySubject } from '../../../../common/abilityOption';
import withBillsActions from './withBillsActions';
import withBills from './withBills';
@@ -86,12 +88,14 @@ function BillActionsBar({
onChange={handleTabChange}
/>
<NavbarDivider />
<Button
className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />}
text={<T id={'new_bill'} />}
onClick={handleClickNewBill}
/>
<Can I={Bill_Abilities.Create} a={AbilitySubject.Bill}>
<Button
className={Classes.MINIMAL}
icon={<Icon icon={'plus'} />}
text={<T id={'new_bill'} />}
onClick={handleClickNewBill}
/>
</Can>
<AdvancedFilterPopover
advancedFilterProps={{
conditions: billsConditionsRoles,

View File

@@ -16,8 +16,14 @@ import {
If,
Choose,
Money,
Can,
} from 'components';
import { formattedAmount, safeCallback, isBlank, calculateStatus } from 'utils';
import {
Bill_Abilities,
Payment_Made_Abilities,
AbilitySubject,
} from '../../../../common/abilityOption';
/**
* Actions menu.
@@ -40,38 +46,44 @@ export function ActionsMenu({
text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)}
/>
<MenuDivider />
<MenuItem
icon={<Icon icon="pen-18" />}
text={intl.get('edit_bill')}
onClick={safeCallback(onEdit, original)}
/>
<Can I={Bill_Abilities.Edit} a={AbilitySubject.Bill}>
<MenuDivider />
<MenuItem
icon={<Icon icon="pen-18" />}
text={intl.get('edit_bill')}
onClick={safeCallback(onEdit, original)}
/>
<If condition={!original.is_open}>
<MenuItem
icon={<Icon icon={'check'} iconSize={18} />}
text={intl.get('mark_as_opened')}
onClick={safeCallback(onOpen, original)}
/>
</If>
<If condition={original.is_open && !original.is_fully_paid}>
<MenuItem
icon={<Icon icon="quick-payment-16" iconSize={16} />}
text={intl.get('add_payment')}
onClick={safeCallback(onQuick, original)}
/>
</If>
<If condition={!original.is_open}>
<MenuItem
icon={<Icon icon={'check'} iconSize={18} />}
text={intl.get('mark_as_opened')}
onClick={safeCallback(onOpen, original)}
/>
</If>
</Can>
<Can I={Payment_Made_Abilities.Create} a={AbilitySubject.PaymentMade}>
<If condition={original.is_open && !original.is_fully_paid}>
<MenuItem
icon={<Icon icon="quick-payment-16" iconSize={16} />}
text={intl.get('add_payment')}
onClick={safeCallback(onQuick, original)}
/>
</If>
</Can>
<MenuItem
icon={<Icon icon="receipt-24" iconSize={16} />}
text={intl.get('allocate_landed_coast')}
onClick={safeCallback(onAllocateLandedCost, original)}
/>
<MenuItem
text={intl.get('delete_bill')}
intent={Intent.DANGER}
onClick={safeCallback(onDelete, original)}
icon={<Icon icon="trash-16" iconSize={16} />}
/>
<Can I={Bill_Abilities.Delete} a={AbilitySubject.Bill}>
<MenuItem
text={intl.get('delete_bill')}
intent={Intent.DANGER}
onClick={safeCallback(onDelete, original)}
icon={<Icon icon="trash-16" iconSize={16} />}
/>
</Can>
</Menu>
);
}