hariqueen commited on
Commit
00169cd
Β·
verified Β·
1 Parent(s): 286475f

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +32 -39
main.py CHANGED
@@ -1,15 +1,12 @@
1
- """
2
- ERP μžλ™ μ „ν‘œ 생성 메인 μ‹€ν–‰ 파일
3
- """
4
  import os
5
  import argparse
6
  from datetime import datetime
7
- import config as cfg
8
- import mapping_utils
9
- import data_processor
10
- import erp_generator
11
- import file_handler
12
- import reporter
13
  import pandas as pd
14
  from pyexcel_xls import save_data
15
  from collections import OrderedDict
@@ -22,11 +19,11 @@ def process_rental_company(company_name: str):
22
  Args:
23
  company_name: μ²˜λ¦¬ν•  λ Œνƒˆμ‚¬ 이름
24
  """
25
- if company_name not in cfg.RENTAL_COMPANIES:
26
  print(f"였λ₯˜: '{company_name}' λ Œνƒˆμ‚¬ 섀정을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.")
27
  return
28
 
29
- company_config = cfg.RENTAL_COMPANIES[company_name]
30
  print(f"'{company_name}' λ Œνƒˆμ‚¬ 데이터 처리 μ‹œμž‘...")
31
 
32
  input_file = company_config['input_file']
@@ -34,21 +31,21 @@ def process_rental_company(company_name: str):
34
  erp_form_file = company_config['erp_form_file']
35
  output_csv = company_config['output_csv']
36
  output_excel = company_config['output_excel']
37
- report_file = os.path.join(cfg.OUTPUT_DIR, f'λ³΄κ³ μ„œ_{company_name}_{datetime.now().strftime("%Y%m%d")}.txt')
38
 
39
- mapping_dict = mapping_utils.load_mapping_file(mapping_file)
40
- df, df_filtered = data_processor.load_and_preprocess_data(input_file, company_config, mapping_dict)
41
- summary = data_processor.summarize_data(df_filtered, mapping_dict)
42
- erp_df = erp_generator.generate_erp_data(df_filtered, company_config)
43
- erp_df = erp_generator.prepare_erp_columns(erp_df)
44
- erp_df = erp_generator.set_management_items(erp_df, df_filtered, company_config)
45
 
46
- erp_form = file_handler.load_erp_form_template(erp_form_file)
47
- result_df = file_handler.prepare_file_with_template(erp_df, erp_form)
48
 
49
- file_handler.save_to_files(result_df, output_csv, output_excel, len(erp_df))
50
- reporter.print_data_summary(summary, company_config)
51
- # reporter.generate_report_file(summary, erp_df, report_file)
52
 
53
  print(f"\n'{company_name}' λ Œνƒˆμ‚¬ 데이터 처리 μ™„λ£Œ.")
54
 
@@ -70,19 +67,19 @@ def process_rental_company_with_voucher(uploaded_file_path, voucher_number, empl
70
  raise ValueError("μ‚¬μ›λ²ˆν˜Έλ₯Ό μž…λ ₯ν•΄μ£Όμ„Έμš”. μ‚¬μ›λ²ˆν˜ΈλŠ” ν•„μˆ˜ μž…λ ₯κ°’μž…λ‹ˆλ‹€.")
71
 
72
  company_name = "ν•œκ΅­λ Œνƒˆ"
73
- company_config = cfg.RENTAL_COMPANIES[company_name].copy() # 섀정을 λ³΅μ‚¬ν•΄μ„œ μ‚¬μš©
74
 
75
  # μ‚¬μ›λ²ˆν˜Έ μ„€μ • - μž…λ ₯된 κ°’ μ‚¬μš©
76
  company_config['id_write'] = employee_number.strip()
77
 
78
  mapping_file = company_config['mapping_file']
79
- mapping_dict = mapping_utils.load_mapping_file(mapping_file)
80
 
81
- df, df_filtered = data_processor.load_and_preprocess_data(uploaded_file_path, company_config, mapping_dict)
82
- summary = data_processor.summarize_data(df_filtered, mapping_dict)
83
- erp_df = erp_generator.generate_erp_data(df_filtered, company_config)
84
- erp_df = erp_generator.prepare_erp_columns(erp_df)
85
- erp_df = erp_generator.set_management_items(erp_df, df_filtered, company_config)
86
 
87
  # μ „ν‘œλ²ˆν˜Έ μ±„μ›Œλ„£κΈ°
88
  if 'ROW_ID' in erp_df.columns:
@@ -91,22 +88,18 @@ def process_rental_company_with_voucher(uploaded_file_path, voucher_number, empl
91
  erp_df['NO_DOCU'] = voucher_number
92
 
93
  # ERP 양식 λ‘œλ“œ
94
- erp_form = file_handler.load_erp_form_template(company_config['erp_form_file'])
95
 
96
  # ERP 양식에 λ§žμΆ°μ„œ 데이터 μ€€λΉ„
97
- result_df = file_handler.prepare_file_with_template(erp_df, erp_form)
98
 
99
  # μ €μž₯
100
  output_filename = f"μžλ™μ „ν‘œ_μ™„μ„±νŒŒμΌ_{datetime.now().strftime('%Y%m%d')}.xls"
101
- output_path = os.path.join(cfg.OUTPUT_DIR, output_filename)
102
 
103
- os.makedirs(cfg.OUTPUT_DIR, exist_ok=True)
104
 
105
  try:
106
- # pyexcel_xls와 OrderedDict λͺ¨λ“ˆ μž„ν¬νŠΈ
107
- from pyexcel_xls import save_data
108
- from collections import OrderedDict
109
-
110
  # λ°μ΄ν„°ν”„λ ˆμž„μ„ 리슀트둜 λ³€ν™˜
111
  headers = result_df.columns.tolist()
112
  data = [headers] # 헀더λ₯Ό 첫 번째 ν–‰μœΌλ‘œ μΆ”κ°€
@@ -146,7 +139,7 @@ def main():
146
  args = parser.parse_args()
147
 
148
  if args.all:
149
- for company_name in cfg.RENTAL_COMPANIES.keys():
150
  process_rental_company(company_name)
151
  print('-' * 80)
152
  elif args.company:
 
 
 
 
1
  import os
2
  import argparse
3
  from datetime import datetime
4
+ from core.config import RENTAL_COMPANIES, OUTPUT_DIR
5
+ from mappers.mapping_utils import load_mapping_file
6
+ from processors.rental_processor import load_and_preprocess_data, summarize_data
7
+ from generators.korea_rental_gen import generate_erp_data, prepare_erp_columns, set_management_items
8
+ from utils.file_handler import load_erp_form_template, prepare_file_with_template, save_to_files
9
+ from utils.reporter import print_data_summary
10
  import pandas as pd
11
  from pyexcel_xls import save_data
12
  from collections import OrderedDict
 
19
  Args:
20
  company_name: μ²˜λ¦¬ν•  λ Œνƒˆμ‚¬ 이름
21
  """
22
+ if company_name not in RENTAL_COMPANIES:
23
  print(f"였λ₯˜: '{company_name}' λ Œνƒˆμ‚¬ 섀정을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.")
24
  return
25
 
26
+ company_config = RENTAL_COMPANIES[company_name]
27
  print(f"'{company_name}' λ Œνƒˆμ‚¬ 데이터 처리 μ‹œμž‘...")
28
 
29
  input_file = company_config['input_file']
 
31
  erp_form_file = company_config['erp_form_file']
32
  output_csv = company_config['output_csv']
33
  output_excel = company_config['output_excel']
34
+ report_file = os.path.join(OUTPUT_DIR, f'λ³΄κ³ μ„œ_{company_name}_{datetime.now().strftime("%Y%m%d")}.txt')
35
 
36
+ mapping_dict = load_mapping_file(mapping_file)
37
+ df, df_filtered = load_and_preprocess_data(input_file, company_config, mapping_dict)
38
+ summary = summarize_data(df_filtered, mapping_dict)
39
+ erp_df = generate_erp_data(df_filtered, company_config)
40
+ erp_df = prepare_erp_columns(erp_df)
41
+ erp_df = set_management_items(erp_df, df_filtered, company_config)
42
 
43
+ erp_form = load_erp_form_template(erp_form_file)
44
+ result_df = prepare_file_with_template(erp_df, erp_form)
45
 
46
+ save_to_files(result_df, output_csv, output_excel, len(erp_df))
47
+ print_data_summary(summary, company_config)
48
+ # generate_report_file(summary, erp_df, report_file)
49
 
50
  print(f"\n'{company_name}' λ Œνƒˆμ‚¬ 데이터 처리 μ™„λ£Œ.")
51
 
 
67
  raise ValueError("μ‚¬μ›λ²ˆν˜Έλ₯Ό μž…λ ₯ν•΄μ£Όμ„Έμš”. μ‚¬μ›λ²ˆν˜ΈλŠ” ν•„μˆ˜ μž…λ ₯κ°’μž…λ‹ˆλ‹€.")
68
 
69
  company_name = "ν•œκ΅­λ Œνƒˆ"
70
+ company_config = RENTAL_COMPANIES[company_name].copy() # 섀정을 λ³΅μ‚¬ν•΄μ„œ μ‚¬μš©
71
 
72
  # μ‚¬μ›λ²ˆν˜Έ μ„€μ • - μž…λ ₯된 κ°’ μ‚¬μš©
73
  company_config['id_write'] = employee_number.strip()
74
 
75
  mapping_file = company_config['mapping_file']
76
+ mapping_dict = load_mapping_file(mapping_file)
77
 
78
+ df, df_filtered = load_and_preprocess_data(uploaded_file_path, company_config, mapping_dict)
79
+ summary = summarize_data(df_filtered, mapping_dict)
80
+ erp_df = generate_erp_data(df_filtered, company_config)
81
+ erp_df = prepare_erp_columns(erp_df)
82
+ erp_df = set_management_items(erp_df, df_filtered, company_config)
83
 
84
  # μ „ν‘œλ²ˆν˜Έ μ±„μ›Œλ„£κΈ°
85
  if 'ROW_ID' in erp_df.columns:
 
88
  erp_df['NO_DOCU'] = voucher_number
89
 
90
  # ERP 양식 λ‘œλ“œ
91
+ erp_form = load_erp_form_template(company_config['erp_form_file'])
92
 
93
  # ERP 양식에 λ§žμΆ°μ„œ 데이터 μ€€λΉ„
94
+ result_df = prepare_file_with_template(erp_df, erp_form)
95
 
96
  # μ €μž₯
97
  output_filename = f"μžλ™μ „ν‘œ_μ™„μ„±νŒŒμΌ_{datetime.now().strftime('%Y%m%d')}.xls"
98
+ output_path = os.path.join(OUTPUT_DIR, output_filename)
99
 
100
+ os.makedirs(OUTPUT_DIR, exist_ok=True)
101
 
102
  try:
 
 
 
 
103
  # λ°μ΄ν„°ν”„λ ˆμž„μ„ 리슀트둜 λ³€ν™˜
104
  headers = result_df.columns.tolist()
105
  data = [headers] # 헀더λ₯Ό 첫 번째 ν–‰μœΌλ‘œ μΆ”κ°€
 
139
  args = parser.parse_args()
140
 
141
  if args.all:
142
+ for company_name in RENTAL_COMPANIES.keys():
143
  process_rental_company(company_name)
144
  print('-' * 80)
145
  elif args.company: