Ver código fonte

[ADD] first payment date computation

robert 5 anos atrás
pai
commit
5ce2f3b3d2

+ 23 - 0
src/components/steps/Payment.vue

@@ -64,6 +64,17 @@
                     @onClickOption='changePaymentMethod'
                     @onChangeValue='changeAmountReceived($event)'
                 )
+            .form-item(v-show="paymentType === 'credit' && settings.changeDate && (paymentLines && paymentLines.length > 1)")
+                label.form-label Primer pago
+                date-picker.form-input(
+                    v-model='firstPayment'
+                    input-class='form-input'
+                    lang='es'
+                    format='DD/MM/YYYY'
+                    :clearable='false'
+                    :editable='false'
+                    :not-before='firstPayment'
+                )
             //- input para el vuelto del pago en caso de pago en efectivo
             div(v-show="paymentType === 'cash'")
                 hr
@@ -101,11 +112,13 @@
 
 <script>
     import { mapGetters, mapActions } from 'vuex'
+    import DatePicker from 'vue2-datepicker'
     import { Ticket, SwitchButtonInput, InputDropdown } from '../common'
     import BankPaymentModal from '../modals/BankPaymentModal'
 
     export default {
         components: {
+            DatePicker,
             Ticket,
             SwitchButtonInput,
             InputDropdown,
@@ -132,6 +145,14 @@
                     this.selectCustomerPricelist(value)
                 }
             },
+            firstPayment: {
+                get() {
+                    return this.firstPaymentDate
+                },
+                set(value) {
+                    this.changeFirstPaymentDate(value)
+                }
+            },
             ...mapGetters([
                 'companyName',
                 'amountToPay',
@@ -139,6 +160,7 @@
                 'initialPayment',
                 'amountResidual',
                 'paymentLines',
+                'firstPaymentDate',
                 'cartItems',
                 'paymentType',
                 'paymentTerm',
@@ -207,6 +229,7 @@
                 'changeChequeType',
                 'changeBank',
                 'changeInitialPayment',
+                'changeFirstPaymentDate',
                 'changeBankPaymentData',
                 'computePaymentLines',
                 'toggleBankPayment',

+ 6 - 0
src/store/getters.js

@@ -46,6 +46,9 @@ const getters = {
             imageType: true,
             allowExchange: false,
             viewExchanges: false,
+            changeUser: false,
+            changeDate: false,
+            pricelist: false,
             currencies: []
         }
 
@@ -56,6 +59,9 @@ const getters = {
         values.imageType = state.settings.imageType === 'small'
         values.allowExchange = state.settings.allowCurrencyExchange
         values.viewExchanges = state.settings.viewCurrencyExchanges
+        values.changeUser = state.settings.allowChangeUser
+        values.changeDate = state.settings.allowChangeDate
+        values.pricelist = state.settings.pricelist
         values.currencies = state.settings.currencies
 
         return values

+ 18 - 0
src/store/modules/payment.js

@@ -9,6 +9,7 @@ const state = {
     initialPayment: 0,
     amountResidual: 0,
     paymentLines: [],
+    firstPaymentDate: new Date(),
     bankPaymentData: null,
 }
 
@@ -67,6 +68,17 @@ const getters = {
     paymentLines(state) {
         return state.paymentLines
     },
+    firstPaymentDate(state) {
+        if (state.paymentLines && state.paymentLines.length > 1) {
+            const date = new Date(state.paymentLines[0].date)
+
+            if (moment(date).isSameOrAfter(state.firstPaymentDate)) {
+                return date
+            }
+        }
+
+        return state.firstPaymentDate
+    },
     bankPaymentData(state) {
         return state.bankPaymentData
     }
@@ -186,6 +198,9 @@ const mutations = {
             totals = []
         }
     },
+    setFirstPaymentDate(state, paymentDate) {
+        state.firstPaymentDate = paymentDate
+    },
     setBankPaymentData(state, bankPaymentData) {
         state.bankPaymentData = bankPaymentData
     }
@@ -233,6 +248,9 @@ const actions = {
             dispatch('computePaymentLines')
         }
     },
+    changeFirstPaymentDate({ commit }, paymentDate) {
+        commit('setFirstPaymentDate', paymentDate)
+    },
     changeBankPaymentData({ commit, dispatch }, bankPaymentData) {
         commit('setBankPaymentData', bankPaymentData)