U
    ԒFj+                     @   s  d Z ddlZddlmZmZmZmZmZ ddl	m
Z
mZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZ edeZd	d
 Zdd Ze de
edd Z!e de
edd Z"ej ddgde
edd Z#ej ddgde
edd Z$ej ddgde
edd Z%ej ddgde
edd  Z&ej d!d"gde
ed#d$ Z'ej d%dgde
ed&d' Z(ej d%dgde
ed(d) Z)ej d*dgde
ed+d, Z*ej d*dgde
ed-d. Z+ej d/d"gde
ed0d1 Z,dS )2u>   Páginas e APIs do catálogo retail (categoria, subcategoria).    N)	Blueprintjsonifyrender_templaterequestsession)login_requiredretail_only)conectar)obter_dados_loja)RetailCatalogErrorcriar_categoriacriar_subcategoriaeditar_categoriaeditar_subcategorialistar_categoriaslistar_subcategoriasobter_categoriaobter_subcategoriaset_categoria_ativoset_subcategoria_ativoretail_catalogc                   C   s
   t dS )N
id_cliente)r   get r   r   5/var/www/html/LojaOnline/blueprints/retail_catalog.py_id_cliente   s    r   c                  C   s<   t jd} | d ks| dkr d S t|   dkr8dS dS )Nativo )1truesim   r   )r   argsr   strstriplower)rawr   r   r   _parse_ativo_param   s    r'   z/cadastrar-categoria-retailc                  C   s(   t  } t| }|dd}td| |dS )Nnome
Minha Lojazcadastrar_categoria_retail.htmlr   nome_fantasiar   r
   r   r   r   
dados_lojar+   r   r   r   cadastrar_categoria_retail_view$   s    r/   z/cadastrar-subcategoriac                  C   s(   t  } t| }|dd}td| |dS )Nr(   r)   zcadastrar_subcategoria.htmlr*   r,   r-   r   r   r   cadastrar_subcategoria_view2   s    r0   z/api/retail/categoriasGET)methodsc               
   C   s   d } d }zz8t } | jdd}t|t t d}td|dW W PS  tjj	k
r } z(t
d| tdddd	f W Y W S d }~X Y nX W 5 |r|   | r|    X d S )
NT
dictionary)r   )sucessoZ
categorias
[DB ERROR]FzErro ao listar categoriasr5   erro  )closer	   cursorr   r   r'   r   mysql	connectorErrorprint)conncurrowsdb_errr   r   r   api_listar_categorias@   s    
0rD   POSTc               
   C   s4  d } d }zzHtjpi }t } | jdd}t|t |}|   td|ddW W S  t	k
r } z"tdt
|ddf W Y W S d }~X Y nz tjjk
r } zVtd| t|d	d d
krtddddf W Y $W 2S tddddf W Y W S d }~X Y nX W 5 |r |   | r.|    X d S )NTr3   z!Categoria cadastrada com sucesso.r5   idmensagemFr7     r6   errno&  '   Já existe uma categoria com este nome.  zErro ao salvar categoriar9   )r:   r   jsonr	   r;   r   r   commitr   r   r#   r<   r=   r>   r?   getattrr@   rA   dadosnew_iderrrC   r   r   r   api_criar_categoriaU   s(    
.
0rU   z)/api/retail/categorias/<int:categoria_id>c              
   C   s   d }d }zzPt }|jdd}t|t | }|sHtddddfW W dS td|dW W PS  tjjk
r } z(t	d| tdd	dd
f W Y W S d }~X Y nX W 5 |r|   |r|   X d S )NTr3   Fu   Categoria não encontrada.r7     )r5   Z	categoriar6   zErro ao obter categoriar9   )
r:   r	   r;   r   r   r   r<   r=   r>   r?   )categoria_idr@   rA   rowrC   r   r   r   api_obter_categoriap   s     
0rY   PUTc              
   C   s4  d }d }zzHtjpi }t }|jdd}t|t | | |  tdddW W S  t	k
r } z"tdt
|ddf W Y W S d }~X Y nz tjjk
r } zVtd| t|d	d d
krtddddf W Y $W 2S tddddf W Y W S d }~X Y nX W 5 |r |   |r.|   X d S )NTr3   z!Categoria atualizada com sucesso.r5   rH   Fr7   rI   r6   rJ   rK   rL   rM   zErro ao editar categoriar9   )r:   r   rN   r	   r;   r   r   rO   r   r   r#   r<   r=   r>   r?   rP   )rW   r@   rA   rR   rT   rC   r   r   r   api_editar_categoria   s(    
.
0r\   z//api/retail/categorias/<int:categoria_id>/ativoPATCHc              
   C   s8  d }d }z
zztjpi }|d}|d krBtddddfW W S t }|jdd}t|t | |rfdnd	 |	  tdd
dW W S  t
k
r } z"tdt|ddf W Y W ^S d }~X Y nL tjjk
r } z(td| tddddf W Y W S d }~X Y nX W 5 |r$|   |r2|   X d S )Nr   F   Campo ativo é obrigatório.r7   rI   Tr3   r!   r   zStatus da categoria atualizado.r[   r6   zErro ao atualizar categoriar9   )r:   r   rN   r   r   r	   r;   r   r   rO   r   r#   r<   r=   r>   r?   )rW   r@   rA   rR   r   rT   rC   r   r   r   api_categoria_ativo   s*    

.
0r_   z/api/retail/subcategoriasc               
   C   s   d } d }zzZtjd}|dkr(t|nd }t } | jdd}t|t |t	 d}t
d|dW W |S  ttfk
r   t
ddd	d
f Y W PS  tjjk
r } z(td| t
ddd	df W Y W S d }~X Y nX W 5 |r|   |  r|    X d S )NrW   )Nr   Tr3   )rW   r   )r5   ZsubcategoriasFu   categoria_id inválido.r7   rI   r6   zErro ao listar subcategoriasr9   )r:   r   r"   r   intr	   r;   r   r   r'   r   	TypeError
ValueErrorr<   r=   r>   r?   )r@   rA   rW   Z
cat_filterrB   rC   r   r   r   api_listar_subcategorias   s$    
0rc   c               
   C   s4  d } d }zzHtjpi }t } | jdd}t|t |}|   td|ddW W S  t	k
r } z"tdt
|ddf W Y W S d }~X Y nz tjjk
r } zVtd| t|d	d d
krtddddf W Y $W 2S tddddf W Y W S d }~X Y nX W 5 |r |   | r.|    X d S )NTr3   z$Subcategoria cadastrada com sucesso.rF   Fr7   rI   r6   rJ   rK   :   Já existe uma subcategoria com este nome nesta categoria.rM   zErro ao salvar subcategoriar9   )r:   r   rN   r	   r;   r   r   rO   r   r   r#   r<   r=   r>   r?   rP   rQ   r   r   r   api_criar_subcategoria   s(    
.
0re   z//api/retail/subcategorias/<int:subcategoria_id>c              
   C   s   d }d }zzPt }|jdd}t|t | }|sHtddddfW W dS td|dW W PS  tjjk
r } z(t	d| tdd	dd
f W Y W S d }~X Y nX W 5 |r|   |r|   X d S )NTr3   Fu   Subcategoria não encontrada.r7   rV   )r5   Zsubcategoriar6   zErro ao obter subcategoriar9   )
r:   r	   r;   r   r   r   r<   r=   r>   r?   )subcategoria_idr@   rA   rX   rC   r   r   r   api_obter_subcategoria   s     
0rg   c              
   C   s4  d }d }zzHtjpi }t }|jdd}t|t | | |  tdddW W S  t	k
r } z"tdt
|ddf W Y W S d }~X Y nz tjjk
r } zVtd| t|d	d d
krtddddf W Y $W 2S tddddf W Y W S d }~X Y nX W 5 |r |   |r.|   X d S )NTr3   z$Subcategoria atualizada com sucesso.r[   Fr7   rI   r6   rJ   rK   rd   rM   zErro ao editar subcategoriar9   )r:   r   rN   r	   r;   r   r   rO   r   r   r#   r<   r=   r>   r?   rP   )rf   r@   rA   rR   rT   rC   r   r   r   api_editar_subcategoria	  s(    
.
0rh   z5/api/retail/subcategorias/<int:subcategoria_id>/ativoc              
   C   s8  d }d }z
zztjpi }|d}|d krBtddddfW W S t }|jdd}t|t | |rfdnd	 |	  tdd
dW W S  t
k
r } z"tdt|ddf W Y W ^S d }~X Y nL tjjk
r } z(td| tddddf W Y W S d }~X Y nX W 5 |r$|   |r2|   X d S )Nr   Fr^   r7   rI   Tr3   r!   r   z"Status da subcategoria atualizado.r[   r6   zErro ao atualizar subcategoriar9   )r:   r   rN   r   r   r	   r;   r   r   rO   r   r#   r<   r=   r>   r?   )rf   r@   rA   rR   r   rT   rC   r   r   r   api_subcategoria_ativo$  s*    

.
0ri   )-__doc__mysql.connectorr<   flaskr   r   r   r   r   
decoratorsr   r   databaser	   services.dados_lojar
   services.retail_catalogr   r   r   r   r   r   r   r   r   r   r   __name__retail_catalog_bpr   r'   router/   r0   rD   rU   rY   r\   r_   rc   re   rg   rh   ri   r   r   r   r   <module>   sr   4
