PageRenderTime 46ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/sop/2.0beta1/Lib/Action/Admin/OrdersAction.class.php

http://iiccms.googlecode.com/
PHP | 384 lines | 266 code | 22 blank | 96 comment | 18 complexity | 0957adb018ab1564686b401c1847b8e4 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, LGPL-2.1
  1. <?php
  2. /**
  3. * @author nanze
  4. * @link
  5. * @todo
  6. * @copyright 811046@qq.com
  7. * @version 1.0
  8. * @lastupdate 2010-11-30
  9. */
  10. class OrdersAction extends AdminCommAction{
  11. function orderslist() {
  12. $map=array();
  13. if(!empty($_REQUEST['sn'])){
  14. $map['sn']=array('like','%'.$_REQUEST['sn'].'%');
  15. }
  16. $this->sort="id desc";
  17. $this->_list ($map);
  18. $this->display ();
  19. }
  20. function orders(){
  21. $id=intval($_GET['id']);
  22. //????
  23. $this->shippingInfo=$shippingInfo=$this->dao->find($id);
  24. //????
  25. $list=$this->dao->query("select a.*,b.bigimage,b.serial,if(a.products_pricespe,a.products_pricespe,a.products_price) as price from ".C('DB_PREFIX')."orders_products a left join ".C('DB_PREFIX')."products b on a.products_id = b.id where a.orders_id='".$id."'");
  26. //????
  27. $orders_products_Model=D('Orders_products');
  28. $this->products_total=$orders_products_Model->where("orders_id=".$id)->sum('products_total');
  29. //????
  30. $this->products_sum=$orders_products_Model->where("orders_id=".$id)->sum('products_quantity');
  31. foreach ($list as $k=>$v){
  32. $list[$k]['products_model']=unserialize($v['products_model']);
  33. }
  34. //???????
  35. $this->list=$list;
  36. $this->orders_total=$shippingInfo['orders_total'];
  37. $this->total_weight=$shippingInfo['total_weight'];
  38. if(ACTION_NAME=='orders'){
  39. $this->display();
  40. }
  41. }
  42. function delivery(){
  43. $this->orders();
  44. $this->display();
  45. }
  46. function express(){
  47. $this->orders();
  48. $this->display();
  49. }
  50. function ems(){
  51. $this->orders();
  52. $this->display();
  53. }
  54. public function edit() {
  55. $map ['id'] = $_GET ['id'];
  56. $list = $this->dao->where ( $map )->find ();
  57. $list['ip_area']=get_ip_area($list['ip_address']);
  58. if ($list) {
  59. $this->list = $list;
  60. $this->display ();
  61. } else {
  62. $this->error ( '?????' );
  63. }
  64. }
  65. function printall(){
  66. $ids=explode(",",$_REQUEST['id']);
  67. $count=count($ids);
  68. $i=0;
  69. $this->display('Orders-printall_header');
  70. $orders_products_Model=D('Orders_products');
  71. foreach ($ids as $id){
  72. //????
  73. $this->shippingInfo=$shippingInfo=$this->dao->find($id);
  74. //????
  75. $list=$this->dao->query("select a.*,b.bigimage,b.serial,if(a.products_pricespe,a.products_pricespe,a.products_price) as price from ".C('DB_PREFIX')."orders_products a left join ".C('DB_PREFIX')."products b on a.products_id = b.id where a.orders_id='".$id."'");
  76. //????
  77. $this->products_total=$orders_products_Model->where("orders_id=".$id)->sum('products_total');
  78. //????
  79. $this->products_sum=$orders_products_Model->where("orders_id=".$id)->sum('products_quantity');
  80. foreach ($list as $k=>$v){
  81. $list[$k]['products_model']=unserialize($v['products_model']);
  82. }
  83. //???????
  84. $this->list=$list;
  85. $this->orders_total=$shippingInfo['orders_total'];
  86. $this->total_weight=$shippingInfo['total_weight'];
  87. $this->display();
  88. $i++;
  89. if($i!=$count){
  90. echo "<br clear=all style='page-break-before:always;' >";
  91. }
  92. }
  93. $this->display('Orders-printall_footer');
  94. }
  95. /**
  96. * ????
  97. *
  98. */
  99. function UPCAbarcode()
  100. {
  101. $code=substr($_GET['code'],0,11);
  102. import("ORG.Util.Image");
  103. Image::UPCA($code,'png',3);
  104. }
  105. function Delete() {
  106. $map ['orders_id'] = array('in',$_GET ['id']);
  107. $dao = D ( "Orders_products" );
  108. $dao->where ( $map )->delete ();
  109. parent::Delete ();
  110. }
  111. public function Update() {
  112. if ($this->dao->create ()) {
  113. $list = $this->dao->save ();
  114. if ($list !== false) {
  115. //??????email
  116. self::$Model=D("Orders");
  117. $orderlist=self::$Model->where("id=".$_POST['id'])->find();
  118. self::$Model=D("Members");
  119. //$memberlist=self::$Model->where("id=".$orderlist['member_id'])->find();
  120. $sendto=array($orderlist['delivery_email'],GetSettValue('mailcopyTo'));
  121. $this->orders_status=orderstatus_convert(get_orders_status($_POST['id']));
  122. $this->orderlist=$orderlist;
  123. $this->memberlist=$memberlist;
  124. if(!empty($orderlist['express_method'])){
  125. $this->express_method="Express delivery:".$orderlist['express_method'];
  126. }
  127. $body=$this->fetch("MailTpl:orderstatus");
  128. sendmail($sendto,GetSettValue('sitename')." on your order has been shipped",$body) ;
  129. $this->success ( '???????' );
  130. //cleanCache ();
  131. } else {
  132. $this->error ( "????????!" );
  133. }
  134. } else {
  135. $this->error ( $this->dao->getError () );
  136. }
  137. }
  138. public function orders_status(){
  139. if($_REQUEST['id']){
  140. $map['id']=array('in',$_REQUEST['id']);
  141. $count=$this->dao->where($map)->count();
  142. $status=$this->dao->where($map)->setField('orders_status',$_REQUEST['orders_status']);
  143. $this->success('????'.$count.'???');
  144. }
  145. $this->error('????');
  146. }
  147. public function sendgoods() {
  148. if (! GetSettValue ( 'sender_sname' )) {
  149. $this->jumpUrl=U('Setting/ShippingAddress');
  150. $this->error('???????????');
  151. }
  152. else{
  153. $map['id']=$_GET['id'];
  154. $list=$this->dao->where($map)->find();
  155. if (!$list){
  156. $this->error('????????????');
  157. }
  158. self::$Model=D("Orders_shippingbills");
  159. $express=self::$Model->where(array('order_id'=>$list['id']))->find();
  160. if($express){
  161. $this->expressSN=$express['ExpressSN'];
  162. $this->id=$express['id'];
  163. }
  164. $this->list=$list;
  165. $this->display ();
  166. }
  167. }
  168. public function dosendgoods(){
  169. //dump($_POST);
  170. $_POST['dateline']=time();
  171. if (empty($_POST['ExpressSN'])){
  172. $this->error('?????????');
  173. }
  174. self::$Model=D("Orders_shippingbills");
  175. if (self::$Model->create()){
  176. $id=self::$Model->add();
  177. if(!$id){
  178. $id=self::$Model->save();
  179. }
  180. //??????
  181. $map['id']=$_POST['order_id'];
  182. $data['orders_status']='3';
  183. $data['shipping_method']=$_POST['Express'];
  184. $this->dao->where($map)->save($data);
  185. $this->jumpUrl=U('Orders/dispBills',array('id'=>$_POST['order_id']));
  186. $this->success ( '?????' );
  187. }
  188. else{
  189. $this->error(self::$Model->getError());
  190. }
  191. }
  192. public function dispBills(){
  193. $map['order_id']=$_GET['id'];
  194. self::$Model=D("Orders_ShippingBills");
  195. $list=self::$Model->where($map)->find();
  196. if (!$list){
  197. $this->error('???????????');
  198. }
  199. else{
  200. self::$Model=D("Billsprintsetting");
  201. $map1['Express']=$list['Express'];
  202. $this->blist=self::$Model->where($map1)->findall();
  203. //$blist=self::$Model->where($map1)->find();
  204. //dump($blist);
  205. //echo self::$Model->getlastsql();
  206. $this->list=$list;
  207. $this->display();
  208. }
  209. }
  210. /**
  211. * ??word??
  212. */
  213. public function word(){
  214. $id=$_GET['id'];
  215. $this->orders();
  216. Vendor('MsDocGenerator');
  217. $doc = new clsMsDocGenerator();
  218. $doc->addParagraph('????', array('text-align' => '"center"', 'font-size' => '16pt', 'font-weight' => 'bold'));
  219. //$doc->addParagraph("???:{$id}");
  220. $doc->addParagraph($this->fetch());
  221. $doc->output('sop??'.$id);
  222. }
  223. /**
  224. * ??excel??
  225. */
  226. /*public function e2(){
  227. Vendor('MsXlsGenerator');
  228. $orders_all=$this->dao->findall();
  229. $xls=array();
  230. $xls[0][0]="??";
  231. $xls[0][1]="??";
  232. $xls[0][2]="????";
  233. $xls[0][3]="??";
  234. $xls[0][4]="???";
  235. $xls[0][5]="???";
  236. $xls[0][6]="????";
  237. $xls[0][7]="????";
  238. $xls[0][8]="????";
  239. $xls[0][9]="IP??";
  240. $xls[0][10]="??";
  241. $xls[0][11]="?";
  242. $xls[0][12]="?";
  243. $xls[0][13]="??";
  244. $xls[0][14]="??";
  245. $xls[0][15]="??";
  246. $xls[0][16]="??";
  247. $xls[0][17]="??";
  248. $xls[0][18]="??";
  249. $xls[0][19]="????";
  250. $xls[0][20]="????";
  251. $xls[0][21]="??";
  252. $i=1;
  253. foreach ($orders_all as $o){
  254. $xls[$i][0]=$o['sn'];
  255. $xls[$i][1]=$o['orders_total'];
  256. $xls[$i][2]=$o['shipping_method'];
  257. $xls[$i][3]=$o['shippingmoney'];
  258. $xls[$i][4]=$o['paymoney'];
  259. $xls[$i][5]=$o['insurance'];
  260. $xls[$i][6]=$o['payment_module_code'];
  261. $xls[$i][7]=toDate($o['dateline']);
  262. $xls[$i][8]=$o['BuyNote'];
  263. $xls[$i][9]=$o['ip_address']."(".get_ip_area($o['ip_address']).")";
  264. $xls[$i][10]=$o['delivery_email'];
  265. $xls[$i][11]=$o['delivery_firstname'];
  266. $xls[$i][12]=$o['delivery_lastname'];
  267. $xls[$i][13]=$o['delivery_address'];
  268. $xls[$i][14]=$o['delivery_telephone'];
  269. $xls[$i][15]=$o['delivery_zip'];
  270. $xls[$i][16]=$o['delivery_city'];
  271. $xls[$i][17]=$o['delivery_state'];
  272. $xls[$i][18]=$o['delivery_country'];
  273. $xls[$i][19]=L('orders_status_'.$o['orders_status']);
  274. $xls[$i][20]=$o['shipping_method'];
  275. $xls[$i][21]=$o['total_weight'];
  276. $i++;
  277. }
  278. foreach ($xls as $k=>$v){
  279. foreach ($xls[$k] as $kk=>$vv){
  280. $xls[$k][$kk]=auto_charset($vv,'utf-8','gbk');
  281. }
  282. }
  283. Create_Excel_File("????.xls",$xls);
  284. }*/
  285. public function excel(){
  286. Vendor('Excel.php-excel');
  287. $map['id']=array('in',$_REQUEST['id']);
  288. $orders=$this->dao->where($map)->findall();
  289. $xls=array();
  290. $xls[0][0]="??";
  291. $xls[0][1]="??";
  292. $xls[0][2]="????";
  293. $xls[0][3]="??";
  294. $xls[0][4]="???";
  295. $xls[0][5]="???";
  296. $xls[0][6]="????";
  297. $xls[0][7]="????";
  298. $xls[0][8]="????";
  299. $xls[0][9]="IP??";
  300. $xls[0][10]="??";
  301. $xls[0][11]="?";
  302. $xls[0][12]="?";
  303. $xls[0][13]="??";
  304. $xls[0][14]="??";
  305. $xls[0][15]="??";
  306. $xls[0][16]="??";
  307. $xls[0][17]="??";
  308. $xls[0][18]="??";
  309. $xls[0][19]="????";
  310. $xls[0][20]="????";
  311. $xls[0][21]="??";
  312. $i=1;
  313. foreach ($orders as $o){
  314. $xls[$i][0]=$o['sn'];
  315. $xls[$i][1]=$o['orders_total'];
  316. $xls[$i][2]=$o['shipping_method'];
  317. $xls[$i][3]=$o['shippingmoney'];
  318. $xls[$i][4]=$o['paymoney'];
  319. $xls[$i][5]=$o['insurance'];
  320. $xls[$i][6]=$o['payment_module_code'];
  321. $xls[$i][7]=toDate($o['dateline']);
  322. $xls[$i][8]=$o['BuyNote'];
  323. $xls[$i][9]=$o['ip_address']."(".get_ip_area($o['ip_address']).")";
  324. $xls[$i][10]=$o['delivery_email'];
  325. $xls[$i][11]=$o['delivery_firstname'];
  326. $xls[$i][12]=$o['delivery_lastname'];
  327. $xls[$i][13]=$o['delivery_address'];
  328. $xls[$i][14]=$o['delivery_telephone'];
  329. $xls[$i][15]=$o['delivery_zip'];
  330. $xls[$i][16]=$o['delivery_city'];
  331. $xls[$i][17]=$o['delivery_state'];
  332. $xls[$i][18]=$o['delivery_country'];
  333. $xls[$i][19]=L('orders_status_'.$o['orders_status']);
  334. $xls[$i][20]=$o['shipping_method'];
  335. $xls[$i][21]=$o['total_weight'];
  336. $i++;
  337. }
  338. $xls_obj = new Excel_XML('UTF-8',false, 'SOP????');
  339. $xls_obj->addArray($xls);
  340. $xls_obj->generateXML("SOP");
  341. }
  342. public function export(){
  343. $map['id']=array('in',$_REQUEST['id']);
  344. $orders=$this->dao->where($map)->findall();
  345. Vendor('MsDocGenerator');
  346. $doc = new clsMsDocGenerator();
  347. $doc->addParagraph('????', array('text-align' => '"center"', 'font-size' => '16pt', 'font-weight' => 'bold'));
  348. $i=0;
  349. $count=count($orders);
  350. $this->assign('all_count',$count);
  351. foreach ($orders as $o){
  352. $this->assign('i',$i);
  353. $_GET['id']=$o['id'];
  354. $this->orders();
  355. $doc->addParagraph($this->fetch('Orders-word'));
  356. $i++;
  357. $doc->addParagraph("<br clear=all style='page-break-before:always;' />");
  358. }
  359. $doc->output('????');
  360. }
  361. }
  362. ?>