HEX
Server: Apache
System: Linux 4485441ca2e2 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 11:03:07 UTC 2025 aarch64
User: (1000)
PHP: 8.2.24
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/ganryu_shop/model/Purchase.php
<?php

require_once dirname(__FILE__).'/Abstract.php';

class ganryu_shop_model_Purchase extends ganryu_shop_model_Abstract{

	function purchaseCode($pid){
		return 'GRY'.sprintf('%010d', $pid);
	}
	
	
	function createPurchaseForCredit(){
		$tbl = $this->tablename('purchase_log');
		$dummycode = microtime().'.'.rand(10000,99999);
		$sql = "
			insert into $tbl(
				purchasecode,
				paytype,
				status,
				payment_status,
				deliv_status,
				create_date,
				modify_date
			)
			values(
				:purchasecode,
				1,
				0,
				1,
				1,
				now(),
				now()
			)
		";
		$bind = array(
			'purchasecode'=>$dummycode,
		);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		
		$pid = $this->lastId();
		
		$pcode = $this->purchaseCode($pid);
		
		$sql  ="
			update $tbl set
				purchasecode = :purchasecode
			where
				purchaseid = :purchaseid
		";
		$bind = array('purchasecode'=>$pcode, 'purchaseid'=>$pid);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		return array('purchaseid'=>$pid, 'purchasecode'=>$pcode, 'paytype'=>1);
	}


	function createPurchase($userid, $data, $itemlist){
		$tbl = $this->tablename('purchase_log');
		
		$epscode = null;
		$eps_paymedia = null;
		if (isset($data['pay_purchasecode']) && $data['pay_purchasecode']){
			$epscode = $data['pay_purchasecode'];
			$eps_paymedia = $data['pay_media'];
		}
		
		if ($epscode){
			$sql = "
				select
					purchaseid,
					status
				from
					$tbl
				where
					purchasecode = :code
			";
			$bind = array('code'=>$epscode);
			$res = $this->selectRow($sql, $bind);
			if (!$res){
				return false;
			}
			if ($res['status'] != 0){
				return false;
			}
			$pid = $res['purchaseid'];
			
			$addw = "";
			if ($data['payment_status'] == 2){
				$addw = ",payment_date = now()";
			}
			
			$sql = "
				update $tbl set
					userid = :userid,
					paytype = :paytype,
	
					memo = :memo,
					status = 1,
					payment_status = :payment_status,
					deliv_status = 1,
					price_sum = :price_sum,
					price_tax_sum = :price_tax_sum,
					count_sum = :count_sum,
					get_point = :get_point,
					deliv_cost = :deliv_cost,
					extra_cost = :extra_cost,
					tax_cost = :tax_cost,
					pay_money = :pay_money,
					pay_point = :pay_point,
					email = :email,
					create_date = now(),
					modify_date = now(),
					payment_media = :payment_media,
					delivcost_separate_ticket = :delivcost_separate_ticket $addw
				where
					purchaseid = :pid
			";
			$bind = array(
				'pid'=>$pid,
				'userid'=>$userid,
				'paytype'=>$data['paytype'],
				'memo'=>$data['memo'],
				'payment_status'=>$data['payment_status'],
				'price_sum'=>$data['price_sum'],
				'price_tax_sum'=>$data['price_tax_sum'],
				'count_sum'=>$data['count_sum'],
				'get_point'=>$data['get_point'],
				'deliv_cost'=>$data['deliv_cost'],
				'extra_cost'=>$data['extra_cost'],
				'tax_cost'=>$data['tax_cost'],
				'pay_point'=>$data['pay_point'],
				'pay_money'=>$data['pay_money'],
				'email'=>isset($data['email'])?$data['email']:null,
				'payment_media'=>$eps_paymedia,
				'delivcost_separate_ticket'=>isset($data['delivcost_separate_ticket'])?$data['delivcost_separate_ticket']:null
			);
			$res = $this->query($sql, $bind);
			if (!$res){
				return false;
			}
		}
		else{
			$dummycode = microtime().'.'.rand(10000,99999);
			$sql = "
				insert into $tbl(
					purchasecode,
					userid,
					paytype,
	
					memo,
					status,
					payment_status,
					deliv_status,
					price_sum,
					price_tax_sum,
					count_sum,
					get_point,
					deliv_cost,
					extra_cost,
					tax_cost,
					pay_money,
					pay_point,
					email,
					create_date,
					modify_date,
					delivcost_separate_ticket
				)
				values(
					:purchasecode,
					:userid,
					:paytype,
	
					:memo,
					1,
					:payment_status,
					1,
					:price_sum,
					:price_tax_sum,
					:count_sum,
					:get_point,
					:deliv_cost,
					:extra_cost,
					:tax_cost,
					:pay_money,
					:pay_point,
					:email,
					now(),
					now(),
					:delivcost_separate_ticket
				)
			";
			$bind = array(
				'purchasecode'=>$dummycode,
				'userid'=>$userid,
				'paytype'=>$data['paytype'],
				'memo'=>$data['memo'],
				'payment_status'=>$data['payment_status'],
				'price_sum'=>$data['price_sum'],
				'price_tax_sum'=>$data['price_tax_sum'],
				'count_sum'=>$data['count_sum'],
				'get_point'=>$data['get_point'],
				'deliv_cost'=>$data['deliv_cost'],
				'extra_cost'=>$data['extra_cost'],
				'tax_cost'=>$data['tax_cost'],
				'pay_point'=>$data['pay_point'],
				'pay_money'=>$data['pay_money'],
				'email'=>isset($data['email'])?$data['email']:null,
				'delivcost_separate_ticket'=>isset($data['delivcost_separate_ticket'])?$data['delivcost_separate_ticket']:null
			);
			$res = $this->query($sql, $bind);
			if (!$res){
				return false;
			}
		
			$pid = $this->lastId();
		
			$pcode = $this->purchaseCode($pid);
		
			$sql  ="
				update $tbl set
					purchasecode = :purchasecode
				where
					purchaseid = :purchaseid
			";
			$bind = array('purchasecode'=>$pcode, 'purchaseid'=>$pid);
			$res = $this->query($sql, $bind);
			if (!$res){
				return false;
			}
		}
/*		
		$tbl = $this->tablename("purchase_item_log");
		$sql = "
			insert into $tbl(
				purchaseid,
				itemid,
				subitemid,
				category1,
				category2,
				category3,
				num,
				price_unit,
				price_total,
				get_point
			)
			values(
				:purchaseid,
				:itemid,
				:subitemid,
				:category1,
				:category2,
				:category3,
				:num,
				:price_unit,
				:price_total,
				:get_point
			)
		";
		foreach ($itemlist as $itmdata){
			$bind = array(
				'purchaseid'=>$pid, 
				'itemid'=>$itmdata['item']['itemid'], 
				'subitemid'=>$itmdata['subitem']['subitemid'], 
				'category1'=>$itmdata['subitem']['category1'], 
				'category2'=>$itmdata['subitem']['category2'], 
				'category3'=>$itmdata['subitem']['category3'], 
				'num'=>$itmdata['num'], 
				'price_unit'=>$itmdata['subitem']['subprice'], 
				'price_total'=>$itmdata['subitem']['subprice']*$itmdata['num'],
				'get_point'=>$itmdata['point']
			);
			$res = $this->query($sql, $bind);
			if (!$res){
				return false;
			}
		}
*/
		$res = $this->updatePurchaseItem($pid, $itemlist);
		if (!$res){
			return false;
		}
		
		return array('purchaseid'=>$pid, 'purchasecode'=>$pcode, 'paytype'=>$data['paytype']);
	}
	
	function updatePurchaseDeliv($pid, $delivlist){
		$tbl = $this->tablename('purchase_deliv_log');
		
		$sql = "
			select
				delivid
			from
				$tbl
			where
				purchaseid = :pid
			order by delivno
		";
		$bind = array('pid'=>$pid);
		$res = $this->selectAll($sql, $bind);
		if ($res === false){
			return false;
		}
		$curids = $res;
		
		for($i = 0; $i < count($delivlist); $i++){
			$data = $delivlist[$i];
			if ($i >= count($curids)){
				$sql = "
					insert into $tbl(
						purchaseid,
						delivno,
						wish_day,
						wish_time,
						zip1,
						zip2,
						prefecture_code,
						address_1,
						address_2,
						company_name,
						tel1,
						tel2,
						tel3,
						address_name_sei,
						address_name_mei,
						address_name_kana_sei,
						address_name_kana_mei,
						itemcart,
						valid
					)
					values(
						:pid,
						:delivno,
						:wish_day,
						:wish_time,
						:zip1,
						:zip2,
						:prefecture_code,
						:address_1,
						:address_2,
						:company_name,
						:tel1,
						:tel2,
						:tel3,
						:address_name_sei,
						:address_name_mei,
						:address_name_kana_sei,
						:address_name_kana_mei,
						:itemcart,
						1
					)
				";
				$bind = array(
					'pid'=>$pid,
					'delivno'=>$i+1,
					'wish_day'=>$data['wish_day'],
					'wish_time'=>$data['wish_time'],
					'zip1'=>$data['zip1'],
					'zip2'=>$data['zip2'],
					'prefecture_code'=>$data['prefecture_code'],
					'address_1'=>$data['address_1'],
					'address_2'=>$data['address_2'],
					'tel1'=>$data['tel1'],
					'tel2'=>$data['tel2'],
					'tel3'=>$data['tel3'],
					'address_name_sei'=>$data['address_name_sei'],
					'address_name_mei'=>$data['address_name_mei'],
					'address_name_kana_sei'=>$data['address_name_kana_sei'],
					'address_name_kana_mei'=>$data['address_name_kana_mei'],
					'company_name'=>$data['company_name'],
					'itemcart'=>$data['itemcart'],
				);
				$res = $this->query($sql, $bind);
				if (!$res){
					return false;
				}
			}
			else{
				$updid = $curids[$i]['delivid'];
				
				$sql = "
					update $tbl set
						delivno = :delivno,
						wish_day = :wish_day,
						wish_time = :wish_time,
						zip1 = :zip1,
						zip2 = :zip2,
						prefecture_code = :prefecture_code,
						address_1 = :address_1,
						address_2 = :address_2,
						company_name = :company_name,
						tel1 = :tel1,
						tel2 = :tel2,
						tel3 = :tel3,
						address_name_sei = :address_name_sei,
						address_name_mei = :address_name_mei,
						address_name_kana_sei = :address_name_kana_sei,
						address_name_kana_mei = :address_name_kana_mei,
						itemcart = :itemcart,
						valid = 1
					where
						delivid = :id
				";
				$bind = array(
					'id'=>$updid,
					'delivno'=>$i+1,
					'wish_day'=>$data['wish_day'],
					'wish_time'=>$data['wish_time'],
					'zip1'=>$data['zip1'],
					'zip2'=>$data['zip2'],
					'prefecture_code'=>$data['prefecture_code'],
					'address_1'=>$data['address_1'],
					'address_2'=>$data['address_2'],
					'tel1'=>$data['tel1'],
					'tel2'=>$data['tel2'],
					'tel3'=>$data['tel3'],
					'address_name_sei'=>$data['address_name_sei'],
					'address_name_mei'=>$data['address_name_mei'],
					'address_name_kana_sei'=>$data['address_name_kana_sei'],
					'address_name_kana_mei'=>$data['address_name_kana_mei'],
					'company_name'=>$data['company_name'],
					'itemcart'=>$data['itemcart'],
				);
				$res = $this->query($sql, $bind);
				if (!$res){
					return false;
				}
			}
		}
		
		$delids = array();
		for ($i = count($delivlist); $i < count($curids); $i++){
			$delids[] = $curids[$i]['delivid'];
		}
		if ($delids){
			$wsql = join(',', $delids);
			$sql = "
				update $tbl set
					delivno = 0,
					zip1 = null,
					zip2 = null,
					prefecture_code = null,
					address_1 = null,
					address_2 = null,
					company_name = null,
					tel1 = null,
					tel2 = null,
					tel3 = null,
					address_name_sei = null,
					address_name_mei = null,
					address_name_kana_sei = null,
					address_name_kana_mei = null,
					itemcart = null,
					valid = 0
				where
					delivid in ($wsql)
			";
			$res = $this->query($sql);
			if (!$res){
				return false;
			}
		}
		return true;
	}
	
	function getPurchaseDeliv($pid){
		$tbl = $this->tablename('purchase_deliv_log');
		
		$sql = "
			select
				delivid,
				delivno,
				date_format(wish_day, '%Y%m%d') wish_day,
				wish_time,
				address_name_sei,
				address_name_mei,
				address_name_kana_sei,
				address_name_kana_mei,
				zip1,
				zip2,
				prefecture_code,
				address_1,
				address_2,
				address_3,
				tel1,
				tel2,
				tel3,
				company_name,
				itemcart,
				date_format(wish_day, '%Y%m%d') wish_day,
				wish_time
			from
				$tbl
			where
				purchaseid = :pid
			and
				valid = 1
			order by delivno
		";
		$bind = array('pid'=>$pid);
		$res = $this->selectAll($sql, $bind);
		if ($res === false){
			return false;
		}
		return $res;
	}
	
	function updatePurchaseItem($pid, $itemlist){
		$tbl = $this->tablename('purchase_item_log');
		
		$sql = "
			select
				id, subitemid, num
			from
				$tbl
			where
				purchaseid = :pid
		";
		$bind = array('pid'=>$pid);
		$res = $this->selectAll($sql, $bind);
		if ($res === false){
			return false;
		}
		$curlist = $res;
		$subitemids = array();
		foreach ($itemlist as $itmdata){
			$curdt = null;
			foreach ($curlist as $cd){
				if ($itmdata['subitem']['subitemid'] == $cd['subitemid']){
					$curdt = $cd;
					break;
				}
			}
			if (!$curdt){
				$sql = "
					insert into $tbl(
						purchaseid,
						itemid,
						subitemid,
						category1,
						category2,
						category3,
						num,
						price_unit,
						price_total,
						price_total_tax,
						get_point
					)
					values(
						:purchaseid,
						:itemid,
						:subitemid,
						:category1,
						:category2,
						:category3,
						:num,
						:price_unit,
						:price_total,
						:price_total_tax,
						:get_point
					)
				";
				$bind = array(
					'purchaseid'=>$pid, 
					'itemid'=>$itmdata['item']['itemid'], 
					'subitemid'=>$itmdata['subitem']['subitemid'], 
					'category1'=>$itmdata['subitem']['category1'], 
					'category2'=>$itmdata['subitem']['category2'], 
					'category3'=>$itmdata['subitem']['category3'], 
					'num'=>$itmdata['num'], 
					'price_unit'=>$itmdata['subitem']['subprice'], 
					'price_total'=>$itmdata['subitem']['subprice']*$itmdata['num'],
					'price_total_tax'=>$itmdata['price_total_tax'], 
					'get_point'=>$itmdata['point']
				);
				$res = $this->query($sql, $bind);
				if (!$res){
					return false;
				}
			}
			else{
				$sql = "
					update $tbl set
						num = :num,
						price_unit = :price_unit,
						price_total = :price_total,
						price_total_tax = :price_total_tax,
						get_point = :get_point
					where
						id = :id
				";
				$bind = array(
					'id'=>$curdt['id'],
					'num'=>$itmdata['num'], 
					'price_unit'=>$itmdata['subitem']['subprice'], 
					'price_total'=>$itmdata['subitem']['subprice']*$itmdata['num'],
					'price_total_tax'=>$itmdata['price_total_tax'], 
					'get_point'=>$itmdata['point']
				);
				$res = $this->query($sql, $bind);
				if (!$res){
					return false;
				}
			}
			$subitemids[] = $itmdata['subitem']['subitemid'];
		}
		$delids = array();
		foreach ($curlist as $cd){
			if (in_array($cd['subitemid'], $subitemids)){
				continue;
			}
			$delids[] = $cd['subitemid'];
		}
		if ($delids){
			$idssql = join(',', $delids);
			$sql = "
				update $tbl set
					num = 0,
					price_unit = 0,
					price_total = 0,
					get_point = 0
				where
					id in ($idssql)
			";
			$res = $this->query($sql);
			if (!$res){
				return false;
			}
		}
		return true;
	}
	function updatePaytype($pid, $data){
		$tbl = $this->tablename('purchase_log');
		
		$sql = "
			update $tbl set
				paytype = :paytype
			where
				purchaseid = :pid
		";
		$bind = array('pid'=>$pid, 'paytype'=>$data['paytype']);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		return true;
	}
	function updatePurchaseSum($pid, $data){
		$tbl = $this->tablename('purchase_log');
		
		$sql = "
			update $tbl set
				price_sum = :price_sum,
				count_sum = :count_sum,
				get_point = :get_point,
				pay_money = :pay_money
			where
				purchaseid = :pid
		";
		$bind = array('pid'=>$pid,
			'price_sum'=>$data['price_sum'],
			'count_sum'=>$data['count_sum'],
			'get_point'=>$data['get_point'],
			'pay_money'=>$data['pay_money'],
		);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		return true;
		
	}
	
/*
	function updatePurchaseAddress($pid, $delivlist){
		$tbl = $this->tablename('purchase_deliv_log');
		$sql = "
			update $tbl set
				address_name_sei = :address_name_sei,
				address_name_mei = :address_name_mei,
				address_name_kana_sei = :address_name_kana_sei,
				address_name_kana_mei = :address_name_kana_mei,
				zip1 = :zip1,
				zip2 = :zip2,
				prefecture_code = :prefecture_code,
				address_1 = :address_1,
				address_2 = :address_2,
				tel1 = :tel1,
				tel2 = :tel2,
				tel3 = :tel3,
				company_name = :company_name
			where
				purchaseid = :pid
		";
		$bind = array(
			'address_name_sei'=>$data['address_name_sei'],
			'address_name_mei'=>$data['address_name_mei'],
			'address_name_kana_sei'=>$data['address_name_kana_sei'],
			'address_name_kana_mei'=>$data['address_name_kana_mei'],
			'zip1'=>$data['zip1'],
			'zip2'=>$data['zip2'],
			'prefecture_code'=>$data['prefecture_code'],
			'address_1'=>$data['address_1'],
			'address_2'=>$data['address_2'],
			'tel1'=>$data['tel1'],
			'tel2'=>$data['tel2'],
			'tel3'=>$data['tel3'],
			'company_name'=>$data['company_name'],
			'pid'=>$pid
		);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		return true;
	}
*/


	function getPurchaseList($pg, $num, $data){
		$tbl = $this->tablename('purchase_log');
		$w = "";
		$b = array();
		if (isset($data['userid']) && $data['userid']){
			$w .= " and userid = :userid";
			$b['userid'] = $data['userid'];
		}
		if (isset($data['deliv_status']) && $data['deliv_status']){
			$w .= " and deliv_status = :deliv_status";
			$b['deliv_status'] = $data['deliv_status'];
		}
		$sql = "
			select
				count(*) ct
			from
				$tbl
			where
				1
			$w
		";
		$bind = $b;
		$res = $this->selectRow($sql, $bind);
		if ($res === false){
			return false;
		}
		
		$ct = $res['ct'];
		
		if (!$ct){
			return $this->searchResult0();
		}
		
		$sql = "
			select
				purchaseid,
				purchasecode,
				userid,
				paytype,
				status,
				payment_status,
				deliv_status,
				date_format(create_date, '%Y%m%d%H%i%s') create_date,
				date_format(deliv_date, '%Y%m%d%H%i%s') deliv_date,
				price_sum,
				price_tax_sum,
				count_sum,
				tax_cost,
				deliv_cost,
				extra_cost,
				pay_point,
				pay_money
			from
				$tbl
			where
				1
			$w
			order by create_date desc
		";
		$sql .= $this->searchLimit($pg, $num);
		$bind = $b;
		$res = $this->selectAll($sql, $bind);
		if ($res ===false){
			return false;
		}
		
		return $this->searchResult($res, $pg, $num, $ct);
	}


	function getPurchase($v, $tg="purchaseid"){
		$tbl = $this->tablename('purchase_log');

		if ($tg == "purchaseid"){
			$w = "purchaseid = :v";
			$b = array('v'=>$v);
		}
		else if ($tg == "purchasecode"){
			$w = "purchasecode = :v";
			$b = array('v'=>$v);
		}
		else{
			return false;
		}
		
		$sql = "
			select
				purchaseid,
				purchasecode,
				userid,
				paytype,
				status,
				payment_status,
				deliv_status,
				date_format(create_date, '%Y%m%d%H%i%s') create_date,
				date_format(payment_date, '%Y%m%d%H%i%s') payment_date,
				date_format(deliv_date, '%Y%m%d%H%i%s') deliv_date,
				price_sum,
				price_tax_sum,
				count_sum,
				address_name_sei,
				address_name_mei,
				address_name_kana_sei,
				address_name_kana_mei,
				zip1,
				zip2,
				prefecture_code,
				address_1,
				address_2,
				tel1,
				tel2,
				tel3,
				company_name,
				tax_cost,
				deliv_cost,
				extra_cost,
				pay_money,
				pay_point,
				get_point,
				email,
				memo,
				delivcost_separate_ticket
			from
				$tbl
			where
				$w
		";
		$bind = $b;
		$res = $this->selectRow($sql, $bind);
		if ($res === false){
			return false;
		}
		return $res;
	}
	
	function getPurchaseItem($pid){
		$tbl = $this->tablename('purchase_item_log');
		
		$sql = "
			select
				id,
				itemid,
				subitemid,
				category1,
				category2,
				category3,
				num,
				price_unit,
				price_total,
				price_total_tax
			from
				$tbl
			where
				purchaseid = :purchaseid
			order by itemid asc
		";
		$bind = array('purchaseid'=>$pid);
		$res = $this->selectAll($sql, $bind);
		if ($res === false){
			return false;
		}
		return $res;
	}
	
	function getPurchaseItemCart($itemlist){
		$ar = array();
		foreach ($itemlist as $itm){
			if (!$itm['num']){
				continue;
			}
			$v = $itm['subitemid'];
			if ($itm['num'] > 1){
				$v .= ".".$itm['num'];
			}
			$ar[] = $v;
		}
		return join(',', $ar);
	}
	
	
	function searchPurchaseList($data){
		$tbl = $this->tablename('purchase_log');
		
		$w = "";
		$b = array();
		if (isset($data['pid']) && $data['pid']){
			$w .= " and (purchaseid = :pid or purchasecode = :pid)";
			$b['pid'] = $data['pid'];
		}
		if (isset($data['pdt']) && $data['pdt']){
			$w .= " and date_format(create_date, '%Y%m%d') = :pdt";
			$b['pdt'] = $data['pdt'];
		}
		if (isset($data['payst']) && $data['payst']){
			$w .= " and payment_status = :payst";
			$b['payst'] = $data['payst'];
		}
		if (isset($data['dlvst']) && $data['dlvst']){
			$w .= " and deliv_status = :dlvst";
			$b['dlvst'] = $data['dlvst'];
		}
		if (isset($data['uorg']) && $data['uorg']){
			if ($data['uorg'] == 1) $w = " and userid != 0";
			else if ($data['uorg'] == 2) $w = " and userid = 0";
		}
		if (isset($data['uname']) && $data['uname']){
			$w .= " and exists(select * from wp_users w where w.ID = t.userid and w.display_name like :uname)";
			$b['uname'] = "%".$data['uname']."%";
		}
		if (isset($data['status_out0']) && $data['status_out0']){
			$w .= " and status != 0";
		}
		
		$sqlblock = "
			from
				$tbl t
			where
				1 $w
		";
		$bind = $b;
		
		$sql = "select count(*) ct $sqlblock";
		$res = $this->selectRow($sql, $bind);
		if ($res === false){
			return false;
		}
		$ct = $res['ct']+0;
		
		if (!$ct){
			return $this->searchResult0();
		}
		
		$sql = "
			select
				purchaseid,
				purchasecode,
				userid,
				address_name_sei,
				address_name_mei,
				prefecture_code,
				price_sum,
				count_sum,
				get_point,
				payment_status,
				deliv_status,
				date_format(create_date, '%Y%m%d%H%i%s') create_date,
				date_format(deliv_date, '%Y%m%d%H%i%s') deliv_date,
				email
			$sqlblock
			order by create_date desc
		";
		if ($data['num']){
			$sql .= $this->searchLimit($data['pg'], $data['num']);
		}
		$res = $this->selectAll($sql, $bind);
		if ($res === false){
			return false;
		}
		$list = $res;
		
		return $this->searchResult($list, $data['pg'], $data['num'], $ct);
	}
	
	
	function updateStatus($pid, $tg, $st){
		$tbl = $this->tablename('purchase_log');
		
		$updsql = "";
		$updb = array();
		if ($tg == "payment_status" && $st == 2){
			$updsql = ',payment_date = now()';
		}
		if ($tg == "deliv_status" && $st == 2){
			$updsql = ',deliv_date = now()';
		}
		
		$sql = "
			update $tbl set
				$tg = :st
				$updsql
			where
				purchaseid = :pid
		";
		$bind = array('st'=>$st, 'pid'=>$pid);
		$bind = array_merge($bind, $updb);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		return true;
	}

}