Sfoglia il codice sorgente

[ADD] Seleccion de Cuotas

adrielso 7 anni fa
parent
commit
28c6a4e372

+ 1 - 0
controllers/main.py

@@ -82,6 +82,7 @@ class PaymentsSales(http.Controller):
                 },
                 'moveLines' :[{
                     'id': line.id,
+                    'invoiceNumber': invoice.number,
                     'amountResidual': line.amount_residual,
                     'credit': line.credit,
                     'debit': line.debit,

+ 5 - 2
src/App.vue

@@ -1,5 +1,6 @@
 <template lang="pug">
     .payments-purchase
+        //- form-wizard(title="" subtitle="" finishButtonText="Finalizar" color="#7c7bad" backButtonText="Volver" :hideButtons='processingPayments' nextButtonText="Continuar" transition="fade" @on-complete="paymentProcess()" ref='wizard' @on-change="(prev, next) => removeMovePaymentsAll(prev > next && next < 2)")
         form-wizard(title="" subtitle="" finishButtonText="Finalizar" color="#7c7bad" backButtonText="Volver" nextButtonText="Continuar" transition="fade" ref='wizard')
             tab-content(title="Quien es el proveedor ?")
                 supplier
@@ -8,6 +9,7 @@
             tab-content(title="Que cuota es ?")
                 moves-lines
             tab-content(title="Como vas a pagar ?")
+                payments
 </template>
 
 <script>
@@ -19,6 +21,7 @@
     import Supplier from '@@/steps/Supplier'
     import Invoices from '@@/steps/Invoices'
     import MovesLines from '@@/steps/MovesLines'
+    import Payments from '@@/steps/payments'
 
     export default {
         components: {
@@ -26,12 +29,12 @@
             FormWizard,
             Supplier,
             Invoices,
-            MovesLines
+            MovesLines,
+            Payments
         },
         methods: mapActions([
             INIT_PAYMENTS_PURCHASES
         ]),
-
         mounted() {
             this.initPaymentsPurchases()
         }

+ 205 - 0
src/components/payments/VoucherTicket.vue

@@ -0,0 +1,205 @@
+<template lang="pug">
+    .voucher-ticket
+        .voucher-ticket-wrapper
+            form.voucher-ticket-from
+                .voucher-ticket-from-separator
+                    h3 Detalles de pagos
+                    hr
+                .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-right {{ line.amountResidualCurrency | currency(...invoice.currency) }}
+                .voucher-ticket-from-item-total
+                    label.voucher-ticket-from-label-total Total
+                    .ticket-currency-total-wrapper
+                        .ticket-currency-total-item(v-for="item in currencyAmount")
+                            h3.currency-total-symbol {{ item.symbolCurrency }}
+                            input.currency-total-amount(readonly :value='item.amount | currency( ...item)')
+</template>
+
+<script>
+    export default {
+        props: {
+            customer: {
+                type: String,
+                default: ''
+            },
+            invoice: {
+                type: String,
+                default: ''
+            },
+            currencyAmount :{
+                type: Array,
+                default: [],
+            },
+            items: {
+                type: [],
+                default: []
+            },
+        }
+    }
+</script>
+
+<style lang="sass">
+    @import '../../assets/variables'
+    .voucher-ticket
+        width: 500px
+        height: 100%
+        font-size: 8pt
+        display: flex
+        .voucher-ticket-wrapper
+            width: 100%
+            height: 460px
+            margin: 10px
+            border: 1px solid #d3d3d3
+            // background: $app-light-color
+            display: inline-block
+            .voucher-ticket-from
+                width: 100%
+                height: 100%
+                .voucher-ticket-from-separator
+                    h3
+                        color: #9e9e9e
+                        font-size: 16pt
+                        margin-left: 10px
+                        margin-right: 10px
+                        margin-top: 10px
+                        margin-bottom: 5px
+                        text-align: center
+                    hr
+                        margin-top: 3px
+                        margin-left: 10px
+                        margin-right: 10px
+                .voucher-ticket-from-item
+                    width: 100%
+                    height: 35px
+                    margin-bottom: 5px
+                    .voucher-ticket-from-label
+                        width: 150px
+                        height: 35px
+                        font:
+                            size: 10pt
+                            weight: bold
+                        padding-left: 10px
+                    .voucher-ticket-from-input
+                        width: calc(100% - 160px)
+                        height: 25px
+                        font:
+                            size: 10pt
+                            weight: bold
+                        border-left: 0px
+                        border-top: 0px
+                        border-right: 0px
+                        border-bottom: 1px solid #dedede
+                .voucher-ticket-from-grid-header
+                    width: calc(100% - 20px)
+                    height: 30px
+                    margin: 0px 10px
+                    border: 1px solid #d3d3d3
+                    background: #f5f5f5
+                    .voucher-ticket-from-grid-header-left, .voucher-ticket-from-grid-header-right
+                        width: calc(50% - 10px)
+                        height: 30px
+                        font:
+                            size: 10pt
+                        padding-left: 10px
+                        margin-top: 5px
+                    .voucher-ticket-from-grid-header-left
+                        margin-left: 5px
+                        text-align: left
+                    .voucher-ticket-from-grid-header-right
+                        margin-right: 5px
+                        text-align: center
+                .voucher-ticket-from-grid
+                    width: calc(100% - 20px)
+                    height: 160px
+                    overflow-y: auto
+                    margin: 0px 10px
+                    border: 1px solid #d3d3d3
+                    .voucher-ticket-from-grid-item
+                        width: calc(100% - 10px )
+                        height: 30px
+                        padding-top: 1px
+                        border-bottom: 1px solid #dedede
+                        margin-left: 5px
+                        margin-right: 5px
+                        .voucher-ticket-from-grid-item-left, .voucher-ticket-from-grid-item-right
+                            width: calc(50% - 10px)
+                            height: 30px
+                            font:
+                                size: 10pt
+                            padding-left: 10px
+                            margin-top: 5px
+                        .voucher-ticket-from-grid-item-left
+                            text-align: left
+                        .voucher-ticket-from-grid-item-right
+                            text-align: right
+                            padding-right: 15px
+                .voucher-ticket-from-item-total
+                    width: 100%
+                    height: 25px
+                    .voucher-ticket-from-label-total
+                        width: 40%
+                        height: 25px
+                        margin-top: 10px
+                        font:
+                            size: 15pt
+                            weight: bold
+                        text-align: right
+                        padding-right: 15px
+                        float: left
+                    .ticket-currency-total-wrapper
+                        width: 50%
+                        height: 115px
+                        float: right
+                        margin: 5px 10px 10px 10px
+                        overflow-y: auto
+                        border-left: 1px solid #d3d3d3
+                        .ticket-currency-total-item
+                            width: 100%
+                            height: 25px
+                            margin-top: 2px
+                            .currency-total-symbol
+                                width: 30px
+                                height: 100%
+                                font-size: 15pt
+                                text-align: center
+                                float: left
+                                margin: 0px
+                                padding-left: 5px
+                                padding-right: 5px
+                            .currency-total-amount
+                                width: calc(100% - 35px)
+                                height: 100%
+                                float: right
+                                font-size: 15pt
+                                text-align: right
+                                margin-right: 5px
+                                padding-right: 10px
+                                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>

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

@@ -2,14 +2,14 @@
     .payments-purchase-step
         .move-step
             grid-moves(:items="supplierMoveLines" @onSelect="selectSuppierMoveLines")
-            grid-payments(:items='supplierLinesPayments' :total="supplierPaymentsTotal" )
+            grid-payments(:items='supplierLinesPayments' :total="supplierPaymentsTotal" @onDeleteIntem="actionRemoveSupplierLinesPayments")
             //- select-moves(:items='movesPayments' :total="movesPaymentsTotal" @onDeleteIntem='removeMovePayments' :currency='currencyInvoice')
 </template>
 
 <script>
 
     import { mapActions, mapGetters } from 'vuex'
-    import { SELECT_SUPPLIER_MOVE_LINES } from '@/constants/actionTypes'
+    import { SELECT_SUPPLIER_MOVE_LINES, ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS } from '@/constants/actionTypes'
 
     import GridMoves from '@@/fromsMoveLine/GridMoves'
     import GridPayments from '@@/fromsMoveLine/GridMovesPayments'
@@ -25,7 +25,8 @@
             'supplierPaymentsTotal'
         ]),
         methods: mapActions([
-            SELECT_SUPPLIER_MOVE_LINES
+            SELECT_SUPPLIER_MOVE_LINES,
+            ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS
         ])
     }
 </script>

+ 100 - 0
src/components/steps/payments.vue

@@ -0,0 +1,100 @@
+<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)')
+</template>
+
+<script>
+    import { mapGetters, mapActions }from 'vuex'
+    import  VoucherTicket from '@@/payments/VoucherTicket'
+    export default {
+        components: {
+            VoucherTicket
+        },
+        computed: mapGetters([
+            'supplierLinesPayments',
+            'selectedSupplier',
+            'selectedInvoices'
+        ])
+    }
+</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%
+                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 - 3
src/constants/actionTypes.js

@@ -22,13 +22,17 @@ const FILTER_PAYMENTS_PURCHASES_SUPPLIER = 'filterPaymentsPurchasesSupplier'
 const INIT_SUPPLIER_INVOICES = 'initSupplierInvoices'
 const FILTER_SUPPLIER_INVOICES = 'filterSupplierInvoices'
 const SELECT_SUPPLIER_INVOICES = 'selectSupplierInvoices'
+const ADD_MOVE_IN_INVOICE = 'addMoveInInvoice'
 /* Move Lines*/
 const INIT_SUPPLIER_MOVE_LINES = 'initSupplierMoveLines'
 const SELECT_SUPPLIER_MOVE_LINES = 'selectSuppierMoveLines'
+const ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS = 'actionRemoveSupplierLinesPayments'
 /**
  * [ Journal]
  */
 const INIT_PAYMENTS_PURCHASES_JOURNALS = 'initPaymentsPurchasesJournals'
+const ADD_PAYMENTS_MOVE_LINES = 'addPaymentsMoveLines'
+const REMOVE_PAYMENTS_MOVE_LINES = 'removePaymentsMovelines'
 /**
  * [ Currency ]
  */
@@ -48,11 +52,11 @@ export {
     FILTER_PAYMENTS_PURCHASES_SUPPLIER,
     SELECT_PAYMENTS_PURCHASES_SUPPLIER,
     //Invoices
-    INIT_SUPPLIER_INVOICES, FILTER_SUPPLIER_INVOICES, SELECT_SUPPLIER_INVOICES,
+    INIT_SUPPLIER_INVOICES, FILTER_SUPPLIER_INVOICES, SELECT_SUPPLIER_INVOICES, ADD_MOVE_IN_INVOICE,
     // Move Lines
-    INIT_SUPPLIER_MOVE_LINES, SELECT_SUPPLIER_MOVE_LINES,
+    INIT_SUPPLIER_MOVE_LINES, SELECT_SUPPLIER_MOVE_LINES, ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS,
     //JOURNAL
-    INIT_PAYMENTS_PURCHASES_JOURNALS,
+    INIT_PAYMENTS_PURCHASES_JOURNALS, ADD_PAYMENTS_MOVE_LINES, REMOVE_PAYMENTS_MOVE_LINES,
     //CURRENCIES
     INIT_PAYMENTS_PURCHASES_CURRENCIES
 }

+ 12 - 2
src/constants/mutationTypes.js

@@ -19,15 +19,23 @@ const SET_FILTER_PAYMENTS_PURCHASES_SUPPLIER = 'setFilterPaymentsPurchasesSuppli
 const SET_SUPPLIER_INVOICES = 'setSupplierInvoices'
 const SET_SELECTED_SUPPLIER_INVOICES = 'setSelectedSuppierInvoices'
 const SET_FILTER_SUPPLIER_INVOICES = 'setFilterSupplierInvoices'
+const SET_MOVE_IN_INVOICE = 'setMoveInInvoice'
 /* Move Lines */
 const SET_SUPPLIER_MOVE_LINES = 'setSupplierMoveLines'
 const SET_SELECTED_SUPPLIER_MOVE_LINES = 'setSelectedSupplierMoveLines'
 const SET_SUPPLIER_LINES_PAYMENTS = 'setSupplierLinesPayments'
+const REMOVE_SUPPLIER_MOVE_LINES = 'removeSupplierMoveLines'
+const SET_ORDER_SUPPLIER_MOVE_LINES = 'setOrderSupplierMoveLines'
+const SET_ORDER_SUPPLIER_LINES_PAYMENTS = 'setOrderSupplierLinesPayments'
+const SET_CALCULATE_TOTAL = 'setCalculateTotal'
+const REMOVE_SUPPLIER_LINES_PAYMENTS = 'removeSupplierLinesPayments'
 /**
  * [ Journal]
  */
 const SET_JOURNALS = 'setJournals'
 const SET_LOADING_JOURNALS = 'setLoadingJournals'
+const SET_ADD_PAYMENTS_MOVE_LINES = 'setAddPaymentsMoveLines'
+const SET_REMOVE_PAYMENTS_MOVE_LINES = 'setRemovePaymentsMoveLines'
 /**
  * [ Currency ]
  */
@@ -45,11 +53,13 @@ export {
     //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_SUPPLIER_INVOICES, SET_SELECTED_SUPPLIER_INVOICES, SET_FILTER_SUPPLIER_INVOICES, SET_MOVE_IN_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_JOURNALS, SET_LOADING_JOURNALS,SET_ADD_PAYMENTS_MOVE_LINES, SET_REMOVE_PAYMENTS_MOVE_LINES,
     //CURRENCIES
     SET_CURRENCIES, SET_LOADING_CURRENCIES
 }

+ 3 - 1
src/store/index.js

@@ -18,6 +18,7 @@ import paymentsPurchasesJournals from '@/store/modules/PaymentsPurchasesJournals
 import paymentsPurchasesCurrencies from '@/store/modules/PaymentsPurchasesCurrencies'
 import supplierInvoices from '@/store/modules/SupplierInvoices'
 import SupplierMoveLines from '@/store/modules/SupplierMoveLines'
+import supplierPayments from '@/store/modules/supplierPayments'
 
 
 Vue.use(Vuex)
@@ -31,7 +32,8 @@ const store = new Vuex.Store({
         paymentsPurchasesJournals,
         paymentsPurchasesCurrencies,
         supplierInvoices,
-        SupplierMoveLines
+        SupplierMoveLines,
+        supplierPayments
     }
 })
 

+ 26 - 1
src/store/modules/SupplierInvoices.js

@@ -3,13 +3,15 @@ import {
     INIT_SUPPLIER_INVOICES,
     FILTER_SUPPLIER_INVOICES,
     SELECT_SUPPLIER_INVOICES,
-    INIT_SUPPLIER_MOVE_LINES
+    INIT_SUPPLIER_MOVE_LINES,
+    ADD_MOVE_IN_INVOICE
 } from '@/constants/actionTypes'
 /* Mutations */
 import {
     SET_SUPPLIER_INVOICES,
     SET_SELECTED_SUPPLIER_INVOICES,
     SET_FILTER_SUPPLIER_INVOICES,
+    SET_MOVE_IN_INVOICE
 } from '@/constants/mutationTypes'
 
 const initialState = {
@@ -69,6 +71,23 @@ const mutations = {
      */
     [SET_FILTER_SUPPLIER_INVOICES] ( state, payload ) {
         state.filterInvoices = payload
+    },
+    /**
+     * [mode description]
+     * @type {[type]}
+     */
+    [SET_MOVE_IN_INVOICE] (state, payload) {
+        if (payload.mode === 'full') {
+            payload.moveLines.forEach(moves => {
+                let movesFound = state.selectedInvoices.moveLines.find(item => item.id === moves.id)
+                if (movesFound) return
+                state.selectedInvoices.moveLines = [moves, ...state.selectedInvoices.moveLines]
+            })
+        } else {
+            let movesFound = state.selectedInvoices.moveLines.find(item => item.id === payload.moveLines.id)
+            if (movesFound) return
+            state.selectedInvoices.moveLines = [payload.moveLines, ...state.selectedInvoices.moveLines]
+        }
     }
 }
 const actions = {
@@ -91,6 +110,12 @@ const actions = {
         commit(SET_SELECTED_SUPPLIER_INVOICES, payload)
 
         dispatch(INIT_SUPPLIER_MOVE_LINES, payload.moveLines)
+    },
+    /**
+     * [ADD_MOVE_IN_INVOICE]
+     */
+    [ADD_MOVE_IN_INVOICE] ({ commit },payload ) {
+        commit(SET_MOVE_IN_INVOICE, payload)
     }
 }
 

+ 97 - 4
src/store/modules/SupplierMoveLines.js

@@ -1,13 +1,20 @@
 /* Actions */
 import {
     INIT_SUPPLIER_MOVE_LINES,
-    SELECT_SUPPLIER_MOVE_LINES
+    SELECT_SUPPLIER_MOVE_LINES,
+    ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS,
+    ADD_MOVE_IN_INVOICE
 } from '@/constants/actionTypes'
 /* Mutations */
 import {
     SET_SUPPLIER_MOVE_LINES,
     SET_SELECTED_SUPPLIER_MOVE_LINES,
-    SET_SUPPLIER_LINES_PAYMENTS
+    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
 } from '@/constants/mutationTypes'
 
 const intialState = {
@@ -69,8 +76,71 @@ const mutations = {
 
     [SET_SUPPLIER_LINES_PAYMENTS] (state, payload) {
         state.supplierLinesPayments = [payload, ...state.supplierLinesPayments]
-    }
+    },
+    /**
+     * [amountTot description]
+     * @type {[type]}
+     */
+    [REMOVE_SUPPLIER_MOVE_LINES] ( state, payload ) {
+        let moveFoundIndex = state.supplierMoveLines.findIndex(item => item.id === payload.id)
+        state.supplierMoveLines.splice(moveFoundIndex, 1)
+    },
+    /**
+     * [mode description]
+     * @type {[type]}
+     */
+    [REMOVE_SUPPLIER_LINES_PAYMENTS] (state, payload ) {
+        if (payload.mode === 'full') {
+            payload.moveLines.forEach(moves => {
+                //ADD supplierMoveLines
+                let movesFound = state.supplierMoveLines.find(item => item.id === moves.id)
+                if (movesFound) return
+                state.supplierMoveLines = [move, ...state.supplierMoveLines]
+                // Remove Payments
+                let movesPaymentsIndex = state.supplierLinesPayments.findIndex(item => item.id === moves.id)
+                state.supplierLinesPayments.splice(movesPaymentsIndex)
+            })
+        } else {
+            //ADD supplierMoveLines
+            let movesFound = state.supplierMoveLines.find(item => item.id === payload.moveLines.id)
+            if (movesFound) return
+            state.supplierMoveLines = [payload.moveLines, ...state.supplierMoveLines]
+            // Remove Payments
+            let movesPaymentsIndex = state.supplierLinesPayments.findIndex(item => item.id === payload.moveLines.id)
+            state.supplierLinesPayments.splice(movesPaymentsIndex, 1)
+        }
+    },
+    /**
+     * [amountTot description]
+     * @type {[type]}
+     */
+    [SET_CALCULATE_TOTAL] ( state ) {
+        let amountTot = 0
+        if (state.supplierLinesPayments.length > 0)
+            state.supplierLinesPayments.forEach( item => {
+                amountTot = amountTot + item.amountResidualCurrency
+            })
 
+        state.supplierPaymentsTotal =  amountTot
+    },
+    /**
+     * [supplierMoveLines description]
+     * @type {[type]}
+     */
+    [SET_ORDER_SUPPLIER_MOVE_LINES] ( state ) {
+        state.supplierMoveLines =  state.supplierMoveLines.sort((a, b) => {
+            return a.dateMaturity > b.dateMaturity
+        })
+    },
+    /**
+     * [supplierLinesPayments description]
+     * @type {[type]}
+     */
+    [SET_ORDER_SUPPLIER_LINES_PAYMENTS]( state ) {
+        state.supplierLinesPayments =  state.supplierLinesPayments.sort((a, b) => {
+            return a.dateMaturity > b.dateMaturity
+        })
+    }
 }
 const actions = {
     /**
@@ -78,13 +148,36 @@ const actions = {
      */
     [INIT_SUPPLIER_MOVE_LINES] ({ commit }, payload) {
         commit(SET_SUPPLIER_MOVE_LINES, payload)
+        commit(SET_ORDER_SUPPLIER_MOVE_LINES)
     },
     /**
      *  [SELECT_SUPPLIER_MOVE_LINES]
      */
     [SELECT_SUPPLIER_MOVE_LINES] ({ commit }, payload) {
-        commit(SET_SELECTED_SUPPLIER_MOVE_LINES, payload)
+        // payments
         commit(SET_SUPPLIER_LINES_PAYMENTS, payload)
+        commit(SET_ORDER_SUPPLIER_LINES_PAYMENTS)
+        // Move  Lines
+        commit(SET_SELECTED_SUPPLIER_MOVE_LINES, payload)
+        commit(REMOVE_SUPPLIER_MOVE_LINES, payload)
+        // Total
+        commit(SET_CALCULATE_TOTAL)
+    },
+    /**
+     * [mode description]
+     * @type {String}
+     */
+    [ACTION_REMOVE_SUPPLIER_LINES_PAYMENTS] ( {commit, dispatch}, payload ) {
+        dispatch(ADD_MOVE_IN_INVOICE, {
+            mode: 'partial',
+            moveLines: payload
+        })
+        commit(REMOVE_SUPPLIER_LINES_PAYMENTS, {
+            mode: 'partial',
+            moveLines: payload
+        })
+
+        commit(SET_ORDER_SUPPLIER_MOVE_LINES)
     }
 }
 

+ 77 - 0
src/store/modules/supplierPayments.js

@@ -0,0 +1,77 @@
+/* Actions */
+import {
+    ADD_PAYMENTS_MOVE_LINES,
+    REMOVE_PAYMENTS_MOVE_LINES
+} from '@/constants/actionTypes'
+/* Mutations */
+import {
+    SET_ADD_PAYMENTS_MOVE_LINES,
+    SET_REMOVE_PAYMENTS_MOVE_LINES
+} from '@/constants/mutationTypes'
+
+const initialState = {
+    paymentsMoveLines: [],
+    paymentsTotal: 0
+}
+const state = {
+    paymentsMoveLines: initialState.paymentsMoveLines,
+    paymentsTotal: initialState.paymentsTotal
+}
+
+const getters = {
+    /**
+     * [paymentsMoveLines description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    paymentsMoveLines ( state ) {
+        return state.paymentsMoveLines
+    },
+    /**
+     * [paymentsTotal description]
+     * @param  {[type]} state [description]
+     * @return {[type]}       [description]
+     */
+    paymentsTotal ( state ) {
+        return state.paymentsTotal
+    }
+}
+
+const mutations = {
+    /**
+     * [paymentsMoveLines description]
+     * @type {Array}
+     */
+    [SET_ADD_PAYMENTS_MOVE_LINES] (state, payload) {
+        state.paymentsMoveLines = [payload, ...state.paymentsMoveLines]
+    },
+    /**
+     * [actions description]
+     * @type {Object}
+     */
+    [SET_REMOVE_PAYMENTS_MOVE_LINES] (state, payload) {
+        console.log('Opa ainda nao ');
+    }
+}
+
+const actions = {
+    /**
+     * [ADD_PAYMENTS_MOVE_LINES]
+     */
+    [ADD_PAYMENTS_MOVE_LINES] ({ commit}, payload ) {
+        commit(SET_ADD_PAYMENTS_MOVE_LINES, payload)
+    },
+    /**
+     * [REMOVE_PAYMENTS_MOVE_LINES]
+     */
+    [REMOVE_PAYMENTS_MOVE_LINES] ({ commit }, payload ) {
+        commit(SET_REMOVE_PAYMENTS_MOVE_LINES, payload)
+    }
+}
+
+export default {
+    state,
+    getters,
+    mutations,
+    actions
+}