{"id":19363371,"url":"https://github.com/johnkommas/barcodereader","last_synced_at":"2025-04-23T13:32:15.007Z","repository":{"id":48325638,"uuid":"515603899","full_name":"johnkommas/BarcodeReader","owner":"johnkommas","description":"Barcode Generator From Entersoft SQL","archived":false,"fork":false,"pushed_at":"2025-03-10T12:47:28.000Z","size":110375,"stargazers_count":3,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T15:38:33.725Z","etag":null,"topics":["barcode-generator","bolt","bot","cryptography","fastapi","label-tags","labels","odbc","pandas","pillow","price-tags","pyodbc","python","slack","slackbolt","slackbot","sqllite3","uvicorn"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnkommas.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-19T13:47:58.000Z","updated_at":"2025-03-10T12:47:32.000Z","dependencies_parsed_at":"2024-11-10T07:44:06.376Z","dependency_job_id":null,"html_url":"https://github.com/johnkommas/BarcodeReader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnkommas%2FBarcodeReader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnkommas%2FBarcodeReader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnkommas%2FBarcodeReader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnkommas%2FBarcodeReader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnkommas","download_url":"https://codeload.github.com/johnkommas/BarcodeReader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250440198,"owners_count":21430968,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["barcode-generator","bolt","bot","cryptography","fastapi","label-tags","labels","odbc","pandas","pillow","price-tags","pyodbc","python","slack","slackbolt","slackbot","sqllite3","uvicorn"],"created_at":"2024-11-10T07:33:52.049Z","updated_at":"2025-04-23T13:32:14.991Z","avatar_url":"https://github.com/johnkommas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![MIT licensed](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=for-the-badge)](LICENSE)\n[![GitHub code size in bytes](https://img.shields.io/github/repo-size/johnkommas/BarcodeReader?style=for-the-badge)](CODE_SIZE)\n![GitHub repo file count](https://img.shields.io/github/directory-file-count/johnkommas/BarcodeReader?style=for-the-badge)\n[![GitHub forks](https://img.shields.io/github/forks/johnkommas/BarcodeReader?style=for-the-badge)](FORKS)\n[![GitHub issues](https://img.shields.io/github/issues/johnkommas/BarcodeReader?style=for-the-badge)](ISSUES)\n[![GitHub last commit](https://img.shields.io/github/last-commit/johnkommas/BarcodeReader?style=for-the-badge)](COMMIT)\n[![GitHub language count](https://img.shields.io/github/languages/count/johnkommas/BarcodeReader?style=for-the-badge)](LANGUAGES)\n[![GitHub top language](https://img.shields.io/github/languages/top/johnkommas/BarcodeReader?style=for-the-badge)](lang)\n[![Discord](https://img.shields.io/discord/583993547792056321?style=for-the-badge)](https://discord.gg/PJAT7XNshB)\n\n---\n![image](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/Mixture.png?raw=true)\n\n---\n# ΑΠΑΙΤΗΣΕΙΣ ΛΟΓΙΣΜΙΚΟΥ\n- Entersoft Expert / Business Suite (installed)\n- Microsoft SQL Server Administrator (credentials requirement)\n- Company Network Administrator (credentials required)\n- D-Net Mobile (installed)\n- Slack App (installed, credential requirements)\n\n---\n\n# Αρχικοποίηση:\n- Βάσης Δεδομένων (Entersoft SQL SERVER DB) \n- Εικονικού Ιδιωτικού Δικτύου (VPN - L2TP with IPSec)\n\n\nhttps://user-images.githubusercontent.com/54149422/181605383-0f466b64-9308-436e-ac37-308ff8467259.mov\n\n\n---\n\n# SVG BARCODE GENERATOR PREVIEW\n\n\n\n![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)\n\n---\n\n# Δημιουργία Normal Price Tag\n\n\n\nhttps://user-images.githubusercontent.com/54149422/181936319-cf0cc556-b86f-420f-8d40-eaf394274c17.mov\n\n\n---\n\n# Τελικό Αποτέλεσμα\n\n\n\nhttps://user-images.githubusercontent.com/54149422/181936202-aa7af04f-7bd8-4a26-9ea6-188cc61de4ba.mov\n\n\n---\n\n# Προσφορές \n\n\nhttps://user-images.githubusercontent.com/54149422/181995686-51b41d61-9832-4ea1-8023-a885fbdd7cd4.mov\n\n\n---\n\n# Ταμπελάκι Σήμανσης Τιμής - Προσφοράς - Ιδιότητας\n\n\u003e Οι διαφορετικές περιπτώσεις που εμφανίζονται συχνά είναι: \u003cbr\u003e\n\u003e Α. Το προϊόν να έχει μια σταθερή τιμή \u003cbr\u003e\n\u003e Β. Το προϊόν να έχει μια σταθερή τιμή και έκπτωση \u003cbr\u003e\n\u003e Γ. Το προϊόν να είναι σε προσφορά ορισμένου χρόνου και να έχει τοποθετηθεί έκπτωση επί της τιμής \u003cbr\u003e\n\u003e Δ. Το προϊόν να είναι σε προσφορά ορισμένου χρόνου και να έχει τοποθετηθεί απευθείας τιμή. \u003cbr\u003e\n\u003e Όλα τα παραπάνω σενάρια αναγνωρίζονται αυτόματα και δεν χρειάζεται από τον χρήστη να τις διαχωρίσει, \nσε κάθε περίπτωση το ταμπελάκι διαμορφώνεται ως εξης: \u003cbr\u003e\n \n```python\nprice = (df['ΝΕΑ ΤΙΜΗ'].values[0] if df['ΕΚΠΤΩΣΗ'].values[0] \u003c= 0 else round(df[init_price].values[0] * (100 - df['ΕΚΠΤΩΣΗ'].values[0]) / 100, 2))\n    \n```\n\n- ΚΑΝΟΝΙΚΕΣ ΤΙΜΕΣ / Είδος με Τιμή Λιανικής \n- (επιλέξαμε Τag \"Best Choice\")\n- (επιλέξαμε Χρώμα: Πράσινο)\n\n![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A.png?raw=true)\n\n- ΚΑΝΟΝΙΚΕΣ ΤΙΜΕΣ / Είδος με Τιμή Λιανικής και Έκπτωση\n- (επιλέξαμε Χρώμα: Πράσινο)\n\n![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/D.png?raw=true)\n\n- ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Έκπτωση\n- (επιλέξαμε Χρώμα: Κόκκινο)\n\n![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/B.png?raw=true)\n\n- ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Απευθείας Ανάθεση Τιμής\n- (επιλέξαμε Χρώμα: Κόκκινο)\n\n![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/C.png?raw=true)\n\u003e Για την καλύτερη προώθηση των προϊόντων σε προσφορά, προτείνετε το ταμπελάκι να συνδυάζεται με σήμανση, παρακάτω απεικονίζεται \nο Συνδυασμός Προσφοράς με Καρτελάκι Έκπτωσης.\n\n![0101](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/Discount%20LATO_.png?raw=true)\n\n---\n\u003e Ταμπελάκια με χρώμα:\n\n![0101](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE4.png?raw=true)\n---\n\u003e Τα ταμπελάκια στο σύνολο τους κάθε φορά είναι αρκετά, για την εκτύπωση τους έχω διαμορφώσει δύο διαφορετικά μεγέθη \u003cbr\u003e\n\u003e Α. Μεγάλο Μέγεθος, εκτυπώνονται 8 ταμπελάκια σε κάθε σελίδα και το χαρτί δεν χωράει στην ετικετοθέση του ραφιού \u003cbr\u003e\n\u003e Β. Μικρό Μέγεθος, εκτυπώνονται 14 ταμπελάκια σε κάθε σελίδα και το χαρτί χωράει ακριβώς στην ετικετοθέση του ραφιού\n \n```python\ndef a4_page_fit_images(labels, ouptut_name, big=False):\n    path = pathlib.Path(__file__).parent.resolve()\n    if big:\n        image_name = \"A4_Labels_Saloon_big.png\"\n        # Συντεταγμένες για κάθε εικόνα\n        x = [163, 1754]\n        y = [56, 653, 1250, 1847]\n        c = list(itertools.product(x, y))\n        size = (1591, 597)\n    else:\n        image_name = \"A4_Labels_Saloon.png\"\n        # Συντεταγμένες για κάθε εικόνα\n        x = [49, 1240]\n        y = [158, 604, 1050, 1496, 1942, 2388, 2834]\n        c = list(itertools.product(x, y))\n        size = (1191, 446)\n\n    my_image = Image.open(f'{path}/images/{image_name}')\n    for name, place in tqdm(zip(labels, c), \"A4 Page Maker\"):\n        logger.info(f\"Fitting IMAGE: {name} to A4 in (X, Y): {place}\")\n        overlay = Image.open(f\"{path}/merged_images/{name}\")\n        overlay = overlay.resize(size, Image.Resampling.LANCZO)\n\n        my_image.paste(overlay, place, mask=overlay)\n    file_out = f\"{path}/to_print_labels/{ouptut_name}\"\n    my_image.save(file_out)\n```\n\n### 8 Printable Labels per Page (A4) (SPECIAL OFFER)\n\n![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE1.png?raw=true)\n\n---\n\n### 8 Printable Labels per Page (A4) (NORMAL PRICES WITH TAG)\n![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE3.png?raw=true)\n\n---\n\n### 14 Printable Labels per Page (A4) \n\n![0102](https://github.com/johnkommas/BarcodeReader/blob/master/my_app/SELF_LABEL/images/A4_PAGE2.png?raw=true)\n\n---\n### Εκτύπωση\n\u003e Το τελικό στάδιο είναι η εκτύπωση, σε αυτό το σημείο έχουμε στη διάθεση μας δύο επιλογές: \u003cbr\u003e\n\u003e Α. Άμεση Εκτύπωση, η εκτύπωση ξεκινά άμεσα \u003cbr\u003e\n\u003e B. Χωρίς Εκτύπωση, το πρόγραμμα εμφανίζει τον φάκελο με τις σελίδες προς εκτύπωση \u003cbr\u003e\n \n\n```python\ndef export_to_printer(printer_name):\n    path = pathlib.Path(__file__).parent.resolve()\n    if printer_name == \"0\":\n        logger.info(\"No Print Asked, Opening Folder Instead\")\n        subprocess.call(['open', f\"{path}/to_print_labels\"])\n    else:\n        list_of_names = os.listdir(f\"{path}/to_print_labels\")\n        for file_name in list_of_names:\n            file = f\"{path}/to_print_labels/{file_name}\"\n            os.system(f\"lpr -P {printer_name} {file}\")\n```\n---\n### Requirements\n- crefi==2.0.9\n- pip==22.2.1\n- python-barcode==0.14.0\n- python-Levenshtein==0.12.2\n- pyxattr==0.7.2\n- setuptools==63.2.0\n- wheel==0.37.1\n- pandas~=1.4.3\n- uvicorn~=0.18.2\n- fastapi~=0.79.0\n- pyodbc~=4.0.34\n- Pillow~=9.2.0\n- CairoSVG~=2.5.2\n- tqdm~=4.64.0\n- cryptography~=37.0.4\n\n---\n\n### Python Version\n- Version: 3.9\n\n---\n\n\n### Contributors\n\n- Ioannis E. Kommas\n\n\n#### Thank you to everyone who has contributed. We appreciate you!\n\n\u003ca \u003e\n  \u003cimg src=\"https://github.com/johnkommas/CodeCademy_Projects/blob/master/img/dart_images/b.png?raw=true\" /\u003e\n\u003c/a\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnkommas%2Fbarcodereader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnkommas%2Fbarcodereader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnkommas%2Fbarcodereader/lists"}