
    9%i                     J    d dl mZ d dlmZ d dlmZ d dlmZ  G d de      Zy)    )unicode_literals)Num2Word_Base)parse_currency_parts)splitbyxc                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZddZy)Num2Word_THc                 h    d| _         d| _        dddd| _        g | _        g d| _        g d| _        y )	N   ติดลบ	   จุด))	   บาทr   )   สตางค์r   ))   ดอลลาร์r      เซนต์r   ))   ยูโรr   r   )THBUSDEUR) u	   สิบu   ร้อยu	   พันu   หมื่นu	   แสน   ล้าน)
u   ศูนย์u   หนึ่งu	   สองu	   สามu	   สี่u	   ห้าu   หกu   เจ็ดu	   แปดu   เก้า)negword	pointwordCURRENCY_FORMShigh_numwordsmid_numwordslow_numwords)selfs    k/var/www/html/navyabakers_fullstack/navyabakers_prod/venv/lib/python3.12/site-packages/num2words/lang_TH.pysetupzNum2Word_TH.setup   sB    ($ ^o]
  z
    c                      y N )r   r   s     r   set_high_numwordszNum2Word_TH.set_high_numwords.       r    c                      y r"   r#   )r   r   s     r   set_mid_numwordszNum2Word_TH.set_mid_numwords1   r%   r    c                 V   t        |      dkD  }d}t        t        t        |            D ]|  \  }}|rT|r| j                  |   |z   }|r|dk(  r|dk(  r|dz  }.|dk(  r|dk(  rd|z   }>|dk7  s|dk7  sI| j
                  |   |z   }\|dk(  sb|dk(  sh|dk(  sn| j
                  d   }~ |S )N   r   r   u   เอ็ด   u	   ยี่)len	enumeratemapintr   r   )r   six_numlengthword_numindexnums         r   splitnumzNum2Word_TH.splitnum4   s    W!#CW$56 	0JE3#007(BHcQh5A:.HaZC1H*X5HaZ3!8#005@HeqjVq[,,Q/	0 r    c                     t        |dd      }t        |      d d d   }g }|D ]  }|j                  |d d d           |S )N   F)
format_int)r   listappend)r   num_txtresultnumber_listis        r   	split_sixzNum2Word_TH.split_sixI   sR    '17fdd# 	(Aq2w'	(r    c                 b    d}t        t        |            D ]  \  }}|dk(  r|}|dz   |z   } |S )Nr   r   r   )r,   reversed)r   r1   r<   r2   ts        r   add_text_millionzNum2Word_TH.add_text_millionQ   sF    !(8"45 	5HE1z.014		5 r    c                     t        |d      \  }}}dj                  |      }dj                  |      }t        |      dk  rdt        |      z
  }d|z  |z   }|dz   |z   }||fS )NF)is_int_with_cents{}r*   0.)r   formatr+   )r   numberintegercentsnegativeadd_zerotext_nums          r   round_2_decimalzNum2Word_TH.round_2_decimal\   su    #7e$
  ++g&E"u:>3u:~H8^u,ES=5(!!r    c                     | j                  |      }g }|D ]"  }|j                  | j                  |             $ | j                  |      }|S r"   )r?   r:   r4   rC   )r   rJ   left_num_listleft_text_listr>   	left_texts         r   left_num_to_textzNum2Word_TH.left_num_to_textk   sS    v. 	4A!!$--"23	4 )).9	r    c                    |dk  }| j                  |      \  }}| j                  }dj                  |      }dj                  |      }|r|j                  d      }t	        |      |k  r|t	        |      z
  }d|z  |z   }| j                  |      }d}|dk(  s/t        t        |      D ]  }	|| j                  |	   z   } |dz   |z   }|rd|z   }|S )Nr   rF   -rG   r   r   r
   )	float2tuple	precisionrI   lstripr+   rU   r-   r.   r   )
r   rJ   rM   prepostrY   rN   r<   
right_textr>   s
             r   to_cardinalzNum2Word_TH.to_cardinalv   s    A:$$V,	TNN	kk#{{4 **S/Ct9y  3t9,H(Nd*D&&s+
s{d^ ?'$*;*;A*>>
?k)J6F&/Fr    c                 $    | j                  |      S r"   )r^   )r   rJ   s     r   
to_ordinalzNum2Word_TH.to_ordinal   s    ''r    c                    | j                  |      \  }}|j                  d      }|d   }| j                  |      }|d   }| j                  |d d d   j	                  d            }	 | j
                  |   \  }	}
|d	k(  r|d
k(  r||	d   z   dz   }n(||	d   z   }n|dk(  r	||
d   z   }n||	d   z   |z   |
d   z   }|r| j                  |z   }|S # t        $ r' t        d|d| j                  j                  d      w xY w)NrH   r   r)   r8   rG   zCurrency code "z" not implemented for ""00r   u   ถ้วน)rP   splitrU   r4   rstripr   KeyErrorNotImplementedError	__class____name__r   )r   rJ   currencyrM   	split_numleft_numrT   	right_numr]   cr1cr2r<   s               r   to_currencyzNum2Word_TH.to_currency   s-   //7LL%	Q<))(3	aL	]]9TrT?#9#9##>?
	5**84HC 5 "SV+n<"SV+3#c!f,"SV+j83q6A\\F*F'  	5%4>>2245 5	5s   (C 0C;N)r   )ri   
__module____qualname__r   r$   r'   r4   r?   rC   rP   rU   r^   r`   rp   r#   r    r   r   r      s9    
&*	"	8("r    r   N)	
__future__r   num2words.baser   num2words.currencyr   num2words.utilsr   r   r#   r    r   <module>rw      s!   $ ( ( 3 $^- ^r    