Files
fe-accone/test/vuex/acc-one-supplier-payment-cashier-v5/modules/bill.js

365 lines
15 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/bill.js"
export default {
namespaced: true,
state: {
search_bill: 0,
search_error_message: '',
start_date: moment(new Date()).format('YYYY-MM-DD'),
end_date: moment(new Date()).format('YYYY-MM-DD'),
init_sdate: moment(new Date()).format('YYYY-MM-DD'),
init_edate: moment(new Date()).format('YYYY-MM-DD'),
search: '',
ssupplier: '',
isauto:'N',
bills: [],
total_bill: 0,
selected_bill: {
totalbill: 0,
mindp_percent: 0
},
save_error_message: '',
statuses: [{
name: 'Belum Lunas',
value: 'N'
}, {
name: 'Lunas',
value: 'Y'
}],
selected_status: {
name: 'Belum Lunas',
value: 'N'
},
selected_multibill: [],
open_alert_no_pay: false,
msg_alert_no_pay: "Loh ... Gak jadi bayar dong ?",
current_page: 1,
total_page: 0,
pay_disabled: 'Y',
get_data_status: 0,
get_data_error_message: '',
total_payment : 0,
xdialogmulti: false,
xrounding: 0,
paymenttypes: [],
paymenttype: {},
xtanggalbayar: '',
a_coa_search: '',
a_loading_coa: false,
in_saving: false,
dialog_pay_success: false,
paynumber: '',
bar_chx_all: false,
indeterminatex: false
},
mutations: {
update_bar_chx_all(state, val) {
state.bar_chx_all = val
},
update_indeterminatex(state, val) {
state.indeterminatex = val
},
update_paynumber(state, val) {
state.paynumber = val
},
update_dialog_pay_success(state, val) {
state.dialog_pay_success = val
},
update_in_saving(state, val) {
state.in_saving = val
},
update_a_loading_coa(state, val) {
state.a_loading_coa = val
},
update_a_coa_search(state, val) {
state.a_coa_search = val
},
update_xtanggalbayar(state, val) {
state.xtanggalbayar = val
},
update_paymenttypes(state, data) {
state.paymenttypes = data
},
update_paymenttype(state, val) {
state.paymenttype = val
},
update_xrounding(state, val) {
state.xrounding = val
},
update_xdialogmulti(state, val) {
state.xdialogmulti = val
},
update_total_payment(state, val) {
state.total_payment = val
},
update_selected_multibill(state, val) {
state.selected_multibill = val
},
update_init_sdate(state, val) {
state.init_sdate = val
},
update_init_edate(state, val) {
state.init_edate = val
},
update_pay_disabled(state, val) {
state.pay_disabled = val
},
update_total_page(state, val) {
state.total_page = val
},
update_current_page(state, val) {
state.current_page = val
},
update_search_error_message(state, bill) {
state.search_error_message = bill
},
update_search_bill(state, bill) {
state.search_bill = bill
},
update_bills(state, data) {
state.bills = data.records
state.total_bill = data.total
state.total_page = data.total
},
update_selected_bill(state, val) {
state.selected_bill = val
},
update_start_date(state, val) {
state.start_date = val
},
update_end_date(state, val) {
state.end_date = val
},
update_search(state, val) {
state.search = val
},
update_ssupplier(state, val) {
state.ssupplier = val
},
update_selected_status(state, val) {
state.selected_status = val
},
update_open_alert_no_pay(state, val) {
state.open_alert_no_pay = val
},
update_msg_alert_no_pay(state, val) {
state.msg_alert_no_pay = val
},
update_isauto(state, val) {
state.isauto = val
},
update_get_data_status(state, val) {
state.get_data_status = val
},
update_get_data_error_message(state, val) {
state.get_data_error_message = val
}
},
actions: {
async search(context, prm) {
context.commit("update_search_bill", 1)
try {
prm.token = one_token()
let resp = await api.search(prm)
if (resp.status != "OK") {
context.commit("update_search_bill", 3)
context.commit("update_search_error_message", resp.message)
} else {
context.commit("update_search_bill", 2)
context.commit("update_search_error_message", "")
let data = {
records: resp.data.records,
total: resp.data.total
}
context.commit("update_bills", data)
context.commit("update_total_page", data.total)
if (prm.lastidx === 0 && data.total > 0) {
context.commit("update_selected_bill", data.records[0])
if (!_.isEmpty(data.records[0])) {
context.commit("paymentmanual/update_xbayar", data.records[0].totalbill, {root: true})
context.commit("paymentmanual/update_xtanggalbayar", data.records[0].SupplierInvoiceDraftPaymentDate, {root: true})
context.commit("paymentnew/update_notes", data.records[0].notes, {root: true})
context.commit("paymentmanual/update_notes", data.records[0].notes, {root: true})
if (data.records[0].flaglunas === 'N') {
context.commit("paymentmanual/update_tagihans", data.records[0].tagihans, {
root: true
})
} else {
context.commit("paymentmanual/update_tagihans", [], {
root: true
})
}
var arr = context.rootState.paymentmanual.tagihans
var value = true
context.commit("paymentmanual/update_indeterminatex", false, {root: true})
context.commit("paymentmanual/update_bar_chx_all", value, {root: true})
arr.forEach((el) => {
el.chex = value
el.tagihan_bayar = value == true ? el.tagihan_tagihan : 0
})
var selected = _.filter(arr, function (o) {
return o.chex;
})
context.commit("paymentmanual/update_selected_tagihan", selected, {
root: true
})
var xval = context.rootState.paymentmanual.selected_tagihan
var valx = 0
xval.forEach(function (obj) {
valx += parseInt(obj.tagihan_bayar)
})
let totpaid = valx
context.commit("paymentmanual/update_total_payment", totpaid, {root: true})
} else {
context.commit("paymentnew/update_notes", [], {
root: true
})
context.commit("paymentmanual/update_notes", [], {
root: true
})
context.commit("paymentmanual/update_tagihans", [], {
root: true
})
}
} else if (prm.lastidx > 0 && data.total > 0) {
context.commit("update_selected_bill", data.records[0])
context.commit("paymentmanual/update_xbayar", data.records[0].totalbill, {
root: true
})
context.commit("paymentnew/update_notes", data.records[prm.lastidx].notes, {
root: true
})
context.commit("paymentmanual/update_notes", data.records[prm.lastidx].notes, {
root: true
})
context.commit("paymentmanual/update_xtanggalbayar", data.records[prm.lastidx].SupplierInvoiceDraftPaymentDate, {
root: true
})
if (data.records[prm.lastidx].flaglunas === 'N') {
context.commit("paymentmanual/update_tagihans", data.records[prm.lastidx].tagihans, {
root: true
})
} else {
context.commit("paymentmanual/update_tagihans", [], {
root: true
})
}
var arr = context.rootState.paymentmanual.tagihans
var value = true
context.commit("paymentmanual/update_indeterminatex", false, {root: true})
context.commit("paymentmanual/update_bar_chx_all", value, {root: true})
arr.forEach((el) => {
el.chex = value
el.tagihan_bayar = value == true ? el.tagihan_tagihan : 0
})
var selected = _.filter(arr, function (o) {
return o.chex;
})
context.commit("paymentmanual/update_selected_tagihan", selected, {
root: true
})
var xval = context.rootState.paymentmanual.selected_tagihan
var valx = 0
xval.forEach(function (obj) {
valx += parseInt(obj.tagihan_bayar)
})
let totpaid = valx
context.commit("paymentmanual/update_total_payment", totpaid, {root: true})
} else {
context.commit("update_selected_bill", '')
context.commit("paymentnew/update_notes", [], {
root: true
})
context.commit("paymentmanual/update_notes", [], {
root: true
})
context.commit("paymentmanual/update_tagihans", [], {
root: true
})
context.commit("paymentmanual/update_xtanggalbayar", '', {
root: true
})
context.commit("paymentmanual/update_xbayar", 0, {
root: true
})
context.commit("paymentmanual/update_total_payment", 0, {root: true})
context.commit("paymentmanual/update_bar_chx_all", false, {root: true})
}
}
} catch (e) {
context.commit("update_search_bill", 3)
context.commit("update_search_error_message", e.message)
console.log(e)
}
},
async selectpaymenttype(context,payload) {
context.commit("update_get_data_status", 1)
try {
let prm = {};
prm.token = one_token()
prm.search = payload.search
let resp = await api.selectpaymenttype(prm)
if (resp.status != "OK") {
context.commit("update_get_data_status", 3)
context.commit("update_get_data_error_message", resp.message)
} else {
context.commit("update_get_data_status", 2)
context.commit("update_get_data_error_message", "")
context.commit("update_paymenttypes", resp.data.records.paymenttypes)
context.commit("update_paymenttypes_edit", resp.data.records.paymenttypes)
}
} catch (e) {
context.commit("update_get_data_status", 3)
context.commit("update_get_data_error_message", e.message)
console.log(e)
}
},
async pay(context, prm) {
context.commit("paymentmanual/update_lookup_status", 1, {root: true})
try {
prm.token = one_token()
let resp = await api.pay(prm)
if (resp.status != "OK") {
context.commit("paymentmanual/update_lookup_status", 3, {root: true})
context.commit("paymentmanual/update_lookup_error_message", resp.message, {root: true})
} else {
context.commit("paymentmanual/update_lookup_status", 2, {root: true})
context.commit("paymentmanual/update_lookup_error_message", "", {root: true})
context.commit("update_paynumber", "Pembayaran multi telah berhasil")
context.commit("update_dialog_pay_success", true)
context.commit("update_in_saving", false)
context.commit("update_xdialogmulti", false)
console.log('berhasil bayar')
context.dispatch("search", {
supplier: context.state.ssupplier,
search: context.state.search,
status: context.state.selected_status.value,
current_page: 1,
startdate: context.state.init_sdate,
enddate: context.state.init_edate,
lastidx: 0
})
}
} catch (e) {
context.commit("paymentmanual/update_lookup_status", 3, {root: true})
context.commit("paymentmanual/update_lookup_error_message", e.message, {root: true})
}
},
}
}