Files
OMS/app/archive/lib/transformocs/abstract.php
2025-12-28 23:13:25 +08:00

196 lines
7.8 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.
*/
abstract class archive_transformocs_abstract
{
static $productocs = array();
static $memberocs = array();
/**
* __construct
* @param mixed $config 配置
* @return mixed 返回值
*/
public function __construct($config){
$this->db = kernel::database();
$this->conn = mysql_pconnect($config[0], $config[1], $config[2])
or die ('Not connected : ' . mysql_error());
mysql_select_db($config[3], $this->conn) or die ('Can\'t use foo : ' . mysql_error());
mysql_query("set names 'utf8'");
}
/**
* 转换货品编号
* @param
* @return
* @access public
* @author sunjing@shopex.cn
*/
function transGoods($bn)
{
//转换货品
//
$productObj = app::get('ome')->model('products');
$product = $productObj->dump(array('bn'=>$bn),'product_id,goods_id,title,bn,name,spec_info,price,cost,mktprice,weight,barcode,unit,spec_desc,uptime,last_modified,disabled,marketable,sku_property,alert_store,limit_day,real_store_lastmodify,max_store_lastmodify,taobao_sku_id,picurl,type');
if ($product) {
return $product;
}else{
$productquery = mysql_query("SELECT product_id,goods_id,title,bn,name,spec_info,price,cost,mktprice,weight,barcode,unit,spec_desc,uptime,last_modified,disabled,marketable,sku_property,alert_store,limit_day,real_store_lastmodify,max_store_lastmodify,taobao_sku_id,picurl,type FROM sdb_ome_products WHERE bn='".$bn."'",$this->conn);
$product = mysql_fetch_assoc($productquery);
if ($product) {
$goods_id = $product['goods_id'];
$keys = 'bn,name,goods_type,brief,intro,barcode,mktprice,cost,price,marketable,weight,unit,score_setting,score,spec_desc,params,uptime,downtime,last_modify,disabled,p_order,d_order';
$goodsquery = mysql_query("SELECT ".$keys." FROM sdb_ome_goods WHERE goods_id=".$goods_id,$this->conn);
$goods = mysql_fetch_assoc($goodsquery);
//转换成存储格式
//查看goods是否存在
$goods_bn = $goods['bn'];
$goods_detail = $this->db->selectrow("SELECT goods_id FROM sdb_ome_goods WHERE bn='".$goods_bn."'");
if ($goods_detail) {
$erp_goods_id = $goods_detail['goods_id'];
}else{
$insertkey = explode(',',$keys);
$values = array();
foreach ($insertkey as $insertvalue ) {
$values[] = "'".$goods[$insertvalue]."'";
}
$values = "(".implode(',',$values).")";
$insertsql = "INSERT INTO sdb_ome_goods(".$keys.") VALUE".$values;
$this->db->exec($insertsql);
$erp_goods_id = $this->db->lastinsertid();
}
$product_keys = 'goods_id,title,bn,name,spec_info,price,cost,mktprice,weight,barcode,unit,spec_desc,uptime,last_modified,disabled,marketable,sku_property,alert_store,limit_day,real_store_lastmodify,max_store_lastmodify,taobao_sku_id,picurl,type';
$insertproductkeys = explode(',',$product_keys);
$productvalues = array();
foreach ($insertproductkeys as $product_value ) {
if ($product_value == 'goods_id') {
$productvalues[] = '\''.$erp_goods_id.'\'';
}else{
$productvalues[] = "'".$product[$product_value]."'";
}
}
$productvalues = "(".implode(',',$productvalues).")";
$insertprodutsql = "INSERT INTO sdb_ome_products(".$product_keys.") VALUE".$productvalues;
$this->db->exec($insertprodutsql);
$product_id= $this->db->lastinsertid();
$products = array('product_id'=>$product_id,'goods_id'=>$erp_goods_id);
}else{
$products = array('product_id'=>0,'goods_id'=>0); //找不到的货品当0处理?
}
return $products;
}
}
/**
* 根据货号获取ID.
* @param
* @return
* @access public
* @author sunjing@shopex.cn
*/
function getProduct($bn)
{
if (!self::$productocs[$bn]) {
$products = $this->transGoods($bn);
self::$productocs[$bn] = $products;
}
return self::$productocs[$bn] ? self::$productocs[$bn] : 0;
}
/**
* 转换会员
* @param
* @return
* @access public
* @author sunjing@shopex.cn
*/
function transMember($member_id)
{
$memberObj = app::get('ome')->model('members');
$member = $memberObj->dump(array('unreadmsg'=>$member_id),'*');
$erpmember_id = 0;
if (!$member) {
$query = mysql_query("SELECT * FROM sdb_ome_members WHERE member_id=".$member_id,$this->conn);
if ($query) {
$members = mysql_fetch_assoc($query);
if ($members) {
$keys = 'uname,name,lastname,firstname,password,area,addr,mobile,tel,email,zip,order_num,b_year,b_month,b_day,sex,addon,wedlock,education,vocation,interest,regtime,state,pay_time,pw_answer,pw_question,custom,cur,lang,unreadmsg,disabled,remark,is_offical_member,is_customer';
$insertkey = explode(',',$keys);
$values = array();
foreach ($insertkey as $insertvalue ) {
if ($insertvalue == 'unreadmsg') {
$insertvalue='member_id';
}
$values[] = "'".$members[$insertvalue]."'";
}
$values = "(".implode(',',$values).")";
$insertsql = "INSERT INTO sdb_ome_members(".$keys.") VALUE".$values;
$this->db->exec($insertsql);
$erpmember_id = $this->db->lastinsertid();
}
}
}else{
$erpmember_id = $member['member_id'];
}
return $erpmember_id;
}
/**
* 获取Memberid
* @param mixed $member_id ID
* @return mixed 返回结果
*/
public function getMemberid($member_id)
{
if (!self::$memberocs[$member_id]) {
self::$memberocs[$member_id] = $this->transMember($member_id);
}
return self::$memberocs[$member_id];
}
function copyTables($keys,$datarow)
{
$order_key = explode(',',$keys);
$values = array();
foreach ($order_key as $ordervalue ) {
$ordervalue = str_replace('`','',$ordervalue);
$datavalue = $datarow[$ordervalue];
if (is_string($datavalue)) {
$datavalue = addslashes($datavalue);
}
$values[] = "'".$datavalue."'";
}
$values = "(".implode(',',$values).")";
return $values;
}
}
?>