
    eh                     <    d dl mZ d dlmZ d dlmZ  G d d      Zy)    )SupplierModel)datetime)HTTPExceptionc                   :    e Zd Zd Zd	dZd	dZd Zd Zd Zd Z	y)
SupplierClassc                     || _         y )N)db)selfr	   s     JC:\Users\jesus\berger_seidle_backend\app\backend\classes\supplier_class.py__init__zSupplierClass.__init__   s	        c           
         	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                        j                  t        j                        }|dkD  r|j                         }||z   dz
  }|dk  s||kD  rdddS |j                  |dz
  |z        j                  |      j                         }|sdddS |D cg c]K  }|j                  |j                  |j
                  |j                  |j                  j                  d      dM }}|||||d	S |j                         }|D cg c]K  }|j                  |j                  |j
                  |j                  |j                  j                  d      dM }}|S c c}w c c}w # t        $ r}	t        |	      }
d|
dcY d }	~	S d }	~	ww xY w)
Nr      errorzInvalid page numberstatusmessageNo data found%Y-%m-%d %H:%M:%Sididentification_numbersupplieraddress
added_date)total_itemstotal_pagescurrent_pageitems_per_pagedata)r	   queryr   r   r   r   r   r   order_bycountoffsetlimitallstrftime	Exceptionstr)r
   pager   r!   r   r   r    r   serialized_dataeerror_messages              r   get_allzSupplierClass.get_all	   s   7	A!$$!77!**!))!,, -**+  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ #'#(  #++-5-K-K ( 1 1'//"*"5"5">">?R"S$ #( #( $/#.$(&4+  yy{ #'#(  #++-5-K-K ( 1 1'//"*"5"5">">?R"S$ #( #( '&7#(&#(  	AFM%-@@	AsP   B-F; 0:F; +F; /AF1?	F; 	F; AF6-F; 1
F; ;	GGGGc           
          	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                        j                  t        j                        }|sdddS |D cg c]K  }|j                  |j                  |j
                  |j                  |j                  j                  d      dM }}d|iS c c}w # t        $ r}t        |      }d|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-   s           r   get_listzSupplierClass.get_listC   s   	A!$$!77!**!))!,, -**+  ")oFF #'(  #++-5-K-K ( 1 1'//"*"5"5">">?R"S  (O (  (  	AFM%-@@	As7   BC* C* AC%C* %C* *	D3DDDc                    	 t        |j                  |j                  |j                  t	        j
                         t	        j
                               }| j                  j                  |       | j                  j                          | j                  j                  |       d|j                  dS # t        $ r8}| j                  j                          t        ddt        |             d }~ww xY w)N)r   r   r   r   updated_datez"Proveedor registrado exitosamente.)r   supplier_idi  Error: )status_codedetail)r   r   r   r   r   nowr	   addcommitrefreshr   r(   rollbackr   r)   )r
   supplier_inputsnew_supplierr,   s       r   storezSupplierClass.storeb   s    	L(&5&K&K(11'//#<<>%\\^L GGKK%GGNNGGOOL) ?+ 
  	LGGC'#a&8JKK	Ls   B0B3 3	C4<3C//C4c                 (   | j                   j                  t              j                  t        j                  |k(        j                         }|sy	 |j                  |_        |j                  |_        |j                  |_        t        j                         |_        | j                   j                          | j                   j                  |       y# t        $ r4}| j                   j                          t!        |      }d|dcY d }~S d }~ww xY w)Nr   zSupplier updated successfullyr   r   )r	   r!   r   filterr   one_or_noner   r   r   r   utcnowr2   r9   r:   r(   r;   r)   )r
   r   r<   existing_supplierr,   r-   s         r   updatezSupplierClass.updatey   s     GGMM-8??@P@PTV@VWcce "	A6E6[6[3)8)A)A&(7(?(?%-5__->*GGNNGGOO-.2 	AGGFM%-@@	As   BC 	D)DDDc                 2   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                        j                  t        j                  |k(        j                         }|r[|j                  |j                  |j
                  |j                  |j                  r|j                  j                  d      nd d}d|iS ddiS # t        $ r}dt        |      icY d }~S d }~ww xY w)Nr   )r   r   r   r   r   supplier_datar   z3No se encontraron datos para el campo especificado.)r	   r!   r   r   r   r   r   r   r@   firstr'   r(   r)   )r
   r   
data_queryrF   r,   s        r   getzSupplierClass.get   s    	%  &&33%%(( f]%%+,UUW  $-- * 3 3-7-M-M)11YcYnYn*"7"7"@"@AT"Utx! (77  !VWW 	%SV$$	%s$   C/C6 2C6 6	D?DDDc                 \   	 | j                   j                  t              j                  t        j                  |k(        j                         }|r6| j                   j                  |       | j                   j                          yy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nsuccessr   r4   )
r	   r!   r   r@   r   rG   deleter9   r(   r)   )r
   r   r    r,   r-   s        r   rL   zSupplierClass.delete   s    
	-77==/66}7G7G27MNTTVDt$  & 	-FM]O,,	-s   BB 	B+B& B+&B+N)r   
   )
__name__
__module____qualname__r   r.   r0   r>   rD   rI   rL    r   r   r   r      s*    8AtA>L.A(%6-r   r   N)app.backend.db.modelsr   r   fastapir   r   rQ   r   r   <module>rT      s    /  !n- n-r   