UNPKG

@lynsoluciones/medusa-docs

Version:
160 lines (159 loc) 8.9 kB
"use strict"; /* * * * MIT License * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); const medusa_1 = require("@medusajs/medusa"); const document_invoice_settings_1 = require("../models/document-invoice-settings"); const utils_1 = require("@medusajs/utils"); class DocumentInvoiceSettingsService extends medusa_1.TransactionBaseService { constructor(container) { super(container); try { this.loggedInUser_ = container.authenticatedUser; } catch (e) { // avoid errors when backend first runs } } copySettingsIfPossible(newSettings, lastSettings) { if (lastSettings) { newSettings.invoice_forced_number = lastSettings.invoice_forced_number; newSettings.invoice_number_format = lastSettings.invoice_number_format; newSettings.invoice_template = lastSettings.invoice_template; } } async getInvoiceForcedNumber() { const lastDocumentInvoiceSettings = await this.getDocumentInvoiceSettings(); if (lastDocumentInvoiceSettings && lastDocumentInvoiceSettings.invoice_forced_number) { const nextNumber = lastDocumentInvoiceSettings.invoice_forced_number.toString(); return nextNumber; } return undefined; } async resetForcedNumberByCreatingNewSettings() { const documentInvoiceSettingsRepository = this.activeManager_.getRepository(document_invoice_settings_1.DocumentInvoiceSettings); const documentInvoiceSettings = await this.getDocumentInvoiceSettings(); if (!documentInvoiceSettings) { const newDocumentInvoiceSettings = this.activeManager_.create(document_invoice_settings_1.DocumentInvoiceSettings); newDocumentInvoiceSettings.invoice_forced_number = undefined; return await documentInvoiceSettingsRepository.save(newDocumentInvoiceSettings); } documentInvoiceSettings.invoice_forced_number = undefined; const result = await documentInvoiceSettingsRepository.save(documentInvoiceSettings); return result; } async getLastDocumentInvoiceSettings() { const documentInvoiceSettingsRepository = this.activeManager_.getRepository(document_invoice_settings_1.DocumentInvoiceSettings); const lastDocumentInvoiceSettings = await documentInvoiceSettingsRepository.createQueryBuilder('documentInvoiceSettings') .where("documentInvoiceSettings.store_id = :storeId", { storeId: this.loggedInUser_.store_id }) .orderBy('documentInvoiceSettings.created_at', 'DESC') .getOne(); if (lastDocumentInvoiceSettings === null) { return undefined; } return lastDocumentInvoiceSettings; } async getDocumentInvoiceSettings() { const documentInvoiceSettingsRepository = this.activeManager_.getRepository(document_invoice_settings_1.DocumentInvoiceSettings); const lastDocumentInvoiceSettings = await documentInvoiceSettingsRepository.createQueryBuilder('documentInvoiceSettings') .where("documentInvoiceSettings.store_id = :storeId", { storeId: this.loggedInUser_.store_id }) .orderBy('documentInvoiceSettings.created_at', 'DESC') .getOne(); if (lastDocumentInvoiceSettings === null) { return undefined; } return lastDocumentInvoiceSettings; } async getInvoiceTemplate() { const documentInvoiceSettings = await this.getDocumentInvoiceSettings(); if (documentInvoiceSettings) { return documentInvoiceSettings.invoice_template; } return undefined; } async updateInvoiceForcedNumber(forcedNumber) { if (forcedNumber && !isNaN(Number(forcedNumber))) { const documentInvoiceSettingsRepository = this.activeManager_.getRepository(document_invoice_settings_1.DocumentInvoiceSettings); const documentInvoiceSettings = await this.getDocumentInvoiceSettings(); if (!documentInvoiceSettings) { const newDocumentInvoiceSettings = this.activeManager_.create(document_invoice_settings_1.DocumentInvoiceSettings); newDocumentInvoiceSettings.invoice_forced_number = parseInt(forcedNumber); newDocumentInvoiceSettings.store_id = this.loggedInUser_.store_id; return await documentInvoiceSettingsRepository.save(newDocumentInvoiceSettings); } documentInvoiceSettings.invoice_forced_number = parseInt(forcedNumber); documentInvoiceSettings.store_id = this.loggedInUser_.store_id; const result = await documentInvoiceSettingsRepository.save(documentInvoiceSettings); return result; } else { throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'You need to set proper number'); } } async updateInvoiceTemplate(invoiceTemplate) { const documentInvoiceSettingsRepository = this.activeManager_.getRepository(document_invoice_settings_1.DocumentInvoiceSettings); const documentInvoiceSettings = await this.getDocumentInvoiceSettings(); if (!documentInvoiceSettings) { const newDocumentInvoiceSettings = this.activeManager_.create(document_invoice_settings_1.DocumentInvoiceSettings); newDocumentInvoiceSettings.invoice_template = invoiceTemplate; newDocumentInvoiceSettings.store_id = this.loggedInUser_.store_id; return await documentInvoiceSettingsRepository.save(newDocumentInvoiceSettings); } documentInvoiceSettings.invoice_template = invoiceTemplate; documentInvoiceSettings.store_id = this.loggedInUser_.store_id; const result = await documentInvoiceSettingsRepository.save(documentInvoiceSettings); return result; } async updateFormatNumber(newFormatNumber) { const documentInvoiceSettingsRepository = this.activeManager_.getRepository(document_invoice_settings_1.DocumentInvoiceSettings); const documentInvoiceSettings = await this.getDocumentInvoiceSettings(); if (!documentInvoiceSettings) { const newDocumentInvoiceSettings = this.activeManager_.create(document_invoice_settings_1.DocumentInvoiceSettings); newDocumentInvoiceSettings.invoice_number_format = newFormatNumber; newDocumentInvoiceSettings.store_id = this.loggedInUser_.store_id; return await documentInvoiceSettingsRepository.save(newDocumentInvoiceSettings); } documentInvoiceSettings.invoice_number_format = newFormatNumber; documentInvoiceSettings.store_id = this.loggedInUser_.store_id; const result = await documentInvoiceSettingsRepository.save(documentInvoiceSettings); return result; } async updateSettings(newFormatNumber, forcedNumber, invoiceTemplate) { const documentInvoiceSettingsRepository = this.activeManager_.getRepository(document_invoice_settings_1.DocumentInvoiceSettings); const documentInvoiceSettings = await this.getDocumentInvoiceSettings(); if (!documentInvoiceSettings) { const newDocumentInvoiceSettings = this.activeManager_.create(document_invoice_settings_1.DocumentInvoiceSettings); newDocumentInvoiceSettings.invoice_number_format = newFormatNumber; newDocumentInvoiceSettings.invoice_template = invoiceTemplate; newDocumentInvoiceSettings.invoice_forced_number = (forcedNumber !== undefined && !isNaN(Number(forcedNumber))) ? parseInt(forcedNumber) : undefined; if (this.loggedInUser_.store_id) { newDocumentInvoiceSettings.store_id = this.loggedInUser_.store_id; } return await documentInvoiceSettingsRepository.save(newDocumentInvoiceSettings); } if (newFormatNumber) { documentInvoiceSettings.invoice_number_format = newFormatNumber; } if (forcedNumber !== undefined && !isNaN(Number(forcedNumber))) { documentInvoiceSettings.invoice_forced_number = parseInt(forcedNumber); } if (invoiceTemplate) { documentInvoiceSettings.invoice_template = invoiceTemplate; } if (this.loggedInUser_.store_id) { documentInvoiceSettings.store_id = this.loggedInUser_.store_id; } const result = await documentInvoiceSettingsRepository.save(documentInvoiceSettings); return result; } } exports.default = DocumentInvoiceSettingsService;