@stssocialst-stp/fe-payroll 0.1.1 → 0.1.2

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/index.js CHANGED
@@ -12,6 +12,7 @@ var redux = require('redux');
12
12
  var reactRedux = require('react-redux');
13
13
  var styles$7 = require('@material-ui/styles');
14
14
  var DeleteIcon = require('@material-ui/icons/Delete');
15
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
15
16
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
16
17
  var _createClass = require('@babel/runtime/helpers/createClass');
17
18
  var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
@@ -21,7 +22,6 @@ var reactIntl = require('react-intl');
21
22
  var core = require('@material-ui/core');
22
23
  var styles$6 = require('@material-ui/core/styles');
23
24
  var AddIcon = require('@material-ui/icons/Add');
24
- var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
25
25
  var VisibilityIcon = require('@material-ui/icons/Visibility');
26
26
  var _debounce = require('lodash/debounce');
27
27
  var Button = require('@material-ui/core/Button');
@@ -38,7 +38,9 @@ var reactToPrint = require('react-to-print');
38
38
  var PrintIcon = require('@material-ui/icons/Print');
39
39
  var DialogContentText = require('@material-ui/core/DialogContentText');
40
40
  var PhotoCameraOutlinedIcon = require('@material-ui/icons/PhotoCameraOutlined');
41
+ var LinearProgress = require('@material-ui/core/LinearProgress');
41
42
  var DownloadIcon = require('@material-ui/icons/CloudDownload');
43
+ var Chip = require('@material-ui/core/Chip');
42
44
 
43
45
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
44
46
 
@@ -47,13 +49,13 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
47
49
  var MonetizationOnIcon__default = /*#__PURE__*/_interopDefaultLegacy(MonetizationOnIcon);
48
50
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
49
51
  var DeleteIcon__default = /*#__PURE__*/_interopDefaultLegacy(DeleteIcon);
52
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
50
53
  var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
51
54
  var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
52
55
  var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
53
56
  var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
54
57
  var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
55
58
  var AddIcon__default = /*#__PURE__*/_interopDefaultLegacy(AddIcon);
56
- var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
57
59
  var VisibilityIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityIcon);
58
60
  var _debounce__default = /*#__PURE__*/_interopDefaultLegacy(_debounce);
59
61
  var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
@@ -69,7 +71,9 @@ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
69
71
  var PrintIcon__default = /*#__PURE__*/_interopDefaultLegacy(PrintIcon);
70
72
  var DialogContentText__default = /*#__PURE__*/_interopDefaultLegacy(DialogContentText);
71
73
  var PhotoCameraOutlinedIcon__default = /*#__PURE__*/_interopDefaultLegacy(PhotoCameraOutlinedIcon);
74
+ var LinearProgress__default = /*#__PURE__*/_interopDefaultLegacy(LinearProgress);
72
75
  var DownloadIcon__default = /*#__PURE__*/_interopDefaultLegacy(DownloadIcon);
76
+ var Chip__default = /*#__PURE__*/_interopDefaultLegacy(Chip);
73
77
 
74
78
  // TODO: Change to proper rights after BE implementation
75
79
  var RIGHT_PAYROLL_SEARCH = 202001;
@@ -137,6 +141,11 @@ var PAYROLL_PAYMENT_FILE_STATUS = {
137
141
  };
138
142
  var BENEFIT_CONSUMPTION_STATUS_LIST = [BENEFIT_CONSUMPTION_STATUS.ACCEPTED, BENEFIT_CONSUMPTION_STATUS.CREATED, BENEFIT_CONSUMPTION_STATUS.APPROVE_FOR_PAYMENT, BENEFIT_CONSUMPTION_STATUS.REJECTED, BENEFIT_CONSUMPTION_STATUS.DUPLICATE, BENEFIT_CONSUMPTION_STATUS.RECONCILED];
139
143
  var PAYROLL_FROM_FAILED_INVOICES_URL_PARAM = 'createPayrollFromFailedInvoices=true';
144
+ var PAYMENT_METHOD = {
145
+ STRATEGY_OFFLINE_PAYMENT: 'StrategyOfflinePayment',
146
+ STRATEGY_ONLINE_PAYMENT: 'StrategyOnlinePayment',
147
+ STRATEGY_BISTP_PAYMENT: 'StrategyBistpPayment'
148
+ };
140
149
 
141
150
  var REQUEST = function REQUEST(actionTypeName) {
142
151
  return "".concat(actionTypeName, "_REQ");
@@ -699,7 +708,21 @@ var messages_en = {
699
708
  "payroll.additonalFields.label": "Additional Fields",
700
709
  "payroll.additonalFields.showAdditionalFields": "Show Additional Fields",
701
710
  "payroll.additonalFields.close": "Close",
702
- "payroll.summaryUpload": "Summary Upload"
711
+ "payroll.summaryUpload": "Summary Upload",
712
+ "payroll.benefitConsumption.nib": "NIB",
713
+ "payroll.bistp.viewSummary": "BISTP Payment Summary",
714
+ "payroll.bistp.submitPayment": "Submit BISTP Payment",
715
+ "payroll.bistp.reconciled": "Reconciled",
716
+ "payroll.bistp.pending": "Pending (Bank)",
717
+ "payroll.bistp.rejected": "Rejected",
718
+ "payroll.bistp.skippedNib": "Skipped (No NIB)",
719
+ "payroll.bistp.sendFailed": "Send Failed",
720
+ "payroll.bistp.status.reconciled": "Paid",
721
+ "payroll.bistp.status.rejected": "Rejected",
722
+ "payroll.bistp.status.pending": "Sent to Bank",
723
+ "payroll.bistp.status.skippedNib": "No NIB",
724
+ "payroll.bistp.status.sendFailed": "Send Failed",
725
+ "payroll.bistp.progress": "BISTP Progress"
703
726
  };
704
727
 
705
728
  // eslint-disable-next-line import/prefer-default-export
@@ -709,12 +732,11 @@ function isBase64Encoded(str) {
709
732
  return base64RegExp.test(str);
710
733
  }
711
734
 
712
- /* eslint-disable max-len */
713
735
  var PAYMENT_POINT_PROJECTION = function PAYMENT_POINT_PROJECTION(modulesManager) {
714
736
  return ['id', 'name', 'isDeleted', "location ".concat(modulesManager.getProjection('location.Location.FlatProjection')), "ppm ".concat(modulesManager.getProjection('admin.UserPicker.projection'))];
715
737
  };
716
738
  var BENEFIT_CONSUMPTION_PROJECTION = function BENEFIT_CONSUMPTION_PROJECTION() {
717
- return ['id', 'isDeleted', 'jsonExt', 'dateCreated', 'dateUpdated', 'dateValidFrom', 'dateValidTo', 'id', 'code', 'individual {firstName, lastName}', 'benefitAttachment {bill {id, code, terms, datePayed}}', 'receipt', 'photo', 'amount', 'type', 'status', 'dateDue'];
739
+ return ['id', 'isDeleted', 'jsonExt', 'dateCreated', 'dateUpdated', 'dateValidFrom', 'dateValidTo', 'id', 'code', 'individual {firstName, lastName, nib}', 'benefitAttachment {bill {id, code, terms, datePayed}}', 'receipt', 'photo', 'amount', 'type', 'status', 'dateDue'];
718
740
  };
719
741
  var PAYROLL_BENEFIT_CONSUMPTION_PROJECTION = function PAYROLL_BENEFIT_CONSUMPTION_PROJECTION() {
720
742
  return ['id',
@@ -727,13 +749,16 @@ var BENEFIT_CONSUMPTION_SUMMARY_PROJECTION = function BENEFIT_CONSUMPTION_SUMMAR
727
749
  var BENEFIT_ATTACHMENT_PROJECTION = function BENEFIT_ATTACHMENT_PROJECTION() {
728
750
  return ['benefit{id, status, code, dateDue, receipt, individual {firstName, lastName}, jsonExt, type, status, amount, receipt}', 'bill{id, code, terms, amountTotal, datePayed}'];
729
751
  };
752
+ var BISTP_SUMMARY_PROJECTION = function BISTP_SUMMARY_PROJECTION() {
753
+ return ['bistpSummary { total reconciled rejected pending skippedNib sendFailed }'];
754
+ };
730
755
  var PAYROLL_PROJECTION = function PAYROLL_PROJECTION(modulesManager) {
731
756
  return ['id', 'name', 'paymentMethod', 'paymentPlan { code, id, name, benefitPlan }', "paymentPoint { ".concat(PAYMENT_POINT_PROJECTION(modulesManager).join(' '), " }"), 'paymentCycle { code, startDate, endDate }',
732
757
  // eslint-disable-next-line max-len
733
- 'benefitConsumption{id, status, code, dateDue, receipt, individual {firstName, lastName}, benefitAttachment{bill{id, code, terms, amountTotal}}}', 'jsonExt', 'status', 'dateValidFrom', 'dateValidTo', 'isDeleted'];
758
+ 'benefitConsumption{id, status, code, dateDue, receipt, individual {firstName, lastName}, benefitAttachment{bill{id, code, terms, amountTotal}}}', 'jsonExt', 'status', 'dateValidFrom', 'dateValidTo', 'isDeleted'].concat(_toConsumableArray__default["default"](BISTP_SUMMARY_PROJECTION()));
734
759
  };
735
760
  var PAYROLL_SEARCHER_PROJECTION = function PAYROLL_SEARCHER_PROJECTION(modulesManager) {
736
- return ['id', 'name', 'paymentMethod', 'paymentPlan { code, id, name, benefitPlan }', "paymentPoint { ".concat(PAYMENT_POINT_PROJECTION(modulesManager).join(' '), " }"), 'paymentCycle { code, startDate, endDate }', 'jsonExt', 'status', 'dateValidFrom', 'dateValidTo', 'isDeleted'];
761
+ return ['id', 'name', 'paymentMethod', 'paymentPlan { code, id, name, benefitPlan }', "paymentPoint { ".concat(PAYMENT_POINT_PROJECTION(modulesManager).join(' '), " }"), 'paymentCycle { code, startDate, endDate }', 'jsonExt', 'status', 'dateValidFrom', 'dateValidTo', 'isDeleted'].concat(_toConsumableArray__default["default"](BISTP_SUMMARY_PROJECTION()));
737
762
  };
738
763
  var CSV_RECONCILIATION_PROJECTION = function CSV_RECONCILIATION_PROJECTION() {
739
764
  return ['fileName', 'status', 'error', 'jsonExt'];
@@ -2178,603 +2203,614 @@ var mapDispatchToProps$d = function mapDispatchToProps(dispatch) {
2178
2203
  };
2179
2204
  var PayrollPaymentDataUploadDialog$1 = reactIntl.injectIntl(styles$6.withTheme(styles$6.withStyles(styles$1)(reactRedux.connect(mapStateToProps$d, mapDispatchToProps$d)(PayrollPaymentDataUploadDialog))));
2180
2205
 
2181
- function downloadPayroll(payrollId, payrollFileName) {
2182
- var blank = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
2183
- var url = new URL("".concat(window.location.origin).concat(feCore.baseApiUrl, "/payroll/csv_reconciliation/"));
2184
- url.searchParams.append('payroll_id', payrollId);
2185
- url.searchParams.append('blank', blank);
2186
- url.searchParams.append('payroll_file_name', payrollFileName);
2187
- fetch(url).then(function (response) {
2188
- return response.blob();
2189
- }).then(function (blob) {
2190
- var link = document.createElement('a');
2191
- link.href = URL.createObjectURL(blob);
2192
- link.download = blank ? "reconciliation_".concat(payrollFileName, ".csv") : payrollFileName;
2193
- document.body.appendChild(link);
2194
- link.click();
2195
- document.body.removeChild(link);
2196
- })["catch"](function (error) {
2197
- // eslint-disable-next-line no-console
2198
- console.error('Export failed, reason: ', error);
2199
- });
2200
- }
2201
-
2202
2206
  var useStyles$b = styles$7.makeStyles(function (theme) {
2203
2207
  return {
2204
- paper: theme.paper.paper,
2205
- tableTitle: theme.table.title,
2206
- tabs: {
2207
- display: 'flex',
2208
- alignItems: 'center'
2209
- },
2210
- selectedTab: {
2211
- borderBottom: '4px solid white'
2212
- },
2213
- unselectedTab: {
2214
- borderBottom: '4px solid transparent'
2208
+ form: {
2209
+ padding: 0
2215
2210
  },
2216
- button: {
2217
- marginLeft: 'auto',
2218
- padding: theme.spacing(1),
2219
- fontSize: '0.875rem',
2220
- textTransform: 'none'
2211
+ item: {
2212
+ padding: theme.spacing(1)
2221
2213
  }
2222
2214
  };
2223
2215
  });
2224
- function PayrollTab(_ref) {
2225
- var rights = _ref.rights,
2226
- setConfirmedAction = _ref.setConfirmedAction,
2227
- payrollUuid = _ref.payrollUuid,
2228
- isInTask = _ref.isInTask,
2229
- payroll = _ref.payroll,
2230
- isPayrollFromFailedInvoices = _ref.isPayrollFromFailedInvoices;
2216
+ function BenefitConsumptionFilterModal(_ref) {
2217
+ var filters = _ref.filters,
2218
+ onChangeFilters = _ref.onChangeFilters;
2219
+ var modulesManager = feCore.useModulesManager();
2231
2220
  var classes = useStyles$b();
2232
- var _useState = React.useState(BENEFIT_CONSUMPTION_LIST_TAB_VALUE),
2233
- _useState2 = _slicedToArray__default["default"](_useState, 2),
2234
- activeTab = _useState2[0],
2235
- setActiveTab = _useState2[1];
2236
- var isSelected = function isSelected(tab) {
2237
- return tab === activeTab;
2221
+ var _useTranslations = feCore.useTranslations('payroll', modulesManager),
2222
+ formatMessage = _useTranslations.formatMessage;
2223
+ var debouncedOnChangeFilters = _debounce__default["default"](onChangeFilters, DEFAULT_DEBOUNCE_TIME);
2224
+ var filterTextFieldValue = function filterTextFieldValue(filterName) {
2225
+ var _filters$filterName$v, _filters$filterName;
2226
+ return (_filters$filterName$v = filters === null || filters === void 0 || (_filters$filterName = filters[filterName]) === null || _filters$filterName === void 0 ? void 0 : _filters$filterName.value) !== null && _filters$filterName$v !== void 0 ? _filters$filterName$v : EMPTY_STRING;
2238
2227
  };
2239
- var tabStyle = function tabStyle(tab) {
2240
- return isSelected(tab) ? classes.selectedTab : classes.unselectedTab;
2228
+ var filterValue = function filterValue(filterName) {
2229
+ var _filters$filterName$v2, _filters$filterName2;
2230
+ return (_filters$filterName$v2 = filters === null || filters === void 0 || (_filters$filterName2 = filters[filterName]) === null || _filters$filterName2 === void 0 ? void 0 : _filters$filterName2.value) !== null && _filters$filterName$v2 !== void 0 ? _filters$filterName$v2 : null;
2241
2231
  };
2242
- var handleChange = function handleChange(_, tab) {
2243
- return setActiveTab(tab);
2232
+ var onChangeFilter = function onChangeFilter(filterName) {
2233
+ return function (value) {
2234
+ debouncedOnChangeFilters([{
2235
+ id: filterName,
2236
+ value: value || null,
2237
+ filter: "".concat(filterName, ": ").concat(value)
2238
+ }]);
2239
+ };
2244
2240
  };
2245
- var modulesManager = feCore.useModulesManager();
2246
- var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
2247
- formatMessage = _useTranslations.formatMessage;
2248
- var downloadPayrollData = function downloadPayrollData(payrollUuid, payrollName) {
2249
- downloadPayroll(payrollUuid, payrollName);
2241
+ var onChangeStringFilter = function onChangeStringFilter(filterName) {
2242
+ var lookup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2243
+ return function (value) {
2244
+ if (lookup) {
2245
+ debouncedOnChangeFilters([{
2246
+ id: filterName,
2247
+ value: value,
2248
+ filter: "".concat(filterName, "_").concat(lookup, ": \"").concat(value, "\"")
2249
+ }]);
2250
+ } else {
2251
+ debouncedOnChangeFilters([{
2252
+ id: filterName,
2253
+ value: value,
2254
+ filter: "".concat(filterName, ": \"").concat(value, "\"")
2255
+ }]);
2256
+ }
2257
+ };
2250
2258
  };
2251
- return /*#__PURE__*/React__default["default"].createElement(core.Paper, {
2252
- className: classes.paper
2253
- }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2259
+ return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2254
2260
  container: true,
2255
- className: "".concat(classes.tableTitle, " ").concat(classes.tabs)
2256
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2257
- style: {
2258
- width: '100%'
2259
- }
2260
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2261
- style: {
2262
- "float": 'left'
2263
- }
2264
- }, /*#__PURE__*/React__default["default"].createElement(feCore.Contributions, {
2265
- contributionKey: PAYROLL_TABS_LABEL_CONTRIBUTION_KEY,
2266
- rights: rights,
2267
- value: activeTab,
2268
- onChange: handleChange,
2269
- isSelected: isSelected,
2270
- tabStyle: tabStyle,
2271
- payrollUuid: payrollUuid,
2272
- isInTask: isInTask,
2273
- isPayrollFromFailedInvoices: isPayrollFromFailedInvoices
2274
- })), /*#__PURE__*/React__default["default"].createElement("div", {
2275
- style: {
2276
- "float": 'right',
2277
- paddingRight: '16px'
2261
+ className: classes.form
2262
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2263
+ item: true,
2264
+ xs: 2,
2265
+ className: classes.item
2266
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2267
+ module: "payroll",
2268
+ label: "benefitConsumption.individual.firstName",
2269
+ value: filterTextFieldValue('benefit_Individual_FirstName'),
2270
+ onChange: onChangeStringFilter('benefit_Individual_FirstName', CONTAINS_LOOKUP)
2271
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2272
+ item: true,
2273
+ xs: 2,
2274
+ className: classes.item
2275
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2276
+ module: "payroll",
2277
+ label: "benefitConsumption.individual.lastName",
2278
+ value: filterTextFieldValue('benefit_Individual_LastName'),
2279
+ onChange: onChangeStringFilter('benefit_Individual_LastName', CONTAINS_LOOKUP)
2280
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2281
+ item: true,
2282
+ xs: 2,
2283
+ className: classes.item
2284
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.NumberInput, {
2285
+ module: "payroll",
2286
+ label: formatMessage('benefitConsumption.amount'),
2287
+ min: 0,
2288
+ value: filterValue('bill_AmountTotal'),
2289
+ onChange: onChangeFilter('bill_AmountTotal')
2290
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2291
+ item: true,
2292
+ xs: 2,
2293
+ className: classes.item
2294
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2295
+ module: "payroll",
2296
+ label: "benefitConsumption.receipt",
2297
+ value: filterTextFieldValue('benefit_Receipt'),
2298
+ onChange: onChangeStringFilter('benefit_Receipt', CONTAINS_LOOKUP)
2299
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2300
+ item: true,
2301
+ xs: 2,
2302
+ className: classes.item
2303
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
2304
+ pubRef: "core.DatePicker",
2305
+ module: "payroll",
2306
+ label: formatMessage('benefitConsumption.dateDue'),
2307
+ value: filterValue('benefit_DateDue'),
2308
+ onChange: function onChange(v) {
2309
+ return onChangeFilters([{
2310
+ id: 'benefit_DateDue',
2311
+ value: v,
2312
+ filter: "benefit_DateDue: \"".concat(v, "\"")
2313
+ }]);
2278
2314
  }
2279
- }, payrollUuid && !isPayrollFromFailedInvoices && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2280
- onClick: function onClick() {
2281
- return downloadPayrollData(payrollUuid, payroll.name);
2282
- },
2283
- color: "#DFEDEF",
2284
- className: classes.button,
2285
- style: {
2286
- border: '0px',
2287
- marginTop: '6px',
2288
- textTransform: 'uppercase'
2315
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2316
+ item: true,
2317
+ xs: 2,
2318
+ className: classes.item
2319
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
2320
+ pubRef: "core.DatePicker",
2321
+ module: "payroll",
2322
+ label: formatMessage('benefitConsumption.paymentDate'),
2323
+ value: filterValue('bill_DatePayed_Gte'),
2324
+ onChange: function onChange(v) {
2325
+ return onChangeFilters([{
2326
+ id: 'bill_DatePayed_Gte',
2327
+ value: v,
2328
+ filter: "bill_DatePayed_Gte: \"".concat(v, "\"")
2329
+ }]);
2289
2330
  }
2290
- }, formatMessage('payroll.summary.download')), payrollUuid && (payroll === null || payroll === void 0 ? void 0 : payroll.status) === PAYROLL_STATUS.APPROVE_FOR_PAYMENT && payroll.paymentMethod === 'StrategyOfflinePayment' && /*#__PURE__*/React__default["default"].createElement(PayrollPaymentDataUploadDialog$1, {
2291
- payrollUuid: payrollUuid
2292
- })))), /*#__PURE__*/React__default["default"].createElement(feCore.Contributions, {
2293
- contributionKey: PAYROLL_TABS_PANEL_CONTRIBUTION_KEY,
2294
- rights: rights,
2295
- value: activeTab,
2296
- setConfirmedAction: setConfirmedAction,
2297
- payrollUuid: payrollUuid,
2298
- isInTask: isInTask,
2299
- isPayrollFromFailedInvoices: isPayrollFromFailedInvoices
2300
- }));
2331
+ })));
2301
2332
  }
2302
2333
 
2303
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2304
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2305
- var useStyles$a = styles$7.makeStyles(function (theme) {
2306
- return {
2307
- page: theme.page
2308
- };
2309
- });
2310
- function PayrollPage(_ref) {
2311
- var statePayrollUuid = _ref.statePayrollUuid,
2312
- taskPayrollUuid = _ref.taskPayrollUuid,
2313
- rights = _ref.rights,
2314
- confirmed = _ref.confirmed,
2315
- submittingMutation = _ref.submittingMutation,
2316
- mutation = _ref.mutation,
2317
- payroll = _ref.payroll,
2318
- fetchPayroll = _ref.fetchPayroll,
2319
- createPayroll = _ref.createPayroll,
2320
- clearPayroll = _ref.clearPayroll,
2321
- clearConfirm = _ref.clearConfirm,
2322
- createPayrollFromFailedInvoices = _ref.createPayrollFromFailedInvoices,
2323
- journalize = _ref.journalize,
2324
- benefitPlanId = _ref.benefitPlanId;
2334
+ function ErrorSummaryModal(_ref) {
2335
+ var _benefitAttachment$be;
2336
+ var open = _ref.open,
2337
+ onClose = _ref.onClose,
2338
+ benefitAttachment = _ref.benefitAttachment;
2325
2339
  var modulesManager = feCore.useModulesManager();
2326
- var classes = useStyles$a();
2327
- var history = feCore.useHistory();
2328
- var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
2329
- formatMessage = _useTranslations.formatMessage,
2330
- formatMessageWithValues = _useTranslations.formatMessageWithValues;
2331
- var _useState = React.useState({}),
2340
+ var _useTranslations = feCore.useTranslations('payroll', modulesManager),
2341
+ formatMessage = _useTranslations.formatMessage;
2342
+ var jsonExt = benefitAttachment !== null && benefitAttachment !== void 0 && (_benefitAttachment$be = benefitAttachment.benefit) !== null && _benefitAttachment$be !== void 0 && _benefitAttachment$be.jsonExt ? JSON.parse(benefitAttachment.benefit.jsonExt) : {};
2343
+ var outputGateway = "".concat(jsonExt === null || jsonExt === void 0 ? void 0 : jsonExt.output_gateway);
2344
+ return /*#__PURE__*/React__default["default"].createElement(core.Modal, {
2345
+ open: open,
2346
+ onClose: onClose,
2347
+ closeAfterTransition: true,
2348
+ BackdropComponent: core.Backdrop,
2349
+ BackdropProps: {
2350
+ timeout: 500
2351
+ }
2352
+ }, /*#__PURE__*/React__default["default"].createElement(core.Fade, {
2353
+ "in": open
2354
+ }, /*#__PURE__*/React__default["default"].createElement(core.Box, {
2355
+ p: 4,
2356
+ style: {
2357
+ backgroundColor: 'white',
2358
+ margin: 'auto',
2359
+ maxWidth: 400,
2360
+ outline: 'none'
2361
+ }
2362
+ }, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
2363
+ variant: "h6"
2364
+ }, formatMessage('payroll.errorSummary.title')), outputGateway === null || outputGateway === 'undefined' ? /*#__PURE__*/React__default["default"].createElement(core.Typography, null, formatMessage('payroll.errorSummary.outputGateway.noInfo')) : /*#__PURE__*/React__default["default"].createElement(core.Typography, null, outputGateway), /*#__PURE__*/React__default["default"].createElement(core.Box, {
2365
+ display: "flex",
2366
+ justifyContent: "center",
2367
+ mt: 2
2368
+ }, /*#__PURE__*/React__default["default"].createElement(core.Button, {
2369
+ onClick: onClose,
2370
+ variant: "contained",
2371
+ color: "primary"
2372
+ }, formatMessage('payroll.errorSummary.close'))))));
2373
+ }
2374
+
2375
+ var styles = function styles(theme) {
2376
+ return {
2377
+ item: theme.paper.item
2378
+ };
2379
+ };
2380
+ function AdditionalFieldsDialog(_ref) {
2381
+ var intl = _ref.intl,
2382
+ classes = _ref.classes,
2383
+ jsonExt = _ref.jsonExt,
2384
+ buttonLabel = _ref.buttonLabel,
2385
+ title = _ref.title;
2386
+ // eslint-disable-next-line no-param-reassign
2387
+ if (!jsonExt) jsonExt = '{}';
2388
+ var _useState = React.useState(false),
2332
2389
  _useState2 = _slicedToArray__default["default"](_useState, 2),
2333
- editedPayroll = _useState2[0],
2334
- setEditedPayroll = _useState2[1];
2335
- var _useState3 = React.useState(null),
2336
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
2337
- payrollUuid = _useState4[0],
2338
- setPayrollUuid = _useState4[1];
2339
- var _useState5 = React.useState(false),
2340
- _useState6 = _slicedToArray__default["default"](_useState5, 2),
2341
- isInTask = _useState6[0],
2342
- setIsInTask = _useState6[1];
2343
- var _useState7 = React.useState(false),
2344
- _useState8 = _slicedToArray__default["default"](_useState7, 2),
2345
- readOnly = _useState8[0],
2346
- setReadOnly = _useState8[1];
2347
- var _useState9 = React.useState(false),
2348
- _useState0 = _slicedToArray__default["default"](_useState9, 2),
2349
- isPayrollFromFailedInvoices = _useState0[0],
2350
- setIsPayrollFromFailedInvoices = _useState0[1];
2351
- var _useState1 = React.useState(function () {
2352
- return null;
2353
- }),
2354
- _useState10 = _slicedToArray__default["default"](_useState1, 2),
2355
- confirmedAction = _useState10[0],
2356
- setConfirmedAction = _useState10[1];
2357
- var prevSubmittingMutationRef = React.useRef();
2358
- var back = function back() {
2359
- return history.goBack();
2390
+ isOpen = _useState2[0],
2391
+ setIsOpen = _useState2[1];
2392
+ var handleOpen = function handleOpen() {
2393
+ setIsOpen(true);
2360
2394
  };
2361
- React.useEffect(function () {
2362
- if (createPayrollFromFailedInvoices === PAYROLL_FROM_FAILED_INVOICES_URL_PARAM) {
2363
- setIsPayrollFromFailedInvoices(true);
2364
- }
2365
- }, [createPayrollFromFailedInvoices, payrollUuid]);
2366
- React.useEffect(function () {
2367
- setPayrollUuid(statePayrollUuid !== null && statePayrollUuid !== void 0 ? statePayrollUuid : taskPayrollUuid);
2368
- setIsInTask(!!taskPayrollUuid);
2369
- }, [taskPayrollUuid, statePayrollUuid]);
2370
- React.useEffect(function () {
2371
- if (payrollUuid) {
2372
- fetchPayroll(modulesManager, ["id: \"".concat(payrollUuid, "\"")]);
2395
+ var handleClose = function handleClose() {
2396
+ setIsOpen(false);
2397
+ };
2398
+ var jsonExtFields = feCore.createFieldsBasedOnJSON(JSON.stringify(JSON.parse(jsonExt).extra_info));
2399
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2400
+ onClick: handleOpen,
2401
+ variant: "outlined",
2402
+ color: "#DFEDEF",
2403
+ className: classes.button,
2404
+ style: {
2405
+ border: '0px',
2406
+ marginTop: '6px'
2373
2407
  }
2374
- }, [payrollUuid]);
2375
- React.useEffect(function () {
2376
- if (confirmed && typeof confirmed === 'function') confirmedAction();
2377
- return function () {
2378
- return confirmed && clearConfirm(null);
2379
- };
2380
- }, [confirmed]);
2381
- React.useEffect(function () {
2382
- if (prevSubmittingMutationRef.current && !submittingMutation) {
2383
- journalize(mutation);
2384
- if ((mutation === null || mutation === void 0 ? void 0 : mutation.actionType) === ACTION_TYPE.DELETE_PAYROLL) {
2385
- back();
2386
- }
2387
- if (mutation !== null && mutation !== void 0 && mutation.clientMutationId && (!payrollUuid || isPayrollFromFailedInvoices)) {
2388
- fetchPayroll(modulesManager, ["clientMutationId: \"".concat(mutation.clientMutationId, "\"")]);
2389
- setIsPayrollFromFailedInvoices(false);
2408
+ }, feCore.formatMessage(intl, 'payroll', buttonLabel)), /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
2409
+ open: isOpen,
2410
+ onClose: handleClose,
2411
+ PaperProps: {
2412
+ style: {
2413
+ width: 1200,
2414
+ maxWidth: 1200,
2415
+ maxHeight: 900
2390
2416
  }
2391
2417
  }
2392
- }, [submittingMutation]);
2393
- React.useEffect(function () {
2394
- prevSubmittingMutationRef.current = submittingMutation;
2395
- });
2396
- React.useEffect(function () {
2397
- if (payroll) {
2398
- setReadOnly(payroll === null || payroll === void 0 ? void 0 : payroll.id);
2399
- if (isPayrollFromFailedInvoices) {
2400
- setEditedPayroll(_objectSpread$1(_objectSpread$1({}, payroll), {}, {
2401
- id: null,
2402
- name: null,
2403
- paymentCycle: null,
2404
- status: null,
2405
- fromFailedInvoicesPayrollId: payroll === null || payroll === void 0 ? void 0 : payroll.id
2406
- }));
2407
- } else {
2408
- setEditedPayroll(payroll);
2409
- }
2410
- if (!payrollUuid && payroll !== null && payroll !== void 0 && payroll.id && !isPayrollFromFailedInvoices) {
2411
- var payrollRouteRef = modulesManager.getRef('payroll.route.payroll');
2412
- history.replace("/".concat(payrollRouteRef, "/").concat(payroll.id));
2413
- }
2418
+ }, /*#__PURE__*/React__default["default"].createElement("form", {
2419
+ noValidate: true
2420
+ }, /*#__PURE__*/React__default["default"].createElement(DialogTitle__default["default"], {
2421
+ style: {
2422
+ marginTop: '10px'
2414
2423
  }
2415
- }, [payroll]);
2416
- React.useEffect(function () {
2417
- return function () {
2418
- return clearPayroll();
2419
- };
2420
- }, []);
2421
- var mandatoryFieldsEmpty = function mandatoryFieldsEmpty() {
2422
- if (editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.name && editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.paymentPlan && editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.paymentCycle && editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.paymentMethod && !(editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.isDeleted)) return false;
2423
- return true;
2424
- };
2425
- var canSave = function canSave() {
2426
- return !mandatoryFieldsEmpty() && (!readOnly || isPayrollFromFailedInvoices);
2427
- };
2428
- var handleSave = function handleSave() {
2429
- createPayroll(editedPayroll, formatMessageWithValues('payroll.mutation.create', mutationLabel(payroll)));
2430
- if (benefitPlanId) {
2431
- back();
2424
+ }, feCore.formatMessage(intl, 'payroll', title)), /*#__PURE__*/React__default["default"].createElement(DialogContent__default["default"], null, /*#__PURE__*/React__default["default"].createElement("div", {
2425
+ style: {
2426
+ backgroundColor: '#DFEDEF',
2427
+ paddingLeft: '10px',
2428
+ paddingBottom: '10px'
2432
2429
  }
2433
- };
2434
- var actions = [];
2435
- return rights.includes(RIGHT_PAYROLL_CREATE) && /*#__PURE__*/React__default["default"].createElement("div", {
2436
- className: classes.page
2437
- }, /*#__PURE__*/React__default["default"].createElement(feCore.Form, {
2438
- key: payrollUuid,
2439
- module: "payroll",
2440
- title: formatMessageWithValues('payrollPage.title', pageTitle(payroll)),
2441
- titleParams: pageTitle(payroll),
2442
- openDirty: isPayrollFromFailedInvoices ? true : !payrollUuid,
2443
- benefitPlan: editedPayroll,
2444
- edited: editedPayroll,
2445
- onEditedChanged: setEditedPayroll,
2446
- back: !isInTask && back,
2447
- mandatoryFieldsEmpty: mandatoryFieldsEmpty,
2448
- canSave: canSave,
2449
- save: handleSave,
2450
- HeadPanel: PayrollHeadPanel$1,
2451
- Panels: [PayrollTab],
2452
- rights: rights,
2453
- actions: actions,
2454
- setConfirmedAction: setConfirmedAction,
2455
- payrollUuid: payrollUuid,
2456
- saveTooltip: formatMessage('tooltip.save'),
2457
- isInTask: !!taskPayrollUuid,
2458
- payroll: payroll,
2459
- readOnly: readOnly,
2460
- isPayrollFromFailedInvoices: isPayrollFromFailedInvoices,
2461
- benefitPlanId: benefitPlanId
2462
- }));
2430
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2431
+ container: true,
2432
+ className: classes.item
2433
+ }, jsonExtFields === null || jsonExtFields === void 0 ? void 0 : jsonExtFields.map(function (jsonExtField) {
2434
+ return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2435
+ item: true,
2436
+ xs: 6,
2437
+ className: classes.item
2438
+ }, feCore.renderInputComponent(MODULE_NAME, jsonExtField));
2439
+ })))), /*#__PURE__*/React__default["default"].createElement(DialogActions__default["default"], {
2440
+ style: {
2441
+ display: 'inline',
2442
+ paddingLeft: '10px',
2443
+ marginTop: '25px',
2444
+ marginBottom: '15px'
2445
+ }
2446
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2447
+ style: {
2448
+ maxWidth: '1000px'
2449
+ }
2450
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2451
+ style: {
2452
+ "float": 'left'
2453
+ }
2454
+ }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2455
+ onClick: handleClose,
2456
+ variant: "outlined",
2457
+ autoFocus: true,
2458
+ style: {
2459
+ margin: '0 16px',
2460
+ marginBottom: '15px'
2461
+ }
2462
+ }, feCore.formatMessage(intl, 'payroll', 'payroll.additonalFields.close'))), /*#__PURE__*/React__default["default"].createElement("div", {
2463
+ style: {
2464
+ "float": 'right',
2465
+ paddingRight: '16px'
2466
+ }
2467
+ }))))));
2463
2468
  }
2464
- var mapDispatchToProps$c = function mapDispatchToProps(dispatch) {
2465
- return redux.bindActionCreators({
2466
- fetchPayroll: fetchPayroll,
2467
- createPayroll: createPayroll,
2468
- clearPayroll: clearPayroll,
2469
- coreConfirm: feCore.coreConfirm,
2470
- clearConfirm: feCore.clearConfirm,
2471
- journalize: feCore.journalize
2472
- }, dispatch);
2473
- };
2474
- var mapStateToProps$c = function mapStateToProps(state, props) {
2475
- var _props$match, _props$match2, _props$match3, _props$match4, _state$core$user$i_us, _state$core;
2469
+ var mapStateToProps$c = function mapStateToProps(state) {
2476
2470
  return {
2477
- statePayrollUuid: (props === null || props === void 0 || (_props$match = props.match) === null || _props$match === void 0 || (_props$match = _props$match.params) === null || _props$match === void 0 ? void 0 : _props$match.payroll_uuid) === 'null' ? null : props === null || props === void 0 || (_props$match2 = props.match) === null || _props$match2 === void 0 ? void 0 : _props$match2.params.payroll_uuid,
2478
- createPayrollFromFailedInvoices: props === null || props === void 0 || (_props$match3 = props.match) === null || _props$match3 === void 0 || (_props$match3 = _props$match3.params) === null || _props$match3 === void 0 ? void 0 : _props$match3.createPayrollFromFailedInvoices,
2479
- benefitPlanId: props === null || props === void 0 || (_props$match4 = props.match) === null || _props$match4 === void 0 || (_props$match4 = _props$match4.params) === null || _props$match4 === void 0 ? void 0 : _props$match4.benefitPlanId,
2480
- rights: (_state$core$user$i_us = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.user) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$user$i_us !== void 0 ? _state$core$user$i_us : [],
2481
- confirmed: state.core.confirmed,
2482
- submittingMutation: state.payroll.submittingMutation,
2483
- mutation: state.payroll.mutation,
2484
- payroll: state.payroll.payroll
2471
+ rights: !!state.core && !!state.core.user && !!state.core.user.i_user ? state.core.user.i_user.rights : []
2485
2472
  };
2486
2473
  };
2487
- var PayrollPage$1 = reactRedux.connect(mapStateToProps$c, mapDispatchToProps$c)(PayrollPage);
2474
+ var mapDispatchToProps$c = function mapDispatchToProps(dispatch) {
2475
+ return redux.bindActionCreators({}, dispatch);
2476
+ };
2477
+ var AdditionalFieldsDialog$1 = reactIntl.injectIntl(styles$6.withTheme(styles$6.withStyles(styles)(reactRedux.connect(mapStateToProps$c, mapDispatchToProps$c)(AdditionalFieldsDialog))));
2488
2478
 
2489
- var useStyles$9 = styles$7.makeStyles(function (theme) {
2479
+ /* eslint-disable max-len */
2480
+ var useStyles$a = styles$7.makeStyles(function () {
2490
2481
  return {
2491
- form: {
2492
- padding: '0 0 10px 0',
2482
+ topHeader: {
2483
+ display: 'flex',
2484
+ justifyContent: 'start',
2485
+ alignItems: 'center',
2486
+ width: '100%',
2487
+ '& img': {
2488
+ minWidth: '250px',
2489
+ maxWidth: '300px',
2490
+ width: 'auto',
2491
+ height: 'auto'
2492
+ }
2493
+ },
2494
+ printContainer: {
2495
+ display: 'flex',
2496
+ flexDirection: 'column',
2497
+ alignItems: 'center',
2498
+ justifyContent: 'center',
2499
+ padding: '20px',
2500
+ fontWeight: '500'
2501
+ },
2502
+ date: {
2503
+ fontSize: '16px'
2504
+ },
2505
+ detailsContainer: {
2506
+ display: 'flex',
2507
+ flexDirection: 'column',
2508
+ padding: '12px',
2493
2509
  width: '100%'
2494
2510
  },
2495
- item: {
2496
- padding: theme.spacing(1)
2511
+ detailRow: {
2512
+ display: 'flex',
2513
+ flexDirection: 'row',
2514
+ alignItems: 'center',
2515
+ justifyContent: 'space-between',
2516
+ padding: '4px'
2517
+ },
2518
+ detailName: {
2519
+ fontWeight: '600',
2520
+ fontSize: '16px',
2521
+ textTransform: 'uppercase'
2522
+ },
2523
+ detailValue: {
2524
+ fontWeight: '500',
2525
+ backgroundColor: '#f5f5f5',
2526
+ padding: '6px',
2527
+ borderRadius: '8px',
2528
+ fontSize: '15px'
2529
+ },
2530
+ containerPadding: {
2531
+ padding: '32px'
2532
+ },
2533
+ dividerMargin: {
2534
+ margin: '12px 0'
2535
+ },
2536
+ sectionTitle: {
2537
+ fontWeight: '700',
2538
+ fontSize: '18px',
2539
+ textTransform: 'uppercase',
2540
+ marginBottom: '12px'
2497
2541
  }
2498
2542
  };
2499
2543
  });
2500
- function PayrollFilter(_ref) {
2501
- var _filters$isDeleted;
2502
- var filters = _ref.filters,
2503
- onChangeFilters = _ref.onChangeFilters,
2504
- _ref$statusReadOnly = _ref.statusReadOnly,
2505
- statusReadOnly = _ref$statusReadOnly === void 0 ? false : _ref$statusReadOnly;
2506
- var classes = useStyles$9();
2544
+ var PayrollBenefitPrintTemplate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2545
+ var benefitAttachments = _ref.benefitAttachments;
2546
+ if (!benefitAttachments) return null;
2547
+ var classes = useStyles$a();
2507
2548
  var modulesManager = feCore.useModulesManager();
2508
- var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
2549
+ var _useTranslations = feCore.useTranslations(modulesManager, MODULE_NAME),
2509
2550
  formatMessage = _useTranslations.formatMessage;
2510
- var debouncedOnChangeFilters = _debounce__default["default"](onChangeFilters, DEFAULT_DEBOUNCE_TIME);
2511
- var filterTextFieldValue = function filterTextFieldValue(filterName) {
2512
- var _filters$filterName$v, _filters$filterName;
2513
- return (_filters$filterName$v = filters === null || filters === void 0 || (_filters$filterName = filters[filterName]) === null || _filters$filterName === void 0 ? void 0 : _filters$filterName.value) !== null && _filters$filterName$v !== void 0 ? _filters$filterName$v : EMPTY_STRING;
2514
- };
2515
- var filterValue = function filterValue(filterName) {
2516
- var _filters$filterName$v2, _filters$filterName2;
2517
- return (_filters$filterName$v2 = filters === null || filters === void 0 || (_filters$filterName2 = filters[filterName]) === null || _filters$filterName2 === void 0 ? void 0 : _filters$filterName2.value) !== null && _filters$filterName$v2 !== void 0 ? _filters$filterName$v2 : null;
2551
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2552
+ ref: ref,
2553
+ className: classes.printContainer
2554
+ }, benefitAttachments.map(function (benefitAttachment, index) {
2555
+ var _benefitAttachment$bi;
2556
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2557
+ key: index,
2558
+ className: classes.detailsContainer
2559
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2560
+ className: classes.sectionTitle
2561
+ }, "Payment: ".concat(benefitAttachment.benefit.code, " - ").concat(benefitAttachment.benefit.individual.firstName, ", ").concat(benefitAttachment.benefit.individual.lastName)), /*#__PURE__*/React__default["default"].createElement("div", {
2562
+ className: classes.detailRow
2563
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2564
+ className: classes.detailName
2565
+ }, formatMessage('payroll.benefitConsumption.individual.firstName')), /*#__PURE__*/React__default["default"].createElement("div", {
2566
+ className: classes.detailValue
2567
+ }, benefitAttachment.benefit.individual.firstName)), /*#__PURE__*/React__default["default"].createElement("div", {
2568
+ className: classes.detailRow
2569
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2570
+ className: classes.detailName
2571
+ }, formatMessage('payroll.benefitConsumption.individual.lastName')), /*#__PURE__*/React__default["default"].createElement("div", {
2572
+ className: classes.detailValue
2573
+ }, benefitAttachment.benefit.individual.lastName)), /*#__PURE__*/React__default["default"].createElement("div", {
2574
+ className: classes.detailRow
2575
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2576
+ className: classes.detailName
2577
+ }, formatMessage('payroll.benefitConsumption.code')), /*#__PURE__*/React__default["default"].createElement("div", {
2578
+ className: classes.detailValue
2579
+ }, benefitAttachment.benefit.code)), /*#__PURE__*/React__default["default"].createElement("div", {
2580
+ className: classes.detailRow
2581
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2582
+ className: classes.detailName
2583
+ }, formatMessage('payroll.benefitConsumption.dateDue')), /*#__PURE__*/React__default["default"].createElement("div", {
2584
+ className: classes.detailValue
2585
+ }, benefitAttachment.benefit.dateDue)), /*#__PURE__*/React__default["default"].createElement("div", {
2586
+ className: classes.detailRow
2587
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2588
+ className: classes.detailName
2589
+ }, formatMessage('payroll.benefitConsumption.receipt')), /*#__PURE__*/React__default["default"].createElement("div", {
2590
+ className: classes.detailValue
2591
+ }, benefitAttachment.benefit.receipt)), /*#__PURE__*/React__default["default"].createElement("div", {
2592
+ className: classes.detailRow
2593
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2594
+ className: classes.detailName
2595
+ }, formatMessage('payroll.benefitConsumption.amount')), /*#__PURE__*/React__default["default"].createElement("div", {
2596
+ className: classes.detailValue
2597
+ }, benefitAttachment.benefit.amount)), /*#__PURE__*/React__default["default"].createElement("div", {
2598
+ className: classes.detailRow
2599
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2600
+ className: classes.detailName
2601
+ }, formatMessage('payroll.benefitConsumption.type')), /*#__PURE__*/React__default["default"].createElement("div", {
2602
+ className: classes.detailValue
2603
+ }, benefitAttachment.benefit.type)), /*#__PURE__*/React__default["default"].createElement("div", {
2604
+ className: classes.detailRow
2605
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2606
+ className: classes.detailName
2607
+ }, formatMessage('payroll.benefitConsumption.status')), /*#__PURE__*/React__default["default"].createElement("div", {
2608
+ className: classes.detailValue
2609
+ }, benefitAttachment.benefit.status)), /*#__PURE__*/React__default["default"].createElement("div", {
2610
+ className: classes.detailRow
2611
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2612
+ className: classes.detailName
2613
+ }, formatMessage('payroll.benefitConsumption.payedOnTime')), /*#__PURE__*/React__default["default"].createElement("div", {
2614
+ className: classes.detailValue
2615
+ }, benefitAttachment.benefit.payedOnTime ? 'Yes' : 'No')), /*#__PURE__*/React__default["default"].createElement("div", {
2616
+ className: classes.detailRow
2617
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2618
+ className: classes.detailName
2619
+ }, formatMessage('payroll.benefitConsumption.paymentDate')), /*#__PURE__*/React__default["default"].createElement("div", {
2620
+ className: classes.detailValue
2621
+ }, !benefitAttachment.benefit.receipt ? '' : benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$bi = benefitAttachment.bill) === null || _benefitAttachment$bi === void 0 ? void 0 : _benefitAttachment$bi.datePayed)), /*#__PURE__*/React__default["default"].createElement(core.Divider, {
2622
+ className: classes.dividerMargin
2623
+ }));
2624
+ }));
2625
+ });
2626
+
2627
+ function BenefitConsumptionSearcherModal(_ref) {
2628
+ var fetchBenefitAttachments = _ref.fetchBenefitAttachments,
2629
+ fetchingBenefitAttachments = _ref.fetchingBenefitAttachments,
2630
+ fetchedBenefitAttachments = _ref.fetchedBenefitAttachments,
2631
+ errorBenefitAttachments = _ref.errorBenefitAttachments,
2632
+ benefitAttachments = _ref.benefitAttachments,
2633
+ benefitAttachmentsPageInfo = _ref.benefitAttachmentsPageInfo,
2634
+ benefitAttachmentsTotalCount = _ref.benefitAttachmentsTotalCount,
2635
+ payrollUuid = _ref.payrollUuid,
2636
+ reconciledMode = _ref.reconciledMode,
2637
+ payrollDetail = _ref.payrollDetail,
2638
+ deleteBenefitConsumption = _ref.deleteBenefitConsumption;
2639
+ var modulesManager = feCore.useModulesManager();
2640
+ var _useTranslations = feCore.useTranslations('payroll', modulesManager),
2641
+ formatMessage = _useTranslations.formatMessage,
2642
+ formatMessageWithValues = _useTranslations.formatMessageWithValues;
2643
+ var _useState = React.useState(null),
2644
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2645
+ selectedBenefitAttachment = _useState2[0],
2646
+ setSelectedBenefitAttachment = _useState2[1];
2647
+ var _useState3 = React.useState(false),
2648
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
2649
+ openConfirmDialog = _useState4[0],
2650
+ setOpenConfirmDialog = _useState4[1];
2651
+ var _useState5 = React.useState(null),
2652
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
2653
+ benefitToDelete = _useState6[0],
2654
+ setBenefitToDelete = _useState6[1];
2655
+ var payrollPrintTemplateRef = React.useRef(null);
2656
+ var handlePrint = reactToPrint.useReactToPrint({
2657
+ documentTitle: "".concat(payrollUuid)
2658
+ });
2659
+ var fetch = function fetch(params) {
2660
+ fetchBenefitAttachments(modulesManager, params);
2518
2661
  };
2519
- var onChangeStringFilter = function onChangeStringFilter(filterName) {
2520
- var lookup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2521
- return function (value) {
2522
- if (lookup) {
2523
- debouncedOnChangeFilters([{
2524
- id: filterName,
2525
- value: value,
2526
- filter: "".concat(filterName, "_").concat(lookup, ": \"").concat(value, "\"")
2527
- }]);
2528
- } else {
2529
- debouncedOnChangeFilters([{
2530
- id: filterName,
2531
- value: value,
2532
- filter: "".concat(filterName, ": \"").concat(value, "\"")
2533
- }]);
2662
+ var defaultFilters = function defaultFilters() {
2663
+ var filters = {
2664
+ isDeleted: {
2665
+ value: false,
2666
+ filter: 'isDeleted: false'
2667
+ },
2668
+ payrollUuid: {
2669
+ value: payrollUuid,
2670
+ filter: "payrollUuid: \"".concat(payrollUuid, "\"")
2534
2671
  }
2535
2672
  };
2673
+ if (reconciledMode && payrollDetail.paymentMethod !== PAYMENT_METHOD.STRATEGY_ONLINE_PAYMENT && payrollDetail.paymentMethod !== PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) {
2674
+ filters.benefit_Status = {
2675
+ value: 'RECONCILED',
2676
+ filter: "benefit_Status: ".concat(PAYROLL_STATUS.RECONCILED)
2677
+ };
2678
+ }
2679
+ return filters;
2536
2680
  };
2537
- return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2538
- container: true,
2539
- className: classes.form
2540
- }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2541
- item: true,
2542
- xs: 3,
2543
- className: classes.item
2544
- }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2545
- module: "payroll",
2546
- label: formatMessage('payroll.name'),
2547
- value: filterTextFieldValue('name'),
2548
- onChange: onChangeStringFilter('name', CONTAINS_LOOKUP)
2549
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2550
- item: true,
2551
- xs: 3,
2552
- className: classes.item
2553
- }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
2554
- pubRef: "contributionPlan.PaymentPlanPicker",
2555
- filters: filters,
2556
- value: filterValue('paymentPlan_Id'),
2557
- onChange: function onChange(paymentPlan) {
2558
- return onChangeFilters([{
2559
- id: 'paymentPlan_Id',
2560
- value: paymentPlan,
2561
- filter: "paymentPlan_Id: \"".concat((paymentPlan === null || paymentPlan === void 0 ? void 0 : paymentPlan.id) && feCore.decodeId(paymentPlan.id), "\"")
2562
- }]);
2563
- }
2564
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2565
- item: true,
2566
- xs: 3,
2567
- className: classes.item
2568
- }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
2569
- pubRef: "paymentCycle.PaymentCyclePicker",
2570
- withLabel: true,
2571
- withPlaceholder: true,
2572
- filters: filters,
2573
- value: filterValue('paymentCycle_Id'),
2574
- onChange: function onChange(paymentCycle) {
2575
- return onChangeFilters([{
2576
- id: 'paymentCycle_Id',
2577
- value: paymentCycle,
2578
- filter: "paymentCycle_Id: \"".concat((paymentCycle === null || paymentCycle === void 0 ? void 0 : paymentCycle.id) && feCore.decodeId(paymentCycle.id), "\"")
2579
- }]);
2580
- }
2581
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2582
- item: true,
2583
- xs: 2,
2584
- className: classes.item
2585
- }, /*#__PURE__*/React__default["default"].createElement(PayrollStatusPicker, {
2586
- withNull: true,
2587
- nullLabel: formatMessage('any'),
2588
- label: formatMessage('paymentMethod'),
2589
- value: filterValue('status'),
2590
- readOnly: statusReadOnly,
2591
- onChange: function onChange(value) {
2592
- return onChangeFilters([{
2593
- id: 'status',
2594
- value: value,
2595
- filter: value ? "status: ".concat(value) : EMPTY_STRING
2596
- }]);
2597
- }
2598
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2599
- item: true,
2600
- xs: 2,
2601
- className: classes.item
2602
- }, /*#__PURE__*/React__default["default"].createElement(PaymentMethodPicker$1, {
2603
- withNull: true,
2604
- nullLabel: formatMessage('any'),
2605
- label: formatMessage('payroll.paymentMethod'),
2606
- value: filterValue('paymentMethod'),
2607
- onChange: function onChange(value) {
2608
- return onChangeFilters([{
2609
- id: 'paymentMethod',
2610
- value: value,
2611
- filter: "paymentMethod: \"".concat(value, "\"")
2612
- }]);
2681
+ var defaultFiltersArray = function defaultFiltersArray() {
2682
+ var filters = ['isDeleted: false', "first: ".concat(DEFAULT_PAGE_SIZE), "payrollUuid: \"".concat(payrollUuid, "\"")];
2683
+ if (reconciledMode && payrollDetail.paymentMethod !== PAYMENT_METHOD.STRATEGY_ONLINE_PAYMENT && payrollDetail.paymentMethod !== PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) {
2684
+ filters.push("benefit_Status: ".concat(PAYROLL_STATUS.RECONCILED));
2613
2685
  }
2614
- })), /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
2615
- module: "payroll",
2616
- id: "payrollFilter.showHistory",
2617
- field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2618
- item: true,
2619
- xs: 12,
2620
- className: classes.item
2621
- }, /*#__PURE__*/React__default["default"].createElement(core.FormControlLabel, {
2622
- control: /*#__PURE__*/React__default["default"].createElement(core.Checkbox, {
2623
- color: "primary",
2624
- checked: filters === null || filters === void 0 || (_filters$isDeleted = filters.isDeleted) === null || _filters$isDeleted === void 0 ? void 0 : _filters$isDeleted.value,
2625
- onChange: function onChange() {
2626
- var _filters$isDeleted2, _filters$isDeleted3;
2627
- return onChangeFilters([{
2628
- id: 'isDeleted',
2629
- value: !(filters !== null && filters !== void 0 && (_filters$isDeleted2 = filters.isDeleted) !== null && _filters$isDeleted2 !== void 0 && _filters$isDeleted2.value),
2630
- filter: "isDeleted: ".concat(!(filters !== null && filters !== void 0 && (_filters$isDeleted3 = filters.isDeleted) !== null && _filters$isDeleted3 !== void 0 && _filters$isDeleted3.value))
2631
- }]);
2632
- }
2633
- }),
2634
- label: formatMessage('tooltip.isDeleted')
2635
- }))
2636
- }));
2637
- }
2638
-
2639
- function PayrollSearcher(_ref) {
2640
- var deletePayrolls = _ref.deletePayrolls,
2641
- fetchingPayrolls = _ref.fetchingPayrolls,
2642
- fetchedPayrolls = _ref.fetchedPayrolls,
2643
- errorPayrolls = _ref.errorPayrolls,
2644
- payrolls = _ref.payrolls,
2645
- pageInfo = _ref.pageInfo,
2646
- totalCount = _ref.totalCount,
2647
- fetchPayrolls = _ref.fetchPayrolls,
2648
- coreConfirm = _ref.coreConfirm,
2649
- clearConfirm = _ref.clearConfirm,
2650
- confirmed = _ref.confirmed,
2651
- submittingMutation = _ref.submittingMutation,
2652
- mutation = _ref.mutation;
2653
- var history = feCore.useHistory();
2654
- var modulesManager = feCore.useModulesManager();
2655
- var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
2656
- formatMessage = _useTranslations.formatMessage,
2657
- formatMessageWithValues = _useTranslations.formatMessageWithValues;
2658
- var rights = reactRedux.useSelector(function (store) {
2659
- var _store$core$user$i_us;
2660
- return (_store$core$user$i_us = store.core.user.i_user.rights) !== null && _store$core$user$i_us !== void 0 ? _store$core$user$i_us : [];
2661
- });
2662
- var _useState = React.useState(null),
2663
- _useState2 = _slicedToArray__default["default"](_useState, 2),
2664
- payrollToDelete = _useState2[0],
2665
- setPayrollToDelete = _useState2[1];
2666
- var _useState3 = React.useState([]),
2667
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
2668
- deletedPayrollUuids = _useState4[0],
2669
- setDeletedPayrollUuids = _useState4[1];
2670
- var prevSubmittingMutationRef = React.useRef();
2671
- var openDeletePayrollConfirmDialog = function openDeletePayrollConfirmDialog() {
2672
- coreConfirm(formatMessageWithValues('payroll.delete.confirm.title', pageTitle(payrollToDelete)), formatMessage('payroll.delete.confirm.message'));
2686
+ return filters;
2673
2687
  };
2674
- React.useEffect(function () {
2675
- return payrollToDelete && openDeletePayrollConfirmDialog();
2676
- }, [payrollToDelete]);
2677
- React.useEffect(function () {
2678
- if (payrollToDelete && confirmed) {
2679
- deletePayrolls(payrollToDelete, formatMessageWithValues('payroll.mutation.deleteLabel', mutationLabel(payrollToDelete)));
2680
- setDeletedPayrollUuids([].concat(_toConsumableArray__default["default"](deletedPayrollUuids), [payrollToDelete.id]));
2681
- }
2682
- if (payrollToDelete && confirmed !== null) {
2683
- setPayrollToDelete(null);
2684
- }
2685
- return function () {
2686
- return confirmed && clearConfirm(false);
2687
- };
2688
- }, [confirmed]);
2689
- React.useEffect(function () {
2690
- if (prevSubmittingMutationRef.current && !submittingMutation) {
2691
- feCore.journalize(mutation);
2692
- }
2693
- }, [submittingMutation]);
2694
- React.useEffect(function () {
2695
- prevSubmittingMutationRef.current = submittingMutation;
2696
- });
2697
2688
  var headers = function headers() {
2698
- return ['payroll.name', 'payroll.benefitPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'emptyLabel'];
2699
- };
2700
- var sorts = function sorts() {
2701
- return [['name', true], ['benefitPlan', true], ['paymentPoint', true], ['status', true], ['paymentMethod', true]];
2702
- };
2703
- var defaultFilters = function defaultFilters() {
2704
- return {
2705
- isDeleted: {
2706
- value: false,
2707
- filter: 'isDeleted: false'
2708
- }
2709
- };
2710
- };
2711
- var fetch = function fetch(params) {
2712
- return fetchPayrolls(modulesManager, params);
2689
+ return ['benefitConsumption.photo', 'benefitConsumption.individual.firstName', 'benefitConsumption.individual.lastName', 'benefitConsumption.amount', 'benefitConsumption.receipt', 'benefitConsumption.dateDue', 'benefitConsumption.payedOnTime', 'benefitConsumption.paymentDate', 'benefitConsumption.status', '', ''];
2713
2690
  };
2714
- var rowIdentifier = function rowIdentifier(payroll) {
2715
- return payroll.id;
2691
+ var confirmDeleteBenefitConsumption = function confirmDeleteBenefitConsumption(benefit) {
2692
+ setBenefitToDelete(benefit);
2693
+ setOpenConfirmDialog(true);
2716
2694
  };
2717
- var openPayroll = function openPayroll(payroll) {
2718
- return rights.includes(RIGHT_PAYROLL_SEARCH) && history.push("/".concat(modulesManager.getRef(PAYROLL_PAYROLL_ROUTE), "/").concat(payroll === null || payroll === void 0 ? void 0 : payroll.id));
2695
+ var handleDeleteBenefitConsumption = function handleDeleteBenefitConsumption() {
2696
+ deleteBenefitConsumption(benefitToDelete.benefit, formatMessageWithValues('payroll.mutation.deleteLabel', mutationLabel(benefitToDelete.benefit.code)));
2697
+ setOpenConfirmDialog(false);
2698
+ setBenefitToDelete(null);
2699
+ var filters = defaultFiltersArray();
2700
+ fetchBenefitAttachments(modulesManager, filters); // Refresh the searcher after deletion
2719
2701
  };
2720
- var onDelete = function onDelete(payroll) {
2721
- return setPayrollToDelete(payroll);
2702
+ var checkBenefitDueDate = function checkBenefitDueDate(benefitAttachment) {
2703
+ if (!benefitAttachment.benefit.receipt) {
2704
+ return ''; // return empty string if datePayed is null
2705
+ }
2706
+ return benefitAttachment.benefit && benefitAttachment.benefit.dateDue >= benefitAttachment.bill.datePayed ? 'True' : 'False';
2722
2707
  };
2723
2708
  var itemFormatters = function itemFormatters() {
2724
- return [function (payroll) {
2725
- return payroll.name;
2726
- }, function (payroll) {
2727
- return payroll.benefitPlan ? "".concat(payroll.benefitPlan.code, " ").concat(payroll.benefitPlan.name) : '';
2728
- }, function (payroll) {
2729
- return payroll.paymentPoint ? "".concat(payroll.paymentPoint.name) : '';
2730
- }, function (payroll) {
2731
- return payroll.status ? "".concat(payroll.status) : '';
2732
- }, function (payroll) {
2733
- return payroll.paymentMethod ? "".concat(payroll.paymentMethod) : '';
2734
- }, function (payroll) {
2735
- return /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
2736
- title: formatMessage('tooltip.viewDetails')
2737
- }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
2709
+ return [function (benefitAttachment) {
2710
+ return benefitAttachment.benefit.receipt ? /*#__PURE__*/React__default["default"].createElement(PhotoCameraOutlinedIcon__default["default"], {
2711
+ style: {
2712
+ fontSize: 150
2713
+ }
2714
+ }) : null;
2715
+ }, function (benefitAttachment) {
2716
+ var _benefitAttachment$be;
2717
+ return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be = benefitAttachment.benefit) === null || _benefitAttachment$be === void 0 || (_benefitAttachment$be = _benefitAttachment$be.individual) === null || _benefitAttachment$be === void 0 ? void 0 : _benefitAttachment$be.firstName;
2718
+ }, function (benefitAttachment) {
2719
+ var _benefitAttachment$be2;
2720
+ return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be2 = benefitAttachment.benefit) === null || _benefitAttachment$be2 === void 0 || (_benefitAttachment$be2 = _benefitAttachment$be2.individual) === null || _benefitAttachment$be2 === void 0 ? void 0 : _benefitAttachment$be2.lastName;
2721
+ }, function (benefitAttachment) {
2722
+ var _benefitAttachment$bi;
2723
+ return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$bi = benefitAttachment.bill) === null || _benefitAttachment$bi === void 0 ? void 0 : _benefitAttachment$bi.amountTotal;
2724
+ }, function (benefitAttachment) {
2725
+ var _benefitAttachment$be3;
2726
+ return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be3 = benefitAttachment.benefit) === null || _benefitAttachment$be3 === void 0 ? void 0 : _benefitAttachment$be3.receipt;
2727
+ }, function (benefitAttachment) {
2728
+ var _benefitAttachment$be4;
2729
+ return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be4 = benefitAttachment.benefit) === null || _benefitAttachment$be4 === void 0 ? void 0 : _benefitAttachment$be4.dateDue;
2730
+ }, function (benefitAttachment) {
2731
+ return checkBenefitDueDate(benefitAttachment);
2732
+ }, function (benefitAttachment) {
2733
+ var _benefitAttachment$bi2;
2734
+ return !benefitAttachment.benefit.receipt ? '' : benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$bi2 = benefitAttachment.bill) === null || _benefitAttachment$bi2 === void 0 ? void 0 : _benefitAttachment$bi2.datePayed;
2735
+ }, function (benefitAttachment) {
2736
+ var _benefitAttachment$be5;
2737
+ return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be5 = benefitAttachment.benefit) === null || _benefitAttachment$be5 === void 0 ? void 0 : _benefitAttachment$be5.status;
2738
+ }, function (benefitAttachment) {
2739
+ var _benefitAttachment$be6;
2740
+ return /*#__PURE__*/React__default["default"].createElement(AdditionalFieldsDialog$1, {
2741
+ jsonExt: benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be6 = benefitAttachment.benefit) === null || _benefitAttachment$be6 === void 0 ? void 0 : _benefitAttachment$be6.jsonExt,
2742
+ buttonLabel: "payroll.additonalFields.showAdditionalFields",
2743
+ title: "payroll.additonalFields.label"
2744
+ });
2745
+ }, function (benefitAttachment) {
2746
+ return /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2747
+ onClick: function onClick() {},
2748
+ variant: "contained",
2749
+ color: "primary",
2750
+ disabled: !!benefitAttachment.benefit.receipt
2751
+ }, formatMessage('payroll.summary.confirm'));
2752
+ }, function (benefitAttachment) {
2753
+ return (payrollDetail.paymentMethod === PAYMENT_METHOD.STRATEGY_ONLINE_PAYMENT || payrollDetail.paymentMethod === PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) && payrollDetail.status === PAYROLL_STATUS.RECONCILED && benefitAttachment.benefit.status !== 'RECONCILED' && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2738
2754
  onClick: function onClick() {
2739
- return openPayroll(payroll);
2755
+ return setSelectedBenefitAttachment(benefitAttachment);
2756
+ },
2757
+ variant: "contained",
2758
+ style: {
2759
+ backgroundColor: '#b80000',
2760
+ color: 'white'
2740
2761
  }
2741
- }, /*#__PURE__*/React__default["default"].createElement(VisibilityIcon__default["default"], null)));
2742
- }, function (payroll) {
2743
- return /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
2744
- title: formatMessage('tooltip.delete')
2745
- }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
2762
+ }, formatMessage('payroll.summary.benefit_error'));
2763
+ }, function (benefitAttachment) {
2764
+ return payrollDetail.status === PAYROLL_STATUS.PENDING_APPROVAL && benefitAttachment.benefit.status !== 'PENDING_DELETION' && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2746
2765
  onClick: function onClick() {
2747
- return onDelete(payroll);
2766
+ return confirmDeleteBenefitConsumption(benefitAttachment);
2748
2767
  },
2749
- disabled: deletedPayrollUuids.includes(payroll.id) || payroll.status !== PAYROLL_STATUS.PENDING_APPROVAL
2750
- }, /*#__PURE__*/React__default["default"].createElement(DeleteIcon__default["default"], null)));
2751
- }];
2752
- };
2753
- var onDoubleClick = function onDoubleClick(payroll) {
2754
- return openPayroll(payroll);
2768
+ variant: "contained",
2769
+ style: {
2770
+ backgroundColor: '#b80000',
2771
+ color: 'white'
2772
+ }
2773
+ }, formatMessage('payroll.summary.benefit_delete'));
2774
+ }];
2755
2775
  };
2756
- var payrollFilter = function payrollFilter(_ref2) {
2776
+ var rowIdentifier = function rowIdentifier(benefitAttachment) {
2777
+ return benefitAttachment.id;
2778
+ };
2779
+ var sorts = function sorts() {
2780
+ return [['benefit_photo', false], ['benefit_individual_FirstName', true], ['benefit_individual_LastName', true], ['bill_amountTotal', true], ['benefit_receipt', true], ['benefit_dateDue', true]];
2781
+ };
2782
+ var benefitConsumptionFilterModal = function benefitConsumptionFilterModal(_ref2) {
2757
2783
  var filters = _ref2.filters,
2758
2784
  onChangeFilters = _ref2.onChangeFilters;
2759
- return /*#__PURE__*/React__default["default"].createElement(PayrollFilter, {
2785
+ return /*#__PURE__*/React__default["default"].createElement(BenefitConsumptionFilterModal, {
2760
2786
  filters: filters,
2761
2787
  onChangeFilters: onChangeFilters
2762
2788
  });
2763
2789
  };
2764
- var isRowDisabled = function isRowDisabled(_, payroll) {
2765
- return deletedPayrollUuids.includes(payroll.id);
2766
- };
2767
- return /*#__PURE__*/React__default["default"].createElement(feCore.Searcher, {
2790
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2791
+ size: "small",
2792
+ variant: "contained",
2793
+ color: "primary",
2794
+ startIcon: /*#__PURE__*/React__default["default"].createElement(PrintIcon__default["default"], null),
2795
+ onClick: function onClick(e) {
2796
+ e.preventDefault();
2797
+ handlePrint(null, function () {
2798
+ return payrollPrintTemplateRef.current;
2799
+ });
2800
+ }
2801
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
2802
+ variant: "subtitle1"
2803
+ }, "Print"))), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(feCore.Searcher, {
2768
2804
  module: "payroll",
2769
- FilterPane: payrollFilter,
2805
+ FilterPane: benefitConsumptionFilterModal,
2770
2806
  fetch: fetch,
2771
- items: payrolls,
2772
- itemsPageInfo: pageInfo,
2773
- fetchedItems: fetchedPayrolls,
2774
- fetchingItems: fetchingPayrolls,
2775
- errorItems: errorPayrolls,
2776
- tableTitle: formatMessageWithValues('payrollSearcher.results', {
2777
- totalCount: totalCount
2807
+ items: benefitAttachments,
2808
+ itemsPageInfo: benefitAttachmentsPageInfo,
2809
+ fetchingItems: fetchingBenefitAttachments,
2810
+ fetchedItems: fetchedBenefitAttachments,
2811
+ errorItems: errorBenefitAttachments,
2812
+ tableTitle: formatMessageWithValues('benefitAttachment.searcherResultsTitle', {
2813
+ benefitAttachmentsTotalCount: benefitAttachmentsTotalCount
2778
2814
  }),
2779
2815
  headers: headers,
2780
2816
  itemFormatters: itemFormatters,
@@ -2782,989 +2818,1089 @@ function PayrollSearcher(_ref) {
2782
2818
  rowsPerPageOptions: ROWS_PER_PAGE_OPTIONS,
2783
2819
  defaultPageSize: DEFAULT_PAGE_SIZE,
2784
2820
  rowIdentifier: rowIdentifier,
2785
- onDoubleClick: onDoubleClick,
2786
- defaultFilters: defaultFilters(),
2787
- rowDisabled: isRowDisabled,
2788
- rowLocked: isRowDisabled
2789
- });
2821
+ defaultFilters: defaultFilters()
2822
+ }), selectedBenefitAttachment && /*#__PURE__*/React__default["default"].createElement(ErrorSummaryModal, {
2823
+ open: !!selectedBenefitAttachment,
2824
+ onClose: function onClose() {
2825
+ return setSelectedBenefitAttachment(null);
2826
+ },
2827
+ benefitAttachment: selectedBenefitAttachment
2828
+ }), /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
2829
+ open: openConfirmDialog,
2830
+ onClose: function onClose() {
2831
+ return setOpenConfirmDialog(false);
2832
+ }
2833
+ }, /*#__PURE__*/React__default["default"].createElement(DialogTitle__default["default"], null, formatMessage('benefitConsumption.delete.confirm.title')), /*#__PURE__*/React__default["default"].createElement(DialogContent__default["default"], null, /*#__PURE__*/React__default["default"].createElement(DialogContentText__default["default"], null, formatMessage('benefitConsumption.delete.confirm.message'))), /*#__PURE__*/React__default["default"].createElement(DialogActions__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2834
+ onClick: function onClick() {
2835
+ return setOpenConfirmDialog(false);
2836
+ },
2837
+ color: "primary"
2838
+ }, formatMessage('benefitConsumption.cancel')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
2839
+ onClick: handleDeleteBenefitConsumption,
2840
+ color: "primary",
2841
+ autoFocus: true
2842
+ }, formatMessage('benefitConsumption.confirm')))), /*#__PURE__*/React__default["default"].createElement("div", {
2843
+ style: {
2844
+ display: 'none'
2845
+ }
2846
+ }, /*#__PURE__*/React__default["default"].createElement(PayrollBenefitPrintTemplate, {
2847
+ ref: payrollPrintTemplateRef,
2848
+ benefitAttachments: benefitAttachments
2849
+ }))));
2790
2850
  }
2791
2851
  var mapStateToProps$b = function mapStateToProps(state) {
2792
2852
  return {
2793
- fetchingPayrolls: state.payroll.fetchingPayrolls,
2794
- fetchedPayrolls: state.payroll.fetchedPayrolls,
2795
- errorPayrolls: state.payroll.errorPayrolls,
2796
- payrolls: state.payroll.payrolls,
2797
- pageInfo: state.payroll.payrollsPageInfo,
2798
- totalCount: state.payroll.payrollsTotalCount,
2799
- confirmed: state.core.confirmed,
2800
- submittingMutation: state.payroll.submittingMutation,
2801
- mutation: state.payroll.mutation
2853
+ fetchingBenefitAttachments: state.payroll.fetchingBenefitAttachments,
2854
+ fetchedBenefitAttachments: state.payroll.fetchedBenefitAttachments,
2855
+ errorBenefitAttachments: state.payroll.errorBenefitAttachments,
2856
+ benefitAttachments: state.payroll.benefitAttachments,
2857
+ benefitAttachmentsPageInfo: state.payroll.benefitAttachmentsPageInfo,
2858
+ benefitAttachmentsTotalCount: state.payroll.benefitAttachmentsTotalCount
2802
2859
  };
2803
2860
  };
2804
2861
  var mapDispatchToProps$b = function mapDispatchToProps(dispatch) {
2805
2862
  return redux.bindActionCreators({
2806
- fetchPayrolls: fetchPayrolls,
2807
- deletePayrolls: deletePayrolls,
2808
- journalize: feCore.journalize,
2809
- clearConfirm: feCore.clearConfirm,
2810
- coreConfirm: feCore.coreConfirm
2863
+ fetchBenefitAttachments: fetchBenefitAttachments,
2864
+ deleteBenefitConsumption: deleteBenefitConsumption
2811
2865
  }, dispatch);
2812
2866
  };
2813
- var PayrollSearcher$1 = reactRedux.connect(mapStateToProps$b, mapDispatchToProps$b)(PayrollSearcher);
2867
+ var BenefitConsumptionSearcherModal$1 = reactRedux.connect(mapStateToProps$b, mapDispatchToProps$b)(BenefitConsumptionSearcherModal);
2814
2868
 
2815
- var useStyles$8 = styles$7.makeStyles(function (theme) {
2816
- return {
2817
- page: theme.page,
2818
- fab: theme.fab
2819
- };
2820
- });
2821
- function PayrollsPage() {
2822
- var modulesManager = feCore.useModulesManager();
2823
- var classes = useStyles$8();
2824
- var history = feCore.useHistory();
2825
- var rights = reactRedux.useSelector(function (store) {
2826
- var _store$core$user$i_us;
2827
- return (_store$core$user$i_us = store.core.user.i_user.rights) !== null && _store$core$user$i_us !== void 0 ? _store$core$user$i_us : [];
2869
+ function downloadPayroll(payrollId, payrollFileName) {
2870
+ var blank = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
2871
+ var url = new URL("".concat(window.location.origin).concat(feCore.baseApiUrl, "/payroll/csv_reconciliation/"));
2872
+ url.searchParams.append('payroll_id', payrollId);
2873
+ url.searchParams.append('blank', blank);
2874
+ url.searchParams.append('payroll_file_name', payrollFileName);
2875
+ fetch(url).then(function (response) {
2876
+ return response.blob();
2877
+ }).then(function (blob) {
2878
+ var link = document.createElement('a');
2879
+ link.href = URL.createObjectURL(blob);
2880
+ link.download = blank ? "reconciliation_".concat(payrollFileName, ".csv") : payrollFileName;
2881
+ document.body.appendChild(link);
2882
+ link.click();
2883
+ document.body.removeChild(link);
2884
+ })["catch"](function (error) {
2885
+ // eslint-disable-next-line no-console
2886
+ console.error('Export failed, reason: ', error);
2828
2887
  });
2829
- var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
2830
- formatMessage = _useTranslations.formatMessage;
2831
- var onCreate = function onCreate() {
2832
- return history.push("/".concat(modulesManager.getRef(PAYROLL_PAYROLL_ROUTE)));
2833
- };
2834
- return /*#__PURE__*/React__default["default"].createElement("div", {
2835
- className: classes.page
2836
- }, /*#__PURE__*/React__default["default"].createElement(feCore.Helmet, {
2837
- title: formatMessage('paymentPoint.page.title')
2838
- }), rights.includes(RIGHT_PAYROLL_SEARCH) && /*#__PURE__*/React__default["default"].createElement(PayrollSearcher$1, null), rights.includes(RIGHT_PAYROLL_CREATE) && feCore.withTooltip(/*#__PURE__*/React__default["default"].createElement("div", {
2839
- className: classes.fab
2840
- }, /*#__PURE__*/React__default["default"].createElement(core.Fab, {
2841
- color: "primary",
2842
- onClick: onCreate
2843
- }, /*#__PURE__*/React__default["default"].createElement(AddIcon__default["default"], null))), formatMessage('createButton.tooltip')));
2844
2888
  }
2845
2889
 
2846
- var useStyles$7 = styles$7.makeStyles(function (theme) {
2847
- return {
2848
- form: {
2849
- padding: 0
2850
- },
2851
- item: {
2852
- padding: theme.spacing(1)
2853
- }
2854
- };
2855
- });
2856
- function BenefitConsumptionFilterModal(_ref) {
2857
- var filters = _ref.filters,
2858
- onChangeFilters = _ref.onChangeFilters;
2890
+ function PaymentApproveForPaymentDialog(_ref) {
2891
+ var _payrollDetail$id, _bistpSummary$reconci, _bistpSummary$total, _bistpSummary$pending, _bistpSummary$rejecte, _bistpSummary$skipped, _bistpSummary$sendFai;
2892
+ var classes = _ref.classes,
2893
+ payroll = _ref.payroll,
2894
+ closePayroll = _ref.closePayroll,
2895
+ rejectPayroll = _ref.rejectPayroll,
2896
+ payrollDetail = _ref.payrollDetail,
2897
+ fetchPayroll = _ref.fetchPayroll,
2898
+ makePaymentForPayroll = _ref.makePaymentForPayroll;
2859
2899
  var modulesManager = feCore.useModulesManager();
2860
- var classes = useStyles$7();
2861
- var _useTranslations = feCore.useTranslations('payroll', modulesManager),
2862
- formatMessage = _useTranslations.formatMessage;
2863
- var debouncedOnChangeFilters = _debounce__default["default"](onChangeFilters, DEFAULT_DEBOUNCE_TIME);
2864
- var filterTextFieldValue = function filterTextFieldValue(filterName) {
2865
- var _filters$filterName$v, _filters$filterName;
2866
- return (_filters$filterName$v = filters === null || filters === void 0 || (_filters$filterName = filters[filterName]) === null || _filters$filterName === void 0 ? void 0 : _filters$filterName.value) !== null && _filters$filterName$v !== void 0 ? _filters$filterName$v : EMPTY_STRING;
2867
- };
2868
- var filterValue = function filterValue(filterName) {
2869
- var _filters$filterName$v2, _filters$filterName2;
2870
- return (_filters$filterName$v2 = filters === null || filters === void 0 || (_filters$filterName2 = filters[filterName]) === null || _filters$filterName2 === void 0 ? void 0 : _filters$filterName2.value) !== null && _filters$filterName$v2 !== void 0 ? _filters$filterName$v2 : null;
2871
- };
2872
- var onChangeFilter = function onChangeFilter(filterName) {
2873
- return function (value) {
2874
- debouncedOnChangeFilters([{
2875
- id: filterName,
2876
- value: value || null,
2877
- filter: "".concat(filterName, ": ").concat(value)
2878
- }]);
2879
- };
2900
+ var _useState = React.useState((_payrollDetail$id = payrollDetail === null || payrollDetail === void 0 ? void 0 : payrollDetail.id) !== null && _payrollDetail$id !== void 0 ? _payrollDetail$id : null),
2901
+ _useState2 = _slicedToArray__default["default"](_useState, 1),
2902
+ payrollUuid = _useState2[0];
2903
+ var _useState3 = React.useState(false),
2904
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
2905
+ isOpen = _useState4[0],
2906
+ setIsOpen = _useState4[1];
2907
+ var _useState5 = React.useState(0),
2908
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
2909
+ totalBeneficiaries = _useState6[0],
2910
+ setTotalBeneficiaries = _useState6[1];
2911
+ var _useState7 = React.useState(0),
2912
+ _useState8 = _slicedToArray__default["default"](_useState7, 2),
2913
+ selectedBeneficiaries = _useState8[0],
2914
+ setSelectedBeneficiaries = _useState8[1];
2915
+ var _useState9 = React.useState(0),
2916
+ _useState0 = _slicedToArray__default["default"](_useState9, 2),
2917
+ approvedBeneficiaries = _useState0[0],
2918
+ setApprovedBeneficiaries = _useState0[1];
2919
+ var _useState1 = React.useState(0),
2920
+ _useState10 = _slicedToArray__default["default"](_useState1, 2),
2921
+ totalBillAmount = _useState10[0],
2922
+ setTotalBillAmount = _useState10[1];
2923
+ var _useState11 = React.useState(0),
2924
+ _useState12 = _slicedToArray__default["default"](_useState11, 2),
2925
+ totalReconciledBillAmount = _useState12[0],
2926
+ setTotalReconciledBillAmount = _useState12[1];
2927
+ var handleOpen = function handleOpen() {
2928
+ if (payrollUuid) {
2929
+ fetchPayroll(modulesManager, ["id: \"".concat(payrollUuid, "\"")]);
2930
+ }
2931
+ setIsOpen(true);
2880
2932
  };
2881
- var onChangeStringFilter = function onChangeStringFilter(filterName) {
2882
- var lookup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2883
- return function (value) {
2884
- if (lookup) {
2885
- debouncedOnChangeFilters([{
2886
- id: filterName,
2887
- value: value,
2888
- filter: "".concat(filterName, "_").concat(lookup, ": \"").concat(value, "\"")
2889
- }]);
2890
- } else {
2891
- debouncedOnChangeFilters([{
2892
- id: filterName,
2893
- value: value,
2894
- filter: "".concat(filterName, ": \"").concat(value, "\"")
2895
- }]);
2896
- }
2897
- };
2933
+ var handleClose = function handleClose() {
2934
+ setIsOpen(false);
2898
2935
  };
2899
- return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2900
- container: true,
2901
- className: classes.form
2902
- }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2903
- item: true,
2904
- xs: 2,
2905
- className: classes.item
2906
- }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2907
- module: "payroll",
2908
- label: "benefitConsumption.individual.firstName",
2909
- value: filterTextFieldValue('benefit_Individual_FirstName'),
2910
- onChange: onChangeStringFilter('benefit_Individual_FirstName', CONTAINS_LOOKUP)
2911
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2912
- item: true,
2913
- xs: 2,
2914
- className: classes.item
2915
- }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2916
- module: "payroll",
2917
- label: "benefitConsumption.individual.lastName",
2918
- value: filterTextFieldValue('benefit_Individual_LastName'),
2919
- onChange: onChangeStringFilter('benefit_Individual_LastName', CONTAINS_LOOKUP)
2920
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2921
- item: true,
2922
- xs: 2,
2923
- className: classes.item
2924
- }, /*#__PURE__*/React__default["default"].createElement(feCore.NumberInput, {
2925
- module: "payroll",
2926
- label: formatMessage('benefitConsumption.amount'),
2927
- min: 0,
2928
- value: filterValue('bill_AmountTotal'),
2929
- onChange: onChangeFilter('bill_AmountTotal')
2930
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2931
- item: true,
2932
- xs: 2,
2933
- className: classes.item
2934
- }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2935
- module: "payroll",
2936
- label: "benefitConsumption.receipt",
2937
- value: filterTextFieldValue('benefit_Receipt'),
2938
- onChange: onChangeStringFilter('benefit_Receipt', CONTAINS_LOOKUP)
2939
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2940
- item: true,
2941
- xs: 2,
2942
- className: classes.item
2943
- }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
2944
- pubRef: "core.DatePicker",
2945
- module: "payroll",
2946
- label: formatMessage('benefitConsumption.dateDue'),
2947
- value: filterValue('benefit_DateDue'),
2948
- onChange: function onChange(v) {
2949
- return onChangeFilters([{
2950
- id: 'benefit_DateDue',
2951
- value: v,
2952
- filter: "benefit_DateDue: \"".concat(v, "\"")
2953
- }]);
2954
- }
2955
- })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2956
- item: true,
2957
- xs: 2,
2958
- className: classes.item
2959
- }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
2960
- pubRef: "core.DatePicker",
2961
- module: "payroll",
2962
- label: formatMessage('benefitConsumption.paymentDate'),
2963
- value: filterValue('bill_DatePayed_Gte'),
2964
- onChange: function onChange(v) {
2965
- return onChangeFilters([{
2966
- id: 'bill_DatePayed_Gte',
2967
- value: v,
2968
- filter: "bill_DatePayed_Gte: \"".concat(v, "\"")
2969
- }]);
2970
- }
2971
- })));
2972
- }
2973
-
2974
- function ErrorSummaryModal(_ref) {
2975
- var _benefitAttachment$be;
2976
- var open = _ref.open,
2977
- onClose = _ref.onClose,
2978
- benefitAttachment = _ref.benefitAttachment;
2979
- var modulesManager = feCore.useModulesManager();
2980
- var _useTranslations = feCore.useTranslations('payroll', modulesManager),
2981
- formatMessage = _useTranslations.formatMessage;
2982
- var jsonExt = benefitAttachment !== null && benefitAttachment !== void 0 && (_benefitAttachment$be = benefitAttachment.benefit) !== null && _benefitAttachment$be !== void 0 && _benefitAttachment$be.jsonExt ? JSON.parse(benefitAttachment.benefit.jsonExt) : {};
2983
- var outputGateway = "".concat(jsonExt === null || jsonExt === void 0 ? void 0 : jsonExt.output_gateway);
2984
- return /*#__PURE__*/React__default["default"].createElement(core.Modal, {
2985
- open: open,
2986
- onClose: onClose,
2987
- closeAfterTransition: true,
2988
- BackdropComponent: core.Backdrop,
2989
- BackdropProps: {
2990
- timeout: 500
2991
- }
2992
- }, /*#__PURE__*/React__default["default"].createElement(core.Fade, {
2993
- "in": open
2994
- }, /*#__PURE__*/React__default["default"].createElement(core.Box, {
2995
- p: 4,
2996
- style: {
2997
- backgroundColor: 'white',
2998
- margin: 'auto',
2999
- maxWidth: 400,
3000
- outline: 'none'
2936
+ var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
2937
+ formatMessage = _useTranslations.formatMessage,
2938
+ formatMessageWithValues = _useTranslations.formatMessageWithValues;
2939
+ React.useEffect(function () {
2940
+ if (isOpen && Object.keys(payroll).length > 0) {
2941
+ // Calculate total benefits and reconciled benefits
2942
+ var total = payroll.benefitConsumption.length;
2943
+ var selected = payroll.benefitConsumption.filter(function (benefit) {
2944
+ return benefit.status === BENEFIT_CONSUMPTION_STATUS.RECONCILED;
2945
+ }).length;
2946
+ var approved = payroll.benefitConsumption.filter(function (benefit) {
2947
+ return benefit.status === BENEFIT_CONSUMPTION_STATUS.APPROVE_FOR_PAYMENT;
2948
+ }).length;
2949
+ setTotalBeneficiaries(total);
2950
+ setSelectedBeneficiaries(selected);
2951
+ setApprovedBeneficiaries(approved);
2952
+ var totalAmount = 0;
2953
+ var reconciledAmount = 0;
2954
+ if (payroll && payroll.benefitConsumption) {
2955
+ payroll.benefitConsumption.forEach(function (benefit) {
2956
+ if (benefit.benefitAttachment && benefit.benefitAttachment.length > 0) {
2957
+ benefit.benefitAttachment.forEach(function (attachment) {
2958
+ if (attachment.bill && attachment.bill.amountTotal) {
2959
+ totalAmount += parseFloat(attachment.bill.amountTotal);
2960
+ if (benefit.status === BENEFIT_CONSUMPTION_STATUS.RECONCILED) {
2961
+ reconciledAmount += parseFloat(attachment.bill.amountTotal);
2962
+ }
2963
+ }
2964
+ });
2965
+ }
2966
+ });
2967
+ }
2968
+ setTotalBillAmount(totalAmount);
2969
+ setTotalReconciledBillAmount(reconciledAmount);
3001
2970
  }
3002
- }, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
3003
- variant: "h6"
3004
- }, formatMessage('payroll.errorSummary.title')), outputGateway === null || outputGateway === 'undefined' ? /*#__PURE__*/React__default["default"].createElement(core.Typography, null, formatMessage('payroll.errorSummary.outputGateway.noInfo')) : /*#__PURE__*/React__default["default"].createElement(core.Typography, null, outputGateway), /*#__PURE__*/React__default["default"].createElement(core.Box, {
3005
- display: "flex",
3006
- justifyContent: "center",
3007
- mt: 2
3008
- }, /*#__PURE__*/React__default["default"].createElement(core.Button, {
3009
- onClick: onClose,
3010
- variant: "contained",
3011
- color: "primary"
3012
- }, formatMessage('payroll.errorSummary.close'))))));
3013
- }
3014
-
3015
- var styles = function styles(theme) {
3016
- return {
3017
- item: theme.paper.item
2971
+ }, [isOpen, payroll]);
2972
+ var closePayrollCallback = function closePayrollCallback() {
2973
+ handleClose();
2974
+ closePayroll(payrollDetail, formatMessageWithValues('payroll.mutation.closeLabel', mutationLabel(payrollDetail)));
3018
2975
  };
3019
- };
3020
- function AdditionalFieldsDialog(_ref) {
3021
- var intl = _ref.intl,
3022
- classes = _ref.classes,
3023
- jsonExt = _ref.jsonExt,
3024
- buttonLabel = _ref.buttonLabel,
3025
- title = _ref.title;
3026
- // eslint-disable-next-line no-param-reassign
3027
- if (!jsonExt) jsonExt = '{}';
3028
- var _useState = React.useState(false),
3029
- _useState2 = _slicedToArray__default["default"](_useState, 2),
3030
- isOpen = _useState2[0],
3031
- setIsOpen = _useState2[1];
3032
- var handleOpen = function handleOpen() {
3033
- setIsOpen(true);
2976
+ var rejectPayrollCallback = function rejectPayrollCallback() {
2977
+ handleClose();
2978
+ rejectPayroll(payrollDetail, formatMessageWithValues('payroll.mutation.closeLabel', mutationLabel(payrollDetail)));
3034
2979
  };
3035
- var handleClose = function handleClose() {
3036
- setIsOpen(false);
2980
+ var makePaymentForPayrollCallback = function makePaymentForPayrollCallback() {
2981
+ handleClose();
2982
+ makePaymentForPayroll(payrollDetail, formatMessageWithValues('payroll.mutation.closeLabel', mutationLabel(payrollDetail)));
3037
2983
  };
3038
- var jsonExtFields = feCore.createFieldsBasedOnJSON(JSON.stringify(JSON.parse(jsonExt).extra_info));
2984
+ var downloadPayrollData = function downloadPayrollData(payrollUuid, payrollName) {
2985
+ downloadPayroll(payrollUuid, payrollName);
2986
+ };
2987
+ var isBistp = (payrollDetail === null || payrollDetail === void 0 ? void 0 : payrollDetail.paymentMethod) === PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT;
2988
+ var bistpSummary = (payroll === null || payroll === void 0 ? void 0 : payroll.bistpSummary) || {};
3039
2989
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3040
2990
  onClick: handleOpen,
3041
- variant: "outlined",
3042
- color: "#DFEDEF",
3043
- className: classes.button,
3044
- style: {
3045
- border: '0px',
3046
- marginTop: '6px'
3047
- }
3048
- }, feCore.formatMessage(intl, 'payroll', buttonLabel)), /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
2991
+ variant: "contained",
2992
+ color: "primary",
2993
+ className: classes.button
2994
+ }, isBistp ? formatMessage('payroll.bistp.viewSummary') : formatMessage('payroll.viewReconciliationSummary')), /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
3049
2995
  open: isOpen,
3050
2996
  onClose: handleClose,
3051
2997
  PaperProps: {
3052
2998
  style: {
3053
- width: 1200,
3054
- maxWidth: 1200,
3055
- maxHeight: 900
2999
+ position: 'absolute',
3000
+ top: '50%',
3001
+ left: '50%',
3002
+ transform: 'translate(-50%,-50%)',
3003
+ width: '75%',
3004
+ maxWidth: '75%'
3056
3005
  }
3057
3006
  }
3058
- }, /*#__PURE__*/React__default["default"].createElement("form", {
3059
- noValidate: true
3060
3007
  }, /*#__PURE__*/React__default["default"].createElement(DialogTitle__default["default"], {
3061
3008
  style: {
3062
3009
  marginTop: '10px'
3063
3010
  }
3064
- }, feCore.formatMessage(intl, 'payroll', title)), /*#__PURE__*/React__default["default"].createElement(DialogContent__default["default"], null, /*#__PURE__*/React__default["default"].createElement("div", {
3011
+ }, formatMessageWithValues('payroll.reconciliationSummary', {
3012
+ payrollName: payrollDetail.name
3013
+ })), /*#__PURE__*/React__default["default"].createElement(DialogContent__default["default"], null, isBistp ? /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3014
+ container: true,
3015
+ spacing: 2,
3065
3016
  style: {
3066
- backgroundColor: '#DFEDEF',
3067
- paddingLeft: '10px',
3068
- paddingBottom: '10px'
3017
+ marginBottom: 16
3069
3018
  }
3070
3019
  }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3071
- container: true,
3072
- className: classes.item
3073
- }, jsonExtFields === null || jsonExtFields === void 0 ? void 0 : jsonExtFields.map(function (jsonExtField) {
3074
- return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3075
- item: true,
3076
- xs: 6,
3077
- className: classes.item
3078
- }, feCore.renderInputComponent(MODULE_NAME, jsonExtField));
3079
- })))), /*#__PURE__*/React__default["default"].createElement(DialogActions__default["default"], {
3020
+ item: true,
3021
+ xs: 3
3022
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3023
+ elevation: 3,
3080
3024
  style: {
3081
- display: 'inline',
3082
- paddingLeft: '10px',
3083
- marginTop: '25px',
3084
- marginBottom: '15px'
3025
+ padding: '20px',
3026
+ backgroundColor: '#e8f5e9'
3085
3027
  }
3086
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3028
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3029
+ variant: "h6",
3030
+ gutterBottom: true
3031
+ }, formatMessage('payroll.bistp.reconciled')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3032
+ variant: "body1"
3033
+ }, (_bistpSummary$reconci = bistpSummary.reconciled) !== null && _bistpSummary$reconci !== void 0 ? _bistpSummary$reconci : 0, " / ", (_bistpSummary$total = bistpSummary.total) !== null && _bistpSummary$total !== void 0 ? _bistpSummary$total : 0))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3034
+ item: true,
3035
+ xs: 3
3036
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3037
+ elevation: 3,
3087
3038
  style: {
3088
- maxWidth: '1000px'
3039
+ padding: '20px',
3040
+ backgroundColor: '#fff3e0'
3089
3041
  }
3090
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3042
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3043
+ variant: "h6",
3044
+ gutterBottom: true
3045
+ }, formatMessage('payroll.bistp.pending')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3046
+ variant: "body1"
3047
+ }, (_bistpSummary$pending = bistpSummary.pending) !== null && _bistpSummary$pending !== void 0 ? _bistpSummary$pending : 0))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3048
+ item: true,
3049
+ xs: 3
3050
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3051
+ elevation: 3,
3091
3052
  style: {
3092
- "float": 'left'
3053
+ padding: '20px',
3054
+ backgroundColor: '#ffebee'
3093
3055
  }
3094
- }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3095
- onClick: handleClose,
3096
- variant: "outlined",
3097
- autoFocus: true,
3056
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3057
+ variant: "h6",
3058
+ gutterBottom: true
3059
+ }, formatMessage('payroll.bistp.rejected')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3060
+ variant: "body1"
3061
+ }, (_bistpSummary$rejecte = bistpSummary.rejected) !== null && _bistpSummary$rejecte !== void 0 ? _bistpSummary$rejecte : 0))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3062
+ item: true,
3063
+ xs: 3
3064
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3065
+ elevation: 3,
3098
3066
  style: {
3099
- margin: '0 16px',
3100
- marginBottom: '15px'
3067
+ padding: '20px',
3068
+ backgroundColor: '#e3f2fd'
3101
3069
  }
3102
- }, feCore.formatMessage(intl, 'payroll', 'payroll.additonalFields.close'))), /*#__PURE__*/React__default["default"].createElement("div", {
3103
- style: {
3104
- "float": 'right',
3105
- paddingRight: '16px'
3106
- }
3107
- }))))));
3108
- }
3109
- var mapStateToProps$a = function mapStateToProps(state) {
3110
- return {
3111
- rights: !!state.core && !!state.core.user && !!state.core.user.i_user ? state.core.user.i_user.rights : []
3112
- };
3113
- };
3114
- var mapDispatchToProps$a = function mapDispatchToProps(dispatch) {
3115
- return redux.bindActionCreators({}, dispatch);
3116
- };
3117
- var AdditionalFieldsDialog$1 = reactIntl.injectIntl(styles$6.withTheme(styles$6.withStyles(styles)(reactRedux.connect(mapStateToProps$a, mapDispatchToProps$a)(AdditionalFieldsDialog))));
3118
-
3119
- /* eslint-disable max-len */
3120
- var useStyles$6 = styles$7.makeStyles(function () {
3121
- return {
3122
- topHeader: {
3123
- display: 'flex',
3124
- justifyContent: 'start',
3125
- alignItems: 'center',
3126
- width: '100%',
3127
- '& img': {
3128
- minWidth: '250px',
3129
- maxWidth: '300px',
3130
- width: 'auto',
3131
- height: 'auto'
3132
- }
3133
- },
3134
- printContainer: {
3135
- display: 'flex',
3136
- flexDirection: 'column',
3137
- alignItems: 'center',
3138
- justifyContent: 'center',
3070
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3071
+ variant: "h6",
3072
+ gutterBottom: true
3073
+ }, formatMessage('payroll.bistp.skippedNib')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3074
+ variant: "body1"
3075
+ }, (_bistpSummary$skipped = bistpSummary.skippedNib) !== null && _bistpSummary$skipped !== void 0 ? _bistpSummary$skipped : 0))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3076
+ item: true,
3077
+ xs: 3
3078
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3079
+ elevation: 3,
3080
+ style: {
3139
3081
  padding: '20px',
3140
- fontWeight: '500'
3141
- },
3142
- date: {
3143
- fontSize: '16px'
3144
- },
3145
- detailsContainer: {
3146
- display: 'flex',
3147
- flexDirection: 'column',
3148
- padding: '12px',
3149
- width: '100%'
3150
- },
3151
- detailRow: {
3152
- display: 'flex',
3153
- flexDirection: 'row',
3154
- alignItems: 'center',
3155
- justifyContent: 'space-between',
3156
- padding: '4px'
3157
- },
3158
- detailName: {
3159
- fontWeight: '600',
3160
- fontSize: '16px',
3161
- textTransform: 'uppercase'
3162
- },
3163
- detailValue: {
3164
- fontWeight: '500',
3165
- backgroundColor: '#f5f5f5',
3166
- padding: '6px',
3167
- borderRadius: '8px',
3168
- fontSize: '15px'
3169
- },
3170
- containerPadding: {
3171
- padding: '32px'
3172
- },
3173
- dividerMargin: {
3174
- margin: '12px 0'
3175
- },
3176
- sectionTitle: {
3177
- fontWeight: '700',
3178
- fontSize: '18px',
3179
- textTransform: 'uppercase',
3180
- marginBottom: '12px'
3082
+ backgroundColor: '#fce4ec'
3181
3083
  }
3182
- };
3183
- });
3184
- var PayrollBenefitPrintTemplate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3185
- var benefitAttachments = _ref.benefitAttachments;
3186
- if (!benefitAttachments) return null;
3187
- var classes = useStyles$6();
3188
- var modulesManager = feCore.useModulesManager();
3189
- var _useTranslations = feCore.useTranslations(modulesManager, MODULE_NAME),
3190
- formatMessage = _useTranslations.formatMessage;
3191
- return /*#__PURE__*/React__default["default"].createElement("div", {
3192
- ref: ref,
3193
- className: classes.printContainer
3194
- }, benefitAttachments.map(function (benefitAttachment, index) {
3195
- var _benefitAttachment$bi;
3196
- return /*#__PURE__*/React__default["default"].createElement("div", {
3197
- key: index,
3198
- className: classes.detailsContainer
3199
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3200
- className: classes.sectionTitle
3201
- }, "Payment: ".concat(benefitAttachment.benefit.code, " - ").concat(benefitAttachment.benefit.individual.firstName, ", ").concat(benefitAttachment.benefit.individual.lastName)), /*#__PURE__*/React__default["default"].createElement("div", {
3202
- className: classes.detailRow
3203
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3204
- className: classes.detailName
3205
- }, formatMessage('payroll.benefitConsumption.individual.firstName')), /*#__PURE__*/React__default["default"].createElement("div", {
3206
- className: classes.detailValue
3207
- }, benefitAttachment.benefit.individual.firstName)), /*#__PURE__*/React__default["default"].createElement("div", {
3208
- className: classes.detailRow
3209
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3210
- className: classes.detailName
3211
- }, formatMessage('payroll.benefitConsumption.individual.lastName')), /*#__PURE__*/React__default["default"].createElement("div", {
3212
- className: classes.detailValue
3213
- }, benefitAttachment.benefit.individual.lastName)), /*#__PURE__*/React__default["default"].createElement("div", {
3214
- className: classes.detailRow
3215
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3216
- className: classes.detailName
3217
- }, formatMessage('payroll.benefitConsumption.code')), /*#__PURE__*/React__default["default"].createElement("div", {
3218
- className: classes.detailValue
3219
- }, benefitAttachment.benefit.code)), /*#__PURE__*/React__default["default"].createElement("div", {
3220
- className: classes.detailRow
3221
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3222
- className: classes.detailName
3223
- }, formatMessage('payroll.benefitConsumption.dateDue')), /*#__PURE__*/React__default["default"].createElement("div", {
3224
- className: classes.detailValue
3225
- }, benefitAttachment.benefit.dateDue)), /*#__PURE__*/React__default["default"].createElement("div", {
3226
- className: classes.detailRow
3227
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3228
- className: classes.detailName
3229
- }, formatMessage('payroll.benefitConsumption.receipt')), /*#__PURE__*/React__default["default"].createElement("div", {
3230
- className: classes.detailValue
3231
- }, benefitAttachment.benefit.receipt)), /*#__PURE__*/React__default["default"].createElement("div", {
3232
- className: classes.detailRow
3233
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3234
- className: classes.detailName
3235
- }, formatMessage('payroll.benefitConsumption.amount')), /*#__PURE__*/React__default["default"].createElement("div", {
3236
- className: classes.detailValue
3237
- }, benefitAttachment.benefit.amount)), /*#__PURE__*/React__default["default"].createElement("div", {
3238
- className: classes.detailRow
3239
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3240
- className: classes.detailName
3241
- }, formatMessage('payroll.benefitConsumption.type')), /*#__PURE__*/React__default["default"].createElement("div", {
3242
- className: classes.detailValue
3243
- }, benefitAttachment.benefit.type)), /*#__PURE__*/React__default["default"].createElement("div", {
3244
- className: classes.detailRow
3245
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3246
- className: classes.detailName
3247
- }, formatMessage('payroll.benefitConsumption.status')), /*#__PURE__*/React__default["default"].createElement("div", {
3248
- className: classes.detailValue
3249
- }, benefitAttachment.benefit.status)), /*#__PURE__*/React__default["default"].createElement("div", {
3250
- className: classes.detailRow
3251
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3252
- className: classes.detailName
3253
- }, formatMessage('payroll.benefitConsumption.payedOnTime')), /*#__PURE__*/React__default["default"].createElement("div", {
3254
- className: classes.detailValue
3255
- }, benefitAttachment.benefit.payedOnTime ? 'Yes' : 'No')), /*#__PURE__*/React__default["default"].createElement("div", {
3256
- className: classes.detailRow
3257
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3258
- className: classes.detailName
3259
- }, formatMessage('payroll.benefitConsumption.paymentDate')), /*#__PURE__*/React__default["default"].createElement("div", {
3260
- className: classes.detailValue
3261
- }, !benefitAttachment.benefit.receipt ? '' : benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$bi = benefitAttachment.bill) === null || _benefitAttachment$bi === void 0 ? void 0 : _benefitAttachment$bi.datePayed)), /*#__PURE__*/React__default["default"].createElement(core.Divider, {
3262
- className: classes.dividerMargin
3263
- }));
3264
- }));
3265
- });
3266
-
3267
- function BenefitConsumptionSearcherModal(_ref) {
3268
- var fetchBenefitAttachments = _ref.fetchBenefitAttachments,
3269
- fetchingBenefitAttachments = _ref.fetchingBenefitAttachments,
3270
- fetchedBenefitAttachments = _ref.fetchedBenefitAttachments,
3271
- errorBenefitAttachments = _ref.errorBenefitAttachments,
3272
- benefitAttachments = _ref.benefitAttachments,
3273
- benefitAttachmentsPageInfo = _ref.benefitAttachmentsPageInfo,
3274
- benefitAttachmentsTotalCount = _ref.benefitAttachmentsTotalCount,
3275
- payrollUuid = _ref.payrollUuid,
3276
- reconciledMode = _ref.reconciledMode,
3277
- payrollDetail = _ref.payrollDetail,
3278
- deleteBenefitConsumption = _ref.deleteBenefitConsumption;
3279
- var modulesManager = feCore.useModulesManager();
3280
- var _useTranslations = feCore.useTranslations('payroll', modulesManager),
3281
- formatMessage = _useTranslations.formatMessage,
3282
- formatMessageWithValues = _useTranslations.formatMessageWithValues;
3283
- var _useState = React.useState(null),
3284
- _useState2 = _slicedToArray__default["default"](_useState, 2),
3285
- selectedBenefitAttachment = _useState2[0],
3286
- setSelectedBenefitAttachment = _useState2[1];
3287
- var _useState3 = React.useState(false),
3288
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
3289
- openConfirmDialog = _useState4[0],
3290
- setOpenConfirmDialog = _useState4[1];
3291
- var _useState5 = React.useState(null),
3292
- _useState6 = _slicedToArray__default["default"](_useState5, 2),
3293
- benefitToDelete = _useState6[0],
3294
- setBenefitToDelete = _useState6[1];
3295
- var payrollPrintTemplateRef = React.useRef(null);
3296
- var handlePrint = reactToPrint.useReactToPrint({
3297
- documentTitle: "".concat(payrollUuid)
3298
- });
3299
- var fetch = function fetch(params) {
3300
- fetchBenefitAttachments(modulesManager, params);
3301
- };
3302
- var defaultFilters = function defaultFilters() {
3303
- var filters = {
3304
- isDeleted: {
3305
- value: false,
3306
- filter: 'isDeleted: false'
3307
- },
3308
- payrollUuid: {
3309
- value: payrollUuid,
3310
- filter: "payrollUuid: \"".concat(payrollUuid, "\"")
3311
- }
3312
- };
3313
- if (reconciledMode && payrollDetail.paymentMethod !== 'StrategyOnlinePayment') {
3314
- filters.benefit_Status = {
3315
- value: 'RECONCILED',
3316
- filter: "benefit_Status: ".concat(PAYROLL_STATUS.RECONCILED)
3317
- };
3318
- }
3319
- return filters;
3320
- };
3321
- var defaultFiltersArray = function defaultFiltersArray() {
3322
- var filters = ['isDeleted: false', "first: ".concat(DEFAULT_PAGE_SIZE), "payrollUuid: \"".concat(payrollUuid, "\"")];
3323
- if (reconciledMode && payrollDetail.paymentMethod !== 'StrategyOnlinePayment') {
3324
- filters.push("benefit_Status: ".concat(PAYROLL_STATUS.RECONCILED));
3084
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3085
+ variant: "h6",
3086
+ gutterBottom: true
3087
+ }, formatMessage('payroll.bistp.sendFailed')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3088
+ variant: "body1"
3089
+ }, (_bistpSummary$sendFai = bistpSummary.sendFailed) !== null && _bistpSummary$sendFai !== void 0 ? _bistpSummary$sendFai : 0)))) : /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3090
+ container: true,
3091
+ spacing: 2
3092
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3093
+ item: true,
3094
+ xs: 4
3095
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3096
+ elevation: 3,
3097
+ style: {
3098
+ padding: '20px'
3325
3099
  }
3326
- return filters;
3327
- };
3328
- var headers = function headers() {
3329
- return ['benefitConsumption.photo', 'benefitConsumption.individual.firstName', 'benefitConsumption.individual.lastName', 'benefitConsumption.amount', 'benefitConsumption.receipt', 'benefitConsumption.dateDue', 'benefitConsumption.payedOnTime', 'benefitConsumption.paymentDate', 'benefitConsumption.status', '', ''];
3330
- };
3331
- var confirmDeleteBenefitConsumption = function confirmDeleteBenefitConsumption(benefit) {
3332
- setBenefitToDelete(benefit);
3333
- setOpenConfirmDialog(true);
3334
- };
3335
- var handleDeleteBenefitConsumption = function handleDeleteBenefitConsumption() {
3336
- deleteBenefitConsumption(benefitToDelete.benefit, formatMessageWithValues('payroll.mutation.deleteLabel', mutationLabel(benefitToDelete.benefit.code)));
3337
- setOpenConfirmDialog(false);
3338
- setBenefitToDelete(null);
3339
- var filters = defaultFiltersArray();
3340
- fetchBenefitAttachments(modulesManager, filters); // Refresh the searcher after deletion
3341
- };
3342
- var checkBenefitDueDate = function checkBenefitDueDate(benefitAttachment) {
3343
- if (!benefitAttachment.benefit.receipt) {
3344
- return ''; // return empty string if datePayed is null
3100
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3101
+ variant: "h6",
3102
+ gutterBottom: true
3103
+ }, formatMessage('payroll.summary.selectedBeneficiaries')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3104
+ variant: "body1"
3105
+ }, formatMessageWithValues('payroll.summary.beneficiariesCount', {
3106
+ selectedBeneficiaries: selectedBeneficiaries,
3107
+ totalBeneficiaries: totalBeneficiaries
3108
+ })))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3109
+ item: true,
3110
+ xs: 4
3111
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3112
+ elevation: 3,
3113
+ style: {
3114
+ padding: '20px'
3345
3115
  }
3346
- return benefitAttachment.benefit && benefitAttachment.benefit.dateDue >= benefitAttachment.bill.datePayed ? 'True' : 'False';
3347
- };
3348
- var itemFormatters = function itemFormatters() {
3349
- return [function (benefitAttachment) {
3350
- return benefitAttachment.benefit.receipt ? /*#__PURE__*/React__default["default"].createElement(PhotoCameraOutlinedIcon__default["default"], {
3351
- style: {
3352
- fontSize: 150
3353
- }
3354
- }) : null;
3355
- }, function (benefitAttachment) {
3356
- var _benefitAttachment$be;
3357
- return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be = benefitAttachment.benefit) === null || _benefitAttachment$be === void 0 || (_benefitAttachment$be = _benefitAttachment$be.individual) === null || _benefitAttachment$be === void 0 ? void 0 : _benefitAttachment$be.firstName;
3358
- }, function (benefitAttachment) {
3359
- var _benefitAttachment$be2;
3360
- return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be2 = benefitAttachment.benefit) === null || _benefitAttachment$be2 === void 0 || (_benefitAttachment$be2 = _benefitAttachment$be2.individual) === null || _benefitAttachment$be2 === void 0 ? void 0 : _benefitAttachment$be2.lastName;
3361
- }, function (benefitAttachment) {
3362
- var _benefitAttachment$bi;
3363
- return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$bi = benefitAttachment.bill) === null || _benefitAttachment$bi === void 0 ? void 0 : _benefitAttachment$bi.amountTotal;
3364
- }, function (benefitAttachment) {
3365
- var _benefitAttachment$be3;
3366
- return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be3 = benefitAttachment.benefit) === null || _benefitAttachment$be3 === void 0 ? void 0 : _benefitAttachment$be3.receipt;
3367
- }, function (benefitAttachment) {
3368
- var _benefitAttachment$be4;
3369
- return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be4 = benefitAttachment.benefit) === null || _benefitAttachment$be4 === void 0 ? void 0 : _benefitAttachment$be4.dateDue;
3370
- }, function (benefitAttachment) {
3371
- return checkBenefitDueDate(benefitAttachment);
3372
- }, function (benefitAttachment) {
3373
- var _benefitAttachment$bi2;
3374
- return !benefitAttachment.benefit.receipt ? '' : benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$bi2 = benefitAttachment.bill) === null || _benefitAttachment$bi2 === void 0 ? void 0 : _benefitAttachment$bi2.datePayed;
3375
- }, function (benefitAttachment) {
3376
- var _benefitAttachment$be5;
3377
- return benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be5 = benefitAttachment.benefit) === null || _benefitAttachment$be5 === void 0 ? void 0 : _benefitAttachment$be5.status;
3378
- }, function (benefitAttachment) {
3379
- var _benefitAttachment$be6;
3380
- return /*#__PURE__*/React__default["default"].createElement(AdditionalFieldsDialog$1, {
3381
- jsonExt: benefitAttachment === null || benefitAttachment === void 0 || (_benefitAttachment$be6 = benefitAttachment.benefit) === null || _benefitAttachment$be6 === void 0 ? void 0 : _benefitAttachment$be6.jsonExt,
3382
- buttonLabel: "payroll.additonalFields.showAdditionalFields",
3383
- title: "payroll.additonalFields.label"
3384
- });
3385
- }, function (benefitAttachment) {
3386
- return /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3387
- onClick: function onClick() {},
3388
- variant: "contained",
3389
- color: "primary",
3390
- disabled: !!benefitAttachment.benefit.receipt
3391
- }, formatMessage('payroll.summary.confirm'));
3392
- }, function (benefitAttachment) {
3393
- return payrollDetail.paymentMethod === 'StrategyOnlinePayment' && payrollDetail.status === PAYROLL_STATUS.RECONCILED && benefitAttachment.benefit.status !== 'RECONCILED' && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3394
- onClick: function onClick() {
3395
- return setSelectedBenefitAttachment(benefitAttachment);
3396
- },
3397
- variant: "contained",
3398
- style: {
3399
- backgroundColor: '#b80000',
3400
- color: 'white'
3401
- }
3402
- }, formatMessage('payroll.summary.benefit_error'));
3403
- }, function (benefitAttachment) {
3404
- return payrollDetail.status === PAYROLL_STATUS.PENDING_APPROVAL && benefitAttachment.benefit.status !== 'PENDING_DELETION' && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3405
- onClick: function onClick() {
3406
- return confirmDeleteBenefitConsumption(benefitAttachment);
3407
- },
3408
- variant: "contained",
3409
- style: {
3410
- backgroundColor: '#b80000',
3411
- color: 'white'
3412
- }
3413
- }, formatMessage('payroll.summary.benefit_delete'));
3414
- }];
3415
- };
3416
- var rowIdentifier = function rowIdentifier(benefitAttachment) {
3417
- return benefitAttachment.id;
3418
- };
3419
- var sorts = function sorts() {
3420
- return [['benefit_photo', false], ['benefit_individual_FirstName', true], ['benefit_individual_LastName', true], ['bill_amountTotal', true], ['benefit_receipt', true], ['benefit_dateDue', true]];
3421
- };
3422
- var benefitConsumptionFilterModal = function benefitConsumptionFilterModal(_ref2) {
3423
- var filters = _ref2.filters,
3424
- onChangeFilters = _ref2.onChangeFilters;
3425
- return /*#__PURE__*/React__default["default"].createElement(BenefitConsumptionFilterModal, {
3426
- filters: filters,
3427
- onChangeFilters: onChangeFilters
3428
- });
3429
- };
3430
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3431
- size: "small",
3116
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3117
+ variant: "h6",
3118
+ gutterBottom: true
3119
+ }, formatMessage('payroll.summary.totalAmountForInvoice')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3120
+ variant: "body1"
3121
+ }, totalBillAmount))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3122
+ item: true,
3123
+ xs: 4
3124
+ }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3125
+ elevation: 3,
3126
+ style: {
3127
+ padding: '20px'
3128
+ }
3129
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3130
+ variant: "h6",
3131
+ gutterBottom: true
3132
+ }, formatMessage('payroll.summary.deliveredReconciliation')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3133
+ variant: "body1"
3134
+ }, totalReconciledBillAmount)))), /*#__PURE__*/React__default["default"].createElement("div", {
3135
+ style: {
3136
+ backgroundColor: '#DFEDEF'
3137
+ }
3138
+ }, /*#__PURE__*/React__default["default"].createElement(BenefitConsumptionSearcherModal$1, {
3139
+ payrollUuid: payrollDetail.id,
3140
+ payrollDetail: payrollDetail
3141
+ }))), /*#__PURE__*/React__default["default"].createElement(DialogActions__default["default"], {
3142
+ style: {
3143
+ display: 'inline',
3144
+ paddingLeft: '10px',
3145
+ marginTop: '25px',
3146
+ marginBottom: '15px',
3147
+ width: '100%'
3148
+ }
3149
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3150
+ style: {
3151
+ maxWidth: '3000px'
3152
+ }
3153
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3154
+ style: {
3155
+ "float": 'left'
3156
+ }
3157
+ }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3158
+ onClick: function onClick() {
3159
+ return closePayrollCallback();
3160
+ },
3432
3161
  variant: "contained",
3433
3162
  color: "primary",
3434
- startIcon: /*#__PURE__*/React__default["default"].createElement(PrintIcon__default["default"], null),
3435
- onClick: function onClick(e) {
3436
- e.preventDefault();
3437
- handlePrint(null, function () {
3438
- return payrollPrintTemplateRef.current;
3439
- });
3163
+ disabled: payrollDetail.paymentMethod === PAYMENT_METHOD.STRATEGY_ONLINE_PAYMENT ? approvedBeneficiaries === 0 : selectedBeneficiaries === 0,
3164
+ style: {
3165
+ margin: '0 16px',
3166
+ marginBottom: '15px'
3440
3167
  }
3441
- }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3442
- variant: "subtitle1"
3443
- }, "Print"))), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(feCore.Searcher, {
3444
- module: "payroll",
3445
- FilterPane: benefitConsumptionFilterModal,
3446
- fetch: fetch,
3447
- items: benefitAttachments,
3448
- itemsPageInfo: benefitAttachmentsPageInfo,
3449
- fetchingItems: fetchingBenefitAttachments,
3450
- fetchedItems: fetchedBenefitAttachments,
3451
- errorItems: errorBenefitAttachments,
3452
- tableTitle: formatMessageWithValues('benefitAttachment.searcherResultsTitle', {
3453
- benefitAttachmentsTotalCount: benefitAttachmentsTotalCount
3454
- }),
3455
- headers: headers,
3456
- itemFormatters: itemFormatters,
3457
- sorts: sorts,
3458
- rowsPerPageOptions: ROWS_PER_PAGE_OPTIONS,
3459
- defaultPageSize: DEFAULT_PAGE_SIZE,
3460
- rowIdentifier: rowIdentifier,
3461
- defaultFilters: defaultFilters()
3462
- }), selectedBenefitAttachment && /*#__PURE__*/React__default["default"].createElement(ErrorSummaryModal, {
3463
- open: !!selectedBenefitAttachment,
3464
- onClose: function onClose() {
3465
- return setSelectedBenefitAttachment(null);
3168
+ }, formatMessage('payroll.summary.approveAndClose')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3169
+ onClick: function onClick() {
3170
+ return downloadPayrollData(payrollDetail.id, payrollDetail.name);
3466
3171
  },
3467
- benefitAttachment: selectedBenefitAttachment
3468
- }), /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
3469
- open: openConfirmDialog,
3470
- onClose: function onClose() {
3471
- return setOpenConfirmDialog(false);
3172
+ variant: "contained",
3173
+ color: "primary",
3174
+ style: {
3175
+ margin: '0 16px',
3176
+ marginBottom: '15px'
3472
3177
  }
3473
- }, /*#__PURE__*/React__default["default"].createElement(DialogTitle__default["default"], null, formatMessage('benefitConsumption.delete.confirm.title')), /*#__PURE__*/React__default["default"].createElement(DialogContent__default["default"], null, /*#__PURE__*/React__default["default"].createElement(DialogContentText__default["default"], null, formatMessage('benefitConsumption.delete.confirm.message'))), /*#__PURE__*/React__default["default"].createElement(DialogActions__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3178
+ }, formatMessage('payroll.summary.download')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3474
3179
  onClick: function onClick() {
3475
- return setOpenConfirmDialog(false);
3180
+ return rejectPayrollCallback();
3476
3181
  },
3477
- color: "primary"
3478
- }, formatMessage('benefitConsumption.cancel')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3479
- onClick: handleDeleteBenefitConsumption,
3182
+ variant: "contained",
3480
3183
  color: "primary",
3481
- autoFocus: true
3482
- }, formatMessage('benefitConsumption.confirm')))), /*#__PURE__*/React__default["default"].createElement("div", {
3483
3184
  style: {
3484
- display: 'none'
3185
+ margin: '0 16px',
3186
+ marginBottom: '15px'
3485
3187
  }
3486
- }, /*#__PURE__*/React__default["default"].createElement(PayrollBenefitPrintTemplate, {
3487
- ref: payrollPrintTemplateRef,
3488
- benefitAttachments: benefitAttachments
3489
- }))));
3188
+ }, formatMessage('payroll.summary.reject'))), /*#__PURE__*/React__default["default"].createElement("div", {
3189
+ style: {
3190
+ "float": 'right',
3191
+ paddingRight: '16px'
3192
+ }
3193
+ }, (payrollDetail.paymentMethod === PAYMENT_METHOD.STRATEGY_ONLINE_PAYMENT || payrollDetail.paymentMethod === PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3194
+ onClick: function onClick() {
3195
+ return makePaymentForPayrollCallback();
3196
+ },
3197
+ variant: "contained",
3198
+ color: "primary",
3199
+ style: {
3200
+ margin: '0 16px'
3201
+ }
3202
+ }, payrollDetail.paymentMethod === PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT ? formatMessage('payroll.bistp.submitPayment') : formatMessage('payroll.summary.makePayment')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3203
+ onClick: handleClose,
3204
+ variant: "outlined",
3205
+ autoFocus: true,
3206
+ style: {
3207
+ margin: '0 16px'
3208
+ }
3209
+ }, formatMessage('payroll.summary.close')))))));
3490
3210
  }
3491
- var mapStateToProps$9 = function mapStateToProps(state) {
3211
+ var mapStateToProps$a = function mapStateToProps(state) {
3492
3212
  return {
3493
- fetchingBenefitAttachments: state.payroll.fetchingBenefitAttachments,
3494
- fetchedBenefitAttachments: state.payroll.fetchedBenefitAttachments,
3495
- errorBenefitAttachments: state.payroll.errorBenefitAttachments,
3496
- benefitAttachments: state.payroll.benefitAttachments,
3497
- benefitAttachmentsPageInfo: state.payroll.benefitAttachmentsPageInfo,
3498
- benefitAttachmentsTotalCount: state.payroll.benefitAttachmentsTotalCount
3213
+ rights: !!state.core && !!state.core.user && !!state.core.user.i_user ? state.core.user.i_user.rights : [],
3214
+ confirmed: state.core.confirmed,
3215
+ payroll: state.payroll.payroll
3499
3216
  };
3500
3217
  };
3501
- var mapDispatchToProps$9 = function mapDispatchToProps(dispatch) {
3218
+ var mapDispatchToProps$a = function mapDispatchToProps(dispatch) {
3502
3219
  return redux.bindActionCreators({
3503
- fetchBenefitAttachments: fetchBenefitAttachments,
3504
- deleteBenefitConsumption: deleteBenefitConsumption
3220
+ closePayroll: closePayroll,
3221
+ rejectPayroll: rejectPayroll,
3222
+ fetchPayroll: fetchPayroll,
3223
+ makePaymentForPayroll: makePaymentForPayroll
3505
3224
  }, dispatch);
3506
3225
  };
3507
- var BenefitConsumptionSearcherModal$1 = reactRedux.connect(mapStateToProps$9, mapDispatchToProps$9)(BenefitConsumptionSearcherModal);
3226
+ var PaymentApproveForPaymentSummary = reactRedux.connect(mapStateToProps$a, mapDispatchToProps$a)(PaymentApproveForPaymentDialog);
3508
3227
 
3509
- function PaymentApproveForPaymentDialog(_ref) {
3510
- var _payrollDetail$id;
3511
- var classes = _ref.classes,
3228
+ var useStyles$9 = styles$7.makeStyles(function (theme) {
3229
+ return {
3230
+ paper: theme.paper.paper,
3231
+ tableTitle: theme.table.title,
3232
+ tabs: {
3233
+ display: 'flex',
3234
+ alignItems: 'center'
3235
+ },
3236
+ selectedTab: {
3237
+ borderBottom: '4px solid white'
3238
+ },
3239
+ unselectedTab: {
3240
+ borderBottom: '4px solid transparent'
3241
+ },
3242
+ button: {
3243
+ marginLeft: 'auto',
3244
+ padding: theme.spacing(1),
3245
+ fontSize: '0.875rem',
3246
+ textTransform: 'none'
3247
+ }
3248
+ };
3249
+ });
3250
+ function PayrollTab(_ref) {
3251
+ var rights = _ref.rights,
3252
+ setConfirmedAction = _ref.setConfirmedAction,
3253
+ payrollUuid = _ref.payrollUuid,
3254
+ isInTask = _ref.isInTask,
3255
+ payroll = _ref.payroll,
3256
+ isPayrollFromFailedInvoices = _ref.isPayrollFromFailedInvoices;
3257
+ var classes = useStyles$9();
3258
+ var _useState = React.useState(BENEFIT_CONSUMPTION_LIST_TAB_VALUE),
3259
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
3260
+ activeTab = _useState2[0],
3261
+ setActiveTab = _useState2[1];
3262
+ var isSelected = function isSelected(tab) {
3263
+ return tab === activeTab;
3264
+ };
3265
+ var tabStyle = function tabStyle(tab) {
3266
+ return isSelected(tab) ? classes.selectedTab : classes.unselectedTab;
3267
+ };
3268
+ var handleChange = function handleChange(_, tab) {
3269
+ return setActiveTab(tab);
3270
+ };
3271
+ var modulesManager = feCore.useModulesManager();
3272
+ var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
3273
+ formatMessage = _useTranslations.formatMessage;
3274
+ var downloadPayrollData = function downloadPayrollData(payrollUuid, payrollName) {
3275
+ downloadPayroll(payrollUuid, payrollName);
3276
+ };
3277
+ return /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3278
+ className: classes.paper
3279
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3280
+ container: true,
3281
+ className: "".concat(classes.tableTitle, " ").concat(classes.tabs)
3282
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3283
+ style: {
3284
+ width: '100%'
3285
+ }
3286
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3287
+ style: {
3288
+ "float": 'left'
3289
+ }
3290
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.Contributions, {
3291
+ contributionKey: PAYROLL_TABS_LABEL_CONTRIBUTION_KEY,
3292
+ rights: rights,
3293
+ value: activeTab,
3294
+ onChange: handleChange,
3295
+ isSelected: isSelected,
3296
+ tabStyle: tabStyle,
3297
+ payrollUuid: payrollUuid,
3298
+ isInTask: isInTask,
3299
+ isPayrollFromFailedInvoices: isPayrollFromFailedInvoices
3300
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
3301
+ style: {
3302
+ "float": 'right',
3303
+ paddingRight: '16px'
3304
+ }
3305
+ }, payrollUuid && !isPayrollFromFailedInvoices && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3306
+ onClick: function onClick() {
3307
+ return downloadPayrollData(payrollUuid, payroll.name);
3308
+ },
3309
+ color: "#DFEDEF",
3310
+ className: classes.button,
3311
+ style: {
3312
+ border: '0px',
3313
+ marginTop: '6px',
3314
+ textTransform: 'uppercase'
3315
+ }
3316
+ }, formatMessage('payroll.summary.download')), payrollUuid && (payroll === null || payroll === void 0 ? void 0 : payroll.status) === PAYROLL_STATUS.APPROVE_FOR_PAYMENT && payroll.paymentMethod === PAYMENT_METHOD.STRATEGY_OFFLINE_PAYMENT && /*#__PURE__*/React__default["default"].createElement(PayrollPaymentDataUploadDialog$1, {
3317
+ payrollUuid: payrollUuid
3318
+ }), payrollUuid && (payroll === null || payroll === void 0 ? void 0 : payroll.status) === PAYROLL_STATUS.APPROVE_FOR_PAYMENT && payroll.paymentMethod === PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT && /*#__PURE__*/React__default["default"].createElement(PaymentApproveForPaymentSummary, {
3319
+ classes: {},
3320
+ payrollDetail: payroll
3321
+ })))), /*#__PURE__*/React__default["default"].createElement(feCore.Contributions, {
3322
+ contributionKey: PAYROLL_TABS_PANEL_CONTRIBUTION_KEY,
3323
+ rights: rights,
3324
+ value: activeTab,
3325
+ setConfirmedAction: setConfirmedAction,
3326
+ payrollUuid: payrollUuid,
3327
+ isInTask: isInTask,
3328
+ isPayrollFromFailedInvoices: isPayrollFromFailedInvoices
3329
+ }));
3330
+ }
3331
+
3332
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3333
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3334
+ var useStyles$8 = styles$7.makeStyles(function (theme) {
3335
+ return {
3336
+ page: theme.page
3337
+ };
3338
+ });
3339
+ function PayrollPage(_ref) {
3340
+ var statePayrollUuid = _ref.statePayrollUuid,
3341
+ taskPayrollUuid = _ref.taskPayrollUuid,
3342
+ rights = _ref.rights,
3343
+ confirmed = _ref.confirmed,
3344
+ submittingMutation = _ref.submittingMutation,
3345
+ mutation = _ref.mutation,
3512
3346
  payroll = _ref.payroll,
3513
- closePayroll = _ref.closePayroll,
3514
- rejectPayroll = _ref.rejectPayroll,
3515
- payrollDetail = _ref.payrollDetail,
3516
3347
  fetchPayroll = _ref.fetchPayroll,
3517
- makePaymentForPayroll = _ref.makePaymentForPayroll;
3348
+ createPayroll = _ref.createPayroll,
3349
+ clearPayroll = _ref.clearPayroll,
3350
+ clearConfirm = _ref.clearConfirm,
3351
+ createPayrollFromFailedInvoices = _ref.createPayrollFromFailedInvoices,
3352
+ journalize = _ref.journalize,
3353
+ benefitPlanId = _ref.benefitPlanId;
3518
3354
  var modulesManager = feCore.useModulesManager();
3519
- var _useState = React.useState((_payrollDetail$id = payrollDetail === null || payrollDetail === void 0 ? void 0 : payrollDetail.id) !== null && _payrollDetail$id !== void 0 ? _payrollDetail$id : null),
3520
- _useState2 = _slicedToArray__default["default"](_useState, 1),
3521
- payrollUuid = _useState2[0];
3522
- var _useState3 = React.useState(false),
3355
+ var classes = useStyles$8();
3356
+ var history = feCore.useHistory();
3357
+ var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
3358
+ formatMessage = _useTranslations.formatMessage,
3359
+ formatMessageWithValues = _useTranslations.formatMessageWithValues;
3360
+ var _useState = React.useState({}),
3361
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
3362
+ editedPayroll = _useState2[0],
3363
+ setEditedPayroll = _useState2[1];
3364
+ var _useState3 = React.useState(null),
3523
3365
  _useState4 = _slicedToArray__default["default"](_useState3, 2),
3524
- isOpen = _useState4[0],
3525
- setIsOpen = _useState4[1];
3526
- var _useState5 = React.useState(0),
3366
+ payrollUuid = _useState4[0],
3367
+ setPayrollUuid = _useState4[1];
3368
+ var _useState5 = React.useState(false),
3527
3369
  _useState6 = _slicedToArray__default["default"](_useState5, 2),
3528
- totalBeneficiaries = _useState6[0],
3529
- setTotalBeneficiaries = _useState6[1];
3530
- var _useState7 = React.useState(0),
3370
+ isInTask = _useState6[0],
3371
+ setIsInTask = _useState6[1];
3372
+ var _useState7 = React.useState(false),
3531
3373
  _useState8 = _slicedToArray__default["default"](_useState7, 2),
3532
- selectedBeneficiaries = _useState8[0],
3533
- setSelectedBeneficiaries = _useState8[1];
3534
- var _useState9 = React.useState(0),
3374
+ readOnly = _useState8[0],
3375
+ setReadOnly = _useState8[1];
3376
+ var _useState9 = React.useState(false),
3535
3377
  _useState0 = _slicedToArray__default["default"](_useState9, 2),
3536
- approvedBeneficiaries = _useState0[0],
3537
- setApprovedBeneficiaries = _useState0[1];
3538
- var _useState1 = React.useState(0),
3378
+ isPayrollFromFailedInvoices = _useState0[0],
3379
+ setIsPayrollFromFailedInvoices = _useState0[1];
3380
+ var _useState1 = React.useState(function () {
3381
+ return null;
3382
+ }),
3539
3383
  _useState10 = _slicedToArray__default["default"](_useState1, 2),
3540
- totalBillAmount = _useState10[0],
3541
- setTotalBillAmount = _useState10[1];
3542
- var _useState11 = React.useState(0),
3543
- _useState12 = _slicedToArray__default["default"](_useState11, 2),
3544
- totalReconciledBillAmount = _useState12[0],
3545
- setTotalReconciledBillAmount = _useState12[1];
3546
- var handleOpen = function handleOpen() {
3384
+ confirmedAction = _useState10[0],
3385
+ setConfirmedAction = _useState10[1];
3386
+ var prevSubmittingMutationRef = React.useRef();
3387
+ var back = function back() {
3388
+ return history.goBack();
3389
+ };
3390
+ React.useEffect(function () {
3391
+ if (createPayrollFromFailedInvoices === PAYROLL_FROM_FAILED_INVOICES_URL_PARAM) {
3392
+ setIsPayrollFromFailedInvoices(true);
3393
+ }
3394
+ }, [createPayrollFromFailedInvoices, payrollUuid]);
3395
+ React.useEffect(function () {
3396
+ setPayrollUuid(statePayrollUuid !== null && statePayrollUuid !== void 0 ? statePayrollUuid : taskPayrollUuid);
3397
+ setIsInTask(!!taskPayrollUuid);
3398
+ }, [taskPayrollUuid, statePayrollUuid]);
3399
+ React.useEffect(function () {
3547
3400
  if (payrollUuid) {
3548
3401
  fetchPayroll(modulesManager, ["id: \"".concat(payrollUuid, "\"")]);
3549
3402
  }
3550
- setIsOpen(true);
3551
- };
3552
- var handleClose = function handleClose() {
3553
- setIsOpen(false);
3554
- };
3555
- var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
3556
- formatMessage = _useTranslations.formatMessage,
3557
- formatMessageWithValues = _useTranslations.formatMessageWithValues;
3403
+ }, [payrollUuid]);
3558
3404
  React.useEffect(function () {
3559
- if (isOpen && Object.keys(payroll).length > 0) {
3560
- // Calculate total benefits and reconciled benefits
3561
- var total = payroll.benefitConsumption.length;
3562
- var selected = payroll.benefitConsumption.filter(function (benefit) {
3563
- return benefit.status === BENEFIT_CONSUMPTION_STATUS.RECONCILED;
3564
- }).length;
3565
- var approved = payroll.benefitConsumption.filter(function (benefit) {
3566
- return benefit.status === BENEFIT_CONSUMPTION_STATUS.APPROVE_FOR_PAYMENT;
3567
- }).length;
3568
- setTotalBeneficiaries(total);
3569
- setSelectedBeneficiaries(selected);
3570
- setApprovedBeneficiaries(approved);
3571
- var totalAmount = 0;
3572
- var reconciledAmount = 0;
3573
- if (payroll && payroll.benefitConsumption) {
3574
- payroll.benefitConsumption.forEach(function (benefit) {
3575
- if (benefit.benefitAttachment && benefit.benefitAttachment.length > 0) {
3576
- benefit.benefitAttachment.forEach(function (attachment) {
3577
- if (attachment.bill && attachment.bill.amountTotal) {
3578
- totalAmount += parseFloat(attachment.bill.amountTotal);
3579
- if (benefit.status === BENEFIT_CONSUMPTION_STATUS.RECONCILED) {
3580
- reconciledAmount += parseFloat(attachment.bill.amountTotal);
3581
- }
3582
- }
3583
- });
3584
- }
3585
- });
3405
+ if (confirmed && typeof confirmed === 'function') confirmedAction();
3406
+ return function () {
3407
+ return confirmed && clearConfirm(null);
3408
+ };
3409
+ }, [confirmed]);
3410
+ React.useEffect(function () {
3411
+ if (prevSubmittingMutationRef.current && !submittingMutation) {
3412
+ journalize(mutation);
3413
+ if ((mutation === null || mutation === void 0 ? void 0 : mutation.actionType) === ACTION_TYPE.DELETE_PAYROLL) {
3414
+ back();
3415
+ }
3416
+ if (mutation !== null && mutation !== void 0 && mutation.clientMutationId && (!payrollUuid || isPayrollFromFailedInvoices)) {
3417
+ fetchPayroll(modulesManager, ["clientMutationId: \"".concat(mutation.clientMutationId, "\"")]);
3418
+ setIsPayrollFromFailedInvoices(false);
3586
3419
  }
3587
- setTotalBillAmount(totalAmount);
3588
- setTotalReconciledBillAmount(reconciledAmount);
3589
3420
  }
3590
- }, [isOpen, payroll]);
3591
- var closePayrollCallback = function closePayrollCallback() {
3592
- handleClose();
3593
- closePayroll(payrollDetail, formatMessageWithValues('payroll.mutation.closeLabel', mutationLabel(payrollDetail)));
3421
+ }, [submittingMutation]);
3422
+ React.useEffect(function () {
3423
+ prevSubmittingMutationRef.current = submittingMutation;
3424
+ });
3425
+ React.useEffect(function () {
3426
+ if (payroll) {
3427
+ setReadOnly(payroll === null || payroll === void 0 ? void 0 : payroll.id);
3428
+ if (isPayrollFromFailedInvoices) {
3429
+ setEditedPayroll(_objectSpread$1(_objectSpread$1({}, payroll), {}, {
3430
+ id: null,
3431
+ name: null,
3432
+ paymentCycle: null,
3433
+ status: null,
3434
+ fromFailedInvoicesPayrollId: payroll === null || payroll === void 0 ? void 0 : payroll.id
3435
+ }));
3436
+ } else {
3437
+ setEditedPayroll(payroll);
3438
+ }
3439
+ if (!payrollUuid && payroll !== null && payroll !== void 0 && payroll.id && !isPayrollFromFailedInvoices) {
3440
+ var payrollRouteRef = modulesManager.getRef('payroll.route.payroll');
3441
+ history.replace("/".concat(payrollRouteRef, "/").concat(payroll.id));
3442
+ }
3443
+ }
3444
+ }, [payroll]);
3445
+ React.useEffect(function () {
3446
+ return function () {
3447
+ return clearPayroll();
3448
+ };
3449
+ }, []);
3450
+ var mandatoryFieldsEmpty = function mandatoryFieldsEmpty() {
3451
+ if (editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.name && editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.paymentPlan && editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.paymentCycle && editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.paymentMethod && !(editedPayroll !== null && editedPayroll !== void 0 && editedPayroll.isDeleted)) return false;
3452
+ return true;
3594
3453
  };
3595
- var rejectPayrollCallback = function rejectPayrollCallback() {
3596
- handleClose();
3597
- rejectPayroll(payrollDetail, formatMessageWithValues('payroll.mutation.closeLabel', mutationLabel(payrollDetail)));
3454
+ var canSave = function canSave() {
3455
+ return !mandatoryFieldsEmpty() && (!readOnly || isPayrollFromFailedInvoices);
3598
3456
  };
3599
- var makePaymentForPayrollCallback = function makePaymentForPayrollCallback() {
3600
- handleClose();
3601
- makePaymentForPayroll(payrollDetail, formatMessageWithValues('payroll.mutation.closeLabel', mutationLabel(payrollDetail)));
3457
+ var handleSave = function handleSave() {
3458
+ createPayroll(editedPayroll, formatMessageWithValues('payroll.mutation.create', mutationLabel(payroll)));
3459
+ if (benefitPlanId) {
3460
+ back();
3461
+ }
3462
+ };
3463
+ var actions = [];
3464
+ return rights.includes(RIGHT_PAYROLL_CREATE) && /*#__PURE__*/React__default["default"].createElement("div", {
3465
+ className: classes.page
3466
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.Form, {
3467
+ key: payrollUuid,
3468
+ module: "payroll",
3469
+ title: formatMessageWithValues('payrollPage.title', pageTitle(payroll)),
3470
+ titleParams: pageTitle(payroll),
3471
+ openDirty: isPayrollFromFailedInvoices ? true : !payrollUuid,
3472
+ benefitPlan: editedPayroll,
3473
+ edited: editedPayroll,
3474
+ onEditedChanged: setEditedPayroll,
3475
+ back: !isInTask && back,
3476
+ mandatoryFieldsEmpty: mandatoryFieldsEmpty,
3477
+ canSave: canSave,
3478
+ save: handleSave,
3479
+ HeadPanel: PayrollHeadPanel$1,
3480
+ Panels: [PayrollTab],
3481
+ rights: rights,
3482
+ actions: actions,
3483
+ setConfirmedAction: setConfirmedAction,
3484
+ payrollUuid: payrollUuid,
3485
+ saveTooltip: formatMessage('tooltip.save'),
3486
+ isInTask: !!taskPayrollUuid,
3487
+ payroll: payroll,
3488
+ readOnly: readOnly,
3489
+ isPayrollFromFailedInvoices: isPayrollFromFailedInvoices,
3490
+ benefitPlanId: benefitPlanId
3491
+ }));
3492
+ }
3493
+ var mapDispatchToProps$9 = function mapDispatchToProps(dispatch) {
3494
+ return redux.bindActionCreators({
3495
+ fetchPayroll: fetchPayroll,
3496
+ createPayroll: createPayroll,
3497
+ clearPayroll: clearPayroll,
3498
+ coreConfirm: feCore.coreConfirm,
3499
+ clearConfirm: feCore.clearConfirm,
3500
+ journalize: feCore.journalize
3501
+ }, dispatch);
3502
+ };
3503
+ var mapStateToProps$9 = function mapStateToProps(state, props) {
3504
+ var _props$match, _props$match2, _props$match3, _props$match4, _state$core$user$i_us, _state$core;
3505
+ return {
3506
+ statePayrollUuid: (props === null || props === void 0 || (_props$match = props.match) === null || _props$match === void 0 || (_props$match = _props$match.params) === null || _props$match === void 0 ? void 0 : _props$match.payroll_uuid) === 'null' ? null : props === null || props === void 0 || (_props$match2 = props.match) === null || _props$match2 === void 0 ? void 0 : _props$match2.params.payroll_uuid,
3507
+ createPayrollFromFailedInvoices: props === null || props === void 0 || (_props$match3 = props.match) === null || _props$match3 === void 0 || (_props$match3 = _props$match3.params) === null || _props$match3 === void 0 ? void 0 : _props$match3.createPayrollFromFailedInvoices,
3508
+ benefitPlanId: props === null || props === void 0 || (_props$match4 = props.match) === null || _props$match4 === void 0 || (_props$match4 = _props$match4.params) === null || _props$match4 === void 0 ? void 0 : _props$match4.benefitPlanId,
3509
+ rights: (_state$core$user$i_us = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.user) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$user$i_us !== void 0 ? _state$core$user$i_us : [],
3510
+ confirmed: state.core.confirmed,
3511
+ submittingMutation: state.payroll.submittingMutation,
3512
+ mutation: state.payroll.mutation,
3513
+ payroll: state.payroll.payroll
3514
+ };
3515
+ };
3516
+ var PayrollPage$1 = reactRedux.connect(mapStateToProps$9, mapDispatchToProps$9)(PayrollPage);
3517
+
3518
+ var useStyles$7 = styles$7.makeStyles(function (theme) {
3519
+ return {
3520
+ form: {
3521
+ padding: '0 0 10px 0',
3522
+ width: '100%'
3523
+ },
3524
+ item: {
3525
+ padding: theme.spacing(1)
3526
+ }
3527
+ };
3528
+ });
3529
+ function PayrollFilter(_ref) {
3530
+ var _filters$isDeleted;
3531
+ var filters = _ref.filters,
3532
+ onChangeFilters = _ref.onChangeFilters,
3533
+ _ref$statusReadOnly = _ref.statusReadOnly,
3534
+ statusReadOnly = _ref$statusReadOnly === void 0 ? false : _ref$statusReadOnly;
3535
+ var classes = useStyles$7();
3536
+ var modulesManager = feCore.useModulesManager();
3537
+ var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
3538
+ formatMessage = _useTranslations.formatMessage;
3539
+ var debouncedOnChangeFilters = _debounce__default["default"](onChangeFilters, DEFAULT_DEBOUNCE_TIME);
3540
+ var filterTextFieldValue = function filterTextFieldValue(filterName) {
3541
+ var _filters$filterName$v, _filters$filterName;
3542
+ return (_filters$filterName$v = filters === null || filters === void 0 || (_filters$filterName = filters[filterName]) === null || _filters$filterName === void 0 ? void 0 : _filters$filterName.value) !== null && _filters$filterName$v !== void 0 ? _filters$filterName$v : EMPTY_STRING;
3602
3543
  };
3603
- var downloadPayrollData = function downloadPayrollData(payrollUuid, payrollName) {
3604
- downloadPayroll(payrollUuid, payrollName);
3544
+ var filterValue = function filterValue(filterName) {
3545
+ var _filters$filterName$v2, _filters$filterName2;
3546
+ return (_filters$filterName$v2 = filters === null || filters === void 0 || (_filters$filterName2 = filters[filterName]) === null || _filters$filterName2 === void 0 ? void 0 : _filters$filterName2.value) !== null && _filters$filterName$v2 !== void 0 ? _filters$filterName$v2 : null;
3605
3547
  };
3606
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3607
- onClick: handleOpen,
3608
- variant: "contained",
3609
- color: "primary",
3610
- className: classes.button
3611
- }, formatMessage('payroll.viewReconciliationSummary')), /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
3612
- open: isOpen,
3613
- onClose: handleClose,
3614
- PaperProps: {
3615
- style: {
3616
- position: 'absolute',
3617
- top: '50%',
3618
- left: '50%',
3619
- transform: 'translate(-50%,-50%)',
3620
- width: '75%',
3621
- maxWidth: '75%'
3548
+ var onChangeStringFilter = function onChangeStringFilter(filterName) {
3549
+ var lookup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3550
+ return function (value) {
3551
+ if (lookup) {
3552
+ debouncedOnChangeFilters([{
3553
+ id: filterName,
3554
+ value: value,
3555
+ filter: "".concat(filterName, "_").concat(lookup, ": \"").concat(value, "\"")
3556
+ }]);
3557
+ } else {
3558
+ debouncedOnChangeFilters([{
3559
+ id: filterName,
3560
+ value: value,
3561
+ filter: "".concat(filterName, ": \"").concat(value, "\"")
3562
+ }]);
3622
3563
  }
3623
- }
3624
- }, /*#__PURE__*/React__default["default"].createElement(DialogTitle__default["default"], {
3625
- style: {
3626
- marginTop: '10px'
3627
- }
3628
- }, formatMessageWithValues('payroll.reconciliationSummary', {
3629
- payrollName: payrollDetail.name
3630
- })), /*#__PURE__*/React__default["default"].createElement(DialogContent__default["default"], null, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3564
+ };
3565
+ };
3566
+ return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3631
3567
  container: true,
3632
- spacing: 2
3568
+ className: classes.form
3633
3569
  }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3634
3570
  item: true,
3635
- xs: 4
3636
- }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3637
- elevation: 3,
3638
- style: {
3639
- padding: '20px'
3640
- }
3641
- }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3642
- variant: "h6",
3643
- gutterBottom: true
3644
- }, formatMessage('payroll.summary.selectedBeneficiaries')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3645
- variant: "body1"
3646
- }, formatMessageWithValues('payroll.summary.beneficiariesCount', {
3647
- selectedBeneficiaries: selectedBeneficiaries,
3648
- totalBeneficiaries: totalBeneficiaries
3649
- })))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3571
+ xs: 3,
3572
+ className: classes.item
3573
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
3574
+ module: "payroll",
3575
+ label: formatMessage('payroll.name'),
3576
+ value: filterTextFieldValue('name'),
3577
+ onChange: onChangeStringFilter('name', CONTAINS_LOOKUP)
3578
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3650
3579
  item: true,
3651
- xs: 4
3652
- }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3653
- elevation: 3,
3654
- style: {
3655
- padding: '20px'
3580
+ xs: 3,
3581
+ className: classes.item
3582
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
3583
+ pubRef: "contributionPlan.PaymentPlanPicker",
3584
+ filters: filters,
3585
+ value: filterValue('paymentPlan_Id'),
3586
+ onChange: function onChange(paymentPlan) {
3587
+ return onChangeFilters([{
3588
+ id: 'paymentPlan_Id',
3589
+ value: paymentPlan,
3590
+ filter: "paymentPlan_Id: \"".concat((paymentPlan === null || paymentPlan === void 0 ? void 0 : paymentPlan.id) && feCore.decodeId(paymentPlan.id), "\"")
3591
+ }]);
3656
3592
  }
3657
- }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3658
- variant: "h6",
3659
- gutterBottom: true
3660
- }, formatMessage('payroll.summary.totalAmountForInvoice')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3661
- variant: "body1"
3662
- }, totalBillAmount))), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3593
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3663
3594
  item: true,
3664
- xs: 4
3665
- }, /*#__PURE__*/React__default["default"].createElement(core.Paper, {
3666
- elevation: 3,
3667
- style: {
3668
- padding: '20px'
3669
- }
3670
- }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3671
- variant: "h6",
3672
- gutterBottom: true
3673
- }, formatMessage('payroll.summary.deliveredReconciliation')), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
3674
- variant: "body1"
3675
- }, totalReconciledBillAmount)))), /*#__PURE__*/React__default["default"].createElement("div", {
3676
- style: {
3677
- backgroundColor: '#DFEDEF'
3678
- }
3679
- }, /*#__PURE__*/React__default["default"].createElement(BenefitConsumptionSearcherModal$1, {
3680
- payrollUuid: payrollDetail.id,
3681
- payrollDetail: payrollDetail
3682
- }))), /*#__PURE__*/React__default["default"].createElement(DialogActions__default["default"], {
3683
- style: {
3684
- display: 'inline',
3685
- paddingLeft: '10px',
3686
- marginTop: '25px',
3687
- marginBottom: '15px',
3688
- width: '100%'
3689
- }
3690
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3691
- style: {
3692
- maxWidth: '3000px'
3693
- }
3694
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3695
- style: {
3696
- "float": 'left'
3697
- }
3698
- }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3699
- onClick: function onClick() {
3700
- return closePayrollCallback();
3701
- },
3702
- variant: "contained",
3703
- color: "primary",
3704
- disabled: payrollDetail.paymentMethod === 'StrategyOnlinePayment' ? approvedBeneficiaries === 0 : selectedBeneficiaries === 0,
3705
- style: {
3706
- margin: '0 16px',
3707
- marginBottom: '15px'
3595
+ xs: 3,
3596
+ className: classes.item
3597
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
3598
+ pubRef: "paymentCycle.PaymentCyclePicker",
3599
+ withLabel: true,
3600
+ withPlaceholder: true,
3601
+ filters: filters,
3602
+ value: filterValue('paymentCycle_Id'),
3603
+ onChange: function onChange(paymentCycle) {
3604
+ return onChangeFilters([{
3605
+ id: 'paymentCycle_Id',
3606
+ value: paymentCycle,
3607
+ filter: "paymentCycle_Id: \"".concat((paymentCycle === null || paymentCycle === void 0 ? void 0 : paymentCycle.id) && feCore.decodeId(paymentCycle.id), "\"")
3608
+ }]);
3708
3609
  }
3709
- }, formatMessage('payroll.summary.approveAndClose')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3710
- onClick: function onClick() {
3711
- return downloadPayrollData(payrollDetail.id, payrollDetail.name);
3712
- },
3713
- variant: "contained",
3714
- color: "primary",
3715
- style: {
3716
- margin: '0 16px',
3717
- marginBottom: '15px'
3610
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3611
+ item: true,
3612
+ xs: 2,
3613
+ className: classes.item
3614
+ }, /*#__PURE__*/React__default["default"].createElement(PayrollStatusPicker, {
3615
+ withNull: true,
3616
+ nullLabel: formatMessage('any'),
3617
+ label: formatMessage('paymentMethod'),
3618
+ value: filterValue('status'),
3619
+ readOnly: statusReadOnly,
3620
+ onChange: function onChange(value) {
3621
+ return onChangeFilters([{
3622
+ id: 'status',
3623
+ value: value,
3624
+ filter: value ? "status: ".concat(value) : EMPTY_STRING
3625
+ }]);
3718
3626
  }
3719
- }, formatMessage('payroll.summary.download')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3720
- onClick: function onClick() {
3721
- return rejectPayrollCallback();
3722
- },
3723
- variant: "contained",
3724
- color: "primary",
3725
- style: {
3726
- margin: '0 16px',
3727
- marginBottom: '15px'
3627
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3628
+ item: true,
3629
+ xs: 2,
3630
+ className: classes.item
3631
+ }, /*#__PURE__*/React__default["default"].createElement(PaymentMethodPicker$1, {
3632
+ withNull: true,
3633
+ nullLabel: formatMessage('any'),
3634
+ label: formatMessage('payroll.paymentMethod'),
3635
+ value: filterValue('paymentMethod'),
3636
+ onChange: function onChange(value) {
3637
+ return onChangeFilters([{
3638
+ id: 'paymentMethod',
3639
+ value: value,
3640
+ filter: "paymentMethod: \"".concat(value, "\"")
3641
+ }]);
3728
3642
  }
3729
- }, formatMessage('payroll.summary.reject'))), /*#__PURE__*/React__default["default"].createElement("div", {
3730
- style: {
3731
- "float": 'right',
3732
- paddingRight: '16px'
3643
+ })), /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
3644
+ module: "payroll",
3645
+ id: "payrollFilter.showHistory",
3646
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
3647
+ item: true,
3648
+ xs: 12,
3649
+ className: classes.item
3650
+ }, /*#__PURE__*/React__default["default"].createElement(core.FormControlLabel, {
3651
+ control: /*#__PURE__*/React__default["default"].createElement(core.Checkbox, {
3652
+ color: "primary",
3653
+ checked: filters === null || filters === void 0 || (_filters$isDeleted = filters.isDeleted) === null || _filters$isDeleted === void 0 ? void 0 : _filters$isDeleted.value,
3654
+ onChange: function onChange() {
3655
+ var _filters$isDeleted2, _filters$isDeleted3;
3656
+ return onChangeFilters([{
3657
+ id: 'isDeleted',
3658
+ value: !(filters !== null && filters !== void 0 && (_filters$isDeleted2 = filters.isDeleted) !== null && _filters$isDeleted2 !== void 0 && _filters$isDeleted2.value),
3659
+ filter: "isDeleted: ".concat(!(filters !== null && filters !== void 0 && (_filters$isDeleted3 = filters.isDeleted) !== null && _filters$isDeleted3 !== void 0 && _filters$isDeleted3.value))
3660
+ }]);
3661
+ }
3662
+ }),
3663
+ label: formatMessage('tooltip.isDeleted')
3664
+ }))
3665
+ }));
3666
+ }
3667
+
3668
+ function PayrollSearcher(_ref) {
3669
+ var deletePayrolls = _ref.deletePayrolls,
3670
+ fetchingPayrolls = _ref.fetchingPayrolls,
3671
+ fetchedPayrolls = _ref.fetchedPayrolls,
3672
+ errorPayrolls = _ref.errorPayrolls,
3673
+ payrolls = _ref.payrolls,
3674
+ pageInfo = _ref.pageInfo,
3675
+ totalCount = _ref.totalCount,
3676
+ fetchPayrolls = _ref.fetchPayrolls,
3677
+ coreConfirm = _ref.coreConfirm,
3678
+ clearConfirm = _ref.clearConfirm,
3679
+ confirmed = _ref.confirmed,
3680
+ submittingMutation = _ref.submittingMutation,
3681
+ mutation = _ref.mutation;
3682
+ var history = feCore.useHistory();
3683
+ var modulesManager = feCore.useModulesManager();
3684
+ var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
3685
+ formatMessage = _useTranslations.formatMessage,
3686
+ formatMessageWithValues = _useTranslations.formatMessageWithValues;
3687
+ var rights = reactRedux.useSelector(function (store) {
3688
+ var _store$core$user$i_us;
3689
+ return (_store$core$user$i_us = store.core.user.i_user.rights) !== null && _store$core$user$i_us !== void 0 ? _store$core$user$i_us : [];
3690
+ });
3691
+ var _useState = React.useState(null),
3692
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
3693
+ payrollToDelete = _useState2[0],
3694
+ setPayrollToDelete = _useState2[1];
3695
+ var _useState3 = React.useState([]),
3696
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
3697
+ deletedPayrollUuids = _useState4[0],
3698
+ setDeletedPayrollUuids = _useState4[1];
3699
+ var prevSubmittingMutationRef = React.useRef();
3700
+ var openDeletePayrollConfirmDialog = function openDeletePayrollConfirmDialog() {
3701
+ coreConfirm(formatMessageWithValues('payroll.delete.confirm.title', pageTitle(payrollToDelete)), formatMessage('payroll.delete.confirm.message'));
3702
+ };
3703
+ React.useEffect(function () {
3704
+ return payrollToDelete && openDeletePayrollConfirmDialog();
3705
+ }, [payrollToDelete]);
3706
+ React.useEffect(function () {
3707
+ if (payrollToDelete && confirmed) {
3708
+ deletePayrolls(payrollToDelete, formatMessageWithValues('payroll.mutation.deleteLabel', mutationLabel(payrollToDelete)));
3709
+ setDeletedPayrollUuids([].concat(_toConsumableArray__default["default"](deletedPayrollUuids), [payrollToDelete.id]));
3733
3710
  }
3734
- }, payrollDetail.paymentMethod === 'StrategyOnlinePayment' && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3735
- onClick: function onClick() {
3736
- return makePaymentForPayrollCallback();
3737
- },
3738
- variant: "contained",
3739
- color: "primary",
3740
- style: {
3741
- margin: '0 16px'
3711
+ if (payrollToDelete && confirmed !== null) {
3712
+ setPayrollToDelete(null);
3742
3713
  }
3743
- }, formatMessage('payroll.summary.makePayment')), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
3744
- onClick: handleClose,
3745
- variant: "outlined",
3746
- autoFocus: true,
3747
- style: {
3748
- margin: '0 16px'
3714
+ return function () {
3715
+ return confirmed && clearConfirm(false);
3716
+ };
3717
+ }, [confirmed]);
3718
+ React.useEffect(function () {
3719
+ if (prevSubmittingMutationRef.current && !submittingMutation) {
3720
+ feCore.journalize(mutation);
3749
3721
  }
3750
- }, formatMessage('payroll.summary.close')))))));
3722
+ }, [submittingMutation]);
3723
+ React.useEffect(function () {
3724
+ prevSubmittingMutationRef.current = submittingMutation;
3725
+ });
3726
+ var headers = function headers() {
3727
+ return ['payroll.name', 'payroll.benefitPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'payroll.bistp.progress', 'emptyLabel'];
3728
+ };
3729
+ var sorts = function sorts() {
3730
+ return [['name', true], ['benefitPlan', true], ['paymentPoint', true], ['status', true], ['paymentMethod', true]];
3731
+ };
3732
+ var renderBistpProgress = function renderBistpProgress(payroll) {
3733
+ if (payroll.paymentMethod !== PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) return null;
3734
+ var summary = payroll.bistpSummary || {};
3735
+ var total = summary.total || 0;
3736
+ var reconciled = summary.reconciled || 0;
3737
+ var progress = total > 0 ? reconciled / total * 100 : 0;
3738
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3739
+ style: {
3740
+ display: 'flex',
3741
+ alignItems: 'center',
3742
+ gap: 8,
3743
+ minWidth: 120
3744
+ }
3745
+ }, /*#__PURE__*/React__default["default"].createElement(LinearProgress__default["default"], {
3746
+ variant: "determinate",
3747
+ value: progress,
3748
+ style: {
3749
+ flex: 1,
3750
+ height: 8,
3751
+ borderRadius: 4
3752
+ }
3753
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
3754
+ style: {
3755
+ fontSize: '0.75rem',
3756
+ whiteSpace: 'nowrap'
3757
+ }
3758
+ }, reconciled, "/", total));
3759
+ };
3760
+ var defaultFilters = function defaultFilters() {
3761
+ return {
3762
+ isDeleted: {
3763
+ value: false,
3764
+ filter: 'isDeleted: false'
3765
+ }
3766
+ };
3767
+ };
3768
+ var fetch = function fetch(params) {
3769
+ return fetchPayrolls(modulesManager, params);
3770
+ };
3771
+ var rowIdentifier = function rowIdentifier(payroll) {
3772
+ return payroll.id;
3773
+ };
3774
+ var openPayroll = function openPayroll(payroll) {
3775
+ return rights.includes(RIGHT_PAYROLL_SEARCH) && history.push("/".concat(modulesManager.getRef(PAYROLL_PAYROLL_ROUTE), "/").concat(payroll === null || payroll === void 0 ? void 0 : payroll.id));
3776
+ };
3777
+ var onDelete = function onDelete(payroll) {
3778
+ return setPayrollToDelete(payroll);
3779
+ };
3780
+ var itemFormatters = function itemFormatters() {
3781
+ return [function (payroll) {
3782
+ return payroll.name;
3783
+ }, function (payroll) {
3784
+ return payroll.benefitPlan ? "".concat(payroll.benefitPlan.code, " ").concat(payroll.benefitPlan.name) : '';
3785
+ }, function (payroll) {
3786
+ return payroll.paymentPoint ? "".concat(payroll.paymentPoint.name) : '';
3787
+ }, function (payroll) {
3788
+ return payroll.status ? "".concat(payroll.status) : '';
3789
+ }, function (payroll) {
3790
+ return payroll.paymentMethod ? "".concat(payroll.paymentMethod) : '';
3791
+ }, function (payroll) {
3792
+ return renderBistpProgress(payroll);
3793
+ }, function (payroll) {
3794
+ return /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
3795
+ title: formatMessage('tooltip.viewDetails')
3796
+ }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
3797
+ onClick: function onClick() {
3798
+ return openPayroll(payroll);
3799
+ }
3800
+ }, /*#__PURE__*/React__default["default"].createElement(VisibilityIcon__default["default"], null)));
3801
+ }, function (payroll) {
3802
+ return /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
3803
+ title: formatMessage('tooltip.delete')
3804
+ }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
3805
+ onClick: function onClick() {
3806
+ return onDelete(payroll);
3807
+ },
3808
+ disabled: deletedPayrollUuids.includes(payroll.id) || payroll.status !== PAYROLL_STATUS.PENDING_APPROVAL
3809
+ }, /*#__PURE__*/React__default["default"].createElement(DeleteIcon__default["default"], null)));
3810
+ }];
3811
+ };
3812
+ var onDoubleClick = function onDoubleClick(payroll) {
3813
+ return openPayroll(payroll);
3814
+ };
3815
+ var payrollFilter = function payrollFilter(_ref2) {
3816
+ var filters = _ref2.filters,
3817
+ onChangeFilters = _ref2.onChangeFilters;
3818
+ return /*#__PURE__*/React__default["default"].createElement(PayrollFilter, {
3819
+ filters: filters,
3820
+ onChangeFilters: onChangeFilters
3821
+ });
3822
+ };
3823
+ var isRowDisabled = function isRowDisabled(_, payroll) {
3824
+ return deletedPayrollUuids.includes(payroll.id);
3825
+ };
3826
+ return /*#__PURE__*/React__default["default"].createElement(feCore.Searcher, {
3827
+ module: "payroll",
3828
+ FilterPane: payrollFilter,
3829
+ fetch: fetch,
3830
+ items: payrolls,
3831
+ itemsPageInfo: pageInfo,
3832
+ fetchedItems: fetchedPayrolls,
3833
+ fetchingItems: fetchingPayrolls,
3834
+ errorItems: errorPayrolls,
3835
+ tableTitle: formatMessageWithValues('payrollSearcher.results', {
3836
+ totalCount: totalCount
3837
+ }),
3838
+ headers: headers,
3839
+ itemFormatters: itemFormatters,
3840
+ sorts: sorts,
3841
+ rowsPerPageOptions: ROWS_PER_PAGE_OPTIONS,
3842
+ defaultPageSize: DEFAULT_PAGE_SIZE,
3843
+ rowIdentifier: rowIdentifier,
3844
+ onDoubleClick: onDoubleClick,
3845
+ defaultFilters: defaultFilters(),
3846
+ rowDisabled: isRowDisabled,
3847
+ rowLocked: isRowDisabled
3848
+ });
3751
3849
  }
3752
3850
  var mapStateToProps$8 = function mapStateToProps(state) {
3753
3851
  return {
3754
- rights: !!state.core && !!state.core.user && !!state.core.user.i_user ? state.core.user.i_user.rights : [],
3852
+ fetchingPayrolls: state.payroll.fetchingPayrolls,
3853
+ fetchedPayrolls: state.payroll.fetchedPayrolls,
3854
+ errorPayrolls: state.payroll.errorPayrolls,
3855
+ payrolls: state.payroll.payrolls,
3856
+ pageInfo: state.payroll.payrollsPageInfo,
3857
+ totalCount: state.payroll.payrollsTotalCount,
3755
3858
  confirmed: state.core.confirmed,
3756
- payroll: state.payroll.payroll
3859
+ submittingMutation: state.payroll.submittingMutation,
3860
+ mutation: state.payroll.mutation
3757
3861
  };
3758
3862
  };
3759
3863
  var mapDispatchToProps$8 = function mapDispatchToProps(dispatch) {
3760
3864
  return redux.bindActionCreators({
3761
- closePayroll: closePayroll,
3762
- rejectPayroll: rejectPayroll,
3763
- fetchPayroll: fetchPayroll,
3764
- makePaymentForPayroll: makePaymentForPayroll
3865
+ fetchPayrolls: fetchPayrolls,
3866
+ deletePayrolls: deletePayrolls,
3867
+ journalize: feCore.journalize,
3868
+ clearConfirm: feCore.clearConfirm,
3869
+ coreConfirm: feCore.coreConfirm
3765
3870
  }, dispatch);
3766
3871
  };
3767
- var PaymentApproveForPaymentSummary = reactRedux.connect(mapStateToProps$8, mapDispatchToProps$8)(PaymentApproveForPaymentDialog);
3872
+ var PayrollSearcher$1 = reactRedux.connect(mapStateToProps$8, mapDispatchToProps$8)(PayrollSearcher);
3873
+
3874
+ var useStyles$6 = styles$7.makeStyles(function (theme) {
3875
+ return {
3876
+ page: theme.page,
3877
+ fab: theme.fab
3878
+ };
3879
+ });
3880
+ function PayrollsPage() {
3881
+ var modulesManager = feCore.useModulesManager();
3882
+ var classes = useStyles$6();
3883
+ var history = feCore.useHistory();
3884
+ var rights = reactRedux.useSelector(function (store) {
3885
+ var _store$core$user$i_us;
3886
+ return (_store$core$user$i_us = store.core.user.i_user.rights) !== null && _store$core$user$i_us !== void 0 ? _store$core$user$i_us : [];
3887
+ });
3888
+ var _useTranslations = feCore.useTranslations(MODULE_NAME, modulesManager),
3889
+ formatMessage = _useTranslations.formatMessage;
3890
+ var onCreate = function onCreate() {
3891
+ return history.push("/".concat(modulesManager.getRef(PAYROLL_PAYROLL_ROUTE)));
3892
+ };
3893
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3894
+ className: classes.page
3895
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.Helmet, {
3896
+ title: formatMessage('paymentPoint.page.title')
3897
+ }), rights.includes(RIGHT_PAYROLL_SEARCH) && /*#__PURE__*/React__default["default"].createElement(PayrollSearcher$1, null), rights.includes(RIGHT_PAYROLL_CREATE) && feCore.withTooltip(/*#__PURE__*/React__default["default"].createElement("div", {
3898
+ className: classes.fab
3899
+ }, /*#__PURE__*/React__default["default"].createElement(core.Fab, {
3900
+ color: "primary",
3901
+ onClick: onCreate
3902
+ }, /*#__PURE__*/React__default["default"].createElement(AddIcon__default["default"], null))), formatMessage('createButton.tooltip')));
3903
+ }
3768
3904
 
3769
3905
  function PayrollPaymentFilesSearcher(_ref) {
3770
3906
  var fetchingPayrollFiles = _ref.fetchingPayrollFiles,
@@ -3962,8 +4098,36 @@ function PayrollSearcherApproved(_ref) {
3962
4098
  React.useEffect(function () {
3963
4099
  prevSubmittingMutationRef.current = submittingMutation;
3964
4100
  });
4101
+ var renderBistpProgress = function renderBistpProgress(payroll) {
4102
+ if (payroll.paymentMethod !== PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) return null;
4103
+ var summary = payroll.bistpSummary || {};
4104
+ var total = summary.total || 0;
4105
+ var reconciled = summary.reconciled || 0;
4106
+ var progress = total > 0 ? reconciled / total * 100 : 0;
4107
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4108
+ style: {
4109
+ display: 'flex',
4110
+ alignItems: 'center',
4111
+ gap: 8,
4112
+ minWidth: 120
4113
+ }
4114
+ }, /*#__PURE__*/React__default["default"].createElement(LinearProgress__default["default"], {
4115
+ variant: "determinate",
4116
+ value: progress,
4117
+ style: {
4118
+ flex: 1,
4119
+ height: 8,
4120
+ borderRadius: 4
4121
+ }
4122
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
4123
+ style: {
4124
+ fontSize: '0.75rem',
4125
+ whiteSpace: 'nowrap'
4126
+ }
4127
+ }, reconciled, "/", total));
4128
+ };
3965
4129
  var headers = function headers() {
3966
- return ['payroll.name', 'payroll.paymentPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'emptyLabel'];
4130
+ return ['payroll.name', 'payroll.paymentPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'payroll.bistp.progress', 'emptyLabel'];
3967
4131
  };
3968
4132
  var sorts = function sorts() {
3969
4133
  return [['name', true], ['paymentPlan', true], ['paymentPoint', true], ['status', true], ['paymentMethod', true]];
@@ -4000,6 +4164,8 @@ function PayrollSearcherApproved(_ref) {
4000
4164
  return payroll.status ? "".concat(payroll.status) : '';
4001
4165
  }, function (payroll) {
4002
4166
  return payroll.paymentMethod ? "".concat(payroll.paymentMethod) : '';
4167
+ }, function (payroll) {
4168
+ return renderBistpProgress(payroll);
4003
4169
  }, function (payroll) {
4004
4170
  return /*#__PURE__*/React__default["default"].createElement(PayrollReconciliationFilesDialog, {
4005
4171
  classes: classes,
@@ -4339,8 +4505,36 @@ function PayrollSearcherReconciled(_ref) {
4339
4505
  React.useEffect(function () {
4340
4506
  prevSubmittingMutationRef.current = submittingMutation;
4341
4507
  });
4508
+ var renderBistpProgress = function renderBistpProgress(payroll) {
4509
+ if (payroll.paymentMethod !== PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) return null;
4510
+ var summary = payroll.bistpSummary || {};
4511
+ var total = summary.total || 0;
4512
+ var reconciled = summary.reconciled || 0;
4513
+ var progress = total > 0 ? reconciled / total * 100 : 0;
4514
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4515
+ style: {
4516
+ display: 'flex',
4517
+ alignItems: 'center',
4518
+ gap: 8,
4519
+ minWidth: 120
4520
+ }
4521
+ }, /*#__PURE__*/React__default["default"].createElement(LinearProgress__default["default"], {
4522
+ variant: "determinate",
4523
+ value: progress,
4524
+ style: {
4525
+ flex: 1,
4526
+ height: 8,
4527
+ borderRadius: 4
4528
+ }
4529
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
4530
+ style: {
4531
+ fontSize: '0.75rem',
4532
+ whiteSpace: 'nowrap'
4533
+ }
4534
+ }, reconciled, "/", total));
4535
+ };
4342
4536
  var headers = function headers() {
4343
- return ['payroll.name', 'payroll.paymentPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'emptyLabel'];
4537
+ return ['payroll.name', 'payroll.paymentPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'payroll.bistp.progress', 'emptyLabel'];
4344
4538
  };
4345
4539
  var sorts = function sorts() {
4346
4540
  return [['name', true], ['paymentPlan', true], ['paymentPoint', true], ['status', true], ['paymentMethod', true]];
@@ -4377,6 +4571,8 @@ function PayrollSearcherReconciled(_ref) {
4377
4571
  return payroll.status ? "".concat(payroll.status) : '';
4378
4572
  }, function (payroll) {
4379
4573
  return payroll.paymentMethod ? "".concat(payroll.paymentMethod) : '';
4574
+ }, function (payroll) {
4575
+ return renderBistpProgress(payroll);
4380
4576
  }, function (payroll) {
4381
4577
  return /*#__PURE__*/React__default["default"].createElement(PayrollReconciliationFilesDialog, {
4382
4578
  classes: classes,
@@ -5294,7 +5490,8 @@ function BenefitConsumptionSearcher(_ref) {
5294
5490
  return fetchBenefitConsumptions(modulesManager, params);
5295
5491
  };
5296
5492
  var headers = function headers() {
5297
- return ['benefitConsumption.individual.firstName', 'benefitConsumption.individual.lastName', 'benefitConsumption.photo', 'benefitConsumption.code', 'benefitConsumption.dateDue', 'benefitConsumption.receipt', 'benefitConsumption.amount', 'benefitConsumption.type', 'benefitConsumption.status', 'benefitConsumption.payedOnTime', 'benefitConsumption.paymentDate', ''];
5493
+ var cols = ['benefitConsumption.individual.firstName', 'benefitConsumption.individual.lastName', 'benefitConsumption.nib', 'benefitConsumption.photo', 'benefitConsumption.code', 'benefitConsumption.dateDue', 'benefitConsumption.receipt', 'benefitConsumption.amount', 'benefitConsumption.type', 'benefitConsumption.status', 'benefitConsumption.payedOnTime', 'benefitConsumption.paymentDate', ''];
5494
+ return cols;
5298
5495
  };
5299
5496
  var checkBenefitDueDate = function checkBenefitDueDate(benefitConsumption) {
5300
5497
  if (!benefitConsumption.receipt) {
@@ -5302,6 +5499,62 @@ function BenefitConsumptionSearcher(_ref) {
5302
5499
  }
5303
5500
  return benefitConsumption && benefitConsumption.dateDue >= benefitConsumption.benefitAttachment[0].bill.datePayed ? 'True' : 'False';
5304
5501
  };
5502
+ var getBistpStatusBadge = function getBistpStatusBadge(benefitConsumption) {
5503
+ if (!benefitConsumption) return null;
5504
+ var jsonExt = benefitConsumption.jsonExt || {};
5505
+ var status = benefitConsumption.status;
5506
+ if (status === BENEFIT_CONSUMPTION_STATUS.RECONCILED) {
5507
+ return /*#__PURE__*/React__default["default"].createElement(Chip__default["default"], {
5508
+ label: formatMessage('payroll.bistp.status.reconciled'),
5509
+ style: {
5510
+ backgroundColor: '#4caf50',
5511
+ color: 'white'
5512
+ },
5513
+ size: "small"
5514
+ });
5515
+ }
5516
+ if (status === BENEFIT_CONSUMPTION_STATUS.REJECTED) {
5517
+ return /*#__PURE__*/React__default["default"].createElement(Chip__default["default"], {
5518
+ label: "".concat(formatMessage('payroll.bistp.status.rejected')).concat(jsonExt.bistp_rejection_reason ? ": ".concat(jsonExt.bistp_rejection_reason) : ''),
5519
+ style: {
5520
+ backgroundColor: '#f44336',
5521
+ color: 'white'
5522
+ },
5523
+ size: "small"
5524
+ });
5525
+ }
5526
+ if (status === BENEFIT_CONSUMPTION_STATUS.APPROVE_FOR_PAYMENT) {
5527
+ return /*#__PURE__*/React__default["default"].createElement(Chip__default["default"], {
5528
+ label: formatMessage('payroll.bistp.status.pending'),
5529
+ style: {
5530
+ backgroundColor: '#ff9800',
5531
+ color: 'white'
5532
+ },
5533
+ size: "small"
5534
+ });
5535
+ }
5536
+ if (jsonExt.bistp_skip_reason === 'nib_ausente') {
5537
+ return /*#__PURE__*/React__default["default"].createElement(Chip__default["default"], {
5538
+ label: formatMessage('payroll.bistp.status.skippedNib'),
5539
+ style: {
5540
+ backgroundColor: '#9e9e9e',
5541
+ color: 'white'
5542
+ },
5543
+ size: "small"
5544
+ });
5545
+ }
5546
+ if (jsonExt.bistp_skip_reason === 'envio_falhou') {
5547
+ return /*#__PURE__*/React__default["default"].createElement(Chip__default["default"], {
5548
+ label: formatMessage('payroll.bistp.status.sendFailed'),
5549
+ style: {
5550
+ backgroundColor: '#f44336',
5551
+ color: 'white'
5552
+ },
5553
+ size: "small"
5554
+ });
5555
+ }
5556
+ return null;
5557
+ };
5305
5558
  var itemFormatters = function itemFormatters() {
5306
5559
  return [function (benefitConsumption) {
5307
5560
  var _benefitConsumption$i;
@@ -5309,6 +5562,9 @@ function BenefitConsumptionSearcher(_ref) {
5309
5562
  }, function (benefitConsumption) {
5310
5563
  var _benefitConsumption$i2;
5311
5564
  return benefitConsumption === null || benefitConsumption === void 0 || (_benefitConsumption$i2 = benefitConsumption.individual) === null || _benefitConsumption$i2 === void 0 ? void 0 : _benefitConsumption$i2.lastName;
5565
+ }, function (benefitConsumption) {
5566
+ var _benefitConsumption$i3;
5567
+ return (benefitConsumption === null || benefitConsumption === void 0 || (_benefitConsumption$i3 = benefitConsumption.individual) === null || _benefitConsumption$i3 === void 0 ? void 0 : _benefitConsumption$i3.nib) || '';
5312
5568
  }, function (benefitConsumption) {
5313
5569
  return benefitConsumption.receipt ? /*#__PURE__*/React__default["default"].createElement(PhotoCameraOutlinedIcon__default["default"], {
5314
5570
  style: {
@@ -5333,18 +5589,26 @@ function BenefitConsumptionSearcher(_ref) {
5333
5589
  var _benefitConsumption$b;
5334
5590
  return !benefitConsumption.receipt ? '' : benefitConsumption === null || benefitConsumption === void 0 || (_benefitConsumption$b = benefitConsumption.benefitAttachment[0]) === null || _benefitConsumption$b === void 0 || (_benefitConsumption$b = _benefitConsumption$b.bill) === null || _benefitConsumption$b === void 0 ? void 0 : _benefitConsumption$b.datePayed;
5335
5591
  }, function (benefitConsumption) {
5336
- return /*#__PURE__*/React__default["default"].createElement(AdditionalFieldsDialog$1, {
5592
+ var jsonExt = (benefitConsumption === null || benefitConsumption === void 0 ? void 0 : benefitConsumption.jsonExt) || {};
5593
+ var hasBistpFields = jsonExt.bistp_skip_reason || jsonExt.bistp_processed || jsonExt.bistp_rejection_reason;
5594
+ return /*#__PURE__*/React__default["default"].createElement("div", {
5595
+ style: {
5596
+ display: 'flex',
5597
+ alignItems: 'center',
5598
+ gap: 4
5599
+ }
5600
+ }, hasBistpFields && getBistpStatusBadge(benefitConsumption), /*#__PURE__*/React__default["default"].createElement(AdditionalFieldsDialog$1, {
5337
5601
  jsonExt: benefitConsumption === null || benefitConsumption === void 0 ? void 0 : benefitConsumption.jsonExt,
5338
5602
  buttonLabel: "payroll.additonalFields.showAdditionalFields",
5339
5603
  title: "payroll.additonalFields.label"
5340
- });
5604
+ }));
5341
5605
  }];
5342
5606
  };
5343
5607
  var rowIdentifier = function rowIdentifier(benefitConsumption) {
5344
5608
  return benefitConsumption.id;
5345
5609
  };
5346
5610
  var sorts = function sorts() {
5347
- return [['individual_FirstName', true], ['individual_LastName', true], ['photo', true], ['code', true], ['dateDue', true], ['receipt', true], ['amount', true], ['type', true], ['status', true]];
5611
+ return [['individual_FirstName', true], ['individual_LastName', true], ['individual_Nib', true], ['photo', true], ['code', true], ['dateDue', true], ['receipt', true], ['amount', true], ['type', true], ['status', true]];
5348
5612
  };
5349
5613
  var defaultFilters = function defaultFilters() {
5350
5614
  var filters = {
@@ -5796,8 +6060,36 @@ function PayrollSearcherPending(_ref) {
5796
6060
  React.useEffect(function () {
5797
6061
  prevSubmittingMutationRef.current = submittingMutation;
5798
6062
  });
6063
+ var renderBistpProgress = function renderBistpProgress(payroll) {
6064
+ if (payroll.paymentMethod !== PAYMENT_METHOD.STRATEGY_BISTP_PAYMENT) return null;
6065
+ var summary = payroll.bistpSummary || {};
6066
+ var total = summary.total || 0;
6067
+ var reconciled = summary.reconciled || 0;
6068
+ var progress = total > 0 ? reconciled / total * 100 : 0;
6069
+ return /*#__PURE__*/React__default["default"].createElement("div", {
6070
+ style: {
6071
+ display: 'flex',
6072
+ alignItems: 'center',
6073
+ gap: 8,
6074
+ minWidth: 120
6075
+ }
6076
+ }, /*#__PURE__*/React__default["default"].createElement(LinearProgress__default["default"], {
6077
+ variant: "determinate",
6078
+ value: progress,
6079
+ style: {
6080
+ flex: 1,
6081
+ height: 8,
6082
+ borderRadius: 4
6083
+ }
6084
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
6085
+ style: {
6086
+ fontSize: '0.75rem',
6087
+ whiteSpace: 'nowrap'
6088
+ }
6089
+ }, reconciled, "/", total));
6090
+ };
5799
6091
  var headers = function headers() {
5800
- return ['payroll.name', 'payroll.paymentPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'emptyLabel'];
6092
+ return ['payroll.name', 'payroll.paymentPlan', 'payroll.paymentPoint', 'payroll.status', 'payroll.paymentMethod', 'payroll.bistp.progress', 'emptyLabel'];
5801
6093
  };
5802
6094
  var sorts = function sorts() {
5803
6095
  return [['name', true], ['paymentPlan', true], ['paymentPoint', true], ['status', true], ['paymentMethod', true]];
@@ -5834,6 +6126,8 @@ function PayrollSearcherPending(_ref) {
5834
6126
  return payroll.status ? "".concat(payroll.status) : '';
5835
6127
  }, function (payroll) {
5836
6128
  return payroll.paymentMethod ? "".concat(payroll.paymentMethod) : '';
6129
+ }, function (payroll) {
6130
+ return renderBistpProgress(payroll);
5837
6131
  }, function (payroll) {
5838
6132
  return /*#__PURE__*/React__default["default"].createElement(PayrollReconciliationFilesDialog, {
5839
6133
  classes: classes,