Files
OMS/app/finance/lib/io/bill/process/yihaodian.php
2025-12-28 23:13:25 +08:00

314 lines
12 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Copyright © ShopeX http://www.shopex.cn. All rights reserved.
* See LICENSE file for license details.
*/
class finance_io_bill_process_yihaodian{
public function structure_import_data(&$mdl,$row,&$format_row=array(),&$result){
if( $row == null ){
$result['status'] = 'success';
}else{
if( $row['group'] == 1 ){
//组织数据
$format_row = array(
'goods_bn' => trim($row['data']['商品编号']),
'order_bn' => trim($row['data']['订单号']),
'sale' => trim($row['data']['销售额']),
'refund' => trim($row['data']['退款额']),
'fee' => trim($row['data']['佣金']),
'ship' => trim($row['data']['配送费']),
'date' => trim($row['data']['可结算日期']),
'is_js' => trim($row['data']['是否已结款']),
'js_type' => trim($row['data']['结算类型']),
);
}
}
}
/**
* 检查ing_import_data
* @param mixed $mdl mdl
* @param mixed $row row
* @param mixed $result result
* @return mixed 返回验证结果
*/
public function checking_import_data(&$mdl,$row,&$result){
if( $row == null ){
$result['status'] = 'success';
}else{
if($row['group'] == 1) {
if($row['data']['is_js'] == '已结款'){
//基础数据验证
$result = $this->field_verify($row,$mdl);
}
}
}
}
/**
* finish_import_data
* @param mixed $mdl mdl
* @param mixed $row row
* @param mixed $result result
* @return mixed 返回值
*/
public function finish_import_data(&$mdl,$row,&$result){
if( $row == null ){
$result['status'] = 'success';
}else{
if( $row['group'] == 1 ){
if($row['data']['is_js'] == '已结款'){
//数据验证
$result = $this->field_verify($row,$mdl);
//数据保存
$order = finance_io_bill_func::order_is_exists($row['data']['order_bn']);
$shop = finance_io_bill_func::getShopByShopID($order['shop_id']);
$sdf = array(
'order_bn' => $row['data']['order_bn'],
'channel_id' => $shop['shop_id'],
'channel_name' => $shop['name'],
'trade_time' => $row['data']['date'],
'fee_obj' => '一号店',
'money' => '',
'fee_item' => '',
'member' => '一号店',
'credential_number' => '',
);
//货款(收入)
if($row['data']['sale'] != '' && $row['data']['sale'] != '0' && $row['data']['js_type'] == '普通结算'){
$sdf1 = $sdf;
$sdf1['money'] = $row['data']['sale'];
$sdf1['fee_item'] = '销售收款';
$sdf1['unique_id'] = finance_func::unique_id(array(
$row['data']['goods_bn'],
$row['data']['order_bn'],
$sdf1['fee_item'],
));
$rs = finance_io_bill_func::save($sdf1);
if($rs['status'] == 'fail'){
$result['status'] = 'fail';
$result['msg'][ $row['inline'] ] .= $rs['msg']?$rs['msg'].'|':'';
}
}
//货款(支出)
if($row['data']['refund'] != '' && $row['data']['refund'] != '0' && $row['data']['js_type'] == '退换货结算'){
$sdf2 = $sdf;
$sdf2['money'] = '-'.$row['data']['refund'];
$sdf2['fee_item'] = '销售退款';
$sdf2['unique_id'] = finance_func::unique_id(array(
$row['data']['goods_bn'],
$row['data']['order_bn'],
$sdf2['fee_item'],
));
$rs = finance_io_bill_func::save($sdf2);
if($rs['status'] == 'fail'){
$result['status'] = 'fail';
$result['msg'][ $row['inline'] ] .= $rs['msg']?$rs['msg'].'|':'';
}
}
//佣金
if($row['data']['fee'] != '' && $row['data']['fee'] != '0'){
$sdf3 = $sdf;
$sdf3['money'] = $row['data']['fee'];
$sdf3['fee_item'] = '佣金';
$sdf3['unique_id'] = finance_func::unique_id(array(
$row['data']['goods_bn'],
$row['data']['order_bn'],
$sdf3['fee_item'],
));
$rs = finance_io_bill_func::save($sdf3);
if($rs['status'] == 'fail'){
$result['status'] = 'fail';
$result['msg'][ $row['inline'] ] .= $rs['msg']?$rs['msg'].'|':'';
}
}
//配送费
if($row['data']['ship'] != '' && $row['data']['ship'] != '0'){
$sdf4 = $sdf;
$sdf4['money'] = $row['data']['ship'];
$sdf4['fee_item'] = '物流费';
$sdf4['unique_id'] = finance_func::unique_id(array(
$row['data']['goods_bn'],
$row['data']['order_bn'],
$sdf4['fee_item'],
));
$rs = finance_io_bill_func::save($sdf4);
if($rs['status'] == 'fail'){
$result['status'] = 'fail';
$result['msg'][ $row['inline'] ] .= $rs['msg']?$rs['msg'].'|':'';
}
}
}
}
}
}
private function field_verify($row,$mdl){
$result = array();
$inline = $row['inline'];
$data = $row['data'];
#订单号是否存在验证
$rs = finance_io_bill_verify::isOrder($data['order_bn'],'订单号不存在');
if($rs['status'] == 'fail'){
$result['msg'][ $inline ] .= $rs['msg'].'|';
$result['status'] = 'fail';
}
#销售额验证
$rs = finance_io_bill_verify::isPrice($data['sale'],'销售额格式错误');
if($rs['status'] == 'fail'){
$result['msg'][ $inline ] .= $rs['msg'].'|';
$result['status'] = 'fail';
}
#退款额验证
$rs = finance_io_bill_verify::isPrice($data['refund'],'退款额格式错误');
if($rs['status'] == 'fail'){
$result['msg'][ $inline ] .= $rs['msg'].'|';
$result['status'] = 'fail';
}
#佣金验证
$rs = finance_io_bill_verify::isPrice($data['fee'],'佣金格式错误');
if($rs['status'] == 'fail'){
$result['msg'][ $inline ] .= $rs['msg'].'|';
$result['status'] = 'fail';
}
#配送费验证
$rs = finance_io_bill_verify::isPrice($data['ship'],'配送费格式错误');
if($rs['status'] == 'fail'){
$result['msg'][ $inline ] .= $rs['msg'].'|';
$result['status'] = 'fail';
}
#日期验证
if($data['date']!=''){
$rs = finance_io_bill_verify::isDate($data['date'],'可结算日期格式错误');
if($rs['status'] == 'fail'){
$result['msg'][ $inline ] .= $rs['msg'].'|';
$result['status'] = 'fail';
}
}
#账期验证
$rs = finance_io_bill_verify::isTaskCheckInitTime($data['date'],$mdl->_import_func->task_id);
if($rs['status'] == 'fail'){
$result['msg'][ $inline ] .= $rs['msg'].'|';
$result['status'] = 'fail';
}
return $result;
}
/**
* 读取到的数据格式化
*
* @param Object $mdl MODEL层对象
* @param Array $row 读取一行
* @return void
* @author
**/
public function getSDf(&$mdl,$row,&$mark)
{
if(!$row) return false;
static $oldKey;
static $title;
if (!$oldKey) {
$title = finance_io_bill_title::getTitle('yihaodian');
# 读取文件标题,并记录它的位置
foreach ($title as $key => $value) {
$pCol = array_search($value, $row,true);
if ($pCol === false) {
$oldKey = '';
return false;
}
$oldKey[$key] = $pCol;
}
$mark = 'title';
return $title;
}
$mark = 'contents';
# 读取数据
foreach ($oldKey as $column => $pCol) {
$tmp[$column] = $row[$pCol];
}
if ($tmp['is_js'] != '已结款') {
return false;
}
$base_sdf = array(
'order_bn' => $tmp['order_bn'],
'channel_id' => '',
'channel_name' => '',
'trade_time' => $tmp['date'],
'fee_obj' => '一号店',
'money' => '',
'fee_item' => '',
'member' => '一号店',
'credential_number' => '',
);
$sdf = array();
// 货款(收入)--过滤掉金额为零的信息
if ( !empty( $tmp['sale'] ) && $tmp['js_type'] == '普通结算') {
$unique_id = finance_func::unique_id(array(
$tmp['goods_bn'],
$tmp['order_bn'],
'销售收款',
));
$sdf[] = array_merge($base_sdf,array('money'=>$tmp['sale'],'fee_item'=>'销售收款','unique_id'=>$unique_id));
}
// 货款(支出)--过滤掉金额为零的信息
if ( !empty( $tmp['refund'] ) && $tmp['js_type'] == '退换货结算') {
$unique_id = finance_func::unique_id(array(
$tmp['goods_bn'],
$tmp['order_bn'],
'销售退款',
));
$sdf[] = array_merge($base_sdf,array('money'=>'-'.$tmp['refund'],'fee_item'=>'销售退款','unique_id'=>$unique_id));
}
// 佣金--过滤掉金额为零的信息
if ( !empty( $tmp['fee'] ) ) {
$unique_id = finance_func::unique_id(array(
$tmp['goods_bn'],
$tmp['order_bn'],
'佣金',
));
$sdf[] = array_merge($base_sdf,array('money'=>$tmp['fee'],'fee_item'=>'佣金','unique_id'=>$unique_id));
}
// 物流费--过滤掉金额为零的信息
if ( !empty( $tmp['ship'] ) ) {
$unique_id = finance_func::unique_id(array(
$tmp['goods_bn'],
$tmp['order_bn'],
'物流费',
));
$sdf[] = array_merge($base_sdf,array('money'=>$tmp['ship'],'fee_item'=>'物流费','unique_id'=>$unique_id));
}
return $sdf;
}
}
?>