package com.bonait.bnframework.modules.home.fragment.from;

import static com.bonait.bnframework.MainApplication.getContext;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

import com.bigkoo.pickerview.TimePickerView;
import com.bonait.bnframework.R;
import com.bonait.bnframework.common.base.BaseActivity;
import com.bonait.bnframework.common.base.BaseFragment;
import com.bonait.bnframework.common.constant.ConfigName;
import com.bonait.bnframework.common.db.QueryDB;
import com.bonait.bnframework.common.db.mode.BPA_GOODS;
import com.bonait.bnframework.common.db.res.ResSubOrder;
import com.bonait.bnframework.common.db.res.SuOrderTJ;
import com.bonait.bnframework.common.helper.DateUtils;
import com.bonait.bnframework.common.utils.ToastUtils;
import com.bonait.bnframework.modules.home.adapter.ddgl_adapter;
import com.bonait.bnframework.modules.home.adapter.ddtj_adapter;
import com.bonait.bnframework.modules.home.fragment.DingDanfragment;
import com.bonait.bnframework.modules.home.fragment.GuanLifragment;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class SalesStatisticsActivity extends BaseActivity {

    @BindView(R.id.topbar)
    QMUITopBarLayout mTopBar;

    //region 操作变量
    /**
     * 查询按钮
     */
    @BindView(R.id.button)
    Button button;
    /**
     * 表格显示
     */
    @BindView(R.id.datatab)
    ListView datatab;
    /**
     * 子订单数据
     */
    ArrayList<ResSubOrder> subOrders = new ArrayList<>();
    ArrayList<SuOrderTJ> subOrdersStatic = new ArrayList<>();

    /**
     * 订单管理控制器
     */
    ddtj_adapter adapter;
    /**
     * 日期选择器
     */
    TimePickerView pvTime;
    /**
     * 开始时间-结束时间
     */
    @BindView(R.id.starttime)
    EditText starttime;
    @BindView(R.id.stoptime)
    EditText stoptime;

    private Context context;
    private ViewGroup view;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_salesstatistics);
        ButterKnife.bind(this);
        context = getContext();
        view=(ViewGroup)getWindow().getDecorView();
        initTopBar();
        initFragment();
        Init();
    }

    private void initTopBar() {
        mTopBar.setTitle("销售统计");
        mTopBar.addLeftImageButton(R.mipmap.fanhui,R.id.topbar).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
    }


    /**
     * 初始化
     */
    private void Init(){
        //通过Activity.getIntent()获取当前页面接收到的Intent。 getXxxExtra方法获取Intent传递过来的数据
        starttime.setText(new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(new Date()));
        stoptime.setText(new SimpleDateFormat("yyyy-MM-dd 23:59:59").format(new Date()));
        starttime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (pvTime != null) {
                    pvTime.show(starttime);
                }
            }
        });
        stoptime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (pvTime != null) {
                    pvTime.show(stoptime);
                }
            }
        });
        CalendarTime();
        Initdata();
    }

    /**
     * CalendarTime
     * 时间选择器
     */
    public void CalendarTime() {
        //控制时间范围(如果不设置范围，则使用默认时间1900-2100年，此段代码可注释)
        //因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11
        Calendar selectedDate = Calendar.getInstance();
        Calendar startDate = Calendar.getInstance();
        startDate.set(2023, 0, 23);
        Calendar endDate = Calendar.getInstance();
        endDate.set(2099, 11, 28);
        //时间选择器
        pvTime = new TimePickerView.Builder(context, new TimePickerView.OnTimeSelectListener() {
            @Override
            public void onTimeSelect(Date date, View v) {//选中事件回调
                // 这里回调过来的v,就是show()方法里面所添加的 View 参数，如果show的时候没有添加参数，v则为null
                TextView btn = (TextView) v;
                btn.setText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
            }
        })
                //年月日时分秒 的显示与否，不设置则默认全部显示
                .setType(new boolean[]{true, true, true, true, true, false})
                .setLabel("年", "月", "日", "时", "分", "秒")
                .isCenterLabel(true)
                .setDividerColor(Color.DKGRAY)
                .setContentSize(16)//字号
                .setDate(selectedDate)
                .setRangDate(startDate, endDate)
                .setDecorView(view)
                .build();
    }

    /**
     * 初始化数据加载
     */
    public void Initdata() {
        try {
            String str= starttime.getText().toString();
            String stop= stoptime.getText().toString();
            if(DateUtils.compareDate(stop,str))
            {
                ToastUtils.warning("开始时间不能大于结束时间!!!");
                return;
            }

            subOrdersStatic.clear();
            subOrders= QueryDB.GetSubOrders(str,stop, -1,"");
            ArrayList<BPA_GOODS> goods=QueryDB.GetGoodsALL();
            for (BPA_GOODS item :goods)
            {
                SuOrderTJ tj=new SuOrderTJ();
                tj.name=item.name;
                int count=0;
                int countyzz=0;
                for (ResSubOrder order:subOrders)
                {
                    if(order.goodsID.equals(item.id))
                    {
                        count++;
                        if(order.status==2)
                        {
                            countyzz++;
                        }
                    }
                }
                tj.Count=count;
                tj.Yzz_Count=countyzz;
                tj.Yc_Count=count-countyzz;
                subOrdersStatic.add(tj);
            }


            adapter = new ddtj_adapter(context,R.layout.ddtj_item,subOrdersStatic);
            datatab.setAdapter(adapter);
        } catch (Exception e) {

        }
    }

    @OnClick({R.id.button})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.button://查询按钮
                Initdata();
                break;
        }
    }

    /**
     * viewPager里添加fragment
     */
    private void initFragment() {

    }
    //-------------------------配置viewPager与fragment关联----------------------------//

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    @Override
    protected boolean canDragBack() {
        return false;
    }
}