
    i!                        S r SSKrSSKJrJrJrJrJr  SSK	J
r
  SSKJr  SSKJr  \" S\5      r\R#                  S5      \
S	 5       5       r\R#                  S
S/S9\
S 5       5       r\R#                  SS/S9\
S 5       5       r\R#                  SS/S9\
S 5       5       r\R#                  SS/S9\
S 5       5       r\R#                  SS/S9\
S 5       5       rg)z#Product catalog pages and JSON API.    N)	Blueprintjsonifyrender_templaterequestsession)login_required)conectar)obter_dados_lojacatalogz/cadastrar-produtoc                  |    [         R                  " S5      n [        U 5      nUR                  SS5      n[        SXS9$ )u   Página para cadastrar produtos
id_clientenomez
Minha Lojazcadastrar_produto.html)r   nome_fantasia)r   getr
   r   )r   
dados_lojar   s      blueprints/catalog.pycadastrar_produto_viewr      s:     \*J!*-JNN6<8M3
hh    z/api/salvar-produtoPOST)methodsc                  l   Sn Sn [         R                  =(       d    0 nUR                  SS5      R                  5       nUR                  SS5      nUR                  SS5      R                  5       R	                  5       nUR                  SS5      nUR                  S	S
5      nUR                  SS5      nUR                  SS5      n	UR                  SS5      n
UR                  SS5      nUR                  SS5      nU(       a  U(       d?  [        SSS.5      S4U(       a  UR                  5         U (       a  U R                  5         $ $ [        5       n U R                  5       n[        R                  " S5      nUR                  SUUUUUUU	U
UUU45        U R                  5         UR                  n[        SU SU SU S35        [        SSU SU S3S.5      U(       a  UR                  5         U (       a  U R                  5         $ $ ! [        R                  R                    aU  n[        S U5        [        SS!S.5      S"4s SnAU(       a  UR                  5         U (       a  U R                  5         $ $ SnAff = f! U(       a  UR                  5         U (       a  U R                  5         f f = f)#z+Salva um novo produto na tabela de produtosNproduto precor   classeporkiloNao
impressora   cfop5102ncmdisplayvendaliberadaSim	descricaoF+   Classe e nome do produto são obrigatóriossucessoerro  r   z
            INSERT INTO produtos (produto, preco, classe, porkilo, impressora, cfop, ncm, display, vendaliberada, descricao, id_cliente)
            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
        z[PRODUTO CADASTRADO]     (código: z
, classe: )T	Produto 'u$   ' cadastrado com sucesso! (Código: r)   mensagem
[DB ERROR]z(Erro ao salvar produto no banco de dados  )r   jsonr   stripupperr   closer	   cursorr   executecommit	lastrowidprintmysql	connectorError)connr7   dadosr   r   r   r   r   r    r"   r#   r$   r&   r   chave_geradadb_errs                   r   salvar_produtorC      sh    DF8"))Ir*002		'1%8R(..0668))Iu-YY|Q/
yy(iir"))Iq)		/59IIk2.	Wu6cdegjjN LLNJJL O z[[.

 	
( 	''%gYk,zRXQYYZ[\IgY>bcobppq*rs
 LLNJJL  ??   dlF#52\]^`ccc LLNJJL d
 LLNJJL s7   DH 
BH I?*I:I?J :I??J 1J3z/api/listar-produtosGETc                  ~   Sn Sn [        5       n U R                  SS9n[        R                  " S5      nUR	                  SU45        UR                  5       n[        SUS.5      U(       a  UR                  5         U (       a  U R                  5         $ $ ! [        R                  R                   aU  n[        SU5        [        SS	S
.5      S4s SnAU(       a  UR                  5         U (       a  U R                  5         $ $ SnAff = f! U(       a  UR                  5         U (       a  U R                  5         f f = f)z#Lista todos os produtos cadastradosNT
dictionaryr   z
            SELECT chave, produto, preco, classe, porkilo, impressora, cfop, ncm, 
                   display, vendaliberada, descricao
            FROM produtos
            WHERE id_cliente = %s
            ORDER BY produto
        )r)   produtosr1   FzErro ao listar produtosr(   r2   )r	   r7   r   r   r8   fetchallr   r6   r<   r=   r>   r;   )r?   r7   r   rH   rB   s        r   listar_produtosrJ   W   s    DFz-[[.
 M		
 ??$4X>? LLNJJL  ??   SlF#52KLMsRR LLNJJL S
 LLNJJL s0   AB D3DDD DD 1D<z/api/obter-produto/<int:chave>c                 
   SnSn [        5       nUR                  SS9n[        R                  " S5      nUR	                  SX45        UR                  5       nU(       a=  [        SUS.5      U(       a  UR                  5         U(       a  UR                  5         $ $ [        SSS	.5      S
4U(       a  UR                  5         U(       a  UR                  5         $ $ ! [        R                  R                   aU  n[        SU5        [        SSS	.5      S4s SnAU(       a  UR                  5         U(       a  UR                  5         $ $ SnAff = f! U(       a  UR                  5         U(       a  UR                  5         f f = f)u&   Obtém dados de um produto específicoNTrF   r   z
            SELECT chave, produto, preco, classe, porkilo, impressora, cfop, ncm, 
                   display, vendaliberada, descricao
            FROM produtos
            WHERE chave = %s AND id_cliente = %s
        )r)   r   F   Produto não encontrador(     r1   zErro ao obter produtor2   )r	   r7   r   r   r8   fetchoner   r6   r<   r=   r>   r;   chaver?   r7   r   r   rB   s         r   obter_produtorQ   |   s@    DFz-[[.
 	
 //#t@A LLNJJL  u6OPQSVV LLNJJL  ??   QlF#52IJKSPP LLNJJL Q
 LLNJJL s6   A&C C E9E	EE 	EE 1Fz/api/editar-produto/<int:chave>PUTc                    SnSn [         R                  =(       d    0 nUR                  SS5      R                  5       nUR                  SS5      nUR                  SS5      R                  5       R	                  5       nUR                  SS5      nUR                  S	S
5      nUR                  SS5      n	UR                  SS5      n
UR                  SS5      nUR                  SS5      nUR                  SS5      nU(       a  U(       d?  [        SSS.5      S4U(       a  UR                  5         U(       a  UR                  5         $ $ [        5       nUR                  5       n[        R                  " S5      nUR                  SUUUUUU	U
UUUU U45        UR                  5         UR                  S:  aS  [        SU SU  S35        [        SSU S3S.5      U(       a  UR                  5         U(       a  UR                  5         $ $ [        SSS.5      S 4U(       a  UR                  5         U(       a  UR                  5         $ $ ! [        R                  R                    aU  n[        S!U5        [        SS"S.5      S#4s SnAU(       a  UR                  5         U(       a  UR                  5         $ $ SnAff = f! U(       a  UR                  5         U(       a  UR                  5         f f = f)$zEdita um produto existenteNr   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Fr'   r(   r+   r   a  
            UPDATE produtos 
            SET produto = %s, preco = %s, classe = %s, porkilo = %s, 
                impressora = %s, cfop = %s, ncm = %s, display = %s, 
                vendaliberada = %s, descricao = %s
            WHERE chave = %s AND id_cliente = %s
        z[PRODUTO ATUALIZADO] r,   r-   Tr.   z' atualizado com sucesso!r/   rL   rM   r1   zErro ao editar produtor2   )r   r3   r   r4   r5   r   r6   r	   r7   r   r8   r9   rowcountr;   r<   r=   r>   )rP   r?   r7   r@   r   r   r   r   r   r    r"   r#   r$   r&   r   rB   s                   r   editar_produtorU      s    DF<"))Ir*002		'1%8R(..0668))Iu-YY|Q/
yy(iir"))Iq)		/59IIk2.	Wu6cdegjjV LLNJJL W z[[.
 	
0 	??Q)'+eWAFGt9WIMf9ghi LLNJJL  u6OPQSVV LLNJJL  ??   RlF#52JKLcQQ LLNJJL R
 LLNJJL s=   DI
 
BI
 I
 
J=(J8J=K  8J==K   1K1z /api/excluir-produto/<int:chave>DELETEc                    SnSn [        5       nUR                  SS9n[        R                  " S5      nUR	                  SX45        UR                  5       nU(       d?  [        SSS.5      S	4U(       a  UR                  5         U(       a  UR                  5         $ $ UR	                  S
X45        UR                  5         [        SUS    SU  S35        [        SSUS    S3S.5      U(       a  UR                  5         U(       a  UR                  5         $ $ ! [        R                  R                   aU  n[        SU5        [        SSS.5      S4s SnAU(       a  UR                  5         U(       a  UR                  5         $ $ SnAff = f! U(       a  UR                  5         U(       a  UR                  5         f f = f)zExclui um produtoNTrF   r   zASELECT produto FROM produtos WHERE chave = %s AND id_cliente = %sFrL   r(   rM   z9DELETE FROM produtos WHERE chave = %s AND id_cliente = %su   [PRODUTO EXCLUÍDO] r   r,   r-   r.   u   ' excluído com sucesso!r/   r1   zErro ao excluir produtor2   )r	   r7   r   r   r8   rN   r   r6   r9   r;   r<   r=   r>   rO   s         r   excluir_produtorX      s    DFz-[[.
ORWQd	
 //#u6OPQSVV LLNJJL  	RUZTgh$WY%7$8E7!LMIgi6H5IIa*bc
 LLNJJL  ??   SlF#52KLMsRR LLNJJL S
 LLNJJL s7   A(D AD F8FFF FF 1G)__doc__mysql.connectorr<   flaskr   r   r   r   r   
decoratorsr   databaser	   services.dados_lojar
   __name__
catalog_bprouter   rC   rJ   rQ   rU   rX    r   r   <module>rc      sD   )  G G %  0y(+
 &'i  (i '&:<  ;<~ (5':   ; F 2UGD"  E"J 3eWE@  F@F 4xjI!  J!r   