
    +e}                     .   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mZmZmZmZmZmZmZmZm Z!m"Z#m$Z%m&Z'm(Z)m*Z+m,Z-m.Z/m0Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7  G d	 d
e5          Z	 G d de5          Zdee         de8e         fdZ9dee         de:fdZ;dS )    )defaultdict)date)Sequence)OrderOrderDetail)SalesOrderTypeSubTypeTypeSubsemiramisSubcustomerDataTypeSubCustomerPartnerTypeSubcustomerOrderDataTypeSubinvoicingPartyDataTypeSubPartnerTypeSubDetailsTypeSubtotalQuantityTypeSub
UomTypeSubdateFromTypeSubdateUntilTypeSubimp_deliveryDateTypeSubItemTypeSubImp_ColorTypeSubImp_SizeTypeSubReferenceItemTypeSubSizeRegisterTypeSub)logger)BaseSchemaModel)Shopc                   V    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   dS )	r   quantity	date_fromdate_tocolorsizesize_registerreference_item_numberN)__name__
__module____qualname__int__annotations__r   str     L/Users/daniilossinkin/PycharmProjects/ShopsBackend/src/data/exports/order.pyr   r   "   sW         MMMOOOMMMJJJ
IIIr-   r   c                   D    e Zd ZU eed<   eed<   eed<   ee         ed<   dS )r   idtypepartnerdetailsN)r&   r'   r(   r)   r*   listr   r,   r-   r.   r   r   ,   s>         GGG
IIILLL+r-   r   unprocessed_orderreturnc              #   ~  K   dt           t                   dt           t                   fd}| D ]}t          t           t                             }|j        D ]"}||j                                     |           #|                                D ]/\  }}|t          |j	        ||j
         ||                    fV  0d S )Nr3   r6   c                     d | D             S )Nc                     g | ]h}t          |j        |j        j        j        |j        j        j        |j        j        j        |j        j        |j        j	        |j        j
                   iS ))r   r    r!   r"   r#   r$   r%   )r   r   article_detailarticledelivery_date_fromdelivery_date_tor"   coder#   r$   article_number).0details     r.   
<listcomp>zFpreprocess_order.<locals>.preprocess_order_details.<locals>.<listcomp>6   s}     
 
 
   /7J-5F+16*/$3A&,&;&J  
 
 
r-   r,   )r3   s    r.   preprocess_order_detailsz2preprocess_order.<locals>.preprocess_order_details5   s%    
 
 "
 
 
 	
r-   )r0   r1   r2   r3   )r4   DB_OrderDetailr   r   r3   sales_order_type_codeappenditemsr   r0   
partner_id)r5   rC   ordergrouped_by_order_typerA   sales_order_typer3   s          r.   preprocess_orderrL   4   s     
$~*> 
4CT 
 
 
 
 #   +D,@ A Am 	O 	OF!&">?FFvNNNN)>)D)D)F)F 	 	%g"E8%(0099	% % %     	 r-   c                    t          d |           }t          j        d|            t                      }|                    d           |                    d           |                    d           t          |           D ]\  }}t                      }|	                    t          |                     |                    t          t          |j                                       |                    t!          |j         d	
                     |                    t'          t)          d                               |j        D ]}d }|dk    r;t-          t/          d|j        d          t3          d|j        d                    }|                    t9          t;          |j        t?          d                    d|tA          dtC          |j"        d          tG          |j$        tK          |j&                            tO          |j(                                                 |)                    |           tU          |          c S d S )Nc                     | j         S )N)r0   )os    r.   <lambda>zgenerate_xml.<locals>.<lambda>S   s    !$ r-   zExporting order zen-US-XMLSchemaCompliantSINGLE_LANGUAGE
NORMALIZED)r>   )number)CustomerPartnerz-0)purchaseOrderi7B )Partner)invoicingPartyData201NONECET)specialValuer   timeZone)dateFrom	dateUntilstk)amountUom
DEFINITIONVARIANT_ITEMfalse)r>   collectionFlag)r>   SizeRegister)materialType	Imp_ColorImp_SizeReferenceItem)totalQuantitypriceOriginTypeimp_deliveryDateItem)+mapr   infoHeader
set_localeset_nlsModeset_dateTimeModerL   
SalesOrderset_TypeSalesOrderTypeset_customerDataCustomerDatarT   r2   set_customerOrderDataCustomerOrderr0   set_invoicingPartyDataInvoicingDatarV   r3   DeliveryDateDateFromr    DateTor!   add_DetailsSalesOrderDetailQuantityr   ra   rn   Colorr"   Sizer#   rf   r$   rj   r%   add_SalesOrderr+   )r5   order_numbersxmlrK   rI   sales_order_xmlrA   delivery_dates           r.   generate_xmlr   R   s   (9::M
K2=22333 ((CNN-...OO%&&&&&&#34E#F#F * *%$,,  5E!F!F!FGGG((o]b]jFkFkFk)l)l)lmmm--mUX///.Z.Z.Z[[[..-X_gmXnXnXnBoBoBo.pppm 	0 	0F M5(( ,%6@P[`aaa$&v~X]^^^! ! !
 '' "*&/sPU"W"W"W$0%2%3"'!'+2# # # "&!')56;O)P)P)P" " " '4#)#?' ' '  	    * ////3xxU* *r-   N)<collectionsr   datetimer   typingr   src.data.model.db.partner_agentr   DB_Orderr   rD   src.data.exports.schema.orderr   ru   r	   rw   r
   rq   r   ry   r   rT   r   r{   r   r}   r   rV   r   r   r   r   r   ra   r   r   r   r   r   r~   r   rn   r   r   r   r   r   rj   r   rf   logurur   #src.data.model.schemas.base_schemasr   src.data.model.schemasr   r4   rL   r+   r   r,   r-   r.   <module>r      s   # # # # # #             \ \ \ \ \ \ \ \                                         *       ? ? ? ? ? ? ' ' ' ' ' '    /       O   (: tE{    <3HX$6 33 3 3 3 3 3 3r-   