Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΠΊΠΎΠ² Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
Django- ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΏΠ΅ΡΠ°ΡΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π·Π°ΠΊΠ°Π·ΠΎΠ²- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ ΠΈΠ· ΠΊΠ°ΡΡ
Set Retail 10 (Crystal) - ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ
DockerΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅. ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²elqΠΈapi_importΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. - ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΠΎΡΡΠ°ΠΌ:
8000- Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ631- Π½Π°ΡΡΡΠΎΠΉΠΊΠ°CUPS
- ΠΡΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠ΅ΡΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, ΡΠΎ Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Firewall, ΡΡΠΎ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π±ΠΎΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
mikrotikΠΌΠ°Π³Π°Π·ΠΈΠ½Π°. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ,FirewallΠ½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ. - ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΡΡΡΠ΅Π±ΡΠ΅ΡΡΡDocker, Π²Π΅ΡΡΠΈΡ Π½Π΅ Π½ΠΈΠΆΠ΅20.10.17,LinuxΠΈΠ»ΠΈWindows. - ΠΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
DjangoΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π² ΡΠ°ΠΉΠ»Π΅.env. - ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊ Π΄Π°Π½Π½ΡΡΠ² ΡΠ°ΠΉΠ»Π΅main.json. - ΠΠ»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΏΡΠΈΠ½ΡΠ΅Ρ
SAM4s ELLIX50. ΠΡΠΈΠ½ΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. - ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ
.envΠΈmain.jsonΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°CUPSΠ² ΡΠ°Π·Π΄Π΅Π»Π΅ 2.3. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΡ apt
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release- ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ GPG ΠΊΠ»ΡΡ
Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
Docker
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ
Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin- ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ
docker --version- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π³ΡΡΠΏΠΏΡ
docker
sudo groupadd docker- ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
$USERΠ² Π³ΡΡΠΏΠΏΡdocker
sudo usermod -aG docker $USER- ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
newgrp docker- ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊ Π±Π΅Π·
sudo
docker run hello-worldΠ£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΡΠ»ΠΊΠ° Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ -> Docker Desktop.
git Π½Π΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Windows, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Git for Windows. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ, Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π¨Π°Π³ΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π² Windows ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈΡ
ΡΠ°ΡΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π΅Ρ ΡΠΌΡΡΠ»Π°, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π° ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Windows. ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ Π·Π°ΠΏΡΡΠΊΡ docker
ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΠΏΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
- ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
git clone https://github.com/MyEternityOrg/elq- ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
cd elq- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
DjangoΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°ΠΉΠ».env. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π².env
mv .env.sample .env- ΠΠ½ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠ°ΠΆΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ
API_KEYΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΡΠΎΠ²ΡΡ ΡΠ΅ΠΊΠΎΠ², Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊ Π΄Π°Π½Π½ΡΡΠ² ΡΠ°ΠΉΠ»Π΅main.json. - CALC_PRINT_TICKETS - Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠ΅ΡΠ°ΡΠΈ, -1 - ΠΏΠ΅ΡΠ°ΡΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΎΡΠ΄Π΅Π»ΠΎΠ² +2 ΡΠ»ΠΈΠΏΠ°, >0 - ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, 0 - ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ 1 ΡΠ»ΠΈΠΏ.
- PRINT_PAPER_W / PRINT_PAPER_H - Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΠ΅ΡΠ°ΡΠΈ Π¨ΠΈΡΠΈΠ½Π°/ΠΡΡΠΎΡΠ° ΡΠ»ΠΈΠΏΠ°, ΠΏΠΎΠ΄ ΡΠΈΡΠΈΠ½Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ΅Π·ΠΊΡ ΡΠ΅ΠΊΡΡΠ°.
nano .envAPI_KEY = 'secret_key_here'
SQL_ENGINE = 'django.db.backends.sqlite3'
SQL_DB_NAME = './elq.sqlite3'
SQL_DB_USER = 'user'
SQL_DB_PASSWORD = 'pass'
SQL_DB_HOST = '.'
SQL_DB_PORT = 1433
SQL_OPTIONS = '{}'
CALC_PRINT_TICKETS = 0
PRINT_PAPER_W = 57
PRINT_PAPER_H = 120
- ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π²main.json
mv ./api_import_receipts/main.json.sample ./api_import_receipts/main.json- Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ», Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ»ΡΡ
API_KEYΠΈΠ· ΡΠ°ΠΉΠ»Π°.envΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ip Π°Π΄ΡΠ΅ΡΠ° ΠΊΠ°ΡΡ.
nano ./api_import_receipts/main.jsonΠΡΠΈΠΌΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΠ°Π³Π°Π·ΠΈΠ½Π° 116 :
{
"api": "http://elq:8000/devices/import_receipt/",
"api_key": "secret_key_here",
"timer": 3,
"cashes": [
{
"sql_server": "10.1.16.11"
},
{
"sql_server": "10.1.16.12"
},
{
"sql_server": "10.1.16.13"
},
{
"sql_server": "10.1.16.14"
},
{
"sql_server": "10.1.16.15"
}
]
}- ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
docker compose up -d- ΠΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΡΠ±ΠΎΡΠ° ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈ Π·Π°ΠΏΡΡΠΊΠ°. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² ΡΡΠ°ΡΡΡΠ΅
up
docker ps -a- ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π»ΠΎΠ³
docker logs elqdocker logs api_import- ΠΠ»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠ°Π»ΠΎΠ½ΠΎΠ² Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ½ΡΠ΅Ρ Π² ΡΠ»ΡΠΆΠ±Π΅
CUPS, ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ. ΠΠΎΠ³ΠΈΠ½/ΠΏΠ°ΡΠΎΠ»Ρprint.
http://ip_ΡΠ΅ΡΠ²Π΅ΡΠ°:631/
- ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΠ΅Ρ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· socket, Π² ΡΡΡΠΎΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ
socket://ip_ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°:6001
- ΠΠ°ΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈΠΌΡ ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
ELLIX50. ΠΠ³ΠΎ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π² Π²Π΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅DjangoΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠ±ΠΎΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡΡ
PPTΡΠ°ΠΉΠ». ΠΠ»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈSAM4s ELLIX50ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΏΠΎ ΠΏΡΡΠΌΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ git - ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅. ΠΠΎΠ³ΠΈΠ½/ΠΏΠ°ΡΠΎΠ»Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°
shop 123
http://ip_ΡΠ΅ΡΠ²Π΅ΡΠ°:8000/
- Π ΡΠ°Π·Π΄Π΅Π»Π΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ
ΠΠ°ΡΡΡΠΈΠΡΠΈΠ½ΡΠ΅ΡΡ. ΠΠΠΠΠ. ΠΠΌΡ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° Π½ΡΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° 2.3.2. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°CUPS
http://ip_ΡΠ΅ΡΠ²Π΅ΡΠ°:8000/admin/
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Ρ Π² ΡΠΆΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
- Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
main.json
cd elq
docker exec -it api_import /bin/sh
nano ./elq/api_import_receipts/main.json- Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
.env
cd elq
docker exec -it elq /bin/sh
nano ./elq/.envΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΎΠΊ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ
exit
docker compose stop
docker compose up -dΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ· github ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
cd elq
docker compose stop
docker compose up -dΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
http://ip_ΡΠ΅ΡΠ²Π΅ΡΠ°:8000/devices/import_receipt/
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ POST Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΠΈ. Π Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ api_key, Π² ΡΠ΅Π»Π΅ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ°ΠΉΠ» ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠ΅ΠΊΠ°.
ΠΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ post ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΡΠΎΠ²ΡΡ
ΡΠ΅ΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ api_key, Π²
ΡΠ°ΠΉΠ»Π΅ .env
API_KEY = 'secret_key_here'
ΠΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ curl:
curl -H "key:secret_key_here" --data "@receipt_1.json" http://127.0.0.1/devices/import_receipt/ > reply_1.json
cash_id- ΠΠΎΠΌΠ΅Ρ ΠΊΠ°ΡΡΡshift_id- ΠΠΎΠΌΠ΅Ρ ΡΠΌΠ΅Π½Ρ.check_id- ΠΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΠ° Π² ΡΠΌΠ΅Π½Π΅.check_date- ΠΠ°ΡΠ° ΡΠ΅ΠΊΠ°.wares- ΠΠ°ΡΡΠΈΠ² ΡΠΎΠ²Π°ΡΠΎΠ² (ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎ ΡΠΎΠ²Π°ΡΠ°ΠΌ Ρ ΡΡΠΌΠΌΠΎΠΉ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ)ware_code- ΠΠΎΠ΄ ΡΠΎΠ²Π°ΡΠ° Π² ΡΠ΅ΠΊΠ΅.ware_count- ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π°ΡΠ° Π² ΡΠ΅ΠΊΠ΅.
{
"cash_id": 1,
"shift_id": 1,
"check_id": 1,
"check_date": "2022-11-17",
"wares": [
{
"ware_code": "48566",
"ware_count": 4
},
{
"ware_code": "51356",
"ware_count": 1
},
{
"ware_code": "72542",
"ware_count": 1
}
]
}Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π΅ΡΠ½Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ doc_number>0.
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ - ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π΅ΡΠ½Π΅Ρ doc_number=0 ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ (Π½Π΅ΡΠ΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ) ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π΅ΡΠ½Π΅Ρ doc_number=-1 ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΎΡΠ²Π΅ΡΠ°:
{
"doc_number": -1,
"error": "Already have receipt with number 1 for cash 1 in 2022-11-21"
}