From 3ffb0034502a99025a7777b4c6429d663eb3db56 Mon Sep 17 00:00:00 2001 From: konrad Date: Sat, 22 Mar 2008 10:55:37 +0000 Subject: [PATCH] getorder transaction git-svn-id: https://silmor.de/svn/softmagic/smoke/trunk@136 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33 --- www/inc/classes/order.php | 45 ++++++++++++++++++++++++++++++++++++++++++++ www/inc/classes/ticket.php | 2 +- www/machine.php | 11 ++++++++- 3 files changed, 55 insertions(+), 3 deletions(-) diff --git a/www/inc/classes/order.php b/www/inc/classes/order.php index 8b0f71d..e0ac3f4 100644 --- a/www/inc/classes/order.php +++ b/www/inc/classes/order.php @@ -401,4 +401,49 @@ function createOrderXml($xmldata,$action) } } +//returns an overview over all orders +function getOrderListXml() +{ + global $db; + $xml=new DomDocument; + $doc=$xml->createElement("OrderList"); + $res=$db->select("order","orderid,customerid,status,amountpaid",""); + foreach($res as $ord){ + //collect tickets + $tres=$db->select("ticket","price,status","orderid=".$db->escapeInt($ord["orderid"])); + $price=0; + foreach($tres as $tc) + if(($tc["status"]&TICKET_MPAY)!=0) + $price+=$tc["price"]; + //generate XML + $ox=$xml->createElement("Order"); + $ox->setAttribute("id",$ord["orderid"]); + $ox->setAttribute("customer",$ord["customerid"]); + $ox->setAttribute("totalprice",$price); + $ox->setAttribute("paid",$ord["amountpaid"]); + switch($ord["status"]){ + case ORDER_PLACED: + $ox->setAttribute("status","placed"); + break; + case ORDER_SENT: + $ox->setAttribute("status","sent"); + break; + case ORDER_CANCELLED: + $ox->setAttribute("status","cancelled"); + break; + case ORDER_CLOSED: + $ox->setAttribute("status","closed"); + break; + default: + $ox->setAttribute("status","error"); + break; + } + //add to XML + $doc->appendChild($ox); + } + $xml->appendChild($doc); + //output + print($xml->saveXml()); +} + ?> \ No newline at end of file diff --git a/www/inc/classes/ticket.php b/www/inc/classes/ticket.php index 57374a5..77c719d 100644 --- a/www/inc/classes/ticket.php +++ b/www/inc/classes/ticket.php @@ -15,7 +15,7 @@ /**mask: ticket is blocked (can be used or is used)*/ define("TICKET_MBLOCK",0x100); /**mask: ticket must be paid or is paid*/ -define("TICKET_MBLOCK",0x200); +define("TICKET_MPAY",0x200); /**ticket has been reserved by a seller*/ diff --git a/www/machine.php b/www/machine.php index 7f28ada..b941ed0 100644 --- a/www/machine.php +++ b/www/machine.php @@ -23,7 +23,7 @@ $ALLOWEDREQUESTS=array( tr("geteventlist"),tr("geteventdata"),tr("seteventdata"),tr("eventsummary"), //event infos tr("getroomdata"),tr("setroomdata"),//room infos tr("getcustomerlist"),tr("getcustomer"),tr("setcustomer"), //customer info - tr("checkorder"),tr("createorder"),tr("createsale"), //sell/order stuff + tr("checkorder"),tr("createorder"),tr("createsale"),tr("getorderlist"), //sell/order stuff tr("gettemplatelist"),tr("gettemplate"),tr("settemplate") //templates ); /**contains the low-level request name from the client*/ @@ -260,19 +260,26 @@ if($SMOKEREQUEST=="setcustomer"){ exit(); } - +//check that the order can be executed if($SMOKEREQUEST=="checkorder"){ createOrderXml($REQUESTDATA,"check"); exit(); } +//create order as normal order if($SMOKEREQUEST=="createorder"){ createOrderXml($REQUESTDATA,"order"); exit(); } +//create order recors as a sale (already paid and delivered) if($SMOKEREQUEST=="createsale"){ createOrderXml($REQUESTDATA,"sell"); exit(); } +//get list of all orders +if($SMOKEREQUEST=="getorderlist"){ + getOrderListXml(); + exit(); +} //EOF -- 1.7.2.5