예제 #1
0
def run():
    query = pd.read_sql(sql.get_codes(), sql_connect.connect())
    folder = query.DocumentCode.unique()
    for document in folder:
        # ----------------DIRECTORY PATH ----------------------------
        directory_path = f'/Users/kommas/OneDrive/Business_Folder/Slack/Supplier_Check/history/{document}'
        target = query[query.DocumentCode == document]
        # -------------------- MAKE DIRECTORY IF DOES NOT EXISTS --------------------
        try:
            print('\n03: Path Check: ', end='')
            if not os.path.exists(directory_path):
                os.makedirs(directory_path)
                print('!NEW!\t [✔️]')
            else:
                print('\t\t [✔️]')
        except OSError:
            print("!ERROR! [❌️]")
            sys.exit(1)

        for i, barcode in enumerate(target.BarCode):
            percent = int((100 * (i + 1)) / len(target.BarCode))
            filler = "█" * (percent // 2)
            remaining = '-' * ((100 - percent) // 2)
            df = pd.read_sql(sql.get_product_cost(barcode),
                             sql_connect.connect())
            plot.run(df, barcode, directory_path)
            print(f'\rDONE:[{filler}{remaining}]{percent}%',
                  end='',
                  flush=True)
        slack.run(document)
예제 #2
0
def run(input_param):
    # ----------------STATEMENTS HERE----------------------------
    output_file = "Order{}.xlsx".format(input_param)
    type_of_forma = 'ΠΠΡ'

    def katastima():
        if answer_02.ID[0] in ['00', '01']:
            return 'ΚΕΝΤΡΙΚΑ ΕΔΡΑΣ (ΣΧΙΣΜΑ ΕΛΟΥΝΤΑΣ)'
        elif answer_02.ID[0] == '10':
            return 'ΛΑΤΟ 01 (ΑΚΤΗ ΙΩΣΗΦ ΚΟΥΝΔΟΥΡΟΥ 11)'
        elif answer_02.ID[0] == '20':
            return 'ΛΑΤΟ 02 (28ΗΣ ΟΚΤΩΒΡΙΟΥ 6)'
        elif answer_02.ID[0] == '30':
            return 'ΛΑΤΟ 03 (ΑΓ. ΙΩΑΝΝΗΣ 29)'

    # -------------ANSWERS----------------------------
    answer_01 = pd.read_sql_query(sql.sql_query(input_param, type_of_forma),
                                  sql_connect.connect())
    # print(answer_01, end='\n')
    answer_02 = pd.read_sql_query(sql.data_query(input_param, type_of_forma),
                                  sql_connect.connect())
    # print(answer_02, end='\n')
    supplier = answer_02.Name[0]

    # -------------ΑΝΑΘΕΣΗ ΤΙΜΗΣ: ΤΟ ΥΠΟΚΑΤΑΣΤΗΜΑ ----------------------------
    store = katastima()
    name = f'Νέα Παραγγελία: {store}'

    # -------------DATAFRAME ΤΟΥ ΠΡΟΜΗΘΕΥΤΗ ΜΑΙΛ - ΤΗΛΕΦΩΝΟ ----------------------------
    person = pd.read_sql_query(sql.extract_mail(input_param, type_of_forma),
                               sql_connect.connect())

    # -------------ΒΡΕΣ ΤΟ ΤΗΛΕΦΩΝΟ ΤΟΥ ΠΡΟΜΗΘΕΥΤΗ ----------------------------
    phone_number = person.Telephone1[0]

    # ----------------FILE PATH----------------------------
    file_path = f'/Users/kommas/OneDrive/Business_Folder/Slack/Orders/{store}/{supplier}/{output_file}'

    # ----------------DIRECTORY PATH ----------------------------
    directory_path = f'/Users/kommas/OneDrive/Business_Folder/Slack/Orders/{store}/{supplier}'

    # -------------------- MAKE DIRECTORY IF DOES NOT EXISTS --------------------
    try:
        if not os.path.exists(directory_path):
            os.makedirs(directory_path)
            print('!NEW! file path created')
        else:
            print('file path EXISTS')
    except OSError:
        print("!ERROR! Creation of the directory FAILED")
        sys.exit(1)

    # -------------OPEN FILE | WRITE ----------------------------
    excel.export(file_path, answer_01, answer_02, store)

    # ----------------SLACK BOT----------------------------
    slack.run(output_file, supplier, store, answer_02, person, phone_number,
              file_path)
예제 #3
0
def run():
    # DATAFRAME
    df = pd.read_sql(sql.run(), sql_connect.connect())
    detailed_df = pd.read_sql(sql.detailed(), sql_connect.connect())
    # PLOT
    plot.run(df, detailed_df)
    # SLACK
    slack.run()

    plt.show()
예제 #4
0
def run():
    # DATAFRAME
    df = pd.read_sql(sql.run(), sql_connect.connect())
    df2 = pd.read_sql(sql.run2(), sql_connect.connect())
    #PLOT
    name1 = 'images/new_items_per_user.png'
    name2 = 'images/new_items_per_user_all.png'
    plot.run(df, name1, dt.now().year )
    plot.run(df2, name2, f'FROM: 2012 TO: {dt.now().year}')
    # SLACK
    slack.run()
예제 #5
0
def run():
    file_path = '/Users/kommas/OneDrive/Business_Folder/Slack/Private_Analytics/Φρέσκο Γάλα Δέλτα POS.xlsx'
    # -------------Pandas GET Answer ------------
    answer = pd.read_sql_query(sql.query_01(), sql_connect.connect())
    answer_2 = pd.read_sql_query(sql.query_02(), sql_connect.connect())
    # ------------- PLOT ------------
    plot.run(answer_2)
    pl = 12
    # ------------- EXCEL ------------
    excel.run(file_path, answer, answer_2, pl)
    # ------------- SLACK ------------
    slack.run(file_path)
예제 #6
0
def run():
    file_path = '/Users/kommas/OneDrive/Business_Folder/Slack/Private_Analytics/Κερούλης.xlsx'
    # -------------PANDAS ------------
    answer = pd.read_sql_query(sql.query_01(), sql_connect.connect())
    answer_2 = pd.read_sql_query(sql.query_02(), sql_connect.connect())
    answer_3 = pd.read_sql_query(sql.query_03(), sql_connect.connect())
    pl = answer_3.values.min()
    # -------------PLOT ------------
    plot.run(answer, answer_2)
    # ------------- EXCEL ------------
    excel.run(file_path, answer, answer_2, pl)
    # ------------- SLACK ------------
    slack.run(file_path)
예제 #7
0
def run():
    output_file = 'Pendings.xlsx'
    path_to_file = f'/Users/kommas/OneDrive/Business_Folder/Slack/Multiple_emails/{output_file}'
    # Assign the SQL Query Answer
    sql_answer_1 = pd.read_sql_query(sql.query_01(), sql_connect.connect())
    sql_answer_2 = pd.read_sql_query(sql.query_02(), sql_connect.connect())
    sql_answer_3 = pd.read_sql_query(sql.query_03(), sql_connect.connect())
    tabs = ['Bazaar', 'Elounda', 'Lato']
    answers = [sql_answer_1, sql_answer_2, sql_answer_3]
    # Εισαγωγή Δεομένων στο  EXCEL
    excel.run(path_to_file, tabs, answers)
    # ---------------- SLACK ----------------------------
    slack.run(output_file, path_to_file)
예제 #8
0
def run():
    # ------- ELOUNDA MARKET -----------
    ems = pd.read_sql_query(sql.elounda_market_sales(), sql_connect.connect())
    print(
        f' 01: Προμηθευτές: SQL Ερώτημα: ELOUNDA MARKET SALES: Ολοκληρώθηκε: {datetime.now().strftime("%H:%M:%S")}'
    )

    ems_pivot = ems.pivot(index='YEAR', columns='MONTH', values='TurnOver')
    ems_pivot = ems_pivot.fillna(0)
    print(
        f' 02: Δημιουργία Dataframe: Ολοκληρώθηκε: {datetime.now().strftime("%H:%M:%S")}'
    )

    plot.heatmap(ems_pivot)
    print(
        f' 03: PLOT HEATMAP: Ολοκληρώθηκε: {datetime.now().strftime("%H:%M:%S")}'
    )

    plot.box(ems)
    print(
        f' 04: PLOT BOX: Ολοκληρώθηκε: {datetime.now().strftime("%H:%M:%S")}')

    ems_pivot['ΣΥΝΟΛΑ'] = ems_pivot.sum(axis=1)
    plot.elounda_market_sales(ems, ems_pivot)
    print(
        f' 05: PLOT BAR: Ολοκληρώθηκε: {datetime.now().strftime("%H:%M:%S")}')

    ems_pivot.loc['ΣΥΝΟΛΑ'] = ems_pivot.sum(axis=0)
    print(
        f' 06: ADD PIVOT SUMS: Ολοκληρώθηκε: {datetime.now().strftime("%H:%M:%S")}'
    )
    slack.run(ems_pivot)

    # ------- CONSTRUCTORS -----------
    emspb = pd.read_sql_query(sql.sales_per_brand(), sql_connect.connect())
    for name, brand in zip(names, brands):
        print(f'checking: {name}')
        df = emspb[emspb.SubCategory.isin(brand)]
        df_pivot = df.pivot(index='SubCategory',
                            columns='YEAR',
                            values='TurnOver')
        df_pivot = df_pivot.fillna(0)
        plot.heatmap_blue(df_pivot, name)
        df_pivot['ΣΥΝΟΛΑ'] = df_pivot.sum(axis=1)
        df_pivot.loc['ΣΥΝΟΛΑ'] = df_pivot.sum(axis=0)
        ccplot = df.groupby('YEAR').sum().reset_index()
        plot.kataskevastes(ccplot, name)
        slack.kat_run(df_pivot, name)
예제 #9
0
def run():
    class Supplier:
        def __init__(self, poliseis, pistotika, dates, price, money_back,
                     tziros, ypoloipo):
            self.poliseis = poliseis
            self.pistotika = pistotika
            self.dates = dates
            self.price = price
            self.money_back = money_back
            self.tziros = tziros
            self.ypoloipo = ypoloipo

        def __str__(self):
            return f"""
>:python: :  ΜΗΝΙΑΙΟ ΔΗΜΟΣΙΕΥΜΑ [ΕΜΜΑΝΟΥΗΛ ΒΑΡΔΑΣ (ΠΕΚ)] 
> ΥΠΟΛΟΓΙΣΜΟΣ (0.06 EUR * ΠΟΣΟΤΗΤΑ_ΠΩΛΗΣΕΩΝ) - (ΑΘΡΟΙΣΜΑ ΠΙΣΤΩΤΙΚΩΝ)
>ΠΩΛΗΣΕΙΣ:
```{self.poliseis}```
>ΠΙΣΤΩΤΙΚΑ:
```{pistotika}```
>ΚΑΘΑΡΟ ΥΠΟΛΟΙΠΟ:
` (0.06 * {self.poliseis.SalesQuantity[0]} ) - ({self.money_back})`
` {self.tziros} - {self.money_back} = {self.ypoloipo} EUR`
>:fbwow:
    """

    today = datetime.now()
    dates = pd.date_range('2018-11-1', today)
    dates = dates[(dates.strftime('%a') == 'Mon') |
                  (dates.strftime('%a') == 'Tue')]
    x = []
    for date in dates:
        date = date.strftime('%Y-%m-%d')
        x.append(date)

    poliseis = pd.read_sql_query(sql.get_vardas_sale(tuple(x)),
                                 sql_connect.connect())
    pistotika = pd.read_sql_query(sql.pistotiko(), sql_connect.connect())

    price = 0.06
    money_back = round(sum(pistotika['NET VALUE']), 2)
    tziros = round(price * poliseis.SalesQuantity[0], 2)
    ypoloipo = round(tziros - money_back, 2)

    vardas = Supplier(poliseis, pistotika, dates, price, money_back, tziros,
                      ypoloipo)

    slack.run(vardas)
예제 #10
0
def run():
    # DATAFRAME
    df = pd.read_sql(sql.run(), sql_connect.connect())
    #PLOT
    plot.run(df)
    # SLACK
    slack.run(df)
예제 #11
0
def run():
    file_path = '/Users/kommas/OneDrive/Business_Folder/Slack/Private_Analytics/Θαλασσινά.xlsx'
    # -------------Pandas GET Answer ------------
    answer = pd.read_sql_query(sql.query_01(), sql_connect.connect())
    answer_2 = pd.read_sql_query(sql.query_02(), sql_connect.connect())
    answer_3 = pd.read_sql_query(sql.query_03(), sql_connect.connect())
    pl = answer_3.values.min()

    # ------------- PLOT ------------
    plot.figure(answer_2, answer)

    # ------------- EXCEL ------------
    excel.export(file_path, answer, answer_2, pl)

    # ------------- SLACK ------------
    slack.send(file_path)
def run():
    def katastima(x):
        if x in ['00', '01']:
            return 'ΚΕΝΤΡΙΚΑ ΕΔΡΑΣ (ΣΧΙΣΜΑ ΕΛΟΥΝΤΑΣ)'
        elif x == '10':
            return 'ΛΑΤΟ 01 (ΑΚΤΗ ΙΩΣΗΦ ΚΟΥΝΔΟΥΡΟΥ 11)'
        elif x == '20':
            return 'ΛΑΤΟ 02 (28ΗΣ ΟΚΤΩΒΡΙΟΥ 6)'
        elif x == '30':
            return 'ΛΑΤΟ 03 (ΑΓ. ΙΩΑΝΝΗΣ 29)'

    answer_01 = pd.read_sql_query(sql.available_orders(),
                                  sql_connect.connect())
    answer_01['Store'] = answer_01['PdaId'].apply(katastima)
    if len(answer_01) == 0:
        return 'ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΓΓΡΑΦΕΣ (ΠΑΡΑΓΓΕΛΙΕΣ)'
    else:
        return f'{answer_01}'
예제 #13
0
def run():
    # ---------------- FILE PATH ----------------
    path = '/Users/kommas/OneDrive/Business_Folder/Slack/Private_Analytics/sql.xlsx'
    # ---------------- ANSWERS ----------------
    answer_01 = pd.read_sql_query(sql.query_01, sql_connect.connect())
    answer_02 = pd.read_sql_query(sql.query_02, sql_connect.connect())
    answer_03 = pd.read_sql_query(sql.query_03, sql_connect.connect())
    answer_04 = pd.read_sql_query(sql.query_04, sql_connect.connect())
    answer_05 = pd.read_sql_query(sql.query_05, sql_connect.connect())
    answer_06 = pd.read_sql_query(sql.query_06, sql_connect.connect())
    # ---------------- PLOT ----------------
    plot.app(answer_03, answer_04, answer_05)
    # ---------------- EXCEL EXPORT ----------------
    excel.export(path, answer_01, answer_02, answer_03, answer_04, answer_05, answer_06)
    # ---------------- SLACK BOT ----------------
    slack.app(path)
예제 #14
0
def run(name, year):
    df = pd.read_sql(sql.run(name, year), sql_connect.connect())
    # print(df)
    grouped_by_store = df.groupby(by='ΥΠΟΚΑΤΑΣΤΗΜΑ').sum().reset_index()
    column_list = ['ΔΕΥΤΕΡΑ', 'ΤΡΙΤΗ', 'ΤΕΤΑΡΤΗ', 'ΠΕΜΠΤΗ', 'ΠΑΡΑΣΚΕΥΗ', 'ΣΑΒΒΑΤΟ', 'ΚΥΡΙΑΚΗ']
    grouped_by_store['ΠΑΡΑΣΤΑΤΙΚΑ'] = grouped_by_store[column_list].sum(axis=1)
    print(grouped_by_store)

    # ΣΕ ΠΟΙΑ ΥΠΟΚΑΤΑΣΤΗΜΑΤΑ ΠΑΡΑΛΑΜΒΑΝΩ ΕΜΠΡΕΥΜΑΤΑ (ΛΙΣΤΑ)
    supply_stores = df['ΥΠΟΚΑΤΑΣΤΗΜΑ'].unique()

    # ΓΙΑ ΚΑΘΕ ΥΠΟΚΑΤΑΣΤΗΜΑ ΒΡΕΣ ΜΟΥ ΤΗΝ ΜΕΣΗ ΤΙΜΗ ΣΤΙΣ ΓΡΑΜΜΕΣ ΚΑΙ ΤΗΝ ΜΕΣΗ ΤΙΜΗ ΓΙΑ ΤΙΣ ΠΟΣΟΤΗΤΕΣ
    supply_lines_mean = []
    supply_quantity_mean = []
    for i in supply_stores:
        supply_lines_mean.append(int((df[df['ΥΠΟΚΑΤΑΣΤΗΜΑ'] == i]['ΓΡΑΜΜΕΣ'].mean())))
        supply_quantity_mean.append(int(df[df['ΥΠΟΚΑΤΑΣΤΗΜΑ'] == i]['ΠΟΣΟΤΗΤΑ'].mean()))
    # print(list(zip(supply_stores, supply_lines_mean)))
    # print(list(zip(supply_stores, supply_quantity_mean)))

    # plot
    plot.plot_sum_values(grouped_by_store['ΥΠΟΚΑΤΑΣΤΗΜΑ'], grouped_by_store['ΧΡΕΩΣΗ'], f'ΥΠΟΚΑΤΑΣΤΗΜΑ ΧΡΕΩΣΗ ΕΤΟΣ:{year}')
    return round(grouped_by_store['ΧΡΕΩΣΗ'].sum(), 2)
예제 #15
0
#   Copyright (c) 2020. Ioannis E. Kommas. All Rights Reserved
from Private import send_mail, sql_connect
from C_MONTHLY_REPORTS.EXCEL import epitages_to_excel
import pandas as pd

output_file = 'epitages.xlsx'
path_to_file = f'/Users/kommas/OneDrive/Business_Folder/Slack/Multiple_emails/{output_file}'
mail_lst = [
    '*****@*****.**', '*****@*****.**', '*****@*****.**'
]
mail_names = [
    'Επιταγές (Κομμάς Ιωάννης)', 'Επιταγές (Λογιστήριο)',
    'Επιταγές (Κατάστημα)'
]
program_title = 'Επιταγές'
# -------------------------------- READ HTML FILE ---------------------------------------
with open("../HTML/6. Επιταγές.html", 'r') as html_file:
    word = html_file.read()

with open("../SQL/epitages.sql", 'r') as sql_file:
    sql = sql_file.read()
# -------------------------------- DATA ---------------------------------------
data = pd.read_sql(sql, sql_connect.connect())

# -------------------------------- EXCEL ---------------------------------------
epitages_to_excel.run(path_to_file, data)

# -------------------------------- MAIL ---------------------------------------
send_mail.send_mail(mail_lst, mail_names, word, path_to_file, output_file)
import pandas as pd
from Private import send_mail, sql_connect
from C_MONTHLY_REPORTS.EXCEL import pe_00_to_excel
output_file = 'Extra_Timokatalogos.xlsx'
path_to_file = f'/Users/kommas/OneDrive/Business_Folder/Slack/Multiple_emails/{output_file}'
mail_lst = [
    '*****@*****.**', '*****@*****.**', '*****@*****.**'
]
mail_names = [
    'Αλλαγή Τιμοκαταλόγου: Κομμάς', 'Αλλαγή Τιμοκαταλόγου: Λογιστήριο',
    'Αλλαγή Τιμοκαταλόγου: Κατάστημα'
]
program_title = 'Επιπλέον Τιμοκατάλογος'

# -------------------------------- READ HTML FILE ---------------------------------------
with open('../HTML/0. Προσφορές Επιπλέον.html', 'r') as html_file:
    word = html_file.read()

# -------------------------------- READ SQL FILE ---------------------------------------
with open('../SQL/0. Προσφορές Επιπλέον', 'r') as sql_file:
    sql_querry = sql_file.read()

# --------------------------------  SQL  ---------------------------------------
sql_answer = pd.read_sql_query(sql_querry, sql_connect.connect())

# -------------------------------- EXCEL ---------------------------------------
pe_00_to_excel.run(path_to_file, sql_answer)

# -------------------------------- MAIL ---------------------------------------
send_mail.send_mail(mail_lst, mail_names, word, path_to_file, output_file)
예제 #17
0
mail_lst = [
    '*****@*****.**', '*****@*****.**', '*****@*****.**'
]
mail_names = [
    'Τιμολόγιο Atzoulatos (Κομμάς)', 'Τιμολόγιο Atzoulatos (Λογιστήριο)',
    'Τιμολόγιο Atzoulatos (Κατάστημα)'
]
main_name = 'ΑΝΤΖΟΥΛΑΤΟΣ ΑΝΑΣΤΑΣΙΟΣ & ΧΛΟΗ Ο.Ε.'

# -------------------- Open HTML File for the BODY MAIL --------------------
with open('HTML/2. Import || Antoulatos.html', 'r') as html_file:
    word = html_file.read()

# -------------------- Assign the SQL Query Answer --------------------
sql_answer = pd.read_sql_query(
    sql_import_report.private_database_query(main_name), sql_connect.connect())

# -------------------- ASSIGN VALUES HERE MARKUP / QUARTILES --------------------
markup = round(sql_answer['ΚΕΡΔΟΦΟΡΙΑ'] * 100, 2)
quartiles = np.quantile(markup, [.25, .5, .75])
order_id = sql_answer['ΠΑΡΑΣΤΑΤΙΚΟ'].unique()
retail_price = sql_answer['ΤΙΜΗ ΛΙΑΝΙΚΗΣ']
retail_q = np.quantile(retail_price, [.25, .5, .75])

# -------------------- FIND BARCODES WHO ARE IN EVERY QUARTILE --------------------
codes_in_q1 = sql_answer[markup <= quartiles[0]]
codes_in_q2 = sql_answer[(markup > quartiles[0]) & (markup <= quartiles[1])]
codes_in_q3 = sql_answer[(markup > quartiles[1]) & (markup <= quartiles[2])]
codes_in_q4 = sql_answer[markup > quartiles[2]]

if input('Press 1 continue:') != '1':
예제 #18
0
from datetime import date
from ΔΗΜΙΟΥΡΓΙΑ_EXCEL_ΓΙΑ_ΕΙΣΑΓΩΓΗ_ΤΙΜΟΚΑΤΑΛΟΓΟΥ import sql_select, excel_export
from Private import sql_connect

# ----------------MAKE DF REPORT VIEWABLE----------------------------
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

# -------------------- STATEMENTS HERE --------------------
id = 1881  # ΑΥΤΗ Η ΠΑΡΑΜΕΤΡΟΣ ΚΑΘΕ ΦΟΡΑ ΑΛΛΑΖΕΙ
how_many_weeks = 2  # ΑΥΤΗ Η ΠΑΡΑΜΕΤΡΟΣ ΚΑΘΕ ΦΟΡΑ ΑΛΛΑΖΕΙ
price_or_discount = ['Πελάτες Τιμή Πώλησης', 'Πωλήσεις Έκπτωση 1']
output_file = 'Timokatalogos.xlsx'
path_to_file = f'/Users/kommas/OneDrive/{output_file}'

# -------------------- READ PDA SCANNED ITEMS --------------------
sql = pd.read_sql_query(sql_select.pda_results(id), sql_connect.connect())
df = pd.DataFrame()
today = date.today().strftime('%d/%m/%y')
period = date.today() + relativedelta(weeks=+how_many_weeks)

repeatable_list = [price_or_discount[1], today, period.strftime('%d/%m/%y'), 1]

sql['Τιμ/γος'] = [repeatable_list[0] for i in range(len(sql))]
sql['Aπό'] = [repeatable_list[1] for i in range(len(sql))]
sql['Εως'] = [repeatable_list[2] for i in range(len(sql))]
sql['Υποκ/μα'] = [repeatable_list[3] for i in range(len(sql))]

# -------------------- IMPORT DATA TO EXCEL --------------------
excel_export.export(path_to_file, sql)
예제 #19
0
type_of_documents = ['ΑΠ_ΜΟΒ', 'ΔΕΑ', 'ΑΔΠ']
choose = type_of_documents[1]
id = 4002  # ΑΥΤΗ Η ΠΑΡΑΜΕΤΡΟΣ ΚΑΘΕ ΦΟΡΑ ΑΛΛΑΖΕΙ
output_file = 'Output.xlsx'
path_to_file = f'/Users/kommas/OneDrive/Business_Folder/Slack/Multiple_emails/{output_file}'
mail_lst = [
    '*****@*****.**', '*****@*****.**', '*****@*****.**'
]
mail_names = [
    'Ανάλυση Τιμών (Κομμάς)', 'Ανάλυση Τιμών (Λογιστήριο)',
    'Ανάλυση Τιμών (Κατάστημα)'
]

# -------------------- READ PDA SCANNED ITEMS --------------------
barcodes = pd.read_sql_query(sql_select.pda_results(id, choose),
                             sql_connect.connect())

# -------------------- GET LATEST COST FOR EVERY BARCODE --------------------
sql_answer = pd.DataFrame()
for barcode in barcodes['BARCODE']:
    sql_answer = sql_answer.append(
        pd.read_sql_query(sql_select.get_product_cost(barcode),
                          sql_connect.connect()))

# -------------------- RESET INDEX --------------------
sql_answer = sql_answer.reset_index(drop=True)
print(sql_answer)
# -------------------- FIND PRICES IN THE WEB --------------------
lista = sql_answer['BARCODE']
scrap.shops = [scrap.a, scrap.b, scrap.e]
out = scrap.calculate_prices(lista)
예제 #20
0
# -------------------- Statements Here --------------------
main_name = 'Astor Hellas A.E.'
output_file = 'Astor.xlsx'
path_to_file = f'/Users/kommas/OneDrive/Business_Folder/Slack/Multiple_emails/{output_file}'
mail_lst = ['*****@*****.**', '*****@*****.**', '*****@*****.**']
mail_names = ['Τιμολόγιο Astor (Κομμάς)', 'Τιμολόγιο Astor (Λογιστήριο)', 'Τιμολόγιο Astor (Κατάστημα)']


# -------------------- Open HTML File for the BODY MAIL --------------------
with open('HTML/2. Import || Astor.html', 'r') as html_file:
    word = html_file.read()


# -------------------- Assign the SQL Query Answer --------------------
sql_answer = pd.read_sql_query(sql_import_report.private_database_query(main_name), sql_connect.connect())


# -------------------- ASSIGN VALUES HERE MARKUP / QUARTILES --------------------
markup = round(sql_answer['ΚΕΡΔΟΦΟΡΙΑ']*100, 2)
quartiles = np.quantile(markup, [.25, .5, .75])
order_id = sql_answer['ΠΑΡΑΣΤΑΤΙΚΟ'].unique()
retail_price = sql_answer['ΤΙΜΗ ΛΙΑΝΙΚΗΣ']
retail_q = np.quantile(retail_price, [.25, .5, .75])

# -------------------- FIND BARCODES WHO ARE IN EVERY QUARTILE --------------------
codes_in_q1 = sql_answer[markup <= quartiles[0]]
codes_in_q2 = sql_answer[(markup > quartiles[0]) & (markup <= quartiles[1])]
codes_in_q3 = sql_answer[(markup > quartiles[1]) & (markup <= quartiles[2])]
codes_in_q4 = sql_answer[markup > quartiles[2]]
#   Copyright (c) 2020. Ioannis E. Kommas. All Rights Reserved

import matplotlib.pyplot as plt
import seaborn as sns
from Private import sql_connect
import pandas as pd
from PLOT_EXAMPLES import sql
from datetime import datetime as dt

current_year = dt.now().year + 1
past_years = current_year - 5

df = pd.read_sql_query(sql.query_01(), sql_connect.connect())

# Setting styles: darkgrid, whitegrid, dark, white,
sns.set_style("dark")
sns.set_palette("pastel")

for i in range(past_years, current_year):
    year = df[df.YEAR == f'{i}'].TurnOver
    print(year)
    sns.kdeplot(year, shade=True, label=f'{i}')
plt.legend()
plt.show()

sns.barplot(data=df[df.YEAR >= str(past_years)],
            x='MONTH',
            y='TurnOver',
            hue='YEAR')
plt.show()
예제 #22
0
#   Copyright (c) 2020. Ioannis E. Kommas. All Rights Reserved

import pandas as pd
from Private import sql_connect
from ΑΓΟΡΕΣ_ΠΩΛΗΣΕΙΣ import sql, excel

# ----------------MAKE DF REPORT VIEWABLE----------------------------
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

brand = ('Aphrodite', 'Aphrodite')
year = 2019
sales = pd.read_sql(sql.sales(brand, year), sql_connect.connect())
cost = pd.read_sql(sql.cost(brand, year), sql_connect.connect())

print(sales)
print(cost)

sales_cost = pd.merge(left=sales, right=cost, left_on='BARCODE', right_on='BARCODE').sort_values(
    by=['BARCODE']).reset_index()

output = sales_cost[['BARCODE',
                     'DESCRIPTION',
                     'ΑΓΟΡΕΣ',
                     'ΠΩΛΗΣΕΙΣ',
                     'ΑΓΟΡΕΣ EM',
                     'ΠΩΛΗΣΕΙΣ EM',
                     'ΑΓΟΡΕΣ L1',
                     'ΠΩΛΗΣΕΙΣ L1',
                     'ΑΓΟΡΕΣ L2',
                     'ΠΩΛΗΣΕΙΣ L2',
예제 #23
0
    output = f"""
    SELECT IMP_MobileDocumentLines.BarCode as 'BARCODE' 
    FROM IMP_MobileDocumentLines 
    LEFT JOIN IMP_MobileDocumentHeaders ON 
    IMP_MobileDocumentLines.fDocGID = IMP_MobileDocumentHeaders.GID
    WHERE IMP_MobileDocumentHeaders.Code = {id}
    AND IMP_MobileDocumentHeaders.OrderType like 'ΑΠ_ΜΟΒ'
    """
    return output


# ----------------STATEMENTS HERE----------------------------
# 3/6/2020 '1875' DONE
# 4/6/2020 '1877' DONE.
id = '1877'

# ----------------DATAFRAME----------------------------
df = pd.read_sql_query(pda_results(id), sql_connect.connect())

# ----------------FILE WRITE INLINE WITH \,----------------------------
with open('file.csv', 'w') as file:
    x = [str(df['BARCODE'].iloc[i]) for i in range(len(df))]
    print(x)
    file.write('\,'.join(x))

# ----------------SLACK BOT----------------------------
slack_app.send_text(
    f""" 
>H Αλλαγή Φ.Π.Α. Ολοκληρώθηκε 
`PDA Αρχείο: {id}`
""", slack_app.channels[1])
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

# -------------------- STATEMENTS HERE --------------------
pick_timokatalogo = timokatalogos.lista_2020[-1]
to_date = pick_timokatalogo.end

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parents[1]
path_to_file = BASE_DIR / f'A_DAILY_ΠΟΡΕΙΑ_ΤΙΜΟΚΑΤΑΛΟΓΟΥ_ΠΩΛΗΣΕΩΝ/excel/{to_date.strftime("%d-%m")}.xlsx'

# -------------------- TAKE TIMESTAMP --------------------
start_timestamp = dt.now().strftime('%d-%m %H:%M:%S')

# -------------------- ΔΙΑΒΑΖΩ ΤΟΝ ΤΙΜΟΚΑΤΑΛΟΓΟ SQL DB--------------------
timokatalogos = pd.read_sql_query(sql_select.get_ending_pricelist_products(to_date), sql_connect.connect())

# -------------OPEN FILE | WRITE ----------------------------
end_of_pricelist_excel_export.export(path_to_file, timokatalogos[['ΠΕΡΙΓΡΑΦΗ', 'ΚΩΔΙΚΟΣ', 'BRAND']])

# -------------------- SLACK BOT ADD TEXT --------------------
report = f"""
>EKTAKTO ΔΗΜΟΣΙΕΥΜΑ
>ΛΗΞΗ ΤΙΜΟΚΑΤΑΛΟΓΟΥ: {to_date.strftime('%d-%m')}
>
>Data Science Tools Used:
>:slack: :github: :docker: :kubernetes: :python: :javascript: :nodejs: :react: :vue: :fbwow: 
"""
slack_app.send_text(report, slack_app.channels[4])

# -------------------- SLACK BOT ADD FILES --------------------
예제 #25
0
def run(input_param, get_year):
    order_types = ['ΔΕΑ', 'ΑΔΠ', 'ΑΤΔ', 'ΠΠΡ', 'ΑΠ_ΜΟΒ']
    order_type = order_types[0]  # 0 = ΔΕΑ / 1 = ΑΔΠ ...
    detailed = 'detailed_{}.xlsx'.format(input_param)

    # ------------- ΕΠΙΛΟΓΗ ΥΠΟΚΑΤΑΣΤΗΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟ ID ΤΟΥ SCANNER ----------------------------

    def katastima():
        if answer_02.ID[0] in ['00', '01']:
            return 'ΚΕΝΤΡΙΚΑ ΕΔΡΑΣ (ΣΧΙΣΜΑ ΕΛΟΥΝΤΑΣ)'
        elif answer_02.ID[0] == '10':
            return 'ΛΑΤΟ 01 (ΑΚΤΗ ΙΩΣΗΦ ΚΟΥΝΔΟΥΡΟΥ 11)'
        elif answer_02.ID[0] == '20':
            return 'ΛΑΤΟ 02 (28ΗΣ ΟΚΤΩΒΡΙΟΥ 6)'
        elif answer_02.ID[0] == '30':
            return 'ΛΑΤΟ 03 (ΑΓ. ΙΩΑΝΝΗΣ 29)'

    # ------------- ANSWERS ----------------------------
    answer_01 = pd.read_sql_query(
        sql_select.sql_query(input_param, order_type), sql_connect.connect())
    answer_02 = pd.read_sql_query(
        sql_select.data_querry(input_param, order_type), sql_connect.connect())

    # -------------------- BARCODES --------------------
    barcodes = answer_01['BarCode']

    # -------------------- SUPPLIER --------------------
    supplier = answer_02.Name[0]
    # Αν δεν βρεθεί όνομα να οριστεί το order_type για να εκτελεστεί στην συνέχεια άλλο ερώτημα στην DB
    if not supplier:
        order_type = 'ΑΠ_ΜΟΒ'
    # -------------------- GET TOP 1 COST FOR EVERY BARCODE --------------------
    answer_03 = pd.DataFrame()

    for counter, barcode in enumerate(barcodes):
        percent = int((100 * (counter + 1)) / len(barcodes))
        filler = "█" * percent
        remaining = '-' * (100 - percent)
        print(
            f'\r01: CHECKING BARCODE: [{barcode}] \t{counter + 1}/{len(barcodes)} \tComplete:[{filler}{remaining}]{percent}%',
            end='',
            flush=True)
        if order_type == 'ΑΠ_ΜΟΒ':
            temp = pd.read_sql_query(
                sql_select.get_product_cost_with_no_name(barcode, get_year),
                sql_connect.connect())
            if temp.empty:
                temp = pd.read_sql_query(
                    sql_select.get_product_cost_with_no_name(
                        barcode,
                        dt.now().year), sql_connect.connect())
            answer_03 = answer_03.append(temp)
        else:
            temp = pd.read_sql_query(
                sql_select.get_product_cost_with_no_name(barcode, get_year),
                sql_connect.connect())
            if temp.empty:
                temp = pd.read_sql_query(
                    sql_select.get_product_cost_with_no_name(
                        barcode,
                        dt.now().year), sql_connect.connect())
            answer_03 = answer_03.append(temp)

    # -------------------- MERGE RESULTS --------------------
    final_result = pd.merge(left=answer_01,
                            right=answer_03,
                            left_on='BarCode',
                            right_on='BarCode',
                            how='left').sort_values(by=['Περιγραφή'])

    # -------------------- QUANTITY * PRICE --------------------
    final_result[
        'SUM'] = final_result['Ποσότητα'] * final_result['ΚΑΘΑΡΗ ΤΙΜΗ']

    print('\n\n02: Dataframe Merge:\t [✔️]')

    # ----------------FILE PATHS----------------------------
    detailed_file_path = '/Users/kommas/OneDrive/Business_Folder/Slack/Orders/{k}/{s}/{f}'.format(
        s=supplier, f=detailed, k=katastima())
    # ----------------DIRECTORY PATH ----------------------------
    directory_path = f'/Users/kommas/OneDrive/Business_Folder/Slack/Orders/{katastima()}/{supplier}'

    # -------------------- MAKE DIRECTORY IF DOES NOT EXISTS --------------------
    try:
        print('\n03: Path Check: ', end='')
        if not os.path.exists(directory_path):
            os.makedirs(directory_path)
            print('!NEW!\t [✔️]')
        else:
            print('\t\t [✔️]')
    except OSError:
        print("!ERROR! [❌️]")
        sys.exit(1)

    # -------------OPEN FILE | WRITE ----------------------------
    excel_export.export(detailed_file_path, final_result, answer_02, katastima)

    print('\n04: Export To Excel:\t [✔️]')

    # ----------------SLACK BOT CHAT----------------------------
    slack.run(supplier, katastima, final_result, get_year, detailed,
              detailed_file_path)