<?php

  //================================================================================================
  
  require("../address/addressSql.inc");

  class AddressSection extends Section {

    //================================================================================================
    // Function Constructor()
    //================================================================================================

    public function __construct($section) {

      // Define section filter form inputs
      $section["sectionFilter"]["sectionFilterInput"] = [
        ["attributes"=>[ "type"=>"text", "id"=>"addressName", "value"=>"" ], "label"=>"Address" ]
      ];

      // Define section table columns
      $section["sectionTable"]["sectionTableColumn"] = [
        ["id"=>"addressId", "header"=>"Id", "width"=>30],
        ["id"=>"addressLabel", "header"=>"Label", "width"=>120],
        ["id"=>"addressDescription", "header"=>"Address", "width"=>600]
      ];

      // Define section record fields
      $section["sectionRecord"]["sectionRecordStructure"] = [
        "addressId"=>["type"=>"int", "length"=>"" ],
        "addressLabel"=>["type"=>"varchar", "length"=>"100" ],
        "addressLine1"=>["type"=>"varchar", "length"=>"100" ],
        "addressLine2"=>["type"=>"varchar", "length"=>"100" ],
        "addressLine3"=>["type"=>"varchar", "length"=>"100" ],
        "addressLine4"=>["type"=>"varchar", "length"=>"100" ],
        "addressTown"=>["type"=>"varchar", "length"=>"100" ],
        "addressCounty"=>["type"=>"varchar", "length"=>"100" ],
        "addressPostcode"=>["type"=>"varchar", "length"=>"10" ],
        "addressDeleted"=>["type"=>"varchar", "length"=>"5" ]
      ];
      
      // Define section record summary items
      $section["sectionRecord"]["sectionRecordSummaryItem"] = [
        ["id"=>"addressLine1", "label"=>"Address", "value"=>""]
      ];

      // Define section record form columns and groups
      $section["sectionRecord"]["sectionRecordTabColumn"] = [
        ["columnId"=>"1", "columnClass"=>"", "columnGroup"=>[["groupId"=>"1"]]]
      ];

      // Define section record form inputs
      $section["sectionRecord"]["sectionRecordInput"] = [
        ["attributes"=>[ "type"=>"hidden", "id"=>"addressId", "name"=>"addressId", "value"=>"0" ], "label"=>"", "groupId"=>"1" ], 
        ["attributes"=>[ "type"=>"text", "id"=>"addressLabel", "name"=>"addressLabel", "required"=>"", "maxlength"=>"100", "value"=>"" ], "label"=>"Label", "groupId"=>"1" ],
        ["attributes"=>[ "type"=>"text", "id"=>"addressLine1", "name"=>"addressLine1", "required"=>"", "maxlength"=>"100", "value"=>"" ], "label"=>"Address Line 1", "groupId"=>"1" ],
        ["attributes"=>[ "type"=>"text", "id"=>"addressLine2", "name"=>"addressLine2", "maxlength"=>"100", "value"=>"" ], "label"=>"Address Line 2", "groupId"=>"1" ],
        ["attributes"=>[ "type"=>"text", "id"=>"addressLine3", "name"=>"addressLine3", "maxlength"=>"100", "value"=>"" ], "label"=>"Address Line 3", "groupId"=>"1" ],
        ["attributes"=>[ "type"=>"text", "id"=>"addressLine4", "name"=>"addressLine4", "maxlength"=>"100", "value"=>"" ], "label"=>"Address Line 4", "groupId"=>"1" ],
        ["attributes"=>[ "type"=>"text", "id"=>"addressTown", "name"=>"addressTown", "required"=>"", "maxlength"=>"100", "value"=>"" ], "label"=>"Town", "groupId"=>"1" ],
        ["attributes"=>[ "type"=>"text", "id"=>"addressCounty", "name"=>"addressCounty", "required"=>"", "maxlength"=>"100", "value"=>"" ], "label"=>"County", "groupId"=>"1" ],
        ["attributes"=>[ "type"=>"text", "id"=>"addressPostcode", "name"=>"addressPostcode", "required"=>"", "maxlength"=>"10", "value"=>"" ], "label"=>"Postcode", "groupId"=>"1" ]
      ];

      // Create the section's sql class
      $sectionSql = new AddressSql();

      // Create the parent section object
			parent :: __construct( $section, $sectionSql );

      // Set the section title, filter inputs, filter limit, menu buttons, table columns and table rows 
      $this->set_sectionTitle($section["sectionTitle"]);
      $this->set_sectionTableRecordset();
    }

    //================================================================================================
    // Function set_sqlSelect()
    //================================================================================================

    public function set_sqlSelectFilters($filters) {

    	$DBGeneric = new DBGeneric();

      $sqlSelectWhere = sprintf("WHERE 1");
      $sqlSelectWhere .= $DBGeneric->getFilterSql(['filterValue'=>$filters["addressName"], 'filterValueType'=>'string', 'filterOperator'=>'', 'filterList'=>['tblA.addressLine1', 'tblA.addressLine2', 'tblA.addressLine3', 'tblA.addressLine4', 'tblA.addressTown', 'tblA.addressCounty', 'tblA.addressPostcode']]);			

      $this->set_sqlSelectWhere($sqlSelectWhere);
      $this->set_sqlSelectLimit($filters["addressLimit"]);
      
    }

  }

  //================================================================================================

?>