<?php
/**
 * @package shippingMethod
 * @copyright Copyright 2003-2009 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 */
// $Id: flat3.php 14498 2009-10-01 20:16:16Z ajeh $
//

  class flat3 {
    var $code, $title, $description, $icon, $enabled;

// class constructor
    function flat3() {
      global $order, $db;

      $this->code = 'flat3';
      $this->title = MODULE_SHIPPING_FLAT3_TEXT_TITLE;
      $this->description = MODULE_SHIPPING_FLAT3_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_SHIPPING_FLAT3_SORT_ORDER;
      $this->icon = '';
      $this->tax_class = MODULE_SHIPPING_FLAT3_TAX_CLASS;
      $this->tax_basis = MODULE_SHIPPING_FLAT3_TAX_BASIS;

      // disable only when entire cart is free shipping
      if (zen_get_shipping_enabled($this->code)) {
        $this->enabled = ((MODULE_SHIPPING_FLAT3_STATUS == 'True') ? true : false);
      }

      if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FLAT3_ZONE > 0) ) {
        $check_flag = false;
        $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FLAT3_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
        while (!$check->EOF) {
          if ($check->fields['zone_id'] < 1) {
            $check_flag = true;
            break;
          } elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) {
            $check_flag = true;
            break;
          }
          $check->MoveNext();
        }

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }
    }

// class methods
    function quote($method = '') {
      global $order;

      $this->quotes = array('id' => $this->code,
                            'module' => MODULE_SHIPPING_FLAT3_TEXT_TITLE,
                            'methods' => array(array('id' => $this->code,
                                                     'title' => MODULE_SHIPPING_FLAT3_TEXT_WAY,
                                                     'cost' => MODULE_SHIPPING_FLAT3_COST)));
      if ($this->tax_class > 0) {
        $this->quotes['tax'] = zen_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
      }

      if (zen_not_null($this->icon)) $this->quotes['icon'] = zen_image($this->icon, $this->title);

      return $this->quotes;
    }

    function check() {
      global $db;
      if (!isset($this->_check)) {
        $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FLAT3_STATUS'");
        $this->_check = $check_query->RecordCount();
      }
      return $this->_check;
    }

    function install() {
      global $db;
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Status modulu', 'MODULE_SHIPPING_FLAT3_STATUS', 'True', 'True = aktywny<br />False = nieaktywny', '6', '0', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Koszt dostawy', 'MODULE_SHIPPING_FLAT3_COST', '5.00', 'Podaj koszt dostawy.', '6', '0', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Stawka podatku', 'MODULE_SHIPPING_FLAT3_TAX_CLASS', '0', 'Podatek od kosztu dostawy.', '6', '0', 'zen_get_tax_class_title', 'zen_cfg_pull_down_tax_classes(', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Sposob naliczania podatku', 'MODULE_SHIPPING_FLAT3_TAX_BASIS', 'Shipping', '<br />Shipping - Wedlug stawek kraju do ktorego wysylasz zamowienie<br />Billing - wedlug stawek kraju z ktorego pochodzi zamawiajacy<br />Store - wedlug stawek kraju w ktorym dziala sklep', '6', '0', 'zen_cfg_select_option(array(\'Shipping\', \'Billing\', \'Store\'), ', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Ograniczenie strefy dzialania', 'MODULE_SHIPPING_FLAT3_ZONE', '0', 'Modul moze byc dostepny dla klientow z calego swiata (wtedy pozostaw -brak-) lub mozesz ograniczyc jego dostepnosc wybierajac z listy okreslona strefe.', '6', '0', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
      $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Kolejnosc na liscie metod dostawy', 'MODULE_SHIPPING_FLAT3_SORT_ORDER', '0', 'Kazdy modul musi miec przypisana niepowtarzalna kolejnosc na liscie. Dwa moduly nie moga miec przypisanej tej samej kolejnosci bo ZADEN z NICH NIE BEDZIE DZIALAL POPRAWNIE.', '6', '0', now())");
    }

    function remove() {
      global $db;
      $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE\_SHIPPING\_FLAT3\_%'");
    }

    function keys() {
      return array('MODULE_SHIPPING_FLAT3_STATUS', 'MODULE_SHIPPING_FLAT3_COST', 'MODULE_SHIPPING_FLAT3_TAX_CLASS', 'MODULE_SHIPPING_FLAT3_TAX_BASIS', 'MODULE_SHIPPING_FLAT3_ZONE', 'MODULE_SHIPPING_FLAT3_SORT_ORDER');
    }
  }
?>