col_prefix.'bill_number'];
$status = $row[$this->col_prefix.'status'];
$sync_status = $row[$this->col_prefix.'sync_status'];
$discount_sync_status = $row[$this->col_prefix.'discount_sync_status'];
$detail_sync_status = $row[$this->col_prefix.'detail_sync_status'];
$id = $row['id'];
$confirmBtn = "确认";
$btn = [];
if($status == '0' && $sync_status == '2' && $discount_sync_status == '2' && $detail_sync_status=='2') {
$btn[] = $confirmBtn;
}
$itemBtn = <<获取明细
HTML;
if($status == '0') {
$btn[] = $itemBtn;
}
return implode(' | ', $btn);
}
public $detail_basic = '账单总览';
/**
* detail_basic
* @param mixed $id ID
* @return mixed 返回值
*/
public function detail_basic($id){
$render = app::get('vop')->render();
$discountMdl = app::get('vop')->model('source_discount');
$discounts = $discountMdl->db->selectrow("SELECT sum(datasign*bill_amount) as dis_total_amount, sum(final_total_amount) as dis_amount,sum(datasign*total_bill_amount*tax_rate) as rate_amount FROM sdb_vop_source_discount WHERE bill_id=".$id." AND detail_line_type like '%DISCOUNT%'");
$discounts['dis_total_amount'] = sprintf('%.3f',$discounts['dis_total_amount']);
$discounts['dis_amount'] = sprintf('%.2f',$discounts['dis_amount']);
$discounts['rate_amount'] = sprintf('%.2f',$discounts['rate_amount']);
$render->pagedata['discounts'] = $discounts;
$insures = $discountMdl->db->selectrow("SELECT sum(datasign*bill_amount) as insure_total_amount,sum(final_total_amount) as insure_amount,sum(datasign*total_bill_amount*tax_rate) as rate_amount FROM sdb_vop_source_discount WHERE bill_id=".$id." AND detail_line_type like '%INSURE%'");
$insures['insure_total_amount'] = sprintf('%.3f',$insures['insure_total_amount']);
$insures['insure_amount'] = sprintf('%.2f',$insures['insure_amount']);
$insures['rate_amount'] = sprintf('%.2f',$insures['rate_amount']);
$render->pagedata['insures'] = $insures;
$vopbillMdl = app::get('vop')->model('bill');
$vopbills = $vopbillMdl->dump($id,'*');
$render->pagedata['vopbills'] = $vopbills;
$goods = $discountMdl->db->select("SELECT sum(datasign*bill_amount) as sum_bill_amount,sum(final_total_amount) as total_bill_amount,sum(datasign*payable_quantity) as total_quantity,detail_line_type,sum(datasign*total_bill_amount*tax_rate) as rate_amount FROM sdb_vop_source_billgoods WHERE bill_id=".$id." group by detail_line_type");
$objMath = kernel::single('eccommon_math');
$goods = array_column($goods,null,'detail_line_type');
foreach($goods as &$v){
$v['sum_bill_amount'] = sprintf('%.2f',$v['sum_bill_amount']);
$v['total_bill_amount'] = sprintf('%.3f',$v['total_bill_amount']);
$v['rate_amount'] = sprintf('%.2f',$v['rate_amount']);
}
$render->pagedata['goods'] = $goods;
$total_qty = $objMath->number_minus(array($vopbills['cr_cust_quantity'], $vopbills['dr_cust_quantity']));
$total_qty = $objMath->number_plus( array($total_qty, $vopbills['other_quantity']) );
$render->pagedata['total_qty'] = $total_qty;
$details = kernel::single('vop_bill')->getDetail($id);
$total_amount = $objMath->number_plus(array($goods['CR_CUST']['total_bill_amount'], $goods['DR_CUST']['total_bill_amount'],$goods['OTHER']['total_bill_amount']));
$total_amount = $objMath->number_plus(array($total_amount,$discounts['dis_amount'],$insures['insure_amount']));
$total_amount = $objMath->number_plus(array($total_amount,$details['reship_amount']));
$total_amount = $objMath->number_plus(array($total_amount,$details['refund_amount']));
$render->pagedata['total_amount'] = $total_amount;
$render->pagedata['details'] = $details;
return $render->fetch('admin/vop/bill_basic.html');
}
public $detail_amount = 'PO账单';
/**
* detail_amount
* @param mixed $id ID
* @return mixed 返回值
*/
public function detail_amount($id)
{
$render = app::get('vop')->render();
$poObj = app::get('vop')->model('po');
$items = $poObj->getList('*', ['bill_id' => $id]);
$render->pagedata['lines'] = [
'header' => $poObj->_columns(),
'body' => $items,
];
return $render->fetch('finder/detail.html', 'desktop');
}
public $column_get_count = '获取货款行数';
public $column_get_count_width = '80';
/**
* column_get_count
* @param mixed $row row
* @return mixed 返回值
*/
public function column_get_count($row)
{
$count = $row[$this->col_prefix . 'get_count'];
$bill_id = $row[$this->col_prefix . 'id'];
return "" . $count . "";
}
public $column_get_detail_count = '获取费用项行数';
public $column_get_detail_count_width = '80';
/**
* column_get_detail_count
* @param mixed $row row
* @return mixed 返回值
*/
public function column_get_detail_count($row)
{
$count = $row[$this->col_prefix . 'get_detail_count'];
$bill_id = $row[$this->col_prefix . 'id'];
return "" . $count . "";
}
public $column_get_discount_count = '获取折扣行数';
public $column_get_discount_count_width = '80';
/**
* column_get_discount_count
* @param mixed $row row
* @return mixed 返回值
*/
public function column_get_discount_count($row)
{
$count = $row[$this->col_prefix . 'get_discount_count'];
$bill_id = $row[$this->col_prefix . 'id'];
return "" . $count . "";
}
public $detail_oplog = "操作记录";
/**
* detail_oplog
* @param mixed $id ID
* @return mixed 返回值
*/
public function detail_oplog($id){
$render = app::get('vop')->render();
$opObj = app::get('ome')->model('operation_log');
$logdata = $opObj->read_log(array('obj_id'=>$id,'obj_type'=>'bill@vop'), 0, -1);
foreach($logdata as $k=>$v){
$logdata[$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
}
$render->pagedata['logs'] = $logdata;
return $render->fetch('admin/vop/logs.html');
}
}