Giter Club home page Giter Club logo

barcodereader's Introduction

MIT licensed GitHub code size in bytes GitHub repo file count GitHub forks GitHub issues GitHub last commit GitHub language count GitHub top language Discord


image


ΑΠΑΙΤΗΣΕΙΣ ΛΟΓΙΣΜΙΚΟΥ

  • 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)
database.mov

SVG BARCODE GENERATOR PREVIEW

image image image image image


Δημιουργία Normal Price Tag

simple.mov

Τελικό Αποτέλεσμα

final.mov

Προσφορές

special_offers.mov

Ταμπελάκι Σήμανσης Τιμής - Προσφοράς - Ιδιότητας

Οι διαφορετικές περιπτώσεις που εμφανίζονται συχνά είναι:
Α. Το προϊόν να έχει μια σταθερή τιμή
Β. Το προϊόν να έχει μια σταθερή τιμή και έκπτωση
Γ. Το προϊόν να είναι σε προσφορά ορισμένου χρόνου και να έχει τοποθετηθεί έκπτωση επί της τιμής
Δ. Το προϊόν να είναι σε προσφορά ορισμένου χρόνου και να έχει τοποθετηθεί απευθείας τιμή.
Όλα τα παραπάνω σενάρια αναγνωρίζονται αυτόματα και δεν χρειάζεται από τον χρήστη να τις διαχωρίσει, σε κάθε περίπτωση το ταμπελάκι διαμορφώνεται ως εξης:

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

  • ΚΑΝΟΝΙΚΕΣ ΤΙΜΕΣ / Είδος με Τιμή Λιανικής και Έκπτωση
  • (επιλέξαμε Χρώμα: Πράσινο)

0102

  • ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Έκπτωση
  • (επιλέξαμε Χρώμα: Κόκκινο)

0102

  • ΠΡΟΣΦΟΡΕΣ / Προσφορά Ορισμένου Χρόνου με Απευθείας Ανάθεση Τιμής
  • (επιλέξαμε Χρώμα: Κόκκινο)

0102

Για την καλύτερη προώθηση των προϊόντων σε προσφορά, προτείνετε το ταμπελάκι να συνδυάζεται με σήμανση, παρακάτω απεικονίζεται ο Συνδυασμός Προσφοράς με Καρτελάκι Έκπτωσης.

0101


Ταμπελάκια με χρώμα:

0101

Τα ταμπελάκια στο σύνολο τους κάθε φορά είναι αρκετά, για την εκτύπωση τους έχω διαμορφώσει δύο διαφορετικά μεγέθη
Α. Μεγάλο Μέγεθος, εκτυπώνονται 8 ταμπελάκια σε κάθε σελίδα και το χαρτί δεν χωράει στην ετικετοθέση του ραφιού
Β. Μικρό Μέγεθος, εκτυπώνονται 14 ταμπελάκια σε κάθε σελίδα και το χαρτί χωράει ακριβώς στην ετικετοθέση του ραφιού

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


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

0102


14 Printable Labels per Page (A4)

0102


Εκτύπωση

Το τελικό στάδιο είναι η εκτύπωση, σε αυτό το σημείο έχουμε στη διάθεση μας δύο επιλογές:
Α. Άμεση Εκτύπωση, η εκτύπωση ξεκινά άμεσα
B. Χωρίς Εκτύπωση, το πρόγραμμα εμφανίζει τον φάκελο με τις σελίδες προς εκτύπωση

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!

barcodereader's People

Contributors

gitter-badger avatar johnkommas avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.