= Konfiguracja opcji zawartych w config.inc = Wiele opcji konfiguracyjnych właściwych dla całego klastra eDokumenty modyfikować można tylko poprzez plik config.inc umieszczony w głównym katalogu aplikacji eDokumenty - czyli np. /home/edokumenty/public_html/apps/edokumenty albo C:/Program Files/BetaSoft/eDokumenty/public_html/apps/edokumenty. Wszystkie opcje w tym pliku są odpowiednio skomentowane, jednak w tym miejscu postaramy się wymienić najczęściej wykorzystywane opcje i obszerniej opisać niektóre z nich. {{{ // --------------------------------------------------------------- // USTAWIENIA APLIKACJI // --------------------------------------------------------------- // zmienia domyślny język. Plik językowy musi być dosarczony do katalogu var/lang define('DEFAULT_LANGUAGE', 'pl_PL'); define('APPLICATION_NAME', 'eDokumenty'); }}} Więcej informacji o tym jak dodać obsługę nowego języka znajdziesz tutaj: [http://dev.bnet.pl/tp/trac.cgi/wiki/Standards/Translation] {{{ DBSelect, ADVANCED -> lookup, CUSTOM_{CSWGID} jako custom widget define('MPK_STYLE', 'SIMPLE'); // Sposob wyswietlania wyszukiwarki RK SIMPLE -> DBSelect, ADVANCED -> lookup define('RK_STYLE', 'SIMPLE'); // Ustawione na true powoduje że w polu numer konta zapisywany jest pełny numer (złączony z numerem el. nadrzędnego), w przeciwnym razie tylko ostatni człon define('RK_COMPLETE_TYPE', true); define('DEFAULT_ENVELOPE_FONT_SIZE', 14); define('DELIV_CONFIRM_NUM_PATTERN', '/.*(\d{8})$/'); // Ograniczenie edycji zdarzeń po ich załatwieniu patrz http://support.edokumenty.eu/trac/wiki/DeployerGuide/Others/EditEventsClause // define('ALLOW_EDIT_EVENTS_CLAUSE', '((is_fix IS TRUE AND fixdat IS NOT NULL AND ((CURRENT_TIMESTAMP - INTERVAL \'24 hours\') < fixdat)) OR (is_fix IS NOT TRUE))'); // Nazwa użytkownika wymaganego do zalogowania się do API // define('EDOK_API_LOGIN', ''); // Hasło dla użytkownika EDOK_API_LOGIN // define('EDOK_API_PASSWORD', ''); // Dodatkowa stała która umożliwia pominięcie autentykacji (FALSE - nie sprawdza danych EDOK_API_LOGIN i EDOK_API_PASSWORD) // domyślnie ustawiona na TRUE, można poprzez GET oraz WSS // define('EDOK_API_AUTH_MODE', TRUE); // Rozkładanie zadań oraz czas rozpoczęcia i na kiedy uwzglęniają zdefiniowane w systemie kalendarze define('EVENT_AUTO_SCHEDULE', FALSE); // Czy ma ładować typy dokumentów księgowych per jednostka rozliczeniowa define('TYPE_OF_DOCUMENT_FOR_ACCORID', TRUE); //define('CALLTO_PROTOCOL', 'callto:'); // Dodatkowe pola (stawka VAT, wartość VAT, data wymagania podatkowego) na formularzu kosztu faktury define('VATNOTE_COST_ADDITIONAL_FIELDS', FALSE); // Ustalenia nazwy dla Dodatkowa analityka define('ADDITIONAL_ANALYTICS_TEXT', Translator::translate('Dodatkowa analityka')); // Sposob wyswietlania wyszukiwarki dodatkowej analityki SIMPLE -> DBSelect, ADVANCED -> lookup define('ADDITIONAL_ANALYTICS_STYLE', 'SIMPLE'); define('NO_PG_PCONNECT', 1); // Stała działa w dwóch kontekstach. // 1 - Uwidocznienie pola Jednostka rozliczeniowa na fakturze, // 2 - inicjalizacja pola MKP. Jeśli wartość stałej równa się adduid wtedy pobierane jest orunid osoby, która utworzyła dokument. // Jeśli nie zostaną znalezione żadne MPK przypisane do tego orunid wtedy pobierane są MPK przypisane do pierwszego stanowiska typu ORGCELL. define('VATNOTE_MPK_INIT', FALSE); // Czy ma dodawać numer konspektu podsprawy to opisu. Numer konspektu jest na stałe zapisywany w opisie nie jest doklejany. // Zmiana tej wartość TRUE|FALSE nie zmieni zapisanych danych w bazie a tylko ma wpływ na nowo tworzone define('ADD_DRAFT_NUMBER_TO_PROCESS_DSCRPT', TRUE); //define('WEBDAV_URL', 'edokumenty.webdav:'.SELECTED_PROTOCOL.'://{host}/vdisk'); //define('WEBDAV_AUTH_METHOD', 'digest'); //szablon dla nazwy plików otwieranych do edycji przez webdav //define('WEBDAV_FILENAME_FORMAT', '{documents.pprosm}_{SQL::SELECT substr(\'{basename}\',0,40)}[f{fileid}].{extension}'); //zatwierdzaj wersje po zapisie define('WEBDAV_COMMIT_ON_PUT', TRUE); // Flaga oznaczająca czy system ma walidować identyfikator klienta w zależności od tego czy jest to osoba fizyczna czy nie. Sprawdza tylko czy wprowadzono nie sprawdza formatu define('VALIDATE_CONTACT_IDENTIFIER_BY_TYPE', FALSE); define('ALWAYS_SHOW_AFTER_SAVE_DOC_TAB', FALSE); define('SHOW_MEETING_ACCEPT_PANEL', FALSE); // Czy ograniczać MPK do wybranego projektu przy wyszukiwaniu na formularzu kosztu dla faktury VAT define('PROJECT_AND_MPK_AUTO_FILTER', FALSE); // Które pola są wymagane do zapisania klienta - wymianiamy po przecinku np.: street, city__ define('CONTACT_REQUIRED_FIELDS', ''); // Które pola są wymagane do zapisania rozmowy telefonicznej - wymianiamy po przecinku np.: copeid, prc_id define('PHONECALL_REQUIRED_FIELDS', 'copeid'); // Pełny dialog tworzenia nowego klienta z lookupa TRUE = prosty, FALSE = pełny define('SIMPLE_CONTACT_CREATING_FORM', TRUE); // Połączenia z systemami zew. Musi być (string)NEW // define('SYNC_ACTIVE', 'NEW'); // Domyślna data otwarcia bilansu dla pobieranych dokumentów z systemów zew. Domyślnie pobiera wszystkie jednak // nie jest to zalecane ze względu na to, że może ich być dużo // define('DOCUMENTS_OPEN_BALANCE_SHEET_DATE', FALSE); // Czy ma aktualizować prognozowaną wartość oraz koszt w sprawie na podstawie pozycji // TRUE - zawsze, jeśli tylko wybrane to foreco lub forepa po przecinku define('FK_UPDATE_PROCESS_PREDICTED_VALUE', TRUE); define('SIMPLE_PROCESS_CREATING_FORM', TRUE); // Podpowiadanie domyślnego klienta w dokumentach jako -> Ustawienia -> Panel sterowania -> Ogólne -> Dane podmiotu define('SUGGEST_DEFAULT_CONTACT', TRUE); // Logowanie domenowe define('SSO_LOGIN_ENABLED', FALSE); // Lokalizacja strony na IIS wymagającej autentykacji domenowej (Windows Authentication ntlm) define('SSO_REMOTE_SERVICE', ''); // Czas jaki użytkownik będzie miał na decyzję czy chce się zalogować domenowo define('SSO_LOGIN_TIMEOUT', 5); // Ciąg mieszający dowolny w miarę unikalny define('SSO_SALT', ''); // Ładowanie do lookupa adresów na fakturze klientów będących w jednostkach rozliczeniowych define('LOAD_ALL_CONTACTS_FROM_UNITS', TRUE); // Formatowanie wyników wyszukiwania w lookupie // Wartość stałej to kolumna w SQL np name_1||name_2|| itd // Lookup adresów dla dokumentów widok addresses_view define('CONTACT_ADDRESS_LOOKUP_SEARCH_RESULT', FALSE); // Lookup kontaktów - widok contacts_lookup_view define('CONTACT_LOOKUP_SEARCH_RESULT', FALSE); // Lookup spraw - tabele (LEFT JOIN) processes, organization_units, doss_extract_list, dossiers_list, contacts define('PROCESS_LOOKUP_SEARCH_RESULT', FALSE); // Lookup osób kontaktowych - tabela contact_persons przykład dodania adresu email data__||COALESCE(\' \'||email_, \'\') define('CONTACT_PERSON_LOOKUP_SEARCH_RESULT', FALSE); // Zapisywanie faktury dla klienta, który nie posiada nipu. TRUE - zapisuje fakturę dla klienta bez nipu, FALSE - nie pozwala define('ALLOW_SAVE_CONTACT_ON_FV_WITHOUT_NIP', TRUE); // pocztowy numer nadawczy, TYLKO pierwsze 11 cyfr!... resztę generuje system define('RK_PREFIX', '00759007734'); // maska praw do dokumentu dla użytkownika, na którego stanowisku znajduje się dokument (lub mającego prawo do tego stanowiska/jednostki) define('DOCUMENT_TARGET_RIGHT_MASK', 'rw'); // sortowanie wpisów dla wydruku książki nadawczej z dziennika przy użyciu "kreatora wydruku" define('PBOOK_PRINT_ORDER', 'adddat ASC'); // Czy ma pokazywać hasło jeśli została ostatnia próba logowania czyli BANNED_UNSUCCESSFUL_NUMBER - 1 define('SHOW_PASSWORD_BEFORE_BANNED', TRUE); //jeżeli FALSE to nie sprawdza zmian na formularzu przu kliknięciu Załatwione na panelu procedury (domyślnie sprawdzanie jest włączone) //define('WORKFLOW_CHECK_FORM_MOD', TRUE); // Czy ma pokazać zakładkę Pozycje na dokumecnie typu Umowa define('SHOW_FKELEMENTS_ON_CONTRACT_DOCUMENT', FALSE); // Czy system ma pytać podczas dodawania kosztu na delegacji o rozpoczęcie procedury jeśli // taka została zdefiniowana dla faktury. // Jeśli: // - TRUE to pyta z opcją Nie pytaj ponownie (po zaznaczeniu opcji (checkboxa) system pamięta odpowiedź Tak lub Nie) // - FALSE - jeśli jest procedura dla faktury to ją uruchamia jeśli nie ma to nie uruchamia ;) // - NO_PROCEDURE - nie ma pytania i nigdy nie uruchamia procedury nawet jak jest zdefiniowana define('DELEGATION_VATNOTE_PROCEDURE_ASK', FALSE); // Do podanych rodzajów dokumentów (po zarejestrowaniu w dzienniku) zostanie dodany prefix, do opisu dokumentu, w postaci numeru ewidencyjnego (np. DPO/001/2014 - opis dokumentu) // wartości podajemy po przecinku np. '1,2' jeżeli chcemy dodawać nr. do dokumentów wychodzących oraz przychodzących // możliwe wartości: wychodzący = 1, przychodzący = 2, wewnętrzny = 3 define('ADD_EVDNUM_PREFIX_AFTER_REGISTER', '2'); // domyślny font dla generowanych dokumentów PDF (domyślnie - freeserif) define('DEFAULT_PDF_FONTNAME', 'freesans'); // --------------------------------------------------------------- // Konfiguracja procesu wysyłania i synchronizacji poczty w tle (backproc) // --------------------------------------------------------------- // Kolejkowanie wysyłanych emaili w folderze Outbox define('EMAIL_OUTBOX_ENABLED', false); // Obsługa trybu pobierania wiadomości w tle define('EMAIL_BACKGROUND_SYNC_ENABLED', false); // Maksymalna liczba uruchomionych wątków define('BG_MAX_THREADS', 14); // Maksymalna liczba zadań dla wątku define('BG_MAX_TASKS_PER_THREAD', 200); // Minimalny interwał synchronizacji nowych wiadomości dla wysokopriorytetowych folderów dla zalogowanych użytkowników [s] define('EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL', 600); // Minimalny interwał synchronizacji nowych wiadomości dla wysokopriorytetowych folderów dla niezalogowanych użytkowników [s] define('EMAIL_BG_HI_FOLDERS_RECENT_SYNC_INTERVAL_NL', 1800); // Minimalny interwał pełnej synchronizacji wysokopriorytetowych folderów dla zalogowanych użytkowników [s] define('EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL', 3600); // Minimalny interwał pełnej synchronizacji wysokopriorytetowych folderów dla niezalogowanych użytkowników [s] define('EMAIL_BG_HI_FOLDERS_FOLDERS_FULL_SYNC_INTERVAL_NL', 4800); // Czas rozpoczęcia codziennej, pełnej synchronizacji niskopriorytetowych folderów [hh:mm] define('EMAIL_BG_LO_FOLDERS_SYNC_START', '20:00'); // Minimalny interwał dla kolejnej synchronizacji konta po wykryciu braku połączenia z serwerem [s] define('EMAIL_BG_FAILED_CONNECTION_RETRY_INTERVAL', 600); // Interwał czasu wyrażony w sekundach odpowiadający za częstość aktualizacji tabeli users_status (status obecności w systemie). // Wartość FALSE aktualizuje za każdym przeładowaniem strony oraz co 12 minut podczas sprawdzania przypomnień (asynchronicznie), wartość np. 120 aktualizuje nie częściej niż co 2 minuty // niezależnie czy jest to przeładowanie strony czy sprawdzanie przypomnień define('LAST_SEEN_INTERVAL', FALSE); // Ograniczenie wyboru MPK na koszcie faktury tylko do ostatnich węzłów - jeśli damy TRUE nie będzie możliwe wybieranie węzła, który ma podrzędne węzły define('VATNOTE_COST_MPK_LAST_NODE_LOAD_ONLY', FALSE); // Domyślny szablon html dla eFaktur jako identyfikator Ustawienia -> Panel sterowania -> Dokumenty -> Szablony dokumentów -> Kolumna ID (templates.tpl_id) define('EMAIL_EINVOICE_DEFAULT_TPL_ID', FALSE); // lokalizacja katalogu dla plikow pid na uzytek backproc-a define('BACKPROC_PID_LOCATION', __DIR__.'/../backproc/data/pid'); // Steruje pokazywaniem zatwierdzonych kont bankowych na dokumentach // TRUE - pokazuje niezatwierdzone // FALSE - pokazuje tylko zatwierdzone define('SHOW_NOT_APPROVED_BANK_ACCOUNTS_ON_DOC', TRUE); // Szablon opisu podczas wyboru rozmówcy w rozmowie telefoniczej. Domyślnie wyświetla dane z pole contact_persons.data__. Poniższa stała // umożliwia modyfiakcję tego. Stała to tak naprawdę szablon flexy z kontekstem contact_persons. Czyli możemy użyć wszystkich pól z tabeli contact_persons np. // {contact_persons.data__} - {contact_persons.ph_num} define('CONTACT_PERSON_SELECTOR_DSCRPT_TPL', FALSE); // Lookup (lista jednokrotnego wyboru) kont bankowych na fakturze lub płatności domyślnie COALESCE(baname||\' \'||number, number) AS number // Można użyć kolumn z tabeli bank_accounts. UWAGA jeśli użyjemy aliasu czyli np. chcemy dać formatowanie wyników jako COALESCE(baname||\' \'||number, number) AS number // wtedy musimy to zadeklarować jako SELECT COALESCE(baname||\' \'||number, number) AS number gdyż podana wartość jest wstawiana w nawias z aliasem // SELECT *, (BANK_ACCOUNT_LOOKUP_SEARCH_RESULT) AS foo FROM bank_accounts define('BANK_ACCOUNT_LOOKUP_SEARCH_RESULT', FALSE); // Czy ma blokować pole wyboru konta bankowego na fakturze. Domyślnie FALSE nie blokuje // Pozostałe opcje: // - SELECT brak możliwości wpisania konta bankowego ręcznie jest dostępna tylko lista z kontami wybranego klienta // - INPUT można tylko wpisać numer konta bankowego brak podpowiadania define('LOCK_BANK_ACCOUNTS_ON_VATNOTE', FALSE); // Ustawienie na FALSE wyłączy OCRa dla akcji generowania eFaktury. Domyślnie OCR jest włączony. define('EINVOICE_DO_OCR', TRUE); // Domyślna akcja, jaka zostanie wywołana, po kliknięciu w nazwę pliku na liście załączników (w dokumencie, zadaniu, itp.). // Możliwe wartości to: download, preview, none define('FILESLIST_DEFAULT_ACTION', 'download'); // Oznaczenie czy dana wersja systemu pracuje w trybie ROBO - dla klientów, którzy przed aktualizacją testują na lustrzanym systemie etc. Od wersji 4.10.55, 4.11.22 // Stała powoduje dodanie wstążki w lewym dolnym rogu ekranu z opisem Wersja ROBO. Opis można zmienić poprzez stałą. // Przykład define('ROBO_VERSION', 'WERSJA TESTOWA/ROBO'); // Czas (w sekundach) po którym konto pocztowe będzie ponownie synchronizować wiadomości po nieudanym logowaniu. // Odnosi skutek tylko w backproc. //define('EMAIL_AUTH_ERROR_CHECK_RETRY_TIME', 1800); //Jakiego typu dokument zostanie utworzony na akcji drag'n'drop na listę dokumentów (types_of_documents.dctpid) //define('TYPE_OF_DOCUMENT_ON_FILE_UPLOAD', 8); // Wprowadź nazwę pola kwotowego z faktury, z którego zostanie przepisana wartość do formatki dziennika. Domyślnie system przepisuje brutto. // Jeśli chcesz aby przepisywał wartość z pola netto wpisz "netto_" define('REGOFVATNOTES_MAP_COLUMN_TO_AMOUNT', FALSE); // Pokaż przycisk na dialogu email z akcją przekazania/dekretacji jako dokument //define('SHOW_EMAIL_DECREE_TOOLBUTTON', TRUE); ?> }}} Przykładowe ustawienie może zawierać w OPTIMA_DATA_SOURCE_DTSCNM wartość ''OPTIMA'' (bez wąsów) przy czym odpowiedni rekord w tabeli data_sources w polu dtscnm będzie taki sam czyli ''OPTIMA''. {{{ define('BSRECORDER', FALSE); define('BS_RECORDER_WSDL', 'http://10.8.16.59:8080/cgi-bin/BSRecWEB.exe/wsdl/IBSRec'); define('BS_RECORDER_PROTOCOL', 'http://'); define('BS_RECORDER_HOST', '10.8.16.59'); define('BS_RECORDER_PORT', '8080'); define('BS_RECORDER_URL', '/cgi-bin/BSRecWEB.exe/wsdl/IBSRec'); define('BS_RECORDER_USER', ''); define('BS_RECORDER_PASSWD', ''); define('BS_RECORDER_TEST_NUMBER',200); define('BSCONNECT', FALSE); define('BS_CONNECT_WSDL', 'http://10.8.16.59:8080/cgi-bin/BSConnectWEB.exe/wsdl/IBSConnectWEB'); define('SERVICEID', 'edokumenty@edokumenty'); define('TARGET_SYSTEM_ID', 'SSV'); define('EXPORT_PROCESSES', FALSE); define('BSNMS_CONNECTED', FALSE); }}}