mindee
Version:
Mindee Client Library for Node.js
81 lines (80 loc) • 3.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PayslipV2Document = void 0;
const common_1 = require("../../../parsing/common");
const payslipV2Employee_1 = require("./payslipV2Employee");
const payslipV2Employer_1 = require("./payslipV2Employer");
const payslipV2BankAccountDetail_1 = require("./payslipV2BankAccountDetail");
const payslipV2Employment_1 = require("./payslipV2Employment");
const payslipV2SalaryDetail_1 = require("./payslipV2SalaryDetail");
const payslipV2PayDetail_1 = require("./payslipV2PayDetail");
const payslipV2Pto_1 = require("./payslipV2Pto");
const payslipV2PayPeriod_1 = require("./payslipV2PayPeriod");
/**
* Payslip API version 2.0 document data.
*/
class PayslipV2Document {
constructor(rawPrediction, pageId) {
/** Detailed information about the earnings. */
this.salaryDetails = [];
this.bankAccountDetails = new payslipV2BankAccountDetail_1.PayslipV2BankAccountDetail({
prediction: rawPrediction["bank_account_details"],
pageId: pageId,
});
this.employee = new payslipV2Employee_1.PayslipV2Employee({
prediction: rawPrediction["employee"],
pageId: pageId,
});
this.employer = new payslipV2Employer_1.PayslipV2Employer({
prediction: rawPrediction["employer"],
pageId: pageId,
});
this.employment = new payslipV2Employment_1.PayslipV2Employment({
prediction: rawPrediction["employment"],
pageId: pageId,
});
this.payDetail = new payslipV2PayDetail_1.PayslipV2PayDetail({
prediction: rawPrediction["pay_detail"],
pageId: pageId,
});
this.payPeriod = new payslipV2PayPeriod_1.PayslipV2PayPeriod({
prediction: rawPrediction["pay_period"],
pageId: pageId,
});
this.pto = new payslipV2Pto_1.PayslipV2Pto({
prediction: rawPrediction["pto"],
pageId: pageId,
});
rawPrediction["salary_details"] &&
rawPrediction["salary_details"].map((itemPrediction) => this.salaryDetails.push(new payslipV2SalaryDetail_1.PayslipV2SalaryDetail({
prediction: itemPrediction,
pageId: pageId,
})));
}
/**
* Default string representation.
*/
toString() {
let salaryDetailsSummary = "";
if (this.salaryDetails && this.salaryDetails.length > 0) {
const salaryDetailsColSizes = [14, 11, 38, 11];
salaryDetailsSummary += "\n" + (0, common_1.lineSeparator)(salaryDetailsColSizes, "-") + "\n ";
salaryDetailsSummary += "| Amount ";
salaryDetailsSummary += "| Base ";
salaryDetailsSummary += "| Description ";
salaryDetailsSummary += "| Rate ";
salaryDetailsSummary += "|\n" + (0, common_1.lineSeparator)(salaryDetailsColSizes, "=");
salaryDetailsSummary += this.salaryDetails.map((item) => "\n " + item.toTableLine() + "\n" + (0, common_1.lineSeparator)(salaryDetailsColSizes, "-")).join("");
}
const outStr = `: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()}
:PTO: ${this.pto.toFieldList()}
:Pay Period: ${this.payPeriod.toFieldList()}`.trimEnd();
return (0, common_1.cleanOutString)(outStr);
}
}
exports.PayslipV2Document = PayslipV2Document;