mindee
Version:
Mindee Client Library for Node.js
97 lines (96 loc) • 4.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PayslipV3Document = void 0;
const common_1 = require("../../../parsing/common");
const payslipV3PayPeriod_1 = require("./payslipV3PayPeriod");
const payslipV3Employee_1 = require("./payslipV3Employee");
const payslipV3Employer_1 = require("./payslipV3Employer");
const payslipV3BankAccountDetail_1 = require("./payslipV3BankAccountDetail");
const payslipV3Employment_1 = require("./payslipV3Employment");
const payslipV3SalaryDetail_1 = require("./payslipV3SalaryDetail");
const payslipV3PayDetail_1 = require("./payslipV3PayDetail");
const payslipV3PaidTimeOff_1 = require("./payslipV3PaidTimeOff");
/**
* Payslip API version 3.0 document data.
*/
class PayslipV3Document {
constructor(rawPrediction, pageId) {
/** Information about paid time off. */
this.paidTimeOff = [];
/** Detailed information about the earnings. */
this.salaryDetails = [];
this.bankAccountDetails = new payslipV3BankAccountDetail_1.PayslipV3BankAccountDetail({
prediction: rawPrediction["bank_account_details"],
pageId: pageId,
});
this.employee = new payslipV3Employee_1.PayslipV3Employee({
prediction: rawPrediction["employee"],
pageId: pageId,
});
this.employer = new payslipV3Employer_1.PayslipV3Employer({
prediction: rawPrediction["employer"],
pageId: pageId,
});
this.employment = new payslipV3Employment_1.PayslipV3Employment({
prediction: rawPrediction["employment"],
pageId: pageId,
});
rawPrediction["paid_time_off"] &&
rawPrediction["paid_time_off"].map((itemPrediction) => this.paidTimeOff.push(new payslipV3PaidTimeOff_1.PayslipV3PaidTimeOff({
prediction: itemPrediction,
pageId: pageId,
})));
this.payDetail = new payslipV3PayDetail_1.PayslipV3PayDetail({
prediction: rawPrediction["pay_detail"],
pageId: pageId,
});
this.payPeriod = new payslipV3PayPeriod_1.PayslipV3PayPeriod({
prediction: rawPrediction["pay_period"],
pageId: pageId,
});
rawPrediction["salary_details"] &&
rawPrediction["salary_details"].map((itemPrediction) => this.salaryDetails.push(new payslipV3SalaryDetail_1.PayslipV3SalaryDetail({
prediction: itemPrediction,
pageId: pageId,
})));
}
/**
* Default string representation.
*/
toString() {
let salaryDetailsSummary = "";
if (this.salaryDetails && this.salaryDetails.length > 0) {
const salaryDetailsColSizes = [14, 11, 38, 8, 11];
salaryDetailsSummary += "\n" + (0, common_1.lineSeparator)(salaryDetailsColSizes, "-") + "\n ";
salaryDetailsSummary += "| Amount ";
salaryDetailsSummary += "| Base ";
salaryDetailsSummary += "| Description ";
salaryDetailsSummary += "| Number ";
salaryDetailsSummary += "| Rate ";
salaryDetailsSummary += "|\n" + (0, common_1.lineSeparator)(salaryDetailsColSizes, "=");
salaryDetailsSummary += this.salaryDetails.map((item) => "\n " + item.toTableLine() + "\n" + (0, common_1.lineSeparator)(salaryDetailsColSizes, "-")).join("");
}
let paidTimeOffSummary = "";
if (this.paidTimeOff && this.paidTimeOff.length > 0) {
const paidTimeOffColSizes = [11, 8, 13, 11, 11];
paidTimeOffSummary += "\n" + (0, common_1.lineSeparator)(paidTimeOffColSizes, "-") + "\n ";
paidTimeOffSummary += "| Accrued ";
paidTimeOffSummary += "| Period ";
paidTimeOffSummary += "| Type ";
paidTimeOffSummary += "| Remaining ";
paidTimeOffSummary += "| Used ";
paidTimeOffSummary += "|\n" + (0, common_1.lineSeparator)(paidTimeOffColSizes, "=");
paidTimeOffSummary += this.paidTimeOff.map((item) => "\n " + item.toTableLine() + "\n" + (0, common_1.lineSeparator)(paidTimeOffColSizes, "-")).join("");
}
const outStr = `:Pay Period: ${this.payPeriod.toFieldList()}
:Employee: ${this.employee.toFieldList()}
:Employer: ${this.employer.toFieldList()}
:Bank Account Details: ${this.bankAccountDetails.toFieldList()}
:Employment: ${this.employment.toFieldList()}
:Salary Details: ${salaryDetailsSummary}
:Pay Detail: ${this.payDetail.toFieldList()}
:Paid Time Off: ${paidTimeOffSummary}`.trimEnd();
return (0, common_1.cleanOutString)(outStr);
}
}
exports.PayslipV3Document = PayslipV3Document;