
    {i                      R    d dl mZ d dlmZ ddlmZ  G d dej                        Zy)    )serializers)*handle_structure_invoicing_settings_change   )	Structurec                   >     e Zd Z G d d      Zd Zd Z fdZ xZS )"StructureInvoiceSettingsSerializerc                       e Zd ZeZg dZdgZy)'StructureInvoiceSettingsSerializer.Meta)idinvoicing_enabledreceipt_prefixinvoice_prefixdefault_vat_rater   N)__name__
__module____qualname__r   modelfieldsread_only_fields     3/backend/structures/serializers_invoice_settings.pyMetar
   	   s    
 !6r   r   c                 \    |xs dj                         }|st        j                  d      |S )N zReceipt prefix cannot be blank.stripr   ValidationErrorselfvalues     r   validate_receipt_prefixz:StructureInvoiceSettingsSerializer.validate_receipt_prefix   .    "##%--.OPPr   c                 \    |xs dj                         }|st        j                  d      |S )Nr   zInvoice prefix cannot be blank.r   r   s     r   validate_invoice_prefixz:StructureInvoiceSettingsSerializer.validate_invoice_prefix   r#   r   c                     |j                   }|j                  }d|_        d|_        	 t        |   ||      }d|_        t        |||       |S # d|_        w xY w)NTF)previous_invoicing_enabledprevious_default_vat_rate)r   r   _skip_receipt_sync_skip_receipt_backfill_signalsuperupdater   )r    instancevalidated_datar'   r(   updated_instance	__class__s         r   r,   z)StructureInvoiceSettingsSerializer.update    sn    %-%?%?"$,$=$=!&*#15.	0$w~hG*/H'2'A&?	

   +0H's   A 	A)r   r   r   r   r"   r%   r,   __classcell__)r0   s   @r   r   r      s!    	" 	"   r   r   N)rest_frameworkr   services.receipt_servicer   modelsr   ModelSerializerr   r   r   r   <module>r6      s     & O & )D)D & r   