
    §h                     0    d dl mZ d dlmZ  G d d      Zy)    )UnitMeasureModel)datetimec                   8    e Zd Zd Zd	dZd Zd Zd Zd Zd Z	y)
UnitMeasureClassc                     || _         y )N)db)selfr   s     iC:\Users\jesus\OneDrive\Escritorio\backend-lacasadelvitrificado\app\backend\classes\unit_measure_class.py__init__zUnitMeasureClass.__init__   s	        c                    	 | j                   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]  }|j                  |j                  d }}|||||dS |j                         }|D cg c]  }|j                  |j                  d }}|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idunit_measure)total_itemstotal_pagescurrent_pageitems_per_pagedata)r   queryr   r   r   order_bycountoffsetlimitall	Exceptionstr)r	   pager   r   r   r   r   r   serialized_dataeerror_messages              r
   get_allzUnitMeasureClass.get_all   s   .	A$''$11 *--.  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ
 '+#, # '//$0$=$=$ #, #, $/#.$(&4+  yy{
 '+#, # '//$0$=$=$ #, #,
 '&+#, #,  	AFM%-@@	AsN   B D. :D. >D.  D$"	D. ,D.   D) D. $
D. .	E7EEEc                 X   	 | j                   j                  t        j                  t        j                        j                  t        j                        }|D cg c]  }|j                  |j                  d }}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'   s         r
   get_listzUnitMeasureClass.get_list9   s    	A$''$11 *778  '+, # '//$0$=$=  ,O ,  ,  	AFM%-@@	As0   AB  B;B B 	B)B$B)$B)c                    	 t        |j                  t        j                               }| j                  j                  |       | j                  j                          | j                  j                  |       d|j                  dS # t        $ r2}| j                  j                          dt        |      dcY d }~S d }~ww xY w)N)r   
added_dateu#   Ubicación registrada exitosamente.)r   unit_measure_idr   r   )r   r   r   utcnowr   addcommitrefreshr   r"   rollbackr#   )r	   unit_measure_inputsnew_unit_measurer&   s       r
   storezUnitMeasureClass.storeP   s    	:/0==#??, 
 GGKK()GGNNGGOO,- @#3#6#6 
  	:GG%#a&99	:s   BB
 
	C'C :C Cc                 \   	 | j                   j                  t        j                  t        j                        j                  t        j                  |k(        j                         }|r|j                  |j                  d}d|iS ddiS # t        $ r}dt        |      icY d }~S d }~ww xY w)Nr   unit_measure_datar   z3No se encontraron datos para el campo especificado.)	r   r   r   r   r   filterfirstr"   r#   )r	   r   
data_queryr7   r&   s        r
   getzUnitMeasureClass.getd   s    	% ## -- f%((B./ 
 $--$.$;$;%!
 ,->??  !VWW 	%SV$$	%s$   BB B 	B+B& B+&B+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   zError: )
r   r   r   r8   r   r9   deleter0   r"   r#   )r	   r   r   r&   r'   s        r
   r>   zUnitMeasureClass.deletey   s    
	-77==!1299:J:M:MQS:STZZ\Dt$  & 	-FM]O,,	-s   BB 	B+B& B+&B+c                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS |j                  |_        t        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   zUnidad de medida no encontrada.r   r=   z*Unidad de medida actualizada exitosamente.)r   r   r-   )r   r   r   r8   r   r9   r   r   r.   updated_dater0   r1   r"   r2   r#   )r	   r   r3   existing_unit_measurer&   s        r
   updatezUnitMeasureClass.update   s    	:$(GGMM2B$C$J$JK[K^K^bdKd$e$k$k$m!(")6WXX 2E1Q1Q!.191B!. GGNNGGOO12 $G#8#;#;   	:GG%#a&99	:s%   AC A.C 	D 'C;5D ;D N)r   
   )
__name__
__module____qualname__r   r(   r*   r5   r;   r>   rB    r   r
   r   r      s(    /AbA.:(%*-:r   r   N)app.backend.db.modelsr   r   r   rG   r   r
   <module>rI      s    2 Z: Z:r   