@lynsoluciones/medusa-docs
Version:
Medusa plugins to generate docs
160 lines (159 loc) • 8.9 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_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;