UNPKG

mindee

Version:

Mindee Client Library for Node.js

81 lines (80 loc) 3.68 kB
"use strict"; 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;