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 2 months 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 (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2025-03-10T12:47:28.000Z (3 months ago)
- Last Synced: 2025-04-02T15:38:33.725Z (3 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: 1
- 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
[](LICENSE)
[](CODE_SIZE)

[](FORKS)
[](ISSUES)
[](COMMIT)
[](LANGUAGES)
[](lang)
[](https://discord.gg/PJAT7XNshB)---
---
# ΑΠΑΙΤΗΣΕΙΣ ΛΟΓΙΣΜΙΚΟΥ
- 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
    
---
# Δημιουργία 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")
- (επιλέξαμε Χρώμα: Πράσινο)
- ΚΑΝΟΝΙΚΕΣ ΤΙΜΕΣ / Είδος με Τιμή Λιανικής και Έκπτωση
- (επιλέξαμε Χρώμα: Πράσινο)
- ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Έκπτωση
- (επιλέξαμε Χρώμα: Κόκκινο)
- ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Απευθείας Ανάθεση Τιμής
- (επιλέξαμε Χρώμα: Κόκκινο)
> Για την καλύτερη προώθηση των προϊόντων σε προσφορά, προτείνετε το ταμπελάκι να συνδυάζεται με σήμανση, παρακάτω απεικονίζεται
ο Συνδυασμός Προσφοράς με Καρτελάκι Έκπτωσης.
---
> Ταμπελάκια με χρώμα:
---
> Τα ταμπελάκια στο σύνολο τους κάθε φορά είναι αρκετά, για την εκτύπωση τους έχω διαμορφώσει δύο διαφορετικά μεγέθη
> Α. Μεγάλο Μέγεθος, εκτυπώνονται 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.Resampling.LANCZO)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)

---
### 8 Printable Labels per Page (A4) (NORMAL PRICES WITH TAG)
---
### 14 Printable Labels per Page (A4)

---
### Εκτύπωση
> Το τελικό στάδιο είναι η εκτύπωση, σε αυτό το σημείο έχουμε στη διάθεση μας δύο επιλογές:
> Α. Άμεση Εκτύπωση, η εκτύπωση ξεκινά άμεσα
> 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!