Assembla home | Assembla project page
 

Changeset 126

Show
Ignore:
Timestamp:
11/15/06 16:37:14 (2 years ago)
Author:
moensch
Message:

Implement autopay in frontend

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/com_mls_catering/lang/english.php

    r125 r126  
    4242                "err_please_enter_name" => "Please enter a name!", 
    4343                "err_please_select_category" => "Please select a category!", 
    44                 "err_please_select_caterer" => "Please select a caterer!"); 
     44                "err_please_select_caterer" => "Please select a caterer!", 
     45                "err_not_enough_money_stop" => "You do not have enough money to pay for all or some items. Some items will not have been ordered!", 
     46                "err_not_enough_money_warn" => "You do not have enough money to pay for all or some items. All your items are ordered but only the ones paid for will be processed!"); 
    4547 
    4648$lang_data["catering"] = array( 
  • trunk/com_mls_catering/mls_catering.config.php

    r88 r126  
    22$cnf_mls_catering["show_form"] = 1; 
    33$cnf_mls_catering["currency"] = "GBP"; 
     4$cnf_mls_catering["search_default"] = "userid"; 
     5$cnf_mls_catering["autopay"] = 0; 
     6$cnf_mls_catering["autopay_action"] = "warn"; 
    47?> 
  • trunk/com_mls_catering/mls_catering.html.php

    r88 r126  
    3838                        $cols = 3; 
    3939                        ?> 
    40                         <form id="order_form" method="POST" action="index.php"> 
     40                        <form id="order_form" name="orderForm" method="POST" action="index.php?option=<?php echo $option;?>&Itemid=<?php echo $Itemid;?>&task=order"> 
    4141                        <?php 
    4242                } 
  • trunk/com_mls_catering/mls_catering.php

    r124 r126  
    8585 
    8686function orderItems( $option, $Itemid ) { 
    87         global $database, $l, $my, $mosConfig_offset
     87        global $database, $l, $my, $mosConfig_offset, $cnf_mls_catering
    8888        $l->setBlock("general"); 
    8989         
     
    9292        $order->userid = $my->id; 
    9393        $order->store(); 
     94        $itemsTotal = 0; 
     95        $itemsFailed = 0; 
    9496        foreach($_POST["amount"] as $id => $amount) { 
    9597                if($amount > 0) { 
     98                        $itemsTotal++; 
    9699                        $oitem = new mosMLS_catering_userorder_item( $database ); 
    97                         $oitem->orderItem( $order->id, $id, $amount ); 
     100                        $itemID = $oitem->orderItem( $order->id, $id, $amount ); 
     101                        unset($oitem); 
     102                        if($cnf_mls_catering["autopay"]) { 
     103                                //Automatically pay item 
     104                                $oitem = new mosMLS_catering_userorder_item( $database ); 
     105                                $oitem->load($itemID); 
     106                                if(!$oitem->payItem($my->id)) { 
     107                                        $itemsFailed++; 
     108                                        //Payment failed, most likely not enough credit 
     109                                        if($cnf_mls_catering["autopay_action"] == "stop") { 
     110                                                //You configured not to allow ordering 
     111                                                $database->setQuery( "DELETE FROM `#__mls_catering_userorder_items` WHERE `id`='".$oitem->id."'" ); 
     112                                                $database->query(); 
     113                                                $msg = $l->m("err_not_enough_money_stop","general"); 
     114                                        } else { 
     115                                                //Just display warning 
     116                                                $msg = $l->m("err_not_enough_money_warn","general"); 
     117                                        } 
     118                                } 
     119                        } else { 
     120                                //No autopay 
     121                                $msg = $l->m("msg_items_ordered"); 
     122                        } 
    98123                } 
    99124        } 
    100         mosRedirect("index.php?option=$option&Itemid=$Itemid&mosmsg=".urlencode($l->m("msg_items_ordered"))); 
     125        if($itemsFailed == 0) { 
     126                $msg = $l->m("msg_items_ordered"); 
     127        } 
     128        $database->setQuery( "SELECT COUNT(*) FROM `#__mls_catering_userorder_items` WHERE `orderid`='".$order->id."'" ); 
     129        if(!$database->loadResult()) { 
     130                //No items exist for the order, might be that he did not have enought money for any of them 
     131                //So lets remove the actual order 
     132                $database->setQuery( "DELETE FROM `#__mls_catering_userorders` WHERE `id`='".$order->id."'" ); 
     133                $database->query(); 
     134        } 
     135         
     136        mosRedirect("index.php?option=$option&Itemid=$Itemid", $msg); 
    101137} 
    102138