o
    <5ig                  	   @   s   d Z ddlZddlmZ ddlmZ ddlmZmZ ddlmZ ddl	m
Z
 dd	lmZ 			
ddedededefddZ			
ddedededefddZdd Zdd Zedkr_e  dS dS )a?  
Money Forward Style Financial Report Generator

Usage:
    python -m src.main html                    # Generate HTML report (recommended)
    python -m src.main html --output report.html
    python -m src.main pdf                     # Generate PDF report
    python -m src.main list                    # List sheets
    N)Path)datetime   )
OUTPUT_DIRCOMPANY_INFO)sheets_client)fetch_comparison_data)build_financial_reportFtarget_monthoutput_path
open_afterreturnc                 C   s  ddl m} td td t }|stdtdt| d td | p-t d	}t	|t
d
 t
d t
d |d}tdt|j dt|j d td |du ret d}td| d }|jjddd |||}|  td|  td| jd dd td |rddl}	ddl}
|
 dkr|	dt|g |S |
 d kr|	jd!t|gdd" |S |	d#t|g |S )$zGenerate HTML report

    Args:
        target_month: Target month (e.g., '2025-10')
        output_path: Output path
        open_after: Open after generation

    Returns:
        Generated HTML path
    r   )HTMLReportGeneratoru*   📊 Financial Report Generation (HTML)...z+  [1/3] Fetching data from Google Sheets...No data found in spreadsheet.          →  rows fetchedz  [2/3] Parsing data...
   %Y年%m月namefiscal_yearperiodraw_dataZcompany_namer   r   r
    KPIs, 
 P/L itemsz!  [3/3] Generating HTML report...N%Y%m%d_%H%M%Sfinancial_report_z.htmlTparentsexist_oku   
✅ HTML Report generated:    File size:    .1f KBu<   
💡 Tip: Open in browser and print (Ctrl+P) to save as PDFr   DarwinopenWindowsstartshellxdg-open)Zhtml.generatorr   printr   
ValueErrorlenr   nowstrftimer	   r   annual_kpispl_itemsr   parentmkdirgeneratestatst_size
subprocessplatformsystemrunstr)r
   r   r   r   r   targetreport_data	timestamp	generatorr6   r7    r?   P/var/www/tkim.planitai.co.jp/gemegg/20251207-make-pdf-report/project/src/main.pygenerate_html_report   sL   "
rA   c                 C   s  ddl m} td td td t }|stdtdt| d td	 | p1t d
}t	|t
d t
d t
d |d}tdt|j dt|j d td |du rit d}td| d }|jjddd |||}|  td|j d td td|  td| jd dd |rddl}	ddl}
|
 d kr|	d!t|g |S |
 d"kr|	jd#t|gdd$ |S |	d%t|g |S )&z*Generate PDF report (may have font issues)r   )ReportGeneratoru)   📊 Financial Report Generation (PDF)...u>   ⚠️  Note: PDF may have font issues for Japanese charactersz+  [1/4] Fetching data from Google Sheets...r   r   r   z  [2/4] Parsing data...r   r   r   r   r   r   r   z  [3/4] Generating PDF...Nr   r   z.pdfTr   z pages generatedz  [4/4] Saved!u   
✅ PDF generated: r   r    r!   r"   r   r#   r$   r%   r&   r'   r)   )Zpdf.generatorrB   r*   r   r+   r,   r   r-   r.   r	   r   r/   r0   r   r1   r2   r3   Ztotal_pagesr4   r5   r6   r7   r8   r9   r:   )r
   r   r   rB   r   r;   r<   r=   r>   r6   r7   r?   r?   r@   generate_pdf_report^   sP   "
rC   c                  C   s<   t d t } | D ]}t d|d  d|d  d q
dS )zList spreadsheet sheetsu   📋 Spreadsheet Sheets:z   - titlez (gid: Zsheet_id)N)r*   r   Zget_all_sheets)ZsheetsZsheetr?   r?   r@   list_sheets   s
    rF   c                  C   s  t jdd} | jddd}|jddd}|jd	d
dd d |jddtdd d |jdddd |jddd}|jd	d
dd d |jddtdd d |jdddd |jddd |jddd}|jddddgddd |jd	d
dd d |jddtdd d |jdddd |  }|jdkrt|j	|j
|jd d S |jdkrt|j	|j
|jd d S |jdkr|jdkrt|j	|j
|jd d S t|j	|j
|jd d S |jdkrt  d S |   td  d S )!Nz.Money Forward Style Financial Report Generator)ZdescriptioncommandZCommands)ZdesthelpZhtmlz"Generate HTML report (recommended))rH   z--monthz-mzTarget month (e.g., 2025-10))rH   defaultz--outputz-ozOutput file path)typerH   rI   z--openZ
store_truezOpen after generation)actionrH   ZpdfzGenerate PDF reportlistzList sheetsr3   z"Generate report (defaults to HTML)z--formatz-fzOutput format (default: html))ZchoicesrI   rH   )r
   r   r   u*   
📌 Recommended: python -m src.main html)argparseZArgumentParserZadd_subparsersZ
add_parserZadd_argumentr   Z
parse_argsrG   rA   Zmonthoutputr$   rC   formatrF   Z
print_helpr*   )ZparserZ
subparsersZhtml_parserZ
pdf_parserZ
gen_parserargsr?   r?   r@   main   s   









rQ   __main__)NNF)__doc__rM   Zpathlibr   r   Zconfigr   r   r   Zdata_fetcherr   Zdata_parserr	   r:   boolrA   rC   rF   rQ   __name__r?   r?   r?   r@   <module>   sJ   	
J
Dk
