Ë
    ³™j^|  ã                   óâ   — d dl Z d dlmZmZmZmZmZ d dlmZ d dl	m	Z	m
Z
 d dlZd dlZd dlZej                  j                  d¬«        G d„ d«      Zed	k(  r e«       Zej'                  «        yy)
é    N)ÚFontÚ	AlignmentÚPatternFillÚBorderÚSide)Úget_column_letter)ÚdatetimeÚdateúutf-8©Úencodingc                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚDataCleanerAndMergerT35c                 ó’  — i dd“dd“dd“dd“dd	“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“i dd“dd“dd“dd“d d“d!d"“d#d"“d$d"“d%d&“d'd(“d)d*“d+d*“d,d-“d.d/“d0d1“d2d1“d3d4“¥i d5d4“d6d7“d8d7“d9d:“d;d<“d=d>“d?d>“d@dA“dBdA“dCdD“dEd1“dFd/“dGdH“dIdH“dJdK“dLdM“dNdO“¥i dPd:“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d\“d]d^“d_d`“dad`“dbd7“dcdd“ded/“dfdg“dhdg“didg“djdg“¥i dkdl“dmdn“dodp“dqdr“dsdt“dudt“dvdw“dxdy“dzd{“d|d}“d~d“d€d�“d‚dƒ“d„d…“d†d‡“dˆd‰“dŠd‰“¥i d‹dŒ“d�dŽ“d�d�“d‘d�“d’d““d”d•“d–d—“d˜d—“d™dš“d›dœ“d�dž“dŸd “d¡d “d¢d “d£d¤“d¥d¤“d¦d§“¥i d¨d§“d©dª“d«d¬“d­d¬“d®d¯“d°d±“d²d±“d³d´“dµd´“d¶d´“d·d¸“d¹dº“d»dº“d¼d½“d¾d½“d¿dÀ“dÁdÀ“¥i dÂdÀ“dÃdÄ“dÅdÆ“dÇdÈ“dÉdÈ“dÊdË“dÌdÍ“dÎdÏ“dÐdÏ“dÑdÒ“dÓdÔ“dÕdÖ“d×dØ“dÙdÚ“dÛdÜ“dÝdÞ“dßdà“¥i dádâ“dãdä“dådä“dædç“dèdé“dêdé“dëdì“dídî“dïdð“dñdò“dódò“dôdõ“död÷“dødù“dúd-“dûdü“dýdþ“¥i dÿ�d “�d�d“�d�d“�d�d“�d�d“�d�d	“�d
�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“¥�d�d�d �d!dT�d"�d#œ¥| _         y ($  Nu   tráº§n dÅ©ngu   Tráº§n DÅ©ngu   tráº§n dungu   tráº§n thanh dungu   Tráº§n Thanh DÅ©ngu   nguyá»…n vÄƒn tuÃ¢nu   Nguyá»…n VÄƒn TuÃ¢nu   nguyá»…n vÄƒn tuáº¥nu   Nguyá»…n VÄƒn Tuáº¥nu   nguyÃªn hÆ°u lá»£iu   Nguyá»…n Há»¯u Lá»£iu   nguyÃªn há»¯u lá»£iu   nguyá»…n hÆ°u lá»£iu   nguyá»…n há»¯u lá»£iu   nguyá»…n hÆ°u lÆ¡iu   nguyÃªn hÆ°u lÆ¡iu   lá»£iu   nÃ´ng Ä‘Æ°c trÆ°á»�ngu   NÃ´ng Ä�á»©c TrÆ°á»�ngu   nÃ´ng Ä‘á»©c trÆ°á»�ngu   Ä‘á»— quang thuá»·u   Ä�á»— Quang Thá»§yu   Ä‘á»— quang thá»§yu   Ä‘Ãµ quang thuá»·u   nguyá»…n vÄƒn tÃ¹ngu   Nguyá»…n VÄƒn TÃ¹ngu   Ä‘oÃ n thanh nhÃ¢nu   Ä�oÃ n Thanh NhÃ¢nu   Ä‘oÃ n thang nhÃ¢nu   dÆ°Æ¡ng táº¥n hiá»�nu   DÆ°Æ¡ng Táº¥n Hiá»�nu   dÆ°Æ¡g táº¥n hiá»�nu   trá»‹nh há»¯u háº£iu   Trá»‹nh Há»¯u Háº£iu   trinh há»¯u háº£iu   háº£iu   phan vÄƒn hiáº¿uu   Phan VÄƒn Hiáº¿uu   lÃª vÄƒn hoau   LÃª VÄƒn Hoau   lÃª vÄƒn hÃ²au   LÃª VÄƒn HÃ²au   lÃª vÄƒn hoÃ u   bÃ¹i vÄƒn tuáº¥nu   BÃ¹i VÄƒn Tuáº¥nu   pháº¡m thanh hoÃ nu   Pháº¡m Thanh HoÃ nu   lÃª xuÃ¢n tÆ°Æ¡ngu   LÃª XuÃ¢n TÆ°Æ¡ngu   lÃª xuÃ¢n tuongu   há»“ tiáº¿n sÄ©u   Há»“ Tiáº¿n SÄ©u   há»“ tiáº¿n sá»¹u   ngá»�c dÆ°Æ¡ngu   Ngá»�c DÆ°Æ¡ngu   cao ngá»�c dÆ°Æ¡ngu   tráº§n vÄƒn thÆ°á»Ÿngu   Tráº§n VÄƒn ThÆ°á»Ÿngu   nguyá»…n vÄƒn hoanu   Nguyá»…n VÄƒn Hoanu   hoÃ ng phongu   BÃ¹i HoÃ ng Phongu   bÃ¹i hoÃ ng phongu   há»¯u nhá»±tu   Há»¯u Nhá»±tu   tráº§n há»¯u nhá»±tu   há»¯u nghá»‹u   Há»¯u Nghá»‹u   xuÃ¢n tÆ°Æ¡ngu   thanh hoÃ nu
   phÃº vÄ©nhu   Nguyá»…n PhÃº VÄ©nhu   nguyá»…n phÃº vÄ©nhu   vÄƒn lá»‹nhu   VÄƒn Lá»‹nhu   Ä‘Ã´ng (sÆ¡n nÆ°á»›c)u   Ä�Ã´ng (SÆ¡n NÆ°á»›c)u   Ä‘Ã´ng , thÆ°á»Ÿngu   Ä�Ã´ng , Tráº§n VÄƒn ThÆ°á»Ÿngu	   thÆ°á»Ÿngu   tráº§n vÄƒn hÃ¡tu   Tráº§n VÄƒn HÃ¡tu	   nho xuÃ¢nu	   Nho XuÃ¢nu   nguyáº¿n vÄƒn Ã¢nu   Nguyá»…n VÄƒn Ã‚nu   vÄƒn khÆ°Æ¡ngu   VÄƒn KhÆ°Æ¡ngu   nguyá»…n trÆ°á»�ng háº­nu   Nguyá»…n TrÆ°á»�ng Háº­nu   báº£ou   Báº£oÚchinhÚChinhÚcoiu   CÃ²iu   cÃ²iu   dÆ°Æ¡ngu   hiÃªnu   HiÃªnu   hoÃ nÚkhoiu   VÃµ Quá»‘c Khá»Ÿiu   khá»ŸiÚkhoqiru   khÆ¡iu   khÆ°Æ¡ng duy longu   KhÆ°Æ¡ng Duy Longu   lÃª vÄƒn nhÆ°u   LÃª VÄƒn NhÆ°u   lÃª Ä‘Äƒng duyÃªnu   LÃª Ä�Äƒng DuyÃªnu   lÆ°u thanh nháº­t táº£ou   LÆ°u Thanh Nháº­t Táº£ou   nguyá»…n nhÆ° quyá»�nu   Nguyá»…n NhÆ° Quyá»�nu   nguyá»…n hÆ° quyá»�nu   nguyá»…n quá»‘c khÃ¡nhu   Nguyá»…n Quá»‘c KhÃ¡nhu   nguyá»…n thÃ¡i báº£ou   Nguyá»…n ThÃ¡i Báº£ou   nguyá»…n thá»‹ thuõ   Nguyá»…n Thá»‹ Thuu   pháº¡m vÄƒn linhu   Pháº¡m VÄƒn Linhu   pháº¡m vÄƒn tÃ¹ngu   Pháº¡m VÄƒn TÃ¹ngu   trÆ°Æ¡ng cÃ´ng minhu   TrÆ°Æ¡ng CÃ´ng Minhu   trÆ°Æ¡ng vÄƒn nghÄ©au   TrÆ°Æ¡ng VÄƒn NghÄ©au   tráº§n vÄƒn tÃ¹ngu   Tráº§n VÄƒn TÃ¹ngu   Ä‘Ã o hÃ³a emu   Ä�Ã o HÃ³a Emu   huá»³nh cÃ´ng nÃ´ngu   Huá»³nh CÃ´ng NÃ´ngu   cÃ´ng nÃ´ngu   lÃ¢m vÄƒn nÃ´ngu   LÃ¢m VÄƒn NÃ´ngu   vÅ© duy háº­uu   VÅ© Duy Háº­uu   Ä‘áº¡i phÆ°á»›cu   Ä�áº¡i PhÆ°á»›cu   phÆ°á»›cu   Ä‘áº¡tu   Ä�áº¡tu   vá»‹nhu   Vá»‹nhu   giÃ¡p vÄƒn sÃ¡uu   GiÃ¡p VÄƒn SÃ¡uu   sÃ¡uu   quÃ¡ch vÄƒn vÅ©u   QuÃ¡ch VÄƒn VÅ©u   thÃ¡i thÃ nh lÆ°uu   ThÃ¡i ThÃ nh LÆ°uu   thÃ¡i vÄƒn tiáº¿nu   ThÃ¡i VÄƒn Tiáº¿nu   Ä‘Äƒng hiá»‡pu   Ä�Äƒng Hiá»‡pu   hiá»‡pu   nguyá»…n Ä‘Äƒng hiá»‡pu   duy tÃ iu   Nguyá»…n Duy TÃ iu   nguyá»…n duy tÃ iu   nguyá»…n minh thoáº¡iu   Nguyá»…n Minh Thoáº¡iu   minh thoáº¡iu   há»“ vÄƒn trÃ²n emu   Há»“ VÄƒn TrÃ²n Emu   vay lÆ°Æ¡ng thuáº­nu   Vay LÆ°Æ¡ng Thuáº­nu   vay lÆ°á»£ng thuáº­nu   há»“ vÄƒn viá»‡tu   Há»“ VÄƒn Viá»‡tu   lÃª vÄƒn thÃ nhu   LÃª VÄƒn ThÃ nhu   lÃª vÄƒn thÃ nh-kt má»›iu   phan vÄƒn viá»‡t-kt má»›iu   Phan VÄƒn Viá»‡tu   phan vÄƒn viá»‡tu   viá»‡tu   bÃ¹i vÄƒn giangu   BÃ¹i VÄƒn Giangu   quang khÃ¡i chá»‰nhu   Quang Kháº£iu   quang kháº£iu   thanh tuyáº¿nu   BÃ nh Thanh Tuyáº¿nu   bÃ nh thanh tuyáº¿nu
   duy khÃ¡nhu   Há»“ Duy KhÃ¡nhu   há»“ duy khÃ¡nhu   khÃ¡nhu   nguyá»…n vÄƒn nÄƒmu   Nguyá»…n VÄƒn NÄƒmu   trÆ°Æ¡ng vÅ© linhu   TrÆ°Æ¡ng VÅ© Linhu   trinh bÃ¡ quyá»�nu   Trá»‹nh BÃ¡ Quyá»�nu   trá»‹nh bÃ¡ quyá»�nu   lÃª vÄƒn háº¡nhu   LÃª VÄƒn Háº¡nhu   pháº¡m vÄƒn vá»�ngu   Pháº¡m VÄƒn Vá»�ngu
   quang tÃ¢nu   Nguyá»…n Quang TÃ¢nu   nguyá»…n quang tÃ¢nu
   lÃª thÃ nhu
   LÃª ThÃ nhu   nguyá»…n ngá»�c tháº¡chu   Nguyá»…n Ngá»�c Tháº¡chu   bÃ¹i vÄƒn cháº¥tu   BÃ¹i VÄƒn Cháº¥tu   hoÃ n xuÃ¢nu   HoÃ n XuÃ¢nu   lÃ¢m há»“ng thÃ´ngu   LÃ¢m Há»“ng ThÃ´ngu   tráº§n vÄƒn tuáº¥nu   Tráº§n VÄƒn Tuáº¥nu   lÃªu   LÃªu   nguyá»…n hoÃ ng khangu   Nguyá»…n HoÃ ng Khangu   nguyá»…n kim giangu   Nguyá»…n Kim Giangu   nguyá»…n Ä‘Ã¬nh vinhu   Nguyá»…n Ä�Ã¬nh Vinhu   nguyá»…n Ä‘inh vinhu   nguyá»…n vÄƒn ninhu   Nguyá»…n VÄƒn Ninhu   thiÃªmu   Pháº¡m VÄƒn ThiÃªmu   pháº¡m vÄƒn thiÃªmu   triá»‡u vÄƒn Ä‘Ã´ngu   Triá»‡u VÄƒn Ä�Ã´ngu   tráº§n vÄƒn lÃªu   Tráº§n VÄƒn LÃªÚtrungÚTrungu   nguyá»…n trá»�ng phongu   Nguyá»…n Trá»�ng Phongu   trá»�ng phongu   dÆ°Æ¡ng minh tÆ°á»�ngu   DÆ°Æ¡ng Minh TÆ°á»�ngu   duy khÆ°Æ¡ngu   Duy KhÆ°Æ¡ngu   Ä‘áº·ng vÄƒn chiáº¿nu   Ä�áº·ng VÄƒn Chiáº¿nu   tuáº¥nu   lÆ°Æ¡ngu   LÆ°Æ¡ngu   lÃ¢m thÃ nh cÃ´ngu   LÃ¢m ThÃ nh CÃ´ngu   nguyá»…n minh nhÃ­u   Nguyá»…n Minh NhÃ­u   pháº¡m vÄƒn tháº¡chu   Pháº¡m VÄƒn Tháº¡chu   bÃ¹i quá»‘c quiu   BÃ¹i Quá»‘c Quyu   bÃ¹i quá»‘c quyu   nguyá»…n trá»�ng nhÃ¢nu   Nguyá»…n Trá»�ng NhÃ¢nu   tráº§n vÄƒn kÃ©pu   Tráº§n VÄƒn KÃ©pu   trinh vÄƒn tháº±ngu   Trá»‹nh VÄƒn Tháº¯ngu   trá»‹nh vÄƒn tháº¯ngu   táº¡ou   Táº¡ou   thÆ¡mu   ThÆ¡mu   Ä‘oÃ nu   Ä�oÃ nu   thanh xuÃ¢nu   Thanh XuÃ¢nu   hoÃ ng vÄƒn sangu   HoÃ ng VÄƒn Sangu   hoÃ n vÄƒn sangu   lÃª vÄƒn bá»¥ngu   LÃª VÄƒn Bá»¥ngu   tráº§n quá»‘c khangu   Tráº§n Quá»‘c Khangu   ngÃ´ trá»�ng nhÃ¢nu   NgÃ´ Trá»�ng NhÃ¢nu   NÃ´ng Quá»‘c Toáº£nu   HÃ¹ngu   Nguyá»…n Minh Khangu   Nguyá»…n HoÃ ng Giangu   Ä�Ã´ng)u   nÃ´ng quá»‘c toáº£nu   hÃ¹ngu   nguyá»…n minh khangu   nguyá»…n hoÃ ng giangu   xuÃ¢nu   Ä‘Ã´ng)Úkythuat_map)Úselfs    úHC:\Claw 2\Bao cao - Hanh chinh\Bao cao lam mau\clean_and_merge_tuan35.pyÚ__init__z DataCleanerAndMergerT35.__init__   sc
  € ðr
Ø˜Nðr
à˜>ðr
ð  Ð!5ðr
ð "Ð#8ð	r
ð
 #Ð$:ðr
ð !Ð"8ðr
ð "Ð#9ðr
ð "Ð#9ðr
ð #Ð$:ðr
ð !Ð"8ðr
ð  Ð!7ðr
ð Ð+ðr
ð $Ð%=ðr
ð %Ð&>ðr
ð !Ð"6ðr
ð  !Ð"6ð!r
ð"  Ð!5ñ#r
ð$ "Ð#8ð%r
ð& !Ð"6ð'r
ð( !Ð"6ð)r
ð* #Ð$:ð+r
ð, "Ð#9ð-r
ð. "Ð#8ð/r
ð0  Ð!6ð1r
ð2 Ð*ð3r
ð4 Ð 2ð5r
ð6 ˜Nð7r
ð8 ˜_ð9r
ð: ˜_ð;r
ð< Ð 2ð=r
ð> !Ð"6ð?r
ð@  Ð!4ðAr
ðB Ð2ðCr
ðD Ð0òEr
ðF Ð 1ðGr
ðH Ð.ðIr
ðJ !Ð"2ðKr
ðL $Ð%<ðMr
ðN !Ð"6ðOr
ðP Ð/ðQr
ðR  Ð!4ðSr
ðT ˜NðUr
ðV " >ðWr
ðX ˜NðYr
ðZ Ð0ð[r
ð\ Ð/ð]r
ð^ Ð/ð_r
ð` "Ð#8ðar
ðb ˜=ðcr
ðd $Ð%<ðer
ðf !Ð"Bògr
ðh Ð0ðir
ðj Ð 2ðkr
ðl ˜ðmr
ðn  Ð!4ðor
ðp ˜_ðqr
ðr 'Ð(Bðsr
ðt �Wður
ðv �Wðwr
ðx �6ðyr
ðz �Fð{r
ð| Ð'ð}r
ð~ �Wðr
ð@ Ð)ðAr
ðB Ð'ðCr
ðD Ð)ðEr
ðF Ð)ðGr
ðH Ð(òIr
ðJ  Ð!4ðKr
ðL ˜_ðMr
ðN  Ð!4ðOr
ðP &Ð'@ðQr
ðR $Ð%<ðSr
ðT #Ð$;ðUr
ðV %Ð&>ðWr
ðX #Ð$:ðYr
ðZ !Ð"6ð[r
ð\ Ð 2ð]r
ð^  Ð!4ð_r
ð` "Ð#8ðar
ðb #Ð$:ðcr
ðd  Ð!4ðer
ðf ˜_ðgr
ðh "Ð#8ðir
ðj Ð0òkr
ðl Ð0ðmr
ðn ˜_ðor
ðp Ð0ðqr
ðr Ð)ðsr
ðt �hður
ðv �hðwr
ðx Ð0ðyr
ðz Ð%ð{r
ð| Ð0ð}r
ð~  Ð!4ðr
ð@  Ð!4ðAr
ðB ˜_ðCr
ðD �oðEr
ðF % oðGr
ðH Ð+ðIr
ðJ  Ð!4ðKr
ðL $Ð%<òMr
ðN Ð3ðOr
ðP !Ð"6ðQr
ðR "Ð#8ðSr
ðT #Ð$9ðUr
ðV Ð 2ðWr
ðX Ð0ðYr
ðZ 'Ð(9ð[r
ð\ (Ð);ð]r
ð^ Ð 2ð_r
ð` Ð(ðar
ðb Ð0ðcr
ðd " >ðer
ðf ˜Nðgr
ðh Ð2ðir
ðj "Ð#8ðkr
ðl Ð+ðmr
ðn Ð0òor
ðp Ð'ðqr
ðr !Ð"6ðsr
ðt  Ð!4ður
ðv  Ð!6ðwr
ðx "Ð#8ðyr
ðz Ð0ð{r
ð| !Ð"6ð}r
ð~ Ð/ðr
ð@ "Ð#8ðAr
ðB ˜,ðCr
ðD &Ð'@ðEr
ðF Ð 2ðGr
ðH ˜=ðIr
ðJ !Ð"6ðKr
ðL !Ð"6ðMr
ðN �5ðOr
ðP $Ð%<òQr
ðR !Ð"6ðSr
ðT #Ð$:ðUr
ðV "Ð#9ðWr
ðX !Ð"6ðYr
ðZ Ð*ð[r
ð\ !Ð"6ð]r
ð^ "Ð#8ð_r
ð` Ð0ðar
ðb �Wðcr
ðd %Ð&>ðer
ðf Ð5ðgr
ðh $Ð%<ðir
ðj ˜Nðkr
ðl #Ð$:ðmr
ðn Ð(ðor
ðp �yðqr
ðr  Ð!4òsr
ðt !Ñ"6ður
ñv "Ñ#8ðwr
ñx Ñ0ðyr
ñz Ñ0ð{r
ñ| %Ñ&>ð}r
ñ~ Ñ 2ðr
ñ@ !Ñ"8ðAr
ñB #Ñ$:ðCr
ñD ‘WðEr
ñF ‘WðGr
ñH ‘hðIr
ñJ ™=ðKr
ñN Ñ 2ðOr
ñP Ñ1ðQr
ñR Ñ0ðSr
ñT "Ñ#8ðUr
ñV !Ñ"6ñWr
ñX $9ÙÙ#8Ù%<Ø Ùócr
ˆÕó    c                 óÔ  — |€yt        |t        «      r3|j                  }|dkD  rd}|j                  d›d|j                  d›d|› �S t        |t
        «      r3|j                  }|dkD  rd}|j                  d›d|j                  d›d|› �S t        |t        t        f«      rF	 t        ddd«      }|t        d«      j                  t        |«      ¬	«      z   }|j                  d
«      S t        |«      j                  «       }|syt        j                  d|«      r|S t        j                  d|«      }|rIt        |j                  d«      «      }|dkD  rd}|j                  d«      › d|j                  d«      › d|› �S t        j                  d|«      }|r:t        |j                  d«      «      d›dt        |j                  d«      «      d›d�S |S #  t        t        |«      «      cY S xY w)z;Converts Excel cell date values to DD/MM/YYYY string formatNiê  Ú02dÚ/ik  é   é   r	   )Údaysú%d/%m/%Yz^\d{2}/\d{2}/\d{4}$z^(\d{4})-(\d{2})-(\d{2})é   é   é   z^(\d{1,2})/(\d{1,2})$z/2026)Ú
isinstancer	   ÚyearÚdayÚmonthr
   ÚintÚfloatÚ
__import__Ú	timedeltaÚstrftimeÚstrÚstripÚreÚmatchÚgroup)	r   Úvalr)   ÚbaseÚdÚsÚmÚyrÚm2s	            r   Ú
parse_datez"DataCleanerAndMergerT35.parse_dateÂ   sÄ  € àˆ;ØÜ�cœ8Ô$Ø—8‘8ˆDØ�dŠ{Ø�Ø—g‘g˜c�] ! C§I¡I¨c ?°!°D°6Ð:Ð:Ü�cœ4Ô Ø—8‘8ˆDØ�dŠ{Ø�Ø—g‘g˜c�] ! C§I¡I¨c ?°!°D°6Ð:Ð:Ü�cœC¤˜<Ô(ð%Ü  b¨"Ó-�Øœ: jÓ1×;Ñ;ÄÀSÃÐ;ÓJÑJ�Ø—z‘z *Ó-Ð-ô �‹H�N‰NÓˆÙØÜ�8‰8Ð*¨AÔ.ØˆHÜ�H‰HÐ0°!Ó4ˆÙÜ�Q—W‘W˜Q“Z“ˆBØ�DŠyØ�Ø—g‘g˜a“j�\  1§7¡7¨1£: ,¨a°¨tÐ4Ð4Ü�X‰XÐ.°Ó2ˆÙÜ˜"Ÿ(™( 1›+Ó& sÐ+¨1¬S°·±¸!³Ó-=¸cÐ,BÀ%ÐHÐHØˆøð!%Üœ3˜s›8“}Ò$ús   Â!AG ÇG'c                 ó
  — |€yt        |«      j                  «       }|sy|j                  d«      }|j                  «       dk(  ryt	        j
                  d|t        j                  ¬«      }g }|D �]y  }|j                  «       }|sŒt	        j                  dd|«      }t	        j                  d	d
|«      j                  «       }|s |j                  |j                  «       «       Œut	        j                  dd
|t        j                  ¬«      j                  «       }|sŒ­|j                  «       j                  «       }|| j                  v r|j                  | j                  |   «       Œø|j                  «       }|D �	cg c]G  }	t        |	«      dkD  r'|	d   j                  «       |	dd j                  «       z   n|	j                  «       ‘ŒI }
}	|j                  dj                  |
«      «       �Œ| |sydj                  |«      S c c}	w )z$Clean and normalize technician namesNÚ,u   trung hÃ¹ng háº£i lá»£iu:   Trung , HÃ¹ng , Trá»‹nh Há»¯u Háº£i , Nguyá»…n Há»¯u Lá»£iu   [,+\n/&.]+|\band\b|\bvÃ \b)Úflagsz\s+Ú z\(.*?\)Ú u   kt\s+c[Äƒa]m\s+t[aii].*$r%   r   z , )r1   r2   ÚrstripÚlowerr3   ÚsplitÚ
IGNORECASEÚsubÚappendr   ÚlenÚupperÚjoin)r   Únamer9   ÚpartsÚnormalized_partsÚpartÚ
part_cleanÚp_lowerÚwordsÚwÚnormalized_wordss              r   Únormalize_kythuatz)DataCleanerAndMergerT35.normalize_kythuatç   s½  € àˆ<ØÜ�‹I�O‰OÓˆÙØð �H‰H�S‹Mˆð �7‰7‹9Ð1Ò1ØOô —‘Ð6¸ÄÇÁÔOˆØÐÜˆDØ—:‘:“<ˆDÙØÜ—6‘6˜& # tÓ,ˆDÜŸ™ 
¨B°Ó5×;Ñ;Ó=ˆJÙØ ×'Ñ'¨¯
©
«Ô5ØäŸ™Ð ;¸RÀÔSU×S`ÑS`Ôa×gÑgÓiˆJÙØà ×&Ñ&Ó(×.Ñ.Ó0ˆGØ˜$×*Ñ*Ñ*Ø ×'Ñ'¨×(8Ñ(8¸Ñ(AÕBà"×(Ñ(Ó*�ÙglÓ#mÑglÐbcÄCÈÃFÈQÂJ A a¡D§J¡J£L°1°Q°R°5·;±;³=Ò$@ÐTU×T[ÑT[ÓT]Ñ$]ÐglÐ Ð#mØ ×'Ñ'¨¯©Ð1AÓ(BÖCð) ñ,  ØØ�z‰zÐ*Ó+Ð+ùò $ns   Å;AH c                 ó|  — t        j                  |d¬«      }|j                  }g }d}t        ||j                  dz   «      D �]a  }|j                  |d«      j                  }	|j                  |d«      j                  }
|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d	«      j                  }|j                  |d
«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  |d«      j                  }|j                  ||«      j                  }|	€|
€|€|€|€|€|€|€|€
|€|€|€|€�Œüt        |«      j                  «       dk(  st        |«      j                  «       dk(  r
|	€|
€|€|€�Œ>|
�t        |
«      j                  «       nd}|j                  «       dv r�Œo|r|}d}d}|�t        |«      j                  «       nd}|�t        |«      j                  «       nd}|�t        |«      j                  «       nd}|j                  «       dk(  rd}n/|j                  «       dk(  rd}n|r|j                  «       dk7  rd}|}d} |�t        |«      j                  «       nd}!|�t        |«      j                  «       nd}"|�t        |«      j                  «       nd}#|#j                  «       dk(  rd} n+|"j                  «       dk(  rd} n|!j                  «       dk(  rd} |r| j                  |«      nd}$| j                  |«      }%| j                  |«      }&|r|n|}'d}(|�,t        |«      j                  «       j                  «       dk(  rd}(|})|)�Pt        |)t        «      r4	 t        t        |)j                  dd«      j                  «       «      «      })n	 t        |)«      })|	}*|	�.	 t        t        t        |	«      j                  d d«      «      «      }*|�t        |«      j                  «       nd}+|+d!v rd}+|�t        |«      j                  «       nd},|,d!v rd},|�t        |«      j                  «       nd}-|-d!v rd}-|+d"v r|-s|+}-d}+|*�|'r|+s|,s|s
|s|)s|$s|-sd#}-|j!                  |*|'|+|,|�t        |«      j                  «       nd|%|&|||)|$| |(|-d$œ«       �Œd |S #  Y ŒýxY w#  Y �ŒxY w#  Y ŒÚxY w)%z8Cleans a single weekly report file and returns data rowsT©Ú	data_onlyNr%   r'   r&   é   é   é   é   é   é	   é
   é   r!   é   é   é   é   u   NgÆ°á»�i láº­pr   rB   )u   Tá»”NGu   Tá»”NG Cá»˜NGÚXõ   Má»›iõ   NhÃ¢nõ   Bá»™ÚDKÚHTõ   Ä�Lr?   Ú=)ÚNonerB   )u   KHÃ”NG CÃ“ MáºªUõ   KHÃ”NG LÃ€M MáºªUrn   ©ÚsttÚnha_mayÚma_ptÚma_nmÚ
khach_hangÚ	ngay_nhanÚngay_htÚloai_mauÚspÚso_luongÚky_thuatÚ
trang_thaiÚco_dhÚghi_chu)ÚopenpyxlÚload_workbookÚactiveÚrangeÚmax_rowÚcellÚvaluer1   r2   rJ   rU   r=   r(   r,   r-   ÚreplacerH   ).r   Ú	file_pathÚ	start_rowÚghi_chu_colÚwbÚwsÚ	data_rowsÚcurrent_nha_mayÚrrp   rq   rr   rs   rt   ru   rv   Úloai_moiÚ	loai_nhanÚloai_bory   rz   Útrang_thai_dlÚtrang_thai_htÚtrang_thai_dkr|   r}   Únha_may_strrw   rx   Úloai_moi_strÚloai_nhan_strÚloai_bo_strr{   Ú	tt_dl_strÚ	tt_ht_strÚ	tt_dk_strÚky_thuat_cleanÚngay_nhan_cleanÚngay_ht_cleanÚnha_may_finalÚco_dh_finalÚsl_finalÚ	stt_finalÚma_pt_finalÚma_nm_finalÚghi_chu_finals.                                                 r   Úclean_source_filez)DataCleanerAndMergerT35.clean_source_file  sÆ  € ä×#Ñ# I¸Ô>ˆØ�Y‰Yˆàˆ	Øˆä�y "§*¡*¨q¡.×1ˆAØ—'‘'˜!˜Q“-×%Ñ%ˆCØ—g‘g˜a “m×)Ñ)ˆGØ—G‘G˜A˜q“M×'Ñ'ˆEØ—G‘G˜A˜q“M×'Ñ'ˆEØŸ™  A›×,Ñ,ˆJØŸ™  1›×+Ñ+ˆIØ—g‘g˜a “m×)Ñ)ˆGà—w‘w˜q !“}×*Ñ*ˆHØŸ™  1›×+Ñ+ˆIØ—g‘g˜a “n×*Ñ*ˆGà—w‘w˜q "“~×+Ñ+ˆHØ—w‘w˜q "“~×+Ñ+ˆHàŸG™G A r›N×0Ñ0ˆMØŸG™G A r›N×0Ñ0ˆMØŸG™G A r›N×0Ñ0ˆMà—G‘G˜A˜r“N×(Ñ(ˆEØ—g‘g˜a Ó-×3Ñ3ˆGð �  °E°MÀeÀmØÐ" yÐ'8¸W¸_ØÐ  YÐ%6¸7¸?ØÐ  XÐ%5¸'¸/Ùô �G“×"Ñ"Ó$Ð(8Ò8¼CÀ»M×<OÑ<OÓ<QÐUiÒ<iÐorÐozð  @Gð  @Oð  TYð  Tað  fkð  fsÙà29Ð2Eœ#˜g›,×,Ñ,Ô.È2ˆKà× Ñ Ó"Ð&AÑAÙáØ"-�àˆHØˆBØ4<Ð4Hœ3˜x›=×.Ñ.Ô0ÈbˆLØ6?Ð6KœC 	›N×0Ñ0Ô2ÐQSˆMØ29Ð2Eœ#˜g›,×,Ñ,Ô.È2ˆKà×!Ñ!Ó# sÒ*Ø"‘Ø×$Ñ$Ó&¨#Ò-Ø"‘Ù ×!2Ñ!2Ó!4¸Ò!;Ø!�Ø �àˆJØ6CÐ6Oœ˜MÓ*×0Ñ0Ô2ÐUWˆIØ6CÐ6Oœ˜MÓ*×0Ñ0Ô2ÐUWˆIØ6CÐ6Oœ˜MÓ*×0Ñ0Ô2ÐUWˆIð �‰Ó  CÒ'Ø!‘
Ø—‘Ó" cÒ)Ø!‘
Ø—‘Ó" cÒ)Ø"�
áAI˜T×3Ñ3°HÔ=ÈtˆNà"Ÿo™o¨iÓ8ˆOØ ŸO™O¨GÓ4ˆMá+6™K¸OˆMàˆKØÐ ¤S¨£Z×%5Ñ%5Ó%7×%=Ñ%=Ó%?À3Ò%FØ!�àˆHØÐ#Ü˜h¬Ô,ðÜ#&¤u¨X×-=Ñ-=¸cÀ2Ó-F×-LÑ-LÓ-NÓ'OÓ#P™ðÜ#& x£=˜ð ˆIØˆðÜ #¤E¬#¨c«(×*:Ñ*:¸3ÀÓ*CÓ$DÓ E�Ið 16Ð0Aœ#˜e›*×*Ñ*Ô,ÀtˆKØ˜lÑ*Ø"�à05Ð0Aœ#˜e›*×*Ñ*Ô,ÀtˆKØ˜lÑ*Ø"�à4;Ð4GœC ›L×.Ñ.Ô0ÈTˆMØ Ñ,Ø $�àÐGÑGÙ$Ø$/�MØ"�àÐ$©¹{ÑS^Ñgqñ  {Cñ  LTñ  ]kÙ$Ø$7�Mà×ÑØ Ø(Ø$Ø$Ø9CÐ9Oœc *›o×3Ñ3Ô5ÐUYØ,Ø(Ø$ØØ$Ø*Ø(Ø$Ø(ñö ðs 2ðT ÐøðkÙûðÚûðÙús$   Ñ02V(Ò$V/Ò4-V7Ö(V,Ö/V4Ö7V;c                 ó°  — t        j                  |d¬«      }d|j                  v rdnd|j                  v rdn|j                  d   }||   }g }d}d}d}t        ||d	z   «      D �]ê  }	t        d	|j                  d	z   «      D �
cg c]  }
|j                  |	|
«      j                  ‘Œ  }}
t        d
„ |D «       «      rŒW|d   }|d	   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }t        |«      dkD  r
|d   �|d   nt        |«      dkD  r|d   nd}t        |«      dkD  r|d   nd}|�2t        |«      j                  «       rt        |«      j                  «       }d}|€|€|€
|€|€|€|€d}d}|s‘|�-t        |«      j                  «       j                  «       dk(  rd}nb|�-t        |«      j                  «       j                  «       dk(  rd}n3|�-t        |«      j                  «       j                  «       dk(  rd}n|�d}d}|so|r't        |«      j                  «       j                  «       nd}|r't        |«      j                  «       j                  «       nd}|dk(  rd}n|dk(  rd }n	|d!v rd"}nd }|r| j                  |«      nd} |j                  d|d|�t        |«      j                  «       nd|�t        |«      j                  «       nd| j                  |«      | j                  |«      ||�t        |«      j                  «       nd|sd	nd| |d|�t        |«      j                  «       ndd#œ«       �Œí |S c c}
w )$z-Cleans W35.xlsx sheet W35 from row 522 to 534TrW   ÚW35u   nháº­pr   i
  i  Nr%   c              3   ó`   K  — | ]&  }|d u xs t        |«      j                  «       dk(  –— Œ( y ­w)NrB   )r1   r2   )Ú.0Úxs     r   Ú	<genexpr>z9DataCleanerAndMergerT35.clean_w35_file.<locals>.<genexpr>µ  s,   è ø€ ÐG¹h¸�1˜�9Ò4¤ A£§¡£°"Ñ 4Ó4¹hùs   ‚,.r'   r&   rY   r[   r]   r^   r_   r`   r!   rc   é   é   é   é   Fre   rf   rg   rB   ri   ÚXONGrj   )u
   Ä�ANG LÃ€Mu
   CHÆ¯A LÃ€Mrk   ro   )r~   r   Ú
sheetnamesr�   Ú
max_columnrƒ   r„   ÚallrI   r1   r2   rJ   rU   rH   r=   )!r   r†   r‰   Ú
sheet_namerŠ   r‹   r‡   Úend_rowrŒ   r�   ÚcolÚrow_valsrp   ru   rq   Ú	ma_so_maurt   Ú
hien_trangrŽ   r�   Úloai_dcÚloai_lailair}   Úgo_valrz   Ú	ngay_xongÚ	status_kyÚis_support_onlyrw   r{   Úhien_trang_strÚstatus_ky_strÚ
tech_cleans!                                    r   Úclean_w35_filez&DataCleanerAndMergerT35.clean_w35_file§  s¿  € ä×#Ñ# I¸Ô>ˆØ# r§}¡}Ñ4‘UÀxÐSU×S`ÑS`ÑG`¹8Ðfh×fsÑfsÐtuÑfvˆ
Ø�
‰^ˆàˆ	Øˆ	Øˆàˆä�y '¨A¡+×.ˆAÜ9>¸qÀ"Ç-Á-ÐRSÑBSÔ9TÓUÑ9T°#˜Ÿ™  3›×-Ó-Ð9TˆHÐUÜÑG¹hÓGÔGØà˜1‘+ˆCØ  ™ˆIØ˜q‘kˆGØ  ™ˆIØ! !™ˆJØ! !™ˆJà ‘{ˆHØ  ™ˆIØ˜r‘lˆGØ" 2™,ˆKà˜r‘lˆGØ˜b‘\ˆFØ ‘|ˆHä(+¨H«¸Ò(:¸xÈ¹|Ð?W˜ šÔnqÐrzÓn{ð  Aò  oAÐ^fÐgiÒ^jð  GKˆIÜ(+¨H«¸Ò(:˜ šÀˆIàÐ"¤s¨7£|×'9Ñ'9Ô';Ü"% g£,×"4Ñ"4Ó"6�à#ˆOØÐ  ZÐ%7¸HÐ<LÐQZÐQbÐgnÐgvð  |Gð  |Oð  T\ð  TdØ"&�àˆHÙ"ØÐ'¬C°«M×,?Ñ,?Ó,A×,GÑ,GÓ,IÈSÒ,PØ&‘HØÐ*¬s°9«~×/CÑ/CÓ/E×/KÑ/KÓ/MÐQTÒ/TØ&‘HØÐ(¬S°«\×-?Ñ-?Ó-A×-GÑ-GÓ-IÈSÒ-PØ&‘HØ Ð,Ø&�HàˆJÙ"ÙDN¤ Z£×!6Ñ!6Ó!8×!>Ñ!>Ô!@ÐTV�ÙBK¤ I£× 4Ñ 4Ó 6× <Ñ <Ô >ÐQS�à  CÒ'Ø!%‘JØ# vÒ-Ø!%‘JØ#Ð'CÑCØ!&‘Jà!%�Já=E˜×/Ñ/°Ô9È4ˆJà×ÑØØ*ØØ3<Ð3Hœ˜Y›×-Ñ-Ô/ÈdØ9CÐ9Oœc *›o×3Ñ3Ô5ÐUYØ!Ÿ_™_¨YÓ7ØŸ?™?¨9Ó5Ø$Ø-3Ð-?”c˜&“k×'Ñ'Ô)ÀTÙ%4™A¸$Ø&Ø(ØØ3:Ð3Fœ3˜w›<×-Ñ-Ô/ÈDñö ðu /ðV ÐùòU Vs   Â#Mc                 ó  — t        j                  t         j                  j                  |«      d¬«       t	        j
                  «       }|j                  }d|_        g d¢}t        dd¬«      }t        ddd¬	«      }t        d
d
d¬«      }t        t        d¬«      t        d¬«      t        d¬«      t        d¬«      ¬«      }	t        |d«      D ]4  \  }
}|j                  d|
|«      }||_        ||_        ||_        |	|_        Œ6 t        |d«      D ]›  \  }}|d   |d   |d   |d   |d   |d   |d   |d   |d   |d   |d   |d   |d   |d   g}t        |d«      D ]M  \  }
}|j                  ||
|«      }|	|_        |
dk(  rt        d
¬«      |_        Œ7|
d k(  sŒ=t        d
¬«      |_        ŒO Œ� g d!¢}t        |d«      D ]"  \  }}||j&                  t)        |«         _        Œ$ |j-                  |«       t/        d"|› �«       y#)$z4Helper to write data rows to standardized Excel fileT©Úexist_oku   LÃ m sáº¡ch)ÚSttu	   NhÃ  mÃ¡yu	   MÃ£ PT/KHu   MÃ£ NMu   KhÃ¡ch hÃ ngu   NgÃ y nháº­nu   NgÃ y HTu   Loáº¡i máº«uÚSPu   Sá»‘ lÆ°á»£ngu   Ká»¹ thuáº­tu   Tráº¡ng thÃ¡iu   CÃ³ Ä�Hu   Ghi chÃºr`   )ÚboldÚsizeÚD9E1F2Úsolid)Ústart_colorÚ	end_colorÚ	fill_typeÚcenter)Ú
horizontalÚverticalÚ	wrap_textÚthin)Ústyle)ÚleftÚrightÚtopÚbottomr%   r'   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   )rÑ   r_   )rZ   é   rÚ   r­   rÚ   rb   rb   r_   é   r]   r"   r_   r]   é(   zFile saved to: N)ÚosÚmakedirsÚpathÚdirnamer~   ÚWorkbookr€   Útitler   r   r   r   r   Ú	enumeraterƒ   ÚfontÚfillÚ	alignmentÚborderÚcolumn_dimensionsr   ÚwidthÚsaveÚprint)r   r‹   Úoutput_pathÚwb_outÚws_outÚheadersÚheader_fontÚheader_fillÚheader_alignmentÚthin_borderÚcol_idxÚhrƒ   Úrow_idxr�   Úrow_datar6   Ú
col_widthsÚirS   s                       r   Úsave_to_excelz%DataCleanerAndMergerT35.save_to_excel   s  € ä
�‰”B—G‘G—O‘O KÓ0¸4Õ@Ü×"Ñ"Ó$ˆØ—‘ˆØ$ˆŒò IˆÜ ¨2Ô.ˆÜ!¨hÀ(ÐV]Ô^ˆÜ$°À8ÐW[Ô\ÐÜÜ˜FÔ#Ü˜VÔ$Ü˜6Ô"Ü˜fÔ%ô	
ˆô $ G¨QÖ/‰JˆG�QØ—;‘;˜q '¨1Ó-ˆDØ#ˆDŒIØ#ˆDŒIØ-ˆDŒNØ%ˆD�Kð 0ô $ I¨qÖ1‰JˆG�Qà�%‘Ø�)‘Ø�'‘
Ø�'‘
Ø�,‘Ø�+‘Ø�)‘Ø�*‘Ø�$‘Ø�*‘Ø�*‘Ø�,‘Ø�'‘
Ø�)‘ðˆHô  !*¨(°AÖ 6‘�˜Ø—{‘{ 7¨G°SÓ9�Ø)�”Ø˜a’<Ü%.¸(Ô%C�D•NØ “]Ü%.¸(Ô%C�D•Nñ !7ð# 2ò2 Kˆ
Ü˜j¨!Ö,‰DˆAˆqØCDˆF×$Ñ$Ô%6°qÓ%9Ñ:Õ@ð -ð 	�‰�KÔ Ü� ˜}Ð-Õ.r   c                 ó4	  — d}d}d}d}t        j                  |d¬«       t        d|«       | j                  |dd	¬
«      }t        dt	        |«      › d�«       | j                  |t         j                  j                  |d«      «       t        d|«       | j                  |dd¬
«      }t        dt	        |«      › d�«       | j                  |t         j                  j                  |d«      «       t        d|«       | j                  |«      }t        dt	        |«      › d�«       | j                  |t         j                  j                  |d«      «       g }d}	d }
|D ]5  }|d   �|d   |
k7  r
|	dz  }	|d   }
|	|d<   nd |d<   |j                  |«       Œ7 d }
|D ]5  }|d   �|d   |
k7  r
|	dz  }	|d   }
|	|d<   nd |d<   |j                  |«       Œ7 i }|D ]5  }|d   sŒ	|d   €Œ|d   ||d   j                  «       j                  «       <   Œ7 |D ]_  }|d   r!|d   j                  «       j                  «       nd}|r||v r	||   |d<   n|	dz  }	|	||<   |	|d<   nd |d<   |j                  |«       Œa |	}t        d|› dt	        |«      › �«       t         j                  j                  |d«      }| j                  ||«       t        d|› �«       t         j                  j                  |d«      }ddddd œ}ddddd!œ}d}d}|D ]|  }|d"   }|d#   }|d$   }|d%   }||v r||xx   dz  cc<   n|j                  |d«      dz   ||<   ||v r||xx   dz  cc<   n|j                  |d«      dz   ||<   |d&k(  r|dz  }|sŒx||z  }Œ~ d't        j                  «       j                  d(«      › d)|› d*t	        |«      › d+|› d,|› d-|j                  d.d«      › d/|j                  d0d«      › d1|j                  d2d«      › d3|j                  d4d«      › d5|j                  d6d«      › d7|j                  d8d«      › d9|j                  d d«      › d:|j                  d d«      › d;|› d<�}t!        |d=d>¬?«      5 }|j#                  |«       d d d «       t        d@|› �«       y # 1 sw Y   ŒxY w)ANu   TUáº¦N 35 (24.08-30.08).xlsxu   kqm tuáº§n 35.xlsxzW35.xlsxzda lam sachTrÅ   zCleaning file 1:r!   rÚ   )r‡   rˆ   zCleaned z rows from file 1z$Tuan_35_File1_Chinh_DA-LAM-SACH.xlsxzCleaning file 2:rZ   r®   z rows from file 2z"Tuan_35_File2_KQM_DA-LAM-SACH.xlsxzCleaning file 3 (W35):z rows from file 3z"Tuan_35_File3_W35_DA-LAM-SACH.xlsxr   rp   r%   rq   rB   z Combined data. Total factories: z, Total rows: z$Tuan_35_24.08-30.08_DA-LAM-SACH.xlsxz)Master Cleaned and merged data saved to: zBao_cao_lam_sach_Tuan35.md)rf   rg   rh   N)ri   rj   rk   Nrw   r{   ry   r|   re   u  # BÃ�O CÃ�O LÃ€M Sáº CH Dá»® LIá»†U - TUáº¦N 35

## ThÃ´ng tin chung
- **File gá»‘c 1 (ChÃ­nh)**: TUáº¦N 35 (24.08-30.08).xlsx
- **File gá»‘c 2 (KhÃ¡ch láº»)**: kqm tuáº§n 35.xlsx
- **File gá»‘c 3 (Nháº­t kÃ½ W35)**: W35.xlsx (Sheet: W35, DÃ²ng 522-534)
- **File sáº¡ch Ä‘áº§u ra tá»•ng há»£p**: `Tuan_35_24.08-30.08_DA-LAM-SACH.xlsx`
- **CÃ¡c file sáº¡ch tá»«ng pháº§n**:
  - `Tuan_35_File1_Chinh_DA-LAM-SACH.xlsx`
  - `Tuan_35_File2_KQM_DA-LAM-SACH.xlsx`
  - `Tuan_35_File3_W35_DA-LAM-SACH.xlsx`
- **NgÃ y xá»­ lÃ½**: r$   u@   

## Thá»‘ng kÃª dá»¯ liá»‡u gá»™p
- **Tá»•ng sá»‘ nhÃ  mÃ¡y**: u&   
- **Tá»•ng sá»‘ dÃ²ng dá»¯ liá»‡u**: u6   
- **Tá»•ng sáº£n lÆ°á»£ng sáº£n pháº©m lÃ m máº«u**: u6    cÃ¡i
- **Sá»‘ lÆ°á»£ng máº«u Ä‘Ã£ cÃ³ Ä‘Æ¡n hÃ ng**: uŸ    máº«u

| Loáº¡i máº«u | Sá»‘ lÆ°á»£ng dÃ²ng | Tráº¡ng thÃ¡i | Sá»‘ lÆ°á»£ng dÃ²ng |
|----------|---------------|------------|---------------|
| Máº«u Má»›i | rf   u    | Ä�Ã£ KÃ½ (DK) | ri   u    |
| Máº«u NhÃ¢n | rg   u    | HoÃ n ThÃ nh (HT) | rj   u    |
| Máº«u Bá»™ | rh   u    | Ä�ang lÃ m (Ä�L) | rk   u%    |
| KhÃ´ng lÃ m máº«u / ChÆ°a rÃµ | u    | ChÆ°a rÃµ / Trá»‘ng | uC   |

## CÃ¡c thao tÃ¡c Ä‘Ã£ thá»±c hiá»‡n
1. **LÃ m sáº¡ch riÃªng biá»‡t & gá»™p chuáº©n hÃ³a 3 file nguá»“n**: 
   - Ä�á»�c dá»¯ liá»‡u tá»« file chÃ­nh `TUáº¦N 35 (24.08-30.08).xlsx` (tá»« dÃ²ng 12).
   - Ä�á»�c dá»¯ liá»‡u tá»« file khÃ¡ch láº» `kqm tuáº§n 35.xlsx` (tá»« dÃ²ng 5, loáº¡i bá»� dÃ²ng tá»•ng káº¿t vÃ  dÃ²ng kÃ½ tÃªn).
   - Ä�á»�c dá»¯ liá»‡u tá»« sá»• theo dÃµi `W35.xlsx` (Sheet "W35", cÃ¡c dÃ²ng má»›i tá»« 522 Ä‘áº¿n 534).
2. **Ä�Ã¡nh láº¡i sá»‘ thá»© tá»± (Stt) nhÃ  mÃ¡y liÃªn tá»¥c**: Ä�áº£m báº£o sá»‘ thá»© tá»± nhÃ  mÃ¡y tÄƒng liÃªn tá»¥c tá»« 1 Ä‘áº¿n u3  .
3. **Chuáº©n hÃ³a ká»¹ thuáº­t viÃªn**: Sá»­ dá»¥ng bá»™ quy táº¯c chuáº©n hÃ³a tÃªn ká»¹ thuáº­t viÃªn (xá»­ lÃ½ tÃ¡ch gá»™p nhÃ³m, chuáº©n hÃ³a lá»—i chÃ­nh táº£ vÃ  Ä‘á»‹nh dáº¡ng danh xÆ°ng).
4. **PhÃ¢n tÃ¡ch cá»™t Loáº¡i máº«u vÃ  Tráº¡ng thÃ¡i**: Ã�nh xáº¡ Ä‘Ãºng cÃ¡c trÆ°á»�ng tÆ°Æ¡ng á»©ng tá»« cá»™t ban Ä‘áº§u vá»� Ä‘á»‹nh dáº¡ng chuáº©n (DK, HT, Ä�L vÃ  Má»›i, NhÃ¢n, Bá»™).
5. **Xá»­ lÃ½ cÃ¡c nhÃ  mÃ¡y khÃ´ng lÃ m máº«u**: Tá»± Ä‘á»™ng chuyá»ƒn cÃ¡c báº£n ghi "KHÃ”NG CÃ“ MáºªU" / "KHÃ”NG LÃ€M MáºªU" sang cá»™t Ghi chÃº má»™t cÃ¡ch chuáº©n xÃ¡c.
rS   r   r   zMarkdown report written to: )rÝ   rÞ   rë   r¥   rI   rú   rß   rK   rÃ   rH   r2   rJ   Úgetr	   Únowr0   ÚopenÚwrite)r   Úf1Úf2Úf3Ú
output_dirÚrows1Úrows2Úrows3Úcombined_rowsÚcurrent_new_sttÚlast_seen_orig_sttr�   Úfactory_to_sttÚnm_keyÚtotal_factoriesÚmaster_output_pathÚreport_pathÚtypes_countÚstatus_countÚco_dh_countÚ	total_qtyÚlmÚttÚqtyÚdhÚreport_contentÚfs                              r   ÚrunzDataCleanerAndMergerT35.run9  s`  € Ø+ˆØ!ˆØˆà#ˆ
Ü
�‰�J¨Õ.äÐ  "Ô%Ø×&Ñ& r°RÀRÐ&ÓHˆÜ�œ˜U›˜Ð$5Ð6Ô7Ø×Ñ˜5¤"§'¡'§,¡,¨zÐ;aÓ"bÔcäÐ  "Ô%Ø×&Ñ& r°QÀBÐ&ÓGˆÜ�œ˜U›˜Ð$5Ð6Ô7Ø×Ñ˜5¤"§'¡'§,¡,¨zÐ;_Ó"`ÔaäÐ&¨Ô+Ø×#Ñ# BÓ'ˆÜ�œ˜U›˜Ð$5Ð6Ô7Ø×Ñ˜5¤"§'¡'§,¡,¨zÐ;_Ó"`Ôað ˆØˆð "ÐÛˆAØ�‰xÐ#Ø�U‘8Ð1Ò1Ø# qÑ(�OØ)*¨5©Ð&Ø*��%’à��%‘Ø× Ñ  Õ#ð ð "ÐÛˆAØ�‰xÐ#Ø�U‘8Ð1Ò1Ø# qÑ(�OØ)*¨5©Ð&Ø*��%’à��%‘Ø× Ñ  Õ#ð ð ˆÛˆAØ�‹|  %¡Ñ 4Ø?@À¹x�˜q ™|×1Ñ1Ó3×9Ñ9Ó;Ò<ð ó ˆAØ56°y²\�Q�y‘\×'Ñ'Ó)×/Ñ/Ô1ÀrˆFÙØ˜^Ñ+Ø-¨fÑ5�A�e’Hà# qÑ(�OØ-<�N 6Ñ*Ø.�A�e’Hà��%‘Ø× Ñ  Õ#ð ð *ˆÜÐ0°Ð0AÀÔPSÐTaÓPbÐOcÐdÔeô  ŸW™WŸ\™\¨*Ð6\Ó]ÐØ×Ñ˜=Ð*<Ô=ÜÐ9Ð:LÐ9MÐNÔOô —g‘g—l‘l :Ð/KÓLˆà !¨A°qÀÑBˆØ q°¸!Ñ<ˆØˆØˆ	ãˆAØ�:‘ˆBØ�<‘ˆBØ�J‘-ˆCØ�7‘ˆBà�[Ñ Ø˜B“ 1Ñ$”à"-§/¡/°"°aÓ"8¸1Ñ"<�˜B‘à�\Ñ!Ø˜RÓ  AÑ%Ô à#/×#3Ñ#3°B¸Ó#:¸QÑ#>�˜RÑ à�SŠyØ˜qÑ �âØ˜SÑ ‘	ð) ð,ô  —|‘|“~×.Ñ.¨zÓ:Ð;ð <ð .Ð.ð /&Ü&)¨-Ó&8Ð%9ð :6Ø6?°[ð A1Ø1<°ð >ð —‘ ¨!Ó,Ð-Ð-@À×AQÑAQÐRVÐXYÓAZÐ@[ð \Ø—‘ ¨!Ó,Ð-Ð-DÀ\×EUÑEUÐVZÐ\]ÓE^ÐD_ð `Ø—‘ ¨Ó*Ð+Ð+AÀ,×BRÑBRÐSXÐZ[ÓB\ÐA]ð ^#Ø#.§?¡?°4¸Ó#;Ð"<Ð<UÐVb×VfÑVfÐgkÐmnÓVoÐUpð qIð JYð  IZð Zð?#ˆôH �+˜s¨WÕ5¸Ø�G‰G�NÔ#÷ 6äÐ,¨[¨MÐ:Õ;÷ 6Ð5ús   Ñ%RÒRN)
Ú__name__Ú
__module__Ú__qualname__r   r=   rU   r¥   rÃ   rú   r  © r   r   r   r      s/   „ òt
òl#òJ*,òXRòhWòr7/órR<r   r   Ú__main__)r~   Úopenpyxl.stylesr   r   r   r   r   Úopenpyxl.utilsr   r	   r
   r3   rÝ   ÚsysÚstdoutÚreconfigurer   r  Úcleanerr  r  r   r   Ú<module>r%     s_   ðÛ ß FÕ FÝ ,ß #Û 	Û 	Û 
à ‡
�
× Ñ  Ð Ô (÷@<ñ @<ðD ˆzÒÙ%Ó'€GØ‡K�K…Mð r   