<?php

  //================================================================================================

  class ProductSql extends MySQL {

    public $sectionFilter_sqlSelectColumns;
    public $sectionTable_sqlSelectColumns;
    public $sectionRecord_sqlSelect;

    public $sectionTableName;
    public $sectionTablePrimaryKey;

    //================================================================================================
    // Function Constructor()
    //================================================================================================

    public function __construct() {
      
      $this->set_sectionFilter_sqlSelectColumns();
      
      $this->set_sectionTable_sqlSelectColumns();

      $this->sectionRecord_sqlSelect = '';

      $this->sectionTableName = 'dbo_tblProduct';
      $this->sectionTablePrimaryKey = 'productId';

			// Create the parent MySQL object
			parent :: __construct();
    }

    //================================================================================================
    // Function set_sectionFilter_sqlSelectColumns()
    //================================================================================================

    private function set_sectionFilter_sqlSelectColumns() {

      $this->sectionFilter_sqlSelectColumns = <<<EOD
        SELECT
          productId AS itemId
        FROM dbo_tblProduct
      EOD;
      
    }

    //================================================================================================
    // Function set_sectionTable_sqlSelectColumns()
    //================================================================================================

    private function set_sectionTable_sqlSelectColumns() {

      $this->sectionTable_sqlSelectColumns = <<<EOD

      SELECT
        tblP.productId, tblP.productCategoryId, tblP.productCode, tblP.productShortDescription, tblP.productPrice, productDiscountRate
        , tblPT.enumerated_type_description as productTypeDescription
        , concat_ws( ' ', tblVR.vat_rate_name, tblVR.vat_rate) as vatRateDescription
        FROM dbo_tblProduct AS tblP
        
        INNER JOIN dbo_tblProductType AS tblPT ON tblPT.enumerated_type_id = tblP.productTypeId
        INNER JOIN dbo_tblVatRate AS tblVR ON tblVR.vat_rate_code = tblP.productVatRateCode
      EOD;

    }

    //================================================================================================
    // Function set_sectionRecord_sqlSelect()
    //================================================================================================

    public function set_sectionRecord_sqlSelect($productId) {

      $sectionRecordSqlSelect = <<<EOD
        SELECT
          productId, productCode, productShortDescription, productTypeId, productPrice, productVatRateCode, productDiscountRate, productNominalCode
        FROM dbo_tblProduct
        WHERE productId = %d
      EOD;

      $this->sectionRecord_sqlSelect = sprintf($sectionRecordSqlSelect, $productId);
    }

    //================================================================================================

  }

  //================================================================================================

?>