@stssocialst-stp/fe-payroll 0.1.1 → 0.1.3

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