www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/adminm/cart.inc.php
<? !defined('M_COM') && exit('No Permission'); include_once M_ROOT."./include/arcedit.cls.php"; include_once M_ROOT."./include/archive.fun.php"; include_once M_ROOT."./include/upload.cls.php"; include_once M_ROOT."./include/fields.fun.php"; include_once M_ROOT."./include/fields.cls.php"; load_cache('channels,currencys,commus,cotypes,shipings,pfields,permissions'); $aid = empty($aid) ? 0 : max(0,intval($aid)); $forward = empty($forward) ? M_REFERER : $forward; if(empty($pmode)){ if(!submitcheck('bcartedit') && !submitcheck('bsettlement') && !submitcheck('bcartpay') && !submitcheck('bconfirm')){ m_guide(23); $itemstr = ''; $oldsum = $ordersum = $weights = 0; $sqlfield = 'a.*'; $sqlfield .= ''; $query = $db->query("SELECT a.*,p.cid,p.nums,p.createdate,s.weight,s.storage FROM {$tblprefix}purchases p LEFT JOIN {$tblprefix}archives a ON (a.aid=p.aid) LEFT JOIN {$tblprefix}archives_sub s ON (s.aid=p.aid) WHERE p.mid=$memberid AND p.oid=0 ORDER BY p.cid DESC"); while($item = $db->fetch_array($query)){ $cid = $item['cid']; $item['createdate'] = date("$dateformat", $item['createdate']); $discount = 0; $commu = read_cache('commu',$channels[$item['chid']]['cuid']); if(!empty($commu['setting']['allmode'])){ $gt_discount = !empty($commu['setting']['gtmode']) ? $curuser->gt_discount($commu['setting']['gtmode']) : 0; $cn_discount = !empty($commu['setting']['cnmode']) ? cn_discount($item,$commu['setting']['cnmode']) : 0; $discount = caldiscount(array($gt_discount,$cn_discount,!empty($commu['setting']['discount']) ? $commu['setting']['discount'] : 0),$commu['setting']['allmode']); } $item['arcurl'] = view_arcurl($item); $item['dcprice'] = round($item['price'] * (1 - $discount / 100),2); $oldsum += $item['price'] * $item['nums']; $ordersum += $item['dcprice'] * $item['nums']; $enableship && $weights += $item['weight'] * $item['nums']; $itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$cid]\" value=\"$cid\"></td>\n". "<td class=\"item2\"><a href=\"$item[arcurl]\" target=\"_blank\">".mhtmlspecialchars($item['subject'])."</a></td>\n". "<td align=\"center\" class=\"item1\" width=\"60\">$item[price]</td>\n". "<td align=\"center\" class=\"item2\" width=\"60\">$item[dcprice]</td>\n". "<td align=\"center\" class=\"item1\" width=\"60\"><input type=\"text\" name=\"itemsnew[$cid][nums]\" value=\"$item[nums]\" size=\"4\"></td>\n". (!$enableship ? '' : "<td align=\"center\" class=\"item2\" width=\"60\">$item[weight]</td>\n"). (!$enablestock ? '' : "<td align=\"center\" class=\"item1\" width=\"40\">$item[storage]</td>\n"). "<td align=\"center\" class=\"item2\" width=\"70\">$item[createdate]</td></tr>\n"; } tabheader(lang('my cart purchase step 1 / 3'),'cart','adminm.php?action=cart&forward='.urlencode($forward),8); $catesarr = array(lang('delete'),lang('goods cname'),lang('price ( yuan )'),lang('dcprice ( yuan )'),lang('purchase amount'),); $enableship && $catesarr[] = lang('weight (kg)'); $enablestock && $catesarr[] = lang('stock'); $catesarr[] = lang('add time'); trcategory($catesarr); if($itemstr){//有商品记录 echo $itemstr; echo "<tr><td class=\"item1\"colspan=\"8\">". lang('oldprice sum')." : $oldsum ".lang('yuan')."<input type=\"hidden\" name=\"cartnew[oldsum]\" value=\"$oldsum\"> , ". lang('dcprice sum')." : $ordersum ".lang('yuan')."<input type=\"hidden\" name=\"cartnew[ordersum]\" value=\"$ordersum\"> , ". ($enableship ? lang('weight sum')." : $weights kg<input type=\"hidden\" name=\"cartnew[weights]\" value=\"$weights\">" : ''). "</td></tr>"; }else{//无商品记录 echo "<tr><td align=\"center\" class=\"item1\" width=\"30\">-</td>\n". "<td align=\"center\" class=\"item2\">".lang('notyet add goods')."</td>\n". "<td align=\"center\" class=\"item1\" width=\"60\">0</td>\n". "<td align=\"center\" class=\"item2\" width=\"60\">0</td>\n". "<td align=\"center\" class=\"item1\" width=\"60\">0</td>\n". (!$enableship ? '' : "<td align=\"center\" class=\"item2\" width=\"60\">0</td>\n"). (!$enablestock ? '' : "<td align=\"center\" class=\"item1\" width=\"40\">0</td>\n"). "<td align=\"center\" class=\"item2\" width=\"60\">-</td></tr>\n"; } tabfooter(); if($itemstr){ echo "<input class=\"button\" type=\"submit\" name=\"bcartedit\" value=\"".lang('modify')."\"> "; echo "<input class=\"button\" type=\"submit\" name=\"bsettlement\" value=\"".lang('settlement center1')."\"></form>"; } }elseif(submitcheck('bcartedit')){ if(!empty($delete)){ foreach($delete as $cid) unset($itemsnew[$cid]); $db->query("DELETE FROM {$tblprefix}purchases WHERE cid IN (".mimplode($delete).")",'SILENT'); } if(!empty($itemsnew)){ foreach($itemsnew as $cid => $itemnew){ $itemnew['nums'] = empty($itemnew['nums']) ? 0 : max(0,intval($itemnew['nums'])); $db->query("UPDATE {$tblprefix}purchases SET nums='$itemnew[nums]' WHERE cid='$cid'"); } } mcmessage(lang('cart modify finish'),M_REFERER); }elseif(submitcheck('bsettlement')){ if($enableship){ $shidsarr = array('0' => lang('nosetting')); foreach($shipings as $k =>$v) $shidsarr[$k] = $v['cname']; } if(!$oldmsg = $db->fetch_one("SELECT shid FROM {$tblprefix}orders WHERE mid='$memberid' ORDER BY oid DESC LIMIT 0,1")) $oldmsg = array(); tabheader(lang('settlement center1 purchase step 2 / 3'),'cart','adminm.php?action=cart&forward='.urlencode($forward)); trbasic(lang('goods oldprice sum'),'',$cartnew['oldsum'].' '.lang('yuan'),''); trbasic(lang('goods dcprice sum'),'',$cartnew['ordersum'].' '.lang('yuan'),''); if(!empty($enableship)){ trbasic(lang('goods weight sum'),'',$cartnew['weights'].' kg',''); trbasic(lang('shiping'),'cartnew[shid]',makeoption($shidsarr,empty($oldmsg['shid']) ? 0 : $oldmsg['shid']),'select'); } echo "<input type=\"hidden\" name=\"cartnew[orderfee]\" value=\"$cartnew[ordersum]\">"; if(!empty($enableship)) echo "<input type=\"hidden\" name=\"cartnew[weights]\" value=\"$cartnew[weights]\">"; tabfooter(); echo "<input class=\"button\" type=\"submit\" name=\"bcartpay\" value=\"".lang('continue')."\"> "; echo "<input class=\"button\" type=\"submit\" onclick=\"javasrcipt:history.go(-1);\" value=\"".lang('goback')."\"></form>"; }elseif(submitcheck('bcartpay')){ $cartnew['ordersn'] = date('Ymd').'-'.$memberid.'-'.date('His').'-'.random(6,1); $cartnew['shipingfee'] = 0; if($enableship && !empty($cartnew['shid']) && !empty($shipings[$cartnew['shid']])){ $cartnew['shipingfee'] = calshipingfee($cartnew['orderfee'],$cartnew['shid'],$cartnew['weights']); } $cartnew['totalfee'] = $cartnew['orderfee'] + $cartnew['shipingfee']; tabheader(lang('orders confirm purchase step 3 / 3'),'cart','adminm.php?action=cart&forward='.urlencode($forward),2,1,1); trbasic(lang('orders sncode'),'',$cartnew['ordersn'],''); trbasic(lang('orders goods fee'),'',$cartnew['orderfee'].' '.lang('yuan'),''); if(!empty($enableship)){ trbasic(lang('shiping'),'',empty($cartnew['shid']) ? '-' : $shipings[$cartnew['shid']]['cname'],''); trbasic(lang('orders goods weight'),'',$cartnew['weights'].' kg',''); trbasic(lang('orders ship fee'),'',$cartnew['shipingfee'].' '.lang('yuan'),''); } trbasic(lang('orders fee allamount'),'',$cartnew['totalfee'].' '.lang('yuan'),''); trbasic(lang('my cash account0'),'',$curuser->infos['currency0'].' '.lang('yuan')." <a href=\"adminm.php?action=payonline\">>>".lang('online saving')."</a>",''); trbasic(lang('from my account0 pay ( yuan )'),'cartnew[truepay]',min($cartnew['totalfee'],$curuser->infos['currency0'])); tabfooter(); tabheader(lang('orders other message')); $a_field = new cls_field; $submitstr = ''; if(!$oldmsg = $db->fetch_one("SELECT * FROM {$tblprefix}orders WHERE mid='$memberid' ORDER BY oid DESC LIMIT 0,1")) $oldmsg = array(); foreach($pfields as $k => $field){ if(!$field['isadmin']){ $a_field->init(); $a_field->field = $field; $a_field->oldvalue = !isset($oldmsg[$k]) ? '' : $oldmsg[$k]; $a_field->trfield('cartnew'); $submitstr .= $a_field->submitstr; } } $vararr = array('ordersn','orderfee','totalfee'); $enableship && $vararr = array_merge($vararr,array('shid','weights','shipingfee')); foreach($vararr as $v){ echo "<input type=\"hidden\" name=\"cartnew[$v]\" value=\"$cartnew[$v]\">"; } tabfooter(); echo "<input class=\"button\" type=\"submit\" name=\"bconfirm\" value=\"".lang('purchase')."\"> "; echo "<input class=\"button\" type=\"submit\" onclick=\"javasrcipt:history.go(-1);\" value=\"".lang('goback')."\"></form>"; check_submit_func($submitstr); }elseif(submitcheck('bconfirm')){ $sqlstr = ""; $pfields = fields_order($pfields); $c_upload = new cls_upload; $a_field = new cls_field; foreach($pfields as $k => $field){ if(!$field['isadmin']){ $a_field->init(); $a_field->field = $field; $a_field->deal('cartnew'); if(!empty($a_field->error)){ $c_upload->rollback(); mcmessage($a_field->error,M_REFERER); } $sqlstr .= ','.$k."='".$a_field->newvalue."'"; } } $c_upload->saveuptotal(1); unset($a_field,$c_upload); $db->query("INSERT INTO {$tblprefix}orders SET ordersn='$cartnew[ordersn]', orderfee='$cartnew[orderfee]',". (!empty($enableship) ? "shid='$cartnew[shid]',weight='$cartnew[weights]',shipingfee='$cartnew[shipingfee]'," : ''). "totalfee='$cartnew[totalfee]', mid='$memberid', mname='".$curuser->infos['mname']."', createdate='$timestamp' $sqlstr "); if($oid = $db->insert_id()){//送货后才统计库存量与商品统计及会员统计 $aedit = new cls_arcedit; $query = $db->query("SELECT * FROM {$tblprefix}purchases WHERE mid='$memberid' AND oid='0'"); while($row = $db->fetch_array($query)){ $aedit->set_aid($row['aid']); $aedit->basic_data(); $sqlstr = "oid=$oid,price='".$aedit->archive['price']."'"; !empty($enableship) && $sqlstr .= ",weight='".$aedit->archive['weight']."'"; $db->query("UPDATE {$tblprefix}purchases SET $sqlstr WHERE cid=$row[cid]"); $aedit->init(); } unset($aedit); if($payed = max(0,min($curuser->infos['currency0'],round($cartnew['truepay'],2)))){//可以扣除不足量现金,也可以超出总费用付费 $curuser->updatecrids(array(0 => -$payed),1,lang('purchase goods')); $db->query("UPDATE {$tblprefix}orders SET payed='$payed' WHERE oid='$oid'"); } mcmessage(lang('purchase goods succeed'),$forward); }else mcmessage(lang('purchase goods failed'),$forward); } }else{ $aedit = new cls_arcedit; $aedit->set_aid($aid); $aedit->basic_data(); !($aid = $aedit->aid) && mcmessage(lang('confirmchoose archive')); !($commu = read_cache('commu',$channels[$aedit->archive['chid']]['cuid'])) && mcmessage(lang('noavailable item operate')); (!$commu['available'] || $commu['cclass'] != 'purchase') && mcmessage(lang('noavailable item operate')); !$curuser->pmsbyugids(explode(',',$commu['setting']['ugids'])) && message(lang('you nohave this item permission')); if(!submitcheck('bcartedit') && !submitcheck('bcartpay')){//第一步,添写购物数量,显示该商品的基本信息 if($enableship){ $shidsarr = array('0' => lang('nosetting')); foreach($shipings as $k =>$v) $shidsarr[$k] = $v['cname']; } $discount = 0; if(!empty($commu['setting']['allmode'])){ $gt_discount = !empty($commu['setting']['gtmode']) ? $curuser->gt_discount($commu['setting']['gtmode']) : 0; $cn_discount = !empty($commu['setting']['cnmode']) ? cn_discount($aedit->archive,$commu['setting']['cnmode']) : 0; $discount = caldiscount(array($gt_discount,$cn_discount,!empty($commu['setting']['discount']) ? $commu['setting']['discount'] : 0),$commu['setting']['allmode']); } tabheader(lang('goods purchase step 1 / 2'),'cart',"adminm.php?action=cart&pmode=1&aid=$aid&forward=".urlencode($forward),2,1,1); $submitstr = ''; $arcurl = view_arcurl($aedit->archive); trbasic(lang('goods cname'),'',mhtmlspecialchars($aedit->archive['subject'])." <a href=\"$arcurl\" target=\"_blank\">>>".lang('detail')."</a>",''); trbasic(lang('goods oldprice'),'',$aedit->archive['price'].' '.lang('yuan'),''); trbasic(lang('goods dcprice'),'',round($aedit->archive['price'] * (1 - $discount / 100)).' '.lang('yuan'),''); echo "<input type=\"hidden\" name=\"cartnew[discount]\" value=\"$discount\">"; if($enablestock){ $aedit->basic_data(); trbasic(lang('goods stock'),'',$aedit->archive['storage'],''); } if($enableship){ $aedit->basic_data(); trbasic(lang('goods weight'),'',$aedit->archive['weight'].' kg',''); trbasic(lang('shiping'),'cartnew[shid]',makeoption($shidsarr,empty($oldmsg['shid']) ? 0 : $oldmsg['shid']),'select'); } trbasic(lang('purchase amount').' *','cartnew[nums]','1','text'); tabfooter(); echo "<input class=\"button\" type=\"submit\" name=\"bcartedit\" value=\"".lang('continue')."\"></form>"; $submitstr .= makesubmitstr('cartnew[nums]',1,'int',0,10); check_submit_func($submitstr); }elseif(submitcheck('bcartedit')){//汇总各种费用,添加购物者相关信息 $fnamearr = empty($commu['setting']['fields']) ? array() : explode(',',$commu['setting']['fields']); $cartnew['ordersn'] = date('Ymd').'-'.$memberid.'-'.date('His').'-'.random(6,1); $cartnew['oldfee'] = $cartnew['nums'] * $aedit->archive['price']; $cartnew['orderfee'] = round($cartnew['nums'] * $aedit->archive['price'] * (1 - $cartnew['discount'] / 100)); $cartnew['weights'] = $cartnew['nums'] * $aedit->archive['weight']; $cartnew['shipingfee'] = 0; if($enableship && !empty($cartnew['shid']) && !empty($shipings[$cartnew['shid']])){ $cartnew['shipingfee'] = calshipingfee($cartnew['orderfee'],$cartnew['shid'],$cartnew['weights']); } $cartnew['totalfee'] = $cartnew['orderfee'] + $cartnew['shipingfee']; tabheader(lang('goods purchase step 2 / 2'),'cart',"adminm.php?action=cart&pmode=1&aid=$aid&forward=".urlencode($forward),2,1,1); $submitstr = ''; $arcurl = view_arcurl($aedit->archive); trbasic(lang('orders sncode'),'',$cartnew['ordersn'],''); trbasic(lang('goods cname'),'',mhtmlspecialchars($aedit->archive['subject'])." <a href=\"$arcurl\" target=\"_blank\">>>".lang('detail')."</a>",''); trbasic(lang('purchase amount'),'',$cartnew['nums'],''); trbasic(lang('goods oldprice sum'),'',$cartnew['oldfee'].' '.lang('yuan'),''); trbasic(lang('goods dcprice sum'),'',$cartnew['orderfee'].' '.lang('yuan'),''); if($enableship){ $aedit->basic_data(); trbasic(lang('goods weight sum'),'',$cartnew['weights'].' kg',''); trbasic(lang('shiping'),'',empty($cartnew['shid']) ? '-' : $shipings[$cartnew['shid']]['cname'],''); trbasic(lang('orders ship fee'),'',$cartnew['shipingfee'].' '.lang('yuan'),''); } trbasic(lang('orders fee allamount'),'',$cartnew['totalfee'].' '.lang('yuan'),''); trbasic(lang('my cash account0'),'',$curuser->infos['currency0'].' '.lang('yuan')." <a href=\"adminm.php?action=payonline\">>>".lang('online saving')."</a>",''); trbasic(lang('from my account0 pay ( yuan )'),'cartnew[truepay]',min($cartnew['totalfee'],$curuser->infos['currency0'])); tabfooter(); tabheader(lang('orders other message')); if(!$oldmsg = $db->fetch_one("SELECT * FROM {$tblprefix}orders WHERE mid='$memberid' ORDER BY oid DESC LIMIT 0,1")) $oldmsg = array(); $fnamearr = empty($commu['setting']['fields']) ? array() : explode(',',$commu['setting']['fields']); if($fnamearr){ $a_field = new cls_field; foreach($pfields as $k => $field){ if(!$field['isadmin'] && in_array($k,$fnamearr)){ $a_field->init(); $a_field->field = $field; $a_field->oldvalue = !isset($oldmsg[$k]) ? '' : $oldmsg[$k]; $a_field->trfield('cartnew'); $submitstr .= $a_field->submitstr; } } } $vararr = array('ordersn','orderfee','totalfee','nums'); $enableship && $vararr = array_merge($vararr,array('shid','weights','shipingfee')); foreach($vararr as $v){ echo "<input type=\"hidden\" name=\"cartnew[$v]\" value=\"$cartnew[$v]\">"; } tabfooter(); echo "<input class=\"button\" type=\"submit\" name=\"bcartpay\" value=\"".lang('purchase')."\"> "; echo "<input class=\"button\" type=\"submit\" onclick=\"javasrcipt:history.go(-1);\" value=\"".lang('goback')."\"></form>"; check_submit_func($submitstr); }elseif(submitcheck('bcartpay')){//购物数据处理,如果为积分购物,允许自动结帐的话,直接从帐户中支付 $fnamearr = empty($commu['setting']['fields']) ? array() : explode(',',$commu['setting']['fields']); if($fnamearr){ $c_upload = new cls_upload; $pfields = fields_order($pfields); $a_field = new cls_field; $sqlstr = ""; foreach($pfields as $k => $field){ if(!$field['isadmin'] && in_array($k,$fnamearr)){ $a_field->init(); $a_field->field = $field; $a_field->deal('cartnew'); if(!empty($a_field->error)){ $c_upload->rollback(); mcmessage($a_field->error,M_REFERER); } $sqlstr .= ','.$k."='".$a_field->newvalue."'"; } } $c_upload->saveuptotal(1); unset($a_field,$c_upload); } $db->query("INSERT INTO {$tblprefix}orders SET ordersn='$cartnew[ordersn]', cuid='$commu[cuid]', orderfee='$cartnew[orderfee]',". ($enableship ? "shid='$cartnew[shid]',weight='$cartnew[weights]',shipingfee='$cartnew[shipingfee]'," : ''). "totalfee='$cartnew[totalfee]' $sqlstr, mid='$memberid', mname='".$curuser->infos['mname']."', createdate='$timestamp' "); if($oid = $db->insert_id()){ $db->query("INSERT INTO {$tblprefix}purchases SET aid='$aid', price='".$aedit->archive['price']."', weight='".($enableship ? $aedit->archive['weight'] : 0)."', oid='$oid', mid='$memberid', mname='".$curuser->infos['mname']."', nums='$cartnew[nums]', createdate='$timestamp' "); if($payed = max(0,min($curuser->infos['currency0'],round($cartnew['truepay'],2)))){//可以扣除不足量现金,也可以超出总费用付费 $curuser->updatecrids(array(0 => -$payed),1,lang('purchase goods')); $db->query("UPDATE {$tblprefix}orders SET payed='$payed' WHERE oid='$oid'"); } mcmessage(lang('purchase goods succeed'),$forward); }else mcmessage(lang('purchase goods failed'),$forward); } } ?>