o
    6ÝSiÄ  ã                   @   s  d dl mZ d dlmZ d dlmZ d dlmZmZ ddl	m
Z
mZ G dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS ) é    )Úrender)ÚAPIView)ÚResponse)ÚstatusÚpermissionsé   )Ú
EdefClientÚEdefClientErrorc                   @   s(   e Zd ZdZejgZdd„ Zdd„ ZdS )ÚInvoiceRootViewuˆ   
    GET  -> statut du service de facturation e-MCF (proxy /api/invoice/)
    POST -> crÃ©er une facture (proxy POST /api/invoice/)
    c              
   C   óT   t ƒ }z	| ¡ }t|ƒW S  ty) } ztdt|ƒitjd�W  Y d }~S d }~ww ©NÚdetail©r   )r   Zget_invoice_statusr   r	   Ústrr   ÚHTTP_502_BAD_GATEWAY©ÚselfÚrequestÚclientÚdataÚe© r   úBC:\Users\glodi\PycharmProjects\facturationDaniel\leon\dgi\views.pyÚget   ó   
"€ÿzInvoiceRootView.getc              
   C   sb   t ƒ }|j}z| |¡}t|tjd�W S  ty0 } ztdt|ƒitjd�W  Y d }~S d }~ww )Nr   r   )	r   r   Úcreate_invoicer   r   ÚHTTP_201_CREATEDr	   r   r   )r   r   r   Úpayloadr   r   r   r   r   Úpost   s   
"€ÿzInvoiceRootView.postN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚIsAuthenticatedÚpermission_classesr   r   r   r   r   r   r
      s
    r
   c                   @   ó    e Zd ZdZejgZdd„ ZdS )ÚInvoiceDetailViewuN   
    GET -> rÃ©cupÃ©rer une facture en attente (proxy /api/invoice/{uid})
    c              
   C   óV   t ƒ }z
| |¡}t|ƒW S  ty* } ztdt|ƒitjd�W  Y d }~S d }~ww r   )r   Zget_invoicer   r	   r   r   r   ©r   r   Úuidr   r   r   r   r   r   r   -   ó   

"€ÿzInvoiceDetailView.getN)r   r    r!   r"   r   r#   r$   r   r   r   r   r   r&   '   ó    r&   c                   @   r%   )ÚInvoiceConfirmViewz�
    PUT -> confirmer une facture (proxy /api/invoice/{uid}/CONFIRM)
    Body attendu:
    {
      "total": ...,
      "vtotal": ...
    }
    c              
   C   s^   t ƒ }|j}z| ||¡}t|ƒW S  ty. } ztdt|ƒitjd�W  Y d }~S d }~ww r   )r   r   Zconfirm_invoicer   r	   r   r   r   )r   r   r)   r   r   r   r   r   r   r   ÚputA   s   
"€ÿzInvoiceConfirmView.putN©r   r    r!   r"   r   r#   r$   r-   r   r   r   r   r,   6   s    r,   c                   @   r%   )ÚInvoiceCancelViewzQ
    PUT -> annuler une facture en attente (proxy /api/invoice/{uid}/CANCEL)
    c              
   C   r'   r   )r   Zcancel_invoicer   r	   r   r   r   r(   r   r   r   r-   Q   r*   zInvoiceCancelView.putNr.   r   r   r   r   r/   K   r+   r/   c                   @   ó   e Zd ZejgZdd„ ZdS )ÚInfoStatusViewc              
   C   r   r   )r   Zinfo_statusr   r	   r   r   r   r   r   r   r   r   _   r   zInfoStatusView.getN©r   r    r!   r   r#   r$   r   r   r   r   r   r1   \   ó    r1   c                   @   r0   )ÚInfoTaxGroupsViewc              
   C   r   r   )r   Zinfo_tax_groupsr   r	   r   r   r   r   r   r   r   r   k   r   zInfoTaxGroupsView.getNr2   r   r   r   r   r4   h   r3   r4   c                   @   r0   )ÚInfoInvoiceTypesViewc              
   C   r   r   )r   Zinfo_invoice_typesr   r	   r   r   r   r   r   r   r   r   w   r   zInfoInvoiceTypesView.getNr2   r   r   r   r   r5   t   r3   r5   c                   @   r0   )ÚInfoPaymentTypesViewc              
   C   r   r   )r   Zinfo_payment_typesr   r	   r   r   r   r   r   r   r   r   ƒ   r   zInfoPaymentTypesView.getNr2   r   r   r   r   r6   €   r3   r6   c                   @   r0   )ÚInfoClientTypesViewc              
   C   r   r   )r   Zinfo_client_typesr   r	   r   r   r   r   r   r   r   r   �   r   zInfoClientTypesView.getNr2   r   r   r   r   r7   Œ   r3   r7   c                   @   r0   )ÚInfoReferenceTypesViewc              
   C   r   r   )r   Zinfo_reference_typesr   r	   r   r   r   r   r   r   r   r   ›   r   zInfoReferenceTypesView.getNr2   r   r   r   r   r8   ˜   r3   r8   c                   @   r0   )ÚInfoItemTypesViewc              
   C   r   r   )r   Zinfo_item_typesr   r	   r   r   r   r   r   r   r   r   §   r   zInfoItemTypesView.getNr2   r   r   r   r   r9   ¤   r3   r9   c                   @   r0   )ÚInfoCurrencyRatesViewc              
   C   r   r   )r   Zinfo_currency_ratesr   r	   r   r   r   r   r   r   r   r   ³   r   zInfoCurrencyRatesView.getNr2   r   r   r   r   r:   °   r3   r:   N)Údjango.shortcutsr   Úrest_framework.viewsr   Úrest_framework.responser   Úrest_frameworkr   r   Zedef_clientr   r	   r
   r&   r,   r/   r1   r4   r5   r6   r7   r8   r9   r:   r   r   r   r   Ú<module>   s"    