Mysidia Adoptables Support Forum

Mysidia Adoptables Support Forum (http://www.mysidiaadoptables.com/forum/index.php)
-   Questions and Supports (http://www.mysidiaadoptables.com/forum/forumdisplay.php?f=18)
-   -   Shop Discount (http://www.mysidiaadoptables.com/forum/showthread.php?t=4743)

Kyttias 12-23-2014 04:45 PM

Shop Discount
 
Nvm, got it work finally. -o-

If you send another value, for a discount, through the buy form, you can access it in class_stockitem.php in the getcost function. But this is just to fix the display on the confirmation screen.

PHP Code:

 public function getcost($salestax 0$quantity ""){
      
// Get the total cost of this stock item
      
$mysidia Registry::get("mysidia");
      if(empty(
$quantity)) $quantity $mysidia->input->post("quantity");
      
$discount $mysidia->input->post("discount");
      
$costbeforediscount $this->price*$quantity*(1+$salestax/100);
    
$cost $costbeforediscount * ((100-$discount) / 100);
      return 
$cost;
  } 

To show users a discounted price, you'll need to do this in the display function of class_itemshop.php -
PHP Code:

# A 5% discount:
$discount 5;
$price $item->price * ((100-$discount) / 100); 

And replace the $item->price where it would show the item's price when rendering the item to just $price.

To actually make a discount percentage go through in terms of calculations you'll have to modify the purchase() function in class_itemshop.php -

PHP Code:

$cost $item->getcost($this->salestax$item->quantity) * ((100-$discount) / 100); 

Sorry for the vague ramblings, it's actually the first part I had trouble with (getting the proper amount to show on the confirmation screen), but maybe someone will have gotten something out of rest of this.

IntoRain 12-23-2014 05:19 PM

I can't really test this, since my host is yet again down for maintenance, but did you try (purchase() in shopview.php):

PHP Code:

$shop_id $mysidia->input->get("shop");

//i'm not sure if input->get("shop") is the name or the sid. If it's the name, but you want the sid:

$shop = new Itemshop($mysidia->input->get("shop"));
$shop_id $shop->sid

In theory, you can access $mysidia->input->get("shop") from both sides (controller and view) since it's a variable sent by GET.

If you want to send a value from the controller to the view:

PHP Code:

//controller
$this->setField("discount", new Integer($discount));
//view
$discount $this->getField("discount")->getValue(); 

The getField is to retrieve the field from the hashmap (it's what's used to communicate variables between controller and view). The getValue is to get the internal value from the object (in this case the object is Integer and the value is an int)

Kyttias 12-23-2014 05:48 PM

Thanks, but I did some further squinting and I got the desired result in the end (editted the first post).

IntoRain 12-23-2014 05:51 PM

Alright, glad you figured it out


All times are GMT -5. The time now is 06:49 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.