
    |jR                    z   U d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ dej                   d	dej                   d
dej                   ddZddddddej                  ej                  gZdZdaded<   e G d d             Zd!dZd"dZd#dZd$dZd$dZ	 	 	 	 	 	 	 	 d%dZd&dZd'dZd'd Zy)(    )annotationsN)	dataclass)datetime)Any)BitrixClient)configDYNAMIC_	_STAGE_62	_STAGE_66	_STAGE_68)>   B   D   idtitleopportunitycreatedTimestageId
categoryIdi,  zdict[str, Any] | None_maps_cachec                  h    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   y)AccountingRowint	bitrix_idstrr   cost_articlesupplieramountdatecommentsstatuscategory_nameN)__name__
__module____qualname____annotations__     >/var/www/abs-group.kazgame-control.su/app/bitrix/accounting.pyr   r       s1    NJMK
IMKr(   r   c                    t        j                          }t        rt        d   |kD  rt        d   t        d   fS t        |       }t        |       }|t        z   ||da||fS )N
expires_at	stage_mapcost_article_map)r+   r,   r-   )timer   _load_stage_map_load_cost_article_mapMAPS_TTL_SEC)clientnowr,   r-   s       r)   get_lookup_mapsr4   -   sj    
))+C{<036;'5G)HHH'I-f5L(,K
 &&&r(   c                    t        |       \  }}| j                  dt        j                  dt	        t        j
                        it        ddid      }|D cg c]  }t        |||       c}S c c}w )Nzcrm.item.listz@categoryIdr   ASC)entityTypeIdfilterselectorder)r4   	call_listr   entity_type_idlistcategory_idsSELECT_FIELDS	_map_item)r2   r,   r-   itemsitems        r)   fetch_accounting_rowsrC   =   sr    "1&"9I"11$d6+>+>&?@#E]		
E FKKTIdI'78KKKs   A.c                   | j                  dt        j                  |d      }|xs i j                  d      }|sy t	        |j                  d      xs d      }|t        j
                  vry t        |       \  }}t        |||      S )Nzcrm.item.get)r7   r   rB   r   r   )callr   r<   getr   r>   r4   r@   )r2   item_idresultrB   category_idr,   r-   s          r)   fetch_accounting_row_by_idrJ   K   s    [[..g>F Lbf%Ddhh|,12K&---"1&"9IT9&677r(   c           	         i }t         j                  D ]_  }| j                  dddt        |   ii      }|D ];  }t	        |j                  d      xs d      |t	        |j                  d            <   = a |S )Nzcrm.status.listr8   	ENTITY_IDNAME 	STATUS_ID)r   r>   r;   CATEGORY_ENTITYr   rF   )r2   mappingrI   statusesr!   s        r)   r/   r/   \   s     G** R##_[%ABC
  	RF47

68J8Pb4QGC

;/01	RR Nr(   c                   | j                  ddt        j                  i      xs i }|j                  d      xs i }|j                  t        j                        xs i }i }|j                  d      xs g D ]l  }t        |j                  d      xs |j                  d      xs d      }t        |j                  d      xs |j                  d	      xs d      }|sh|||<   n |S )
Nzcrm.item.fieldsr7   fieldsrA   IDr   rN   VALUEvalue)rE   r   r<   rF   cost_article_fieldr   )r2   rH   rT   fieldrQ   rB   rG   rW   s           r)   r0   r0   h   s    [[*^V=R=R,STZXZFZZ!'RFJJv0017RE G		'"(b %dhhtn<<"=DHHW%@'):@bA$GG	%
 Nr(   c                   t        | j                  d      xs d      }t        | j                  d      xs d      }t        t        | j                  d            t        | j                  d      xs d      t	        | j                  t
        j                        |      dt        | j                  d            t        | j                  d            | j                  t
        j                        dn't        | j                  t
        j                              |j                  ||      t
        j                  xs i j                  |d	|       
	      S )Nr   r   r   rN   r   r   r   r   z	category )	r   r   r   r   r   r   r    r!   r"   )r   rF   r   r   _resolve_enumr   rX   _format_amount_format_datecomment_fieldcategory_names)rB   r,   r-   rI   stage_ids        r)   r@   r@   u   s   
 dhh|,12K488I&,"-Hdhhtn%$((7#)r*"488F,E,E#FHXYdhh}56$((=12xx 4 45=3txxPVPdPdGeCf}}Xx0,,277yQ\P]E^_
 
r(   c                    | | dk(  ryt        | t              rdj                  fd| D              S j                  t	        |       t	        |             S )NrN   z, c              3  f   K   | ](  }j                  t        |      t        |             * y w)N)rF   r   ).0vrQ   s     r)   	<genexpr>z _resolve_enum.<locals>.<genexpr>   s$     BSVSV4Bs   .1)
isinstancer=   joinrF   r   )rawrQ   s    `r)   r[   r[      sI    
{cRi#tyyBcBBB;;s3xS**r(   c                    | | dk(  ry	 t        |       }|d}|j	                  dd      j	                  dd      S # t        t        f$ r t        |       cY S w xY w)NrN   z,.2f, .)float	TypeError
ValueErrorr   replace)rW   num	formatteds      r)   r\   r\      si    }El t*IS#&..sC88 z" 5zs   ; AAc                    | syt        |       }	 t        j                  |      }|j                  d      S # t        $ r |cY S w xY w)NrN   z%d.%m.%Y)r   r   fromisoformatstrftimero   )rW   textdts      r)   r]   r]      sI    u:D##D){{:&& s   %6 AA)r2   r   returnz%tuple[dict[str, str], dict[str, str]])r2   r   rx   zlist[AccountingRow])r2   r   rG   r   rx   zAccountingRow | None)r2   r   rx   dict[str, str])rB   zdict[str, Any]r,   ry   r-   ry   rx   r   )rh   r   rQ   ry   rx   r   )rW   r   rx   r   )
__future__r   r.   dataclassesr   r   typingr   app.bitrix.clientr   
app.configr   r<   rP   rX   r^   r?   r1   r   r&   r   r4   rC   rJ   r/   r0   r@   r[   r\   r]   r'   r(   r)   <module>r      s   "  !   *  6(()3
6(()3
6(()3 	

	 %)" ) 	 	 	' L8"	

 % 	(+9	r(   