|
@@ -17,13 +17,10 @@ current_date = '24032021112656'
|
|
|
|
|
|
|
|
|
def main():
|
|
|
- # hb-format importieren
|
|
|
- # df_format = pd.read_csv(hb_format, decimal=',', sep=';', encoding='latin-1', converters={i: str for i in range(0, 200)})
|
|
|
- # row_format = df_format.head().to_dict(orient='records')
|
|
|
- # hp-translation importieren
|
|
|
+ # Übersetzungstabelle importieren
|
|
|
df_translation = pd.read_csv(hb_translation, decimal=',', sep=';', encoding='latin-1', converters={i: str for i in range(0, 200)})
|
|
|
df_translation['column_no_join'] = np.where(df_translation['column_no'].isin(['1', '3', '4']), df_translation['column_no'], '0')
|
|
|
- # hb-department importieren
|
|
|
+ # Department-Zuordnung importieren
|
|
|
df_department = pd.read_csv(hb_department, decimal=',', sep=';', encoding='latin-1', converters={i: str for i in range(0, 200)})
|
|
|
|
|
|
# Planwerte importieren
|
|
@@ -37,14 +34,14 @@ def main():
|
|
|
df['column_no'] = np.where(df['Vstufe 1'].str.contains('Umsatz'), '3', '0')
|
|
|
df['column_no'] = np.where(df['Vstufe 1'].isin(['Materialaufwand']), '4', df['column_no'])
|
|
|
df['column_no'] = np.where(df['type'].isin(['1']), '1', df['column_no'])
|
|
|
+
|
|
|
# Planwerte übersetzen
|
|
|
df = df.merge(df_department, how='inner', left_on='Betrieb Nr', right_on='department_id')
|
|
|
df = df.merge(df_translation, how='left', left_on=['Zeile', 'column_no'], right_on=['from', 'column_no_join'])
|
|
|
- # df['column_no_x'] = np.where(df['column_no_x'].isna(), df['column_no_y'], df['column_no_x'])
|
|
|
- # print(df['column_no_x'].unique())
|
|
|
# fehlende Übersetzung
|
|
|
df_ignored = df[(df['to'].isna()) & (df['Gesamt'] != 0)]
|
|
|
df_ignored.to_csv(hb_ignored, decimal=',', sep=';', encoding='latin-1', index=False)
|
|
|
+
|
|
|
# Planwerte formatieren und exportieren
|
|
|
rename_from = ['bm_code', 'BV_NUMMER', 'FILIAL_NR', 'to', 'column_no_y', 'Jahr', 'Gesamt']
|
|
|
rename_to = ['BM_CODE', 'BV_NUMMER', 'FILIAL_NR', 'ZEILE', 'SPALTE', 'JAHR', 'WERT']
|
|
@@ -53,11 +50,6 @@ def main():
|
|
|
group_by = ['BM_CODE', 'BV_NUMMER', 'FILIAL_NR']
|
|
|
df_valid = df_valid[rename_to].groupby(group_by)
|
|
|
|
|
|
- # season_from = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez']
|
|
|
- # season_to = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
|
|
|
- # df_valid = df_valid.rename(columns=dict(zip(season_from, season_to)))
|
|
|
- # df_valid = df_valid.melt(id_vars=['BV_NUMMER', 'FILIAL_NR', 'ZEILE', 'SPALTE'], value_vars=season_to,
|
|
|
- # var_name='MONAT', value_name='WERT')
|
|
|
for group in df_valid.groups:
|
|
|
g = dict(zip(group_by, group))
|
|
|
filename = base_dir + f"HB{g['BM_CODE']}{current_year}00{g['BV_NUMMER']}{g['FILIAL_NR']}0{current_date}.dat"
|