hariqueen commited on
Commit
08051aa
·
verified ·
1 Parent(s): 81c7a45

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +9 -49
main.py CHANGED
@@ -15,7 +15,7 @@ import pandas as pd
15
 
16
  def process_rental_company(company_name: str):
17
  """
18
- 특정 렌탈사의 데이터 처리 (기존 CLI 실행용)
19
 
20
  Args:
21
  company_name: 처리할 렌탈사 이름
@@ -51,38 +51,6 @@ def process_rental_company(company_name: str):
51
  print(f"\n'{company_name}' 렌탈사 데이터 처리 완료.")
52
 
53
 
54
- def process_uploaded_file(file_obj):
55
- """
56
- 사용자가 업로드한 파일 직접 처리 (Gradio용)
57
-
58
- Args:
59
- file_obj: 업로드된 파일 객체
60
- Returns:
61
- 생성된 CSV 파일 경로
62
- """
63
- company_config = cfg.RENTAL_COMPANIES['한국렌탈']
64
- mapping_dict = mapping_utils.load_mapping_file(company_config['mapping_file'])
65
-
66
- # 직접 file_obj를 Pandas로 읽어옴
67
- df, df_filtered = data_processor.load_and_preprocess_data(file_obj, company_config, mapping_dict)
68
- summary = data_processor.summarize_data(df_filtered, mapping_dict)
69
- erp_df = erp_generator.generate_erp_data(df_filtered, company_config)
70
- erp_df = erp_generator.prepare_erp_columns(erp_df)
71
- erp_df = erp_generator.set_management_items(erp_df, df_filtered, company_config)
72
-
73
- erp_form = file_handler.load_erp_form_template(company_config['erp_form_file'])
74
- result_df = file_handler.prepare_file_with_template(erp_df, erp_form)
75
-
76
- # output 경로 세팅
77
- output_csv = os.path.join(cfg.OUTPUT_DIR, f'자동전표_업로드파일_{cfg.CURRENT_DATE}.csv')
78
- output_excel = os.path.join(cfg.OUTPUT_DIR, f'자동전표_업로드파일_{cfg.CURRENT_DATE}.xlsx')
79
- report_file = os.path.join(cfg.OUTPUT_DIR, f'보고서_업로드파일_{cfg.CURRENT_DATE}.txt')
80
-
81
- file_handler.save_to_files(result_df, output_csv, output_excel, len(erp_df))
82
- reporter.generate_report_file(summary, erp_df, report_file)
83
-
84
- return output_csv
85
-
86
  def process_rental_company_with_voucher(uploaded_file_path, voucher_number):
87
  """
88
  사용자가 업로드한 파일과 전표번호를 받아 ERP 자동 전표파일을 생성하는 함수
@@ -94,43 +62,35 @@ def process_rental_company_with_voucher(uploaded_file_path, voucher_number):
94
  Returns:
95
  output_path (str): 최종 저장된 파일 경로 (xlsx)
96
  """
97
- # 한국렌탈 기준으로 설정 (혹시 다르면 추후 확장 가능)
98
  company_name = "한국렌탈"
99
  company_config = cfg.RENTAL_COMPANIES[company_name]
100
 
101
- # 매핑 정보 로드
102
  mapping_file = company_config['mapping_file']
103
  mapping_dict = mapping_utils.load_mapping_file(mapping_file)
104
 
105
- # 데이터 로드 및 전처리
106
  df, df_filtered = data_processor.load_and_preprocess_data(uploaded_file_path, company_config, mapping_dict)
107
-
108
- # 데이터 요약 생성
109
  summary = data_processor.summarize_data(df_filtered, mapping_dict)
110
-
111
- # ERP 데이터 생성
112
  erp_df = erp_generator.generate_erp_data(df_filtered, company_config)
113
-
114
- # ERP 표준 컬럼 구조로 준비
115
  erp_df = erp_generator.prepare_erp_columns(erp_df)
116
-
117
- # 관리항목 설정
118
  erp_df = erp_generator.set_management_items(erp_df, df_filtered, company_config)
119
 
120
- # **여기서 전표번호 채워넣기**
121
  if 'ROW_ID' in erp_df.columns:
122
  erp_df['ROW_ID'] = voucher_number
123
  if 'NO_DOCU' in erp_df.columns:
124
  erp_df['NO_DOCU'] = voucher_number
125
 
126
- # 저장 경로 설정
 
 
 
 
127
  output_filename = f"자동전표_완성파일_{datetime.now().strftime('%Y%m%d')}.xlsx"
128
  output_path = os.path.join(cfg.OUTPUT_DIR, output_filename)
129
-
130
  os.makedirs(cfg.OUTPUT_DIR, exist_ok=True)
131
 
132
- # 엑셀로 저장
133
- erp_df.to_excel(output_path, index=False)
134
 
135
  return output_path
136
 
 
15
 
16
  def process_rental_company(company_name: str):
17
  """
18
+ 특정 렌탈사의 데이터 처리 (CLI 실행용)
19
 
20
  Args:
21
  company_name: 처리할 렌탈사 이름
 
51
  print(f"\n'{company_name}' 렌탈사 데이터 처리 완료.")
52
 
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  def process_rental_company_with_voucher(uploaded_file_path, voucher_number):
55
  """
56
  사용자가 업로드한 파일과 전표번호를 받아 ERP 자동 전표파일을 생성하는 함수
 
62
  Returns:
63
  output_path (str): 최종 저장된 파일 경로 (xlsx)
64
  """
 
65
  company_name = "한국렌탈"
66
  company_config = cfg.RENTAL_COMPANIES[company_name]
67
 
 
68
  mapping_file = company_config['mapping_file']
69
  mapping_dict = mapping_utils.load_mapping_file(mapping_file)
70
 
 
71
  df, df_filtered = data_processor.load_and_preprocess_data(uploaded_file_path, company_config, mapping_dict)
 
 
72
  summary = data_processor.summarize_data(df_filtered, mapping_dict)
 
 
73
  erp_df = erp_generator.generate_erp_data(df_filtered, company_config)
 
 
74
  erp_df = erp_generator.prepare_erp_columns(erp_df)
 
 
75
  erp_df = erp_generator.set_management_items(erp_df, df_filtered, company_config)
76
 
77
+ # 전표번호 채우기
78
  if 'ROW_ID' in erp_df.columns:
79
  erp_df['ROW_ID'] = voucher_number
80
  if 'NO_DOCU' in erp_df.columns:
81
  erp_df['NO_DOCU'] = voucher_number
82
 
83
+ # ERP 템플릿 양식에 맞춰서 준비
84
+ erp_form = file_handler.load_erp_form_template(company_config['erp_form_file'])
85
+ result_df = file_handler.prepare_file_with_template(erp_df, erp_form)
86
+
87
+ # 저장
88
  output_filename = f"자동전표_완성파일_{datetime.now().strftime('%Y%m%d')}.xlsx"
89
  output_path = os.path.join(cfg.OUTPUT_DIR, output_filename)
 
90
  os.makedirs(cfg.OUTPUT_DIR, exist_ok=True)
91
 
92
+ # 반드시 result_df 저장
93
+ result_df.to_excel(output_path, index=False, engine="openpyxl")
94
 
95
  return output_path
96