Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johnkommas/barcodereader
Barcode Generator From Entersoft SQL
https://github.com/johnkommas/barcodereader
barcode-generator bolt bot cryptography fastapi label-tags labels odbc pandas pillow price-tags pyodbc python slack slackbolt slackbot sqllite3 uvicorn
Last synced: about 1 month ago
JSON representation
Barcode Generator From Entersoft SQL
- Host: GitHub
- URL: https://github.com/johnkommas/barcodereader
- Owner: johnkommas
- License: mit
- Created: 2022-07-19T13:47:58.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-03T19:51:40.000Z (7 months ago)
- Last Synced: 2024-06-03T22:47:14.888Z (7 months ago)
- Topics: barcode-generator, bolt, bot, cryptography, fastapi, label-tags, labels, odbc, pandas, pillow, price-tags, pyodbc, python, slack, slackbolt, slackbot, sqllite3, uvicorn
- Language: Python
- Homepage:
- Size: 105 MB
- Stars: 3
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[![MIT licensed](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=for-the-badge)](LICENSE)
[![GitHub code size in bytes](https://img.shields.io/github/repo-size/johnkommas/BarcodeReader?style=for-the-badge)](CODE_SIZE)
![GitHub repo file count](https://img.shields.io/github/directory-file-count/johnkommas/BarcodeReader?style=for-the-badge)
[![GitHub forks](https://img.shields.io/github/forks/johnkommas/BarcodeReader?style=for-the-badge)](FORKS)
[![GitHub issues](https://img.shields.io/github/issues/johnkommas/BarcodeReader?style=for-the-badge)](ISSUES)
[![GitHub last commit](https://img.shields.io/github/last-commit/johnkommas/BarcodeReader?style=for-the-badge)](COMMIT)
[![GitHub language count](https://img.shields.io/github/languages/count/johnkommas/BarcodeReader?style=for-the-badge)](LANGUAGES)
[![GitHub top language](https://img.shields.io/github/languages/top/johnkommas/BarcodeReader?style=for-the-badge)](lang)
[![Discord](https://img.shields.io/discord/583993547792056321?style=for-the-badge)](https://discord.gg/PJAT7XNshB)---
![image](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/Mixture.png?raw=true)---
# ΑΠΑΙΤΗΣΕΙΣ ΛΟΓΙΣΜΙΚΟΥ
- Entersoft Expert / Business Suite (installed)
- Microsoft SQL Server Administrator (credentials requirement)
- Company Network Administrator (credentials required)
- D-Net Mobile (installed)
- Slack App (installed, credential requirements)---
# Αρχικοποίηση:
- Βάσης Δεδομένων (Entersoft SQL SERVER DB)
- Εικονικού Ιδιωτικού Δικτύου (VPN - L2TP with IPSec)https://user-images.githubusercontent.com/54149422/181605383-0f466b64-9308-436e-ac37-308ff8467259.mov
---
# SVG BARCODE GENERATOR PREVIEW
![image](https://raw.githubusercontent.com/johnkommas/BarcodeReader/ea7afc5e2e9c56dd8a2c37febb5105a04b41447b/app/images/20002459.svg) ![image](https://raw.githubusercontent.com/johnkommas/BarcodeReader/c72c662eedf800ba3b9731d203a8afabda002323/app/images/3228020232028.svg) ![image](https://raw.githubusercontent.com/johnkommas/BarcodeReader/3a34d254a98831d397a91f2c7e67c14243be0165/app/images/5035766641223.svg) ![image](https://raw.githubusercontent.com/johnkommas/BarcodeReader/3a34d254a98831d397a91f2c7e67c14243be0165/app/images/8437013754460.svg) ![image](https://raw.githubusercontent.com/johnkommas/BarcodeReader/824bb79488e0692f624b7167ad3d324b56fef59a/app/images/5201314166795.svg)
---
# Δημιουργία Normal Price Tag
https://user-images.githubusercontent.com/54149422/181936319-cf0cc556-b86f-420f-8d40-eaf394274c17.mov
---
# Τελικό Αποτέλεσμα
https://user-images.githubusercontent.com/54149422/181936202-aa7af04f-7bd8-4a26-9ea6-188cc61de4ba.mov
---
# Προσφορές
https://user-images.githubusercontent.com/54149422/181995686-51b41d61-9832-4ea1-8023-a885fbdd7cd4.mov
---
# Ταμπελάκι Σήμανσης Τιμής - Προσφοράς - Ιδιότητας
> Οι διαφορετικές περιπτώσεις που εμφανίζονται συχνά είναι:
> Α. Το προϊόν να έχει μια σταθερή τιμή
> Β. Το προϊόν να έχει μια σταθερή τιμή και έκπτωση
> Γ. Το προϊόν να είναι σε προσφορά ορισμένου χρόνου και να έχει τοποθετηθεί έκπτωση επί της τιμής
> Δ. Το προϊόν να είναι σε προσφορά ορισμένου χρόνου και να έχει τοποθετηθεί απευθείας τιμή.
> Όλα τα παραπάνω σενάρια αναγνωρίζονται αυτόματα και δεν χρειάζεται από τον χρήστη να τις διαχωρίσει,
σε κάθε περίπτωση το ταμπελάκι διαμορφώνεται ως εξης:
```python
price = (df['ΝΕΑ ΤΙΜΗ'].values[0] if df['ΕΚΠΤΩΣΗ'].values[0] <= 0 else round(df[init_price].values[0] * (100 - df['ΕΚΠΤΩΣΗ'].values[0]) / 100, 2))
```- ΚΑΝΟΝΙΚΕΣ ΤΙΜΕΣ / Είδος με Τιμή Λιανικής
- (επιλέξαμε Τag "Best Choice")
- (επιλέξαμε Χρώμα: Πράσινο)![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A.png?raw=true)
- ΚΑΝΟΝΙΚΕΣ ΤΙΜΕΣ / Είδος με Τιμή Λιανικής και Έκπτωση
- (επιλέξαμε Χρώμα: Πράσινο)![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/D.png?raw=true)
- ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Έκπτωση
- (επιλέξαμε Χρώμα: Κόκκινο)![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/B.png?raw=true)
- ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Απευθείας Ανάθεση Τιμής
- (επιλέξαμε Χρώμα: Κόκκινο)![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/C.png?raw=true)
> Για την καλύτερη προώθηση των προϊόντων σε προσφορά, προτείνετε το ταμπελάκι να συνδυάζεται με σήμανση, παρακάτω απεικονίζεται
ο Συνδυασμός Προσφοράς με Καρτελάκι Έκπτωσης.![0101](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/Discount%20LATO_.png?raw=true)
---
> Ταμπελάκια με χρώμα:![0101](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE4.png?raw=true)
---
> Τα ταμπελάκια στο σύνολο τους κάθε φορά είναι αρκετά, για την εκτύπωση τους έχω διαμορφώσει δύο διαφορετικά μεγέθη
> Α. Μεγάλο Μέγεθος, εκτυπώνονται 8 ταμπελάκια σε κάθε σελίδα και το χαρτί δεν χωράει στην ετικετοθέση του ραφιού
> Β. Μικρό Μέγεθος, εκτυπώνονται 14 ταμπελάκια σε κάθε σελίδα και το χαρτί χωράει ακριβώς στην ετικετοθέση του ραφιού
```python
def a4_page_fit_images(labels, ouptut_name, big=False):
path = pathlib.Path(__file__).parent.resolve()
if big:
image_name = "A4_Labels_Saloon_big.png"
# Συντεταγμένες για κάθε εικόνα
x = [163, 1754]
y = [56, 653, 1250, 1847]
c = list(itertools.product(x, y))
size = (1591, 597)
else:
image_name = "A4_Labels_Saloon.png"
# Συντεταγμένες για κάθε εικόνα
x = [49, 1240]
y = [158, 604, 1050, 1496, 1942, 2388, 2834]
c = list(itertools.product(x, y))
size = (1191, 446)my_image = Image.open(f'{path}/images/{image_name}')
for name, place in tqdm(zip(labels, c), "A4 Page Maker"):
logger.info(f"Fitting IMAGE: {name} to A4 in (X, Y): {place}")
overlay = Image.open(f"{path}/merged_images/{name}")
overlay = overlay.resize(size, Image.ANTIALIAS)
my_image.paste(overlay, place, mask=overlay)
file_out = f"{path}/to_print_labels/{ouptut_name}"
my_image.save(file_out)
```### 8 Printable Labels per Page (A4) (SPECIAL OFFER)
![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE1.png?raw=true)
---
### 8 Printable Labels per Page (A4) (NORMAL PRICES WITH TAG)
![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE3.png?raw=true)---
### 14 Printable Labels per Page (A4)
![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE2.png?raw=true)
---
### Εκτύπωση
> Το τελικό στάδιο είναι η εκτύπωση, σε αυτό το σημείο έχουμε στη διάθεση μας δύο επιλογές:
> Α. Άμεση Εκτύπωση, η εκτύπωση ξεκινά άμεσα
> B. Χωρίς Εκτύπωση, το πρόγραμμα εμφανίζει τον φάκελο με τις σελίδες προς εκτύπωση
```python
def export_to_printer(printer_name):
path = pathlib.Path(__file__).parent.resolve()
if printer_name == "0":
logger.info("No Print Asked, Opening Folder Instead")
subprocess.call(['open', f"{path}/to_print_labels"])
else:
list_of_names = os.listdir(f"{path}/to_print_labels")
for file_name in list_of_names:
file = f"{path}/to_print_labels/{file_name}"
os.system(f"lpr -P {printer_name} {file}")
```
---
### Requirements
- crefi==2.0.9
- pip==22.2.1
- python-barcode==0.14.0
- python-Levenshtein==0.12.2
- pyxattr==0.7.2
- setuptools==63.2.0
- wheel==0.37.1
- pandas~=1.4.3
- uvicorn~=0.18.2
- fastapi~=0.79.0
- pyodbc~=4.0.34
- Pillow~=9.2.0
- CairoSVG~=2.5.2
- tqdm~=4.64.0
- cryptography~=37.0.4---
### Python Version
- Version: 3.9---
### Contributors
- Ioannis E. Kommas
#### Thank you to everyone who has contributed. We appreciate you!