diff --git a/packages/server/src/api/controllers/Sales/PaymentReceives.ts b/packages/server/src/api/controllers/Sales/PaymentReceives.ts index 8604682ba..74657a703 100644 --- a/packages/server/src/api/controllers/Sales/PaymentReceives.ts +++ b/packages/server/src/api/controllers/Sales/PaymentReceives.ts @@ -132,6 +132,12 @@ export default class PaymentReceivesController extends BaseController { this.sendPaymentReceiveByMail.bind(this), this.handleServiceErrors ); + router.get( + '/:id/mail', + [...this.paymentReceiveValidation], + asyncMiddleware(this.getPaymentDefaultMail.bind(this)), + this.handleServiceErrors + ); return router; } @@ -553,6 +559,31 @@ export default class PaymentReceivesController extends BaseController { } }; + /** + * Retrieves the default mail options of the given payment transaction. + * @param {Request} req + * @param {Response} res + * @param {NextFunction} next + */ + public getPaymentDefaultMail = async ( + req: Request, + res: Response, + next: NextFunction + ) => { + const { tenantId } = req; + const { id: paymentReceiveId } = req.params; + + try { + const data = await this.paymentReceiveApplication.getPaymentDefaultMail( + tenantId, + paymentReceiveId + ); + return res.status(200).send({ data }); + } catch (error) { + next(error); + } + }; + /** * Handles service errors. * @param error diff --git a/packages/server/src/api/controllers/Sales/SalesEstimates.ts b/packages/server/src/api/controllers/Sales/SalesEstimates.ts index c896ecbfd..f78719de9 100644 --- a/packages/server/src/api/controllers/Sales/SalesEstimates.ts +++ b/packages/server/src/api/controllers/Sales/SalesEstimates.ts @@ -136,6 +136,13 @@ export default class SalesEstimatesController extends BaseController { asyncMiddleware(this.sendSaleEstimateMail.bind(this)), this.handleServiceErrors ); + router.get( + '/:id/mail', + [...this.validateSpecificEstimateSchema], + this.validationResult, + asyncMiddleware(this.getSaleEstimateMail.bind(this)), + this.handleServiceErrors + ); return router; } @@ -525,6 +532,31 @@ export default class SalesEstimatesController extends BaseController { } }; + /** + * Retrieves the default mail options of the given sale estimate. + * @param {Request} req + * @param {Response} res + * @param {NextFunction} next + */ + private getSaleEstimateMail = async ( + req: Request, + res: Response, + next: NextFunction + ) => { + const { tenantId } = req; + const { id: invoiceId } = req.params; + + try { + const data = await this.saleEstimatesApplication.getSaleEstimateMail( + tenantId, + invoiceId + ); + return res.status(200).send({ data }); + } catch (error) { + next(error); + } + }; + /** * Handles service errors. * @param {Error} error diff --git a/packages/server/src/api/controllers/Sales/SalesInvoices.ts b/packages/server/src/api/controllers/Sales/SalesInvoices.ts index daff92f37..cd7f5bfec 100644 --- a/packages/server/src/api/controllers/Sales/SalesInvoices.ts +++ b/packages/server/src/api/controllers/Sales/SalesInvoices.ts @@ -181,6 +181,13 @@ export default class SaleInvoicesController extends BaseController { asyncMiddleware(this.sendSaleInvoiceMail.bind(this)), this.handleServiceErrors ); + router.get( + '/:id/mail', + [...this.specificSaleInvoiceValidation], + this.validationResult, + asyncMiddleware(this.getSaleInvoiceMail.bind(this)), + this.handleServiceErrors + ); return router; } @@ -748,6 +755,31 @@ export default class SaleInvoicesController extends BaseController { } } + /** + * Retrieves the default mail options of the given sale invoice. + * @param {Request} req + * @param {Response} res + * @param {NextFunction} next + */ + public async getSaleInvoiceMail( + req: Request, + res: Response, + next: NextFunction + ) { + const { tenantId } = req; + const { id: invoiceId } = req.params; + + try { + const data = await this.saleInvoiceApplication.getSaleInvoiceMail( + tenantId, + invoiceId + ); + return res.status(200).send({ data }); + } catch (error) { + next(error); + } + } + /** * Handles service errors. * @param {Error} error diff --git a/packages/server/src/api/controllers/Sales/SalesReceipts.ts b/packages/server/src/api/controllers/Sales/SalesReceipts.ts index 89d7edef2..c8635fe3c 100644 --- a/packages/server/src/api/controllers/Sales/SalesReceipts.ts +++ b/packages/server/src/api/controllers/Sales/SalesReceipts.ts @@ -60,6 +60,15 @@ export default class SalesReceiptsController extends BaseController { asyncMiddleware(this.sendSaleReceiptMail.bind(this)), this.handleServiceErrors ); + router.get( + '/:id/mail', + [ + ...this.specificReceiptValidationSchema, + ], + this.validationResult, + asyncMiddleware(this.getSaleReceiptMail.bind(this)), + this.handleServiceErrors + ); router.post( '/:id', CheckPolicies(SaleReceiptAction.Edit, AbilitySubject.SaleReceipt), @@ -450,6 +459,31 @@ export default class SalesReceiptsController extends BaseController { } }; + /** + * Retrieves the default mail options of the given sale receipt. + * @param {Request} req + * @param {Response} res + * @param {NextFunction} next + */ + public getSaleReceiptMail = async ( + req: Request, + res: Response, + next: NextFunction + ) => { + const { tenantId } = req; + const { id: receiptId } = req.params; + + try { + const data = await this.saleReceiptsApplication.getSaleReceiptMail( + tenantId, + receiptId + ); + return res.status(200).send({ data }); + } catch (error) { + next(error); + } + }; + /** * Handles service errors. * @param {Error} error diff --git a/packages/server/src/services/Sales/Estimates/SaleEstimatesApplication.ts b/packages/server/src/services/Sales/Estimates/SaleEstimatesApplication.ts index 6a208746e..68cd8e601 100644 --- a/packages/server/src/services/Sales/Estimates/SaleEstimatesApplication.ts +++ b/packages/server/src/services/Sales/Estimates/SaleEstimatesApplication.ts @@ -232,4 +232,17 @@ export class SaleEstimatesApplication { saleEstimateMailOpts ); } + + /** + * Retrieves the default mail options of the given sale estimate. + * @param {number} tenantId + * @param {number} saleEstimateId + * @returns {} + */ + public getSaleEstimateMail(tenantId: number, saleEstimateId: number) { + return this.sendEstimateMailService.getDefaultMailOpts( + tenantId, + saleEstimateId + ); + } } diff --git a/packages/server/src/services/Sales/Invoices/SaleInvoicesApplication.ts b/packages/server/src/services/Sales/Invoices/SaleInvoicesApplication.ts index 4e00bc813..9b3c19d33 100644 --- a/packages/server/src/services/Sales/Invoices/SaleInvoicesApplication.ts +++ b/packages/server/src/services/Sales/Invoices/SaleInvoicesApplication.ts @@ -342,4 +342,17 @@ export class SaleInvoiceApplication { messageDTO ); } + + /** + * Retrieves the default mail options of the given sale invoice. + * @param {number} tenantId + * @param {number} saleInvoiceid + * @returns {Promise} + */ + public getSaleInvoiceMail(tenantId: number, saleInvoiceid: number) { + return this.sendInvoiceReminderService.getDefaultMailOpts( + tenantId, + saleInvoiceid + ); + } } diff --git a/packages/server/src/services/Sales/PaymentReceives/PaymentReceivesApplication.ts b/packages/server/src/services/Sales/PaymentReceives/PaymentReceivesApplication.ts index bbf88b1ca..6092664e6 100644 --- a/packages/server/src/services/Sales/PaymentReceives/PaymentReceivesApplication.ts +++ b/packages/server/src/services/Sales/PaymentReceives/PaymentReceivesApplication.ts @@ -198,6 +198,19 @@ export class PaymentReceivesApplication { ); } + /** + * Retrieves the default mail options of the given payment transaction. + * @param {number} tenantId + * @param {number} paymentReceiveId + * @returns {Promise} + */ + public getPaymentDefaultMail(tenantId: number, paymentReceiveId: number) { + return this.paymentMailNotify.getDefaultMailOpts( + tenantId, + paymentReceiveId + ); + } + /** * Retrieve pdf content of the given payment receive. * @param {number} tenantId diff --git a/packages/server/src/services/Sales/Receipts/SaleReceiptApplication.ts b/packages/server/src/services/Sales/Receipts/SaleReceiptApplication.ts index 9fdfb548a..6fe03b2a1 100644 --- a/packages/server/src/services/Sales/Receipts/SaleReceiptApplication.ts +++ b/packages/server/src/services/Sales/Receipts/SaleReceiptApplication.ts @@ -188,4 +188,17 @@ export class SaleReceiptApplication { messageOpts ); } + + /** + * Retrieves the default mail options of the given sale receipt. + * @param {number} tenantId + * @param {number} saleReceiptId + * @returns + */ + public getSaleReceiptMail(tenantId: number, saleReceiptId: number) { + return this.saleReceiptNotifyByMailService.getDefaultMailOpts( + tenantId, + saleReceiptId + ); + } }