a
    0i$                     @   s   d dl mZmZmZmZmZmZmZmZ d dl	Z	d dl
mZ d dlZd dlmZ d dlZd dlmZ d dlmZmZmZ d dlmZmZmZmZmZmZmZ d dlZd dl	Z	e  dZd	Z d
d Z!dd Z"dd Z#dS )    )Flaskrender_template	send_fileaborturl_forjsonifyrequestsessionN)load_dotenv)secure_filename)user_has_access)subir_archivo_ftp_desde_requestview_pdf_fileverificar_actualizar_archivos)get_Catalogo_de_controlesinsert_Catalogo_de_controlesupdate_Catalogo_de_controlesdelete_Catalogo_de_controlesitem_existssearchitems+update_Catalogo_de_controles_TechnicalSheetzO/domains/sycelephant.com/public_html/file/Ventas/EUA/DMITEMS/CONTROLLER_CATALOGz'/Ventas/EUA/DMITEMS/CONTROLLER_CATALOG/c                 C   s"   t | }|rt|d }nd}|S )Nr   )r   int)itemresultcount r   O/var/www/html/src/App/Ventas_Module/VentasEUA/DataMaster/DMControllerCatalog.pyexisten_items#   s
    r   c                 C   s@   t | }|jdkr&td|  d ntd|  d|j  dS )z
    user_id = session.get('user_id')
    if not user_has_access(user_id, "Ventas", "delete"):
        message = "No tiene permisos para eliminar"
        return render_template("Security/AccessDened.html",message)
       zEl archivo en z  ha sido eliminado exitosamente.z"No se pudo eliminar el archivo en u   . Código de estado: N)requestsdeletestatus_codeprint)urlresponser   r   r   eliminar_archivo/   s    

r%   c                 C   s   | j ddgddd }|  ddd }| j d	d
gddd }| j dd
gddd }| j dd
gddd }| j ddgddd }dS )ud   
    Registra las rutas para la gestión de departamentos directamente en la aplicación Flask.
    zC/ventas/data_master/Catalogo_de_controles/listCatalogo_de_controlesGET)methodsc               
   S   sR   zt  } t| dfW S  tyL } z tdt|idfW  Y d}~S d}~0 0 dS )z
        user_id = session.get('user_id')
        if not user_has_access(user_id, "Ventas","read"):
            message = "No tiene permisos para visualizar este archivo"
            return render_template("Security/AccessDened.html",message)
        r   error  N)r   r   	Exceptionstr)TIPOSCONTROLESer   r   r   list_Catalogo_de_controlesG   s
    	zKregister_dmCatalogo_de_controles_routes.<locals>.list_Catalogo_de_controleszC/ventas/pdf_viewerCatalogo_de_controles/view/<path:filename_or_url>c                 S   s   t | S )u4   Endpoint para visualizar un archivo PDF específico.)r   )filename_or_urlr   r   r   ver_pdfCatalogo_de_controlesW   s    zMregister_dmCatalogo_de_controles_routes.<locals>.ver_pdfCatalogo_de_controlesz4/ventas/data_master/brakers/addCatalogo_de_controlesPOSTc            
   
   S   s&  t d} ztjd}tjd}tjd}tjd}tjd}t||||gsjtddid	fW S t|d
krtddid	fW S d }|rt||t	t
}|d r|d }ntd|d id	fW S t|||||}tddidfW S  ty  }	 z tdt|	idfW  Y d }	~	S d }	~	0 0 d S )Nuser_idr   descriptionpricetypeTechnicalSheetr(   "Todos los campos son obligatorios.     u"   El item ya existe en el catálogo.exitourl_webmensajemessagez,Catalogo de controles agregado exitosamente.   r)   )r	   getr   formfilesallr   r   r   ruta_pdfcarpetar   r*   r+   )
r2   r   r3   r4   r5   technicalSheetfilename	resultador   r-   r   r   r   add_Catalogo_de_controles^   s*    

zJregister_dmCatalogo_de_controles_routes.<locals>.add_Catalogo_de_controlesz//ventas/data_master/updateCatalogo_de_controlesc               
   S   s   zrt  } | d}| d}| d}| d}t||||gsTtddidfW S t|||| tdd	id
fW S  ty } z tdt|idfW  Y d}~S d}~0 0 dS )z)Actualiza un breaker en la base de datos.r   r3   r4   r5   r(   r7   r8   r=   z/Catalogo de Controles actualizado exitosamente.r   r)   N)r   get_jsonr?   rB   r   r   r*   r+   )datar   r3   r4   r5   r-   r   r   r   "update_Catalogo_de_controles_route   s    



zSregister_dmCatalogo_de_controles_routes.<locals>.update_Catalogo_de_controles_routezE/ventas/data_master/Catalogo_de_controles/deleteCatalogo_de_controlesc               
   S   s   zBt  } | d}|s*tddidfW S t| tddidfW S  tyz } z tdt|idfW  Y d	}~S d	}~0 0 d	S )
z'Elimina un control de la base de datos.r   r(   zEl campo Item es obligatorio.r8   r=   zControl eliminado exitosamente.r   r)   N)r   rI   r?   r   r   r*   r+   )rJ   r   r-   r   r   r   "delete_Catalogo_de_controles_route   s    
zSregister_dmCatalogo_de_controles_routes.<locals>.delete_Catalogo_de_controles_routezI/ventas/data_master/Catalogo_de_controles/actualizarCatalogo_de_controlesc                  S   s   zld} d}t dddtt| |dtd	}|d rBtd	|d
 idfW S td|d
   td|d
 idfW S W n^ ty } zFddl}tdt|  t|	  tdt|idfW  Y d}~S d}~0 0 dS )uN   Actualiza todas las Fichas técnicas verificando su existencia en el servidor.z@Consultas_SQL.Ventas.VentasEUA.DataMaster.DMControllerCatalogSQLr   ZCZE_ControllerCatalogItem_controllerr6   zhttps://file.sycelephant.com)	tablacampo_id	campo_urlupdate_functionruta_remotamodule_pathsearch_function_namebase_urlrD   r:   r=   r<   r   u   Error en actualización: r(   r)   r   Nu   Error en la actualización: )
r   r   rC   rD   r   r"   r*   	tracebackr+   
format_exc)rS   function_namerG   r-   rV   r   r   r   #updated_Catalogo_de_controles_route   s.    zTregister_dmCatalogo_de_controles_routes.<locals>.updated_Catalogo_de_controles_routeN)route)appr.   r0   rH   rK   rL   rY   r   r   r   'register_dmCatalogo_de_controles_routes@   s    


(

r\   )$flaskr   r   r   r   r   r   r   r	   osdotenvr
   ftplibZwerkzeug.utilsr   tempfile App.Security_Module.UserPasswordr   App.Subir_Archivor   r   r   Z@Consultas_SQL.Ventas.VentasEUA.DataMaster.DMControllerCatalogSQLr   r   r   r   r   r   r   r   rC   rD   r   r%   r\   r   r   r   r   <module>   s    ($	