UNPKG

mindee

Version:

Mindee Client Library for Node.js

97 lines (96 loc) 4.76 kB
"use strict"; 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;