Browse Source

[ADD] Seleccion de metodo de pago

adrielso 7 years ago
parent
commit
0bc12feab8

+ 40 - 0
src/components/filters/currency.js

@@ -0,0 +1,40 @@
+/**
+ *
+ */
+const currency = (value = 0, options = {}) => {
+    value = value.toString()
+
+    if (!(options instanceof Object)) {
+        options = {}
+    }
+
+    options.symbol = options.symbol || '$'
+    options.position = options.position || 'before'
+    options.thousandsSeparator = options.thousandsSeparator || '.'
+    options.decimalPlaces = options.decimalPlaces >= 0 || options.decimalPlaces <= 2 ? options.decimalPlaces : 2
+    options.decimalSeparator = options.decimalSeparator || ','
+    options.decimalZeros = !!options.decimalZeros
+
+    if (!!(`${options.thousandsSeparator}${options.decimalSeparator}`).replace(/\.,|,\./g, '')) {
+        throw new Error('Same thousands and decimal separator is not allowed')
+    }
+
+    value = value.split('.')
+
+    value[0] = value[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, `$1${options.thousandsSeparator}`)
+
+    if (!!value[1]) {
+        value[1] = Number.parseFloat(`1.${value[1]}e${options.decimalPlaces}`)
+        value[1] = Math.round(value[1]).toString().replace(/^1/, '')
+    }
+
+    value = value.join(options.decimalSeparator)
+
+    if (!options.decimalZeros) {
+        value = value.replace(/([\.|,]\d)0$/, '$1')
+    }
+
+    return options.position === 'before' ? `${options.symbol} ${value}` : `${value} ${options.symbol}`
+}
+
+export default currency

+ 13 - 0
src/components/filters/dateFormat.js

@@ -0,0 +1,13 @@
+/**
+ * [dateFormat description]
+ * @type {[type]}
+ */
+const dateFormat = (date) => {
+    if (!date)
+        return
+    // date = date.toString()
+    date = date.replace(/(\d{4})([/\-])(\d{2})[/\-](\d{2})/,'$4$2$3$2$1')
+    return date
+}
+
+export default dateFormat

+ 1 - 1
src/components/fromsInvoices/Grid.vue

@@ -1,7 +1,7 @@
 <template lang="pug">
     .card-grid-wrapper
         card-grid
-            card(v-for='item in items' :key='item.id' :dateInvoice ='item.dateInvoice' :number='item.number' :amountTotal='item.amountTotal' :residual='item.residual' :isSelected='item.id === selectedId' @onClick='onClickCard(item)' :currency='item.currency')
+            card(v-for='item in items' :key='item.id' :dateInvoice ='item.dateInvoice' :number='item.number' :amountTotal='item.amountTotal' :residual='item.residual' :isSelected='item.id === selectedId' @onClick='onClickCard(item)' :currency='item.currencyInvoice')
 </template>
 
 <script>

+ 2 - 20
src/components/payments/VoucherTicket.vue

@@ -8,17 +8,12 @@
                 .voucher-ticket-from-item
                     label.voucher-ticket-from-label Cliente
                     label.voucher-ticket-from-input {{ customer.name|| '' }}
-                //- .voucher-ticket-from-item
-                //-     label.voucher-ticket-from-label Factura número
-                //-     label.voucher-ticket-from-input {{ invoice.number || '' }}
                 .voucher-ticket-from-grid-header
                     label.voucher-ticket-from-grid-header-left Factura
-                    //- label.voucher-ticket-from-grid-header-left Vencimiento
                     label.voucher-ticket-from-grid-header-right Monto
                 .voucher-ticket-from-grid
                     .voucher-ticket-from-grid-item(v-for="line in items")
-                        label.voucher-ticket-from-grid-item-left {{ line.invoiceNumber}}
-                        //- label.voucher-ticket-from-grid-item-left {{ line.dateMaturity | dateFormat}}
+                        label.voucher-ticket-from-grid-item-left {{ line.invoiceNumber }}
                         label.voucher-ticket-from-grid-item-right {{ line.amountResidualCurrency | currency(...invoice.currency) }}
                 .voucher-ticket-from-item-total
                     label.voucher-ticket-from-label-total Total
@@ -63,7 +58,6 @@
             height: 460px
             margin: 10px
             border: 1px solid #d3d3d3
-            // background: $app-light-color
             display: inline-block
             .voucher-ticket-from
                 width: 100%
@@ -123,7 +117,7 @@
                         text-align: center
                 .voucher-ticket-from-grid
                     width: calc(100% - 20px)
-                    height: 160px
+                    height: 210px
                     overflow-y: auto
                     margin: 0px 10px
                     border: 1px solid #d3d3d3
@@ -190,16 +184,4 @@
                                 border-top: 0px
                                 border-left: 0px
                                 border-right: 0px
-
-                        // display: inline-block
-                    // .voucher-ticket-from-input-total
-                    //     width: calc(40% - 10px)
-                    //     height: 25px
-                    //     margin-top: 15px
-                    //     text-align: right
-                    //     padding-right: 15px
-                    //     font:
-                    //         size: 10pt
-                    //         weight: bold
-                    //     border-bottom: 1px solid #dedede
 </style>

+ 1 - 1
src/components/steps/Invoices.vue

@@ -2,7 +2,7 @@
     .payments-purchase-step
         .supplier-invoices
             searcher(:items="supplierInvoices" :keys="['number']" @onSearch="filterSupplierInvoices")
-            grid(:items='supplierInvoicesVisibles' @onSelect='selectSupplierInvoices')
+            grid(:items='supplierInvoicesVisibles' @onSelect='selectSupplierInvoices' )
 </template>
 
 <script>

+ 4 - 4
src/components/steps/MovesLines.vue

@@ -1,9 +1,8 @@
 <template lang="pug">
     .payments-purchase-step
         .move-step
-            grid-moves(:items="supplierMoveLines" @onSelect="selectSuppierMoveLines")
-            grid-payments(:items='supplierLinesPayments' :total="supplierPaymentsTotal" @onDeleteIntem="actionRemoveSupplierLinesPayments")
-            //- select-moves(:items='movesPayments' :total="movesPaymentsTotal" @onDeleteIntem='removeMovePayments' :currency='currencyInvoice')
+            grid-moves(:items="supplierMoveLines" @onSelect="selectSuppierMoveLines" :currency="currencyInvoice")
+            grid-payments(:items='supplierLinesPayments' :total="supplierPaymentsTotal" @onDeleteIntem="actionRemoveSupplierLinesPayments" :currency='currencyInvoice')
 </template>
 
 <script>
@@ -22,7 +21,8 @@
         computed: mapGetters([
             'supplierMoveLines',
             'supplierLinesPayments',
-            'supplierPaymentsTotal'
+            'supplierPaymentsTotal',
+            'currencyInvoice'
         ]),
         methods: mapActions([
             SELECT_SUPPLIER_MOVE_LINES,

+ 3 - 2
src/components/steps/Supplier.vue

@@ -5,7 +5,7 @@
                 searcher(:items="supplier" :keys="['name']" @onSearch="filterPaymentsPurchasesSupplier")
                 card-grid(:items="supplierVisible" :loading="loadingSupplier" @onSelect='selectPaymentsPurchasesSupplier')
             transition(name="slide-fade")
-                supplier-details(v-if="!!selectedSupplier" :supplier="selectedSupplier" )
+                supplier-details(v-if="!!selectedSupplier" :supplier="selectedSupplier" :currencyCompany="currencyCompany")
 </template>
 
 <script>
@@ -24,7 +24,8 @@
             'supplier',
             'supplierVisible',
             'loadingSupplier',
-            'selectedSupplier'
+            'selectedSupplier',
+            'currencyCompany'
         ]),
         methods: mapActions([
             FILTER_PAYMENTS_PURCHASES_SUPPLIER,

+ 132 - 82
src/components/steps/payments.vue

@@ -1,100 +1,150 @@
 <template lang="pug">
     .payments-purchase-step
-        .from-loading-payments(v-show='processingPayments')
-            .form-overlay-payments
-            .form-spinner-payments
-                spinner(type='wave')
-        voucher-ticket(v-if="supplierLinesPayments.length" :items="supplierLinesPayments" :customer='selectedSupplier' :invoice='selectedInvoices' )
-        //- voucher-ticket(v-if="supplierLinesPayments.length" :items="supplierLinesPayments" :customer='selectedSupplier' :invoice='selectedInvoices' :currencyAmount='currencyAmount')
-        //- form.method-payment
-        //-     .method-form-separator
-        //-         h3 Detalle de Cliente
-        //-         hr
-        //-     .method-form-item
-        //-         label.method-form-label Cliente
-        //-         input.method-form-input(readonly :value="selectedCustomer && selectedCustomer.displayName")
-        //-     .method-form-separator
-        //-         h3 Detalle de pago
-        //-         hr
-        //-     .method-form-item
-        //-         label.method-form-label Método de pago
-        //-         select.method-form-input(v-model="paymentJournals")
-        //-             option(v-for="journal in journals" :value="journal") {{ journal.displayName }}
-        //-     .method-form-item
-        //-         label.method-form-label Total
-        //-         input.method-form-input-number(readonly :value="paymentCurrencyTotal | currency(...currency)")
-        //-     .method-form-item
-        //-         label.method-form-label  Monto a Pagar
-        //-         input.method-form-input-number(v-model='paid' autofocus)
-        //-     .method-form-item
-        //-         label.method-form-label Monto a Devolver
-        //-         input.method-form-input-number(readonly :value='paymentsReturned | currency(...currency)')
+        .payments-step
+            .from-loading-payments(v-show='processingPayments')
+                .form-overlay-payments
+                .form-spinner-payments
+                    spinner(type='wave')
+            voucher-ticket(v-if="paymentsMoveLines.length" :items="paymentsMoveLines" :customer='selectedSupplier' :invoice='selectedInvoices' :currencyAmount="paymentsCurrencyAmount")
+            form.method-payment
+                .method-form-separator
+                    h3 Detalle de Cliente
+                    hr
+                .method-form-item
+                    label.method-form-label Cliente
+                    input.method-form-input(readonly :value="selectedSupplier && selectedSupplier.displayName")
+                .method-form-separator
+                    h3 Detalle de pago
+                    hr
+                .method-form-item
+                    label.method-form-label Método de pago
+                    select.method-form-input(v-model="SelectedJournal")
+                        option(v-for="journal in paymentsJournals" :value="journal") {{ journal.displayName }}
+                .method-form-item
+                    label.method-form-label Total
+                    input.method-form-input-number(readonly :value="paymentsTotal | currency(...currency)")
+                .method-form-item
+                    label.method-form-label  Monto a Pagar
+                    input.method-form-input-number(v-model='paid' autofocus)
+                .method-form-item
+                    label.method-form-label Monto a Devolver
+                    input.method-form-input-number(readonly :value='paymentsReturned | currency(...currency)')
 </template>
 
 <script>
-    import { mapGetters, mapActions }from 'vuex'
+    import { mapGetters, mapActions } from 'vuex'
+    import { SELECT_PAYMENTS_JOURNALS, CHANGE_INITIAL_PAID } from '@/constants/actionTypes'
     import  VoucherTicket from '@@/payments/VoucherTicket'
+
     export default {
         components: {
             VoucherTicket
         },
-        computed: mapGetters([
-            'supplierLinesPayments',
-            'selectedSupplier',
-            'selectedInvoices'
-        ])
+        computed: {
+            SelectedJournal: {
+                get() {
+                    return (this.paymentsSelectedJournal) || -1
+                },
+                set(value) {
+                    if (value)
+                        this.selectPaymentsJournals(value)
+                }
+            },
+            paid: {
+                get() {
+                    let formatted = this.$options.filters.currency(this.paidTotal, {...this.currency})
+                    return !!this.paidTotal ? formatted : formatted.replace(/\d/, '')
+                },
+                set(value) {
+                    value = value.replace(/[\.|,](\d{0,2}$)/, '?$1').split(/\?/)
+                    value[0] = value[0].replace(/[^0-9]/g, '')
+                    value = Number.parseFloat(value.join('.')) || 0
+                    
+                    this.changeInitialPaid(value)
+                    this.computePayment(value)
+                }
+            },
+            ...mapGetters([
+                'paymentsMoveLines',
+                'paymentsCurrencyAmount',
+                'selectedSupplier',
+                'selectedInvoices',
+                'paymentsJournals',
+                'paymentsSelectedJournal',
+                'paymentsTotal',
+                'paidTotal',
+                'paymentsReturned'
+            ])
+        },
+        methods: {
+            computePayment(value) {
+                this.paymentsReturned = value < this.paymentsTotal ? 0 : value - this.paymentsTotal
+                // this.paymentsResidual = value > this.movesPaymentsTotal ? 0 : this.movesPaymentsTotal - value
+            },
+            ...mapActions([
+                CHANGE_INITIAL_PAID,
+                SELECT_PAYMENTS_JOURNALS
+            ])
+        },
+        data() {
+            return {
+                paymentsReturned: 0,
+
+            }
+        }
     }
 </script>
 
 <style lang="sass">
     @import '../../assets/variables'
-    .payments-step
-        width: 100%
-        height: calc(100% - 50px)
-        padding-bottom: 50px
-        display: flex
-        // position: relative
-        .method-payment
-            width: calc(100% - 450px)
-            height: 100%
-            margin-right: 50px
-            padding:  15px 35px
-            background: $app-light-color
-            .method-form-separator
-               h3
-                   color: #9e9e9e
-                   font-size: 8pt
-               hr
-                   margin-top: 5px
-            .method-form-item
-                width: 100%
-                height: 45px
-                margin-bottom: 15px
-                .method-form-label
-                    width: 250px
-                    height: 45px
-                    font-size: 14pt
-                .method-form-input, .method-form-input-number
-                    width: 350px
-                    height: 45px
-                    font-size: 14pt
-                    border-radius: 0
-                .method-form-input-number
-                    text-align: right
-        .from-loading-payments
-            width: 90%
-            height: 90%
-            position: absolute
-            .form-overlay-payments
-                width: 100%
+    .payments-purchase-step
+        .payments-step
+            width: 100%
+            height: calc(100% - 50px)
+            padding-bottom: 50px
+            display: flex
+            // position: relative
+            .method-payment
+                width: calc(100% - 450px)
                 height: 100%
-                background: $app-bg-color
-                opacity: 0.5
+                margin-right: 50px
+                padding:  15px 35px
+                background: $app-light-color
+                .method-form-separator
+                   h3
+                       color: #9e9e9e
+                       font-size: 8pt
+                   hr
+                       margin-top: 5px
+                .method-form-item
+                    width: 100%
+                    height: 45px
+                    margin-bottom: 15px
+                    .method-form-label
+                        width: 250px
+                        height: 45px
+                        font-size: 14pt
+                    .method-form-input, .method-form-input-number
+                        width: 350px
+                        height: 45px
+                        font-size: 14pt
+                        border-radius: 0
+                    .method-form-input-number
+                        text-align: right
+            .from-loading-payments
+                width: 90%
+                height: 90%
                 position: absolute
-            .form-spinner-payments
-                width: 100%
-                height: 100%
-                display: flex
-                justify-content: center
-                align-items: center
+                .form-overlay-payments
+                    width: 100%
+                    height: 100%
+                    background: $app-bg-color
+                    opacity: 0.5
+                    position: absolute
+                .form-spinner-payments
+                    width: 100%
+                    height: 100%
+                    display: flex
+                    justify-content: center
+                    align-items: center
 </style>

+ 7 - 1
src/constants/actionTypes.js

@@ -12,6 +12,8 @@ const INIT_PAYMENTS_PURCHASES_DATE = 'initPaymentsPurchasesDate'
  * [ User ]
  */
 const INIT_PAYMENTS_PURCHASES_USER = 'initPaymentsPurchasesUser'
+/* Company */
+const INIT_COMPANY_USER = 'initCompanyUser'
 /**
  * [ supplier ]
  */
@@ -33,6 +35,9 @@ const ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS = 'actionRemoveSupplierLinesPayments
 const INIT_PAYMENTS_PURCHASES_JOURNALS = 'initPaymentsPurchasesJournals'
 const ADD_PAYMENTS_MOVE_LINES = 'addPaymentsMoveLines'
 const REMOVE_PAYMENTS_MOVE_LINES = 'removePaymentsMovelines'
+const INIT_PAYMENTS_JOURNALS = 'initPaymentsJournals'
+const SELECT_PAYMENTS_JOURNALS = 'selectPaymentsJournals'
+const CHANGE_INITIAL_PAID = 'changeInitialPaid'
 /**
  * [ Currency ]
  */
@@ -46,7 +51,7 @@ export {
     //DATE
     INIT_PAYMENTS_PURCHASES_DATE,
     //USER
-    INIT_PAYMENTS_PURCHASES_USER,
+    INIT_PAYMENTS_PURCHASES_USER, INIT_COMPANY_USER,
     //SUPPLIER
     INIT_PAYMENTS_PURCHASES_SUPPLIER,
     FILTER_PAYMENTS_PURCHASES_SUPPLIER,
@@ -57,6 +62,7 @@ export {
     INIT_SUPPLIER_MOVE_LINES, SELECT_SUPPLIER_MOVE_LINES, ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS,
     //JOURNAL
     INIT_PAYMENTS_PURCHASES_JOURNALS, ADD_PAYMENTS_MOVE_LINES, REMOVE_PAYMENTS_MOVE_LINES,
+    INIT_PAYMENTS_JOURNALS, SELECT_PAYMENTS_JOURNALS, CHANGE_INITIAL_PAID,
     //CURRENCIES
     INIT_PAYMENTS_PURCHASES_CURRENCIES
 }

+ 14 - 5
src/constants/mutationTypes.js

@@ -8,6 +8,9 @@ const SET_LOADING_DATE = 'setLoadingDate'
  */
 const SET_USER = 'setUser'
 const SET_LOADING_USER = 'setLoadingUser'
+/* Company */
+const SET_COMPANY_USER = 'setCompanyUser'
+const SET_CURRENCY_COMPANY = 'setCurrencyCompany'
 /**
  * [ supplier ]
  */
@@ -20,6 +23,7 @@ const SET_SUPPLIER_INVOICES = 'setSupplierInvoices'
 const SET_SELECTED_SUPPLIER_INVOICES = 'setSelectedSuppierInvoices'
 const SET_FILTER_SUPPLIER_INVOICES = 'setFilterSupplierInvoices'
 const SET_MOVE_IN_INVOICE = 'setMoveInInvoice'
+const SET_CURRENCY_INVOICE = 'setCurrencyInvoice'
 /* Move Lines */
 const SET_SUPPLIER_MOVE_LINES = 'setSupplierMoveLines'
 const SET_SELECTED_SUPPLIER_MOVE_LINES = 'setSelectedSupplierMoveLines'
@@ -36,6 +40,12 @@ const SET_JOURNALS = 'setJournals'
 const SET_LOADING_JOURNALS = 'setLoadingJournals'
 const SET_ADD_PAYMENTS_MOVE_LINES = 'setAddPaymentsMoveLines'
 const SET_REMOVE_PAYMENTS_MOVE_LINES = 'setRemovePaymentsMoveLines'
+const CALCULATE_CURRENCY_AMOUNT = 'calculateCurrencyAmount'
+const SET_PAYMENTS_JOURNALS = 'setPaymentsJournals'
+const SELECTED_PAYMENTS_JOURNALS = 'selectedPaymentsJournals'
+const CALCULATE_PAYMENTS_TOTAL = 'calculatePaymentsTotal'
+const SET_PAID_TOTAL = 'setPaidTotal'
+
 /**
  * [ Currency ]
  */
@@ -45,21 +55,20 @@ const SET_LOADING_CURRENCIES = 'setLoadingCurrencies'
 
 export {
     //DATE
-    SET_DATE,
-    SET_LOADING_DATE,
+    SET_DATE, SET_LOADING_DATE,
     //USER
-    SET_USER,
-    SET_LOADING_USER,
+    SET_USER, SET_LOADING_USER, SET_COMPANY_USER, SET_CURRENCY_COMPANY,
     //SUPPLIER
     SET_SUPPLIER, SET_LOADING_SUPPLIER, SET_FILTER_PAYMENTS_PURCHASES_SUPPLIER, SET_SELECTED_PAYMENTS_PURCHASES_SUPPLIER,
     //Invoices
-    SET_SUPPLIER_INVOICES, SET_SELECTED_SUPPLIER_INVOICES, SET_FILTER_SUPPLIER_INVOICES, SET_MOVE_IN_INVOICE,
+    SET_SUPPLIER_INVOICES, SET_SELECTED_SUPPLIER_INVOICES, SET_FILTER_SUPPLIER_INVOICES, SET_MOVE_IN_INVOICE, SET_CURRENCY_INVOICE,
     // Move lines
     SET_SUPPLIER_MOVE_LINES, SET_SELECTED_SUPPLIER_MOVE_LINES, SET_SUPPLIER_LINES_PAYMENTS,
     REMOVE_SUPPLIER_MOVE_LINES, SET_ORDER_SUPPLIER_MOVE_LINES, SET_ORDER_SUPPLIER_LINES_PAYMENTS, SET_CALCULATE_TOTAL,
     REMOVE_SUPPLIER_LINES_PAYMENTS,
     //JOURNALS
     SET_JOURNALS, SET_LOADING_JOURNALS,SET_ADD_PAYMENTS_MOVE_LINES, SET_REMOVE_PAYMENTS_MOVE_LINES,
+    SET_PAYMENTS_JOURNALS, SELECTED_PAYMENTS_JOURNALS, CALCULATE_PAYMENTS_TOTAL, CALCULATE_CURRENCY_AMOUNT, SET_PAID_TOTAL,
     //CURRENCIES
     SET_CURRENCIES, SET_LOADING_CURRENCIES
 }

+ 5 - 0
src/index.js

@@ -1,6 +1,11 @@
 import Vue from 'vue'
 import App from '@/App'
 import store from '@/store'
+import currency from '@@/filters/currency'
+import dateFormat from '@@/filters/dateFormat'
+
+Vue.filter('currency', currency)
+Vue.filter('dateFormat', dateFormat)
 
 /*config*/
 Vue.config.productionTip = false

+ 2 - 0
src/store/index.js

@@ -13,6 +13,7 @@ import actions from '@/store/actions'
  */
 import paymentsPurchasesDate from '@/store/modules/PaymentsPurchasesDate'
 import paymentsPurchasesUser from '@/store/modules/PaymentsPurchasesUser'
+import paymentsPurchasesCompany from '@/store/modules/PaymentsPurchasesCompany'
 import paymentsPurchasesSupplier from '@/store/modules/PaymentsPurchasesSupplier'
 import paymentsPurchasesJournals from '@/store/modules/PaymentsPurchasesJournals'
 import paymentsPurchasesCurrencies from '@/store/modules/PaymentsPurchasesCurrencies'
@@ -28,6 +29,7 @@ const store = new Vuex.Store({
     modules: {
         paymentsPurchasesDate,
         paymentsPurchasesUser,
+        paymentsPurchasesCompany,
         paymentsPurchasesSupplier,
         paymentsPurchasesJournals,
         paymentsPurchasesCurrencies,

+ 67 - 0
src/store/modules/PaymentsPurchasesCompany.js

@@ -0,0 +1,67 @@
+/* Actions*/
+import { INIT_COMPANY_USER } from '@/constants/actionTypes'
+/* Mutations*/
+import { SET_COMPANY_USER, SET_CURRENCY_COMPANY } from '@/constants/mutationTypes'
+
+const initialState = {
+    company: [],
+    currencyCompany: []
+}
+
+const state = {
+    company: initialState.company,
+    currencyCompany: initialState.currencyCompany
+}
+
+const getters = {
+    /**
+     * [company description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    company ( state ) {
+        return state.company
+    },
+    /**
+     * [currencyCompany description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    currencyCompany ( state ) {
+        return state.currencyCompany
+    }
+}
+
+const mutations = {
+    /**
+     * [company description]
+     * @type {[type]}
+     */
+    [SET_COMPANY_USER] ( state, payload ){
+        state.company = payload
+    },
+    /**
+     * [currencyCompany description]
+     * @type {[type]}
+     */
+    [SET_CURRENCY_COMPANY] (state, payload ) {
+        state.currencyCompany = payload
+    }
+}
+
+const actions = {
+    /**
+     * [INIT_COMPANY_USER]
+     */
+    [INIT_COMPANY_USER] ({ commit }, payload ) {
+        commit(SET_COMPANY_USER, payload.company)
+        commit(SET_CURRENCY_COMPANY, payload.currency)
+    }
+}
+
+export default {
+    state,
+    getters,
+    mutations,
+    actions
+}

+ 4 - 2
src/store/modules/PaymentsPurchasesJournals.js

@@ -1,4 +1,4 @@
-import { INIT_PAYMENTS_PURCHASES_JOURNALS } from '@/constants/actionTypes'
+import { INIT_PAYMENTS_PURCHASES_JOURNALS, INIT_PAYMENTS_JOURNALS } from '@/constants/actionTypes'
 import { SET_JOURNALS ,SET_LOADING_JOURNALS } from '@/constants/mutationTypes'
 
 const initialState = {
@@ -51,9 +51,11 @@ const mutations = {
      /**
       * [INIT_PAYMENTS_PURCHASES_JOURNALS]
       */
-     [INIT_PAYMENTS_PURCHASES_JOURNALS] ({ commit }, payload) {
+     [INIT_PAYMENTS_PURCHASES_JOURNALS] ({ commit, dispatch }, payload) {
          commit(SET_JOURNALS, payload)
          commit(SET_LOADING_JOURNALS, payload)
+
+         dispatch(INIT_PAYMENTS_JOURNALS, payload)
      }
  }
 

+ 4 - 2
src/store/modules/PaymentsPurchasesUser.js

@@ -1,4 +1,4 @@
-import { INIT_PAYMENTS_PURCHASES_USER } from '@/constants/actionTypes'
+import { INIT_PAYMENTS_PURCHASES_USER, INIT_COMPANY_USER } from '@/constants/actionTypes'
 import { SET_USER, SET_LOADING_USER } from '@/constants/mutationTypes'
 
 const initialState = {
@@ -48,9 +48,11 @@ const mutations = {
 }
 
 const actions = {
-    [INIT_PAYMENTS_PURCHASES_USER] ({ commit }, payload) {
+    [INIT_PAYMENTS_PURCHASES_USER] ({ commit, dispatch }, payload) {
         commit(SET_USER, payload)
         commit(SET_LOADING_USER, payload)
+
+        dispatch(INIT_COMPANY_USER, payload)
     }
 }
 

+ 20 - 4
src/store/modules/SupplierInvoices.js

@@ -11,18 +11,21 @@ import {
     SET_SUPPLIER_INVOICES,
     SET_SELECTED_SUPPLIER_INVOICES,
     SET_FILTER_SUPPLIER_INVOICES,
-    SET_MOVE_IN_INVOICE
+    SET_MOVE_IN_INVOICE,
+    SET_CURRENCY_INVOICE
 } from '@/constants/mutationTypes'
 
 const initialState = {
     supplierInvoices: [],
     filterInvoices: [],
-    selectedInvoices: null
+    selectedInvoices: null,
+    currencyInvoice :[]
 }
 const state = {
     supplierInvoices: initialState.supplierInvoices,
     filterInvoices: initialState.filterInvoices,
-    selectedInvoices: initialState.selectedInvoices
+    selectedInvoices: initialState.selectedInvoices,
+    currencyInvoice: initialState.currencyInvoice
 }
 const getters = {
     /**
@@ -48,8 +51,17 @@ const getters = {
      */
     selectedInvoices ( state ) {
         return state.selectedInvoices
+    },
+    /**
+     * [currencyInvoice description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    currencyInvoice ( state ) {
+        return state.currencyInvoice
     }
 }
+
 const mutations = {
     /**
      * [Invoices description]
@@ -88,6 +100,9 @@ const mutations = {
             if (movesFound) return
             state.selectedInvoices.moveLines = [payload.moveLines, ...state.selectedInvoices.moveLines]
         }
+    },
+    [SET_CURRENCY_INVOICE] ( state, payload) {
+        state.currencyInvoice = payload
     }
 }
 const actions = {
@@ -108,7 +123,8 @@ const actions = {
      */
     [SELECT_SUPPLIER_INVOICES] ({commit, dispatch}, payload) {
         commit(SET_SELECTED_SUPPLIER_INVOICES, payload)
-
+        commit(SET_CURRENCY_INVOICE, payload.currencyInvoice)
+        
         dispatch(INIT_SUPPLIER_MOVE_LINES, payload.moveLines)
     },
     /**

+ 12 - 2
src/store/modules/SupplierMoveLines.js

@@ -3,7 +3,9 @@ import {
     INIT_SUPPLIER_MOVE_LINES,
     SELECT_SUPPLIER_MOVE_LINES,
     ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS,
-    ADD_MOVE_IN_INVOICE
+    ADD_MOVE_IN_INVOICE,
+    ADD_PAYMENTS_MOVE_LINES,
+    REMOVE_PAYMENTS_MOVE_LINES
 } from '@/constants/actionTypes'
 /* Mutations */
 import {
@@ -142,6 +144,7 @@ const mutations = {
         })
     }
 }
+
 const actions = {
     /**
      * [INIT_SUPPLIER_MOVE_LINES]
@@ -153,7 +156,7 @@ const actions = {
     /**
      *  [SELECT_SUPPLIER_MOVE_LINES]
      */
-    [SELECT_SUPPLIER_MOVE_LINES] ({ commit }, payload) {
+    [SELECT_SUPPLIER_MOVE_LINES] ({ commit, dispatch }, payload) {
         // payments
         commit(SET_SUPPLIER_LINES_PAYMENTS, payload)
         commit(SET_ORDER_SUPPLIER_LINES_PAYMENTS)
@@ -162,6 +165,8 @@ const actions = {
         commit(REMOVE_SUPPLIER_MOVE_LINES, payload)
         // Total
         commit(SET_CALCULATE_TOTAL)
+
+        dispatch(ADD_PAYMENTS_MOVE_LINES, payload)
     },
     /**
      * [mode description]
@@ -177,6 +182,11 @@ const actions = {
             moveLines: payload
         })
 
+        dispatch(REMOVE_PAYMENTS_MOVE_LINES, {
+            mode: 'partial',
+            moveLines: payload
+        })
+
         commit(SET_ORDER_SUPPLIER_MOVE_LINES)
     }
 }

+ 170 - 9
src/store/modules/supplierPayments.js

@@ -1,24 +1,58 @@
 /* Actions */
 import {
+    INIT_PAYMENTS_JOURNALS,
+    SELECT_PAYMENTS_JOURNALS,
     ADD_PAYMENTS_MOVE_LINES,
-    REMOVE_PAYMENTS_MOVE_LINES
+    REMOVE_PAYMENTS_MOVE_LINES,
+    CHANGE_INITIAL_PAID
 } from '@/constants/actionTypes'
 /* Mutations */
 import {
+    SET_PAYMENTS_JOURNALS,
+    SELECTED_PAYMENTS_JOURNALS,
+    CALCULATE_PAYMENTS_TOTAL,
+    CALCULATE_CURRENCY_AMOUNT,
     SET_ADD_PAYMENTS_MOVE_LINES,
-    SET_REMOVE_PAYMENTS_MOVE_LINES
+    SET_REMOVE_PAYMENTS_MOVE_LINES,
+    SET_PAID_TOTAL
 } from '@/constants/mutationTypes'
 
 const initialState = {
+    paymentsJournals: [],
+    paymentsSelectedJournal: null,
     paymentsMoveLines: [],
-    paymentsTotal: 0
+    paymentsCurrencyAmount: [],
+    paymentsTotal: 0,
+    paidTotal: 0,
+    paymentsReturned: 0
 }
 const state = {
+    paymentsJournals: initialState.paymentsJournals,
+    paymentsSelectedJournal: initialState.paymentsSelectedJournal,
     paymentsMoveLines: initialState.paymentsMoveLines,
-    paymentsTotal: initialState.paymentsTotal
+    paymentsCurrencyAmount : initialState.paymentsCurrencyAmount,
+    paymentsTotal: initialState.paymentsTotal,
+    paidTotal: initialState.paidTotal,
+    paymentsReturned: initialState.paymentsReturned
 }
 
 const getters = {
+    /**
+     * [paymentsJournals description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    paymentsJournals ( state ) {
+            return state.paymentsJournals
+    },
+    /**
+     * [paymentsSelectedJournal description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    paymentsSelectedJournal ( state ) {
+        return state.paymentsSelectedJournal
+    },
     /**
      * [paymentsMoveLines description]
      * @param  {[type]} state [description]
@@ -27,6 +61,14 @@ const getters = {
     paymentsMoveLines ( state ) {
         return state.paymentsMoveLines
     },
+    /**
+     * [paymentsCurrencyAmount description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    paymentsCurrencyAmount ( state ) {
+        return state.paymentsCurrencyAmount
+    },
     /**
      * [paymentsTotal description]
      * @param  {[type]} state [description]
@@ -34,10 +76,35 @@ const getters = {
      */
     paymentsTotal ( state ) {
         return state.paymentsTotal
+    },
+    /**
+     * [paymentsReturned description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    paymentsReturned ( state ) {
+        return state.paymentsReturned
+    },
+    paidTotal ( state ) {
+        return state.paidTotal
     }
 }
 
 const mutations = {
+    /**
+     * [paymentsJournals description]
+     * @type {[type]}
+     */
+    [SET_PAYMENTS_JOURNALS] ( state, payload ){
+        state.paymentsJournals = payload
+    },
+    /**
+     * [paymentsSelectedJournal description]
+     * @type {[type]}
+     */
+    [SELECTED_PAYMENTS_JOURNALS] ( state, payload ) {
+        state.paymentsSelectedJournal =  payload
+    },
     /**
      * [paymentsMoveLines description]
      * @type {Array}
@@ -50,23 +117,117 @@ const mutations = {
      * @type {Object}
      */
     [SET_REMOVE_PAYMENTS_MOVE_LINES] (state, payload) {
-        console.log('Opa ainda nao ');
-    }
+        if (payload.mode === 'full') {
+            payload.moveLines.forEach(moves => {
+                // Remove Payments
+                let movesPaymentsIndex = state.paymentsMoveLines.findIndex(item => item.id === moves.id)
+                state.paymentsMoveLines.splice(movesPaymentsIndex)
+            })
+        } else {
+            // Remove Payments
+            let movesPaymentsIndex = state.paymentsMoveLines.findIndex(item => item.id === payload.moveLines.id)
+            state.paymentsMoveLines.splice(movesPaymentsIndex, 1)
+        }
+    },
+    /**
+     * [actions description]
+     * @type {Object}
+     */
+    [CALCULATE_CURRENCY_AMOUNT] ( state, payload ) {
+        let currency = payload.currency
+        let paymentsMoveLines = payload.paymentsMoveLines
+        let paymentsCurrencyAmount = []
+
+        currency.forEach(item => {
+            let amount = 0
+            paymentsMoveLines.forEach( currency => {
+                let currencyMoveLine = currency.currencyAmount.find(move => move.id === item.id)
+                amount = amount + currencyMoveLine.amountCurencyResidual
+            })
+            paymentsCurrencyAmount.push({
+                id: item.id,
+                symbolCurrency: item.symbol,
+                amount: amount,
+                symbol: ' ',
+                position: 'before',
+                thousandsSeparator: item.thousandsSeparator,
+                decimalSeparator: item.decimalSeparator,
+                decimalPlaces: item.decimalPlaces,
+                rateSilent: item.rateSilent
+            })
+        })
+        state.paymentsCurrencyAmount = paymentsCurrencyAmount
+    },
+    /**
+     * [actions description]
+     * @type {Object}
+     */
+    [CALCULATE_PAYMENTS_TOTAL] ( state, payload){
+        let currencyJournal = payload.paymentsCurrencyAmount.find(item => item.id ===payload.currency.id)
+        let total = currencyJournal.amount
+        if (!currencyJournal)
+            total = 0
+        state.paymentsTotal = total
+    },
+    /**
+     * [paidTotal description]
+     * @type {[type]}
+     */
+    [SET_PAID_TOTAL] (state, payload) {
+        state.paidTotal = payload
+    },
 }
 
 const actions = {
+    /**
+     * [INIT_PAYMENTS_JOURNALS]
+     */
+    [INIT_PAYMENTS_JOURNALS] ({ commit }, payload ) {
+        commit(SET_PAYMENTS_JOURNALS, payload)
+    },
+    /**
+     * [SELECT_PAYMENTS_JOURNALS]
+     */
+    [SELECT_PAYMENTS_JOURNALS] ({ commit, getters }, payload ) {
+        commit(SELECTED_PAYMENTS_JOURNALS, payload)
+
+        let currency = []
+        if (payload.currency.id){
+            currency = payload.currency
+        } else {
+            currency = getters.currencyCompany
+        }
+        commit(CALCULATE_PAYMENTS_TOTAL, {
+            paymentsCurrencyAmount: getters.paymentsCurrencyAmount,
+            currency: currency
+        } )
+    },
     /**
      * [ADD_PAYMENTS_MOVE_LINES]
      */
-    [ADD_PAYMENTS_MOVE_LINES] ({ commit}, payload ) {
+    [ADD_PAYMENTS_MOVE_LINES] ({ commit, getters }, payload ) {
         commit(SET_ADD_PAYMENTS_MOVE_LINES, payload)
+        commit(CALCULATE_CURRENCY_AMOUNT, {
+            paymentsMoveLines: getters.paymentsMoveLines,
+            currency: getters.currency
+        })
     },
     /**
      * [REMOVE_PAYMENTS_MOVE_LINES]
      */
-    [REMOVE_PAYMENTS_MOVE_LINES] ({ commit }, payload ) {
+    [REMOVE_PAYMENTS_MOVE_LINES] ({ commit, getters }, payload ) {
         commit(SET_REMOVE_PAYMENTS_MOVE_LINES, payload)
-    }
+        commit(CALCULATE_CURRENCY_AMOUNT, {
+            paymentsMoveLines: getters.paymentsMoveLines,
+            currency: getters.currency
+        })
+    },
+    /**
+     * 
+     */
+    [CHANGE_INITIAL_PAID] ({ commit },payload) {
+        commit(SET_PAID_TOTAL, payload)
+    },
 }
 
 export default {