UNPKG

@rsc-labs/medusa-documents

Version:
110 lines (109 loc) 6.69 kB
"use strict"; /* * Copyright 2024 RSC-Labs, https://rsoftcon.com/ * * 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_packing_slip_settings_1 = require("../models/document-packing-slip-settings"); const utils_1 = require("@medusajs/utils"); class DocumentPackingSlipSettingsService extends medusa_1.TransactionBaseService { copySettingsIfPossible(newSettings, lastSettings) { if (lastSettings) { newSettings.forced_number = lastSettings.forced_number; newSettings.number_format = lastSettings.number_format; newSettings.template = lastSettings.template; } } async getPackingSlipForcedNumber() { const lastDocumentPackingSlipSettings = await this.getLastDocumentPackingSlipSettings(); if (lastDocumentPackingSlipSettings && lastDocumentPackingSlipSettings.forced_number) { const nextNumber = lastDocumentPackingSlipSettings.forced_number.toString(); return nextNumber; } return undefined; } async resetForcedNumberByCreatingNewSettings() { const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings); const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings); const lastDocumentPackingSlipSettings = await this.getLastDocumentPackingSlipSettings(); this.copySettingsIfPossible(newDocumentPackingSlipSettings, lastDocumentPackingSlipSettings); newDocumentPackingSlipSettings.forced_number = undefined; const result = await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings); return result; } async getLastDocumentPackingSlipSettings() { const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings); const lastDocumentPackingSlipSettings = await documentPackingSlipSettingsRepository.createQueryBuilder('documentPackingSlipSettings') .orderBy('documentPackingSlipSettings.created_at', 'DESC') .getOne(); if (lastDocumentPackingSlipSettings === null) { return undefined; } return lastDocumentPackingSlipSettings; } async getPackingSlipTemplate() { const lastDocumentPackingSlipSettings = await this.getLastDocumentPackingSlipSettings(); if (lastDocumentPackingSlipSettings) { return lastDocumentPackingSlipSettings.template; } return undefined; } async updatePackingSlipForcedNumber(forcedNumber) { if (forcedNumber && !isNaN(Number(forcedNumber))) { const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings); const lastDocumentPackingSlipSettings = await this.getLastDocumentPackingSlipSettings(); const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings); this.copySettingsIfPossible(newDocumentPackingSlipSettings, lastDocumentPackingSlipSettings); newDocumentPackingSlipSettings.forced_number = parseInt(forcedNumber); const result = await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings); return result; } else { throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'You need to set proper number'); } } async updatePackingSlipTemplate(packingSlipTemplate) { const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings); const lastDocumentPackingSlipSettings = await this.getLastDocumentPackingSlipSettings(); const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings); this.copySettingsIfPossible(newDocumentPackingSlipSettings, lastDocumentPackingSlipSettings); newDocumentPackingSlipSettings.template = packingSlipTemplate; const result = await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings); return result; } async updateFormatNumber(newFormatNumber) { const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings); const lastDocumentPackingSlipSettings = await this.getLastDocumentPackingSlipSettings(); const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings); this.copySettingsIfPossible(newDocumentPackingSlipSettings, lastDocumentPackingSlipSettings); newDocumentPackingSlipSettings.number_format = newFormatNumber; const result = await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings); return result; } async updateSettings(newFormatNumber, forcedNumber, packingSlipTemplate) { const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings); const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings); const lastDocumentPackingSlipSettings = await this.getLastDocumentPackingSlipSettings(); this.copySettingsIfPossible(newDocumentPackingSlipSettings, lastDocumentPackingSlipSettings); if (newFormatNumber) { newDocumentPackingSlipSettings.number_format = newFormatNumber; } if (forcedNumber !== undefined && !isNaN(Number(forcedNumber))) { newDocumentPackingSlipSettings.forced_number = parseInt(forcedNumber); } if (packingSlipTemplate) { newDocumentPackingSlipSettings.template = packingSlipTemplate; } const result = await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings); return result; } } exports.default = DocumentPackingSlipSettingsService;