
    iP#                     0    d dl m Z  d dlmZ  G d d      Zy)    )datetime)CustomerModelc                   2    e Zd Zd ZddZd Zd Zd Zd Zy)	CustomerClassc                     || _         y )N)db)selfr   s     `C:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\classes\customer_class.py__init__zCustomerClass.__init__   s	        Nc                 ^	   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                        }|rP|j%                         r@|j'                  t        j                  j)                  d|j%                          d            }|rP|j%                         r@|j'                  t        j                  j)                  d|j%                          d            }|rP|j%                         r@|j'                  t        j                  j)                  d|j%                          d            }|j+                  t        j                  j-                               }|dkD  rX|j/                         }||z   dz
  |z  }|dk  s||kD  rdd||g dS |j1                  |dz
  |z        j3                  |      j5                         }	|	D 
cg c]  }
|
j                  |
j                  |
j
                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                   r|
j                   j7                  d      nd |
j"                  r|
j"                  j7                  d      nd d }}
|||||dS |j5                         }	|	D 
cg c]  }
|
j                  |
j                  |
j
                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                   r|
j                   j7                  d      nd |
j"                  r|
j"                  j7                  d      nd d }}
|S c c}
w c c}
w # t8        $ r}t;        |      }d|dcY d }~S d }~ww xY w)	N%r      )total_itemstotal_pagescurrent_pageitems_per_pagedata%Y-%m-%d %H:%M:%Sid
country_id	region_id
commune_id
package_idbill_or_ticket_ididentification_numbernames	lastnamesaddresscompany_namephoneemail
added_dateupdated_dateerrorstatusmessage)r   queryr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   stripfilterlikeorder_bydesccountoffsetlimitallstrftime	Exceptionstr)r	   pager   r   r   r!   r*   r   r   r   customerserialized_dataeerror_messages                 r
   get_allzCustomerClass.get_all   s   a	AGGMM  ((''((((//33##''%%**####((**E& %)>)D)D)F]%H%H%M%MPQRgRmRmRoQppqNr%st]%8%8%=%=%++-PQ>R%ST 2 2 4]%?%?%D%DqI[I[I]H^^_E`%abNN=#3#3#8#8#:;Eax#kkm*^;a?NR!8tk1'('((,*8 "  ||TAX$?@FF~VZZ\$ #'!#(   #++"*"5"5!)!3!3"*"5"5"*"5"5)1)C)C-5-K-K%^^!)!3!3'//$,$9$9%^^%^^W_WjWj("5"5">">?R"Spt[c[p[pH$9$9$B$BCV$Wvz$ #( #(& $/#.$(&4+  yy{$ #'!#(   #++"*"5"5!)!3!3"*"5"5"*"5"5)1)C)C-5-K-K%^^!)!3!3'//$,$9$9%^^%^^W_WjWj("5"5">">?R"Spt[c[p[pH$9$9$B$BCV$Wvz$ #( #($ '&_#(:#((  	AFM%-@@	AsJ   IR	 8R	 C)Q?4	R	 >R	 C)R;R	 ?
R	 		R,R'!R,'R,c                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|r|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   |j"                  |j$                  r|j$                  j'                  d      nd |j(                  r|j(                  j'                  d      nd d}d|iS ddiS # t*        $ r}t-        |      }d|dcY d }~S d }~ww xY w)Nr   r   customer_datar&   z6No se encontraron datos para el customer especificado.r'   )r   r*   r   r,   r   firstr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r4   r%   r5   r6   )r	   r   
data_queryr>   r:   r;   s         r
   getzCustomerClass.getl   s8   	A}5<<]=M=MQS=STZZ\J$--","7"7!+!5!5","7"7","7"7)3)E)E-7-M-M'--!+!5!5)11$.$;$;'--'--YcYnYn*"7"7"@"@AT"Utx]g]t]tJ$;$;$D$DEX$Yz~!$ (77  !YZZ 	AFM%-@@	As$   D4D; 7D; ;	EEEEc                 
   	 t        |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |d   |j                  d      |j                  d      |j                  d	      |j                  d
      |j                  d      |j                  d      t        j                         t        j                               }| j                  j                  |       | j                  j                          | j                  j                  |       dd|j                  dS # t        $ r2}| j                  j                          dt        |      dcY d }~S d }~ww xY w)Nr   r   r   r   r   r   r   r   r    r!   r"   r#   )r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   successzCustomer created successfully)r(   r)   customer_idr&   r'   )r   rA   r   nowr   addcommitrefreshr   r5   rollbackr6   )r	   customer_inputsnew_customerr:   s       r
   storezCustomerClass.store   sA   	:(*..|<)--k:*..|<*..|<"1"5"56I"J&56M&N%))'2)--k:'++I6,00@%))'2%))'2#<<>%\\^L" GGKK%GGNNGGOOL) $:+   	:GG%#a&99	:s   EE 	F'E=7F=Fc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|r:| j                   j                  |       | j                   j                          dddS dddS # t        $ r4}| j                   j                          t        |      }d|dcY d }~S d }~ww xY w)NrC   zCustomer deleted successfullyr'   r&   No data found)r   r*   r   r,   r   r?   deleterG   r5   rI   r6   )r	   r   r   r:   r;   s        r
   rO   zCustomerClass.delete   s    	A77==/66}7G7G27MNTTVDt$ "+8WXX")oFF 	AGGFM%-@@	As$   BB B 	C)CCCc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS |j                         D ]  \  }}|	t        |||        t        j                         |_
        | j                   j                          | j                   j                  |       dddS # t        $ r2}| j                   j                          dt        |      dcY d }~S d }~ww xY w)Nr&   rN   r'   rC   zCustomer updated successfully)r   r*   r   r,   r   one_or_noneitemssetattrr   rE   r%   rG   rH   r5   rI   r6   )r	   r   rJ   existing_customerkeyvaluer:   s          r
   updatezCustomerClass.update   s    	: $m < C CMDTDTXZDZ [ g g i$")oFF-335 ;
U$-sE:; .6\\^*GGNNGGOO-.'4STT 	:GG%#a&99	:s+   AC C /A!C 	D'DDD)r   
   NNN)	__name__
__module____qualname__r   r<   rA   rL   rO   rW    r   r
   r   r      s'    bAHA@:BA:r   r   N)r   app.backend.db.modelsr   r   r\   r   r
   <module>r^      s     /L: L:r   