<extend name="Public/base"/>

<block name="body">
    <link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
    <link rel="stylesheet" href="__CSS__/pro_promote.css" type="text/css" />
    <script src="__STATIC__/jquery.form.js"></script>
    <script src="__STATIC__/layer/layer.js"></script>
    <script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
    <script type="text/javascript" src="__JS__/select2.min.js"></script>
    <script type="text/javascript" src="__STATIC__/layer3/layer.js"></script>

    <style>
        .select2-container--default .select2-selection--single {
            color: #000;
            resize: none;
            border-width: 1px;
            border-style: solid;
            border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
            box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
            height:28px;border-radius:3px;font-size:12px;
        }
        .select2-container--default .select2-selection--single .select2-selection__rendered {
            line-height:35px;
            line-height:28px;
        }
        .select2-container--default .select2-selection--single .select2-selection__arrow {
            height:26px;
        }
        .select2-container--default .select2-search--dropdown .select2-search__field {
            height:26px;line-height:26px;font-size:12px;
        }
        .select2-results__option[aria-selected] {font-size:12px;}
        .layui-layer-dialog .layui-layer-content{color:red}
        .butnbox {padding:10px 0 10px;}
        .butnbox .butnlist {overflow:hidden;clear:both;}
        .butnbox .butnlist .butn,.butnbox .butnlist .butn:hover {text-decoration:none;border:none;}
        .butnbox .butnlist .butn {display:inline-block;width:120px;height:28px;line-height:28px;text-align:center;color:#FFF;background:#3C95C8;border-radius:3px;}
        .butnbox .butnlist .butn.last {background:#009900;}
        .butnbox .butnlist .butn~.butn {margin-left:20px;}
        .data_list table tbody tr a.disabled,.data_list table tbody tr a.disabled:hover {color:#999;cursor:default;}
        .layui-layer-title {
            text-align: center;
            height: 80px;
            line-height: 80px;
            font-weight: 600;
            font-size: 18px;
        }
        .data_list table td{
            line-height: 2;
        }
        
        .layui-layer-title {
            text-align: center;
            height: 42px;
            line-height: 42px;
            font-weight: 400;
            font-size: 14px;
        }
        .main-place .question_content:before{
            right: 20px;
            left: auto;
        }
    </style>

    <div class="cf main-place top_nav_list navtab_list">
        <h3 class="page_title">联运平台结算单管理</h3>
        <p class="description_text" id="order_url"></p>
        <div class="question" style="float: right;margin-right: 20px;">
            <i class="question_mark">?</i>
            <ul class="question_content" style="right: -20px;left: auto;">
                <li class="question_title">数据相关说明</li>
                <li class="question_list">
                    <span class="">重算金额:</span>
                    <span class="">仅会重算当前公司,当前时间的结算金额</span>
                </li>
                <li class="question_list">
                    <span class="">撤销汇总:</span>
                    <span class="">需要进行重算才可以再次汇总</span>
                </li>
                <li class="question_list">
                    <span class="">新增结算:</span>
                    <span class="">对新增绑定的公司进行结算,仅统计当月数据(不含下游个人)</span>
                </li>
            </ul>
        </div>
    </div>



    <div class="cf top_nav_list" style="height: 38px;">
        <!-- 高级搜索 -->
        <div class="jssearch fl cf search_list" style="margin-bottom: 0">
            <div class="input-list input-list-promote search_label_rehab">
                <select id="company_type" name="company_type" class="select_gallery" >
                    <option value="">请选择公司类型</option>
                    <volist name="CompanyType" id="vo">
                        <option value="{$key}" <if condition="isset($_GET['company_type']) && $key eq I('company_type')">selected</if> >{$vo}</option>
                    </volist>
                </select>
            </div>
            <div class="input-list input-list-promote search_label_rehab">
                <select id="company_id" name="company_id" class="select_gallery" >
                    <option value="">请先选择公司类型</option>
                </select>
            </div>

            <div class="input-list input-list-promote search_label_rehab">
                <select id="company_belong" name="company_belong" class="select_gallery" >
                    <option value="">结算单类型</option>
                    <volist name="CompanyBelong" id="vo">
                        <option value="{$key}" <if condition="isset($_GET['company_belong']) && $key eq I('company_belong')">selected</if> >{$vo}</option>
                    </volist>
                </select>
            </div>

            <div class="input-list input-list-promote search_label_rehab">
                <select id="withdraw_type" name="withdraw_type" class="select_gallery" style="width:150px;">
                    <option value="">结算周期</option>
                    <option value="0">周结</option>
                    <option value="1">月结</option>
                </select>
            </div>
            <div class="input-list input-list-promote search_label_rehab">
                <select id="withdraw_type" name="withdraw_type2" class="select_gallery" style="width:150px;">
                    <option value="">结算类型</option>
                    <option value="1">正常计算</option>
                    <option value="2">补点</option>
                </select>
            </div>

            <div class="input-list">
                <input type="text" readonly id="time_start" name="time_start" class="" value="{:I('time_start')}" placeholder="结算开始时间" />
                &nbsp;-&nbsp;
                <div class="input-append date" id="datetimepicker"  style="display:inline-block">
                    <input type="text" readonly id="time_end" name="time_end" class="" value="{:I('time_end')}" placeholder="结算结束时间" />
                    <span class="add-on"><i class="icon-th"></i></span>
                </div>
            </div>

            <div class="input-list input-list-promote search_label_rehab">
                <select id="verify_status" name="verify_status" class="select_gallery" >
                    <option value="">请选择审核状态</option>
                    <volist name="VerifyStatus" id="vo">
                        <option value="{$key}" <if condition="isset($_GET['verify_status']) && $key eq I('verify_status')">selected</if> >{$vo}</option>
                    </volist>
                </select>
            </div>

            <div class="input-list">
                <input type="text" readonly id="time_start2" name="time_start2" class="" value="{:I('time_start2')}" placeholder="操作开始时间" />
                &nbsp;-&nbsp;
                <div class="input-append date" id="datetimepicker2"  style="display:inline-block">
                    <input type="text" readonly id="time_end2" name="time_end2" class="" value="{:I('time_end2')}" placeholder="操作结束时间" />
                    <span class="add-on"><i class="icon-th"></i></span>
                </div>
            </div>

            <div class="input-list">
                <a class="sch-btn" href="javascript:;" id="search" url="{:U('lists','model='.$model['name'] .'&row='.I('row'),false)}">搜索</a>
            </div>

        </div>
    </div>

    <div class="butnbox" >
        <div class="butnlist jscheckbutn" style="margin-left: 2px">
            <foreach name="menubtn" item="vo" >
                {$vo}
             </foreach>
        </div>
    </div>

    <!-- 数据列表 -->
    <div class="data_list">
            <div class="">
                <table>
                    <!-- 表头 -->
                    <thead>
                    <tr>
                        <th><input class="check-all" type="checkbox"></th>
                        <th>合作公司</th>
                        <th>结算单类型</th>
                        <th>结算时间</th>
                        <th>结算周期</th>
                        <th>结算类型</th>
                        <th>结算金额</th>
                        <th>结算流水</th>
                        <th>创建记录</th>
                        <th>审批状态</th>
                        <th>对外发起</th>
                        <th>合作确认</th>
                        <th>汇总状态</th>
                        <th>操作</th>
                    </tr>
                    </thead>

                    <!-- 列表 -->
                    <tbody>
                    <if condition = "empty($data)">
                        <tr>
                            <td colspan="16" class="text-center">aOh! 暂时还没有内容!</td>
                        </tr>
                    </if>
                    <notemtpy name = "data">
                        <volist name="data" id="data">
                            <tr>
                                <td ><input class="ids" type="checkbox" data-status="{$data.verify_status}" value="{$data['id']}" name="ids[]"></td>
                                <td>{$data.company_name}</td>
                                <td>{$data.company_belong}</td>
                                <td>{$data.valid}</td>
                                <td>{$data.withdraw_type_1}</td>
                                <td>{$data.withdraw_type_2}</td>
                                <td>{$data.statement_money}</td>
                                <td>{$data.platform_amount}</td>
                                <td>{$data.create}</td>
                                <td>
                                    <if condition="$data.verify_status eq -1 ">
                                        <div style="line-height: 2;color: red;">
                                            {$data.verify}
                                        </div>
                                    <else /> 
                                        <div style="line-height: 2;">
                                            {$data.verify}
                                        </div>
                                    </if>
                                </td>
                                <td>{$data.launch}</td>
                                <td>{$data.confirm}</td>
                                <td>
                                    <if condition="$data.verify_status eq -2 ">
                                        <div style="line-height: 2;color: red;">
                                            {$data.pool}
                                        </div>
                                    <else /> 
                                        <div style="line-height: 2;">
                                            {$data.pool}
                                        </div>
                                    </if>
                                </td>
                                <td>
                                    <foreach name="data.oplist" item="vo" >
                                        {$vo}
                                     </foreach>
                                </td>
                            </tr>
                        </volist>
                        <tr><td style="line-height: 42px;">合计</td><td colspan="13" style="line-height: 42px;">结算总金额:&nbsp;{$count.statement_money}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;结算总流水:&nbsp;{$count['platform_amount']}&nbsp;(补点不重复统计在内)</td></tr>
                    </notemtpy>
                    </tbody>
                </table>
            </div>

    </div>
    <div class="page">
        {$_page|default=''}
    </div>
    <div style="width: 100vw;height: 100vh;padding: 0;position: absolute;top: 0;z-index: 9999;display: none;" id="creat_msg">
        <div class="layui-layer layui-layer-dialog layui-layer-border layui-layer-msg layui-layer-hui" 
            type="dialog" times="1" showtime="50000" contype="string" style="z-index: 19891015; top:30%; left:45%;">
            <div class="layui-layer-content" style="padding: 15px 0 5px;font-size: 20px;font-weight: 600;color: white;">执行进度</div>
            <div id="tip_msg" class="layui-layer-content" style="color: white;">开始时间与结束时间都不允许为空</div>
            <div class="layui-layer-content" style="padding: 5px 10px 15px;font-size: 10px;color: #BBB;">TIP:未执行完成之前请勿刷新或关闭此页面</div>
            <span class="layui-layer-setwin"></span>
        </div>
    </div>
</block>

<block name="script">
    <link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
    <php>if(C('COLOR_STYLE')=='blue_color') echo '
        <link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">
        ';
    </php>
    <link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
    <script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"
            charset="UTF-8"></script>
    <script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
    <script src="__STATIC__/layer/extend/layer.ext.js"></script>
    <script type="text/javascript">
    </script>
    <script>
        <volist name=":I('get.')" id="vo">
            Think.setValue('{$key}',"{$vo}");
        </volist>
        $(".select_gallery").select2();
        var DATA={};
        var MSG={
            showmsg:function(str){
                $("#creat_msg").show();
                $("#tip_msg").html(str);
            },
            hidemsg:function(){
                $("#creat_msg").hide();
                $("#tip_msg").html('');
            }
        }
        var COMPARE={
            publiucAjax:function(url,senddata,callback){
                $.ajax({
                    type: 'post',
                    url: url,
                    data:senddata,
                    success: function(data) {
                        if(data.success){
                            callback(data.data);
                        }else{
                            MSG.hidemsg();
                            layer.alert(data.error);
                            return false;
                        }
                        
                    },
                    error:function(){
                        MSG.hidemsg();
                        layer.alert("网络错误或超时");
                        return false;
                    }
                });
            },
            //获取基础参数
            getNewStatement:function(callback){
                MSG.showmsg("初始化获取校验中....");
                COMPARE.publiucAjax("{:U('getNewStatement')}",{},function(data){
                    DATA = data;
                    DATA.now = 1;
                    MSG.showmsg("校验通过,开始统计 [0/"+DATA.count+"] ......");
                    callback();
                });
            },
            //开始统计
            updateNewStatement:function(callback){
                var senddata = {date:DATA.datelist[(DATA.now-1)],up_company_id:DATA.up_company_id,dowm_company_id:DATA.dowm_company_id};
                console.log(senddata);
                COMPARE.publiucAjax("{:U('updateNewStatement')}",senddata,function(){
                    MSG.showmsg("开始统计 ["+DATA.now+"/"+DATA.count+"] ......");
                    DATA.now ++;
                    if( DATA.now > DATA.count){
                        callback();
                    }else{
                        COMPARE.updateNewStatement(callback)
                    }
                });

            }
        }
    </script>
    <script type="text/javascript">
        //导航高亮
        highlight_subnav("{:U('CompanyStatement/lists')}");
        function reload() {
            window.location.reload(); 
        }

        $(function(){
            var loop = 1;
            var company_id = "{$_GET['company_id']??0}";
            $("#company_type").on("change",function(){
                var type =  $(this).find("option:selected").val();
                if(type != ''){
                    var url = "{:U('Ajax/getCompanyList')}"+"&company_type="+type;
                    $.get(url,function(data){
                        var company = data;
                        var companystr = '<option value="">请选择合作公司</option>';
                        for (var i in company) {
                            if(company[i].id == company_id && loop==1){
                                companystr += "<option value='" + company[i].id + "' selected='selected'>" + company[i].name + "</option>"
                            }else{
                                companystr += "<option value='" + company[i].id + "'>" + company[i].name + "</option>"
                            }
                        }
                        $("#company_id").html(companystr);
                        $("#company_id").select2();
                        loop++;
                    })
                }else{
                    var companystr = '<option value="">请先选择合作公司</option>';
                    $("#company_id").html(companystr);
                    $("#company_id").select2();
                }
                
                
                
            })
            $("#company_type").change();

            //设置对账网址
            var order_url = window.location.protocol+"//"+window.location.host+"/admin.php?s=/Public/cp_login.html";
            $("#order_url").html("流程说明:结算自动生成对账单--->财务审核对账单--->发起对外对账--->合作方进行确认--->进入报销流程【合作方确认地址:"+order_url+"】");

            $("#updateNewStatement").on("click",function(){
                layer.confirm("新增结算需要花费2分钟左右时间,并且只计算一个月内的新增结算,请勿在中途关闭页面,无需新增结算请取消",{title:false}, function(index){   
                    COMPARE.getNewStatement(function(){
                        COMPARE.updateNewStatement(function(){
                            MSG.showmsg("统计完成,等待跳转中....");
                            setTimeout(function(){
                                window.location.reload();
                            },2000)
                        });
                    });
                    layer.close(index);
                }); 
            })

            $(".viewStatement").click(function () {
                var id = $(this).data("id");
                var url = "{:U('viewStatement')}"+"&id="+id 
                layer.open({
                    type: 2,
                    title: "海南万盟天下科技有限公司",
                    shadeClose: true,
                    shade: 0.8,
                    area: ['70%', '80%'],
                    content: url
                });
            });
            $(".editStatement").click(function () {
                var id = $(this).data("id");
                var url = "{:U('editStatement')}"+"&id="+id 

                layer.open({
                    type: 2,
                    title: "海南万盟天下科技有限公司",
                    shadeClose: true,
                    shade: 0.8,
                    area: ['70%', '80%'],
                    content: url
                });
            });

            $("#verifyAgree,#verifyRefuse,#launch,#pool,#updateStatement").on("click",function(){
                var id = $(this).attr("id");
                if(id == "verifyAgree"){
                    var opname = "审批通过";
                    var opurl = "{:U('verifyAgree')}";
                    var opst ="[未进行审批]";
                    var status = [0];
                }else if(id=="verifyRefuse"){
                    var opname = "审批拒绝";
                    var opurl = "{:U('verifyRefuse')}";
                    var opst ="[未进行审批]";
                    var status = [0];
                }else if(id=="launch"){
                    var opname = "对外发起";
                    var opurl = "{:U('launch')}";
                    var opst ="[审批通过]";
                    var status = [1];
                }else if(id=="pool"){
                    var opname = "发起汇总";
                    var opurl = "{:U('pool')}";
                    var opst ="[合作方确认]";
                    var status = [3];
                }else if(id=="updateStatement"){
                    var opname = "重算金额";
                    var opurl = "{:U('updateStatement')}";
                    var opst ="[汇总撤销,审批拒绝,未进行审批,审批通过,对外发起]";
                    var status = [-2,-1,0,1,2];
                    var confirm = true;
                }
                var confirm = confirm ? confirm :false;
                var flag = false;
                var text = $("input:checkbox[name='ids[]']:checked").map(function(index,elem) {
                    if($.inArray( $(elem).data("status"),status) == -1){
                        flag = true;
                    }else{
                        return $(elem).val();
                    }
                }).get();

                if(text.length > 40){
                    layer.msg("<font style='color:white'>" + '为保证效率暂不支持超过40条的批量操作' + "</font>");
                    return;
                }
                if(text.length < 1){
                    layer.msg("<font style='color:white'>" + '无需要'+opname+'的申请,仅'+opst+'状态可以进行'+opname+"</font>");
                    return;
                }
                text = text.join(",");

                if(flag){
                    layer.confirm(opname+"仅会对"+opst+"的申请进行处理,选择中包含其他的状态的申请将被忽略,点击取消停止操作",{title:false}, function(index){    
                        layer.close(index);
                        _doAgreeApply();                
                        
                    });  
                }else{
                    if(confirm){
                        layer.confirm('【警告】'+opname+'将不可回退,如需继续请点击确认', {
                            btn: ['确认','取消'],
                            title:false
                        }, function(index){
                            layer.close(index);
                            _doAgreeApply();
                        });
                    }else{
                        _doAgreeApply();
                    }
                    
                }
                function _doAgreeApply(){
                    //执行
                    layer.load(2);
                    $.ajax({
                        type: "POST",
                        url: opurl,
                        dataType: 'json',
                        async: true,
                        data: {ids:text},
                        success:function(data){
                            layer.closeAll('loading');
                            if(data.status==1){
                                layer.msg("<font style='color:white'>" + data.info + "</font>");
                                setTimeout(function(){
                                    window.location.reload();
                                },1500);
                            }else{
                                layer.msg("<font style='color:white'>" + data.info + "</font>");
                                return false;
                            }
                        }
                    });
                }
            })

            $("#export").click(function () {
                var text = $("input:checkbox[name='ids[]']:checked").map(function(index,elem) {
                    return $(elem).val();
                }).get();

                if(text.length > 20){
                    layer.msg("<font style='color:white'>" + '暂不支持超过20条的批量导出' + "</font>");
                    return;
                }
                if(text.length < 1){
                    layer.msg("<font style='color:white'>" + '请先选择要导出的结算单' + "</font>");
                    return;
                }
                for (var index = 0; index < text.length; index++) {
                    var id = text[index];
                    var url ="{:U('export')}"+"&id="+id;
                    var iframeExcel = "<iframe src='"+url+"' width='0px' height='0px' style='z-index:-1;position: absolute;top: -999999px;'></iframe>"//添加下载的地址到iframe,这里是公司信息,我用**表示了。
                    $("body").append(iframeExcel)
                }
            })
            //新增批注
            $(".addRemark").click(function(){
                var id = $(this).data("id");
                layer.prompt({
                    formType: 2,
                    value: '',
                    title: '输入备注',
                    area: ['360px', '300px'] //自定义文本域宽高
                    }, function(value, index, elem){
                        if(value != ''){
                            $.ajax({
                                type: "POST",
                                url: "{:U('saveRemark')}",
                                dataType: 'json',
                                async: true,
                                data: {id:id,remark:value},
                                success:function(data){
                                    if(data.status==1){
                                        layer.msg("<font style='color:white'>" + data.info + "</font>");
                                        setTimeout(function(){
                                            window.location.reload();
                                        },1500);
                                    }
                                }
                            });
                        }else{
                            layer.closeAll();
                        }
                    });
            })
            //编辑批注
            $(".editRemark").click(function(){
                var id = $(this).data("id");
                var remark = $(this).data("remark");
                layer.prompt({
                    formType: 2,
                    title: '修改备注',
                    value:remark,
                    area: ['360px', '300px'],
                    btnAlign: 'c',
                    id: 'prompt',
                    yes: function (index, layero) {
                        // 获取文本框输入的值
                        var value = layero.find(".layui-layer-input").val();
                        $.ajax({
                            type: "POST",
                            url: "{:U('saveRemark')}",
                            dataType: 'json',
                            async: true,
                            data: {id:id,remark:value},
                            success:function(data){
                                if(data.status==1){
                                    layer.msg("<font style='color:white'>" + data.info + "</font>");
                                    setTimeout(function(){
                                        window.location.reload();
                                    },1500);
                                }
                            }
                        });
                    }
                });
            })
            //查看批注
            $(".viewRemark").click(function () {
                var remark = $(this).data("remark");
                layer.open({
                    type: 1,
                    title:false,
                    content:"<div style='width: 300;height:auto;margin: auto;padding:20px;'>"+remark+"</div>"
                });
            });



            $("#search").click(function(){

                var start = $("#time_start").val();
                var end =   $("#time_end").val();
                if(start !='' && end != ''){
                    if (Date.parse(start) > Date.parse(end)){
                        layer.msg('开始时间必须小于等于结束时间');
                        return false;
                    }
                }

                var url = $(this).attr('url');
                var query  = $('.jssearch').find('input').serialize();
                query  += "&"+$('.jssearch').find('select').serialize();
                query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
                query = query.replace(/^&/g,'');
                if( url.indexOf('?')>0 ){
                    url += '&' + query;
                }else{
                    url += '?' + query;
                }
                window.location.href = url;
            });

            $('#time_start').datetimepicker({
                format: 'yyyy-mm-dd',
                language: "zh-CN",
                minView: 2,
                autoclose: true
            });

            $('#datetimepicker').datetimepicker({
                format: 'yyyy-mm-dd',
                language: "zh-CN",
                minView: 2,
                autoclose: true,
                pickerPosition: 'bottom-left'
            })
            $('#time_start2').datetimepicker({
                format: 'yyyy-mm-dd',
                language: "zh-CN",
                minView: 2,
                autoclose: true
            });

            $('#datetimepicker2').datetimepicker({
                format: 'yyyy-mm-dd',
                language: "zh-CN",
                minView: 2,
                autoclose: true,
                pickerPosition: 'bottom-left'
            })

           
            //回车自动提交
            $('.jssearch').find('input').keyup(function(event){
                if(event.keyCode===13){
                    $("#search").click();
                }
            });
    
        })


    </script>
</block>