<?php

namespace Modules\Invoices\InvoicesList;

use \App\Mvc\View\Utils\Types\ListingColumn;
use \App\Mvc\View\Utils\Types\ListingColumns;

class View_List extends \App\Mvc\View_Window_PaginatedListing_ListAbstract
{
	/**
	 * Results per page list
	 * @see \App\Mvc\View_Window_PaginatedListing_ListAbstract::$resultsPerPageList
	 */
	protected $resultsPerPageList = [5, 10, 15, 20, 25, 30, 40, 50];

	/**
	 * (non-PHPdoc)
	 * @see \App\Mvc\View_Window_PaginatedListing_ListAbstract::list_getThDetails()
	 */
	protected function list_getThDetails()
	{

		return ListingColumns::create()
			->append(
				ListingColumn::create('invoiceNumber')
					->setSortable('ASC')
			)
			->append(
				ListingColumn::create('invoiceDate')
			         ->setSortable('ASC')->setType('date')->setWidth(7)
			)
			->append(
				ListingColumn::create('client')
			)
			->append(
				ListingColumn::create('total')
			)
			->append(
				ListingColumn::create('dueDate')
					->setSortable('ASC')->setWidth(7)
			)
			->append(
			    ListingColumn::create('fulfillmentDate')
			         ->setSortable('ASC')->setType('date')->setWidth(7)
			         ->setInvisible(true)
			    )
			->append(
				ListingColumn::create('resIdOfficeUser')
			)
			->append(
				ListingColumn::create('addTime')
					->setSortable('DESC')->setWidth(7)
			)
			->append(
				ListingColumn::create('issued')
			)
			->append(
				ListingColumn::create('voided')
			)
			->append(
				ListingColumn::create('temporary')
			)

		->loadLabels($this->lang['index']['listCols'])
		->loadSettings($this->input['listingParams']->getDynamicColumnsSettings());
	}
}
