
    ?jf                         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 d dlmZ  ej                  d      d	        Z ej                  d
      d        Zy)    )jsonifyrequest)func)api_bp)db)Transaction)Category)Accountz/transactionsc                     t         j                  j                  ddt              } t	        t         j                  j                  ddt              d      }t
        j                  j                  t
        j                  j                         t
        j                  j                               }t         j                  j                  dt              x}r"|j                  t
        j                  |k(        }t         j                  j                  dt              x}r"|j                  t
        j                  |k(        }t         j                  j                  d	      x}r"|j                  t
        j                  |k\        }t         j                  j                  d
      x}r"|j                  t
        j                  |k        }t         j                  j                  d      x}rTd| d}|j                  t
        j                  j                  |      t
        j                   j                  |      z        }|j#                  | |d      }	t$        j                  j'                  d      j)                         D 
ci c]  }
|
j                  |
j*                   }}
t,        j                  j'                  d      j)                         D ci c]  }|j                  |j*                   }}t/        |	j0                  D cg c]  }|j                  |j                  |j                  t3        |j4                        |j6                  |j                  |j                  d      |j                  |j                  d      |j                   xs dd c}|	j8                  | |	j:                  |d      S c c}
w c c}w c c}w )u   
    GET /api/transactions — paginated transaction list with optional filters.
    Query params: page (int), per_page (int), category_id, account_id,
                  date_from, date_to, q (search)
    page   )typeper_page2      category_id
account_id	date_fromdate_toq%F)r   r   	error_outT)	is_activeUncategorizedUnknown )iddatemerchantamount	is_creditcategoryaccountnotes)transactionstotalr   pagesr   )r   argsgetintminr   queryorder_byr   descr   filterr   r   merchant_normalizediliker$   paginater	   	filter_byallnamer
   r   itemsfloatr    r!   r&   r'   )r   r   r   cat_idacct_idr   r   searchlike	paginatedccat_mapaacct_mapts                  ;/var/www/html/financials/app/blueprints/api/transactions.pytransactions_listrC      s    <<FAC0D7<<##J#=sCH 		+""'');>>+>+>+@	A 
 !!-c!::v:HH[,,67,,""<c"::w:HH[++w67LL$$[11y1HH[%%23,,""9--w-HH[%%01!!#&&v&6(!}HH++11$7##D)*

 

x5
II &.^^%=%=%=%M%Q%Q%STqttQVV|TGT&-mm&=&=&=&M&Q&Q&STaffTHT __
  dd11/[[#KKG#<<i@B	
 #   UT
s    N3N8BN=z/transactions/summaryc            
         ddl m}  | j                         }|j                   d|j                  dd}t
        j                  j                  t        j                  t        j                  t        j                        j                  d      t        j                  t        j                         j                  d            j#                  t        t        j$                  t        j                   k(  d	      j'                  t        j                  j)                  |      t        j*                  d
k(        j-                  t        j                        j/                  t        j                  t        j                        j1                               j3                         }t5        |D cg c]7  }|j                  xs dt7        |j8                  xs d      |j                  d9 c}      S c c}w )uC   GET /api/transactions/summary — current month totals by category.r   )r   -02dz-%r&   countT)isouterFr   )r"   r&   rG   )datetimer   todayyearmonthr   sessionr,   r	   r5   r   sumr   r    labelrG   r   joinr   r/   r;   r!   group_byr-   r.   r4   r   r7   r&   )r   rJ   prefixrowsrs        rB   transactions_summaryrU   D   sU    JJLE

|1U[[-R0F 	

MMHH[''(..w7JJ{~~&,,W5	

 
h//8;;>	M	  %%f-{/D/D/M	N	(--	 	$((;--.335	6	 	  VV.qww|!9LWXW^W^_   s   (<G+N)flaskr   r   
sqlalchemyr   app.blueprints.apir   app.extensionsr   app.models.transactionr   app.models.categoryr	   app.models.accountr
   routerC   rU        rB   <module>r`      sZ    "  %  . ( & o5 5p %& 'r_   