Commit 9029ddf2 by 宁斌

bbpos打印細節調整,新增擴展自動(點選支付方式是否彈出輸入框,餐檯模式開檯自動彈出輸入人數彈窗)

parent 70d85024
......@@ -103,6 +103,16 @@ public class FunctionExtendedConfiguration {
.remark("餐檯模式下單頁多少秒不操作返回餐檯頁面")
.build();
private ExpandInfoSetting SelectPaymentAutoShowKeyboard = ExpandInfoSetting.builder()
.valueBoolean(false)
.remark("點選支付方式是否彈出輸入框")
.build();
private ExpandInfoSetting OpenTableAutoShowKeyboard = ExpandInfoSetting.builder()
.valueBoolean(true)
.remark("餐檯模式開檯自動彈出輸入人數彈窗")
.build();
/**
* skyorder相關
*/
......@@ -216,4 +226,13 @@ public class FunctionExtendedConfiguration {
public <T> T getSkyQRCodePrintBottomInfoVaule() {
return SkyQRCodePrintBottomInfo.getValue();
}
public <T> T getSelectPaymentAutoShowKeyboardVaule() {
return SelectPaymentAutoShowKeyboard.getValue();
}
public <T> T getOpenTableAutoShowKeyboardVaule() {
return OpenTableAutoShowKeyboard.getValue();
}
}
package com.gingersoft.gsa.cloud.common.core.print.bean;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import java.util.List;
import lombok.Data;
/**
* @author : bin
......@@ -10,9 +18,56 @@ import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
* @update date: 2020-11-27
* @description:
*/
public class PrintCleanMachineContent extends SettlementReport implements PrintContent {
@Data
public class PrintCleanMachineContent implements PrintContent, Parcelable {
private String yesterdayTime;
private SettlementReport.VoBean vo;
private String restaurantOperationTime;
private List<SettlementReport.AnalysisBean> analysis;
private List<SettlementReport.CashBean> cash;
private String currentTime;
private String startTime;
public PrintCleanMachineContent() {
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.yesterdayTime);
dest.writeParcelable(this.vo, flags);
dest.writeString(this.restaurantOperationTime);
dest.writeTypedList(this.analysis);
dest.writeTypedList(this.cash);
dest.writeString(this.currentTime);
dest.writeString(this.startTime);
}
protected PrintCleanMachineContent(Parcel in) {
super(in);
this.yesterdayTime = in.readString();
this.vo = in.readParcelable(SettlementReport.VoBean.class.getClassLoader());
this.restaurantOperationTime = in.readString();
this.analysis = in.createTypedArrayList(SettlementReport.AnalysisBean.CREATOR);
this.cash = in.createTypedArrayList(SettlementReport.CashBean.CREATOR);
this.currentTime = in.readString();
this.startTime = in.readString();
}
public static final Creator<PrintCleanMachineContent> CREATOR = new Creator<PrintCleanMachineContent>() {
@Override
public PrintCleanMachineContent createFromParcel(Parcel source) {
return new PrintCleanMachineContent(source);
}
@Override
public PrintCleanMachineContent[] newArray(int size) {
return new PrintCleanMachineContent[size];
}
};
}
package com.gingersoft.gsa.cloud.common.core.print.bean;
import android.os.Parcel;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.common.core.order.commodity.OrderDetail;
import java.util.List;
import lombok.Data;
/**
* @author : bin
* @create date: 2020-12-03
* @update date: 2020-12-03
* @description:堂食上菜紙打印內容
*/
@Data
public class PrintServingPaperContent implements PrintContent {
private String brand;
private String resturantName;
private String orderNo;
private int person;
private String createTime;
private List<OrderDetail> foodList;
//禮貌用語
private String politeLanguage;
}
package com.gingersoft.gsa.cloud.common.core.print.bean;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.common.core.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.common.core.order.commodity.OrderDetail;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
/**
* @author : bin
* @create date: 2020-12-03
* @update date: 2020-12-03
* @description:堂食印單打印內容
* */
@Data
public class PrintSlipContent implements PrintContent {
private String brand;
private String resturantName;
private String tableName;
private String orderNo;
private int person;
private String createTime;
private List<OrderDetail> foodList;
private List<BillItem> billItemList;
private double wholeAmount;
private double totalAmount;
//禮貌用語
private String politeLanguage;
}
......@@ -20,16 +20,21 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
private String brand;
private String resturantName;
/**
* 2=外送
* 其他=自取
*/
private String orderType;
/**
* 支付類型:在線支付,貨到付款
*/
private String payType;
//送達時間
private String deliveryTime;
//單號
private String orderNumber;
private String orderNo;
//訂單碼
private String billNumber;
//取餐碼
private String billNo;
//取餐碼/訂單碼
private String orderTakeFoodCode;
//開單時間
private String billingTime;
......@@ -40,7 +45,7 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
//訂單實體
private List<PrintFoodItem> foodItemList;
private List<PrintBillItem> billItemList;
private List<PrintPayTypeItem> printPayTypeItemList;
// private List<PrintPayTypeItem> printPayTypeItemList;
//總金額
private String totalAmountText;
private String totalAmount;
......@@ -66,6 +71,7 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
public PrintTakeawayFormContent() {
}
@Override
public int describeContents() {
return 0;
......@@ -75,22 +81,23 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.brand);
dest.writeString(this.resturantName);
dest.writeString(this.orderType);
dest.writeString(this.payType);
dest.writeString(this.deliveryTime);
dest.writeString(this.orderNumber);
dest.writeString(this.billNumber);
dest.writeString(this.orderNo);
dest.writeString(this.billNo);
dest.writeString(this.orderTakeFoodCode);
dest.writeString(this.billingTime);
dest.writeString(this.payTime);
dest.writeString(this.remark);
dest.writeTypedList(this.foodItemList);
dest.writeTypedList(this.billItemList);
dest.writeTypedList(this.printPayTypeItemList);
dest.writeString(this.totalAmountText);
dest.writeString(this.totalAmount);
dest.writeString(this.payAmountText);
dest.writeString(this.payAmount);
dest.writeString(this.memberNumber);
dest.writeString(this.memberName);
dest.writeString(this.memberNumber);
dest.writeString(this.memberPhone);
dest.writeString(this.memberOldPoints);
dest.writeString(this.memberAddPoints);
......@@ -105,22 +112,23 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
protected PrintTakeawayFormContent(Parcel in) {
this.brand = in.readString();
this.resturantName = in.readString();
this.orderType = in.readString();
this.payType = in.readString();
this.deliveryTime = in.readString();
this.orderNumber = in.readString();
this.billNumber = in.readString();
this.orderNo = in.readString();
this.billNo = in.readString();
this.orderTakeFoodCode = in.readString();
this.billingTime = in.readString();
this.payTime = in.readString();
this.remark = in.readString();
this.foodItemList = in.createTypedArrayList(PrintFoodItem.CREATOR);
this.billItemList = in.createTypedArrayList(PrintBillItem.CREATOR);
this.printPayTypeItemList = in.createTypedArrayList(PrintPayTypeItem.CREATOR);
this.totalAmountText = in.readString();
this.totalAmount = in.readString();
this.payAmountText = in.readString();
this.payAmount = in.readString();
this.memberNumber = in.readString();
this.memberName = in.readString();
this.memberNumber = in.readString();
this.memberPhone = in.readString();
this.memberOldPoints = in.readString();
this.memberAddPoints = in.readString();
......@@ -143,6 +151,4 @@ public class PrintTakeawayFormContent implements PrintContent, Parcelable {
return new PrintTakeawayFormContent[size];
}
};
}
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.common.core.print.bean.adapter;
import com.gingersoft.gsa.cloud.common.core.print.bean.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
/**
* @author : bin
......@@ -17,6 +18,6 @@ public interface AdaptationContent {
PrintContent adaptationPrintTakeawayFormContent(OrderDetails.DataBean data);
PrintContent adaptationPrintCleanMachineContent();
PrintContent adaptationPrintCleanMachineContent(SettlementReport settlementReport);
}
......@@ -274,6 +274,18 @@ public class SettlementReport implements Parcelable {
}
public static final Creator<SettlementReport> CREATOR = new Creator<SettlementReport>() {
@Override
public SettlementReport createFromParcel(Parcel in) {
return new SettlementReport(in);
}
@Override
public SettlementReport[] newArray(int size) {
return new SettlementReport[size];
}
};
@Override
public int describeContents() {
return 0;
......@@ -300,15 +312,4 @@ public class SettlementReport implements Parcelable {
this.startTime = in.readString();
}
public static final Creator<SettlementReport> CREATOR = new Creator<SettlementReport>() {
@Override
public SettlementReport createFromParcel(Parcel source) {
return new SettlementReport(source);
}
@Override
public SettlementReport[] newArray(int size) {
return new SettlementReport[size];
}
};
}
......@@ -195,6 +195,11 @@ public class OrderPayView extends LinearLayout {
//設置差額狀態
setDifferenceText(context);
boolean selectPaymentAutoShowKeyboard = GsaCloudApplication.functionConfiguration.getSelectPaymentAutoShowKeyboardVaule();
if (selectPaymentAutoShowKeyboard) {
//彈出支付金額鍵盤
view.findViewById(R.id.layout_keypad).performClick();
}
if (onSelectPayClickLisenter != null) {
onSelectPayClickLisenter.addClick(method);
}
......
......@@ -7,8 +7,8 @@ ext {
targetSdkVersion : 29,
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode : 12,
versionName : "1.1.2"
versionCode : 13,
versionName : "1.1.3"
]
version = [
......
......@@ -13,6 +13,7 @@ import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.component.ComponentName
import com.gingersoft.gsa.cloud.common.constans.PrintConstans
import com.gingersoft.gsa.cloud.common.core.print.bean.OrderDetails
import com.gingersoft.gsa.cloud.common.core.print.bean.adapter.PrintContentAdapter
import com.gingersoft.gsa.delivery_pick_mode.data.HistoryOrderRepository
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.HistoryOrderBean
import kotlinx.coroutines.launch
......@@ -89,8 +90,13 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
orderDetails.data!![0].order_type = data.order_type
orderDetails.data!![0].orderPayType = data.orderPayType
TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = orderDetails.data!![0]
var contentAdapter = PrintContentAdapter()
var printContent = contentAdapter.adaptationPrintTakeawayFormContent(TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData)
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread { _, result ->
......
......@@ -620,8 +620,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
fun printOrder(code: Int, dataBean: OrderDetails.DataBean, listener: (MessageBean) -> Unit) {
//訂單信息和廚房單,打印前需要修改dataBean的order_type和orderPayType
TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = dataBean
var contentAdapter = PrintContentAdapter()
var printContent = contentAdapter.adaptationPrintTakeawayFormContent(dataBean)
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread { _, result ->
......
......@@ -103,10 +103,12 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
boolean isLogin = (boolean) SPUtils.get(UserConstans.AUTO_LOGIN, false);
if (isLogin) {
if (!TextUtils.isEmpty(UserContext.newInstance().getLoginToken()) && ResturantInfoManager.newInstance(). getRestaurantId() != 0) {
if (!TextUtils.isEmpty(UserContext.newInstance().getLoginToken()) && ResturantInfoManager.newInstance().getRestaurantId() != 0) {
//自動登陸
String pwd = Aes.aesDecrypt((String) SPUtils.get(UserConstans.LOGIN_PASSWORD, ""));
mPresenter.login(SPUtils.get(UserConstans.LOGIN_USERNAME, "") + "", pwd);
} else {
startActivity(new Intent(mContext, LoginActivity.class));
}
} else {
startActivity(new Intent(mContext, LoginActivity.class));
......
......@@ -22,6 +22,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.common.core.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager;
import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.core.pay.PayMethod;
......@@ -122,6 +124,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
private int type;
private SettlementReport mSettlementReport;
/**
* 1#全部計入到10號清機數據
* 2#全部計入到12號清機數據
......@@ -296,6 +299,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@Override
public void returnSettlementData(SettlementReport datasBean) {
this.mSettlementReport = datasBean;
if (datasBean.getVo() != null && datasBean.getVo().getPrices() > 0) {
//保存下次重印數據
SPUtils.put(PrintConstans.SETTLEMENT_REPORT, JsonUtils.toJson(datasBean));
......@@ -575,11 +579,18 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@Override
public void printRepore() {
if (mSettlementReport == null) {
return;
}
View view = initPrintView();
//清機成功,打印
PrintTransitUtils.getInstance().setPrintView(view);
PrintContent printContent = new PrintContentAdapter().adaptationPrintCleanMachineContent(mSettlementReport);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_CLEAN_MACHINE)//清機打印
.addParam(PrintConstans.PRINT_CONTENT, printContent)//清機內容
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
......
package com.joe.print.mvp.model.bean;
import lombok.Data;
/**
* @author : bin
* @create date: 2020-12-03
* @update date: 2020-12-03
* @description:
*/
@Data
public class FontStyle {
private int foodComplexion;//食品顔色 0 黑色 2 紅色
private int modifierComplexion;//細項顔色 0 黑色 2 紅色
private int foodIsBold;//食品是否加粗 0預設 1是 2否
private String foodFont;//食品字體大小 0預設
private int foodIsItalic;//食品是否斜體 0預設 1是 2否
private int modifierIsBold;//細項是否加粗 0預設 1是 2否
private String modifierFont;//細項字號 0預設
private int modifierIsItalic;//細項是否斜體 0預設 1是 2否
private int numberIsFlip;//數量大於1顔色是否翻轉 0預設 1是 2否
}
......@@ -63,13 +63,14 @@ public class PrintOtherOrder extends PrinterRoot<PrintTakeawayFormContent> {
String stringBuilder = "<html><body>" +
getTakewayPrintContent(printTakeawayFormContent,deviceBean) +
"</body></html>";
String[] pritContent = new String[1];
pritContent[0] = stringBuilder;
int printCount = getPrintCount(mContext);
String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent;
}
@Override
public int getPrintCount(Context context) {
return RestaurantExpandInfoUtils.getValue(ExpandConstant.DeliveryPrintCount,1);
......
......@@ -65,8 +65,11 @@ public class PrintOtherOrderClosing extends PrinterRoot<PrintTakeawayCheckoutCon
String stringBuilder = "<html><body>" +
getTakewayPrintContent(mTakeawayCheckoutContent, deviceBean) +
"</body></html>";
String[] pritContent = new String[1];
pritContent[0] = stringBuilder;
int printCount = getPrintCount(mContext);
String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent;
}
......
......@@ -146,7 +146,7 @@ public class PrintPrjKitchen extends PrinterRoot {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) {
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, getTableName(prjBean),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_first_order),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center)));
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string)));
}
//統計打印數
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) {
......@@ -221,7 +221,7 @@ public class PrintPrjKitchen extends PrinterRoot {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintPage, false)) {
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, prjBean.getCurrentIndex() + "/" + prjBean.getTotalPrj(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_prj_page_index),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center)));
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string)));
}
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
}
......
......@@ -53,8 +53,11 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> {
String stringBuilder = "<html><body>" +
getHtmlContent() +
"</body></html>";
String[] pritContent = new String[1];
pritContent[0] = stringBuilder;
int printCount = getPrintCount(mContext);
String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent;
}
......@@ -62,9 +65,9 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> {
List<HtmlLable> htmlLables = new ArrayList<>();
//頭部
htmlLables.add(new HtmlLable(HtmlContract.LABLE_H3,mQRCodeBean.getPrintTableName(), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center)));
htmlLables.add(new HtmlLable(HtmlContract.LABLE_H3,mQRCodeBean.getPrintTableName(), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string)));
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P,mQRCodeBean.getPrintTopInfo(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE,"25")));
//qrcode
......
......@@ -5,23 +5,37 @@ import android.graphics.Bitmap;
import android.view.Gravity;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.common.core.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.common.core.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintServingPaperContent;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.R;
import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_DIV;
/**
* 上菜紙打印 已改新版
*/
public class PrintServe extends PrinterRoot {
public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
private PrintServingPaperContent mPrintServingPaperContent;
@Override
protected void setPrintContent(PrintServingPaperContent printContent) {
this.mPrintServingPaperContent = printContent;
}
@Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
......@@ -35,6 +49,9 @@ public class PrintServe extends PrinterRoot {
@Override
public String[] getPrintDatas(Context mContext, PrinterDeviceBean deviceBean) {
if(mPrintServingPaperContent == null){
return new String[]{"<html><body></body></html>"};
}
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
......@@ -48,11 +65,51 @@ public class PrintServe extends PrinterRoot {
generateHtmlFoodInfoTwoColumns(foodList) +
getWholeLine() +
getHtmlFooter() + "</body></html>";
String[] pritContent = new String[1];
pritContent[0] = stringBuilder;
int printCount = getPrintCount(mContext);
String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent;
}
private String getHtmlContent() {
List<HtmlLable> htmlLables = new ArrayList<>();
/**
* 頭部
*/
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintServingPaperContent.getBrand(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintServingPaperContent.getResturantName(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
/**
* 訂單
*/
/**
* 食品
*/
/**
* 賬單項
*/
/**
* 底部
*/
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
}
@Override
public int getPrintCount(Context context) {
return 1;
......
......@@ -5,6 +5,8 @@ import android.graphics.Bitmap;
import android.view.Gravity;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.common.core.print.bean.PrintSlipContent;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.joe.print.mvp.model.bean.BillingBean;
import com.gingersoft.gsa.cloud.common.core.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.common.core.order.cart.ShoppingCart;
......@@ -16,16 +18,29 @@ import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.R;
import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_COLUMN;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_DIV;
import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P;
/**
* 印單打印 已改新版
*/
public class PrintSlip extends PrinterRoot {
public class PrintSlip extends PrinterRoot<PrintSlipContent> {
private PrintSlipContent mPrintSlipContent;
@Override
protected void setPrintContent(PrintSlipContent printContent) {
this.mPrintSlipContent = printContent;
}
@Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) {
......@@ -46,6 +61,11 @@ public class PrintSlip extends PrinterRoot {
@Override
public String[] getPrintDatas(Context mContext, PrinterDeviceBean deviceBean) {
if (mPrintSlipContent == null) {
return new String[]{"<html><body></body></html>"};
}
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
......@@ -61,11 +81,58 @@ public class PrintSlip extends PrinterRoot {
getWholeLine() +
getHtmlFooter() + "</body></html>";
String[] pritContent = new String[1];
pritContent[0] = stringBuilder;
int printCount = getPrintCount(mContext);
String[] pritContent = new String[printCount];
for (int i = 0; i < printCount; i++) {
pritContent[i] = stringBuilder;
}
return pritContent;
}
private String getHtmlContent() {
List<HtmlLable> htmlLables = new ArrayList<>();
/**
* 頭部
*/
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintSlipContent.getBrand(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
htmlLables.add(new HtmlLable(LABLE_DIV, mPrintSlipContent.getResturantName(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, "28")));
/**
* 訂單
*/
String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) {
orderNum = "單號:" + DoshokuOrder.getInstance().getOrderNo();
}
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "餐檯:" + mPrintSlipContent.getTableName())}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "人數:" + mPrintSlipContent.getPerson())}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, orderNum)}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "日期:" + TimeUtils.parseTimeRepeat(mPrintSlipContent.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT))}, 24));
htmlLables.add(new HtmlLable(LABLE_P, HtmlContract.dividing_line));
/**
* 食品
*/
/**
* 賬單項
*/
/**
* 底部
*/
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
}
private String getPLable(String content) {
return "<p>" + content + "</p>";
}
......@@ -95,7 +162,7 @@ public class PrintSlip extends PrinterRoot {
layout.addView(getLine(mContext));
//訂單信息
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + doshokuOrder.getOpenTableInfo().getPerson(), "單號:" +doshokuOrder.getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + doshokuOrder.getOpenTableInfo().getPerson(), "單號:" + doshokuOrder.getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, true));
......
......@@ -23,11 +23,13 @@ public class HtmlContract {
public static final String ATTRIBUTES_ALIGN = "align";
public static final String ATTRIBUTES_BOLD = "bold";
public static final String ATTRIBUTES_SCALE = "scale";
public static final String ATTRIBUTES_FONT_SIZE = "font-size";
public static final String ATTRIBUTES_FONT_SIZE = "size";
public static final String value_offset_last = "last";
public static final String value_offset_percentage70 = "0.7";
public static final String value_offset_percentage60 = "0.6";
public static final String value_offset_percentage65 = "0.65";
public static final String value_offset_percentage50 = "0.5";
public static final String value_offset_percentage40 = "0.4";
public static final String value_offset_percentage30 = "0.3";
......@@ -36,15 +38,14 @@ public class HtmlContract {
public static final String value_offset_percentage_foodNum = "0.6";
public static final String value_bold_1 = "1";
public static final String value_scale_1 = "2";
public static final String value_align_center = "center";
public static final String value_align_right = "right";
public static final byte value_type_default = 0;
public static final byte value_type_string = 1;
public static final String dividing_line="-----------------------------------------------------------------";
public static final String dividing_line_half="---------------------------------";
public static final String dividing_line_half="------------------";
}
......@@ -138,7 +138,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public TablePresenter(TableContract.Model model, TableContract.View rootView) {
super(model, rootView);
this.IActivity = (TableActivity) rootView;
XFunctionManager.newInstance().inJect(this, FunctionTable.class);
XFunctionManager.inJect(this, FunctionTable.class);
startTablePolling();
}
......
......@@ -344,7 +344,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
btn_send_order.setText("送單信息");
} else {
if (DoshokuOrder.getInstance().getOpenTableInfo().getPerson() == 0) {
boolean openTableAutoShowKeyboard = GsaCloudApplication.functionConfiguration.getOpenTableAutoShowKeyboardVaule();
if (openTableAutoShowKeyboard && DoshokuOrder.getInstance().getOpenTableInfo().getPerson() == 0) {
showChoosePeopleNumDialog(false);
}
}
......
......@@ -9,7 +9,9 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.pay.PayMethod;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment