@lynsoluciones/medusa-docs
Version:
Medusa plugins to generate docs
161 lines (160 loc) • 9.24 kB
JavaScript
"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_packing_slip_settings_1 = require("../models/document-packing-slip-settings");
const utils_1 = require("@medusajs/utils");
class DocumentPackingSlipSettingsService 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.forced_number = lastSettings.forced_number;
newSettings.number_format = lastSettings.number_format;
newSettings.template = lastSettings.template;
}
}
async getPackingSlipForcedNumber() {
const documentPackingSlipSettings = await this.getDocumentPackingSlipSettings();
if (documentPackingSlipSettings && documentPackingSlipSettings.forced_number) {
const nextNumber = documentPackingSlipSettings.forced_number.toString();
return nextNumber;
}
return undefined;
}
async resetForcedNumberByCreatingNewSettings() {
const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings);
const documentPackingSlipSettings = await this.getDocumentPackingSlipSettings();
if (!documentPackingSlipSettings) {
const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings);
newDocumentPackingSlipSettings.forced_number = undefined;
newDocumentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
return await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings);
}
documentPackingSlipSettings.forced_number = undefined;
documentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
const result = await documentPackingSlipSettingsRepository.save(documentPackingSlipSettings);
return result;
}
async getLastDocumentPackingSlipSettings() {
const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings);
const documentPackingSlipSettings = await documentPackingSlipSettingsRepository.createQueryBuilder('documentPackingSlipSettings')
.orderBy('documentPackingSlipSettings.created_at', 'DESC')
.getOne();
if (documentPackingSlipSettings === null) {
return undefined;
}
return documentPackingSlipSettings;
}
async getDocumentPackingSlipSettings() {
const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings);
const lastDocumentPackingSlipSettings = await documentPackingSlipSettingsRepository.createQueryBuilder('documentPackingSlipSettings')
.where("documentPackingSlipSettings.store_id = :storeId", { storeId: this.loggedInUser_.store_id })
.orderBy('documentPackingSlipSettings.created_at', 'DESC')
.getOne();
if (lastDocumentPackingSlipSettings === null) {
return undefined;
}
return lastDocumentPackingSlipSettings;
}
async getPackingSlipTemplate() {
const lastDocumentPackingSlipSettings = await this.getDocumentPackingSlipSettings();
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 documentPackingSlipSettings = await this.getDocumentPackingSlipSettings();
if (!documentPackingSlipSettings) {
const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings);
newDocumentPackingSlipSettings.forced_number = parseInt(forcedNumber);
newDocumentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
return await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings);
}
documentPackingSlipSettings.forced_number = parseInt(forcedNumber);
documentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
const result = await documentPackingSlipSettingsRepository.save(documentPackingSlipSettings);
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 documentPackingSlipSettings = await this.getDocumentPackingSlipSettings();
if (!documentPackingSlipSettings) {
const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings);
newDocumentPackingSlipSettings.template = packingSlipTemplate;
newDocumentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
return await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings);
}
documentPackingSlipSettings.template = packingSlipTemplate;
documentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
const result = await documentPackingSlipSettingsRepository.save(documentPackingSlipSettings);
return result;
}
async updateFormatNumber(newFormatNumber) {
const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings);
const documentPackingSlipSettings = await this.getDocumentPackingSlipSettings();
if (!documentPackingSlipSettings) {
const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings);
newDocumentPackingSlipSettings.number_format = newFormatNumber;
newDocumentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
return await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings);
}
documentPackingSlipSettings.number_format = newFormatNumber;
documentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
const result = await documentPackingSlipSettingsRepository.save(documentPackingSlipSettings);
return result;
}
async updateSettings(newFormatNumber, forcedNumber, packingSlipTemplate) {
const documentPackingSlipSettingsRepository = this.activeManager_.getRepository(document_packing_slip_settings_1.DocumentPackingSlipSettings);
const documentPackingSlipSettings = await this.getDocumentPackingSlipSettings();
if (!documentPackingSlipSettings) {
const newDocumentPackingSlipSettings = this.activeManager_.create(document_packing_slip_settings_1.DocumentPackingSlipSettings);
newDocumentPackingSlipSettings.number_format = newFormatNumber;
newDocumentPackingSlipSettings.template = packingSlipTemplate;
newDocumentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
if (forcedNumber !== undefined && !isNaN(Number(forcedNumber))) {
newDocumentPackingSlipSettings.forced_number = parseInt(forcedNumber);
}
return await documentPackingSlipSettingsRepository.save(newDocumentPackingSlipSettings);
}
if (newFormatNumber) {
documentPackingSlipSettings.number_format = newFormatNumber;
}
if (forcedNumber !== undefined && !isNaN(Number(forcedNumber))) {
documentPackingSlipSettings.forced_number = parseInt(forcedNumber);
}
if (packingSlipTemplate) {
documentPackingSlipSettings.template = packingSlipTemplate;
}
if (this.loggedInUser_.store_id) {
documentPackingSlipSettings.store_id = this.loggedInUser_.store_id;
}
const result = await documentPackingSlipSettingsRepository.save(documentPackingSlipSettings);
return result;
}
}
exports.default = DocumentPackingSlipSettingsService;