# -*- coding: utf-8 -*-
"""세후 출고가 = 세전공급가 + 주세 + 교육세 + 부가세  (전체주류 + 주종별, 2018~2024)
 세전공급가 = 식약처 판매액 ÷ 국세 출고량
 주세 = 국세 납부세액 ÷ 출고량 (실제 납부 → 기준판매비율·종량세 자동반영)
 교육세 = 주세×30% (근사; 탁주 등 일부 면제 주종은 과대) / 부가세 = (세전+주세+교육세)×10%
 분류: 식약처 '소주' = 국세 '희석식소주+증류식소주'. 주정은 음용 아님→전체서 제외.
"""
import sys,io; sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
import numpy as np, pandas as pd
B='C:/Temp/주류세/공개데이터'
st=pd.read_csv(B+'/서버백업/shipment_tax.csv')      # year,주종,지표(세액백만원/출고량kl),값
mf=pd.read_csv(B+'/식약처/mfds_sales.csv')          # year,주종,판매액_천원
Q=st[st.지표=='출고량'].pivot_table(index='year',columns='주종',values='값')   # kl
T=st[st.지표=='세액'].pivot_table(index='year',columns='주종',values='값')     # 백만원
MAP={'소주':['희석식소주','증류식소주'],'맥주':['맥주'],'탁주':['탁주'],'약주':['약주'],
     '청주':['청주'],'과실주':['과실주'],'위스키':['위스키'],'브랜디':['브랜디'],
     '일반증류주':['일반증류주'],'리큐르':['리큐르'],'기타주류':['기타주류']}
rows=[]
for y in range(2018,2025):
    agg_val=agg_q=0.0
    for jong,kuk in MAP.items():
        sub=mf[(mf.주종==jong)&(mf.year==y)]
        if sub.empty or y not in Q.index: continue
        q=sum(Q.loc[y,k] for k in kuk if k in Q.columns and not pd.isna(Q.loc[y,k]))   # kl
        tax=sum(T.loc[y,k] for k in kuk if k in T.columns and not pd.isna(T.loc[y,k])) # 백만원
        sales=sub.판매액_천원.iloc[0]   # 천원
        if q<=0: continue
        세전=sales*1000/(q*1000)         # 원/L
        주세=tax*1e6/(q*1000)            # 원/L
        교육세=0.3*주세; 부가세=0.1*(세전+주세+교육세)
        세후=세전+주세+교육세+부가세
        rows.append(dict(연도=y,주종=jong,세전=round(세전),세후=round(세후),세금비중=round((주세+교육세+부가세)/세후,3)))
        # 전체 집계(판매액 기반 세후 총액)
        agg_val += (세후)*(q*1000); agg_q += q*1000   # 원, L
    if agg_q>0:
        rows.append(dict(연도=y,주종='전체주류',세전=np.nan,세후=round(agg_val/agg_q),세금비중=np.nan))
df=pd.DataFrame(rows)
df.to_csv(B+'/세후출고가_전체주종_2018_2024.csv',index=False,encoding='utf-8-sig')

piv=df.pivot_table(index='연도',columns='주종',values='세후')
order=['전체주류','소주','맥주','탁주','청주','과실주','위스키']
order=[c for c in order if c in piv.columns]
print('===== 세후 출고가 (원/L) =====')
print(piv[order].round(0).to_string())
print('\n저장: 세후출고가_전체주종_2018_2024.csv  (전 주종 포함)')
