
    i'                        d Z ddlZddlZ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 ddlmZ ddlmZ ddlZ ede      Zej+                  d	      ed
               Zej+                  ddg      ed               Zej+                  d      ed               Zej+                  d      ed               Zej+                  d      ed               Zy)zMesa floor and related APIs.    N)	Blueprintjsonifyrender_templaterequestsession)login_required)conectar)fetch_mesa_recent_for_client)obter_dados_loja	mesa_shopz/api/mesa-todosc                      	 t        j                  d      } | st        ddi      dfS t        |       }t        d|i      S # t        $ r"}t        dt        |      i      dfcY d }~S d }~ww xY w)N
id_clienteerrou   Sessão sem id_cliente  	registros  )r   getr   r
   	Exceptionstr)r   r   es      <C:\Users\joaquim\OneDrive\LojaOnline\blueprints\mesa_shop.pylistar_todas_mesasr      sq    .[[.
F$<=>CC0<	Y/00 .A'(#--.s"   %A  A   	A+	A& A+&A+z/api/salvar-mesaPOST)methodsc                  v   	 t        j                         } | j                  dg       }t        j                  d      }| j                  d      }| j                  dd       }|r|sNt	        ddd      dfd	t               v rr|j                          d
t               v rr|j                          S S S t               }|j                         }|j                  d      }|j                  d||f       |j                         }|r2|j                  d      r!|d   j                         j                         nd}	|j                          |	dv rt        |      dkD  rt        |      }
g }|D ]-  }	 |j                  t        |j                  dd                   / |	dk(  r |
dkD  rt#        t%        |      |
z  d      nd}n|rt'        |      nd}t)        t+        j*                         dz        }| d| d| }t-        |      D ]_  \  }}|j                  d      }|
dkD  rd|
 dnd}| | }|j                  d      }|}|dk(  r|nd}|j                  d||||||||f       a n|D ]  }|j                  d      }|j                  d      }|j                  d      }|j                  d      }t)        t+        j*                         dz        }|j                  d||||||||f        |j/                          t	        ddd      d	t               v r|r|j                          d
t               v r|r|j                          S S S # t         $ r |j                  d       Y w xY w# t         $ r}t1        d |d!       t3        j4                          t	        dt7        |      d      d"fcY d }~d	t               v rr|j                          d
t               v rr|j                          S S S d }~ww xY w# d	t               v rr|j                          d
t               v rr|j                          w w w xY w)#Nprodutosr   	nropedidoclasseFu,   Produtos ou número da mesa não informados.)sucessomensagemi  cursorconnT
dictionaryz`SELECT formadecobrar FROM classificacao WHERE nomeclassificacao = %s AND id_cliente = %s LIMIT 1formadecobrarnormal)mediamaior   precor   r'      i  _nomez1/  qtdz
                    INSERT INTO mesa (mesanro, produto, preco, quantidade, codigoproduto, classe, id_cliente, nrolancamento)
                    VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
                    codigoprodutoz*Produtos enviados para a mesa com sucesso!z"[ERRO] ao salvar produtos na mesa:flushr   )r   get_jsonr   r   r   localscloser	   r!   executefetchonelowerstriplenappendfloatr   roundsummaxinttime	enumeratecommitprint	traceback	print_excr   )datar   r   mesanror   r!   r"   cursor_class	class_rowr%   partesprecosprodvalor_principalnrolancamentocodigo_multiparteidxnome_originalprefixor-   r0   r1   preco_gravarr*   r   s                            r   salvar_mesarV      s   O!88J+[[.
((;'(D)wu:hijlooJ vxFLLNVX$JJL #'M z{{d{3nZ 	
 !))+	 Y]]?; o&,,.446 	
 	..3x=13D]FF %MM%!(<"=> !
 'DJQJ%Ff(<a"@TU17#f+Q		d 23M#*)1VHAm_ E&x0	T $ 0,2QJBvha.B!=/2hhuo 125( dL#}fjZgh 1 !xx')hhuo $ 9 #DIIK$$6 7 dE3vzS`a ! 	45abc vxFLLNVX$JJL #'c ! %MM!$%T  D2ATB5c!f=>CCvxFLLNVX$JJL #'D
 vxFLLNVX$JJL #'s]   A1M) 2B<M) /*ME0M) M&"M) %M&&M) )	O52:O0,O5-O8 0O55O8 8A P8z
/mesa_testc                      t        d      S )Nzmesa_test.html)r        r   	mesa_testrZ   s   s     +,,rY   z/mesac                     t        j                  d      } t        d|  d       t        |       }|j                  dd      }t        d| d       g }t	               }d }	 t               }|j                  d      }|j                  d	| f       |j                         }|j                  d
| f       |j                         }t        t	        d |D                    }	 |j                  d| f       |j                         }t        d| d       |j                          |j                          t        d| ||||      S # t        $ r}	t        d|	 d       Y d }	~	Od }	~	ww xY w# t        $ r}
t        d|
d       Y d }
~
Sd }
~
ww xY w)Nr   u$   [LOG] (mesa) id_cliente na sessão: Tr2   r-   z
Minha Lojaz[LOG] (mesa) nome_fantasia: r#   zLSELECT * FROM classificacao WHERE id_cliente = %s ORDER BY nomeclassificacaoz7SELECT DISTINCT mesanro FROM mesa WHERE id_cliente = %sc              3   J   K   | ]  }|j                  d       |d      yw)rI   N)r   ).0rows     r   	<genexpr>zmesa.<locals>.<genexpr>   s$     %m
cggV_N`Nlc)n
s   #
#zLSELECT * FROM configuracao WHERE id_cliente = %s ORDER BY chave DESC LIMIT 1z%[LOG] (mesa) configuracao carregada: z[ERRO] ao buscar configuracao: u<   [ERRO] ao buscar classificações ou mesas para o carrossel:z	mesa.html)r   nome_fantasiaclassificacoesmesas_com_registroconfig)r   r   rE   r   setr	   r!   r7   fetchalllistr8   r   r6   r   )r   
dados_lojar`   ra   rb   rc   r"   cur
mesas_rowse_confr   s              r   mesark   y   s    \*J	0
=TJ!*-JNN6<8M	(
8ENF]zkkTk*ZM	
 MPZ}]\\^
!#%m
%m"mn	JKK^ \\^F9&B$O 			

 #%-   	J3F8<DII	J  ]LaW[\\]sC   "A=E*  3E  E* 	E'E"E* "E''E* *	F3FFz0/produtos_por_classificacao/<nome_classificacao>c                 v   t         j                  j                  d|  d       t         j                  j                          d }d }	 t	        dd       t	        d|  dt        |        dd       t        j                  d	|       j                         }t               }|j                  d
      }t        j                  d      }t	        d| d       |sNt	        dd       t	        dd       t        ddi      df|r|j                          |r|j                          S S t	        d||fd       |j                  d||f       |j!                         }t	        d| d       |sZt	        d|  d| d       t	        dd       t        dd|  d| i      df|r|j                          |r|j                          S S |d   }t	        d| d       t	        d||fd       |j                  d||f       |j#                         }t	        d| d       |s1|j                  d       |j#                         }t	        d| d       t	        dd       t        |      |r|j                          |r|j                          S S # t$        $ rv}	t	        d |	d       t'        j(                          t	        dd       t        dt+        |	      i      d!fcY d }	~	|r|j                          |r|j                          S S d }	~	ww xY w# |r|j                          |r|j                          w w xY w)"NzK[DEBUG] Entrou na rota /produtos_por_classificacao com nome_classificacao: 
uS   
==================== INÍCIO LOG PRODUTOS POR CLASSIFICAÇÃO ====================Tr2   z+[LOG] nome_classificacao recebido na URL: 'z	' (type: )NFKCr#   r   u   [LOG] id_cliente na sessão: u-   [ERRO] id_cliente não encontrado na sessão!uO   ==================== FIM LOG PRODUTOS POR CLASSIFICAÇÃO ====================
r   u%   id_cliente não encontrado na sessãor   zy[LOG] Executando SELECT nomeclassificacao, id_cliente FROM classificacao WHERE nomeclassificacao = %s AND id_cliente = %szhSELECT nomeclassificacao, id_cliente FROM classificacao WHERE nomeclassificacao = %s AND id_cliente = %sz)[LOG] Resultado do SELECT classificacao: u   [ERRO] Classificação 'u!   ' não encontrada para o cliente u   Classificação 'i  nomeclassificacaoz$[LOG] nomeclassificacao encontrada: zl[LOG] Executando SELECT chave, produto, preco, descricao FROM produtos WHERE classe = %s AND id_cliente = %szqSELECT chave, produto AS nome, preco, descricao AS observacao FROM produtos WHERE classe = %s AND id_cliente = %sz[LOG] Produtos retornados: z0SELECT DISTINCT classe, id_cliente FROM produtosz0[LOG] Todas as classes e id_cliente existentes: u.   [ERRO] ao buscar produtos por classificação:r   )sysstderrwriter3   rE   typeunicodedata	normalizer:   r	   r!   r   r   r   r6   r7   r8   re   r   rF   rG   r   )
nome_classificacaor"   r!   nome_classificacao_normr   r^   nome_classificacao_dbr   todas_classesr   s
             r   produtos_por_classificacaor{      sO    JJ
UVhUiikl JJDFAdlpq9:L9MYW[\nWoVppqr	
 #."7"7@R"S"Y"Y"[z-[[.
-j\:$GANdlpqF$KLMsR` LLNJJL a 	 H$j1	

 	v$j1	
 oo9#?tL*+=*>>_`j_kl dlpq,-?,@@ablamno: LLNJJL 9 !$$7 845J4KLTXYz"J/	

 	"J/	
 ??$+H:6dCNNMN"OO-MD]OT\`a`hlmx  LLNJJL   .>N`hlmA'(#--LLNJJL . LLNJJL s@   B9J &A:J B#J 	LAL	LL 	LL 'L8)__doc__rq   rF   ru   flaskr   r   r   r   r   
decoratorsr   databaser	   repositories.mesa_repor
   services.dados_lojar   rB   __name__mesa_shop_bprouter   rV   rZ   rk   r{   rX   rY   r   <module>r      s   " 
   G G %  ? 0 h/ %&.  '. &9P  :Pf L!-  "- G(  (V FGH  HHrY   