<?php

  //================================================================================================

  class QuoteSql 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_tblQuote';
      $this->sectionTablePrimaryKey = 'quoteId';

			// Create the parent MySQL object
			parent :: __construct();
    }

    //================================================================================================
    // Function set_sectionFilter_sqlSelectColumns()
    //================================================================================================

    private function set_sectionFilter_sqlSelectColumns() {

      $this->sectionFilter_sqlSelectColumns = <<<EOD
        SELECT
          tblQ.quoteId AS itemId
        FROM dbo_tblQuote AS tblQ
        LEFT JOIN dbo_tblContact AS tblC ON tblC.contactId = tblQ.quoteCustomerId
        LEFT JOIN dbo_tblSite AS tblS ON tblS.site_id = tblQ.quoteCustomerId
      EOD;
      
    }

    //================================================================================================
    // Function set_sectionTable_sqlSelectColumns()
    //================================================================================================

    private function set_sectionTable_sqlSelectColumns() {

      $this->sectionTable_sqlSelectColumns = <<<EOD
        SELECT
          tblQ.quoteId
          , tblQ.quoteStockNumber
          , tblQ.quoteCreatedDate
          , tblVS.van_stock_year
          , tblVMT.van_model_type_description
          , (case tblQ.quoteCustomerTypeId when 1 then concat_ws( ' ', tblC.contactFirstName, tblC.contactLastName) else tblS.site_name end) as quoteCustomerName		
          , tblES.enumerated_type_description as quoteEnquirySourceDescription		
          , tblQ.quoteVanStockTotalCost
          , concat_ws(' ', tblQU.user_first_name, tblQU.user_last_name) as quoteCreatedByUserName

        FROM dbo_tblQuote AS tblQ
        
        INNER JOIN dbo_tblVanStock AS tblVS ON tblVS.van_stock_number = tblQ.quoteStockNumber
        INNER JOIN dbo_tblVanModelType AS tblVMT ON tblVMT.van_model_type_id = tblVS.van_stock_model_type
        INNER JOIN dbo_tblEnquirySource AS tblES ON tblES.enumerated_type_id = tblQ.quoteEnquirySourceId
        INNER JOIN dbo_tblUser AS tblQU ON tblQU.user_id = tblQ.quoteCreatedByUserId

        LEFT JOIN dbo_tblContact AS tblC ON tblC.contactId = tblQ.quoteCustomerId
        LEFT JOIN dbo_tblSite AS tblS ON tblS.site_id = tblQ.quoteCustomerId
      EOD;

    }
    
    //================================================================================================
    // Function set_sectionRecord_sqlSelect()
    //================================================================================================

    public function set_sectionRecord_sqlSelect($quoteId) {

      $sectionRecordSqlSelect = <<<EOD
        SELECT
          quoteId, quoteStockNumber
        FROM dbo_tblQuote
        WHERE quoteId = %d
      EOD;

      $this->sectionRecord_sqlSelect = sprintf($sectionRecordSqlSelect, $quoteId);
    }

    //================================================================================================

  }

  //================================================================================================

?>