actions.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. import axios from 'axios'
  2. const actions = {
  3. notify(_, message) {
  4. openerp.web.notification.do_warn('Atencion', message)
  5. return false
  6. },
  7. initProcessBank({ getters, commit, dispatch}, mode) {
  8. commit('setMode', mode || getters.mode)
  9. commit('setCompleted', false)
  10. return axios.get('/eiru_bank_statement/init', {
  11. params: {
  12. mode: getters.mode
  13. }
  14. }).then(({data}) => {
  15. dispatch('explodeData', data)
  16. }).catch(error => {
  17. console.error(error);
  18. })
  19. },
  20. explodeData({ dispatch }, data) {
  21. for (let value in data) {
  22. dispatch(`init${value[0].toUpperCase()}${value.slice(1)}`, data[value]);
  23. }
  24. },
  25. /* Check Statement */
  26. checkStatement({ getters, dispatch }) {
  27. return !!getters.selectedStatement || dispatch('notify', 'Necesitas seleccionar una caja para continuar');
  28. },
  29. /* Check Statement Dest */
  30. checkStatementDest({ getters, dispatch }) {
  31. return !!getters.selectedStatementDest || dispatch('notify', 'Necesitas seleccionar una caja para la transferencia')
  32. },
  33. /*
  34. checkAmount({ getters, dispatch}) {
  35. return getters.amountOperation > 0 || dispatch('notify', 'El valor de la operación debe ser mayor que “0”.')
  36. },*/
  37. //
  38. // description
  39. /* Fin del processo */
  40. endProcess({getters, commit, dispatch}) {
  41. let data = {}
  42. if (getters.isTransfer || getters.isInputCashbox || getters.isOutputCashbox) {
  43. /* Verift Amount Operation */
  44. if (getters.amountOperation <= 0) {
  45. dispatch('notify', 'El valor de la operación debe ser mayor que “0”.')
  46. return false
  47. }
  48. /* Verify Description */
  49. if (!getters.description.trim()) {
  50. dispatch('notify', 'Necesitas ingresar una observación para la operación.')
  51. return false
  52. }
  53. /* Generate Data */
  54. data = {
  55. transfer: getters.isTransfer,
  56. input: getters.isInputCashbox,
  57. output: getters.isOutputCashbox,
  58. amount: getters.amountOperation,
  59. description: getters.description,
  60. casboxOriginId: getters.selectedStatement.id,
  61. casboxDestID: !!getters.selectedStatementDest ? getters.selectedStatementDest.id: '',
  62. }
  63. commit('setDataEndProcess', data)
  64. dispatch('createCasboxMove')
  65. }
  66. if (getters.isStatmentConfirm) {
  67. let data = {}
  68. if (!getters.description.trim()) {
  69. dispatch('notify', 'Necesitas ingresar una observación para el cierre de caja.')
  70. return false
  71. }
  72. data = {
  73. statementId: getters.selectedStatement.id,
  74. amount: getters.amountOperation,
  75. description: getters.description,
  76. }
  77. commit('setDataEndProcess', data)
  78. dispatch('processClosingStatement')
  79. }
  80. if (getters.isStatmentModify) {
  81. let data= {}
  82. data = {
  83. lineUpdate: !!getters.linesUpdate.length ? getters.linesUpdate : [],
  84. linesDeleted: !!getters.linesDeleted.length ?getters.linesDeleted : []
  85. }
  86. commit('setDataEndProcess', data)
  87. dispatch('processModifyStatementLine')
  88. // commit('setCompleted', true)
  89. }
  90. },
  91. /**
  92. * [createCasboxMove ]
  93. * # Transferencia
  94. * # input
  95. * # Output
  96. */
  97. createCasboxMove({ getters, dispatch, commit }) {
  98. return axios.post('/eiru_bank_statement/create_cashbox_move', {
  99. jsonrpc: '2.0',
  100. method: 'call',
  101. params: {
  102. data: getters.data
  103. }
  104. }).then(({data}) => {
  105. dispatch('notify', data.result.message)
  106. commit('setCompleted', true)
  107. }).catch(error => {
  108. console.error(error)
  109. })
  110. },
  111. processClosingStatement({ getters, dispatch, commit }) {
  112. return axios.post('/eiru_bank_statement/process_closing_statement', {
  113. jsonrpc: '2.0',
  114. method: 'call',
  115. params: {
  116. data: getters.data
  117. }
  118. }).then(({data}) => {
  119. dispatch('notify', data.result.message)
  120. commit('setCompleted', true)
  121. }).catch(error => {
  122. console.error(error)
  123. })
  124. },
  125. /* MODIFY Line */
  126. processModifyStatementLine({ getters, dispatch, commit }) {
  127. return axios.post('/eiru_bank_statement/process_modify_statement_line', {
  128. jsonrpc: '2.0',
  129. method: 'call',
  130. params: {
  131. data: getters.data
  132. }
  133. }).then(({data}) => {
  134. dispatch('notify', data.result.message)
  135. commit('setCompleted', true)
  136. }).catch(error => {
  137. console.error(error)
  138. })
  139. },
  140. /* Create STATMENT */
  141. endProcessNewStatement({getters, commit, dispatch}) {
  142. let data = {}
  143. data = {
  144. journal_id: getters.selectedJournal,
  145. type_statement: getters.selectedStatementType,
  146. user_id: getters.selectedUserStatement,
  147. date: getters.dateStatement,
  148. }
  149. commit('setDataEndProcess', data)
  150. dispatch('createAccountBankStatement')
  151. },
  152. /*[CreateAccountBankStatement "Crear Caja"]*/
  153. createAccountBankStatement({ getters, dispatch, commit}) {
  154. return axios.post('/eiru_bank_statement/create_account_bank_statement', {
  155. jsonrpc: '2.0',
  156. method: 'call',
  157. params: {
  158. data: getters.data
  159. }
  160. }).then(({data}) => {
  161. dispatch('notify', data.result.message)
  162. if (data.result.state){
  163. dispatch('receiveStatment',data.result.data)
  164. dispatch('showStatementAdd',false)
  165. }
  166. }).catch(error => {
  167. console.error(error)
  168. })
  169. },
  170. // Reset
  171. resetProcess({ rootState, dispatch }) {
  172. for(let key in rootState) {
  173. if (!(rootState[key] instanceof Object)) {
  174. continue
  175. }
  176. key = key.replace('Module', '')
  177. if (key === 'data') {
  178. continue
  179. }
  180. dispatch(`reset${key[0].toUpperCase()}${key.slice(1)}`)
  181. }
  182. dispatch('initProcessBank')
  183. },
  184. }
  185. export default actions