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`) - изтриване на непотвърдени документи.