@unite-us/app-create-referral 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/form/ErrorMessage/index.js +26 -0
- package/dist/common/form/ErrorMessage/index.js.map +1 -0
- package/dist/components/service_authorization/CapsInfo.js +73 -16
- package/dist/components/service_authorization/CapsInfo.js.map +1 -1
- package/dist/pages/builder/AuthorizationSubform.js +8 -10
- package/dist/pages/builder/AuthorizationSubform.js.map +1 -1
- package/dist/pages/builder/ReferralBuilder.js +82 -66
- package/dist/pages/builder/ReferralBuilder.js.map +1 -1
- package/dist/pages/builder/ReferralBuilderForm.js +8 -13
- package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
- package/dist/pages/builder/useBuildReferrals.js +9 -13
- package/dist/pages/builder/useBuildReferrals.js.map +1 -1
- package/dist/pages/builder/utils.js +39 -19
- package/dist/pages/builder/utils.js.map +1 -1
- package/dist/utils/validateUnitAmount.js +17 -0
- package/dist/utils/validateUnitAmount.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _ui = require("@unite-us/ui");
|
|
12
|
+
var ErrorMessage = function ErrorMessage(_ref) {
|
|
13
|
+
var children = _ref.children;
|
|
14
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
15
|
+
className: "fill-current text-red mr-1",
|
|
16
|
+
icon: "IconExclamationCircle",
|
|
17
|
+
size: 16
|
|
18
|
+
})), /*#__PURE__*/_react.default.createElement("p", {
|
|
19
|
+
className: "text-red text-13px"
|
|
20
|
+
}, children));
|
|
21
|
+
};
|
|
22
|
+
ErrorMessage.propTypes = {
|
|
23
|
+
children: _propTypes.default.node.isRequired
|
|
24
|
+
};
|
|
25
|
+
var _default = exports.default = ErrorMessage;
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_ui","ErrorMessage","_ref","children","default","createElement","Fragment","Icon","className","icon","size","propTypes","PropTypes","node","isRequired","_default","exports"],"sources":["../../../../src/common/form/ErrorMessage/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Icon } from '@unite-us/ui';\n\nconst ErrorMessage = ({ children }) => (\n <>\n <div>\n <Icon \n className=\"fill-current text-red mr-1\"\n icon=\"IconExclamationCircle\"\n size={16}\n />\n </div>\n <p className=\"text-red text-13px\">\n {children}\n </p>\n </>\n);\n \n \nErrorMessage.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ErrorMessage;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AAEA,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA;EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAAA,oBAC9BP,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAAAT,MAAA,CAAAQ,OAAA,CAAAE,QAAA,qBACEV,MAAA,CAAAQ,OAAA,CAAAC,aAAA,2BACET,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAACL,GAAA,CAAAO,IAAI;IACDC,SAAS,EAAC,4BAA4B;IACtCC,IAAI,EAAC,uBAAuB;IAC5BC,IAAI,EAAE;EAAG,CACZ,CACE,CAAC,eACNd,MAAA,CAAAQ,OAAA,CAAAC,aAAA;IAAGG,SAAS,EAAC;EAAoB,GAC/BL,QACC,CACH,CAAC;AAAA,CACJ;AAGDF,YAAY,CAACU,SAAS,GAAG;EACvBR,QAAQ,EAAES,kBAAS,CAACC,IAAI,CAACC;AAC3B,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAEaH,YAAY"}
|
|
@@ -9,17 +9,21 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
9
9
|
value: true
|
|
10
10
|
});
|
|
11
11
|
exports.default = void 0;
|
|
12
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
13
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
12
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
16
|
var _moment = _interopRequireDefault(require("moment"));
|
|
15
17
|
var _lodash = require("lodash");
|
|
16
18
|
var _pluralize = _interopRequireDefault(require("pluralize"));
|
|
19
|
+
var _reactFinalForm = require("react-final-form");
|
|
17
20
|
var _messageConstants = require("./messageConstants");
|
|
18
21
|
var _formatShortDate = _interopRequireDefault(require("./formatShortDate"));
|
|
19
22
|
var _LineItem = _interopRequireDefault(require("../../pages/builder/LineItem"));
|
|
20
23
|
var _usePerson = _interopRequireDefault(require("../../hooks/usePerson"));
|
|
21
24
|
var _ApiHooks = require("../../api/ApiHooks");
|
|
22
25
|
var _DollarAmount = _interopRequireDefault(require("../DollarAmount"));
|
|
26
|
+
var _ErrorMessage = _interopRequireDefault(require("../../common/form/ErrorMessage"));
|
|
23
27
|
function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
24
28
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
29
|
function InformationText(_ref) {
|
|
@@ -34,7 +38,7 @@ function InformationText(_ref) {
|
|
|
34
38
|
}, value);
|
|
35
39
|
}
|
|
36
40
|
InformationText.propTypes = {
|
|
37
|
-
name: _propTypes.default.string.isRequired,
|
|
41
|
+
name: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.element]).isRequired,
|
|
38
42
|
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node, _propTypes.default.number]).isRequired,
|
|
39
43
|
isLoaded: _propTypes.default.bool.isRequired
|
|
40
44
|
};
|
|
@@ -54,50 +58,94 @@ Spend.propTypes = {
|
|
|
54
58
|
isCostBased: _propTypes.default.bool.isRequired
|
|
55
59
|
};
|
|
56
60
|
function CapsInfo(_ref3) {
|
|
57
|
-
var _formValues$paymentAu, _formValues$paymentAu2;
|
|
61
|
+
var _formValues$paymentAu, _formValues$paymentAu2, _formValues$paymentAu3, _formState$errors;
|
|
58
62
|
var formValues = _ref3.formValues,
|
|
59
63
|
feeScheduleProgram = _ref3.feeScheduleProgram,
|
|
60
64
|
isCostBased = _ref3.isCostBased,
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
assignReferralErrors = _ref3.assignReferralErrors;
|
|
66
|
+
var serviceStart = formValues === null || formValues === void 0 || (_formValues$paymentAu = formValues.paymentAuthForm) === null || _formValues$paymentAu === void 0 ? void 0 : _formValues$paymentAu.service_start;
|
|
67
|
+
var requestedStartDate = serviceStart && _moment.default.unix(serviceStart).toISOString();
|
|
68
|
+
var serviceEnd = formValues === null || formValues === void 0 || (_formValues$paymentAu2 = formValues.paymentAuthForm) === null || _formValues$paymentAu2 === void 0 ? void 0 : _formValues$paymentAu2.service_end;
|
|
69
|
+
var requestedEndDate = serviceEnd && _moment.default.unix(serviceEnd).toISOString();
|
|
63
70
|
var person = (0, _usePerson.default)();
|
|
64
71
|
var _useFind = (0, _ApiHooks.useFind)('authorized_spend', {
|
|
65
72
|
person: person === null || person === void 0 ? void 0 : person.id,
|
|
66
73
|
fee_schedule_program: feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.id,
|
|
67
|
-
requested_starts_at:
|
|
68
|
-
requested_ends_at:
|
|
74
|
+
requested_starts_at: requestedStartDate,
|
|
75
|
+
requested_ends_at: requestedEndDate
|
|
69
76
|
}, {
|
|
70
77
|
queryConfig: {
|
|
71
|
-
enabled: !!(
|
|
78
|
+
enabled: !!(person !== null && person !== void 0 && person.id && feeScheduleProgram !== null && feeScheduleProgram !== void 0 && feeScheduleProgram.id),
|
|
72
79
|
placeholderData: undefined
|
|
73
80
|
}
|
|
74
81
|
}),
|
|
75
82
|
authorizedSpendsData = _useFind.data,
|
|
76
83
|
isFetching = _useFind.isFetching,
|
|
77
84
|
isLoading = _useFind.isLoading;
|
|
85
|
+
var _useFind2 = (0, _ApiHooks.useFind)('insurance', {
|
|
86
|
+
person: person === null || person === void 0 ? void 0 : person.id,
|
|
87
|
+
state: 'active',
|
|
88
|
+
'plan.fee_schedules': feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.fee_schedule.id,
|
|
89
|
+
enrolled_before: requestedStartDate,
|
|
90
|
+
expired_after: requestedEndDate
|
|
91
|
+
}, {
|
|
92
|
+
queryClient: {
|
|
93
|
+
enabled: !!(feeScheduleProgram !== null && feeScheduleProgram !== void 0 && feeScheduleProgram.id),
|
|
94
|
+
placeholderData: undefined
|
|
95
|
+
}
|
|
96
|
+
}),
|
|
97
|
+
insurancesData = _useFind2.data,
|
|
98
|
+
isFindInsuranceSuccess = _useFind2.isSuccess,
|
|
99
|
+
isFindInsuranceLoading = _useFind2.isLoading;
|
|
100
|
+
var isInsuranceLoaded = isFindInsuranceSuccess || !isFindInsuranceLoading;
|
|
101
|
+
var insurances = (0, _lodash.get)(insurancesData, 'data.data', []);
|
|
102
|
+
var invalidInsuranceAuthorizationDates = !(insurances !== null && insurances !== void 0 && insurances.length);
|
|
78
103
|
var isLoaded = !isFetching && !isLoading;
|
|
79
104
|
var authorizationSpends = (0, _lodash.get)(authorizedSpendsData, 'data.data', []); //todo use this on the modal
|
|
80
105
|
var totalApprovedSpend = (0, _lodash.get)(authorizedSpendsData, 'data.meta.total_approved_spend', 0);
|
|
81
106
|
var totalRequestedSpend = (0, _lodash.get)(authorizedSpendsData, 'data.meta.total_requested_spend', 0);
|
|
82
107
|
var authorizationSpendsErrors = (0, _lodash.get)(authorizedSpendsData, 'data.meta.errors', []);
|
|
83
108
|
var availableCap = (0, _lodash.get)(authorizedSpendsData, 'data.meta.available_cap', 0);
|
|
109
|
+
var totalCap = (0, _lodash.get)(authorizedSpendsData, 'data.meta.total_cap', 0);
|
|
84
110
|
var showClientUtilizationError = authorizationSpendsErrors.some(function (e) {
|
|
85
111
|
return e.title === _messageConstants.UTILIZATION_ERROR;
|
|
86
112
|
});
|
|
87
|
-
var showPassthroughDatesError =
|
|
113
|
+
var showPassthroughDatesError = authorizationSpendsErrors.some(function (e) {
|
|
88
114
|
return e.title === _messageConstants.DATES_ERROR;
|
|
89
115
|
});
|
|
90
|
-
(0, _react.useEffect)(function () {
|
|
91
|
-
assignErrors([showClientUtilizationError, showPassthroughDatesError]);
|
|
92
|
-
}, [showClientUtilizationError, showPassthroughDatesError, assignErrors]);
|
|
93
116
|
var startDate = (0, _moment.default)(authorizedSpendsData === null || authorizedSpendsData === void 0 ? void 0 : authorizedSpendsData.cap_starts_at).utc().startOf('day');
|
|
94
|
-
var hasCap = feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.
|
|
117
|
+
var hasCap = feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.has_cap;
|
|
95
118
|
var formattedCap = hasCap ? /*#__PURE__*/_react.default.createElement(Spend, {
|
|
96
|
-
amount:
|
|
119
|
+
amount: totalCap,
|
|
97
120
|
unit: feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.unit,
|
|
98
121
|
isCostBased: isCostBased
|
|
99
122
|
}) : 'No Cap';
|
|
100
123
|
var formattedCapPeriod = (feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.cap_reset_cadence) === 'lifetime' ? 'Lifetime' : "".concat((0, _formatShortDate.default)(startDate));
|
|
124
|
+
var amountRequested = formValues === null || formValues === void 0 || (_formValues$paymentAu3 = formValues.paymentAuthForm) === null || _formValues$paymentAu3 === void 0 ? void 0 : _formValues$paymentAu3.amount_requested;
|
|
125
|
+
var isAmountExceeded = (0, _lodash.isNumber)(amountRequested) && hasCap && amountRequested > availableCap;
|
|
126
|
+
var formState = (0, _reactFinalForm.useFormState)();
|
|
127
|
+
var authFormErrors = (_formState$errors = formState.errors) === null || _formState$errors === void 0 ? void 0 : _formState$errors.paymentAuthForm;
|
|
128
|
+
(0, _react.useEffect)(function () {
|
|
129
|
+
if (isFindInsuranceSuccess) {
|
|
130
|
+
var errors = [];
|
|
131
|
+
if (showClientUtilizationError) errors.push('service');
|
|
132
|
+
if (showPassthroughDatesError || invalidInsuranceAuthorizationDates) errors.push('paymentAuthForm.service_end');
|
|
133
|
+
if (isAmountExceeded) errors.push('amount_requested');
|
|
134
|
+
if (authFormErrors) {
|
|
135
|
+
(0, _keys.default)(authFormErrors).forEach(function (key) {
|
|
136
|
+
var _context;
|
|
137
|
+
if (key === 'amount_requested' && (0, _includes.default)(_context = authFormErrors[key]).call(_context, 'Required')) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
errors.push("paymentAuthForm.".concat(key));
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
;
|
|
144
|
+
assignReferralErrors(errors);
|
|
145
|
+
}
|
|
146
|
+
// NOTE: disable exhaustive-deps because we don't want to run this effect when the authFormErrors values change
|
|
147
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
148
|
+
}, [isFindInsuranceSuccess, assignReferralErrors, showClientUtilizationError, showPassthroughDatesError, isAmountExceeded, invalidInsuranceAuthorizationDates, requestedStartDate, requestedEndDate, amountRequested]);
|
|
101
149
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
102
150
|
className: "mb-12 grid grid-cols-2 gap-2",
|
|
103
151
|
"data-testid": "caps-info-section"
|
|
@@ -137,14 +185,23 @@ function CapsInfo(_ref3) {
|
|
|
137
185
|
unit: feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.unit
|
|
138
186
|
}),
|
|
139
187
|
isLoaded: isLoaded
|
|
140
|
-
}), /*#__PURE__*/_react.default.createElement("div",
|
|
188
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
189
|
+
className: "mt-6"
|
|
190
|
+
}, "View Details"), isAmountExceeded && /*#__PURE__*/_react.default.createElement("div", {
|
|
191
|
+
className: "col-span-2 px-0 flex space-x-2 mt-6 mb-0"
|
|
192
|
+
}, /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, null, "The amount requested is more than the amount available for authorization. Please adjust the amount requested, or search for another program to meet the client's needs.")), showClientUtilizationError && /*#__PURE__*/_react.default.createElement("div", {
|
|
193
|
+
className: "col-span-2 px-0 flex space-x-2 mt-6 mb-0"
|
|
194
|
+
}, /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, null, "The client is already receiving this service through either a passthrough or non-passthrough service within this program group.")), showPassthroughDatesError && /*#__PURE__*/_react.default.createElement("div", {
|
|
195
|
+
className: "col-span-2 px-0 flex space-x-2 mt-6 mb-0"
|
|
196
|
+
}, /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, null, "Clients can only receive services from this program for 30 days or until their social coverage ends, whichever comes first.")), isInsuranceLoaded && isLoaded && invalidInsuranceAuthorizationDates && /*#__PURE__*/_react.default.createElement("div", {
|
|
197
|
+
className: "col-span-2 px-0 flex space-x-2 mt-6 mb-0"
|
|
198
|
+
}, /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, null, "The service delivery dates requested fall outside the client's enrollment dates for all enrolled plans. Please edit the service delivery dates.")));
|
|
141
199
|
}
|
|
142
200
|
CapsInfo.propTypes = {
|
|
143
201
|
formValues: _propTypes.default.object.isRequired,
|
|
144
202
|
feeScheduleProgram: _propTypes.default.object.isRequired,
|
|
145
203
|
isCostBased: _propTypes.default.bool.isRequired,
|
|
146
|
-
|
|
147
|
-
assignErrors: _propTypes.default.func.isRequired
|
|
204
|
+
assignReferralErrors: _propTypes.default.func.isRequired
|
|
148
205
|
};
|
|
149
206
|
var _default = exports.default = CapsInfo;
|
|
150
207
|
//# sourceMappingURL=CapsInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapsInfo.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_moment","_lodash","_pluralize","_messageConstants","_formatShortDate","_LineItem","_usePerson","_ApiHooks","_DollarAmount","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","InformationText","_ref","name","value","isLoaded","createElement","field","fieldClassName","valueClassName","propTypes","PropTypes","string","isRequired","oneOfType","node","number","bool","Spend","_ref2","amount","unit","isCostBased","convertCents","pluralize","CapsInfo","_ref3","_formValues$paymentAu","_formValues$paymentAu2","formValues","feeScheduleProgram","hasDatesSelected","assignErrors","person","usePerson","_useFind","useFind","id","fee_schedule_program","requested_starts_at","moment","unix","paymentAuthForm","service_start","toISOString","requested_ends_at","service_end","queryConfig","enabled","placeholderData","undefined","authorizedSpendsData","data","isFetching","isLoading","authorizationSpends","totalApprovedSpend","totalRequestedSpend","authorizationSpendsErrors","availableCap","showClientUtilizationError","some","title","UTILIZATION_ERROR","showPassthroughDatesError","DATES_ERROR","useEffect","startDate","cap_starts_at","utc","startOf","hasCap","formattedCap","total_cap","formattedCapPeriod","cap_reset_cadence","concat","formatShortDate","className","Fragment","isValid","object","func","_default","exports"],"sources":["../../../src/components/service_authorization/CapsInfo.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { get } from 'lodash';\nimport pluralize from 'pluralize';\nimport { UTILIZATION_ERROR, DATES_ERROR } from './messageConstants';\nimport formatShortDate from './formatShortDate';\nimport LineItem from '../../pages/builder/LineItem';\nimport usePerson from '../../hooks/usePerson';\nimport { useFind } from '../../api/ApiHooks';\nimport DollarAmount from '../DollarAmount';\nfunction InformationText({\n name, value, isLoaded\n}) {\n return (\n <LineItem\n field={name}\n fieldClassName=\"col-span-1 p-0 text-dark-grey\"\n valueClassName=\"flex text-dark-blue\"\n isLoaded={isLoaded}\n >\n {value}\n </LineItem>\n );\n}\n\nInformationText.propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.number]).isRequired,\n isLoaded: PropTypes.bool.isRequired,\n};\n\nfunction Spend ({amount, unit, isCostBased}) {\n return isCostBased ? (\n <DollarAmount convertCents value={amount} />\n ) : (\n <span>\n {amount} {pluralize(unit || '', amount)}\n </span>\n )\n};\n\nSpend.propTypes = {\n amount: PropTypes.number.isRequired,\n unit: PropTypes.string,\n isCostBased: PropTypes.bool.isRequired,\n};\n\nfunction CapsInfo({\n formValues,\n feeScheduleProgram,\n isCostBased,\n hasDatesSelected,\n assignErrors,\n}) {\n\n const person = usePerson();\n const { data: authorizedSpendsData, isFetching, isLoading } = useFind(\n 'authorized_spend',\n {\n person: person?.id,\n fee_schedule_program: feeScheduleProgram?.id,\n requested_starts_at: moment.unix(formValues?.paymentAuthForm?.service_start).toISOString(),\n requested_ends_at: moment.unix(formValues?.paymentAuthForm?.service_end).toISOString(),\n },\n { \n queryConfig: { \n enabled: !!(hasDatesSelected && person?.id && feeScheduleProgram?.id),\n placeholderData: undefined,\n } \n }\n );\n\n const isLoaded = !isFetching && !isLoading;\n\n const authorizationSpends = get(authorizedSpendsData, 'data.data', []); //todo use this on the modal\n const totalApprovedSpend = get(authorizedSpendsData, 'data.meta.total_approved_spend', 0);\n const totalRequestedSpend = get(authorizedSpendsData, 'data.meta.total_requested_spend', 0);\n const authorizationSpendsErrors = get(authorizedSpendsData, 'data.meta.errors', []);\n const availableCap = get(authorizedSpendsData, 'data.meta.available_cap', 0);\n\n const showClientUtilizationError = authorizationSpendsErrors.some((e) => e.title === UTILIZATION_ERROR);\n const showPassthroughDatesError = hasDatesSelected &&\n authorizationSpendsErrors.some((e) => e.title === DATES_ERROR);\n\n useEffect(() => {\n assignErrors([showClientUtilizationError, showPassthroughDatesError]);\n }, [showClientUtilizationError, showPassthroughDatesError, assignErrors]);\n\n const startDate = moment(authorizedSpendsData?.cap_starts_at).utc().startOf('day');\n const hasCap = feeScheduleProgram?.hasCap;\n const formattedCap = hasCap ? <Spend amount={authorizedSpendsData?.total_cap} unit={feeScheduleProgram?.unit} isCostBased={isCostBased}/> : 'No Cap';\n const formattedCapPeriod = feeScheduleProgram?.cap_reset_cadence === 'lifetime' ?\n 'Lifetime' : `${formatShortDate(startDate)}`;\n\n\n return (\n <div className=\"mb-12 grid grid-cols-2 gap-2\" data-testid=\"caps-info-section\">\n { hasCap && (\n <InformationText\n name={<span className=\"font-bold\">AMOUNT AVAILABLE FOR AUTHORIZATION</span>}\n value={(\n <span className=\"font-bold\">\n <Spend isCostBased={isCostBased} amount={availableCap} unit={feeScheduleProgram?.unit}/>\n </span>\n )}\n isLoaded={isLoaded}\n />\n )}\n <InformationText\n name=\"Amount Currently Authorized\"\n value={<Spend isCostBased={isCostBased} amount={totalApprovedSpend} unit={feeScheduleProgram?.unit}/>}\n isLoaded={isLoaded}\n />\n { hasCap && (\n <>\n <InformationText name=\"Cap\" value={formattedCap} isLoaded={isLoaded} />\n {startDate?.isValid() &&\n (<InformationText name=\"Cap Period\" value={formattedCapPeriod} isLoaded={isLoaded} />)}\n </>\n )}\n <InformationText\n name=\"Amount Pending Authorization\"\n value={\n <Spend isCostBased={isCostBased} amount={totalRequestedSpend} unit={feeScheduleProgram?.unit}/>\n }\n isLoaded={isLoaded}\n />\n <div>\n View Details\n </div>\n </div>\n );\n}\n\nCapsInfo.propTypes = {\n formValues: PropTypes.object.isRequired,\n feeScheduleProgram: PropTypes.object.isRequired,\n isCostBased: PropTypes.bool.isRequired,\n hasDatesSelected: PropTypes.bool.isRequired,\n assignErrors: PropTypes.func.isRequired,\n};\n\nexport default CapsInfo;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CapsInfo.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_moment","_lodash","_pluralize","_reactFinalForm","_messageConstants","_formatShortDate","_LineItem","_usePerson","_ApiHooks","_DollarAmount","_ErrorMessage","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","InformationText","_ref","name","value","isLoaded","createElement","field","fieldClassName","valueClassName","propTypes","PropTypes","oneOfType","string","element","isRequired","node","number","bool","Spend","_ref2","amount","unit","isCostBased","convertCents","pluralize","CapsInfo","_ref3","_formValues$paymentAu","_formValues$paymentAu2","_formValues$paymentAu3","_formState$errors","formValues","feeScheduleProgram","assignReferralErrors","serviceStart","paymentAuthForm","service_start","requestedStartDate","moment","unix","toISOString","serviceEnd","service_end","requestedEndDate","person","usePerson","_useFind","useFind","id","fee_schedule_program","requested_starts_at","requested_ends_at","queryConfig","enabled","placeholderData","undefined","authorizedSpendsData","data","isFetching","isLoading","_useFind2","state","fee_schedule","enrolled_before","expired_after","queryClient","insurancesData","isFindInsuranceSuccess","isSuccess","isFindInsuranceLoading","isInsuranceLoaded","insurances","invalidInsuranceAuthorizationDates","length","authorizationSpends","totalApprovedSpend","totalRequestedSpend","authorizationSpendsErrors","availableCap","totalCap","showClientUtilizationError","some","title","UTILIZATION_ERROR","showPassthroughDatesError","DATES_ERROR","startDate","cap_starts_at","utc","startOf","hasCap","has_cap","formattedCap","formattedCapPeriod","cap_reset_cadence","concat","formatShortDate","amountRequested","amount_requested","isAmountExceeded","isNumber","formState","useFormState","authFormErrors","errors","useEffect","push","_keys","forEach","key","_context","_includes","className","Fragment","isValid","object","func","_default","exports"],"sources":["../../../src/components/service_authorization/CapsInfo.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { get, isNumber } from 'lodash';\nimport pluralize from 'pluralize';\nimport { useFormState } from 'react-final-form';\nimport { UTILIZATION_ERROR, DATES_ERROR } from './messageConstants';\nimport formatShortDate from './formatShortDate';\nimport LineItem from '../../pages/builder/LineItem';\nimport usePerson from '../../hooks/usePerson';\nimport { useFind } from '../../api/ApiHooks';\nimport DollarAmount from '../DollarAmount';\nimport ErrorMessage from '../../common/form/ErrorMessage';\n\nfunction InformationText({\n name, value, isLoaded\n}) {\n return (\n <LineItem\n field={name}\n fieldClassName=\"col-span-1 p-0 text-dark-grey\"\n valueClassName=\"flex text-dark-blue\"\n isLoaded={isLoaded}\n >\n {value}\n </LineItem>\n );\n}\n\nInformationText.propTypes = {\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.number]).isRequired,\n isLoaded: PropTypes.bool.isRequired,\n};\n\nfunction Spend ({amount, unit, isCostBased}) {\n return isCostBased ? (\n <DollarAmount convertCents value={amount} />\n ) : (\n <span>\n {amount} {pluralize(unit || '', amount)}\n </span>\n )\n};\n\nSpend.propTypes = {\n amount: PropTypes.number.isRequired,\n unit: PropTypes.string,\n isCostBased: PropTypes.bool.isRequired,\n};\n\nfunction CapsInfo({\n formValues,\n feeScheduleProgram,\n isCostBased,\n assignReferralErrors,\n}) {\n\n const serviceStart = formValues?.paymentAuthForm?.service_start;\n const requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = formValues?.paymentAuthForm?.service_end;\n const requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n const person = usePerson();\n const { data: authorizedSpendsData, isFetching, isLoading } = useFind(\n 'authorized_spend',\n {\n person: person?.id,\n fee_schedule_program: feeScheduleProgram?.id,\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n },\n { \n queryConfig: { \n enabled: !!(person?.id && feeScheduleProgram?.id),\n placeholderData: undefined,\n } \n }\n );\n\n const { \n data: insurancesData,\n isSuccess: isFindInsuranceSuccess,\n isLoading: isFindInsuranceLoading,\n } = useFind(\n 'insurance',\n {\n person: person?.id,\n state: 'active',\n 'plan.fee_schedules': feeScheduleProgram?.fee_schedule.id,\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n },\n {\n queryClient: {\n enabled: !!feeScheduleProgram?.id,\n placeholderData: undefined,\n }\n }\n );\n const isInsuranceLoaded = isFindInsuranceSuccess || !isFindInsuranceLoading;\n\n const insurances = get(insurancesData, 'data.data', []);\n const invalidInsuranceAuthorizationDates = !insurances?.length;\n\n const isLoaded = !isFetching && !isLoading;\n\n const authorizationSpends = get(authorizedSpendsData, 'data.data', []); //todo use this on the modal\n const totalApprovedSpend = get(authorizedSpendsData, 'data.meta.total_approved_spend', 0);\n const totalRequestedSpend = get(authorizedSpendsData, 'data.meta.total_requested_spend', 0);\n const authorizationSpendsErrors = get(authorizedSpendsData, 'data.meta.errors', []);\n const availableCap = get(authorizedSpendsData, 'data.meta.available_cap', 0);\n const totalCap = get(authorizedSpendsData, 'data.meta.total_cap', 0);\n\n const showClientUtilizationError = authorizationSpendsErrors.some((e) => e.title === UTILIZATION_ERROR);\n const showPassthroughDatesError = authorizationSpendsErrors.some((e) => e.title === DATES_ERROR);\n \n const startDate = moment(authorizedSpendsData?.cap_starts_at).utc().startOf('day');\n const hasCap = feeScheduleProgram?.has_cap;\n const formattedCap = hasCap ? <Spend amount={totalCap} unit={feeScheduleProgram?.unit} isCostBased={isCostBased}/> : 'No Cap';\n const formattedCapPeriod = feeScheduleProgram?.cap_reset_cadence === 'lifetime' ?\n 'Lifetime' : `${formatShortDate(startDate)}`;\n\n const amountRequested = formValues?.paymentAuthForm?.amount_requested;\n const isAmountExceeded = isNumber(amountRequested) && hasCap && (amountRequested > availableCap);\n\n const formState = useFormState();\n const authFormErrors = formState.errors?.paymentAuthForm;\n\n useEffect(() => {\n if(isFindInsuranceSuccess) {\n const errors = [];\n\n if (showClientUtilizationError) errors.push('service');\n if (showPassthroughDatesError || invalidInsuranceAuthorizationDates) errors.push('paymentAuthForm.service_end');\n if (isAmountExceeded) errors.push('amount_requested');\n if (authFormErrors) {\n Object.keys(authFormErrors).forEach((key) => {\n if (key === 'amount_requested' && authFormErrors[key].includes('Required')) {\n return;\n }\n errors.push(`paymentAuthForm.${key}`);\n });\n };\n \n assignReferralErrors(errors);\n }\n // NOTE: disable exhaustive-deps because we don't want to run this effect when the authFormErrors values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isFindInsuranceSuccess,\n assignReferralErrors,\n showClientUtilizationError,\n showPassthroughDatesError,\n isAmountExceeded,\n invalidInsuranceAuthorizationDates,\n requestedStartDate,\n requestedEndDate,\n amountRequested,\n ]);\n\n return (\n <div className=\"mb-12 grid grid-cols-2 gap-2\" data-testid=\"caps-info-section\">\n { hasCap && (\n <InformationText\n name={<span className=\"font-bold\">AMOUNT AVAILABLE FOR AUTHORIZATION</span>}\n value={(\n <span className=\"font-bold\">\n <Spend isCostBased={isCostBased} amount={availableCap} unit={feeScheduleProgram?.unit}/>\n </span>\n )}\n isLoaded={isLoaded}\n />\n )}\n <InformationText\n name=\"Amount Currently Authorized\"\n value={<Spend isCostBased={isCostBased} amount={totalApprovedSpend} unit={feeScheduleProgram?.unit}/>}\n isLoaded={isLoaded}\n />\n { hasCap && (\n <>\n <InformationText name=\"Cap\" value={formattedCap} isLoaded={isLoaded} />\n {startDate?.isValid() &&\n (<InformationText name=\"Cap Period\" value={formattedCapPeriod} isLoaded={isLoaded} />)}\n </>\n )}\n <InformationText\n name=\"Amount Pending Authorization\"\n value={\n <Spend isCostBased={isCostBased} amount={totalRequestedSpend} unit={feeScheduleProgram?.unit}/>\n }\n isLoaded={isLoaded}\n />\n <div className=\"mt-6\">\n View Details\n </div>\n {isAmountExceeded && (\n <div className=\"col-span-2 px-0 flex space-x-2 mt-6 mb-0\">\n <ErrorMessage>\n The amount requested is more than the amount available for authorization.\n Please adjust the amount requested, or search for another program\n to meet the client's needs.\n </ErrorMessage>\n </div>\n )}\n {showClientUtilizationError && (\n <div className=\"col-span-2 px-0 flex space-x-2 mt-6 mb-0\">\n <ErrorMessage>\n The client is already receiving this service through either a passthrough or non-passthrough service within this program group.\n </ErrorMessage>\n </div>\n )}\n {showPassthroughDatesError && (\n <div className=\"col-span-2 px-0 flex space-x-2 mt-6 mb-0\">\n <ErrorMessage>\n Clients can only receive services from this program for 30 days or until their social coverage ends,\n whichever comes first.\n </ErrorMessage>\n </div>\n )}\n {(isInsuranceLoaded && isLoaded) && invalidInsuranceAuthorizationDates && (\n <div className=\"col-span-2 px-0 flex space-x-2 mt-6 mb-0\">\n <ErrorMessage>\n The service delivery dates requested fall outside the client's\n enrollment dates for all enrolled plans. Please edit the service delivery dates.\n </ErrorMessage>\n </div>\n )}\n </div>\n );\n}\n\nCapsInfo.propTypes = {\n formValues: PropTypes.object.isRequired,\n feeScheduleProgram: PropTypes.object.isRequired,\n isCostBased: PropTypes.bool.isRequired,\n assignReferralErrors: PropTypes.func.isRequired,\n};\n\nexport default CapsInfo;\n"],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ var _ui = require("@unite-us/ui");
|
|
|
18
18
|
var _CurrencyField = _interopRequireDefault(require("../../common/form/CurrencyField"));
|
|
19
19
|
var _DollarAmount = _interopRequireDefault(require("../../components/DollarAmount"));
|
|
20
20
|
var _LineItem = _interopRequireDefault(require("./LineItem"));
|
|
21
|
+
var _validateUnitAmount = _interopRequireDefault(require("../../utils/validateUnitAmount"));
|
|
21
22
|
var AuthFormLineItem = function AuthFormLineItem(props) {
|
|
22
23
|
return /*#__PURE__*/_react.default.createElement(_LineItem.default, (0, _extends2.default)({
|
|
23
24
|
fieldClassName: "col-span-1 p-0 text-dark-grey",
|
|
@@ -27,7 +28,8 @@ var AuthFormLineItem = function AuthFormLineItem(props) {
|
|
|
27
28
|
var AuthorizationSubform = function AuthorizationSubform(_ref) {
|
|
28
29
|
var _formValues$paymentAu, _formValues$paymentAu2, _formValues$amount_re;
|
|
29
30
|
var feeScheduleProgram = _ref.feeScheduleProgram,
|
|
30
|
-
formValues = _ref.formValues
|
|
31
|
+
formValues = _ref.formValues,
|
|
32
|
+
assignReferralErrors = _ref.assignReferralErrors;
|
|
31
33
|
var isCostBased = _feeSchedulePrograms.default.isCostPaymentType(feeScheduleProgram.payment_type);
|
|
32
34
|
var showUnits = !isCostBased && (feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.unit);
|
|
33
35
|
var showRate = showUnits && (feeScheduleProgram === null || feeScheduleProgram === void 0 ? void 0 : feeScheduleProgram.unit_rate) > 0;
|
|
@@ -62,13 +64,10 @@ var AuthorizationSubform = function AuthorizationSubform(_ref) {
|
|
|
62
64
|
}, /*#__PURE__*/_react.default.createElement(_reactFinalForm.Field, {
|
|
63
65
|
name: "paymentAuthForm.amount_requested",
|
|
64
66
|
validate: function validate(value) {
|
|
65
|
-
return (0, _validations.isRequired)(value);
|
|
67
|
+
return isCostBased ? (0, _validations.isRequired)(value) : (0, _validateUnitAmount.default)(value);
|
|
66
68
|
}
|
|
67
69
|
}, function (params) {
|
|
68
|
-
return isCostBased ?
|
|
69
|
-
/*#__PURE__*/
|
|
70
|
-
// TODO unit amount validation https://uniteus.atlassian.net/browse/PAYS-5506
|
|
71
|
-
_react.default.createElement(_CurrencyField.default, (0, _extends2.default)({
|
|
70
|
+
return isCostBased ? /*#__PURE__*/_react.default.createElement(_CurrencyField.default, (0, _extends2.default)({
|
|
72
71
|
className: "col-span-1 p-0",
|
|
73
72
|
id: "authorization-request-amount-requested",
|
|
74
73
|
label: "Amount Requested",
|
|
@@ -118,14 +117,13 @@ var AuthorizationSubform = function AuthorizationSubform(_ref) {
|
|
|
118
117
|
feeScheduleProgram: feeScheduleProgram,
|
|
119
118
|
formValues: formValues,
|
|
120
119
|
isCostBased: isCostBased,
|
|
121
|
-
|
|
122
|
-
,
|
|
123
|
-
hasDatesSelected: hasDatesSelected
|
|
120
|
+
assignReferralErrors: assignReferralErrors
|
|
124
121
|
})));
|
|
125
122
|
};
|
|
126
123
|
AuthorizationSubform.propTypes = {
|
|
127
124
|
feeScheduleProgram: _propTypes.default.object.isRequired,
|
|
128
|
-
formValues: _propTypes.default.object.isRequired
|
|
125
|
+
formValues: _propTypes.default.object.isRequired,
|
|
126
|
+
assignReferralErrors: _propTypes.default.func.isRequired
|
|
129
127
|
};
|
|
130
128
|
var _default = exports.default = AuthorizationSubform;
|
|
131
129
|
//# sourceMappingURL=AuthorizationSubform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationSubform.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactFinalForm","_pluralize","_feeSchedulePrograms","_validations","_CapsInfo","_ui","_CurrencyField","_DollarAmount","_LineItem","AuthFormLineItem","props","default","createElement","_extends2","fieldClassName","valueClassName","AuthorizationSubform","_ref","_formValues$paymentAu","_formValues$paymentAu2","_formValues$amount_re","feeScheduleProgram","formValues","isCostBased","fspUtils","isCostPaymentType","payment_type","showUnits","unit","showRate","unit_rate","hasDatesSelected","paymentAuthForm","service_start","service_end","Fragment","className","field","name","PAYMENT_TYPES","value","convertCents","cap_information","dangerouslySetInnerHTML","__html","Field","validate","isRequired","params","id","label","required","InputField","type","pluralize","amount_requested","startProps","endProps","DurationField","startField","startFieldPath","endField","endFieldPath","style","container","width","assignErrors","propTypes","PropTypes","object","_default","exports"],"sources":["../../../src/pages/builder/AuthorizationSubform.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Field } from 'react-final-form';\nimport pluralize from 'pluralize';\nimport fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';\nimport { isRequired } from '@unite-us/client-utils/dist/utils/validations/validations';\nimport CapsInfo from '../../components/service_authorization/CapsInfo';\nimport {\n DurationField,\n InputField,\n} from '@unite-us/ui';\nimport CurrencyField from '../../common/form/CurrencyField';\nimport DollarAmount from '../../components/DollarAmount';\nimport LineItem from './LineItem';\n\nconst AuthFormLineItem = (props) => (\n <LineItem\n fieldClassName=\"col-span-1 p-0 text-dark-grey\"\n valueClassName=\"col-span-2 m-0 p-0 text-dark-blue\"\n {...props}\n />\n);\n\nconst AuthorizationSubform = ({ feeScheduleProgram, formValues }) => {\n const isCostBased = fspUtils.isCostPaymentType(feeScheduleProgram.payment_type);\n const showUnits = !isCostBased && feeScheduleProgram?.unit;\n const showRate = showUnits && feeScheduleProgram?.unit_rate > 0;\n const hasDatesSelected = !!(\n formValues?.paymentAuthForm?.service_start &&\n formValues?.paymentAuthForm?.service_end\n );\n\n return (\n <>\n <div className=\"space-y-6\">\n <h5 className=\"text-sm ui-form-field__label m-0\">\n AUTHORIZATION REQUEST\n </h5>\n <dl className=\"grid grid-cols-3 gap-x-6 gap-y-2\">\n <AuthFormLineItem field=\"Contracted Program\">\n {feeScheduleProgram.name}\n </AuthFormLineItem>\n <AuthFormLineItem field=\"Payment Approach\">\n {fspUtils.PAYMENT_TYPES[feeScheduleProgram.payment_type] || 'N/A'}\n </AuthFormLineItem>\n {showUnits && (\n <AuthFormLineItem field=\"Unit\">\n {feeScheduleProgram.unit}\n </AuthFormLineItem>\n )}\n {showRate && (\n <AuthFormLineItem field=\"Rate\">\n <DollarAmount value={feeScheduleProgram.unit_rate} convertCents />\n {' per '}\n {feeScheduleProgram.unit}\n </AuthFormLineItem>\n )}\n <AuthFormLineItem field=\"Program Cap\">\n {feeScheduleProgram.cap_information ? (\n <div dangerouslySetInnerHTML={{ __html: feeScheduleProgram.cap_information }} />\n ) : (\n 'No cap'\n )}\n </AuthFormLineItem>\n </dl>\n <hr className=\"p-0\" />\n <div className=\"grid grid-cols-3 gap-x-6\">\n <Field name=\"paymentAuthForm.amount_requested\" validate={(value) => isRequired(value)}>\n {(params) => (isCostBased ? (\n // TODO unit amount validation https://uniteus.atlassian.net/browse/PAYS-5506\n <CurrencyField\n className=\"col-span-1 p-0\"\n id=\"authorization-request-amount-requested\"\n label=\"Amount Requested\"\n required\n {...params}\n />\n ) : (\n <InputField\n className=\"col-span-1 p-0\"\n id=\"authorization-request-amount-requested\"\n label=\"Amount Requested\"\n type=\"number\"\n required\n {...params}\n />\n ))}\n </Field>\n <div className=\"col-span-2 p-0 space-y-2\">\n <div className=\"font-heavy-font text-dark-grey\">Unit</div>\n <div className=\"capitalize\">\n {isCostBased ? 'Dollars' :\n pluralize(\n feeScheduleProgram.unit || '',\n formValues?.amount_requested?.value || 0,\n )}\n </div>\n </div>\n <div className=\"col-span-1 p-0\">\n <Field name=\"paymentAuthForm.service_start\">\n {(startProps) => (\n <Field name=\"paymentAuthForm.service_end\" validate={(value) => isRequired(value)}>\n {(endProps) => (\n <DurationField\n id=\"authorization-request-service-dates\"\n label=\"Service Delivery Date(s)\"\n startField={startProps}\n startFieldPath=\"startField\"\n endField={endProps}\n endFieldPath=\"endField\"\n required\n style={{ container: { width: 'unset' } }}\n />\n )}\n </Field>\n )}\n </Field>\n </div>\n </div>\n </div>\n {\n hasDatesSelected &&\n <>\n <hr className=\"mb-6\"/>\n <CapsInfo\n feeScheduleProgram={feeScheduleProgram}\n formValues={formValues}\n isCostBased={isCostBased}\n assignErrors={()=>{}}// todo use when create validation https://uniteus.atlassian.net/browse/PAYS-5506\n hasDatesSelected={hasDatesSelected}\n />\n </>\n }\n </>\n );\n};\n\nAuthorizationSubform.propTypes = {\n feeScheduleProgram: PropTypes.object.isRequired,\n formValues: PropTypes.object.isRequired,\n};\n\nexport default AuthorizationSubform;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,oBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,GAAA,GAAAP,OAAA;AAIA,IAAAQ,cAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,aAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAX,sBAAA,CAAAC,OAAA;AAEA,IAAMW,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAK;EAAA,oBAC7Bd,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACJ,SAAA,CAAAG,OAAQ,MAAAE,SAAA,CAAAF,OAAA;IACPG,cAAc,EAAC,+BAA+B;IAC9CC,cAAc,EAAC;EAAmC,GAC9CL,KAAK,CACV,CAAC;AAAA,CACH;AAED,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAA2C;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA;EAAA,IAArCC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;IAAEC,UAAU,GAAAL,IAAA,CAAVK,UAAU;EAC5D,IAAMC,WAAW,GAAGC,4BAAQ,CAACC,iBAAiB,CAACJ,kBAAkB,CAACK,YAAY,CAAC;EAC/E,IAAMC,SAAS,GAAG,CAACJ,WAAW,KAAIF,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAEO,IAAI;EAC1D,IAAMC,QAAQ,GAAGF,SAAS,IAAI,CAAAN,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAES,SAAS,IAAG,CAAC;EAC/D,IAAMC,gBAAgB,GAAG,CAAC,EACxBT,UAAU,aAAVA,UAAU,gBAAAJ,qBAAA,GAAVI,UAAU,CAAEU,eAAe,cAAAd,qBAAA,eAA3BA,qBAAA,CAA6Be,aAAa,IAC1CX,UAAU,aAAVA,UAAU,gBAAAH,sBAAA,GAAVG,UAAU,CAAEU,eAAe,cAAAb,sBAAA,eAA3BA,sBAAA,CAA6Be,WAAW,CACzC;EAED,oBACEtC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAAAhB,MAAA,CAAAe,OAAA,CAAAwB,QAAA,qBACEvC,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAKwB,SAAS,EAAC;EAAW,gBACxBxC,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAIwB,SAAS,EAAC;EAAkC,GAAC,uBAE7C,CAAC,eACLxC,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAIwB,SAAS,EAAC;EAAkC,gBAC9CxC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACH,gBAAgB;IAAC4B,KAAK,EAAC;EAAoB,GACzChB,kBAAkB,CAACiB,IACJ,CAAC,eACnB1C,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACH,gBAAgB;IAAC4B,KAAK,EAAC;EAAkB,GACvCb,4BAAQ,CAACe,aAAa,CAAClB,kBAAkB,CAACK,YAAY,CAAC,IAAI,KAC5C,CAAC,EAClBC,SAAS,iBACR/B,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACH,gBAAgB;IAAC4B,KAAK,EAAC;EAAM,GAC3BhB,kBAAkB,CAACO,IACJ,CACnB,EACAC,QAAQ,iBACPjC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACH,gBAAgB;IAAC4B,KAAK,EAAC;EAAM,gBAC5BzC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACL,aAAA,CAAAI,OAAY;IAAC6B,KAAK,EAAEnB,kBAAkB,CAACS,SAAU;IAACW,YAAY;EAAA,CAAE,CAAC,EACjE,OAAO,EACPpB,kBAAkB,CAACO,IACJ,CACnB,eACDhC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACH,gBAAgB;IAAC4B,KAAK,EAAC;EAAa,GAClChB,kBAAkB,CAACqB,eAAe,gBACjC9C,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAK+B,uBAAuB,EAAE;MAAEC,MAAM,EAAEvB,kBAAkB,CAACqB;IAAgB;EAAE,CAAE,CAAC,GAEhF,QAEc,CAChB,CAAC,eACL9C,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAIwB,SAAS,EAAC;EAAK,CAAE,CAAC,eACtBxC,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAKwB,SAAS,EAAC;EAA0B,gBACvCxC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,eAAA,CAAA6C,KAAK;IAACP,IAAI,EAAC,kCAAkC;IAACQ,QAAQ,EAAE,SAAAA,SAACN,KAAK;MAAA,OAAK,IAAAO,uBAAU,EAACP,KAAK,CAAC;IAAA;EAAC,GACnF,UAACQ,MAAM;IAAA,OAAMzB,WAAW;IAAA;IACvB;IACA3B,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACN,cAAA,CAAAK,OAAa,MAAAE,SAAA,CAAAF,OAAA;MACZyB,SAAS,EAAC,gBAAgB;MAC1Ba,EAAE,EAAC,wCAAwC;MAC3CC,KAAK,EAAC,kBAAkB;MACxBC,QAAQ;IAAA,GACJH,MAAM,CACX,CAAC,gBAEFpD,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACP,GAAA,CAAA+C,UAAU,MAAAvC,SAAA,CAAAF,OAAA;MACTyB,SAAS,EAAC,gBAAgB;MAC1Ba,EAAE,EAAC,wCAAwC;MAC3CC,KAAK,EAAC,kBAAkB;MACxBG,IAAI,EAAC,QAAQ;MACbF,QAAQ;IAAA,GACJH,MAAM,CACX,CACF;EAAA,CACI,CAAC,eACRpD,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAKwB,SAAS,EAAC;EAA0B,gBACvCxC,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAKwB,SAAS,EAAC;EAAgC,GAAC,MAAS,CAAC,eAC1DxC,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAKwB,SAAS,EAAC;EAAY,GACxBb,WAAW,GAAG,SAAS,GACtB,IAAA+B,kBAAS,EACPjC,kBAAkB,CAACO,IAAI,IAAI,EAAE,EAC7B,CAAAN,UAAU,aAAVA,UAAU,gBAAAF,qBAAA,GAAVE,UAAU,CAAEiC,gBAAgB,cAAAnC,qBAAA,uBAA5BA,qBAAA,CAA8BoB,KAAK,KAAI,CACzC,CACC,CACF,CAAC,eACN5C,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAKwB,SAAS,EAAC;EAAgB,gBAC7BxC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,eAAA,CAAA6C,KAAK;IAACP,IAAI,EAAC;EAA+B,GACxC,UAACkB,UAAU;IAAA,oBACV5D,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,eAAA,CAAA6C,KAAK;MAACP,IAAI,EAAC,6BAA6B;MAACQ,QAAQ,EAAE,SAAAA,SAACN,KAAK;QAAA,OAAK,IAAAO,uBAAU,EAACP,KAAK,CAAC;MAAA;IAAC,GAC9E,UAACiB,QAAQ;MAAA,oBACR7D,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACP,GAAA,CAAAqD,aAAa;QACZT,EAAE,EAAC,qCAAqC;QACxCC,KAAK,EAAC,0BAA0B;QAChCS,UAAU,EAAEH,UAAW;QACvBI,cAAc,EAAC,YAAY;QAC3BC,QAAQ,EAAEJ,QAAS;QACnBK,YAAY,EAAC,UAAU;QACvBX,QAAQ;QACRY,KAAK,EAAE;UAAEC,SAAS,EAAE;YAAEC,KAAK,EAAE;UAAQ;QAAE;MAAE,CAC1C,CAAC;IAAA,CAEC,CAAC;EAAA,CAEL,CACJ,CACF,CACF,CAAC,EAEJlC,gBAAgB,iBAChBnC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAAAhB,MAAA,CAAAe,OAAA,CAAAwB,QAAA,qBACEvC,MAAA,CAAAe,OAAA,CAAAC,aAAA;IAAIwB,SAAS,EAAC;EAAM,CAAC,CAAC,eACtBxC,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACR,SAAA,CAAAO,OAAQ;IACPU,kBAAkB,EAAEA,kBAAmB;IACvCC,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA,WAAY;IACzB2C,YAAY,EAAE,SAAAA,aAAA,EAAI,CAAC,CAAE;IAAA;IACrBnC,gBAAgB,EAAEA;EAAiB,CACpC,CACD,CAEJ,CAAC;AAEP,CAAC;AAEDf,oBAAoB,CAACmD,SAAS,GAAG;EAC/B9C,kBAAkB,EAAE+C,kBAAS,CAACC,MAAM,CAACtB,UAAU;EAC/CzB,UAAU,EAAE8C,kBAAS,CAACC,MAAM,CAACtB;AAC/B,CAAC;AAAC,IAAAuB,QAAA,GAAAC,OAAA,CAAA5D,OAAA,GAEaK,oBAAoB"}
|
|
1
|
+
{"version":3,"file":"AuthorizationSubform.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactFinalForm","_pluralize","_feeSchedulePrograms","_validations","_CapsInfo","_ui","_CurrencyField","_DollarAmount","_LineItem","_validateUnitAmount","AuthFormLineItem","props","default","createElement","_extends2","fieldClassName","valueClassName","AuthorizationSubform","_ref","_formValues$paymentAu","_formValues$paymentAu2","_formValues$amount_re","feeScheduleProgram","formValues","assignReferralErrors","isCostBased","fspUtils","isCostPaymentType","payment_type","showUnits","unit","showRate","unit_rate","hasDatesSelected","paymentAuthForm","service_start","service_end","Fragment","className","field","name","PAYMENT_TYPES","value","convertCents","cap_information","dangerouslySetInnerHTML","__html","Field","validate","isRequired","validateUnitAmount","params","id","label","required","InputField","type","pluralize","amount_requested","startProps","endProps","DurationField","startField","startFieldPath","endField","endFieldPath","style","container","width","propTypes","PropTypes","object","func","_default","exports"],"sources":["../../../src/pages/builder/AuthorizationSubform.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Field } from 'react-final-form';\nimport pluralize from 'pluralize';\nimport fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';\nimport { isRequired } from '@unite-us/client-utils/dist/utils/validations/validations';\nimport CapsInfo from '../../components/service_authorization/CapsInfo';\nimport {\n DurationField,\n InputField,\n} from '@unite-us/ui';\nimport CurrencyField from '../../common/form/CurrencyField';\nimport DollarAmount from '../../components/DollarAmount';\nimport LineItem from './LineItem';\nimport validateUnitAmount from '../../utils/validateUnitAmount';\n\nconst AuthFormLineItem = (props) => (\n <LineItem\n fieldClassName=\"col-span-1 p-0 text-dark-grey\"\n valueClassName=\"col-span-2 m-0 p-0 text-dark-blue\"\n {...props}\n />\n);\n\nconst AuthorizationSubform = ({ feeScheduleProgram, formValues, assignReferralErrors }) => {\n const isCostBased = fspUtils.isCostPaymentType(feeScheduleProgram.payment_type);\n const showUnits = !isCostBased && feeScheduleProgram?.unit;\n const showRate = showUnits && feeScheduleProgram?.unit_rate > 0;\n const hasDatesSelected = !!(\n formValues?.paymentAuthForm?.service_start &&\n formValues?.paymentAuthForm?.service_end\n );\n\n return (\n <>\n <div className=\"space-y-6\">\n <h5 className=\"text-sm ui-form-field__label m-0\">\n AUTHORIZATION REQUEST\n </h5>\n <dl className=\"grid grid-cols-3 gap-x-6 gap-y-2\">\n <AuthFormLineItem field=\"Contracted Program\">\n {feeScheduleProgram.name}\n </AuthFormLineItem>\n <AuthFormLineItem field=\"Payment Approach\">\n {fspUtils.PAYMENT_TYPES[feeScheduleProgram.payment_type] || 'N/A'}\n </AuthFormLineItem>\n {showUnits && (\n <AuthFormLineItem field=\"Unit\">\n {feeScheduleProgram.unit}\n </AuthFormLineItem>\n )}\n {showRate && (\n <AuthFormLineItem field=\"Rate\">\n <DollarAmount value={feeScheduleProgram.unit_rate} convertCents />\n {' per '}\n {feeScheduleProgram.unit}\n </AuthFormLineItem>\n )}\n <AuthFormLineItem field=\"Program Cap\">\n {feeScheduleProgram.cap_information ? (\n <div dangerouslySetInnerHTML={{ __html: feeScheduleProgram.cap_information }} />\n ) : (\n 'No cap'\n )}\n </AuthFormLineItem>\n </dl>\n <hr className=\"p-0\" />\n <div className=\"grid grid-cols-3 gap-x-6\">\n <Field\n name=\"paymentAuthForm.amount_requested\"\n validate={(value) => {\n return isCostBased ? isRequired(value) : validateUnitAmount(value);\n }}\n >\n {(params) => (isCostBased ? (\n <CurrencyField\n className=\"col-span-1 p-0\"\n id=\"authorization-request-amount-requested\"\n label=\"Amount Requested\"\n required\n {...params}\n />\n ) : (\n <InputField\n className=\"col-span-1 p-0\"\n id=\"authorization-request-amount-requested\"\n label=\"Amount Requested\"\n type=\"number\"\n required\n {...params}\n />\n ))}\n </Field>\n <div className=\"col-span-2 p-0 space-y-2\">\n <div className=\"font-heavy-font text-dark-grey\">Unit</div>\n <div className=\"capitalize\">\n {isCostBased ? 'Dollars' :\n pluralize(\n feeScheduleProgram.unit || '',\n formValues?.amount_requested?.value || 0,\n )}\n </div>\n </div>\n <div className=\"col-span-1 p-0\">\n <Field name=\"paymentAuthForm.service_start\">\n {(startProps) => (\n <Field name=\"paymentAuthForm.service_end\" validate={(value) => isRequired(value)}>\n {(endProps) => (\n <DurationField\n id=\"authorization-request-service-dates\"\n label=\"Service Delivery Date(s)\"\n startField={startProps}\n startFieldPath=\"startField\"\n endField={endProps}\n endFieldPath=\"endField\"\n required\n style={{ container: { width: 'unset' } }}\n />\n )}\n </Field>\n )}\n </Field>\n </div>\n </div>\n </div>\n {\n hasDatesSelected &&\n <>\n <hr className=\"mb-6\"/>\n <CapsInfo\n feeScheduleProgram={feeScheduleProgram}\n formValues={formValues}\n isCostBased={isCostBased}\n assignReferralErrors={assignReferralErrors}\n />\n </>\n }\n </>\n );\n};\n\nAuthorizationSubform.propTypes = {\n feeScheduleProgram: PropTypes.object.isRequired,\n formValues: PropTypes.object.isRequired,\n assignReferralErrors: PropTypes.func.isRequired,\n};\n\nexport default AuthorizationSubform;\n"],"mappings":"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"}
|