
    1e              	       v   d dl Z 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 d dlmZm
Z d dlmZ d dl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m Z m!Z!mZ d d
l"m#Z# 	 de$e%         de&e%         de$e%         de&e         fdZ'de$e%         de$e%         de&e         fdZ(de&e         de)fdZ*defdZ+d Z,dS )    N)Session)logger)settings)parsePartnerTypeSub)	Pricelist)get_sync_engine)PartnerShippingPaymentSalesOrderTypePartnerAgentPartnerAgentSalesOrderType)extract_categorical_datamerge_with_current_db_stater   )hash_passwordpartnersprice_listssales_orderspartner_sales_orderc           
         t          j        d           t                      }g }|D ]}|j        D ]}|j        D ]}|j        | vrt          |j        j                  }	|	|vr*t          |j	        j                  }
|
|
                                vrZ||
         }||vrg|                    t          |j        j        |j        |                     |S )Nz!importing sales order for partner)codepartner_numpricelist_code)r   infoprice_listing_price_list_mapCustomerImp_CustomerPossibleOrderTypesnumberintr   r   PriceListingkeysappendr   )r   r   r   r   mappingsales_order_typespartnercustomersales_ordersales_order_nrprice_listing
price_lists               \/Users/daniilossinkin/PycharmProjects/ShopsBackend/src/data/synchronisation/partner_agent.pyprocess_sales_orderr.   "   s    K3444*,,G&  ( 	 	H'F  >11!$[%?%D!E!E!55 #K$<$A B B 66$]3
[00!(()(7<$+N'1     #	4     partners_numbersagents_numberspartner_relation_importc                 L     t          j        d            fd|D             S )NzImporting partners relationsc                     g | ]j}|j         D ]`}|j        D ]V}|j        j        d k    rDt	          |j        j                  v r)|j        v 6t          |j        |j        j                  WakS )Salesrepresentative)r   	agent_num)r   PartnerRelationsTypenamer!   Targetr    r   ).0r'   r(   relationr1   r0   s       r-   
<listcomp>z,process_partner_relation.<locals>.<listcomp>P   s       
 (   1  =!6668?)**n<<~!111 	o,	
 	
 	
 21111r/   )r   r   )r0   r1   r2   s   `` r-   process_partner_relationr>   I   sI    
 K.///    
 /   r/   partners_import	passwordsc           	      *   g }t          j        d           | D ]}t          |j                  dk     rdx}}|j        D ]2}|j        j        dk    r|j        }|j        j        dk    r|j        }23|j        d         }|j        |j	        }	}d }
t          |j
                  dk    r)t          di t          |j
        d         j                  }
|
r|
j        st          dd	
          }
|j        j        }|sd}|j        j        j        r$t'          di t          |j        j                  }nt'          dd	
          }|j        |                                v r||j                 }nt-          |j                  }|                    t1          di d|j        d|j        d|j        d|j        j        d|j        j        d|j        j        j        d|j        j        j        d|d|d|	d|d|d|d|
d|d|j                   |S )NzImporting partners    EmailTelefone   r   z-1unknown)r   designationr   r9   usernamestreetcitylandiso_codeemailclassification1classification2password_hashtelefonshippingpaymentsurcharge_codeallow_orders ) r   r   lenr   CommunicationDataMethoddescriptionnormalizedCommDatarO   rP   PartnerAccountingDatar   r   SalesPaymentTermsrH   Imp_SizeSurchargeListingr   deliveryDataInfoShippingTermsr   r    r#   r   r$   r
   r9   addressDatarJ   rK   CountryisoCodeallowOrders)r?   r@   r   r'   	telephonerN   communicationcustomer_datarO   rP   rT   rU   rS   passwords                 r-   process_partnerrj   ^   s    H
K$%%%" 7
 7
w  1$$	E$6 	 	M#/7::%8%1Z??)<		(++8+H-Jgw,--11mm 89VWX9Y9k l lmmG 	@g1 	@4Y???G&?D 	N)7C 	Bii":=;Y;g"h"hiiHHTyAAAH >Y^^---- 0HH$W^44H   #NN\\ ! *11	
 (-- (0<< !,4<< e !0 !0 'h "	 "    .~  +66!	
 	
 	
 	
( Or/   sessionc                 H   t          t          j        t                    }t          t          j        t
                    }t          t          j        t                    }d |                     t                    
                                D             }t          |j	        |          }t          t          d |                     t                    
                                                    }t          t          d |                     t                    
                                                    }t          t          d |                    }t          t          d |                     t                     
                                                    }	t#          |t%          |          |	|j	                  }
t'          |||j	                  }t)          |	           t+          | |||
           |                                  |                                  d S )Nc                 (    i | ]}|j         |j        S rW   )r   rQ   )r;   r'   s     r-   
<dictcomp>z'import_partner_data.<locals>.<dictcomp>   s0        	W2  r/   c                     | j         S N)r   ps    r-   <lambda>z%import_partner_data.<locals>.<lambda>   s    AF r/   c                     | j         S rp   )r6   )as    r-   rs   z%import_partner_data.<locals>.<lambda>   s    q{ r/   c                     | j         S rp   )r   rq   s    r-   rs   z%import_partner_data.<locals>.<lambda>   s     r/   c                 *    t          | j                  S rp   )r!   r   )ss    r-   rs   z%import_partner_data.<locals>.<lambda>   s    S[[ r/   )r   r   import_files_xml_partnerparse_partner!import_files_xml_partner_relationparse_relation*import_files_xml_partner_sales_order_typesparse_sales_orderqueryr
   allrj   setmapr   r   r   r.   listr>   printr   commitclose)rk   partner_datapartner_relation_importedpartner_sales_order_importedr@   r   r   agentspartner_numbersr   r   partner_relationss               r-   import_partner_datar      s   :MJJL %h&PR` a a#()\^o#p#p  }}W--1133  I
 |3Y??Hc**GMM),D,D,H,H,J,JKKLLK**GMM%,@,@,D,D,F,FGGHHF#55x@@AAOs00'--2O2O2S2S2U2UVVWWL-otK?P?PR^.J.RT T0&JcJkll	,	   NNMMOOOOOr/   c                  @    dfd} fd |             D             S )Nzvertreter_listing_listung.csvc               3      K   t          d          5 } t          j        | g d          D ]}|V  	 d d d            d S # 1 swxY w Y   d S )Nr)rC   ListingListungrC   )opencsv
DictReader)filerowfilenames     r-   read_csvz.price_listing_price_list_map.<locals>.read_csv   s      (C   	D~d,J,J,JKK  					 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                 r    i | ]3}t          |d                    xdk    t          |d                   4S )r   i  r   )r!   )r;   r   listings     r-   rn   z0price_listing_price_list_map.<locals>.<dictcomp>   sL       SY-@-@"@'S!H!H 	C	NW!H!H!Hr/   rW   )r   r   r   s    @@r-   r   r      sS    .H    
   8::   r/   )-r   sqlalchemy.ormr   logurur   
src.configr   src.data.imports.schema.partnerr   rz   r   Import_Partner(src.data.imports.schema.partner_relationr|   Import_PartnerRelation0src.data.imports.schema.partner_sales_order_typer~   Import_PartnerSalesOrdersrc.data.model.db.articler   src.data.model.db.connectionr	   src.data.model.db.partner_agentr
   r   r   r   r   r   r   hashlibsrc.data.synchronisation.utilsr   r   src.utils.jwtr   r   r!   r   r.   r>   dictrj   r   r   rW   r/   r-   <module>r      s<   



 " " " " " "             d d d d d d d d v v v v v v v v/ / / / / / / / / / / / / / 8 8 8 8 8 8                   g g g g g g g g g g ' ' ' ' ' '$c($#Y$ #h$ "":;	$ $ $ $Nc(C "&&<!=   *<T.%9 <d < < < <~    @    r/   