static public function fromArray($array) {

		$status = new EETReport();

		$status->rawData = $array;

		if (array_key_exists('eetStatus', $array)) {
			$status->eetStatus = $array['eetStatus'];
		}
		if (array_key_exists('data', $array)) {
			$status->data = EETData::fromArray($array['data']);
		}
		if (array_key_exists('verificationMode', $array)) {
			$status->verificationMode = $array['verificationMode'] ? true : false;
		}
		if (array_key_exists('vatId', $array)) {
			$status->vatId = $array['vatId'];
		}
		if (array_key_exists('receiptNumber', $array)) {
			$status->receiptNumber = $array['receiptNumber'];
		}
		if (array_key_exists('receiptTime', $array)) {
			$status->receiptTime = new DateTime($array['receiptTime']);
		}
		if (array_key_exists('evidenceMode', $array)) {
			$status->evidenceMode = $array['evidenceMode'];
		}
		if (array_key_exists('uuid', $array)) {
			$status->uuid = $array['uuid'];
		}
		if (array_key_exists('sendTime', $array)) {
			$status->sendTime = new DateTime($array['sendTime']);
		}
		if (array_key_exists('acceptTime', $array)) {
			$status->acceptTime = new DateTime($array['acceptTime']);
		}
		if (array_key_exists('bkp', $array)) {
			$status->bkp = $array['bkp'];
		}
		if (array_key_exists('pkp', $array)) {
			$status->pkp = $array['pkp'];
		}
		if (array_key_exists('fik', $array)) {
			$status->fik = $array['fik'];
		}
		if (array_key_exists('rejectTime', $array)) {
			$status->rejectTime = new DateTime($array['rejectTime']);
		}

		if (array_key_exists('error', $array) and $array['error']) {
			$status->error = new EETError($array['error']['code'], $array['error']['desc']);
		}

		if (array_key_exists('warning', $array) and is_array($array['warning'])) {
			foreach ($array['warning'] as $warningData) {
				$status->warning[] = new EETWarning($warningData['code'], $warningData['desc']);
			}
		}

		return $status;

	}