* @version 0.1
*/
class invoice_common{
//通过order_id获取对应的发票信息
public function getInvoiceInfoByOrderId($order_id,$type="all",$limit_one=true){
if(!$order_id){
return false;
}
$mdlInOrder = app::get('invoice')->model('order');
$arr_filter = array('order_id'=>$order_id);
//未作废(即未开票/已开票)
if($type == 'effective'){
$arr_filter["is_status|in"] = array("0","1");
}
//是否限制获取一条记录
if($limit_one){
$rs_info = $mdlInOrder->getList('*', $arr_filter, 0, 1, 'id DESC');
}else{
$rs_info = $mdlInOrder->getList('*', $arr_filter);
}
if(empty($rs_info)){
return false;
}
return $rs_info;
}
//依据is_status获取对应的文字描述
public function getIsStatusText($is_status){
switch ($is_status){
case '0':
$return_text = '未开票';
break;
case '1':
$return_text = '已开票';
break;
case '2':
$return_text = '已作废';
break;
}
return $return_text;
}
//依据mode获取对应的文字描述
public function getModeText($mode){
switch ($mode){
case '0':
$return_text = '纸质发票';
break;
case '1':
$return_text = '电子发票';
break;
}
return $return_text;
}
//通过shop_id获取当前店铺发票配置信息
public function getInvoiceOrderSet($shop_id){
if(!$shop_id){
return false;
}
$mdlInOrderSet = app::get('invoice')->model('order_setting');
$rs_setting = $mdlInOrderSet->dump(array("shop_id"=>$shop_id));
if($rs_setting){
return $rs_setting;
}else{
return false;
}
}
//获取发票内容列表
public function getInvoiceContent(){
$mdlInContent = app::get('invoice')->model('content');
$rs_invoice_content = $mdlInContent->getList();
return $rs_invoice_content;
}
//u id获取u name
function getUserNameByUserID($uid){
if(!$uid){
return false;
}
$filter = array('user_id'=>intval($uid));
$rows = app::get('desktop')->model('users')->dump($filter,'user_id, name');
return $rows;
}
//打电子发票接口 获取shop_type 判断是否是天猫店
function returnEinvoiceShopType($shop_info){
if(strtoupper($shop_info["tbbusiness_type"]) == "B" && $shop_info["shop_type"] == "taobao"){
//天猫
return "tmall";
}else{
return $shop_info["shop_type"];
}
}
//打电子发票接口需要:通过shop_type映射出电商平台代码
function getPlatformByShopType($shop_type){
$platform_list = array(
"taobao" => "TB",
"tmall" => "TM",
"360buy" => "JD",
"dangdang" => "DD",
"paipai" => "PP",
"qq_buy" => "QQ",
"amazon" => "AMAZON",
"suning" => "SN",
"gome" => "GM",
"guomei" => "GM",
"vop" => "WPH",
"mogujie" => "MGJ",
"yintai" => "YT",
"yihaodian" => "YHD",
"vjia" => "VANCL",
"alibaba" => "1688",
);
$platform_code = $platform_list[$shop_type];
if(!$platform_code && $shop_type){
$platform_code = "OTHER";
}
return $platform_code;
}
//taobao系 获取上传天猫的link
function get_upload_link($id,$shop_id,$order_id,$finder_id,$billing_type){
//获取shop_type
$mdlOmeShop = app::get('ome')->model('shop');
$rs_shop = $mdlOmeShop->dump(array("shop_id"=>$shop_id));
//不是淘宝系订单 不显示上传link
if($rs_shop["shop_type"] != "taobao"){
return;
}
//判断当前红/蓝票是否已经上传
$mdlInOrderElIt = app::get('invoice')->model('order_electronic_items');
$rs_item = $mdlInOrderElIt->dump(array("id"=>$id,"billing_type"=>$billing_type));
if($rs_item["upload_tmall_status"] == "2"){
return;
}
//打prepare接口 区分link 并且现不用再判断是蓝是红 不用再判断返回link的条件 外层已判
// $doUploadTmall_link = sprintf('上传', $id, $finder_id);
$uploadTmall_link_first_blue = '上传';
$uploadTmall_link_other = '上传';
//是否是第一次开蓝票 where条件说明:理论上如果存在这样的发票记录肯定sync是6冲红成功 这里大于2必定要开蓝成功
$mdlInOrder = app::get('invoice')->model('order');
$same_order_invoice = $mdlInOrder->dump(array("id|noequal"=>$id,"order_id"=>$order_id,"mode"=>1,"sync|than"=>2));
if(empty($same_order_invoice) && $billing_type == 1){
return $uploadTmall_link_first_blue; //第一次开蓝票 不用选择 选择 作废或重开原因 直接上传
}else{
return $uploadTmall_link_other;
}
}
//通过shop_id获取当前店铺发票配置信息
public function getInOrderSetByShopId($shop_id,$mode){
if(!$shop_id){
return false;
}
$mdlInSetShopIdRel = app::get('invoice')->model('setting_shopid_relation');
$mdlInOrderSet = app::get('invoice')->model('order_setting');
//通过关系表获取开票配置的主键sid
$rs_rel = $mdlInSetShopIdRel->dump(array("shop_id"=>$shop_id));
if(empty($rs_rel)){
return false;
}
//获取开启状态下的开票信息(纸质mode为0和电子mode为1)
$rs_setting = $mdlInOrderSet->dump(array("sid"=>$rs_rel["sid"],"status"=>"true","mode"=>$mode));
if($rs_setting){
return $rs_setting;
}else{
return false;
}
}
}