!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache/2.4.18 (Ubuntu). PHP/7.0.33-0ubuntu0.16.04.16 

uname -a: Linux digifus 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:28:15 UTC 2015 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/FlaskAppTest/ahab/   drwxr-xr-x
Free 10.22 GB of 29.4 GB (34.77%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     database_functions.py (10.72 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import pymysql as mdb
import json

db_host = 'localhost'
db_user = 'db_user'
db_password = 'pacman'
db_database = 'antonella'
qr_scale = 12

def get_photo_from_product(product_name):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT imagen from productos WHERE nombre_producto='%s'" % product_name)
        row = con.fetchone()
        if row is not None:
            return row[0]
    return None

def update_product_photo(product_name, photo):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        query = "UPDATE productos SET imagen='%s' WHERE nombre_producto='%s'" % (photo, product_name)
        con.execute(query)


def get_qr_filename_from_product(product_name):
    # return a qr filename for a product id
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT codigo_qr from productos WHERE nombre_producto='%s'" % product_name)
        row = con.fetchone()
        if row is not None:
            return row[0]
    return None

def insert_product(name, description, price, seller_price, count, model, category, supplier, code, photo=None):
    default_photo = '/var/www/FlaskAppTest/images/NotAvailable300.png'
    status_id = 1
    if photo is None:
        default_photo = photo
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        category_id = get_category_id_from_name(category)
        model_id = get_model_id_from_name(model)
        supplier_id = get_supplier_id_from_name(supplier) 
        query = "INSERT INTO productos(nombre_producto, descripcion, numero, precio_ingreso, id_proveedor, id_categoria, id_modelo, precio_venta, imagen, id_estado) VALUES ('%s', '%s', '%s', %f, %d, %d, %d, %f, '%s', %d)" % (name, description, code, price, supplier_id, category_id, model_id, seller_price, photo, status_id)
        print query        
        con.execute(query)
        stock_query = "INSERT INTO stock_productos(nombre_producto, stock) VALUES ('%s', %d)" % (name, count)
        con.execute(stock_query)

def update_product(name, description, price, seller_price, count, model, category, supplier, code, photo=None):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        category_id = get_category_id_from_name(category)
        model_id = get_model_id_from_name(model)
        supplier_id = get_supplier_id_from_name(supplier) 
        query = "UPDATE productos SET descripcion='%s', numero='%s', precio_ingreso=%f, id_proveedor=%d, id_categoria=%d, id_modelo=%d, precio_venta=%f, imagen='%s' WHERE nombre_producto='%s'" % (description, code, price, supplier_id, category_id, model_id, seller_price, photo, name)
        if photo is None:
            query = "UPDATE productos SET descripcion='%s', numero='%s', precio_ingreso=%f, id_proveedor=%d, id_categoria=%d, id_modelo=%d, precio_venta=%f  WHERE nombre_producto='%s'" % (description, code, price, supplier_id, category_id, model_id, seller_price,name)
        con.execute(query)
        stock_query = "UPDATE stock_productos set stock=%d WHERE nombre_producto='%s'" % (count, name)
        con.execute(stock_query)

def get_all_products():
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
    con.execute("SELECT p.nombre_producto, p.numero, p.descripcion, p.precio_ingreso, p.precio_venta, s.stock, c.categoria, m.modelo, pr.nombre, p.imagen from productos as p, stock_productos as s, categorias_productos c, modelos m, proveedores pr where p.nombre_producto = s.nombre_producto and p.id_categoria = c.id and m.id = p.id_modelo and pr.id = p.id_proveedor")
    products = [dict(name=row[0], code=row[1], description=row[2], price=row[3], seller_price=row[4], stock=row[5], category=row[6], model=row[7], supplier=row[8]) for row in con.fetchall()]
    return products

def get_product_by_name(product_name):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
         con.execute("SELECT p.nombre_producto, p.numero, p.descripcion, p.precio_ingreso, p.precio_venta, s.stock, c.categoria, m.modelo, pr.nombre from productos as p, stock_productos as s, categorias_productos c, modelos m, proveedores pr where p.nombre_producto = s.nombre_producto and p.id_categoria = c.id and m.id = p.id_modelo and pr.id = p.id_proveedor and p.nombre_producto='%s'" % product_name)
#   query = "SELECT nombre_producto, descripcion, precio_ingreso, precio_venta from productos WHERE nombre_producto='%s'" % product_name
        product_row = con.fetchone()
        return {
            'name': product_row[0], 'code': product_row[1], 'description': product_row[2],
            'price' : float(product_row[3]), 'seller_price': float(product_row[4]), 'stock': product_row[5],
            'category': product_row[6], 'model': product_row[7], 'supplier': product_row[8]
        }

def insert_product_oder(order_id, json_products):
     for product in json_products:      
        with mdb.connect(db_host, db_user, db_password, db_database) as con:
            insert_query = 'INSERT INTO detalle_pedido(id_pedido, nombre_producto, cantidad) VALUES (%d, "%s", %d)' % (order_id, product['name'], int(product['count']))
            con.execute(insert_query)
            update_stock(product['name'], int(product['count']))
            update_product_sell_count(product['name'], int(product['count']))
            
def update_stock(product_name, count):
   with mdb.connect(db_host, db_user, db_password, db_database) as con:
            query = 'UPDATE stock_productos SET stock=stock -%d WHERE nombre_producto="%s"'% (count, product_name)
            con.execute(query)

def update_product_sell_count(product_name, count):
   with mdb.connect(db_host, db_user, db_password, db_database) as con:
            query = 'UPDATE productos SET cantidad_vendida=cantidad_vendida + %d WHERE nombre_producto="%s"'% (count, product_name)
            con.execute(query)

def insert_order(seller_id, client_id, products):
    import datetime
    date = datetime.datetime.now()
    total = 0.0
    
    #json_products = json.loads(str(products))
    json_products = products
    for product in json_products:
        print product
        product_data = get_product_by_name(product['name'])
        total += product_data['seller_price']*int(product['count'])
    order_id = 1
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        query = "INSERT INTO pedidos(id_estado, fecha, id_cliente, total, vendedor) VALUES (%d, '%s', '%s', %f, '%s')" % (1, str(date), client_id, total, seller_id)
        con.execute(query)
    order_id = con.lastrowid
    # Insert order detail
    insert_product_oder(order_id, json_products)

def get_all_orders():
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT id_pedido, id_estado, fecha, id_cliente, total, iva, descuento, vendedor from pedidos;")
        orders = [dict(order_id=row[0], status=row[1], date=row[2].strftime("%Y-%m-%d %H:%M:%S"), client_id=row[3], total=row[4], iva=row[5], discount=row[6], seller=row[7]) for row in con.fetchall()]
    return orders

####### CLIENTS
def get_all_clients():
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
    con.execute("SELECT id, nombre, direccion, localidad, telefono, cuit, mail from clientes")
    clients = [dict(id=row[0], name=row[1], address=row[2], city=row[3], phone=row[4], cuit=row[5], mail=row[6]) for row in con.fetchall()]
    return clients


def insert_client(name, business_name, address, city, phone, cuit, mail, expresso):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        insert_query = "INSERT INTO clientes(nombre, razon_social, direccion, localidad, telefono, nombre_comercial, cuit, mail, expreso) VALUES('%s','%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')" % (name, business_name, address, city, phone, business_name, cuit, mail, expresso)
        con.execute(insert_query)

def insert_client(name, address, phone, cuit, mail):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        insert_query = "INSERT INTO clientes(nombre, direccion, telefono, cuit, mail) VALUES('%s','%s', '%s', '%s', '%s')" % (name, address, phone, cuit, mail)
        con.execute(insert_query)


def get_client_by_business_name(client_business_name):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        query = "SELECT * from clientes WHERE razon_social='%s'" % client_business_name
           con.execute(query)
        row = con.fetchone()
        return { 'id': row[0], 'name': row[1], 'business name': row[2], 'address' : row[3], 'city': row[4], 'phone': row[5], 'cuit': row[7]}

def get_client_by_cuit(client_cuit):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        query = "SELECT id, nombre, direccion, cuit, telefono, mail from clientes WHERE cuit='%s'" % client_cuit
           con.execute(query)
        row = con.fetchone()
        return { 'id': row[0], 'name': row[1], 'address': row[2], 'cuit': row[3], 'phone': row[4], 'mail': row[5]}

## MODELS
def get_models():
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT idCategoria, modelo from modelos")
        models = [dict(category_id=row[0], model=row[1]) for row in con.fetchall()]
        return models


def get_model_id_from_name(model):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT id from modelos where modelo='%s'" % model)
        row = con.fetchone()
        if row is not  None:
            return row[0]
        return None

## CATEGORIES

def get_categories():
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT id, categoria from categorias_productos")
        categories = [dict(category_id=row[0], category=row[1]) for row in con.fetchall()]
        return categories

def get_category_id_from_name(category_name):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT id from categorias_productos where categoria='%s'" % category_name)
        row = con.fetchone()
        if row is not  None:
            return row[0]
        return None

## SUPPLIER

def get_suppliers():
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT nombre, razon_social, direccion, localidad, telefono, cuit, mail from proveedores")
        suppliers = [dict(name=row[0], business_name=row[1], address=row[2], city=row[3], telephone=row[4], cuit=row[5], mail=row[6]) for row in con.fetchall()]
        return suppliers

def get_supplier_id_from_name(supplier):
    with mdb.connect(db_host, db_user, db_password, db_database) as con:
        con.execute("SELECT id from proveedores where nombre='%s'" % supplier)
        row = con.fetchone()
        if row is not  None:
            return row[0]
        return None



:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0072 ]--