kkmserver-js
Version:
kkmserver library
1 lines • 30.1 kB
Source Map (JSON)
{"version":3,"file":"kkmserver-js.mjs","sources":["../src/types/states.enum.ts","../src/api/index.ts","../src/client.ts","../src/bodies.ts"],"sourcesContent":["export enum Commands {\n GetDataKKT = \"GetDataKKT\",\n RegisterCheck = \"RegisterCheck\",\n OpenShift = \"OpenShift\",\n CloseShift = \"CloseShift\",\n XReport = \"XReport\",\n GetDataCheck = \"GetDataCheck\",\n GetRezult = \"GetRezult\",\n DepositingCash = \"DepositingCash\",\n PaymentCash = \"PaymentCash\",\n}\n\nexport enum CommandStatus {\n Ok,\n Run,\n Error,\n NotFound,\n NotRun,\n}\n\n// Статус сессии 1-Закрыта, 2-Открыта, 3-Открыта, но закончилась\nexport enum ShiftStatus {\n Closed = 1,\n Opened,\n Expired,\n}\n\nexport enum TypeCheck {\n Sale,\n Refund,\n SalesCorrection,\n RefundCorrection,\n}\n\n// Система налогообложения (СНО) применяемая для чека, Тег 1055\n// Если не указанно - система СНО настроенная в ККМ по умолчанию\n// 0: Общая ОСН\n// 1: Упрощенная УСН (Доход)\n// 2: Упрощенная УСН (Доход минус Расход)\n// 3: Единый налог на вмененный доход ЕНВД\n// 4: Единый сельскохозяйственный налог ЕСН\n// 5: Патентная система налогообложения\n// Комбинация разных СНО не возможна\n// Надо указывать если ККМ настроена на несколько систем СНО\nexport enum TaxVariant {\n General,\n SimplifiedIncome,\n SimplifiedIncomeMinusCost,\n UnifiedTaxOnImputedIncome,\n UnifiedAgriculturalTax,\n PatentSystem,\n}\n\nexport enum CorrectionType {\n Self, //самостоятельно\n Prescription, //по предписанию\n}\n\n// Признак способа расчета. Тег ОФД 1214. Для ФФД.1.05 и выше обязательное поле\n// 1: \"ПРЕДОПЛАТА 100% (Полная предварительная оплата до момента передачи предмета расчета)\"\n// 2: \"ПРЕДОПЛАТА (Частичная предварительная оплата до момента передачи предмета расчета)\"\n// 3: \"АВАНС\"\n// 4: \"ПОЛНЫЙ РАСЧЕТ (Полная оплата, в том числе с учетом аванса в момент передачи предмета расчета)\"\n// 5: \"ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ (Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит )\"\n// 6: \"ПЕРЕДАЧА В КРЕДИТ (Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит)\"\n// 7: \"ОПЛАТА КРЕДИТА (Оплата предмета расчета после его передачи с оплатой в кредит )\"\nexport enum SignMethodCalculation {\n FullPrepayment = 1,\n PartialPrepayment,\n Advance,\n FullPayment,\n PartialPaymentAndCredit,\n TransferCredit,\n PaymentCredit,\n}\n\n// Признак предмета расчета. Тег ОФД 1212. Для ФФД.1.05 и выше обязательное поле\n// 1: \"ТОВАР (наименование и иные сведения, описывающие товар)\"\n// 2: \"ПОДАКЦИЗНЫЙ ТОВАР (наименование и иные сведения, описывающие товар)\"\n// 3: \"РАБОТА (наименование и иные сведения, описывающие работу)\"\n// 4: \"УСЛУГА (наименование и иные сведения, описывающие услугу)\"\n// 5: \"СТАВКА АЗАРТНОЙ ИГРЫ (при осуществлении деятельности по проведению азартных игр)\"\n// 6: \"ВЫИГРЫШ АЗАРТНОЙ ИГРЫ (при осуществлении деятельности по проведению азартных игр)\"\n// 7: \"ЛОТЕРЕЙНЫЙ БИЛЕТ (при осуществлении деятельности по проведению лотерей)\"\n// 8: \"ВЫИГРЫШ ЛОТЕРЕИ (при осуществлении деятельности по проведению лотерей)\"\n// 9: \"ПРЕДОСТАВЛЕНИЕ РИД (предоставлении прав на использование результатов интеллектуальной деятельности или средств индивидуализации)\"\n// 10: \"ПЛАТЕЖ (аванс, задаток, предоплата, кредит, взнос в счет оплаты, пени, штраф, вознаграждение, бонус и иной аналогичный предмет расчета)\"\n// 11: \"АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ (вознаграждение (банковского)платежного агента/субагента, комиссионера, поверенного или иным агентом)\"\n// 12: \"СОСТАВНОЙ ПРЕДМЕТ РАСЧЕТА (предмет расчета, состоящем из предметов, каждому из которых может быть присвоено вышестоящее значение\"\n// 13: \"ИНОЙ ПРЕДМЕТ РАСЧЕТА (предмет расчета, не относящемуся к предметам расчета, которым может быть присвоено вышестоящее значение\"\n// 14: \"ИМУЩЕСТВЕННОЕ ПРАВО\" (передача имущественных прав)\n// 15: \"ВНЕРЕАЛИЗАЦИОННЫЙ ДОХОД\"\n// 16: \"СТРАХОВЫЕ ВЗНОСЫ\" (суммы расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации)\n// 17: \"ТОРГОВЫЙ СБОР\" (суммы уплаченного торгового сбора)\n// 18: \"КУРОРТНЫЙ СБОР\"\n// 19: \"ЗАЛОГ\"\n// 20: \"РАСХОД\" - суммы произведенных расходов в соответствии со статьей 346.16 Налогового кодекса Российской Федерации, уменьшающих доход\n// 21: \"ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ ПЕНСИОННОЕ СТРАХОВАНИЕ ИП\" или \"ВЗНОСЫ НА ОПС ИП\"\n// 22: \"ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ ПЕНСИОННОЕ СТРАХОВАНИЕ\" или \"ВЗНОСЫ НА ОПС\"\n// 23: \"ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ МЕДИЦИНСКОЕ СТРАХОВАНИЕ ИП\" или \"ВЗНОСЫ НА ОМС ИП\"\n// 24: \"ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ МЕДИЦИНСКОЕ СТРАХОВАНИЕ\" или \"ВЗНОСЫ НА ОМС\"\n// 25: \"ВЗНОСЫ НА ОБЯЗАТЕЛЬНОЕ СОЦИАЛЬНОЕ СТРАХОВАНИЕ\" или \"ВЗНОСЫ НА ОСС\"\n// 26: \"ПЛАТЕЖ КАЗИНО\" прием и выплата денежных средств при осуществлении казино и залами игровых автоматов расчетов с использованием обменных знаков игорного заведения\nexport enum SignCalculationObject {\n Product = 1,\n ExciseProduct,\n Work,\n Service,\n RateGambling,\n WinGambling,\n LotteryTicket,\n LotteryWin,\n ProvideRight,\n Payment,\n AgentReward,\n CompositeCalculationObject,\n OtherCalculationObject,\n PropertyRight,\n NonOperatingIncome,\n InsuranceContributions,\n TradeFee,\n ResortFee,\n Deposit,\n Expense,\n PensionInsuranceContributionsIP,\n PensionInsuranceContributions,\n MedicalInsuranceContributionsIP,\n MedicalInsuranceContributions,\n SocialInsuranceContributions,\n CasinoPayment,\n}\n\n// Признак агента. Тег ОФД 1222. Поле не обязательное. Можно вообще не указывать.\n// 0: \"Банковский платежный агент:\" Оказание услуг пользователем, являющимся банковским платежным агентом\n// 1: \"Банковский платежный субагент:\" Оказание услуг пользователем, являющимся банковским платежным субагентом\n// 2: \"Платежный агент:\" Оказание услуг пользователем, являющимся платежным агентом\n// 3: \"Платежный субагент:\" Оказание услуг пользователем, являющимся платежным субагентом\n// 4: \"Поверенный:\" Оказание услуг пользователем, являющимся поверенным\n// 5: \"Комиссионер:\" Оказание услуг пользователем, являющимся комиссионером\n// 6: \"Агент:\" Оказание услуг пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером\nexport enum AgentSign {\n BankPaymentAgent,\n BankPaymentSubagent,\n PaymentAgent,\n PaymentSubagent,\n Attorney,\n Commissioner,\n Agent,\n}","import axios from \"axios\";\n\nexport class HttpService {\n\tclient;\n\n\tconstructor(baseURL: string, options: object = {}) {\n\t\tthis.client = axios.create({\n\t\tbaseURL,\n\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t},\n\t\t...options,\n\t\t});\n\t}\n\n\tasync get(url: string, options: object = {}) {\n\t\tconst response = await this.client.get(url, options);\n\t\treturn response;\n\t}\n\n\tasync post(url: string, params: object | null = {}, requestParams: object = {}) {\n\t\tconst response = await this.client.post(url, params, requestParams);\n\t\treturn response;\n\t}\n\n\tasync put(url: string, params: object = {}) {\n\t\tconst response = await this.client.put(url, params);\n\t\treturn response;\n\t}\n\n\tasync delete(url: string) {\n\t\tconst response = await this.client.delete(url);\n\t\treturn response;\n\t}\n}\n","import { HttpService } from \"./api\"\nimport { Bodies } from \"./types/command-bodies\"\nimport { Commands, CommandStatus, TaxVariant } from \"./types/states.enum\"\n\ninterface KKMClientSettings {\n\turl: string,\n\tinnKkm: string,\n\tkktNumber: string,\n\tcashierName: string,\n\tcashierVatin: string,\n\tnumDevice?: number,\n\ttaxVariant?: TaxVariant,\n\tcommandTimeout?: number,\n\tplaceMarket?: string,\n\taddressSettle?: string,\n\tcommandResultTimeout?: number,\n}\n\nexport class KKMClient {\n private http: HttpService\n\tprivate executePath: string = 'Execute'\n\tpublic url: string\n\tpublic innKkm: string\n\tpublic kktNumber: string\n\tpublic cashierName: string\n\tpublic cashierVatin: string\n\tpublic numDevice?: number\n\tpublic taxVariant?: TaxVariant\n\tpublic commandTimeout?: number\n\tpublic placeMarket?: string\n\tpublic addressSettle?: string\n\tpublic commandResultTimeout?: number\n\n\tconstructor(settings: KKMClientSettings) {\n\t\tthis.url = settings.url || \"http://localhost:5893/\"\n\t\tthis.http = new HttpService(this.url)\n\t\tthis.innKkm = settings.innKkm || ''\n\t\tthis.kktNumber = settings.kktNumber || ''\n\t\tthis.cashierName = settings.cashierName || ''\n\t\tthis.cashierVatin = settings.cashierVatin || ''\n\t\tthis.taxVariant = settings.taxVariant\n\t\tthis.numDevice = settings.numDevice\n\t\tthis.commandTimeout = settings.commandTimeout || 60\n\t\tthis.placeMarket = settings.placeMarket;\n\t\tthis.addressSettle = settings.addressSettle;\n\t\tthis.commandResultTimeout = settings.commandResultTimeout || 1000;\n\t}\n\n\t/**\n\t * Генерирует GUID\n\t */\n\tgenerateUUID(): string {\n function getRandomHex(): string {\n\t\t\treturn (Math.random().toString(16) + \"000000\").slice(2, 10);\n }\n return (\n\t\t\tgetRandomHex() + '-' +\n\t\t\tgetRandomHex() + '-' +\n\t\t\tgetRandomHex() + '-' +\n\t\t\tgetRandomHex() + '-' +\n\t\t\tgetRandomHex() + getRandomHex() + getRandomHex()\n );\n\t}\n\n\t/**\n\t * Получает параметры для чека по умолчанию\n\t */\n\tprotected getDefaultCheckParams(): object {\n\t\treturn {\n\t\t\tInnKkm: this.innKkm,\n\t\t\tTaxVariant: this.taxVariant,\n\t\t\tNumDevice: this.numDevice,\n\t\t\tCashierName: this.cashierName,\n\t\t\tCashierVatin: this.cashierVatin,\n\t\t\tTimeout: this.commandTimeout,\n\t\t\tPlaceMarket: this.placeMarket,\n\t\t\tAddressSettle: this.addressSettle,\n\t\t\tIdCommand: this.generateUUID(),\n\t\t}\n\t}\n\n\t/**\n\t * Отправляет комманду на ККМ\n\t * @param {Bodies} commandBody - Идентификатор задания\n\t */\n\tasync sendCommand(commandBody: Bodies): Promise<void> {\n\t\tconst response = await this.http.post(this.executePath, commandBody);\n\t\treturn response?.data\n\t}\n\n\t/**\n\t * Проверяет статуса ранее отданной команды\n\t * @param {String} uuid - Идентификатор задания\n\t */\n\tasync getCommandResult(uuid: string): Promise<void> {\n\t\ttry {\n\t\t\twhile (true) {\n\t\t\t\tconst requestParams = {\n\t\t\t\t\tCommand: Commands.GetRezult,\n\t\t\t\t\tIdCommand: uuid,\n\t\t\t\t}\n\t\n\t\t\t\tconst response = await this.http.post(this.executePath, requestParams);\n\t\t\t\n\t\t\t\tif (response.data?.Rezult) {\n\t\t\t\t\tif (response.data.Rezult.Status === CommandStatus.Run) {\n\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, this.commandResultTimeout));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn response?.data\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t};\n}\n","import { KKMClient } from \"./client\";\nimport { GetDataKKTBody, CommandBody, OpenShiftBody, CloseShiftBody, XReportBody, RegisterCheckBody, GetDataCheckBody, PaymentCashBody, DepositingCashBody } from \"./types/command-bodies\";\nimport { Commands } from \"./types/states.enum\";\n\nexport class CommandBodies extends KKMClient {\n\tconstructor(kkmClient?: KKMClient) {\n if (kkmClient) {\n super({\n\t\t\t\turl: kkmClient.url,\n\t\t\t\tinnKkm: kkmClient.innKkm,\n\t\t\t\tkktNumber: kkmClient.kktNumber,\n\t\t\t\tcashierName: kkmClient.cashierName,\n\t\t\t\tcashierVatin: kkmClient.cashierVatin,\n\t\t\t\tnumDevice: kkmClient.numDevice,\n\t\t\t\ttaxVariant: kkmClient.taxVariant,\n\t\t\t\tcommandTimeout: kkmClient.commandTimeout,\n\t\t\t\tplaceMarket: kkmClient.placeMarket,\n\t\t\t\taddressSettle: kkmClient.addressSettle,\n\t\t\t});\n } else {\n throw new Error('Не передан экземпляр KKMClient');\n }\n }\n\n\t/**\n\t * Тело получения текущего состояние ККТ\n\t */\n\tgetDataKKTBody(body: GetDataKKTBody): GetDataKKTBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.GetDataKKT,\n\t\t\tInnKkm: this.innKkm,\n\t\t\tTaxVariant: this.taxVariant,\n\t\t\tNumDevice: this.numDevice,\n\t\t\tIdCommand: this.generateUUID(),\n\t\t\t...body,\n\t\t}\n\t}\n\n\t/**\n\t * Тело открытия смены\n\t * @param {OpenShiftBody} body - Тело запроса\n\t */\n\topenShiftBody(body: OpenShiftBody): OpenShiftBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.OpenShift,\n\t\t\tNotPrint: false,\n\t\t\tIdDevice: '',\n\t\t\t...this.getDefaultCheckParams(),\n\t\t\t...body,\n\t\t}\n\t}\n\n\t/**\n\t * Тело закрытия смены\n\t * @param {CloseShiftBody} body - Тело запроса\n\t */\n\tcloseShiftBody(body: CloseShiftBody): CloseShiftBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.CloseShift,\n\t\t\tNotPrint: false,\n\t\t\tIdDevice: '',\n\t\t\t...this.getDefaultCheckParams(),\n\t\t\t...body,\n\t\t}\n\t}\n\n\t/**\n\t * Тело печати X отчета\n\t * @param {XReportBody} body - Тело запроса\n\t */\n\txReportBody(body: XReportBody): XReportBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.XReport,\n\t\t\t...this.getDefaultCheckParams(),\n\t\t\t...body,\n\t\t}\n\t}\n\n\t/**\n\t * Тело получения данных чека\n\t * @param {GetDataCheckBody} body - Тело запроса\n\t */\n\tgetDataCheckBody(body: GetDataCheckBody): GetDataCheckBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.GetDataCheck,\n\t\t\tInnKkm: this.innKkm,\n\t\t\tTaxVariant: this.taxVariant,\n\t\t\tNumDevice: this.numDevice,\n\t\t\tIdCommand: this.generateUUID(),\n\t\t\t...body,\n\t\t}\n\t}\n\n\t/**\n\t * Тело печати чека\n\t * @param {RegisterCheckBody} body - Тело запроса\n\t */\n\tregisterCheckBody(body: RegisterCheckBody): RegisterCheckBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.RegisterCheck,\n\t\t\tIsFiscalCheck: true,\n\t\t\tNotPrint: false,\n\t\t\tNumberCopies: 0,\n\t\t\t...this.getDefaultCheckParams(),\n\t\t\t...body,\n\t\t}\n\t}\n\n\t/**\n\t * Тело печати чека изъятия денежных средств\n\t * @param {PaymentCashBody} body - Тело запроса\n\t */\n\tpaymentCashBody(body: PaymentCashBody): PaymentCashBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.PaymentCash,\n\t\t\t...this.getDefaultCheckParams(),\n\t\t\t...body,\n\t\t}\n\t}\n\n\t/**\n\t * Тело печати чека внесения денежных средств\n\t * @param {DepositingCashBody} body - Тело запроса\n\t */\n\tdepositingCashBody(body: DepositingCashBody): DepositingCashBody & CommandBody {\n\t\treturn {\n\t\t\tCommand: Commands.DepositingCash,\n\t\t\t...this.getDefaultCheckParams(),\n\t\t\t...body,\n\t\t}\n\t}\n}"],"names":["Commands","CommandStatus","ShiftStatus","TypeCheck","TaxVariant","CorrectionType","SignMethodCalculation","SignCalculationObject","AgentSign","__publicField"],"mappings":"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"}