
    nf$                     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m	Z	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 d d
lmZmZmZ d dlmZ d dlmZm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'  G d de          Z(d Z)d Z*ed             Z+ed             Z,ed             Z-ed             Z. e            d             Z/ed             Z0ed             Z1ed             Z2ed             Z3ed              Z4ed!             Z5ed"             Z6ed#             Z7ed$             Z8d%S )&    )datetime)messages)login_required)	send_mail)CountCaseWhenIntegerField)renderredirect)APIView)Responsestatus)	CustomersCompanyUserCustomerDocument)settings)CategoryBatch   )get_customer_statistics)recently_created_batches)get_recently_updated_customers)Contact)CustomersSerializerc                       e Zd Zd ZddZdS )CustomersDetailViewc                 6   	 t           j                            |          }|j        st	          ddit
          j                  S t          |          }t	          |j                  S # t           j	        $ r  t	          ddit
          j
                  cY S w xY w)Nqr_codemessagezPassword not set.r   errorCustomer not found)r   objectsgetpasswordr   r   HTTP_400_BAD_REQUESTr   dataDoesNotExistHTTP_404_NOT_FOUNDselfrequestr!   customer
serializers        FD:\MyProjects\RESCUE_SCANNER\qr_onkar_130624\qr_onkar\website\views.pyr&   zCustomersDetailView.get   s    	_ (,,W,==H$ f,? @Ideeee,X66JJO,,,% 	_ 	_ 	_W&:;FD]^^^^^^	_s   AA) "A) ),BBNc                    |r	 t           j                            |          }t          ||j                  }|                                r4|                                 t          |j        t          j	                  S t          |j
        t          j                  S # t           j        $ r  t          ddit          j                  cY S w xY wt          ddit          j                  S )Nr    )r)   r   r#   r$   z QR code is required for updating)r   r%   r&   r   r)   is_validsaver   r   HTTP_200_OKerrorsr(   r*   r+   r,   s        r1   postzCustomersDetailView.post!   s     	oc$,000AA0MMM
&&(( POO%%%#JOF<NOOOO
 1&:UVVVV) c c c*> ?Habbbbbbc W&HIRXRmnnnns   A=B" B" ",CC)N)__name__
__module____qualname__r&   r7        r1   r   r      s@        _ _ _o o o o o or<   r   c                 "    t          | d          S )Nz
login.htmlr   r.   s    r1   loginr@   0   s    '<(((r<   c                      t          j                    } g }t          ddd          D ]>}| j        |z
  }| j        }|dk    r
|dz  }|dz  }|                    | d|d           ?|S )N   r      r   -02d)r   nowrangemonthyearappend)todaymonthsirI   rJ   s        r1   get_last_six_monthsrO   4   s    LNNEF1b" - -azA::RKEAID+++++,,,,Mr<   c                     | j         }|j        sbt          |j                  }t	          |j                  }t                      }t          |j                  }||||d}t          | d|          S t          d          S )N)dashboard_datarecent_activitieslast_six_months_listrecently_updated_customersz
index.htmlz/admin)	useris_superuserr   companyr   rO   r   r   r   )r.   rU   rQ   rR   rS   rT   contexts          r1   	dashboardrY   A   s    <D 60>>4T\BB244%CDL%Q%Q" -!2$8*D	
 
 g|W555Hr<   c                 d    t           j                                        }t          | dd|i          S )Nzcustomer_management.html	customers)r   r%   allr   )r.   r/   s     r1   customer_managementr]   V   s.     $$&&H'5X7NOOOr<   c                     t           j                            |          }t          j                            |          }t          | d||d          S )Nid)r/   zcustomer_details.html)r[   	documents)r   r%   r&   r   filterr   )r.   customer_idr/   ra   s       r1   customer_detailsrd   \   sP     $$$44H (///BBI'2(Yb4c4cdddr<   c                    t           j                            | j        j                                      t          d          t          t          t          ddd          t                                          t          t          t          dd	          t          dd
          t                                                    }g }|D ]t}|
                    |j        |j        |j        |j        |j        |j        |j        |j                            d          |j                            d          d	           ut)          | dd|i          S )N)created_by__companyr[   F r   )customers__password__isnullcustomers__password__gtthen)output_fieldT)rh   rj   )customers__passwordrj   )customer_count
registeredunregisteredz%d/%m/%Yz%H:%M)	r`   batch_numberrn   ro   category
created_byrm   created_datecreated_timezqr_code_manager.htmlbatch)r   r%   rb   rU   rW   annotater   r   r	   r
   rK   r`   rp   rn   ro   rq   rr   rm   createdstrftimer   )r.   batch_queryset
batch_dataru   s       r1   qr_code_managerr{   c   si    ]))gl>R)SS\\[))PRYZ[[[)^^  
 
 A>>>!444)^^  
 
 ]  N  J  (!.*!.*#2!M22:>>!M227;;

 

 
	 
	 
	 
	 '1GZ3HIIIr<   c                     t           j                            |                                          }t          j                            |          }t          | dd|i          S )Nr_   )ru   zbatch_history.htmlbatch_customers)r   r%   rb   firstr   r   )r.   batch_idru   r}   s       r1   batch_historyr      sX    M  H --3355E'..U.;;O'/2C_1UVVVr<   c                     t           j                            | j        j        dd          }t          | dd|i          S )NTF)rf   	is_active
is_deletedzqr_generator.html
categoriesr   r%   rb   rU   rW   r   )r.   rq   s     r1   qr_generatorr      s>    &&7<;O[_lq&rrH'.x0HIIIr<   c                 "    t          | d          S )Nzprofile.htmlr>   r?   s    r1   profiler      s     '>***r<   c                     	 t           j                            || j        j                  }t          | dd|i          S # t          $ r(}t          |           t          d          cY d }~S d }~ww xY w)N)r`   rW   zstaff_profile.htmlstaff_profilez/manage_company_user)	r   r%   r&   rU   rW   r   	Exceptionprintr   )r.   staff_idstaff_profile1es       r1   r   r      s    0$,00HglFZ0[[g3o~5VWWW 0 0 0a.////////0s   =A   
A2
A-'A2-A2c                 "    t          | d          S )Nmanage_profiles.htmlr>   r?   s    r1   manage_profilesr          '1222r<   c                 "    t          | d          S )Nzcreate_profiles.htmlr>   r?   s    r1   create_profilesr      r   r<   c           	      D   | j         dk    r| j                            d          }| j                            d          }| j                            d          }| j                            d          }	 t          ||||          }|                                 	 d| d}	 || j        j        j         z  }n# t          $ r
}Y d }~nd }~ww xY wd	| d
| d| d| d	}t          ||t          j        ddgd           d| d| d| d| d	}	t          d|	t          j        |gd           n&# t          $ r}t          |           Y d }~nd }~ww xY wt          j        | dd           t          d          S #  t          d          cY S xY wt!          | d          S )NPOSTnameemailsubjectr"   )r   r   r   r"   zRescuscanner Contact Mail from z : z"
                            name:z&

                            subject:z$

                            email"z'


                            message:z
                            zinfo.rescuescanner@gmail.comzonkart4u@gmail.comF)fail_silentlyz
                                    Recieved your message.
                                    details are as follows:


                                    name:z.

                                    subject:z,

                                    email"z/


                                    message:z%
                                    zAcknowledgement Mailzmail sent succefullysuccess)
extra_tagsz/contactz
/dashboardzcontact.html)methodr   r&   r   r4   rU   rW   r   r   r   r   DEFAULT_FROM_EMAILr   r   r   r   r   )
r.   r   r   r   r"   contactmodified_subjectr   modified_messagecustomer_messages
             r1   r   r      se   ~|''  )),""9--,""9--$	*4ugwWWWGLLNNN#NT#N#N#N $7<+?+D(FF$$    DDDD$ "&$  $ %,$  $  $)$  $  &-	$  $  $   *,<h>Y9;OP`eg g g g$( +/$( $( .5	$( $(
 ,1$( $( .5$( $( $(  13CXE` '8 8 8 8 8    aW&<SSSSJ'''	*L)))))g~...s[   6'E< D0 %B; :D0 ;
CD0 
CA D0 /E< 0
E:E	E< E(E< <Fc                 "    t          | d          S )Nzreports.htmlr>   r?   s    r1   reportsr      s    '>***r<   c                     t           j                            | j        j        d          }t          |           t          | dd|i          S )NF)rW   r   r   company_user)r   r%   rb   rU   rW   r   r   )r.   company_user_accountss     r1   manage_company_userr      sL    '/66w|?S`e6ff	
   '1NDY3Z[[[r<   c                     t           j                            | j        j        d          }t           j                            | j        j        d          }t          | d||d          S )NF)rf   r   Tzcategory.html)category_listdeleted_category_listr   )r.   r   r   s      r1   rq   rq      sj    $++@Taf+ggM$,33H\im3nn'?$1Labbd d dr<   N)9r   django.contribr   django.contrib.auth.decoratorsr   django.core.mailr   django.db.modelsr   r   r	   r
   django.shortcutsr   r   rest_framework.viewsr   rest_framework.responser   rest_frameworkr   accounts.modelsr   r   r   mainr   qr_manager.modelsr   r   company_view.dashboard_viewsr   company_view.recent_activitiesr   'company_view.recently_updated_customersr   modelsr   serializersr   r   r@   rO   rY   r]   rd   r{   r   r   r   r   r   r   r   r   r   rq   r;   r<   r1   <module>r      sW         # # # # # # 9 9 9 9 9 9 & & & & & & < < < < < < < < < < < < - - - - - - - - ( ( ( ( ( ( , , , , , , ! ! ! ! ! ! D D D D D D D D D D       - - - - - - - - A A A A A A D D D D D D S S S S S S       , , , , , ,o o o o o' o o o4) ) )
 
 
   ( P P P
 e e e J J JD W W W J J J
 + + + 0 0 0 3 3 3 3 3 3 ,/ ,/ ,/^ + + + \ \ \ d d d d dr<   