Files
OMS/app/finance/lib/ar/item.php
2026-01-04 19:08:31 +08:00

147 lines
6.3 KiB
PHP

<?php
/**
* Copyright 2012-2026 ShopeX (https://www.shopex.cn)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class finance_ar_item extends eccommon_analysis_abstract implements eccommon_analysis_interface{
public $detail_options = array(
'hidden' => true,
);
public $graph_options = array(
'hidden' => true,
);
public $type_options = array(
'display' => 'true',
);
function __construct(&$app)
{
parent::__construct($app);
$this->_render = kernel::single('desktop_controller');
for($i=0;$i<=5;$i++){
if ($i == 1) continue;
$val = $i+1;
$this->_render->pagedata['time_shortcut'][$i] = $val;
}
$shopObj = &app::get('ome')->model('shop');
$shopdata = $shopObj->getList('name,shop_id');
$statistics['qcys'] = $this->statistics_qcys($_POST);#期初应收统计
$statistics['bqys'] = $this->statistics_bqys($_POST);#本期应收统计
$statistics['bqss'] = $this->statistics_bqss($_POST);#本期实收统计
$statistics['qmys'] = sprintf("%01.2f",($statistics['qcys']+$statistics['bqys'])-$statistics['bqss']);#期末应收统计
$this->_render->pagedata['statistics']= $statistics;
$this->_render->pagedata['shopdata']= $shopdata;
$this->_render->pagedata['shop_id']= $_POST['shop_id'] ? $_POST['shop_id'] : '0';
$this->_extra_view = array('finance' => 'ar/item.html');
}
/**
* 查找er
* @return mixed 返回结果
*/
public function finder(){
$this->export_href = 'index.php?app=finance&ctl=ar_item&act=index&action=export';
$params = array(
'model' => 'finance_mdl_ar_statistics',
'params' => array(
'actions'=>array(
array(
'label' => '导出',
'href' => $this->export_href,
'target' => '{width:600,height:300,title:\'导出\'}',
//'id'=>'export_id',
'class'=>'export',
),
),
'title'=>'销售到账明细<script>if($$(".finder-list").getElement("tbody").get("html") == "\n" || $$(".finder-list").getElement("tbody").get("html") == "" ){$$(".export").set("href","javascript:;").set("onclick", "alert(\"没有可以生成的数据\")");}else{$$(".export").set("href",\'index.php?app=finance&ctl=ar_item&act=index&action=export\');}</script>',
'use_buildin_recycle'=>false,
'use_buildin_selectrow'=>false,
'use_buildin_filter'=>false,
'finder_aliasname'=>'item_ar',
'finder_cols'=>'ar_bn,trade_time,member,type,order_bn,channel_name,column_items_nums,money,column_fee_money,column_qcys,cloumn_bqys,cloumn_bqss,cloumn_qmys',
),
);
#增加财务导出权限
$is_export = kernel::single('desktop_user')->has_permission('finance_export');
if(!$is_export){
unset($params['params']['actions']);
}
return $params;
}
function export_href()
{
$base_href = $this->export_href;
$str = <<<EOF
<script>
$('export_id').href="{$base_href}";
$('export_id').addEvent('click',function(){var finder_id = $('workground').getElement('input[name^=_finder[finder_id]');
var filter_input = $('finder-filter-'+finder_id.value);
if(filter_input){
$('export_id').href="{$base_href}"+"&"+filter_input.value+"&export_href=true";
}
});
</script>
EOF;
return $str;
}
//统计期初应收金额
public function statistics_qcys($filter = array()){
$where = ' 1 ';
if(isset($filter['shop_id']) && $filter['shop_id']!='0'){
$where .= " AND channel_id = '".$filter['shop_id']."'";
unset($filter['shop_id']);
}
if(isset($filter['time_from']) && $filter['time_from']!=''){
$where .= " AND trade_time < ".strtotime($filter['time_from']);
unset($filter['time_from']);
}
$statistics_qcys_sql = 'SELECT SUM(money) as money FROM sdb_finance_ar WHERE '.$where;
$statistics_qcys_verification_sql = 'SELECT SUM(money) as money FROM sdb_finance_verification_items WHERE type=0 AND bill_id in(SELECT ar_id as bill_id FROM sdb_finance_ar WHERE '.$where.')';
$statistics_qcys = kernel::database()->select($statistics_qcys_sql);
$statistics_qcys_verification = kernel::database()->select($statistics_qcys_verification_sql);
$qcys = sprintf("%01.2f",$statistics_qcys[0]['money'] - $statistics_qcys_verification[0]['money']);
return $qcys;
}
//统计本期应收金额
public function statistics_bqys($filter = array()){
$ar_statistics_mdl = app::get('finance')->model('ar_statistics');
$statistics_bqys_sql = 'SELECT SUM(money) as money FROM sdb_finance_ar WHERE '.$ar_statistics_mdl->statistics_filter($filter );
$statistics_bqys = kernel::database()->select($statistics_bqys_sql);
$bqys = sprintf("%01.2f",$statistics_bqys[0]['money']);
return $bqys;
}
//统计本期实收金额
public function statistics_bqss($filter = array()){
$ar_statistics_mdl = app::get('finance')->model('ar_statistics');
$sql = 'SELECT ar_id as bill_id FROM sdb_finance_ar WHERE '.$ar_statistics_mdl->statistics_filter($filter );
$statistics_bqss_verification_sql = 'SELECT SUM(money) as money FROM sdb_finance_verification_items WHERE type=0 AND bill_id in('.$sql.')';
$statistics_bqss_verification = kernel::database()->select($statistics_bqss_verification_sql);
$bqss = sprintf("%01.2f",$statistics_bqss_verification[0]['money']);
return $bqss;
}
}