diff --git a/relatório_ruptura/ruptura projetada 23.05.py b/relatório_ruptura/ruptura projetada 23.05.py index ada2ebc..1814827 100644 --- a/relatório_ruptura/ruptura projetada 23.05.py +++ b/relatório_ruptura/ruptura projetada 23.05.py @@ -56,7 +56,12 @@ SELECT pendingorder AS pendente, nextcycleprojection AS pv_mar, currentcyclesales AS venda_atual, - CASE WHEN criticalitem_iscritical = 0 THEN 'REGULAR' ELSE 'CRITICO' END AS status_item + CASE WHEN criticalitem_iscritical = 0 THEN 'REGULAR' ELSE 'CRITICO' END AS status_item, + ( COALESCE(thirdtolastcyclesales, 0) + + COALESCE(secondtolastcyclesales, 0) + + COALESCE(lastcyclesales, 0) + + COALESCE(nextcycleprojection, 0) + ) / 4.0 AS media_vendas FROM Draft WHERE isproductdeactivated = 0 AND codcategory NOT IN ('SUPORTE A VENDA','EMBALAGENS') ''' @@ -66,18 +71,20 @@ df.columns = df.columns.str.lower() filtered_calendario.columns = filtered_calendario.columns.str.lower() df['ddv'] = df['pv_mar'] / filtered_calendario['duração'].values[0] -df['estoque_seguranca'] = np.ceil(df['pv_mar'] + (15 * df['ddv'])).astype(int) -df['risco_ruptura'] = np.where(df['ddv'] * filtered_calendario['dias_ate_fim'].max() >= df['estoque'], "SIM", "NÃO") -df['quantidade_ruptura'] = np.ceil(df['ddv'] * filtered_calendario['dias_ate_fim'].max() - df['estoque']) -df['excesso'] = np.where(df['estoque'] - df['estoque_seguranca'] > 0, df['estoque'] - df['estoque_seguranca'], 0) +df['estoque_seguranca'] = np.ceil((df['media_vendas']/20)*11 - (df['ddv']*11)).astype(int) #media de vendas realizada+projetada +df['estoque_seguranca'] = np.where(df['estoque_seguranca'] <1,1,df['estoque_seguranca']) +df['risco_ruptura'] = np.where(df['estoque_seguranca'] > df['estoque'], "SIM", "NÃO") +df['quantidade_ruptura'] = df['estoque_seguranca'] - df['estoque'] +df['excesso'] = np.where(df['estoque'] - df['estoque_seguranca'] > 0, df['estoque'] - df['estoque_seguranca'], 0) remetente = config['credenciais']['remetente'] senha = config['credenciais']['senha'] destinatarios = [email.strip() for email in config['email_ruptura']['destinatarios'].split(',')] assunto = config['email_ruptura']['assunto'] -df_rpt = pd.read_excel(r"C:\Users\joao.herculano\Downloads\Ruptura Cliente CP GINSENG (1).xlsx") +df_rpt = pd.read_excel(r"C:\Users\joao.herculano\Downloads\Ruptura Cliente CP GINSENG - 09.06.xlsx") df_rpt.columns = df_rpt.columns.str.lower() +print(df_rpt.columns) df['pdv'] = df['pdv'].astype('Int64') df['sku'] = df['sku'].astype('Int64') @@ -257,7 +264,7 @@ html_email = f"""
Além disso, o material destaca as VDs com maior criticidade, permitindo uma atuação direcionada para mitigar impactos e priorizar ações de abastecimento e transferência.
Importante:
O relatório está em processo de desenvolvimento e pode sofrer mudanças futuras no layout. Ficamos à disposição para esclarecer quaisquer dúvidas.
-Foram adicionados ao relatório os PDVs da região de Irecê.
+Foram adicionados ao relatório os PDVs da região de Irecê e Jacobina.