177 lines
3.2 KiB
JavaScript
177 lines
3.2 KiB
JavaScript
import { observable, action, computed } from 'mobx';
|
|
|
|
export default class PaymentMethod {
|
|
@observable paymentList = [];
|
|
@observable paymentMethodId = "";
|
|
@observable paymentMethodDetail = {
|
|
id : '',
|
|
type : '',
|
|
name : '',
|
|
pinalty_type: '',
|
|
pinalty_type: '',
|
|
discount_type: '',
|
|
downpayment_type: '',
|
|
discount: '',
|
|
downpayment: '',
|
|
downpayment_deadline : '',
|
|
start_date: '',
|
|
end_date: null,
|
|
cancelation_rules: [{
|
|
period : "",
|
|
change_date : '',
|
|
money_return : '',
|
|
change_package :'',
|
|
}],
|
|
};
|
|
|
|
// @observable getDriverByIdData = [{
|
|
// id: "",
|
|
// contact_id: "",
|
|
// name: "",
|
|
// nik: "",
|
|
// phone_number: "",
|
|
// date_of_birth: "",
|
|
// address: "",
|
|
// photo: "",
|
|
// created_at: "",
|
|
// updated_at: "",
|
|
// deleted_at: null
|
|
// }];
|
|
// @observable driverId = '';
|
|
@observable isLoading = false;
|
|
|
|
constructor(context) {
|
|
this.http = context.http;
|
|
this.context = context;
|
|
}
|
|
|
|
@action
|
|
reset(){
|
|
this.paymentMethodDetail = {
|
|
id : '',
|
|
type : '',
|
|
name : '',
|
|
pinalty_type: '',
|
|
pinalty_type: '',
|
|
discount_type: '',
|
|
downpayment_type: '',
|
|
discount: '',
|
|
downpayment: '',
|
|
downpayment_deadline : '',
|
|
start_date: '',
|
|
end_date: null,
|
|
cancelation_rules: [{
|
|
period : "",
|
|
change_date : '',
|
|
money_return : '',
|
|
change_package :'',
|
|
}],
|
|
}
|
|
}
|
|
|
|
@action
|
|
getAll(){
|
|
this.isLoading = true;
|
|
return this.http.get(`payment_methods`).then(res => {
|
|
this.paymentList = res;
|
|
// console.log(this.paymentList);
|
|
this.isLoading = false;
|
|
});
|
|
}
|
|
|
|
// @action
|
|
// getById(id){
|
|
// if(id != 0){
|
|
// this.isLoading = true;
|
|
// this.http.get(`payment_methods?id=${id}`).then(res => {
|
|
// this.paymentMethodDetail = res;
|
|
// this.isLoading = false;
|
|
// // console.log(this.contactId);
|
|
// });
|
|
// }
|
|
// }
|
|
@action
|
|
getById(id){
|
|
this.paymentMethodId = id;
|
|
this.isLoading = true;
|
|
return this.http.get(`payment_methods?id=${id}`).then(detail => {
|
|
this.paymentMethodDetail = detail[0];
|
|
this.isLoading = false;
|
|
})
|
|
}
|
|
|
|
@action
|
|
reset(){
|
|
this.paymentMethodDetail = {
|
|
id : '',
|
|
type : '',
|
|
name : '',
|
|
pinalty_type: '',
|
|
pinalty_type: '',
|
|
discount_type: '',
|
|
discount: '',
|
|
downpayment: '',
|
|
start_date: '',
|
|
end_date: null,
|
|
cancelation_rules: [],
|
|
};
|
|
}
|
|
|
|
@computed
|
|
get isDetailEmpty(){
|
|
if(this.paymentMethodDetail.name == ''){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@computed
|
|
get isEmpty(){
|
|
if(this.paymentList.length > 0){
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@computed
|
|
get isRulesEmpty(){
|
|
if(this.paymentMethodDetail.cancelation_rules.length > 0){
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@action
|
|
post(){
|
|
this.isLoading = true;
|
|
this.http.post(`payment_methods`, this.paymentMethodDetail).then(res => {
|
|
this.isLoading = false;
|
|
this.getAll();
|
|
return res;
|
|
});
|
|
console.log(this.paymentMethodDetail);
|
|
}
|
|
|
|
@action
|
|
put(id){
|
|
this.isLoading = true;
|
|
this.http.put(`payment_methods/${id}`, this.paymentMethodDetail).then(res => {
|
|
this.isLoading = false;
|
|
this.getAll();
|
|
return res;
|
|
});
|
|
}
|
|
|
|
@action
|
|
del(id){
|
|
this.isLoading = true;
|
|
this.http.delete(`payment_methods/${id}`).then(res => {
|
|
this.isLoading = false;
|
|
this.getAll();
|
|
return res;
|
|
})
|
|
}
|
|
}
|