<?php
namespace admin\controls;
class ShopPromotion
{
  // usunięcie promocji
  static public function promotion_delete()
  {
    $promotion = \R::load( 'pp_shop_promotion', (int)\S::get( 'id' ) );
    if ( \R::trash( $promotion ) )
      \S::alert( 'Promocja została usunięta' );

    header( 'Location: /admin/shop_promotion/view_list/' );
    exit;
  }

  // zapisanie promocji
  static public function save()
  {
    $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania promocji wystąpił błąd. Proszę spróbować ponownie' ];
    $values = json_decode( \S::get( 'values' ), true );

    if ( $id = \admin\factory\ShopPromotion::save(
      $values['id'],
      $values['name'],
      $values['status'] == 'on' ? 1 : 0,
      $values['condition_type'],
      $values['discount_type'],
      $values['amount'],
      $values['date_to'],
      $values['categories'],
      $values['condition_categories'],
      $values['include_coupon'] == 'on' ? 1 : 0,
      $values['include_product_promo'] == 'on' ? 1 : 0,
      $values['min_product_count'],
      $values['price_cheapest_product']
    ) )
      $response = [ 'status' => 'ok', 'msg' => 'Promocja została zapisana', 'id' => $id ];

    echo json_encode( $response );
    exit;
  }

  // edycja promocji
  static public function edit()
  {
    return \Tpl::view( 'shop-promotion/promotion-edit', [
      'promotion' => \admin\factory\ShopPromotion::promotion_details( (int)\S::get( 'id' ) ),
      'categories' => \admin\factory\ShopCategory::subcategories( null ),
      'dlang' => \front\factory\Languages::default_language()
    ] );
  }

  // lista promocji
  public static function view_list()
  {
    return \Tpl::view( 'shop-promotion/view-list' );
  }

}