
    b\hU                     6   S SK Jr  S SKJr  S SKJr  SSKJrJrJ	r	  SSKJrJ	r	JrJ
r
  \S 5       rS SK JrJr  S SKJr  S SKJr  SS	KJr  \S
 5       rS SK JrJrJr  S SKJr  S SKJr  SSKJr  SS	KJr  \S 5       r\S 5       rS SKJr  S SKJr  S SK Jr  SSKJrJr  \S 5       rSSKJr  S rSSKJr  SSKJr  \S 5       rS SKJr  S SKJr  S SKJr  SSKJrJr  \S 5       rS SK JrJr  S SKJrJr  S SK J!r!  S SKJ"r"  S SK#J$r$  S r%S r&S SK JrJr  S SK J!r!  S SKJrJrJr  S SK#J$r$  S S K'J(r(  S! r)S SKJr  S S"K JrJr  S SKJr  SS#KJr  \S$ 5       r*S SK Jr  S SK J!r!  S SK#J$r$  S S%KJrJr  S& r+S S'KJ,r,  SS#KJr  S( r-S SKJr  S S)K.J/r/  S S*K0J1r1  S SK Jr  S SKJr  SS+KJrJr  \S, 5       r2S S'KJ,r,  S S*K0J1r1  S S)K.J/r/  SS+KJrJr  \S- 5       r3S S'KJ,r,  S SKJr  S S*K0J1r1  S SKJr  SS+KJrJr  S S.K4J5r5  S S/K6J6r6  \S0 5       r7S S1K8J9r9  \\9S2 5       5       r:g3)4    )render)login_required)
connection   )ProdutoPedidoMensagem)r   r	   r   ProprietarioEstabelecimentoc                 L   [        U R                  S5      (       a  U R                  R                  (       d  [        U S5      $ [        R
                  " U R                  R                  R                  5        [        R                  R                  5       n[        R                  R                  S5      S S n[        R                  R                  S5      S S n[        R                  R                  SS9R                  5       n[        R                  R                  SS/S	9R                  5       n[        R                  R                  S
S9R                  5       n[        R                  R                  U R                  S9R!                  5       n[        U SUUUUUUUS.5      $ )Ntenanterros/sem_tenant.html-data
   
confirmadostatuspreparoentrega
status__inentregueuserzatendimento/painel_dono.html)produtos	mensagenspedidosnovos_countandamento_countentregues_countperfil)hasattrr   r   r   r   
set_schemaschema_namer   objectsallr	   order_byr   filtercountr
   first)requestr   r   r   r   r   r   r    s           ,/var/www/html/atendegrf/atendimento/views.pypainel_donor,      sP   7<<**',,2E2Eg677',,--99:""$H  ))'23B7Inn%%g.s3G ..''|'<BBDKnn++	97M+NTTVOnn++:+>DDFO )0077W\\7JPPRF'9"**<      )r   redirect)ProdutoFormc                    [        U R                  S5      (       a  U R                  R                  (       d  [        U S5      $ [        R
                  " U R                  R                  R                  5        U R                  S:X  aQ  [        U R                  U R                  5      nUR                  5       (       a  UR                  5         [        S5      $ O
[        5       n[        U SSU05      $ )Nr   r   POSTatendimento:painel_donoz"atendimento/cadastrar_produto.htmlform)r!   r   r   r   r   r"   r#   methodr/   r1   FILESis_validsaver.   )r*   r3   s     r+   cadastrar_produtor8   ,   s    7<<**',,2E2Eg677',,--99:~~7<<7==??IIK566  }'?&$PPr-   )r   get_object_or_404r.   )r   c                 v   [         R                  " U R                  R                  R                  5        [        [        US9nU R                  S:X  aP  [        U R                  U R                  US9nUR                  5       (       a  UR                  5         [        S5      $ O	[        US9n[        U SX2S.5      $ )Npkr1   instanceatendimento:listar_produtoszatendimento/editar_produto.html)r3   produto)r   r"   r   r   r#   r9   r   r4   r/   r1   r5   r6   r7   r.   r   )r*   r<   r@   r3   s       r+   editar_produtorA   F   s    ',,--99:B/G~~7<<I==??IIK9::  G,'<t>`aar-   c                     [         R                  " U R                  R                  R                  5        [        [        US9nUR                  5         [        S5      $ )Nr;   r?   )	r   r"   r   r   r#   r9   r   deleter.   )r*   r<   r@   s      r+   excluir_produtorD   Z   sB    ',,--99:B/GNN122r-   )r   IdentidadeRestaurantec                 "   [         R                  " U R                  R                  R                  5        [
        R                  R                  5       R                  SS5      n[        R                  R                  5       n[        U SUUS.5      $ )N	categorianomezatendimento/produtos_list.html)r   
identidade)r   r"   r   r   r#   r   r$   r%   r&   rE   r)   r   )r*   r   rI   s      r+   listar_produtosrJ   i   sp    ',,--99:""$--k6BH&..446J'; >  r-   c           	      (   [         R                  " U R                  R                  R                  5        [
        R                  R                  SS9R                  SS5      n[        [        UR                  SSS95      5      n[        U SUUS.5      $ )NT
disponivelrG   rH   )flatzatendimento/cardapio.html)r   
categorias)r   r"   r   r   r#   r   r$   r'   r&   sortedsetvalues_listr   )r*   r   rO   s      r+   cardapio_digitalrS   y   s    ',,--99:%%%6??VTHH0040HIJJ'6 9  r-   )rE   )IdentidadeRestauranteFormc                    [         R                  " U R                  R                  R                  5        [
        R                  R                  SS9u  pU R                  S:X  aP  [        U R                  U R                  US9nUR                  5       (       a  UR                  5         [        S5      $ O	[        US9n[        U SSU05      $ )Nr   )idr1   r=   r?   z"atendimento/editar_identidade.htmlr3   )r   r"   r   r   r#   rE   r$   get_or_creater4   rT   r1   r5   r6   r7   r.   r   )r*   rI   _r3   s       r+   editar_identidaderY      s    ',,--99:)11??1?EMJ~~(w}}zZ==??IIK9::  )*='?&$PPr-   )HTML)render_to_string)HttpResponsec           	         [         R                  " U R                  R                  R                  5        [
        R                  R                  SS9R                  SS5      n[        R                  R                  5       nU(       a'  UR                  (       a  UR                  R                  OS nU(       a  UR                  OSn[        USS5      n[        USS5      n[        S	UU(       a  U R!                  U5      OS UUUS
.5      n[#        XpR!                  5       S9R%                  5       n['        USS9n	SU S3U	S'   U	$ )NTrL   rG   rH   u	   Cardápioendereco telefonezatendimento/cardapio_pdf.html)r   logo_urlnome_restauranter^   r`   )stringbase_urlzapplication/pdf)content_typezinline; filename="cardapio_z.pdf"zContent-Disposition)r   r"   r   r   r#   r   r$   r'   r&   rE   r)   logotipourlrH   getattrr[   build_absolute_urirZ   	write_pdfr\   )
r*   r   rI   ra   rb   r^   r`   htmlpdfresponses
             r+   gerar_cardapio_pdfrn      s   ',,--99:%%%6??VTH&..446J*49L9Lz""&&RVH*4z+z:r2Hz:r2H;<DG..x8$,> D d%?%?%A
B
L
L
NCC.?@H(CDTCUUZ&[H"#Or-   )r   r9   Client)HttpResponseNotFoundschema_contextc                 \   SSK Jn  SSKJn  UR                  R                  SS9 H  nU" UR                  5         [        R                  R                  US9R                  5       nU(       a  [        R                  R                  SS9R                  S	S
5      n[        U SUUUR                  (       a  UR                  R                  OS UR                  UR                   UR"                  S.5      sS S S 5        s  $  S S S 5        M     [        U SSS05      $ ! , (       d  f       GM  = f)Nr   ro   rr   publicr#   slugTrL   rG   rH   z!atendimento/cardapio_publico.html)rI   r   ra   rb   r^   r`   &atendimento/cardapio_indisponivel.htmlmensagemu-   Página não disponível para este endereço.)tenant_management.modelsrp   django_tenants.utilsrs   r$   excluder#   rE   r'   r)   r   r&   r   rf   rg   rH   r^   r`   )r*   rx   rp   rs   r   rI   r   s          r+   cardapio_publicor~      s   /3 ..((X(>F../.66==4=HNNPJ"??11T1BKKKY_`g'J", (;E;N;N
 3 3 7 7TX(2 * 3 3 * 3 3M 	 0/ 0/ ? 'CCF   0/s   B8D
D+	c                 \   SSK Jn  SSKJnJn  SSKJn  UR                  R                  SS9 H  nU" UR                  5         UR                  R                  US9R                  5       nU(       a  UR                  R                  SS	9R                  S
S5      n[        U SUUUUR                  (       a  UR                  R                  OS UR                   UR"                  UR$                  S.5      sS S S 5        s  $  S S S 5        M     [        U SSS05      $ ! , (       d  f       M  = f)Nr   ro   )rE   r   rr   ru   rv   rw   TrL   rG   rH   zatendimento/pedido_publico.html)rx   rI   r   ra   rb   r^   r`   ry   rz      Restaurante não encontrado.)r{   rp   atendimento.modelsrE   r   r|   rs   r$   r}   r#   r'   r)   r&   r   rf   rg   rH   r^   r`   )	r*   rx   rp   rE   r   rs   r   rI   r   s	            r+   pedido_publicor      s
   /A3..((X(>F../.66==4=HNNPJ"??11T1BKKKY_`g'H ", (;E;N;N
 3 3 7 7TX(2 * 3 3 * 3 3K 	 0/ 0/ ? 'C2F   0/s   B1D
D+	)rE   r   r   )Decimalc                    U R                   S:w  a
  [        SUS9$ [        R                  R	                  SS9 GH  n[        UR                  5         [        R                  R                  US9R                  5       nU(       Ga  U R                  R                  S5      nU R                  R                  S5      nU R                  R                  S5      nU R                  R                  S	5      nU R                  R                  S
S5      R                  5       n/ n	[        S5      n
[        R                  R                  SS9nU Hn  n[        U R                  R                  SUR                    3S5      5      nUS:  d  M=  U	R#                  U SUR$                   35        XR&                  U-  -  n
Mp     U	(       d  [)        U SSSUS.5      sS S S 5        s  $ [*        R                  R-                  UUUSR/                  U	5      U
UUSS9n[)        U SSSUUS.5      sS S S 5        s  $  S S S 5        GM      [)        U SSSUS.5      $ ! , (       d  f       GM#  = f)Nr1   zatendimento:pedido_publicorw   ru   rv   rH   r`   r^   	pagamentoobservacoesr_   z0.00TrL   quantidade_0r   x #atendimento/pedido_confirmacao.htmlzNenhum item foi selecionado.Frz   sucessorx   z, r   )rH   r`   r^   itenstotalr   r   r   zPedido enviado com sucesso!)rz   r   pedidorx   r   )r4   r.   rp   r$   r}   rs   r#   rE   r'   r)   r1   getstripr   r   intrV   appendrH   precor   r   createjoin)r*   rx   r   rI   rH   r`   r^   r   r   itens_pedidor   r   r@   qtdr   s                  r+   enviar_pedido_publicor      s.   ~~44@@ ..((X(>F../.66==4=HNNPJ||''/"<<++J7"<<++J7#LL,,[9	%ll..}bAGGI!"??11T1B'Ggll..WZZL/I3OPCQw$++se2gll^,DE!44	  ( $!'+P$B#( $S ' 0/2  ..%%))L1' +' / 	 g'L =#$ 	O I 0/ 0/ ?X '@2C  W 0/s   D/IAIAI
I	)r9   r.   )r   c                     [         R                  " U R                  R                  R                  5        [        [        US9nX#l        UR                  5         US:X  a  [        S5      $ [        S5      $ )Nr;   r   zatendimento:vendas_registradasr2   )
r   r"   r   r   r#   r9   r   r   r7   r.   )r*   r<   novo_statusr   s       r+   atualizar_status_pedidor   =  sZ    ',,--99:v"-FM
KKMj 899-..r-   )r   rE   c           	         [         R                  R                  SS9 H  n[        UR                  5         [
        R                  R                  US9R                  5       n[        R                  R                  US9R                  5       nU(       a"  U(       a  [        U SUUS.5      sS S S 5        s  $ S S S 5        M     [        U SSS	US
.5      $ ! , (       d  f       M  = f)Nru   rv   rw   )codigozatendimento/acompanhamento.html)r   rI   r   u   Pedido não encontrado.Fr   )
rp   r$   r}   rs   r#   rE   r'   r)   r   r   )r*   rx   r   r   rI   r   s         r+   acompanhar_pedidor   P  s    ..((X(>F../.66==4=HNNPJ^^**&*9??AFfg'H$",K 	 0// ? '@-C   0/s   A4C
C"	)JsonResponsec                 &   [         R                  R                  SS9R                  5       n[         R                  R                  SS/S9R                  5       n[         R                  R                  SS9R                  5       n[	        UUUS.5      $ )Nr   r   r   r   r   r   )novos	andamento	entregues)r   r$   r'   r(   r   )r*   r   r   r   s       r+   contagem_pedidosr   f  s    NN!!!6<<>E%%)Y1G%HNNPI%%Z%8>>@I  r-   )Sum)	TruncDate)r   r   c                 N   [        U R                  S5      (       a  U R                  R                  (       d  [        U S5      $ [        R
                  " U R                  R                  R                  5        [        R                  R                  SS9nUR                  [        S5      S9R                  S5      R                  [        S5      S	9R                  S5      nU Vs/ s H  o3S   R                  S
5      PM     nnU Vs/ s H  n[!        US   5      PM     nn/ n/ n["        R                  R%                  5       n0 n	U H  n
U Hz  nUR&                  R)                  5       U
R*                  R)                  5       ;   d  M;  UR,                  =(       d    SnU	R/                  US5      [!        U
R0                  5      -   X'   M|     M     [3        U	R5                  5       5      n[3        U	R                  5       5      n[7        5       nU H_  n
U HV  nUR&                  R)                  5       U
R*                  R)                  5       ;   d  M;  UR9                  UR&                  5        MX     Ma     [;        U5      n[        U SUR                  S5      UUUUUS.5      $ s  snf s  snf )Nr   r   r   r   datadiar   r   r   %d/%mzSem Categoriar   z#atendimento/vendas_registradas.htmlr   )pedidos_entreguesdiastotaisrO   valores_categoriasnomes_produtos)r!   r   r   r   r   r"   r#   r   r$   r'   annotater   valuesr   r&   strftimefloatr   r%   rH   lowerr   rG   r   r   listkeysrQ   addrP   )r*   r   vendas_por_diavr   r   rO   r   r   mapa_categoriar   r@   catr   s                 r+   vendas_registradasr   y  s2   7<<**',,2E2Eg677',,--99:nn##:#6G 		i'	(		G	%	%  1??1eHg&D?)78AeAgJF8 J""$H NG||!!#v||'9'9';;'':?&4&8&8a&@5CV&V#    n))+,Jn3356 UNG||!!#v||'9'9';;""7<<0    N+N'@$--g6 0(C  7 @8s   $JJ"c                 X   [         R                  " U R                  R                  R                  5        U R
                  R                  S5      n[        R                  R                  SS9nSnU(       a  US:w  a  U Vs/ s H2  oAR                  5       UR                  R                  5       ;   d  M0  UPM4     nnSU S3nSS	KJn  U" [        5      nU H<  nUR                  R!                  5       nXg==   [        UR"                  5      -  ss'   M>     [%        U5       Vs/ s H  oR'                  S
5      PM     n	n[%        U5       Vs/ s H  oU   PM	     n
nO[        R                  R                  SS9R)                  [+        S5      S9R-                  S5      R)                  [/        S5      S9R1                  S5      nU Vs/ s H  oS   R'                  S
5      PM     n	nU Vs/ s H  n[        US   5      PM     n
n[3        U	U
US.5      $ s  snf s  snf s  snf s  snf s  snf )Nr@   r   r   Total de Vendas (R$)todosz
Vendas de z (R$)r   defaultdictr   r   r   r   r   r   )labelsvalorestitulo)r   r"   r   r   r#   GETr   r   r$   r'   r   r   collectionsr   r   r   dater   rP   r   r   r   r   r   r&   r   )r*   produto_nomer   r   pr   mapar   dr   r   r   r   s                r+   grafico_linha_apir     s   ',,--99:;;??9-Lnn##:#6G#F/%Qg););)=)P1gQl^51 	,5!A&&++-CIqww'I  06d|<|!**W%|<$*4L1Lq7L1 NNV:V&X)F+X,VE]XCLX)Xe_ 	 7EEnE(##G,nE.<=n57$n=  1 R =1 F=s$    /H3H"HHH"*H'r   )datetimec                    [         R                  " U R                  R                  R                  5        U R
                  R                  SS5      n[        R                  R                  SS9n[        R                  R                  5       nU Vs0 s H=  oDR                  R                  5       UR                  =(       d    SUR                  S._M?     nn[!        ["        5      n[!        ["        5      nU GH}  nUR$                  R'                  5       R)                  S5      n	UR*                  R                  5       R-                  S5      n
U
 GH   nUR/                  5       nS	nS
U;   a?   UR-                  S
S	5      u  p[1        UR/                  5       5      nUR/                  5       nOUnUR                  UR                  5       5      nU(       d  M  U[#        US   5      -  nUS   nUS:X  a  XiU4==   U-  ss'   X~==   U-  ss'   M  US:X  a  XiU4==   U-  ss'   UU==   U-  ss'   M  Xi==   [#        UR2                  5      -  ss'   US==   [#        UR2                  5      -  ss'     GM{     GM     US:X  a<  [5        [7        UR9                  5       5      5      nU Vs/ s H  nUU   PM
     nnSnUnOx[!        ["        5      nUR;                  5        H  u  u  nnnUU==   U-  ss'   M     [5        [7        S U 5       5      5      nUnU Vs/ s H  nUU   PM
     nnSUS:X  a  SOS-   n[=        UR9                  5       5      nU Vs/ s H  nUU   PM
     nn[?        UUUUUS.5      $ s  snf !   Un GN= fs  snf s  snf s  snf )Ntipor   r   r   Outros)rG   r   r   ,r   r   r   rG   r@   zTotal Geralr   c              3   *   #    U  H	  u  pUv   M     g 7f)N ).0r   rX   s      r+   	<genexpr>'grafico_agrupado_api.<locals>.<genexpr>(  s     =*<!*<s   zVendas por r   	Categoria)r   valores_linhatitulo_linhalabels_pizzavalores_pizza) r   r"   r   r   r#   r   r   r   r$   r'   r   r%   rH   r   rG   r   r   r   r   r   r   r   splitr   r   r   rP   rQ   r   itemsr   r   )r*   r   r   r   r   mapa_produtoagrupamento_diarioagrupamento_pizzar   r   r   itemr   qtd_str	nome_iteminfovalor_totalrG   r   r   r   r   labels_linhaagrupador   chavevalorr   kr   s                                 r+   grafico_agrupado_apir     sH   ',,--99:;;??67+Dnn##:#6G""$H goofnabFFLLN!++2ITUT[T[$\\fnLo %U+#E*{{!**73""$**3/D::<DC t|%)-D!)<&Ggmmo.C ) 1I !	##IOO$56Dt!E$w-$88 -	9$&i'89[H9%0K?0[(&i'89[H9%i0K?0&,fll0CC,%m4fll8KK4= 	 J wc,113458<=1+A.=-u%#5#;#;#=LS%%SMU"M $>c=*<==>.23d!d3$TY5F	KX )..01L3?@<a&q)<M@&$$&  { p(% $I0 > 4
 As%   AM1+=M6$N NN
6M=)require_POSTc                    [        U R                  S5      (       a  U R                  R                  (       d  [        U S5      $ [        R
                  " U R                  R                  R                  5        U R                  R                  S5      nU R                  R                  S5      nU R                  R                  S5      nU R                  R                  S5      nXR                  l	        U R                  R                  5         [        R                  R                  U R                  S9u  pVX%l        X5l        XEl        UR                  5         [#        S5      $ )	Nr   r   	full_nameidentityphoneaddressr   r2   )r!   r   r   r   r   r"   r#   r1   r   
first_namer7   r
   r$   rW   rI   r`   r^   r.   )r*   r   rI   r`   r^   r    createds          r+   save_user_infor   ?  s    7<<**',,2E2Eg677 ',,--99:   -I!!*-J||(H||	*H (LLLL 299GGW\\GZOF"OO
KKM-..r-   N);django.shortcutsr   django.contrib.auth.decoratorsr   	django.dbr   modelsr   r   r	   r
   r,   r.   formsr/   r8   r9   rA   rD   rE   rJ   rS   rT   rY   
weasyprintrZ   django.template.loaderr[   django.httpr\   rn   r   r{   rp   rq   r|   rs   r~   r   decimalr   r   r   r   r   r   django.db.modelsr   django.db.models.functionsr   r   r   r   r   r   r   django.views.decorators.httpr   r   r   r-   r+   <module>r     s   # 9   - - J J > . 9   Q Q& A @ 9    b b& 3 3 :   # 2   * ,Q Q"  3 $ 2 6 7 = + , /86 . + E E / 5t : 8   / / $ + / <& %  :   0 #   #2 2p % 0   #% %V % 9 0   # # K K` 6 /  /r-   