Procházet zdrojové kódy

Merge branch 'master' of bn.git:plabudda/se

Piotr Labudda před 8 roky
rodič
revize
4c623bb116

+ 1 - 1
SE/projects/bocian

@@ -1 +1 @@
-Subproject commit 075a63bddb714e34d8c63fd35df12896bbef4bec
+Subproject commit 14f9dfb6bffdc91392b2932021c5847689b67950

+ 2 - 0
SE/schema/ant-object/default_db.BI_audit_ENERGA_FAKTURY/BI_audit_ENERGA_FAKTURY/BI_audit_ENERGA_FAKTURY.xsd

@@ -100,6 +100,8 @@
                </xs:restriction>
             </xs:simpleType>
          </xs:element>
+         <xs:element name="REF" type="xs:string"/>
+         <xs:element name="AWKEY" type="xs:string"/>
          <xs:element name="A_RECORD_CREATE_DATE" type="xs:dateTime"
             id="RGA_FAKTURY___d5e4865-1_A_RECORD_C"/>
          <xs:element name="A_RECORD_CREATE_AUTHOR" type="xs:string"

+ 108 - 0
SE/schema/ant-object/default_db.BI_audit_ENERGA_FAKTURY_test_sync/BI_audit_ENERGA_FAKTURY_test_sync/BI_audit_ENERGA_FAKTURY_test_sync.xsd

@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2"
+   xmlns:Types__x3A__default_Default="https://biuro.biall-net.pl/wfs/default_db/Types/Default.xsd"
+   xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty"
+   xmlns:default_db__x3A__BI_audit_ENERGA_FAKTURY_test_sync="https://biuro.biall-net.pl/wfs/default_db/table/BI_audit_ENERGA_FAKTURY_test_sync.xsd"
+   xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
+   xmlns:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
+   targetNamespace="https://biuro.biall-net.pl/wfs/default_db/table/BI_audit_ENERGA_FAKTURY_test_sync.xsd"
+   vc:minVersion="1.1">
+   <xs:complexType name="BI_audit_ENERGA_FAKTURY_test_sync" id="RGA_FAKTURY___d5e4822-1_BI_audit_E">
+      <xs:annotation>
+         <xs:documentation>Tabela do testowania mechanizmow synchronizacji do tabeli BI_audit_ENERGA_FAKTURY, ktora symuluje zewnetrzene dane do pobierania i synchronizacji</xs:documentation>
+      </xs:annotation>
+      <xs:sequence id="RGA_FAKTURY___d5e4823-1">
+         <xs:element name="ID" type="xs:integer" id="RGA_FAKTURY___d5e4825-1_ID"/>
+         <xs:element name="Nazwa" id="RGA_FAKTURY___d5e4826-1_Nazwa">
+            <xs:simpleType id="RGA_FAKTURY___d5e4827-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="35"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="NIP" id="RGA_FAKTURY___d5e4830-1_NIP">
+            <xs:simpleType id="RGA_FAKTURY___d5e4831-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="16"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="ulica" id="RGA_FAKTURY___d5e4834-1_ulica">
+            <xs:simpleType id="RGA_FAKTURY___d5e4835-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="35"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="nr" id="RGA_FAKTURY___d5e4838-1_nr">
+            <xs:simpleType id="RGA_FAKTURY___d5e4839-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="10"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="nrLokalu" id="RGA_FAKTURY___d5e4842-1_nrLokalu">
+            <xs:simpleType id="RGA_FAKTURY___d5e4843-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="10"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="kodPocztowy" id="RGA_FAKTURY___d5e4846-1_kodPocztow">
+            <xs:simpleType id="RGA_FAKTURY___d5e4847-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="10"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="miejscowosc" id="RGA_FAKTURY___d5e4850-1_miejscowos">
+            <xs:simpleType id="RGA_FAKTURY___d5e4851-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="40"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="Kwota_netto" type="xs:double" id="RGA_FAKTURY___d5e4854-1_Kwota_nett"/>
+         <xs:element name="Vat" type="xs:double" id="RGA_FAKTURY___d5e4855-1_Vat"/>
+         <xs:element name="Kwota_brutto" type="xs:double" id="RGA_FAKTURY___d5e4857-1_Kwota_brut"/>
+         <xs:element name="usluga" type="xs:string" id="RGA_FAKTURY___d5e4858-1_usluga"/>
+         <xs:element name="data_wystawienia" type="xs:date" id="RGA_FAKTURY___d5e4859-1_data_wysta"/>
+         <xs:element name="data_sprzedazy" type="xs:date" id="RGA_FAKTURY___d5e4860-1_data_sprze"/>
+         <xs:element name="jednostka_organizacyjna" id="RGA_FAKTURY___d5e4861-1_jednostka_">
+            <xs:simpleType id="RGA_FAKTURY___d5e4862-1">
+               <xs:restriction base="xs:string">
+                  <xs:maxLength value="4"/>
+               </xs:restriction>
+            </xs:simpleType>
+         </xs:element>
+         <xs:element name="REF" type="xs:string"/>
+         <xs:element name="AWKEY" type="xs:string"/>
+         <xs:element name="A_RECORD_CREATE_DATE" type="xs:dateTime"
+            id="RGA_FAKTURY___d5e4865-1_A_RECORD_C"/>
+         <xs:element name="A_RECORD_CREATE_AUTHOR" type="xs:string"
+            id="RGA_FAKTURY___d5e4866-1_A_RECORD_C"/>
+         <xs:element name="A_RECORD_UPDATE_DATE" type="xs:dateTime"
+            id="RGA_FAKTURY___d5e4867-1_A_RECORD_U"/>
+         <xs:element name="A_RECORD_UPDATE_AUTHOR" type="xs:string"
+            id="RGA_FAKTURY___d5e4868-1_A_RECORD_U"/>
+         <!--<xs:element name="L_APPOITMENT_DATE" type="xs:string"
+            id="RGA_FAKTURY___d5e4869-1_L_APPOITME"/>
+         <xs:element name="L_APPOITMENT_USER" type="xs:string"
+            id="RGA_FAKTURY___d5e4824-1_L_APPOITME"/>
+         <xs:element name="L_APPOITMENT_PERIOD" type="xs:string"
+            id="RGA_FAKTURY___d5e4870-1_L_APPOITME"/>
+         <xs:element name="L_APPOITMENT_INFO" type="xs:string"
+            id="RGA_FAKTURY___d5e4872-1_L_APPOITME"/>
+         <xs:element name="L_APPOITMENT_TYPE" type="xs:string"
+            id="RGA_FAKTURY___d5e4873-1_L_APPOITME"/>-->
+         <!--<xs:element name="A_STATUS" type="default_db__x3A__BI_audit_ENERGA_FAKTURY:A_STATUS_Type"
+            id="RGA_FAKTURY___d5e4874-1_A_STATUS"/>-->
+         <!--  <xs:element name="A_STATUS_INFO" type="xs:string" id="RGA_FAKTURY___d5e4875-1_A_STATUS_I"/>-->
+      </xs:sequence>
+      <xs:attribute name="label" type="xs:string"/>
+      <xs:assert test="@label = concat(substring(Nazwa, 1, 10), ' ', Kwota_netto)"/>
+   </xs:complexType>
+   <xs:element name="BI_audit_ENERGA_FAKTURY_test_sync"
+      type="default_db__x3A__BI_audit_ENERGA_FAKTURY_test_sync:BI_audit_ENERGA_FAKTURY_test_sync"
+      id="RGA_FAKTURY___d5e4878-1_BI_audit_E"> </xs:element>
+</xs:schema>

+ 0 - 0
SE/schema/ant-object/default_db.BI_audit_ENERGA_FAKTURY_test_sync/BI_audit_ENERGA_FAKTURY_test_sync/build.xml


+ 41 - 32
SE/schema/ant-object/default_db.BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI.xsd

@@ -87,36 +87,43 @@
                </xs:appinfo>
             </xs:annotation>
          </xs:element>-->
-         <xs:element name="Tytul_dokumentu" type="xs:string" id="KONTRAHENCI___d4e4990-1_Tytul_doku"/>
-         <xs:element name="Dodano" type="xs:string" id="KONTRAHENCI___d4e4992-1_Dodano"/>
-         <xs:element name="Typ_kontrahenta" type="xs:string" id="KONTRAHENCI___d4e4993-1_Typ_kontra"/>
+         <xs:element name="Tytul_dokumentu" type="xs:string" id="KONTRAHENCI___d4e4990-1_Tytul_doku"
+            minOccurs="0"/>
+         <xs:element name="Dodano" type="xs:string" id="KONTRAHENCI___d4e4992-1_Dodano"
+            minOccurs="0"/>
+         <xs:element name="Typ_kontrahenta" type="xs:string" id="KONTRAHENCI___d4e4993-1_Typ_kontra"
+            minOccurs="0"/>
          <xs:element name="Numer_kontrahenta" type="xs:integer"
-            id="KONTRAHENCI___d4e4994-1_Numer_kont"/>
+            id="KONTRAHENCI___d4e4994-1_Numer_kont" minOccurs="0"/>
          <xs:element name="Nazwa_grupy_kapitalowej" type="xs:string"
-            id="KONTRAHENCI___d4e4995-1_Nazwa_grup"/>
+            id="KONTRAHENCI___d4e4995-1_Nazwa_grup" minOccurs="0"/>
          <xs:element name="Podmiot_dominujacy" type="xs:string"
-            id="KONTRAHENCI___d4e4996-1_Podmiot_do"/>
+            id="KONTRAHENCI___d4e4996-1_Podmiot_do" minOccurs="0"/>
          <xs:element name="Pelna_nazwa_kontrahenta" type="xs:string"
-            id="KONTRAHENCI___d4e4997-1_Pelna_nazw"/>
+            id="KONTRAHENCI___d4e4997-1_Pelna_nazw" minOccurs="0"/>
          <xs:element name="Skrocona_Nazwa_Kontrahenta" type="xs:string"
-            id="KONTRAHENCI___d4e4998-1_Skrocona_N"/>
+            id="KONTRAHENCI___d4e4998-1_Skrocona_N" minOccurs="0"/>
          <xs:element name="Forma_prawna_dzialalnosci" type="xs:string"
-            id="KONTRAHENCI___d4e4999-1_Forma_praw"/>
-         <xs:element name="NIP" type="xs:string" id="KONTRAHENCI___d4e5000-1_NIP"/>
-         <xs:element name="REGON" type="xs:string" id="KONTRAHENCI___d4e5001-1_REGON"/>
-         <xs:element name="PESEL" type="xs:string" id="KONTRAHENCI___d4e5002-1_PESEL"/>
-         <xs:element name="KRS" type="xs:int" id="KONTRAHENCI___d5e5110-1_KRS"/>
-         <xs:element name="Mail" type="xs:string" id="KONTRAHENCI___d4e5004-1_Mail"/>
-         <xs:element name="Fax" type="xs:string" id="KONTRAHENCI___d4e5005-1_Fax"/>
-         <xs:element name="Telefon" type="xs:string" id="KONTRAHENCI___d4e5006-1_Telefon"/>
-         <xs:element name="Kraj" type="xs:string" id="KONTRAHENCI___d4e5007-1_Kraj"/>
-         <xs:element name="Kod_pocztowy" type="xs:string" id="KONTRAHENCI___d4e5008-1_Kod_poczto"/>
-         <xs:element name="Miejscowosc" type="xs:string" id="KONTRAHENCI___d4e5009-1_Miejscowos"/>
-         <xs:element name="Ulica" type="xs:string" id="KONTRAHENCI___d4e5010-1_Ulica"/>
-         <xs:element name="Numer_budynku" type="xs:string" id="KONTRAHENCI___d4e5011-1_Numer_budy"/>
+            id="KONTRAHENCI___d4e4999-1_Forma_praw" minOccurs="0"/>
+         <xs:element name="NIP" type="xs:string" id="KONTRAHENCI___d4e5000-1_NIP" minOccurs="0"/>
+         <xs:element name="REGON" type="xs:string" id="KONTRAHENCI___d4e5001-1_REGON" minOccurs="0"/>
+         <xs:element name="PESEL" type="xs:string" id="KONTRAHENCI___d4e5002-1_PESEL" minOccurs="0"/>
+         <xs:element name="KRS" type="xs:int" id="KONTRAHENCI___d5e5110-1_KRS" minOccurs="0"/>
+         <xs:element name="Mail" type="xs:string" id="KONTRAHENCI___d4e5004-1_Mail" minOccurs="0"/>
+         <xs:element name="Fax" type="xs:string" id="KONTRAHENCI___d4e5005-1_Fax" minOccurs="0"/>
+         <xs:element name="Telefon" type="xs:string" id="KONTRAHENCI___d4e5006-1_Telefon"
+            minOccurs="0"/>
+         <xs:element name="Kraj" type="xs:string" id="KONTRAHENCI___d4e5007-1_Kraj" minOccurs="0"/>
+         <xs:element name="Kod_pocztowy" type="xs:string" id="KONTRAHENCI___d4e5008-1_Kod_poczto"
+            minOccurs="0"/>
+         <xs:element name="Miejscowosc" type="xs:string" id="KONTRAHENCI___d4e5009-1_Miejscowos"
+            minOccurs="0"/>
+         <xs:element name="Ulica" type="xs:string" id="KONTRAHENCI___d4e5010-1_Ulica" minOccurs="0"/>
+         <xs:element name="Numer_budynku" type="xs:string" id="KONTRAHENCI___d4e5011-1_Numer_budy"
+            minOccurs="0"/>
          <xs:element name="Numer_mieszkania_lokalu" type="xs:string"
-            id="KONTRAHENCI___d4e5012-1_Numer_mies"/>
-         <xs:element name="uwagi" id="KONTRAHENCI___d5e5121-1_uwagi">
+            id="KONTRAHENCI___d4e5012-1_Numer_mies" minOccurs="0"/>
+         <xs:element name="uwagi" id="KONTRAHENCI___d5e5121-1_uwagi" minOccurs="0">
             <xs:simpleType id="KONTRAHENCI___d5e5122-1">
                <xs:restriction base="xs:string">
                   <xs:maxLength value="255"/>
@@ -124,9 +131,11 @@
             </xs:simpleType>
          </xs:element>
          <xs:element name="ownCompany" id="KONTRAHENCI___d5e5125-1_ownCompany"
-            type="default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:ownCompany_Type"> </xs:element>
-         <xs:element name="TERYT_SYM" type="xs:integer" id="KONTRAHENCI___d4e5013-1_TERYT_SYM"/>
-         <xs:element name="TERYT_SYM_UL" type="xs:integer" id="KONTRAHENCI___d4e5014-1_TERYT_SYM_"/>
+            type="default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:ownCompany_Type" minOccurs="0"> </xs:element>
+         <xs:element name="TERYT_SYM" type="xs:integer" id="KONTRAHENCI___d4e5013-1_TERYT_SYM"
+            minOccurs="0"/>
+         <xs:element name="TERYT_SYM_UL" type="xs:integer" id="KONTRAHENCI___d4e5014-1_TERYT_SYM_"
+            minOccurs="0"/>
          <xs:element name="A_RECORD_CREATE_DATE" type="xs:dateTime"
             id="KONTRAHENCI___d5e5114-1_A_RECORD_C"/>
          <xs:element name="A_RECORD_CREATE_AUTHOR" type="xs:string"
@@ -135,9 +144,11 @@
             id="KONTRAHENCI___d5e5116-1_A_RECORD_U"/>
          <xs:element name="A_RECORD_UPDATE_AUTHOR" type="xs:string"
             id="KONTRAHENCI___d5e5117-1_A_RECORD_U"/>
-         <xs:element name="A_CLASSIFIED" type="xs:string" id="KONTRAHENCI___d4e4977-1_A_CLASSIFI"/>
-         <xs:element name="A_ADM_COMPANY" type="xs:string" id="KONTRAHENCI___d4e4983-1_A_ADM_COMP"/>
-         <xs:element name="cached" id="KONTRAHENCI___d5e5079-1_cached" type="xs:int">
+         <xs:element name="A_CLASSIFIED" type="xs:string" id="KONTRAHENCI___d4e4977-1_A_CLASSIFI"
+            minOccurs="0"/>
+         <xs:element name="A_ADM_COMPANY" type="xs:string" id="KONTRAHENCI___d4e4983-1_A_ADM_COMP"
+            minOccurs="0"/>
+         <xs:element name="cached" id="KONTRAHENCI___d5e5079-1_cached" type="xs:int" minOccurs="0">
             <xs:annotation>
                <xs:documentation>Opis aktyalny właściwy w obiekcie BI_audit_ENERGA_PRACOWNICY
                   (referencja).</xs:documentation>
@@ -159,9 +170,7 @@
             <xs:annotation>
                <xs:appinfo>
                   <system_cache__appinfo:flat_relation_cache>
-                     <system_cache__appinfo:source system_cache__appinfo:name="NIP"
-                        system_cache__appinfo:xpath="default_db__x3A__BI_audit_taxpayer:BI_audit_taxpayer/nip"
-                        system_cache__appinfo:ref_engine="view"/>
+                     <system_cache__appinfo:source system_cache__appinfo:name="NIP" system_cache__appinfo:xpath="default_db__x3A__BI_audit_taxpayer:BI_audit_taxpayer/nip" system_cache__appinfo:ref_engine="view"/>
                   </system_cache__appinfo:flat_relation_cache>
                </xs:appinfo>
             </xs:annotation>

+ 58 - 0
SE/schema/ant-object/default_db._SYNC_DATABASE_TABLE_STATE/_SYNC_DATABASE_TABLE_STATE/_SYNC_DATABASE_TABLE_STATE.xsd

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
+    xmlns:p5Type="http://biuro.biall-net.pl/p5/schema/types" elementFormDefault="qualified"
+    targetNamespace="https://biuro.biall-net.pl/wfs/default_db/table/_SYNC_DATABASE_TABLE_STATE"
+    vc:minVersion="1.1"
+    xmlns:default_db__x3A___SYNC_DATABASE_TABLE_STATE="https://biuro.biall-net.pl/wfs/default_db/table/_SYNC_DATABASE_TABLE_STATE">
+    <xs:import namespace="http://biuro.biall-net.pl/p5/schema/types"
+        schemaLocation="http://biuro.biall-net.pl/p5/schema/types.xsd"/>
+    <xs:simpleType name="A_STATUS">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="WAITING"/>
+            <xs:enumeration value="NORMAL"/>
+            <xs:enumeration value="MONITOR"/>
+            <xs:enumeration value="WARNING"/>
+            <xs:enumeration value="OFF_SOFT"/>
+            <xs:enumeration value="OFF_HARD"/>
+            <xs:enumeration value="DELETED"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="L_APPOITMENT_TYPE">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value=""/>
+            <xs:enumeration value="ARRANGED"/>
+            <xs:enumeration value="TO_ARRANGE"/>
+            <xs:enumeration value="CANCELLED"/>
+            <xs:enumeration value="TO_CANCEL"/>
+            <xs:enumeration value="RELATE"/>
+            <xs:enumeration value="WAIT"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:complexType name="_SYNC_DATABASE_TABLE_STATE">
+        <xs:sequence>
+            <xs:element name="ID" minOccurs="0" type="xs:int"/>
+            <xs:element name="DATABASE_SYNCED_ID" minOccurs="0" type="xs:int"/>
+            <xs:element name="DATABASE_LOCAL_ID" minOccurs="0" type="xs:int"/>
+            <xs:element name="TABLE_NAME" minOccurs="0" type="xs:NCName"/>
+            <xs:element name="LAST_SYNCED" minOccurs="0" type="xs:dateTime"/>
+            <xs:element name="A_RECORD_CREATE_DATE" minOccurs="0" nillable="true" type="xs:dateTime"/>
+            <xs:element name="A_RECORD_CREATE_AUTHOR" minOccurs="0" nillable="true" type="xs:string"/>
+            <xs:element name="A_RECORD_UPDATE_DATE" minOccurs="0" nillable="true" type="xs:dateTime"/>
+            <xs:element name="A_RECORD_UPDATE_AUTHOR" minOccurs="0" type="xs:string"/>
+            <xs:element name="L_APPOITMENT_DATE" minOccurs="0" type="xs:dateTime"/>
+            <xs:element name="L_APPOITMENT_USER" minOccurs="0" type="xs:string"/>
+            <xs:element name="L_APPOITMENT_PERIOD" minOccurs="0" type="xs:int"/>
+            <xs:element name="L_APPOITMENT_INFO" minOccurs="0" type="xs:string"/>
+            <xs:element name="L_APPOITMENT_TYPE" minOccurs="0" nillable="true"
+                type="default_db__x3A___SYNC_DATABASE_TABLE_STATE:L_APPOITMENT_TYPE"> </xs:element>
+            <xs:element name="A_STATUS" minOccurs="0" nillable="true" default="WAITING"
+                type="default_db__x3A___SYNC_DATABASE_TABLE_STATE:A_STATUS"> </xs:element>
+            <xs:element name="A_STATUS_INFO" minOccurs="0" type="xs:string"/>
+            <xs:element name="A_ADM_COMPANY" minOccurs="0" type="xs:string"/>
+            <xs:element name="A_CLASSIFIED" minOccurs="0" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:element name="_SYNC_DATABASE_TABLE_STATE"
+        type="default_db__x3A___SYNC_DATABASE_TABLE_STATE:_SYNC_DATABASE_TABLE_STATE"/>
+</xs:schema>

+ 1 - 0
SE/schema/ant-object/default_db._SYNC_DATABASE_TABLE_STATE/_SYNC_DATABASE_TABLE_STATE/build.xml

@@ -0,0 +1 @@
+<empty/>

+ 57 - 0
SE/se-lib/FileStorage.php

@@ -1122,4 +1122,61 @@ CREATE TABLE IF NOT EXISTS `CRM_FILES__#DEV__#VERSIONS` (
 		return false;
 	}
 
+	public static function getMimeType($file) {
+		if (!is_string($file)) return false;
+
+		$mimeTypes = [
+			'txt' => 'text/plain',
+			'htm' => 'text/html',
+			'html' => 'text/html',
+			'php' => 'text/html',
+			'css' => 'text/css',
+			'js' => 'application/javascript',
+			'json' => 'application/json',
+			'xml' => 'application/xml',
+			'swf' => 'application/x-shockwave-flash',
+			'flv' => 'video/x-flv',
+			'png' => 'image/png',
+			'jpe' => 'image/jpeg',
+			'jpeg' => 'image/jpeg',
+			'jpg' => 'image/jpeg',
+			'gif' => 'image/gif',
+			'bmp' => 'image/bmp',
+			'ico' => 'image/vnd.microsoft.icon',
+			'tiff' => 'image/tiff',
+			'tif' => 'image/tiff',
+			'svg' => 'image/svg+xml',
+			'svgz' => 'image/svg+xml',
+			'zip' => 'application/zip',
+			'rar' => 'application/x-rar-compressed',
+			'exe' => 'application/x-msdownload',
+			'msi' => 'application/x-msdownload',
+			'cab' => 'application/vnd.ms-cab-compressed',
+			'mp3' => 'audio/mpeg',
+			'qt' => 'video/quicktime',
+			'mov' => 'video/quicktime',
+			'pdf' => 'application/pdf',
+			'psd' => 'image/vnd.adobe.photoshop',
+			'ai' => 'application/postscript',
+			'eps' => 'application/postscript',
+			'ps' => 'application/postscript',
+			'doc' => 'application/msword',
+			'rtf' => 'application/rtf',
+			'xls' => 'application/vnd.ms-excel',
+			'ppt' => 'application/vnd.ms-powerpoint',
+			'odt' => 'application/vnd.oasis.opendocument.text',
+			'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
+		];
+
+		$ext = pathinfo($file)['extension'];
+		if (isset($mimeTypes[$ext])) return $mimeTypes[$ext];
+
+		if (!is_file($file)) return false;
+		if (!is_readable($file)) return false;
+		$finfo = finfo_open(FILEINFO_MIME_TYPE);
+		$mimeType = finfo_file($finfo, $file);
+		finfo_close($finfo);
+		return $mimeType;
+	}
+
 }

+ 48 - 0
SE/se-lib/Route/HtaccessGetFile.php

@@ -0,0 +1,48 @@
+<?php
+
+Lib::loadClass('RouteBase');
+Lib::loadClass('FoldersConfig');
+Lib::loadClass('FileStorage');
+
+class Route_HtaccessGetFile extends RouteBase {
+
+	public function handleAuth() {
+
+		if (!User::logged()) {
+			throw new HttpException('Unauthorized', 401);
+		}
+
+	}
+
+	public function defaultAction() {
+
+		try {
+
+			$file = V::get('file', '', $_GET);
+			if (!$file) throw new Exception('Empty parameter');
+			if (preg_grep('/^\./', explode('/', $file))) throw new Exception("Access denied (dot at the beginning of each path's element not allowed) - {$file}");
+			$file = FoldersConfig::getRootPoint('mount_point') . DIRECTORY_SEPARATOR . $file;
+			if (!file_exists($file)) throw new Exception("File not found - {$file}");
+			if (!is_file($file)) throw new Exception("It's not a file - {$file}");
+			if (!is_readable($file)) throw new Exception("Cannot read file - {$file}");
+
+			$fileType = FileStorage::getMimeType($file);
+			$fileName = basename($file);
+			$fileSize = filesize($file);
+
+			header("Content-Type: {$fileType}");
+			header("Content-Disposition: filename={$fileName};");
+			header("Content-Transfer-Encoding: binary");
+			header("Content-Length: {$fileSize}");
+			echo file_get_contents($file);
+
+		} catch (Exception $e) {
+
+			error_log($e->getMessage());
+			header('Location: ' . Request::getPathUri());
+
+		}
+
+	}
+
+}

+ 1 - 1
SE/superedit-SQIX_STRUCTURE_DB_SYNC.php

@@ -344,7 +344,7 @@ $TABLES_STRUCTURE_arr['BiAudit'] = array(
 	'BI_audit_MSIG_PKD_HIST',
 	'BI_audit_operational_raport_note',
 	'BI_audit_operational_raport_note_HIST',
-	'BI_audit_taxpayer',
+	'BI_audit_taxpayer','BI_audit_ENERGA_FAKTURY_test_sync','BI_audit_ENERGA_FAKTURY_test_sync_HIST',
 );
 
 //$TABLES_STRUCTURE_DATA_arr['BiAudit'] = array('BI_audit_ALL','BI_audit_ALL_ref','BI_audit_ALL_ref_RELATIONS','BI_audit_CEIDG','BI_audit_CEIDG_pelnomocnicy','BI_audit_CEIDG_powiazania','BI_audit_KRS','BI_audit_KRS_company','BI_audit_KRS_person','CRM__#REF_TABLE__11','CRM__#REF_TABLE__12','CRM__#REF_TABLE__18','CRM__#REF_TABLE__19');