diff --git a/resources/assets/js/plugins/en.js b/resources/assets/js/plugins/en.js index 92db8d63..1ac1b5d7 100644 --- a/resources/assets/js/plugins/en.js +++ b/resources/assets/js/plugins/en.js @@ -310,6 +310,7 @@ export default { invoice_template: 'Invoice Template', template: 'Template', mark_as_sent: 'Mark as sent', + confirm_send_invoice: 'This invoice will be sent via email to the customer', invoice_mark_as_sent: 'This invoice will be marked as sent', confirm_send: 'This invoice will be sent via email to the customer', invoice_date: 'Invoice Date', diff --git a/resources/assets/js/store/modules/invoice/actions.js b/resources/assets/js/store/modules/invoice/actions.js index 64d167a0..47d4dd77 100644 --- a/resources/assets/js/store/modules/invoice/actions.js +++ b/resources/assets/js/store/modules/invoice/actions.js @@ -47,6 +47,7 @@ export const fetchViewInvoice = ({ commit, dispatch, state }, id) => { export const sendEmail = ({ commit, dispatch, state }, data) => { return new Promise((resolve, reject) => { window.axios.post(`/api/invoices/send`, data).then((response) => { + commit(types.UPDATE_INVOICE_STATUS, {id: data.id, status: 'SENT'}) resolve(response) }).catch((err) => { reject(err) @@ -121,7 +122,7 @@ export const updateInvoice = ({ commit, dispatch, state }, data) => { export const markAsSent = ({ commit, dispatch, state }, data) => { return new Promise((resolve, reject) => { window.axios.post(`/api/invoices/mark-as-sent`, data).then((response) => { - // commit(types.UPDATE_INVOICE, response.data) + commit(types.UPDATE_INVOICE_STATUS, {id: data.id, status: 'SENT'}) resolve(response) }).catch((err) => { reject(err) diff --git a/resources/assets/js/store/modules/invoice/getters.js b/resources/assets/js/store/modules/invoice/getters.js index 2e57c1de..fa2b598e 100644 --- a/resources/assets/js/store/modules/invoice/getters.js +++ b/resources/assets/js/store/modules/invoice/getters.js @@ -4,3 +4,7 @@ export const getTemplateId = (state) => state.invoiceTemplateId export const selectedInvoices = (state) => state.selectedInvoices export const totalInvoices = (state) => state.totalInvoices export const selectedCustomer = (state) => state.selectedCustomer +export const getInvoice = (state) => (id) => { + let invId = parseInt(id) + return state.invoices.find(invoice => invoice.id === invId) +} diff --git a/resources/assets/js/store/modules/invoice/mutation-types.js b/resources/assets/js/store/modules/invoice/mutation-types.js index 9c7553dd..c92a4755 100644 --- a/resources/assets/js/store/modules/invoice/mutation-types.js +++ b/resources/assets/js/store/modules/invoice/mutation-types.js @@ -14,3 +14,4 @@ export const SELECT_CUSTOMER = 'SELECT_CUSTOMER' export const RESET_SELECTED_CUSTOMER = 'RESET_SELECTED_CUSTOMER' export const SET_SELECT_ALL_STATE = 'SET_SELECT_ALL_STATE' export const RESET_SELECTED_INVOICES = 'RESET_SELECTED_INVOICES' +export const UPDATE_INVOICE_STATUS = 'UPDATE_INVOICE_STATUS' diff --git a/resources/assets/js/store/modules/invoice/mutations.js b/resources/assets/js/store/modules/invoice/mutations.js index b765f045..f8a5cad2 100644 --- a/resources/assets/js/store/modules/invoice/mutations.js +++ b/resources/assets/js/store/modules/invoice/mutations.js @@ -28,6 +28,12 @@ export default { state.invoices[pos] = data.invoice }, + [types.UPDATE_INVOICE_STATUS] (state, data) { + let pos = state.invoices.findIndex(invoice => invoice.id === data.id) + + state.invoices[pos].status = data.status + }, + [types.RESET_SELECTED_INVOICES] (state, data) { state.selectedInvoices = [] state.selectAllField = false diff --git a/resources/assets/js/views/invoices/View.vue b/resources/assets/js/views/invoices/View.vue index f79052ef..05ccdc48 100644 --- a/resources/assets/js/views/invoices/View.vue +++ b/resources/assets/js/views/invoices/View.vue @@ -5,8 +5,9 @@
- + + {{ $t('invoices.send_invoice') }} + + @@ -135,7 +146,7 @@