
    i!                        d 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  ede      Zej#                  d      e
d	               Zej#                  d
dg      e
d               Zej#                  ddg      e
d               Zej#                  ddg      e
d               Zej#                  ddg      e
d               Zej#                  ddg      e
d               Zy)z#Product catalog pages and JSON API.    N)	Blueprintjsonifyrender_templaterequestsession)login_required)conectar)obter_dados_lojacatalogz/cadastrar-produtoc                      t        j                  d      } t        |       }|j                  dd      }t        d| |      S )u   Página para cadastrar produtos
id_clientenomez
Minha Lojazcadastrar_produto.html)r   nome_fantasia)r   getr
   r   )r   
dados_lojar   s      :C:\Users\joaquim\OneDrive\LojaOnline\blueprints\catalog.pycadastrar_produto_viewr      s=     \*J!*-JNN6<8M3
Zghh    z/api/salvar-produtoPOST)methodsc                     d} d}	 t         j                  xs i }|j                  dd      j                         }|j                  dd      }|j                  dd      j                         j	                         }|j                  dd      }|j                  d	d
      }|j                  dd      }|j                  dd      }	|j                  dd      }
|j                  dd      }|j                  dd      }|r|s5t        ddd      df|r|j                          | r| j                          S S t               } | j                         }t        j                  d      }|j                  d|||||||	|
|||f       | j                          |j                  }t        d| d| d| d       t        dd| d| dd      |r|j                          | r| j                          S S # t        j                  j                   $ rK}t        d |       t        dd!d      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)#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G( 1BG( (II I!I II 'I:z/api/listar-produtosGETc                  D   d} d}	 t               } | j                  d      }t        j                  d      }|j	                  d|f       |j                         }t        d|d      |r|j                          | r| j                          S S # t        j                  j                  $ rK}t        d|       t        dd	d
      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)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 C5*C0C5C8 0C55C8 8'Dz/api/obter-produto/<int:chave>c                    d}d}	 t               }|j                  d      }t        j                  d      }|j	                  d| |f       |j                         }|r3t        d|d      |r|j                          |r|j                          S S t        ddd	      d
f|r|j                          |r|j                          S S # t        j                  j                  $ rK}t        d|       t        ddd	      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)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   |   sB    DFz-[[.
 J	
 //#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 D-"D(=D->D0 (D--D0 0'Ez/api/editar-produto/<int:chave>PUTc                 `   d}d}	 t         j                  xs i }|j                  dd      j                         }|j                  dd      }|j                  dd      j                         j	                         }|j                  dd      }|j                  d	d
      }|j                  dd      }	|j                  dd      }
|j                  dd      }|j                  dd      }|j                  dd      }|r|s5t        ddd      df|r|j                          |r|j                          S S t               }|j                         }t        j                  d      }|j                  d||||||	|
|||| |f       |j                          |j                  dkD  rIt        d| d|  d       t        dd| dd      |r|j                          |r|j                          S S t        ddd      d f|r|j                          |r|j                          S S # t        j                  j                   $ rK}t        d!|       t        dd"d      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)$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H 1BH &H J8I>JJ >JJ 'J-z /api/excluir-produto/<int:chave>DELETEc                 4   d}d}	 t               }|j                  d      }t        j                  d      }|j	                  d| |f       |j                         }|s5t        ddd      d	f|r|j                          |r|j                          S S |j	                  d
| |f       |j                          t        d|d    d|  d       t        dd|d    dd      |r|j                          |r|j                          S S # t        j                  j                  $ rK}t        d|       t        ddd      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)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-[[.
ORWYcQd	
 //#u6OPQSVV LLNJJL  	RUZ\fTg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 E-"E(=E->E0 (E--E0 0'F)__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   