
    !g                        d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZmZmZ d dlmZmZmZmZmZ  eedededededededi      Z G d d	eeee      Z G d
 de      Z G d de      Z  G d d      Z!y)    )date)gettext)JANFEBAPRMAYSEPDECMONTUEWEDTHUFRISATSUN
_timedelta)ChineseCalendarHolidaysInternationalHolidaysStaticHolidays)ObservedHolidayBaseObservedRuleSAT_TO_PREV_WORKDAYSUN_TO_NEXT_WORKDAYSAT_SUN_TO_NEXT_WORKDAY   c                   T     e Zd ZdZdZ ed      ZdZdZ fdZ	de
dd	fd
Zd Z xZS )Vietnama  
    References:
        - `Labor Code 1994 (Art. 73) (en) <https://vbpl.vn/TW/Pages/vbpqen-toanvan.aspx?ItemID=2835>`_
        - `Labor Code 2012 (Art. 115) (en) <https://vbpl.vn/TW/Pages/vbpqen-toanvan.aspx?ItemID=11013>`_
        - `Labor Code 2012 (Art. 115) (vi) <https://vbpl.vn/TW/Pages/vbpq-toanvan.aspx?ItemID=27615>`_
        - `Labor Code 2019 (Art. 112) (en) <https://vbpl.vn/TW/Pages/vbpqen-toanvan.aspx?ItemID=11135>`_
        - `Labor Code 2019 (Art. 112) (vi) <https://vbpl.vn/TW/Pages/vbpq-van-ban-goc.aspx?ItemID=139264>`_

    Substituted holidays:
        - `2018-2019 <https://thuvienphapluat.vn/cong-van/EN/Lao-dong-Tien-luong/Official-Dispatch-6519-VPCP-KGVX-2018-national-holidays-for-public-sector-employees/387625/tieng-anh.aspx>`_
        - `2024 <https://thuvienphapluat.vn/cong-van/EN/Lao-dong-Tien-luong/Official-Dispatch-2450-VPCP-KGVX-2024-swap-of-working-days-during-the-Reunification-Day/606458/tieng-anh.aspx>`_
    VNu   %s (nghỉ bù)vi)en_USthr    c                     t        j                  |        t        j                  |        t        j                  | t               |j                  dt               |j                  dd       t        |   |i | y )Nobserved_ruleobserved_sincei  )r   __init__r   r   VietnamStaticHolidays
setdefaultr   super)selfargskwargs	__class__s      W/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/holidays/countries/vietnam.pyr&   zVietnam.__init__@   sd    ((.&&t,&;</+BC*D1$)&)    dt_lnyreturnNc                    | j                   dk  ry t        d      t        d      t        d      t        d      d}t        d| j                   dk\  rd	nd
      D ]i  }t        ||      }| j	                  || j                   dk\  rt
        t        z   nt              }||k7  sH| j                  |||z
  j                     |       k y )Ni  u   29 Tết   Mùng bốn Tết Nguyên Đánu   Mùng năm Tết Nguyên Đánu   Mùng sáu Tết Nguyên Đán)         r     r6   r5     )rule)
_yeartrranger   _get_observed_dater   r   r   _add_holidaydays)r*   r0   	day_namesdeltadtdt_observeds         r.   _add_lunar_new_year_observedz$Vietnam._add_lunar_new_year_observedH   s    :: :342323	
	 2DJJ$$6qA> 	EFE*B11 zzT) (*==0 2 K b !!{V399:	r/   c                    t               }|j                  | j                  t        d                   | j	                  t        d             | j                  t        d            }| j                  t        d             | j                  t        d             | j                  dk\  r| j                  t        d             | j                  dk\  r)|j                  | j                  t        d	                   |j                  | j                  t        d
                   |j                  | j                  t        d                   t        d      }|j                  | j                  |      x}       | j                  dk\  r&| j                  || j                  |t                      | j"                  r#| j%                  |       | j'                  |       y y )Nu   Tết Dương lịchu   Giao thừa Tết Nguyên Đánu   Tết Nguyên Đánu   Mùng hai Tết Nguyên Đánu   Mùng ba Tết Nguyên Đánr8   r3   i  u   Ngày Giỗ Tổ Hùng Vươngu   Ngày Chiến thắngu   Ngày Quốc tế Lao độngu   Quốc khánhi  )setadd_add_new_years_dayr<   _add_chinese_new_years_eve_add_chinese_new_years_day_add_chinese_new_years_day_two _add_chinese_new_years_day_threer;   _add_chinese_new_years_day_four_add_hung_kings_day_add_holiday_apr_30_add_labor_day_add_holiday_sep_2r?   r>   NATIONAL_DAY_RULEobservedrE   _populate_observed)r*   dts_observedlnynamesep_2s        r.   _populate_public_holidaysz!Vietnam._populate_public_holidaysf   s   u 	004J1KLM 	''+L(MN --b1F.GH 	++B/N,OP 	--b1O.PQ::004U1VW::T55b9Y6Z[\ 	11"5L2MNO 	,,R0O-PQR /"$"9"9$"??@::dD$;$;ECT$UV==--c2##L1 r/   )__name__
__module____qualname____doc__countryr<   observed_labeldefault_languagesupported_languagesr&   r   rE   rZ   __classcell__)r-   s   @r.   r   r   ,   sC     G)*N/*4 D <(2r/   r   c                       e Zd Zy)r   Nr[   r\   r]    r/   r.   r   r          r/   r   c                       e Zd Zy)VNMNre   rf   r/   r.   ri   ri      rg   r/   ri   c                       e Zd Z ed      Z ed      Zededfededfede	dfe	dedfe
d	e
d
ffededdfededfededffededdfede	dfede	dfdZy)r'   z%d/%m/%Yu    Ngày nghỉ (thay cho ngày %s)      r6            r      r9               r7     )i  i  r8   r9   i  i  ru   i  N)r[   r\   r]   r<   substituted_date_formatsubstituted_labelr   r   r   r   r	   r
   special_public_holidaysrf   r/   r.   r'   r'      s     n=> BR BQBQ!S"!S!

 !S"d#"c2"c2

 BQ%BQBQr/   r'   N)"datetimer   r   r<   holidays.calendars.gregorianr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   holidays.groupsr   r   r   holidays.observed_holiday_baser   r   r   r   r   rS   r   r   ri   r'   rf   r/   r.   <module>r}      s     !     [ Z  !#r3CS"c2sTVX[]_!`a b2!#:<QSa b2J	 		' 	 r/   