HEX
Server: nginx/1.24.0
System: Linux rtfmfm 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User: neo (1001)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/wsklad/README.md
**еСклад**
==========
## Относно

Помощно приложение за връзка между АжурL RestAPI и външни системи

## Системни изисквания

- `PHP 8.2`
- `php-mbstring`
- `php-zip`
- `php-gd`
- `php-cli`
- `php-intl`
- `php-mysql`
- `php-xml`
- `php-curl`


- `git`
- `composer`

## Инсталиране

- Копирайте `.env.example` в `.env` и го редактирайте според вашите изисквания.
- Редактирайте стойностите за `OWNER_EMAIL` и `OWNER_PASSWORD`. Зададените стойности ще се използват за създаване основния потребителски акаунт.
- Въедете коректни стойности за връзка с база данни -  `DB_DATABASE`,
`DB_USERNAME` и `DB_PASSWORD`
- `TELEGRAM_BOT_TOKEN` - Телеграм Бот API Token за идентификация. Попълнете ако искате да получавате Телеграм съобщения за определени събития
- `TELEGRAM_CHAT_ID` - Телегрем чат ID на групата / чата, в която да се изпращат съобщенията.
- изпълнете `composer install`, за да инсталирате необходимите пакети.
- изпълнете `php artisan key:generate`
- изпълнете `php artisan migrate` Това ще създаде необходимите таблици в базата данни.
- изпълнете `php artisan db:seed`, за да създадете минималните необходими записи в базата данни.

Необходимо е да промените правата върху използва директорията на приложението чрез следните команди. Ако вашият уеб сървър се стартира от потребител различен от www-data заменете `www-data` с неговото име в следващите команди.

```
sudo chown -R $USER:www-data .
sudo find . -type f -exec chmod 664 {} \;
sudo find . -type d -exec chmod 775 {} \;
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache
```

## Изпращане на документи за продажба от еСклад към АжурL

При работа с мобилни продажби и автоматично изпращане на продажбите от еСклад към АжурL се използват Laravel Queue Workers

- В режим на разработка записите в опашката могат да бъдат обработени с командата
```bash
php artisan queue:work --queue=ajur-sync --tries=3 --timeout=60
```
- В **Production** режим се препоръчва използването на `Supervisor`

За настройка на `Supervisor` използвайте [SUPERVISOR_SETUP.md](SUPERVISOR_SETUP.md)

## Използване

За да стартирате приложението можете да използвате вградения уеб сървър като стартирате `php artisan serve`, или да качите приложението на ваш уеб сървър. За реална работа с приложението, не се препоръчва то да бъде използвано с вградения уеб сървър.

За вход иползвайте E-мейл адреса и паролата от `.env` файла.

## Конфигурация на периодични задачи (cron)

Можете да променяте времето на изпълнение на всяка периодична задача чрез задаване на следните променливи в `.env` файла. Форматът е HH:MM (24-часов):

- `DAILY_REPORT_TIME` (по подразбиране `20:00`) - време за изпращане на ежедневния отчет (пон - пет).
- `SYSTEM_BACKUP_TIME` (по подразбиране `22:00`) - време за създаване на системен архив.
- `AJUR_DISTRIBUTORS_SYNC_TIME` (по подразбиране `00:05`) - синхронизация на дистрибутори от АжурL.
- `AJUR_PRODUCTS_SYNC_TIME` (по подразбиране `00:10`) - синхронизация на продукти от АжурL.
- `AJUR_CONTRAGENTS_SYNC_TIME` (по подразбиране `00:15`) - синхронизация на контрагенти от АжурL.
- `AJUR_STORES_SYNC_TIME` (по подразбиране `00:20`) - синхронизация на складове от АжурL.
- `AJUR_PAYMENTMETHODS_SYNC_TIME` (по подразбиране `00:25`) - синхронизация на методи на плащане.
- `AJUR_BANKACCOUNTS_SYNC_TIME` (по подразбиране `00:30`) - синхронизация на банкови сметки от АжурL.
- `AJUR_RECEIVERS_SYNC_TIME` (по подразбиране `00:35`) - синхронизация на получатели от АжурL.
- `AJUR_LOTNUMBERS_SYNC_TIME` (по подразбиране `00:40`) - синхронизация на партиди от АжурL.
- `UPDATE_CONTRAGENT_PRICELISTS_TIME` (по подразбиране `00:45`) - обновяване на ценови листи за контрагенти от АжурL и преизчисление на специални цени.
- `UPDATE_EXCHANGE_RATES_TIME` (по подразбиране `00:50`) - обновяване на валутни курсове от БНБ.
- `AJUR_SUPPLIERTORETAILS_SYNC_TIME` (по подразбиране `00:55`) - синхронизация доставчици към търговци.
- `DELETE_UNCONFIRMED_DOCUMENTS_TIME` (по подразбиране `05:00`) - изтриване на непотвърдени документи.