supplierPayments.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  1. /* Actions */
  2. import {
  3. INIT_PAYMENTS_JOURNALS,
  4. SELECT_PAYMENTS_JOURNALS,
  5. ADD_PAYMENTS_MOVE_LINES,
  6. REMOVE_PAYMENTS_MOVE_LINES,
  7. CHANGE_INITIAL_PAID,
  8. RESET_SUPPLIER_PAYMENTS,
  9. RESET_SELECTED_JOURNAL_PAYMENTS,
  10. SELECT_PAYMENTS_PURCHASES_BANK,
  11. SELECT_PAYMENTS_PURCHASES_BANK_TYPE,
  12. CHANGE_PAYMENTS_PURCHASES_BANK_REF,
  13. CHANGE_PAYMENTS_PURCHASES_BANK_DATE_MATURITY,
  14. CHANGE_PAYMENTS_PURCHASES_BANK_NUMBER_CTA,
  15. CHANGE_PAYMENTS_PURCHASES_BANK_NAME_HOLDER
  16. } from '@/constants/actionTypes'
  17. /* Mutations */
  18. import {
  19. SET_PAYMENTS_JOURNALS,
  20. SELECTED_PAYMENTS_JOURNALS,
  21. CALCULATE_PAYMENTS_TOTAL,
  22. CALCULATE_CURRENCY_AMOUNT,
  23. SET_ADD_PAYMENTS_MOVE_LINES,
  24. SET_REMOVE_PAYMENTS_MOVE_LINES,
  25. SET_PAID_TOTAL,
  26. SET_PAYMENTS_CURRENCY_JOURNAL,
  27. SELECTED_PAYMENTS_PURCHASES_BANK,
  28. SELECTED_PAYMENTS_PURCHASES_BANK_TYPE,
  29. SET_PAYMENTS_PURCHASES_BANK_REF,
  30. SET_PAYMENTS_PURCHASES_BANK_DATE_MATURITY,
  31. SET_PAYMENTS_PURCHASES_BANK_NUMBER_CTA,
  32. SET_PAYMENTS_PURCHASES_BANK_NAME_HOLDER
  33. } from '@/constants/mutationTypes'
  34. const initialState = {
  35. paymentsJournals: [],
  36. paymentsSelectedJournal: null,
  37. paymentsMoveLines: [],
  38. paymentsCurrencyAmount: [],
  39. paymentsCurrencyJournal: null,
  40. paymentsTotal: 0,
  41. paidTotal: 0,
  42. paymentsReturned: 0,
  43. selectedPaymentsBank: null,
  44. selectedPaymentsBankType: null,
  45. paymentsBankRef: '',
  46. paymentsBankDateMaturity: '',
  47. paymentsBankNumberCta: '',
  48. paymentsBankNameHolder: ''
  49. }
  50. const state = {
  51. paymentsJournals: initialState.paymentsJournals,
  52. paymentsSelectedJournal: initialState.paymentsSelectedJournal,
  53. paymentsMoveLines: initialState.paymentsMoveLines,
  54. paymentsCurrencyAmount : initialState.paymentsCurrencyAmount,
  55. paymentsCurrencyJournal: initialState.paymentsCurrencyJournal,
  56. paymentsTotal: initialState.paymentsTotal,
  57. paidTotal: initialState.paidTotal,
  58. paymentsReturned: initialState.paymentsReturned,
  59. selectedPaymentsBank: initialState.selectedPaymentsBank,
  60. selectedPaymentsBankType: initialState.selectedPaymentsBankType,
  61. paymentsBankRef: initialState.paymentsBankRef,
  62. paymentsBankDateMaturity: initialState.paymentsBankDateMaturity,
  63. paymentsBankNumberCta: initialState.paymentsBankNumberCta,
  64. paymentsBankNameHolder: initialState.paymentsBankNameHolder
  65. }
  66. const getters = {
  67. /**
  68. * [paymentsJournals description]
  69. * @param {[type]} state [description]
  70. * @return {[type]} [description]
  71. */
  72. paymentsJournals ( state ) {
  73. return state.paymentsJournals
  74. },
  75. /**
  76. * [paymentsSelectedJournal description]
  77. * @param {[type]} state [description]
  78. * @return {[type]} [description]
  79. */
  80. paymentsSelectedJournal ( state ) {
  81. return state.paymentsSelectedJournal
  82. },
  83. /**
  84. * [paymentsMoveLines description]
  85. * @param {[type]} state [description]
  86. * @return {[type]} [description]
  87. */
  88. paymentsMoveLines ( state ) {
  89. return state.paymentsMoveLines
  90. },
  91. /**
  92. * [paymentsCurrencyAmount description]
  93. * @param {[type]} state [description]
  94. * @return {[type]} [description]
  95. */
  96. paymentsCurrencyAmount ( state ) {
  97. return state.paymentsCurrencyAmount
  98. },
  99. /**
  100. * [paymentsTotal description]
  101. * @param {[type]} state [description]
  102. * @return {[type]} [description]
  103. */
  104. paymentsTotal ( state ) {
  105. return state.paymentsTotal
  106. },
  107. /**
  108. * [paymentsReturned description]
  109. * @param {[type]} state [description]
  110. * @return {[type]} [description]
  111. */
  112. paymentsReturned ( state ) {
  113. return state.paymentsReturned
  114. },
  115. paidTotal ( state ) {
  116. return state.paidTotal
  117. },
  118. /**
  119. * [paymentsCurrencyJournal description]
  120. * @param {[type]} state [description]
  121. * @return {[type]} [description]
  122. */
  123. paymentsCurrencyJournal ( state ) {
  124. return state.paymentsCurrencyJournal
  125. },
  126. /**
  127. * [selectedPaymentsBank description]
  128. * @param {[type]} state [description]
  129. * @return {[type]} [description]
  130. */
  131. selectedPaymentsBank ( state ) {
  132. return state.selectedPaymentsBank
  133. },
  134. /**
  135. * [selectedPaymentsBankType description]
  136. * @param {[type]} state [description]
  137. * @return {[type]} [description]
  138. */
  139. selectedPaymentsBankType ( state ) {
  140. return state.selectedPaymentsBankType
  141. },
  142. /**
  143. * [paymentsBankRef description]
  144. * @param {[type]} state [description]
  145. * @return {[type]} [description]
  146. */
  147. paymentsBankRef ( state ) {
  148. return state.paymentsBankRef
  149. },
  150. /**
  151. * [paymentsBankDateMaturity description]
  152. * @param {[type]} state [description]
  153. * @return {[type]} [description]
  154. */
  155. paymentsBankDateMaturity ( state ) {
  156. return state.paymentsBankDateMaturity
  157. },
  158. /**
  159. * [paymentsBankNumberCta description]
  160. * @param {[type]} state [description]
  161. * @return {[type]} [description]
  162. */
  163. paymentsBankNumberCta ( state ) {
  164. return state.paymentsBankNumberCta
  165. },
  166. /**
  167. * [paymentsBankNameHolder description]
  168. * @param {[type]} state [description]
  169. * @return {[type]} [description]
  170. */
  171. paymentsBankNameHolder ( state ) {
  172. return state.paymentsBankNameHolder
  173. }
  174. }
  175. const mutations = {
  176. /**
  177. * [paymentsJournals description]
  178. * @type {[type]}
  179. */
  180. [SET_PAYMENTS_JOURNALS] ( state, payload ){
  181. state.paymentsJournals = payload
  182. },
  183. /**
  184. * [paymentsSelectedJournal description]
  185. * @type {[type]}
  186. */
  187. [SELECTED_PAYMENTS_JOURNALS] ( state, payload ) {
  188. state.paymentsSelectedJournal = payload
  189. },
  190. /**
  191. * [paymentsMoveLines description]
  192. * @type {Array}
  193. */
  194. [SET_ADD_PAYMENTS_MOVE_LINES] (state, payload) {
  195. state.paymentsMoveLines = [payload, ...state.paymentsMoveLines]
  196. },
  197. /**
  198. * [actions description]
  199. * @type {Object}
  200. */
  201. [SET_REMOVE_PAYMENTS_MOVE_LINES] (state, payload) {
  202. if (payload.mode === 'full') {
  203. payload.moveLines.forEach(moves => {
  204. // Remove Payments
  205. let movesPaymentsIndex = state.paymentsMoveLines.findIndex(item => item.id === moves.id)
  206. state.paymentsMoveLines.splice(movesPaymentsIndex)
  207. })
  208. } else {
  209. // Remove Payments
  210. let movesPaymentsIndex = state.paymentsMoveLines.findIndex(item => item.id === payload.moveLines.id)
  211. state.paymentsMoveLines.splice(movesPaymentsIndex, 1)
  212. }
  213. },
  214. /**
  215. * [actions description]
  216. * @type {Object}
  217. */
  218. [CALCULATE_CURRENCY_AMOUNT] ( state, payload ) {
  219. let currency = payload.currency
  220. let paymentsMoveLines = payload.paymentsMoveLines
  221. let paymentsCurrencyAmount = []
  222. currency.forEach(item => {
  223. let amount = 0
  224. paymentsMoveLines.forEach( currency => {
  225. let currencyMoveLine = currency.currencyAmount.find(move => move.id === item.id)
  226. amount = amount + currencyMoveLine.amountCurencyResidual
  227. })
  228. paymentsCurrencyAmount.push({
  229. id: item.id,
  230. symbolCurrency: item.symbol,
  231. amount: amount,
  232. symbol: ' ',
  233. position: 'before',
  234. thousandsSeparator: item.thousandsSeparator,
  235. decimalSeparator: item.decimalSeparator,
  236. decimalPlaces: item.decimalPlaces,
  237. rateSilent: item.rateSilent
  238. })
  239. })
  240. state.paymentsCurrencyAmount = paymentsCurrencyAmount
  241. },
  242. /**
  243. * [actions description]
  244. * @type {Object}
  245. */
  246. [CALCULATE_PAYMENTS_TOTAL] ( state, payload){
  247. let currencyJournal = payload.paymentsCurrencyAmount.find(item => item.id ===payload.currency.id)
  248. let total = 0
  249. if (currencyJournal)
  250. total = currencyJournal.amount
  251. state.paymentsTotal = total
  252. },
  253. /**
  254. * [paidTotal description]
  255. * @type {[type]}
  256. */
  257. [SET_PAID_TOTAL] (state, payload) {
  258. state.paidTotal = payload
  259. },
  260. /**
  261. * [paymentsCurrencyJournal description]
  262. * @type {[type]}
  263. */
  264. [SET_PAYMENTS_CURRENCY_JOURNAL] ( state, payload ){
  265. state.paymentsCurrencyJournal = payload
  266. },
  267. /**
  268. * [selectedPaymentsBank description]
  269. * @type {[type]}
  270. */
  271. [SELECTED_PAYMENTS_PURCHASES_BANK] (state, payload){
  272. state.selectedPaymentsBank = payload
  273. },
  274. /**
  275. * [selectedPaymentsBankType description]
  276. * @type {[type]}
  277. */
  278. [SELECTED_PAYMENTS_PURCHASES_BANK_TYPE] (state, payload){
  279. state.selectedPaymentsBankType = payload
  280. },
  281. /**
  282. * [paymentsBankRef description]
  283. * @type {[type]}
  284. */
  285. [SET_PAYMENTS_PURCHASES_BANK_REF] (state, payload){
  286. state.paymentsBankRef = payload
  287. },
  288. /**
  289. * [paymentsBankDateMaturity description]
  290. * @type {[type]}
  291. */
  292. [SET_PAYMENTS_PURCHASES_BANK_DATE_MATURITY] (state, payload){
  293. state.paymentsBankDateMaturity = payload
  294. },
  295. /**
  296. * [paymentsBankNumberCta description]
  297. * @type {[type]}
  298. */
  299. [SET_PAYMENTS_PURCHASES_BANK_NUMBER_CTA] (state, payload){
  300. state.paymentsBankNumberCta = payload
  301. },
  302. /**
  303. * [paymentsBankNameHolder description]
  304. * @type {[type]}
  305. */
  306. [SET_PAYMENTS_PURCHASES_BANK_NAME_HOLDER] (state, payload){
  307. state.paymentsBankNameHolder = payload
  308. }
  309. }
  310. const actions = {
  311. /**
  312. * [INIT_PAYMENTS_JOURNALS]
  313. */
  314. [INIT_PAYMENTS_JOURNALS] ({ commit }, payload ) {
  315. commit(SET_PAYMENTS_JOURNALS, payload)
  316. },
  317. /**
  318. * [SELECT_PAYMENTS_JOURNALS]
  319. */
  320. [SELECT_PAYMENTS_JOURNALS] ({ commit, getters }, payload ) {
  321. commit(SELECTED_PAYMENTS_JOURNALS, payload)
  322. let currency = []
  323. if (payload.currency.id){
  324. currency = payload.currency
  325. } else {
  326. currency = getters.currencyCompany
  327. }
  328. commit(CALCULATE_PAYMENTS_TOTAL, {
  329. paymentsCurrencyAmount: getters.paymentsCurrencyAmount,
  330. currency: currency
  331. })
  332. commit(SET_PAYMENTS_CURRENCY_JOURNAL, currency)
  333. },
  334. /**
  335. * [paymentsCurrencyAmount description]
  336. * @type {Array}
  337. */
  338. [RESET_SELECTED_JOURNAL_PAYMENTS] ({ commit }) {
  339. commit(SELECTED_PAYMENTS_JOURNALS, [])
  340. commit(CALCULATE_PAYMENTS_TOTAL, {
  341. paymentsCurrencyAmount: [],
  342. currency: []
  343. })
  344. commit(SET_PAYMENTS_CURRENCY_JOURNAL, [])
  345. },
  346. /**
  347. * [ADD_PAYMENTS_MOVE_LINES]
  348. */
  349. [ADD_PAYMENTS_MOVE_LINES] ({ commit, getters, dispatch }, payload ) {
  350. commit(SET_ADD_PAYMENTS_MOVE_LINES, payload)
  351. commit(CALCULATE_CURRENCY_AMOUNT, {
  352. paymentsMoveLines: getters.paymentsMoveLines,
  353. currency: getters.currency
  354. })
  355. dispatch(RESET_SELECTED_JOURNAL_PAYMENTS, [])
  356. },
  357. /**
  358. * [REMOVE_PAYMENTS_MOVE_LINES]
  359. */
  360. [REMOVE_PAYMENTS_MOVE_LINES] ({ commit, getters, dispatch }, payload ) {
  361. commit(SET_REMOVE_PAYMENTS_MOVE_LINES, payload)
  362. commit(CALCULATE_CURRENCY_AMOUNT, {
  363. paymentsMoveLines: getters.paymentsMoveLines,
  364. currency: getters.currency
  365. })
  366. dispatch(RESET_SELECTED_JOURNAL_PAYMENTS, [])
  367. },
  368. /**
  369. * [CHANGE_INITIAL_PAID]
  370. */
  371. [CHANGE_INITIAL_PAID] ({ commit },payload) {
  372. commit(SET_PAID_TOTAL, payload)
  373. },
  374. /**
  375. * [RESET_SUPPLIER_PAYMENTS]
  376. */
  377. [RESET_SUPPLIER_PAYMENTS] ({ commit, getters }) {
  378. commit(SET_PAYMENTS_JOURNALS, [])
  379. commit(SELECTED_PAYMENTS_JOURNALS, [])
  380. commit(SET_REMOVE_PAYMENTS_MOVE_LINES, {
  381. mode: 'full',
  382. moveLines: getters.paymentsMoveLines
  383. })
  384. commit(CALCULATE_CURRENCY_AMOUNT, {
  385. currency: [],
  386. paymentsMoveLines: []
  387. })
  388. commit(SET_PAYMENTS_CURRENCY_JOURNAL, [])
  389. commit(CALCULATE_PAYMENTS_TOTAL, {
  390. paymentsCurrencyAmount: [],
  391. currency: []
  392. })
  393. commit(SET_PAID_TOTAL , 0)
  394. },
  395. /**
  396. * [SELECT_PAYMENTS_PURCHASES_BANK]
  397. */
  398. [SELECT_PAYMENTS_PURCHASES_BANK] ({ commit }, payload ){
  399. commit(SELECTED_PAYMENTS_PURCHASES_BANK, payload)
  400. },
  401. /**
  402. * [SELECT_PAYMENTS_PURCHASES_BANK_TYPE]
  403. */
  404. [SELECT_PAYMENTS_PURCHASES_BANK_TYPE] ({ commit }, payload ){
  405. commit(SELECTED_PAYMENTS_PURCHASES_BANK_TYPE, payload)
  406. },
  407. /**
  408. * [CHANGE_PAYMENTS_PURCHASES_BANK_REF]
  409. */
  410. [CHANGE_PAYMENTS_PURCHASES_BANK_REF] ({ commit }, payload ){
  411. commit(SET_PAYMENTS_PURCHASES_BANK_REF, payload)
  412. },
  413. /**
  414. * [CHANGE_PAYMENTS_PURCHASES_BANK_DATE_MATURITY]
  415. */
  416. [CHANGE_PAYMENTS_PURCHASES_BANK_DATE_MATURITY] ({ commit }, payload ){
  417. commit(SET_PAYMENTS_PURCHASES_BANK_DATE_MATURITY, payload)
  418. },
  419. /**
  420. * [CHANGE_PAYMENTS_PURCHASES_BANK_NUMBER_CTA]
  421. */
  422. [CHANGE_PAYMENTS_PURCHASES_BANK_NUMBER_CTA] ({ commit }, payload ){
  423. commit(SET_PAYMENTS_PURCHASES_BANK_NUMBER_CTA, payload)
  424. },
  425. /**
  426. * [CHANGE_PAYMENTS_PURCHASES_BANK_NAME_HOLDER]
  427. */
  428. [CHANGE_PAYMENTS_PURCHASES_BANK_NAME_HOLDER] ({ commit }, payload ){
  429. commit(SET_PAYMENTS_PURCHASES_BANK_NAME_HOLDER, payload)
  430. }
  431. }
  432. export default {
  433. state,
  434. getters,
  435. mutations,
  436. actions
  437. }