U
    i
                     @   s  d dl mZmZmZ d dlmZ edeZe Zej	ddgddd Z
ej	dd	gdd
d Zej	ddgddd Zej	ddgddd Zej	ddgddd Zej	dd	gddd Zej	ddgddd Zej	ddgddd Zej	ddgddd  Zej	dd	gdd!d" Zej	d#dgdd$d% Zej	d&dgdd'd( Zej	d&d	gdd)d* Zej	d+dgdd,d- Zd.S )/    )	Blueprintjsonifyrequest)BusinessCentralServiceZbusiness_centralz
/customersGET)methodsc               
   C   sV   zt  } t| dfW S  tk
rP } ztdt|idf W Y S d}~X Y nX dS )z(Obtiene una lista de todos los clientes.   error  N)serviceget_customersr   	Exceptionstr)Z	customerse r   mC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\api\controller\business_central_controller.pyr      s
    r   POSTc               
   C   sx   z8t jstddidfW S t  } t| }t|dfW S  tk
rr } ztdt|idf W Y S d}~X Y nX dS )zCrea un nuevo cliente.r	   "La solicitud debe ser de tipo JSON     r
   N)r   is_jsonr   get_jsonr   create_customerr   r   )dataZnew_customerr   r   r   r   r      s    
r   z/customers/<int:customer_id>PATCHc              
   C   sz   z:t jstddidfW S t  }t| |}t|dfW S  tk
rt } ztdt|idf W Y S d}~X Y nX dS )zModifica un cliente existente.r	   r   r   r   r
   N)r   r   r   r   r   modify_customerr   r   )customer_idr   Zupdated_customerr   r   r   r   r   $   s    r   DELETEc              
   C   sP   zt |  W dS  tk
rJ } ztdt|idf W Y S d}~X Y nX dS )zElimina un cliente.    r	   r
   N)r   delete_customerr   r   r   )r   r   r   r   r   r!   0   s
    
r!   z/itemsc               
   C   sV   zt  } t| dfW S  tk
rP } ztdt|idf W Y S d}~X Y nX dS )u&   Obtiene una lista de todos los ítems.r   r	   r
   N)r   	get_itemsr   r   r   )itemsr   r   r   r   r"   ;   s
    r"   c               
   C   sx   z8t jstddidfW S t  } t| }t|dfW S  tk
rr } ztdt|idf W Y S d}~X Y nX dS )u   Crea un nuevo ítem.r	   r   r   r   r
   N)r   r   r   r   r   create_itemr   r   )r   Znew_itemr   r   r   r   r$   D   s    
r$   z	/contactsc               
   C   sV   zt  } t| dfW S  tk
rP } ztdt|idf W Y S d}~X Y nX dS )z)Obtiene una lista de todos los contactos.r   r	   r
   N)r   get_contactsr   r   r   Zcontactsr   r   r   r   r%   R   s
    r%   z/salespersonsc               
   C   sV   zt  } t| dfW S  tk
rP } ztdt|idf W Y S d}~X Y nX dS )z*Obtiene una lista de todos los vendedores.r   r	   r
   N)r   get_salespersonsr   r   r   )Zsalespersonsr   r   r   r   r'   ]   s
    r'   z/quotesc               
   C   sV   zt  } t| dfW S  tk
rP } ztdt|idf W Y S d}~X Y nX dS )u#   Obtiene las líneas de cotización.r   r	   r
   N)r   get_quote_linesr   r   r   )quotesr   r   r   r   r(   h   s
    r(   c               
   C   sx   z8t jstddidfW S t  } t| }t|dfW S  tk
rr } ztdt|idf W Y S d}~X Y nX dS )u   Crea una nueva cotización.r	   r   r   r   r
   N)r   r   r   r   r   create_quoter   r   )r   Z	new_quoter   r   r   r   r*   q   s    
r*   z,/quotes/<system_id>/<quote_no>/<int:line_no>c              
   C   sT   zt | || W dS  tk
rN } ztdt|idf W Y S d}~X Y nX dS )u.   Elimina una línea de cotización específica.r   r	   r
   N)r   delete_quote_liner   r   r   )Z	system_idZquote_noZline_nor   r   r   r   r+   }   s
    r+   z/contacts-bufferc               
   C   sV   zt  } t| dfW S  tk
rP } ztdt|idf W Y S d}~X Y nX dS )z!Obtiene los contactos del buffer.r   r	   r
   N)r   get_contact_bufferr   r   r   r&   r   r   r   r,      s
    r,   c               
   C   sx   z8t jstddidfW S t  } t| }t|dfW S  tk
rr } ztdt|idf W Y S d}~X Y nX dS )z$Crea un nuevo contacto en el buffer.r	   r   r   r   r
   N)r   r   r   r   r   create_contact_bufferr   r   )r   Znew_contactr   r   r   r   r-      s    
r-   z/opportunitiesc               
   C   sV   zt  } t| dfW S  tk
rP } ztdt|idf W Y S d}~X Y nX dS )z-Obtiene una lista de todas las oportunidades.r   r	   r
   N)r   get_opportunitiesr   r   r   )opportunitiesr   r   r   r   r.      s
    r.   N)flaskr   r   r   Z)App.api.services.business_central_Servicer   __name__business_central_routerr   router   r   r   r!   r"   r$   r%   r'   r(   r*   r+   r,   r-   r.   r   r   r   r   <module>   s>   

















