Spaces:
Sleeping
Sleeping
| """ | |
| ERP μμ λ° ν νλ¦Ώ κ΄λ ¨ μ νΈλ¦¬ν° | |
| """ | |
| import pandas as pd | |
| from typing import Dict, Any, Optional | |
| from core import config as cfg | |
| def load_erp_form_template(erp_form_file: str) -> Optional[pd.DataFrame]: | |
| """ | |
| ERP μμ νμΌ λ‘λ | |
| Args: | |
| erp_form_file: ERP μμ νμΌ κ²½λ‘ | |
| Returns: | |
| ERP μμ λ°μ΄ν°νλ μ λλ None | |
| """ | |
| try: | |
| erp_form = pd.read_csv(erp_form_file, encoding=cfg.DEFAULT_ENCODING) | |
| print(f"ERP μμ νμΌ '{erp_form_file}'μ μ±κ³΅μ μΌλ‘ λ‘λνμ΅λλ€.") | |
| return erp_form | |
| except Exception as e: | |
| print(f"ERP μμ νμΌ λ‘λ μ€ν¨: {e}") | |
| print("κΈ°λ³Έ μμ μμ΄ μ§νν©λλ€.") | |
| return None | |
| def prepare_file_with_template(erp_df: pd.DataFrame, erp_form: Optional[pd.DataFrame]) -> pd.DataFrame: | |
| """ | |
| ERP μμμ μ μ©νμ¬ νμΌ μ€λΉ | |
| Args: | |
| erp_df: ERP λ°μ΄ν°νλ μ | |
| erp_form: ERP μμ λ°μ΄ν°νλ μ | |
| Returns: | |
| κ²°κ³Ό λ°μ΄ν°νλ μ | |
| """ | |
| if erp_form is not None: | |
| # μμ νμΌμ μ»¬λΌ μμ μ¬μ© | |
| form_columns = erp_form.columns.tolist() | |
| # κ²°κ³Ό λ°μ΄ν°νλ μμ μμ μ»¬λΌ μμμ λ§κ² μ¬μ λ ¬ | |
| for col in form_columns: | |
| if col not in erp_df.columns: | |
| erp_df[col] = "" | |
| erp_df = erp_df[form_columns] | |
| # erp_form λ³΅μ¬ (μμ νμΌμ μ²μ nνλ§ μ¬μ©) | |
| result_df = erp_form.copy() | |
| # μμ νμΌμ΄ μ§μ λ μμνλ³΄λ€ λ§μΌλ©΄ νμν λ§νΌλ§ μ μ§ | |
| if len(result_df) > cfg.ERP_DATA_ROW_START - 1: | |
| result_df = result_df.iloc[:(cfg.ERP_DATA_ROW_START - 1)] | |
| # λΉ ν μΆκ° (νμν κ²½μ°) | |
| current_rows = len(result_df) | |
| target_rows = cfg.ERP_DATA_ROW_START - 1 # μμν - 1 (μΈλ±μ€λ 0λΆν° μμνλ―λ‘) | |
| # νμ¬ ν μκ° νκ² ν μλ³΄λ€ μ μΌλ©΄ λΉ ν μΆκ° | |
| if current_rows < target_rows: | |
| empty_rows_needed = target_rows - current_rows | |
| empty_df = pd.DataFrame([[""] * len(form_columns) for _ in range(empty_rows_needed)], columns=form_columns) | |
| result_df = pd.concat([result_df, empty_df], ignore_index=True) | |
| # μ²λ¦¬λ λ°μ΄ν° μΆκ° (ERP_DATA_ROW_STARTνλΆν° μμ) | |
| result_df = pd.concat([result_df, erp_df], ignore_index=True) | |
| return result_df | |
| else: | |
| # μμ νμΌμ΄ μλ κ²½μ° λΉ λ°μ΄ν°νλ μ μμ± ν λ°μ΄ν° μΆκ° | |
| # νμν λΉ ν μμ± (ERP_DATA_ROW_START-1κ°μ λΉ ν) | |
| empty_rows = cfg.ERP_DATA_ROW_START - 1 | |
| empty_df = pd.DataFrame([[""] * len(erp_df.columns) for _ in range(empty_rows)], columns=erp_df.columns) | |
| result_df = pd.concat([empty_df, erp_df], ignore_index=True) | |
| return result_df |