UNPKG

@accounter/israeli-vat-scraper

Version:
99 lines (98 loc) 4.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonthInputsHandler = void 0; const browser_util_js_1 = require("../utils/browser-util.js"); const evaluation_functions_js_1 = require("../utils/evaluation-functions.js"); const page_util_js_1 = require("../utils/page-util.js"); const month_expansion_records_handler_js_1 = require("./month-expansion-records-handler.js"); const INPUTS_BUTTON_SELECTOR = '#LinkButton0'; /** תשומות */ class MonthInputsHandler { config; prompt; location; index; page = null; constructor(config, prompt, location, index) { this.config = config; this.prompt = prompt; this.location = [...location, 'Inputs']; this.index = index; } handle = async (logger) => { this.prompt.update(this.location, 'Fetching...', logger); try { this.page = await (0, browser_util_js_1.newPageByMonth)(this.config.visibleBrowser, this.location[0], this.index, logger); await (0, page_util_js_1.waitAndClick)(this.page, INPUTS_BUTTON_SELECTOR, logger); const inputsTable = await (0, page_util_js_1.waitForSelectorPlus)(this.page, '#tblSikum', logger); const inputsData = await inputsTable?.evaluate(evaluation_functions_js_1.getReportExpansionInputs); // gt income records for (const key in inputsData) { if (key === 'total') { continue; } if (inputsData[key].received.recordsCount > 0) { const index = (() => { switch (key) { case 'regularInput': return 3; case 'pettyCash': return 4; case 'selfInvoiceInput': return 5; case 'importList': return 6; case 'rashapSupplier': return 7; case 'otherDocument': return 8; default: return null; } })(); const secondaryIndex = 2; if (index) { const recordsHandler = new month_expansion_records_handler_js_1.monthExpansionRecordsHandler(this.config, this.prompt, this.location, INPUTS_BUTTON_SELECTOR, index, secondaryIndex); inputsData[key].received.records = await recordsHandler.handle(logger); } } if (inputsData[key].incorrect.recordsCount > 0) { const index = (() => { switch (key) { case 'regularInput': return 3; case 'pettyCash': return 4; case 'selfInvoiceInput': return 5; case 'importList': return 6; case 'rashapSupplier': return 7; case 'otherDocument': return 8; default: return null; } })(); const secondaryIndex = 5; if (index) { const recordsHandler = new month_expansion_records_handler_js_1.monthExpansionRecordsHandler(this.config, this.prompt, this.location, INPUTS_BUTTON_SELECTOR, index, secondaryIndex); inputsData[key].incorrect.records = await recordsHandler.handle(logger); } } } this.page.browser().close(); this.prompt.update(this.location, 'Done', logger); return inputsData; } catch (e) { this.prompt.addError(this.location, e?.message || e, logger); this.page?.browser().close(); return undefined; } }; } exports.MonthInputsHandler = MonthInputsHandler;