notebook_detail.dart 4.09 KB
import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/utils/utils.dart';
import 'dart:convert';
import "table.dart";
part 'notebook_detail.g.dart';

@JsonSerializable()
class NotebookDetail {
    NotebookDetail();

    String id;
    String tableinfo;
    String pnum;
    String rname;
    String sex;
    String phone;
    String cusdem;
    String cusman;//客户经理
    String ddate;
    String is_set_ddate;
    String ddate_solt;
    String status="0";//订单状态 0:待确认,1:已定座,2:确认到店,3:用餐完成,4:取消预订,5:安排包间,6拒绝订单
    String action;
    String type;//0 内部订单 1 在线预订
    String note_name;
    String channel;
    String cdate;
    List<Table> demands;//需求桌位
    List<Table> tables;//预订桌位
    Cancel cancel;

    String get statuImgAssets{
        switch(status){
            case "0":
                return "assets/status_undeal.png";
            case "1":
            case "5":
                return "assets/statu_booked.png";
            case "2":
                return "assets/statu_reached.png";
            case "3":
                return "assets/statu_finished.png";
            case "4":
                return "assets/statu_canceled.png";
            case "6":
                return "assets/statu_refuse.png";
        }
    }

    String get ddateMd{
        DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(ddate)*1000);
        String md=Utils.addZeroNumber(dateTime.month)+"月"+Utils.addZeroNumber(dateTime.day)+"日";
        switch (ddate_solt){
            case "1":
                md+=" 早餐";
                break;
            case "2":
                md+=" 午餐";
                break;
            case "3":
                md+=" 晚餐";
                break;
        }
        return md;
    }

    String get ddateHm{
        if(type=="0"||(type=="1"&&is_set_ddate=="1")){
            DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(ddate)*1000);
            String Hm=Utils.addZeroNumber(dateTime.hour)+":"+Utils.addZeroNumber(dateTime.minute);
            return Hm;
        }else{
            return "";
        }
    }

    String get ddateStr{
        String ddateStr;
        if (type=="1"&&is_set_ddate=="0"){//在线预订,没有设置到店时间
            switch (ddate_solt){
                case "1":
                    ddateStr="早餐";
                    break;
                case "2":
                    ddateStr="午餐";
                    break;
                case "3":
                    ddateStr="晚餐";
                    break;
                default:
                    ddateStr="";
                    break;
            }
        }else{
            DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(ddate)*1000);
            ddateStr=Utils.addZeroNumber(dateTime.hour)+":"+Utils.addZeroNumber(dateTime.minute);
        }
        return ddateStr;
    }

    String get rnameStr{
        if(rname.isEmpty)return "";
        switch(sex){
            case "1"://先生
                return rname+"先生";
            case "2"://女士
                return rname+"女士";
            case "3"://公司
                return rname+"公司";
        }
    }

    String get tableinfoStr{
        return tables[0].name+ "\n"+(tables.length>=2?('等'+tables.length.toString()+'桌'):'');
    }

    factory NotebookDetail.fromJson(Map<String,dynamic> json) => _$NotebookDetailFromJson(json);
    Map<String, dynamic> toJson() => _$NotebookDetailToJson(this);
}

@JsonSerializable()
class Cancel {
    Cancel();

    String uname;
    String desc;
    String cdate;

    String get cdateStr{
        DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(cdate)*1000);
        return dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day)+" "+Utils.addZeroNumber(dateTime.hour)+":"+Utils.addZeroNumber(dateTime.minute);
    }

    factory Cancel.fromJson(Map<String,dynamic> json) => _$CancelFromJson(json);
    Map<String, dynamic> toJson() => _$CancelToJson(this);
}