<?php

namespace App\Reports\Sources\InvoiceCashingDocs;

class ColumnsManager extends \App\Reports\Sources\ColumnsManagerAbstract
{

	/**
	 * The definition of report source columns.
	 * @var array
	 */
	protected array $columnsCfg = [

		'currentRowIndex'		=> ['type' => 'numeric',    'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'",				'cat' => "docDetails"],
		'doc_id' 				=> ['type' => 'numeric',	'dbDef' => "BIGINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docDetails"],
		'doc_seriesId' 			=> ['type' => 'numeric',	'dbDef' => "MEDIUMINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "docDetails"],
		'doc_seriesCode' 		=> ['type' => 'string', 	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_typeCode' 			=> ['type' => 'string', 	'dbDef' => "VARCHAR(25) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_typeName' 			=> ['type' => 'string', 	'dbDef' => "VARCHAR(50) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_groupCode' 		=> ['type' => 'string', 	'dbDef' => "VARCHAR(10) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_number' 			=> ['type' => 'string', 	'dbDef' => "VARCHAR(50) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_date' 				=> ['type' => 'date', 		'dbDef' => "DATE NULL", 									'cat' => "docDetails"],
		'doc_dateYM' 			=> ['type' => 'yearMonth',	'dbDef' => "DATE NULL", 									'cat' => "docDetails"],
		'doc_dateY' 			=> ['type' => 'year', 		'dbDef' => "YEAR NULL", 									'cat' => "docDetails"],
		'doc_bankAccountId' 	=> ['type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "docDetails"],
		'doc_bankAccount'		=> ['type' => 'string', 	'dbDef' => "VARCHAR(200) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_bankId' 			=> ['type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "docDetails"],
		'doc_bankName' 			=> ['type' => 'string', 	'dbDef' => "VARCHAR(150) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_bankOfficeId'		=> ['type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "docDetails"],
		'doc_bankOfficeName'	=> ['type' => 'string', 	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''", 				'cat' => "docDetails"],
		'doc_explanations'		=> ['type' => 'string', 	'dbDef' => "TEXT NOT NULL ", 								'cat' => "docDetails"],
		'doc_comments' 			=> ['type' => 'string', 	'dbDef' => "TEXT NOT NULL ", 								'cat' => "docDetails"],
		'doc_extraInfo' 		=> ['type' => 'string', 	'dbDef' => "TEXT NOT NULL", 								'cat' => "docDetails", 'disabled' => true, 'content'=>'assocArray'],
		'doc_issued'			=> ['type' => 'boolean', 	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "docDetails"],
		'doc_voided' 			=> ['type' => 'boolean', 	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "docDetails"],
		'doc_voidReasonCode' 	=> ['type' => 'string', 	'dbDef' => "VARCHAR(20) NOT NULL", 							'cat' => "docDetails"],
		'doc_voidReasonName' 	=> ['type' => 'string', 	'dbDef' => "VARCHAR(40) NOT NULL", 							'cat' => "docDetails"],
		'doc_blocked'			=> ['type' => 'boolean', 	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "docDetails"],
		'doc_remarks' 			=> ['type' => 'string', 	'dbDef' => "TEXT NOT NULL", 								'cat' => "docDetails"],
		'doc_processedRemarks' 	=> ['type' => 'string', 	'dbDef' => "TEXT NOT NULL",									'cat' => "docDetails", 'disabled' => true, 'content' => 'remarks'],
		'doc_genDocsAssoc' 		=> ['type' => 'string',		'dbDef' => "VARCHAR(200) NOT NULL DEFAULT ''",           	'cat' => "docDetails", 'disabled' => true, 'content'=>'assocArray'],

		'doc_value' 			=> ['type' => 'price',  'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 				'cat' => "docValues", 'subtotals' => "doc_currency"],
		'doc_valueDefCurr'		=> ['type' => 'price',  'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 				'cat' => "docValues", 'subtotals' => true],
		'doc_valueWorkCurr'		=> ['type' => 'price',  'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 				'cat' => "docValues", 'subtotals' => true],
		'doc_currency' 			=> ['type' => 'string', 'dbDef' => "VARCHAR(3) NOT NULL DEFAULT ''",					'cat' => "docValues"],
		'doc_currExchRate'		=> ['type' => 'price',  'dbDef' => "DECIMAL(15,8) NOT NULL DEFAULT '0'", 				'cat' => "docValues"],
		'doc_workCurrExchRate'	=> ['type' => 'price',  'dbDef' => "DECIMAL(15,8) NOT NULL DEFAULT '0'", 				'cat' => "docValues"],

		'doc_respUserId' 		=> ['type' => 'numeric', 'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docUserDetails"],
		'doc_respUserName' 		=> ['type' => 'string',  'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 				'cat' => "docUserDetails"],
		'doc_respOfficeId' 		=> ['type' => 'numeric', 'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docUserDetails"],
		'doc_respOfficeName' 	=> ['type' => 'string',  'dbDef' => "VARCHAR(150) NOT NULL DEFAULT ''", 				'cat' => "docUserDetails"],
		'doc_respDepartmentId'	=> ['type' => 'numeric', 'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docUserDetails"],
		'doc_respDepartmentName'=> ['type' => 'string',  'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''", 				'cat' => "docUserDetails"],
		'doc_addUserId' 		=> ['type' => 'numeric', 'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docUserDetails"],
		'doc_addUserName' 		=> ['type' => 'string',  'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 				'cat' => "docUserDetails"],
		'doc_issueUserId' 		=> ['type' => 'numeric', 'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docUserDetails"],
		'doc_issueUserName' 	=> ['type' => 'string',  'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 				'cat' => "docUserDetails"],
		'doc_voidUserId'		=> ['type' => 'numeric', 'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docUserDetails"],
		'doc_voidUserName' 		=> ['type' => 'string',  'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 				'cat' => "docUserDetails"],
		'doc_blockUserId' 		=> ['type' => 'numeric', 'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 			'cat' => "docUserDetails"],
		'doc_blockUserName' 	=> ['type' => 'string',  'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 				'cat' => "docUserDetails"],

		'doc_addTime' 			=> ['type' => 'datetime', 'dbDef' => "DATETIME NULL",									'cat' => "docOperationTimes"],
		'doc_issueTime' 		=> ['type' => 'datetime', 'dbDef' => "DATETIME NULL DEFAULT NULL",						'cat' => "docOperationTimes"],
		'doc_voidTime' 			=> ['type' => 'datetime', 'dbDef' => "DATETIME NULL DEFAULT NULL",						'cat' => "docOperationTimes"],
		'doc_blockTime' 		=> ['type' => 'datetime', 'dbDef' => "DATETIME NULL DEFAULT NULL",						'cat' => "docOperationTimes"],

		'impDoc_id' 				=> ['type' => 'numeric', 	'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'",			'cat' => "impDocDetails"],
		'impDoc_value' 				=> ['type' => 'price', 		'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "impDocDetails", 'subtotals' => "impDoc_currency"],
		'impDoc_currency' 			=> ['type' => 'string', 	'dbDef' => "VARCHAR(3) NOT NULL DEFAULT ''", 			'cat' => "impDocDetails"],
		'impDoc_externalSystemId' 	=> ['type' => 'numeric',   	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'",	'cat' => "impDocDetails"],
		'impDoc_externalSystemName'	=> ['type' => 'string',    	'dbDef' => "VARCHAR(50) NOT NULL DEFAULT ''",			'cat' => "impDocDetails"],
		'impDoc_systemStatusCode' 	=> ['type' => 'string',    	'dbDef' => "VARCHAR(10) NOT NULL DEFAULT ''",			'cat' => "impDocDetails"],
		'impDoc_processStatusCode' 	=> ['type' => 'string',    	'dbDef' => "VARCHAR(10) NOT NULL DEFAULT ''",			'cat' => "impDocDetails"],
		'impDoc_processStatusName' 	=> ['type' => 'string',    	'dbDef' => "VARCHAR(20) NOT NULL DEFAULT ''",			'cat' => "impDocDetails"],

		'inv_id' 				=> ['type' => 'numeric', 	'dbDef' => "BIGINT UNSIGNED NOT NULL DEFAULT '0'",			'cat' => "invoice"],
		'inv_number' 			=> ['type' => 'numeric', 	'dbDef' => "BIGINT UNSIGNED NOT NULL DEFAULT '0'",			'cat' => "invoice"],
		'inv_date' 				=> ['type' => 'date', 		'dbDef' => "DATE NULL DEFAULT NULL",						'cat' => "invoice"],
		'inv_dateYM' 			=> ['type' => 'yearMonth',	'dbDef' => "DATE NULL DEFAULT NULL",						'cat' => "invoice"],
		'inv_dateY' 			=> ['type' => 'year', 		'dbDef' => "YEAR NULL DEFAULT NULL",						'cat' => "invoice"],
		'inv_idSeries' 			=> ['type' => 'numeric', 	'dbDef' => "MEDIUMINT UNSIGNED NOT NULL DEFAULT '0'",		'cat' => "invoice"],
		'inv_seriesCode' 		=> ['type' => 'string', 	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''", 				'cat' => "invoice"],
		'inv_cashedPercent' 	=> ['type' => 'percent', 	'dbDef' => "DECIMAL(7, 6) NOT NULL DEFAULT '0'", 			'cat' => "invoice"],
		'inv_cashedStatusCode' 	=> ['type' => 'string', 	'dbDef' => "CHAR(1) NOT NULL DEFAULT ''", 					'cat' => "invoice"],
		'inv_cashedStatusName' 	=> ['type' => 'string', 	'dbDef' => "VARCHAR(50) NOT NULL DEFAULT ''", 				'cat' => "invoice"],
		'inv_dueDate' 			=> ['type' => 'date', 		'dbDef' => "DATE NULL DEFAULT NULL", 						'cat' => "invoice"],
		'inv_dueDateYM' 		=> ['type' => 'yearMonth', 	'dbDef' => "DATE NULL DEFAULT NULL", 						'cat' => "invoice"],
		'inv_dueDateY' 			=> ['type' => 'year', 		'dbDef' => "YEAR NULL DEFAULT NULL", 						'cat' => "invoice"],
		'inv_comments' 			=> ['type' => 'string', 	'dbDef' => "TEXT NOT NULL", 								'cat' => "invoice"],
		'inv_formOfPaymentCode' => ['type' => 'string', 	'dbDef' => "VARCHAR(20) NOT NULL DEFAULT ''", 				'cat' => "invoice"],
		'inv_formOfPaymentName' => ['type' => 'string', 	'dbDef' => "VARCHAR(20) NOT NULL DEFAULT ''", 				'cat' => "invoice"],
		'inv_issued' 			=> ['type' => 'boolean', 	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "invoice"],
		'inv_cumulative' 		=> ['type' => 'boolean', 	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "invoice"],
		'inv_roundTotal' 		=> ['type' => 'boolean', 	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'", 		'cat' => "invoice"],
		'inv_processedRemarks'	=> ['type' => 'string', 	'dbDef' => "TEXT NOT NULL", 					 			'cat' => "invoice", 'disabled' => true, 'content' => 'remarks'],
		'inv_genDocsAssoc' 		=> ['type' => 'string',		'dbDef' => "VARCHAR(200) NOT NULL DEFAULT ''",           	'cat' => "invoice", 'disabled' => true, 'content'=>'assocArray'],
		'inv_addTime' 			=> ['type' => 'datetime', 	'dbDef' => "DATETIME NULL", 								'cat' => "invoice"],
		'inv_issueTime' 		=> ['type' => 'datetime', 	'dbDef' => "DATETIME NULL DEFAULT NULL", 					'cat' => "invoice"],

		'inv_clientId'						=> [ 'type' => 'numeric',	'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'", 	'cat' => "invClientUnifDetails"],
		'inv_clientName'					=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(201) NOT NULL DEFAULT ''",      'cat' => "invClientUnifDetails"],
		'inv_clientTypeCode'				=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(2) NOT NULL DEFAULT ''",        'cat' => "invClientUnifDetails"],
		'inv_clientCountryCode'				=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(2) NOT NULL DEFAULT ''",        'cat' => "invClientUnifDetails"],
		'inv_clientCountryName'				=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(50) NOT NULL DEFAULT ''",       'cat' => "invClientUnifDetails"],
		'inv_clientCityId'					=> [ 'type' => 'string',  	'dbDef' => "MEDIUMINT NOT NULL DEFAULT '0'",    	 'cat' => "invClientUnifDetails"],
		'inv_clientCityName'				=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",      'cat' => "invClientUnifDetails"],

		'inv_corporateId'					=> [ 'type' => 'numeric',	'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'",     	'cat' => "invLegalEntityDetails"],
		'inv_corporateAlias'				=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateCompanyName'			=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(170) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateTrustId'				=> [ 'type' => 'numeric', 	'dbDef' => "MEDIUMINT UNSIGNED NOT NULL DEFAULT '0'",	'cat' => "invLegalEntityDetails"],
		'inv_corporateTrustName'			=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateSegmentId'			=> [ 'type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 	'cat' => "invLegalEntityDetails"],
		'inv_corporateSegmentName'			=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateKamId'				=> [ 'type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'",  	'cat' => "invLegalEntityDetails"],
		'inv_corporateKamName'				=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateProcessedRemarks'		=> [ 'type' => 'string',  	'dbDef' => "TEXT NOT NULL",                             'cat' => "invLegalEntityDetails", 'disabled' => true, 'content' => 'remarks'],
		'inv_corporateDuplicated'			=> [ 'type' => 'boolean', 	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'",		'cat' => "invLegalEntityDetails"],
		'inv_corporateOriginalId'			=> [ 'type' => 'numeric', 	'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'",			'cat' => "invLegalEntityDetails"],
		'inv_corporateSelOfficeId'			=> [ 'type' => 'numeric', 	'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'",			'cat' => "invLegalEntityDetails"],
		'inv_corporateSelOfficeName'		=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateSelOfficeCountryCode'	=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(2) NOT NULL DEFAULT ''",            'cat' => "invLegalEntityDetails"],
		'inv_corporateSelOfficeCountryName'	=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(50) NOT NULL DEFAULT ''",           'cat' => "invLegalEntityDetails"],
		'inv_corporateSelOfficeCityId'		=> [ 'type' => 'numeric', 	'dbDef' => "MEDIUMINT UNSIGNED NOT NULL DEFAULT '0'",	'cat' => "invLegalEntityDetails"],
		'inv_corporateSelOfficeCityName'	=> [ 'type' => 'string',  	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateDomainId'				=> [ 'type' => 'numeric',   'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'",    'cat' => "invLegalEntityDetails"],
		'inv_corporateDomainName'			=> [ 'type' => 'string',    'dbDef' => "VARCHAR(150) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],
		'inv_corporateDomainCategoryId'		=> [ 'type' => 'numeric',   'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'",    'cat' => "invLegalEntityDetails"],
		'inv_corporateDomainCategoryName'	=> [ 'type' => 'string',    'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invLegalEntityDetails"],

		'inv_customerId'					=> [ 'type' => 'numeric',	'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'",    		'cat' => "invIndividualDetails"],
		'inv_customerName'					=> [ 'type' => 'string', 	'dbDef' => "VARCHAR(201) NOT NULL DEFAULT ''",          'cat' => "invIndividualDetails"],
		'inv_customerSegmentId'				=> [ 'type' => 'numeric',	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 	'cat' => "invIndividualDetails"],
		'inv_customerSegmentName'			=> [ 'type' => 'string', 	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invIndividualDetails"],
		'inv_customerCountryCode'			=> [ 'type' => 'string', 	'dbDef' => "VARCHAR(2) NOT NULL DEFAULT ''",            'cat' => "invIndividualDetails"],
		'inv_customerCountryName'			=> [ 'type' => 'string', 	'dbDef' => "VARCHAR(50) NOT NULL DEFAULT ''",          	'cat' => "invIndividualDetails"],
		'inv_customerCityId'				=> [ 'type' => 'numeric',	'dbDef' => "MEDIUMINT UNSIGNED NOT NULL DEFAULT '0'",	'cat' => "invIndividualDetails"],
		'inv_customerCityName'				=> [ 'type' => 'string', 	'dbDef' => "VARCHAR(100) NOT NULL DEFAULT ''",          'cat' => "invIndividualDetails"],
		'inv_customerDuplicated'			=> [ 'type' => 'boolean',	'dbDef' => "TINYINT UNSIGNED NOT NULL DEFAULT '0'",  	'cat' => "invIndividualDetails"],
		'inv_customerOriginalId'			=> [ 'type' => 'numeric',	'dbDef' => "INT UNSIGNED NOT NULL DEFAULT '0'",    		'cat' => "invIndividualDetails"],

		'inv_currency'			=> ['type' => 'string', 'dbDef' => "VARCHAR(3) NOT NULL DEFAULT ''",			'cat' => "invValues"],
		'inv_currExchRate' 		=> ['type' => 'price', 	'dbDef' => "DECIMAL(15,8) NOT NULL DEFAULT '0'", 		'cat' => "invValues"],
		'inv_workCurrExchRate'	=> ['type' => 'price', 	'dbDef' => "DECIMAL(15,8) NOT NULL DEFAULT '0'",		'cat' => "invValues"],
		'inv_value' 			=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => 'inv_currency'],
		'inv_vat' 				=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => 'inv_currency'],
		'inv_total' 			=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => 'inv_currency'],
		'inv_valueDefCurr' 		=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => true],
		'inv_vatDefCurr' 		=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => true],
		'inv_totalDefCurr' 		=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => true],
		'inv_valueWorkCurr' 	=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => true],
		'inv_vatWorkCurr' 		=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => true],
		'inv_totalWorkCurr' 	=> ['type' => 'price', 	'dbDef' => "DECIMAL(16,3) NOT NULL DEFAULT '0'", 		'cat' => "invValues", 'subtotals' => true],

		'inv_userId' 				=> ['type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 	'cat' => "invUserDetails"],
		'inv_userName'				=> ['type' => 'string', 	'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 			'cat' => "invUserDetails"],
		'inv_officeId' 				=> ['type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 	'cat' => "invUserDetails"],
		'inv_officeName' 			=> ['type' => 'string', 	'dbDef' => "VARCHAR(150) NOT NULL DEFAULT ''", 			'cat' => "invUserDetails"],
		'inv_addUserId'				=> ['type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 	'cat' => "invUserDetails"],
		'inv_addUserName' 			=> ['type' => 'string', 	'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 			'cat' => "invUserDetails"],
		'inv_issueUserId' 			=> ['type' => 'numeric', 	'dbDef' => "SMALLINT UNSIGNED NOT NULL DEFAULT '0'", 	'cat' => "invUserDetails"],
		'inv_issueUserName' 		=> ['type' => 'string', 	'dbDef' => "VARCHAR(101) NOT NULL DEFAULT ''", 			'cat' => "invUserDetails"],

	];

	/**
	 * The primary key column.
	 * @var string
	 */
	protected string $primaryKeyColumn = 'doc_id';

	/**
	 * The columns that are forced into the report.
	 * @var array
	 */
	protected array $forcedColumns = [ 'inv_clientTypeCode' ]; // for filtering

	/**
	 * The columns dependencies list.
	 * @var array
	 */
	protected array $columnsDependencies = [

		'doc_seriesCode'					=> ['doc_seriesId'],
		'doc_typeName'						=> ['doc_typeCode'],
		'doc_bankAccount'					=> ['doc_bankAccountId'],
		'doc_bankId'						=> ['doc_bankAccountId'],
		'doc_bankName'						=> ['doc_bankId'],
		'doc_bankOfficeId'					=> ['doc_bankAccountId'],
		'doc_bankOfficeName'				=> ['doc_bankOfficeId'],

		'doc_respUserName'					=> ['doc_respUserId'],
		'doc_respOfficeName'				=> ['doc_respOfficeId'],
		'doc_respDepartmentName'			=> ['doc_respDepartmentId'],
		'doc_addUserName'					=> ['doc_addUserId'],
		'doc_issueUserName'					=> ['doc_issueUserId'],
		'doc_voidUserName'					=> ['doc_voidUserId'],
		'doc_blockUserName'					=> ['doc_blockUserId'],
		'doc_voidReasonName' 				=> ['doc_voidReasonCode'],

		'impDoc_externalSystemName'			=> ['impDoc_externalSystemId'],
		'impDoc_processStatusName'			=> ['impDoc_processStatusCode'],

		'inv_seriesCode'					=> ['inv_idSeries'],
		'inv_cashedStatusName'				=> ['inv_cashedStatusCode'],
		'inv_formOfPaymentName'				=> ['inv_formOfPaymentCode'],
		'inv_userName'						=> ['inv_userId'],
		'inv_officeName'					=> ['inv_officeId'],
		'inv_addUserName'					=> ['inv_addUserId'],
		'inv_issueUserName'					=> ['inv_issueUserId'],

		'inv_corporateId'					=> ['inv_id'],
		'inv_corporateCompanyName'			=> ['inv_corporateId'],
		'inv_corporateAlias'				=> ['inv_corporateId'],
		'inv_corporateKamId'				=> ['inv_corporateId'],
		'inv_corporateKamName'				=> ['inv_corporateKamId'],
		'inv_corporateTrustId'				=> ['inv_corporateId'],
		'inv_corporateTrustName'			=> ['inv_corporateTrustId'],
		'inv_corporateSegmentId'			=> ['inv_corporateId'],
		'inv_corporateSegmentName'			=> ['inv_corporateSegmentId'],
		'inv_corporateDuplicated'			=> ['inv_corporateId'],
		'inv_corporateSelOfficeId'			=> ['inv_corporateId'],
		'inv_corporateSelOfficeName'		=> ['inv_corporateSelOfficeId'],
		'inv_corporateSelOfficeCountryCode' => ['inv_corporateSelOfficeId'],
		'inv_corporateSelOfficeCountryName'	=> ['inv_corporateSelOfficeCountryCode'],
		'inv_corporateSelOfficeCityId'		=> ['inv_corporateSelOfficeId'],
		'inv_corporateSelOfficeCityName'	=> ['inv_corporateSelOfficeCityId'],
		'inv_corporateDomainName'			=> ['inv_corporateDomainId'],
		'inv_corporateDomainCategoryName'	=> ['inv_corporateDomainCategoryId'],

		'inv_customerId'					=> ['inv_id'],
		'inv_customerName'					=> ['inv_customerId'],
		'inv_customerSegmentId'				=> ['inv_customerId'],
		'inv_customerSegmentName'			=> ['inv_customerSegmentId'],
		'inv_customerDuplicated'			=> ['inv_customerId'],
		'inv_customerCountryCode'			=> ['inv_customerId'],
		'inv_customerCountryName'			=> ['inv_customerCountryCode'],
		'inv_customerCityId'				=> ['inv_customerId'],
		'inv_customerCityName'				=> ['inv_customerCityId'],

		'inv_clientId'						=> ['inv_corporateId', 'inv_customerId'],
		'inv_clientName'					=> ['inv_corporateAlias', 'inv_customerName'],
		'inv_clientTypeCode'				=> ['inv_corporateId', 'inv_customerId'],
		'inv_clientCountryCode'				=> ['inv_corporateSelOfficeCountryCode', 'inv_customerId'],
		'inv_clientCityId'					=> ['inv_corporateSelOfficeCityId', 'inv_customerId'],
		'inv_clientCountryName'				=> ['inv_clientCountryCode'],
		'inv_clientCityName'				=> ['inv_clientCityId'],

	];


}