
    q$h(                         S SK Jr  S SKJr  S SKJr  S SKrS SKJr  S SKJ	r	  SSK
Jr  SS	KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  S
 r)S r*S r+S r,\S 5       r-g)    )render)datetime)JsonResponseN)csrf_exempt)logout   )BasketsToScan)getCampaignNumbergetCampaignNumberByDategetCampaignIdgetZonesByCampaignId
GetDayPickcalculatetotorderscalculatetotunidslogcalculatetotunidscalculatetotalscannedunitscalculatependingscannedunitscalculatetotalprogress generateGraficLineEfficiencyDatagetHourlyAvgOrdersgetHourlyAvgBasketsgetHourlyAvgScannedMaterialsgetComplianceDatagetActualZonecheckzoneexistsdashboard&validateProcessAndAdvanceZoneDashboarddeleteOutDayZoneDashboard%validateIfThereAllreadyScannedBasketsdeleteOutDayZoneBasketScanning"deleteOutDayZonePickingPerformancegetDataDashboarduserHasPermissionToDeleteZone&calculatetotalscannedunitsAdvancedZone(calculatependingscannedunitsAdvancedZone"calculatetotalprogressAdvancedZonec                 f   Sn[         R                  " 5       R                  S5      n[        U5      n[	        U5      n[        U5      n[        U5      n[        U5      n[        U[        5      (       a  U Vs/ sH  oS   PM	     snO/ nS n	UR                  (       d2  XUS   U:H     n
U
R                  (       d  U
R                  S   S    SU 3n	[        5       n[        5       n[        5       n[        5       n[!        5       n[#        5       n[%        U5        ['        U SUUU	S	UUUUUUUS
.5      $ s  snf )N0%d-%m-%YidzFecha Piqueor   Diaz - zzonebasketsdashboard.htmlT)u   numeros_campañacurrent_date
dia_actualshow_spinnernumeros_zonatotal_pedidostot_unids_log	tot_unidstot_scanned_unids_adv_zone"tot_pending_scanned_unids_adv_zonetot_pct_progress_adv_zone)r   nowstrftimer
   r   r   r   r   
isinstancelistemptyilocr   r   r   r#   r$   r%   printr   )requestfilterZonePickr+      numeros_campañacampaignNumberday_pickcampaign_idzonaszonar,   	dia_matchr/   r0   r1   r2   r3   r4   s                    QC:\Repositorios\Repos en GIT\Fox\app\controllers\zoneBasketDashboardController.pygetzonebasketsdashboardrF   ,   s7   N<<>**:6L(6,\:N.)H/K -E7A%7N7NU3UT4jU3TVN J>>n5EF	%NN1-e45S8HIJ '(M(*M!#I!G!I)Q)S& B D	
$%'5,$ %&&%?.P%>8  + 4s   7D.c                    U R                   S:X  Ga|   [        R                  " U R                  5      nUR	                  S5      n[
        R                  " 5       R                  S5      nUR	                  S5      n[        SU5        [        U5      n[        SU5        U(       a  U(       d  [        SSSS	.5      $ [        X%U5      n[        S
USU5        US   (       a  [        SSSS	.5      $ US   (       a  [        SSSS	.5      $ US   (       d
  US   (       d  [        SSSS	.5      $ S nUS   (       aK  [        X%U5      n[        SUSU5        US   (       a  [        SSSS	.5      $ [        XBS9  [        SSSS	.5      $ [        SSS S	.5      $ [        SS#S$S	.5      $ ! [         a.  n	[        S![        U	5      5        [        SSS"S	.5      s S n	A	$ S n	A	ff = f)%NPOSTnew_zone_pickr(   campaign_numberrA   F  zDatos incompletos.)successstatus_codemessager=   z- validation_resultzone_in_progressi  u4   La zona se está procesando, aguarde a que finalice.zone_already_pickedi  z&La zona ya fue completamente piqueada.zone_not_billedzone_billingi  zZona no facturada.zcheckzoneexistsdashboard:-zone_already_in_dashboardTi  z(La zona ya se encuentra en el dashboard.)rJ   r=      zZona agregada correctamente.  zNo fue posible agregar la zona.zError en validateNewZonePick:zError interno del servidor.     Método no permitido.)methodjsonloadsbodygetr   r5   r6   r;   r   r   r   r   r	   	Exceptionstr)
r<   datar=   	date_pickrJ   rA   validation_resultbilling_statusdashboard_resultes
             rE   validateNewZonePickrf   X   s   ~~*	p::gll+D!XXo6N //
;I"hh'89O#O4'8K-,".#cVj$kll !G~dm n">3HIZ[ !34#S  UK  %L  M  M !67#cV~$  A  A !23;L^;\#cVj$kll "N 0#;NWf#g 1>3HXY#$?@'D  XB  )C  D  Do]#CSq$rss  EPq rss EH_`aa	  	p13q6:EPm noo	psB   B%F 92F ,F "F (>F 'F ?F 
G'#G
GGc                    [        5       n[        5       u  p#U Vs/ sH  oDS   U;   d  M  UPM     nnU Vs/ sH  oDS   U;   d  M  UPM     nnU Vs/ sH  oDS   U;  d  M  US   U;  d  M  UPM     nnXW-   U-   n[        5       n	[        5       n
[	        5       n[        5       n[        5       u  pnn[        5       n[        5       n[        5       n[        UU
UUU	UUUUUUUUUS.5      $ s  snf s  snf s  snf )Nzone)r`   tot_scanned_unidstot_pending_scanned_unidstot_pct_progresscompliancempudata	intervalsscanned_ordersavg_scanned_orders_30minmax_axisavg_scanned_orders_1havg_scanned_baskets_1htot_avg_materialsactualzoneszonas_completas)r!   r   r   r   r   r   r   r   r   r   r   )r<   r`   rt   zonas_completas_idsrowzonas_parcialru   otras_zonassorted_datarl   ri   rj   rk   rm   rn   ro   rp   rq   rr   rs   s                       rE   getdatar{      s&   D'4$K$(GDSK;,FSDMG&*Qds&k=P.PsdOQ"&t$3f+[*H3SQW[`sMs3$Kt-?K *+24 < >-/ DdCe@I7.00246
 ->5N+;,=%.)73K#+1F2H->'2+>  3 HQts'   C(C(C-C-C2 C2+C2c                 n   U R                   S:X  a   U R                  R                  n[        U5      (       d  [	        SSS.SS9$ [
        R                  " U R                  5      nUR                  S5      nU(       d  [	        SSS.S	S9$ [        U5      (       a  [	        SS
S.5      $ [        U5      n[        U5      n[        U5      nU(       d  [	        SSS.5      $ [	        SSUUUS.S.5      $ [	        SSS.SS9$ ! [         a,  n[        S[        U5      5        [	        SSS.SS9s S nA$ S nAff = f)NrH   Fu-   No tiene permisos para ejecutar esta acción.)rL   rN   i  statusrh   zZona no proporcionada.rK   z8No se puede eliminar la zona, ya tiene cajas escaneadas.z*No se pudo eliminar la zona del dashboard.TzZona eliminada correctamente.)	dashboardbasketspicking)rL   rN   detalleszError al eliminar la zona:zError interno.rV   rX   rW   )rY   userr)   r"   r   rZ   r[   r\   r]   r   r   r   r    r^   r;   r_   )r<   user_idr`   rh   dashboard_deletedbaskets_deletedpicking_deletedre   s           rE   DelOutDayZoneDashboardr      s;   ~~#	]llooG 199#Bq$r{~::gll+D88F#D#BZ$[dghh4T::#B|$}~~ 9$ ?<TBO@FO$#Bn$opp:!2..!   E6MNWZ[[	  	].A7E>N OX[\\	]s6   2C> AC> 
C> (5C> C> >
D4!D/)D4/D4c                 j    U R                   S:X  a  [        U 5        [        SS05      $ [        SS0SS9$ )NrH   redirect_urlzhttps://www.gigot.com.ar/erroru   Método no permitidorW   r}   )rY   r   r   )r<   s    rE   logoutbasketsdashboardr      s9    ~~w^-HIJJ"89#FF    ).django.shortcutsr   r   django.httpr   rZ   django.views.decorators.csrfr   django.contrib.authr   services.scannerServicer	   #services.zoneBasketDashboardServicer
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   rF   rf   r{   r   r    r   rE   <module>r      ss    #  $  4 & 5       F*X.bb-b'\V G Gr   