o
    ۷h                     @   s   d dl mZ d dlmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZ G dd dejZG d	d
 d
ejZG dd dejZG dd dejZG dd dejZG dd dejZdS )    )call_command)
connectionmodelsN)now)ApplicationNamespace)NWisefinThreadc                   @   s   e Zd Zdd ZdS )VSolvQuerysetc                 C   sN   di }}| D ]}|  }|d ur|\}}||7 }|| q|r%||fS d S Nr   )deleteupdate)selfcountercounter_dictobjresultcurrent_countercurrent_counter_dict r   '/var/www/FinalPayroll/db/vsolvmodels.pyr
      s   

zVSolvQueryset.deleteN)__name__
__module____qualname__r
   r   r   r   r   r   
   s    r   c                       sZ   e Zd ZdZdZejddZe	 Z
dZG dd dZd fdd		Zd fd
d	Z  ZS )VsolvModelsFTnullNc                   @      e Zd ZdZdS )zVsolvModels.MetaTNr   r   r   abstractr   r   r   r   Meta       r      c                    s   t t| j|i | d S N)superr   save)r   	verbosityargskwargs	__class__r   r   r#   "   s   zVsolvModels.savec                    s   t t| j|i |S r!   )r"   r   r
   )r   
force_dropr%   r&   r'   r   r   r
   %   s   zVsolvModels.delete)r    )F)r   r   r   auto_drop_schemaauto_create_schemar   BigIntegerField	entity_idr   
as_managerobjectsscoper   r#   r
   __classcell__r   r   r'   r   r      s    r   c                       s   e Zd Zdd Zdd Zdd Z fddZ fd	d
Zdd Zdd Z	 fddZ
 fddZ fddZ fddZ fddZ fddZ fddZ  ZS )	VQuerySetc                 C   s6   d}t  D ]}||d jv r|d j|   S qd S )Nrequestr   )inspectstackf_locals)r   namefr   r   r   get_request*   s   "zVQuerySet.get_requestc                    sR      }|d kr
d S |jd}|d kr|S G  fdddt}||j}| S )Nr-   c                       s,   e Zd Z Z fddZdd Z  ZS )z&VQuerySet.get_entity_id.<locals>.DbGetc                    s   t  | | | j d S r!   )r"   __init___set_namespaceapp_name_space)r   r0   r'   r   r   r:   B   s   z/VQuerySet.get_entity_id.<locals>.DbGet.__init__c                 S   s   |   S r!   )
_entity_idr   r   r   r   
get_entityE   s   z1VQuerySet.get_entity_id.<locals>.DbGet.get_entity)r   r   r   get_name_appnamespacer<   r:   r?   r1   r   r>   r'   r   DbGet@   s    rA   )r9   GETgetr   r0   r?   )r   r3   r-   rA   
entity_getr   r>   r   get_entity_id8   s   
zVQuerySet.get_entity_idc                 C   sD   | j jj}tj }tj }||v r t||}t|| S d S r!   )	model_meta	app_labelr   __dict__keysvalueslistindex)r   rH   appspace_keysappspace_valsindr   r   r   r@   J   s   


zVQuerySet.get_name_appnamespacec                    @   |   }|d krt j|i t|S t j|i t||dS N)r-   )rE   r"   rC   dictr   r%   r&   r-   r'   r   r   rC   S      zVQuerySet.getc                    rQ   rR   )rE   r"   filterrS   rT   r'   r   r   rV   Y   rU   zVQuerySet.filterc                 O   s.   g }|D ]	}| d|  q|  j| d S )N-r   appendrV   order_by)r   r%   r&   latest_fieldsfieldsr   r   r   latest_   s   zVQuerySet.latestc                 O   s*   g }|D ]}| | q|  j| d S r	   rX   )r   r%   r&   earliest_fieldsr\   r   r   r   earlieste   s   zVQuerySet.earliestc                       |    t  S r!   )rV   r"   firstr   r%   r&   r'   r   r   ra   k      
zVQuerySet.firstc                    r`   r!   )rV   r"   lastrb   r'   r   r   rd   o   rc   zVQuerySet.lastc                    rQ   rR   )rE   r"   createrS   rT   r'   r   r   re   s   rU   zVQuerySet.createc                    s\   |   }|d krt j|i |S |D ]}t|tr$|D ]}||jd< qqt j|i |S Nr-   )rE   r"   bulk_create
isinstancerL   rI   r   r%   r&   r-   objsrecordr'   r   r   rg   y   s   
zVQuerySet.bulk_createc                    sh   |   }|d krt j|i |S |D ]}t|tr*|D ]}t|tkr)||jd< qqt j|i |S rf   )rE   r"   bulk_updaterh   rL   typestrrI   ri   r'   r   r   rl      s   

zVQuerySet.bulk_updatec                    rQ   rR   )rE   r"   get_or_createrS   rT   r'   r   r   ro         zVQuerySet.get_or_createc                    rQ   rR   )rE   r"   update_or_createrS   rT   r'   r   r   rq      rp   zVQuerySet.update_or_create)r   r   r   r9   rE   r@   rC   rV   r]   r_   ra   rd   re   rg   rl   ro   rq   r1   r   r   r'   r   r2   )   s    	r2   c                       s   e Zd Z fddZ  ZS )Vmanagerc                    s   t   }t| j| jdS )N)using)r"   get_querysetr2   rF   _db)r   reqr'   r   r   rt      s   
zVmanager.get_queryset)r   r   r   rt   r1   r   r   r'   r   rr      s    rr   c                   @   s,   e Zd ZejddZe ZG dd dZdS )VModelsTr   c                   @   r   )zVModels.MetaTNr   r   r   r   r   r      r   r   N)	r   r   r   r   r,   r-   rr   r/   r   r   r   r   r   rw      s    rw   c                   @   s`   e Zd ZejddZejddZeje	dZ
ejdddZejdddZe ZG dd dZdS )	FETModelsTr   )default)r   blankc                   @   r   )zFETModels.MetaTNr   r   r   r   r   r      r   r   N)r   r   r   r   r,   r-   IntegerField
created_byDateTimeFieldr   created_date
updated_byupdated_daterr   r/   r   r   r   r   r   rx      s    rx   )django.core.managementr   	django.dbr   r   r4   django.utils.timezoner   +utilityservice.service.applicationconstantsr   "utilityservice.service.threadlocalr   QuerySetr   Modelr   r2   Managerrr   rw   rx   r   r   r   r   <module>   s    u