mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 22:00:31 +00:00
feat: closed sale receipt status.
feat: approve and reject sale estimate. feat: initial receipts, invoices, estimates and bills views.
This commit is contained in:
@@ -22,6 +22,16 @@ export default class SalesReceiptsController extends BaseController{
|
||||
router() {
|
||||
const router = Router();
|
||||
|
||||
router.post(
|
||||
'/:id/close',
|
||||
[
|
||||
...this.specificReceiptValidationSchema,
|
||||
],
|
||||
this.validationResult,
|
||||
asyncMiddleware(this.closeSaleReceipt.bind(this)),
|
||||
this.handleServiceErrors,
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/:id', [
|
||||
...this.specificReceiptValidationSchema,
|
||||
@@ -75,6 +85,7 @@ export default class SalesReceiptsController extends BaseController{
|
||||
check('receipt_date').exists().isISO8601(),
|
||||
check('receipt_number').optional().trim().escape(),
|
||||
check('reference_no').optional().trim().escape(),
|
||||
check('closed').default(false).isBoolean().toBoolean(),
|
||||
|
||||
check('entries').exists().isArray({ min: 1 }),
|
||||
|
||||
@@ -188,6 +199,31 @@ export default class SalesReceiptsController extends BaseController{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks the given the sale receipt as closed.
|
||||
* @param {Request} req
|
||||
* @param {Response} res
|
||||
* @param {NextFunction} next
|
||||
*/
|
||||
async closeSaleReceipt(req: Request, res: Response, next: NextFunction) {
|
||||
const { tenantId } = req;
|
||||
const { id: saleReceiptId } = req.params;
|
||||
|
||||
try {
|
||||
// Update the given sale receipt details.
|
||||
await this.saleReceiptService.closeSaleReceipt(
|
||||
tenantId,
|
||||
saleReceiptId,
|
||||
);
|
||||
return res.status(200).send({
|
||||
id: saleReceiptId,
|
||||
message: 'Sale receipt has been closed successfully.',
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Listing sales receipts.
|
||||
* @param {Request} req
|
||||
@@ -296,6 +332,11 @@ export default class SalesReceiptsController extends BaseController{
|
||||
errors: [{ type: 'SALE_RECEIPT_NUMBER_NOT_UNIQUE', code: 900 }],
|
||||
});
|
||||
}
|
||||
if (error.errorType === 'SALE_RECEIPT_IS_ALREADY_CLOSED') {
|
||||
return res.boom.badRequest(null, {
|
||||
errors: [{ type: 'SALE_RECEIPT_IS_ALREADY_CLOSED', code: 1000 }],
|
||||
});
|
||||
}
|
||||
}
|
||||
next(error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user