def get_total_by_cash_register(sales_df): if sales_df is None: return None sales_df = sales_df.filter(get_sales_data_validations()) sales_group = sales_df.groupby('numero_caja').agg({'venta': 'sum'}) sales_group = sales_group.orderBy(sales_group['sum(venta)'].desc()) return sales_group.select(funcs.col("numero_caja"), funcs.col("sum(venta)").alias("ventas"))
def get_total_by_products(sales_df): if sales_df is None: return None sales_df = sales_df.filter(get_sales_data_validations()) sales_group = sales_df.groupby('producto').agg({'venta': 'sum'}) sales_group = sales_group.orderBy(sales_group['sum(venta)'].desc()) return sales_group.select(funcs.col("producto"), funcs.col("sum(venta)").alias("ventas"))
def get_sales_percentile(sales_df, percentile): if sales_df is None: return None sales_df = sales_df.filter(get_sales_data_validations()) total_registers_df = get_total_by_cash_register(sales_df) return total_registers_df\ .selectExpr('percentile(ventas, ' + str(percentile) + ') as percentile')\ .first().percentile
def get_product_with_more_sales(sales_df): if sales_df is None: return None sales_df = sales_df.filter(get_sales_data_validations()) sales_group = get_total_by_products(sales_df) product_most_unit_sold = sales_group.orderBy( sales_group['ventas'].desc()).first().producto return product_most_unit_sold
def get_product_with_more_units_sold(sales_df): if sales_df is None: return None sales_df = sales_df.filter(get_sales_data_validations()) sales_group = sales_df.groupby('producto').agg({'cantidad': 'sum'}) product_most_unit_sold = sales_group.orderBy( sales_group['sum(cantidad)'].desc()).first().producto return product_most_unit_sold
def get_cash_register_with_least_sales(sales_df): if sales_df is None: return None sales_df = sales_df.filter(get_sales_data_validations()) sales_group = get_total_by_cash_register(sales_df) cr_with_most_sales = sales_group.orderBy( sales_group['ventas'].asc()).first().numero_caja return cr_with_most_sales