ReceiptViewModel.java
9.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
package com.naji.xiaotao.receipt.vm;
import android.content.Context;
import android.databinding.ObservableBoolean;
import android.databinding.ObservableField;
import android.databinding.ObservableInt;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import com.naji.xiaotao.cart.entity.CartEntity;
import com.naji.xiaotao.cart.service.CartApiService;
import com.naji.xiaotao.http.RetrofitClient;
import com.naji.xiaotao.login.entity.SellerConfig;
import com.naji.xiaotao.login.service.LoginApiService;
import com.naji.xiaotao.order.ui.OrderActivity;
import com.naji.xiaotao.receipt.entity.ReceiptEntity;
import com.naji.xiaotao.receipt.service.ReceipApiService;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import me.goldze.mvvmhabit.base.BaseViewModel;
import me.goldze.mvvmhabit.base.TitleViewModel;
import me.goldze.mvvmhabit.binding.command.BindingAction;
import me.goldze.mvvmhabit.binding.command.BindingCommand;
import me.goldze.mvvmhabit.http.BaseResponse;
import me.goldze.mvvmhabit.http.ResponseThrowable;
import me.goldze.mvvmhabit.utils.KLog;
import me.goldze.mvvmhabit.utils.RxUtils;
import me.goldze.mvvmhabit.utils.SPUtils;
import me.goldze.mvvmhabit.utils.ToastUtils;
public class ReceiptViewModel extends BaseViewModel{
public ObservableField<String> no=new ObservableField<>();//单号
public ObservableField<String> tableid=new ObservableField<>();//台号
public ObservableField<String> title=new ObservableField<>();//标题
public ObservableField<String> name=new ObservableField<>();//名称
public ObservableField<String> shuihao=new ObservableField<>();//税号
public ObservableField<String> address=new ObservableField<>();//单位地址
public ObservableField<String> phonenum=new ObservableField<>();//电话号码
public ObservableField<String> bank=new ObservableField<>();//开户银行
public ObservableField<String> bankno=new ObservableField<>();//银行账号
public ObservableInt bottomVisibility=new ObservableInt(View.GONE);
public TitleViewModel titleViewModel;
private String orderid;
private float countPrice;//订单金额
private int countTotal;//订单人数
private String isSetMealFee;//是否设置餐位费
private String meelFee;//餐位费
public ReceiptViewModel(Context context,String orderid){
super(context);
titleViewModel=new TitleViewModel(context,"发票详情");
this.orderid=orderid;
}
public BindingCommand orderDetailCommand=new BindingCommand(new BindingAction() {
@Override
public void call() {
Bundle bundle=new Bundle();
bundle.putString("orderid",orderid);
startActivity(OrderActivity.class,bundle);
}
});
@Override
public void onCreate() {
super.onCreate();
getOrderDetail();
getReceiptDetail();
}
//获取订单详情
private void getOrderDetail(){
HashMap<String,String> params=new HashMap<>();
params.put("orderid",orderid);
params.put("status","1");//0 购物车中菜品 1 已下单菜品
RetrofitClient.getInstance().create(CartApiService.class)
.getOrderById(params)
.compose(RxUtils.schedulersTransformer())
.compose(RxUtils.exceptionTransformer())
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
showDialog();
}
})
.subscribe(new Consumer<BaseResponse<List<CartEntity>>>() {
@Override
public void accept(BaseResponse<List<CartEntity>> listBaseResponse) throws Exception {
dismissDialog();
if(listBaseResponse.getRet()==200){
no.set("单号:"+listBaseResponse.getData().get(0).getOrder().get(0).getRow_num());
tableid.set("台号:"+listBaseResponse.getData().get(0).getOrder().get(0).getTablename());
countTotal=listBaseResponse.getData().get(0).getCountTotal();
countPrice=listBaseResponse.getData().get(0).getCountPirce();
getSellerConfig(listBaseResponse.getData().get(0).getOrder().get(0).getPnum());
}else{
ToastUtils.showShort(listBaseResponse.getMsg());
}
}
}, new Consumer<ResponseThrowable>() {
@Override
public void accept(ResponseThrowable throwable) throws Exception {
dismissDialog();
ToastUtils.showShort(throwable.msg);
throwable.printStackTrace();
}
});
}
//获取商家配置
private void getSellerConfig(final String pnum){
Map<String,String> params=new HashMap<>();
params.put("sellerid", SPUtils.getInstance("user_info").getString("sellerid"));
params.put("type","1");//1堂食配置 2外卖配置
RetrofitClient.getInstance().create(LoginApiService.class)
.getSellerConfig(params)
.compose(RxUtils.schedulersTransformer())
.compose(RxUtils.exceptionTransformer())
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
}
})
.subscribe(new Consumer<BaseResponse<List<SellerConfig>>>() {
@Override
public void accept(BaseResponse<List<SellerConfig>> listBaseResponse) throws Exception {
if(listBaseResponse.getRet()==200){
KLog.d("sssssssssssss");
isSetMealFee=listBaseResponse.getData().get(0).getIs_set_meal_fee();
meelFee=listBaseResponse.getData().get(0).getMeal_fee();
if(isSetMealFee.equals("1")){
countPrice+=Float.parseFloat(meelFee)*Integer.parseInt(pnum);
}
String all= new DecimalFormat("##0.00").format(countPrice);
title.set("已点"+countTotal+"个菜,共计¥"+all);
}
}
}, new Consumer<ResponseThrowable>() {
@Override
public void accept(ResponseThrowable responseThrowable) throws Exception {
}
});
}
//获取发票详情
private void getReceiptDetail(){
RetrofitClient.getInstance().create(ReceipApiService.class)
.getReceiptDetail(orderid)
.compose(RxUtils.schedulersTransformer())
.compose(RxUtils.exceptionTransformer())
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
}
})
.subscribe(new Consumer<BaseResponse<List<ReceiptEntity>>>() {
@Override
public void accept(BaseResponse<List<ReceiptEntity>> listBaseResponse) throws Exception {
if(listBaseResponse.getRet()==200){
if(listBaseResponse.getData()!=null&&listBaseResponse.getData().size()>0)
if(listBaseResponse.getData()!=null&&listBaseResponse.getData().size()>0){
name.set(listBaseResponse.getData().get(0).getTitle());
if(listBaseResponse.getData().get(0).getType().equals("0")){
bottomVisibility.set(View.VISIBLE);
shuihao.set(listBaseResponse.getData().get(0).getTaxnumber());
address.set(listBaseResponse.getData().get(0).getCompanyaddress());
phonenum.set(listBaseResponse.getData().get(0).getTelephone());
bank.set(listBaseResponse.getData().get(0).getBankname());
bankno.set(listBaseResponse.getData().get(0).getBankaccount());
}else{
bottomVisibility.set(View.GONE);
}
}
}else{
ToastUtils.showShort(listBaseResponse.getMsg());
}
}
}, new Consumer<ResponseThrowable>() {
@Override
public void accept(ResponseThrowable throwable) throws Exception {
throwable.printStackTrace();
ToastUtils.showShort(throwable.msg);
}
});
}
}