
    h*              
       .   d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZ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 d d
lmZ d dl mZmZmZ d dl m Z  d dl!Z! eddg      Z"e"jG                  d       ee      fdedefd       Z$e"jK                  d       ee       ee      fde&dedefd       Z'e"jK                  d       ee       ee      fde&dedefd       Z(e"jG                  d       ee       ee      fde&dededefd       Z)e"jG                  d       ee       ee      fde&dededefd       Z)e"jG                  d       eejT                         ed       ee      fde&d ed!edefd"       Z+e"jG                  d#       ee      fd$e&d%e	defd&       Z,e"jG                  d'       eejT                         ed       ee      fde&d ed(edefd)       Z+e"jG                  d*       ee      fde&d+edefd,       Z-e"jG                  d-       ee      fd.e
defd/       Z.e"jG                  d0       ee       ee      fde&d.ededefd1       Z/e"jK                  d2       ee       ee      fd$e&dedefd3       Z0y)4    )	APIRouterDepends)get_db)Session)	UserLoginPreInventoryStocksShoppingCreateInputUpdateShoppingShoppingListStorePaymentDocumentsSendCustomsCompanyInputStoreCustomsCompanyDocuments)ShoppingModelSettingModel)ShoppingClass)TemplateClass)	FileClass)
EmailClass)get_current_active_user)File
UploadFileHTTPException)datetimeNz
/shoppings	Shoppings)prefixtags/shopping_inputsdbc                 R    t        |      j                  | j                        }d|iS Nmessage)r   get_allpage)r   r   datas      `C:\Users\jesus\OneDrive\Escritorio\backend-lacasadelvitrificado\app\backend\routers\shoppings.pyindexr'      s(    $$_%9%9:Dt    z
/edit/{id}idsession_userc                 >    t        |      j                  |       }d|iS r!   )r   getr)   r*   r   r%   s       r&   editr.      s"      $Dtr(   z/confirm/{id}c                 >    t        |      j                  |       }d|iS r!   )r   confirmr-   s       r&   r0   r0       s"    $$R(Dtr(   z /get_pre_inventory_products/{id}c                 >    t        |      j                  |       }d|iS r!   )r   get_pre_inventory_productsr)   r   r*   r   r%   s        r&   get_productsr4   &   s"    77;Dtr(   z/get_products/{id}c                 >    t        |      j                  |       }d|iS r!   )r   r4   r3   s        r&   r4   r4   ,   s"    ))"-Dtr(   z/upload_payment_documents/{id}	form_datapayment_supportc                    	 t        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}d}|r
| d| d| n| d| }| d| }	t        |      j                  ||	       t        |      j                  | ||	      }
d|
iS # t        $ r}t        d	d
t        |             d }~ww xY w)N%Y_%m_%d_%H_%M_%S   . r7   _r"     Error al procesar: status_codedetail)r   nowstrftimeuuiduuid4hexfilenamesplitr   uploadr   store_payment_documents	Exceptionr   str)r)   r6   r7   r   	timestamp	unique_idfile_extensionfile_category_nameunique_filenamesupport_remote_pathresponsees               r&   storerW   2   s   TLLN++,?@	JJL$$Ra(	DG?KcKcDc1177<R@ik.IWYKq1^4DE`i_jjklukv]w!3 4Ao5FG"_.AB $<<RL_`8$$ T6I#a&4RSST   CC 	C2C--C2z(/save_inventory_quantities/{shopping_id}shopping_idpre_inventory_stocksc                 \   K   t        |      j                  | |j                         ddiS w)Nr"   zQuantities saved successfully)r   save_pre_inventory_quantitiesitems)rY   rZ   r   s      r&   save_inventory_quantitiesr^   K   s0      "33KAUA[A[\677s   *,z&/upload_customs_company_documents/{id}customs_company_supportc                    	 t        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}d}|r
| d| d| n| d| }| d| }	t        |      j                  ||	       t        |      j                  | ||	      }
d|
iS # t        $ r}t        d	d
t        |             d }~ww xY w)Nr9   r:   r;   r<   r=   r_   r>   r"   r?   r@   rA   )r   rD   rE   rF   rG   rH   rI   rJ   r   rK   r   store_customs_company_documentsrM   r   rN   )r)   r6   r_   r   rO   rP   rQ   rR   rS   rT   rU   rV   s               r&   rW   rW   T   s   TLLN++,?@	JJL$$Ra(	LOSjSsSsLs099??DRHy{6IWYKq1^4DE`i_jjklukv]w!3 4Ao5FG"46IJ $DDRTgh8$$ T6I#a&4RSSTrX   z /send_customs_company_email/{id}send_customs_company_inputsc                    t        |      j                  |       }t        |      j                  ||       }t        |      j	                  |      }t        |      j                  |      }t        ddd      }|j                  |j                  d||d      }t        |      j                  | |j                         ddiS )	N"bergerseidle@vitrificadoschile.comVitrificadosChilebhva zicx wfub duxgzPurchase Orderpurcharse_order.pdfreceiver_emailsubjectr"   	pdf_bytespdf_filenamer"   zEmail sent successfully)
r   get_shopping_datar   *generate_shopping_html_for_customs_company#spanish_generate_email_content_htmlhtml_to_pdf_bytesr   
send_emailcustoms_company_emailsend_customs_company_email)	r)   rb   r   r%   html_contentemail_html_contentrk   email_clientresults	            r&   rs   rs   m   s    ..r2D $OOPTVXYL&r*NNtTb!33LAIBDWYnoL$$2HH "* % F "005P5f5fg011r(   z/storer%   c                    t        ddd      }|j                  t              j                         }|r|j                  r|j                  n| j
                  }| j
                  }| j                  | j                  fD cg c]  }|s|	 }}t        |      j                  |       }|j                  t              j                  t        j                  |d   k(        j                         }	|	r!|	j                  rt        |	j                        nt        |d         }
t        |      j!                  | |d         }t        |      j#                  | |d         }t        |      j%                  |       }t        |      j'                  |       }t        |      j)                  |      }t        |      j)                  |      }|j+                  |d|
z   ||d      }|j+                  |d|
z   ||d|	      }d
|iS c c}w )Nrd   re   rf   rY   u   Nueva Orden de Compra - N° rg   rh   u   Purchase Order - N° ri   rj   r"   rk   rl   ccr"   )r   queryr   firstaccount_emailemailsecond_emailthird_emailr   rW   r   filterr)   shopping_numberrN   r   &generate_shopping_html_for_own_company#generate_shopping_html_for_supplierro   #english_generate_email_content_htmlrp   rq   )r%   r   rv   settingsinternal_emailto_emailr~   	cc_emailsshopping_datashopping_recordr   html_content_for_own_companyhtml_content_for_supplierspanish_email_html_contentenglish_email_html_contentpdf_bytes_ownpdf_bytes_supplierrw   s                     r&   store_shoppingr      s   BDWYnoL xx%++-H/7H<R<RX++X\XbXbN zzH%)%6%68H8H$IS5USIS!"%++D1M hh}-44]5E5EWdIe5efllnO>MRaRqRqc/99:wz  |I  JW  |X  xYO#0#4#[#[\`bop}b~#  -b 1 U UVZ\ijw\x y!.r!2!V!VW[!\!.r!2!V!VW[!\!"%778TUM&r*<<=VW $$%.@** % F $$'/9*$* % F vE Ts   =G7G7z/update/{id}c                    t        |      j                  | |      }|j                  d      dk(  rt        ddd      }|j	                  t
              j                         }|r|j                  r|j                  n|j                  }|j                  }|j                  |j                  fD 	cg c]  }	|	s|		 }
}	|j	                  t              j                  t        j                  | k(        j                         }|r!|j                  rt        |j                        n
t        |       }t!        |      j#                  ||       }t!        |      j%                  ||       }t!        |      j'                  |      }t!        |      j)                  |      }t!        |      j+                  |      }t!        |      j+                  |      }|j-                  |d|z   ||d      }|j-                  |d	|z   ||d|

      }d||diS d|iS c c}	w )Nstatussuccessrd   re   rf   u"   Orden de Compra Actualizada - N° rg   rh   u   Updated Purchase Order - N° ry   r"   )updater~   )r   r   r,   r   r{   r   r|   r}   r~   r   r   r   r   r)   r   rN   r   r   r   ro   r   rp   rq   )r)   r%   r*   r   rw   rv   r   r   r   r~   r   r   r   r   r   r   r   r   r   email_results                       r&   update_shoppingr      s    2%%b$/Fzz(y(!"FH[]rs 88L)//13;@V@V//\`\f\f ::)-):):D<L<L(MWuQVUW	W ((=1889I9IR9OPVVXBQVeVuVu#o==>{~  @B  |C'4R'8'_'_`dfh'i$$1"$5$Y$YZ^`b$c!%22%6%Z%Z[_%`"%22%6%Z%Z[_%`"%b);;<XY*2.@@AZ[ $..)8?J.#. / 
 $..#3oE.(. / 
 f|DEE6""G Xs   -H5Hz/get_inventories/{shopping_id}c                 >    t        |      j                  |       }d|iS r!   )r   get_inventories_by_shopping_id)rY   r*   r   r%   s       r&   r   r      s$     ;;KHDtr(   )1fastapir   r   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr   r   r	   r
   r   r   r   r   app.backend.db.modelsr   r   "app.backend.classes.shopping_classr   "app.backend.classes.template_classr   app.backend.classes.file_classr   app.backend.classes.email_classr   app.backend.auth.auth_userr   r   r   r   r   rF   	shoppingspostr'   r,   intr.   r0   r4   as_formrW   r^   rs   r   r   r    r(   r&   <module>r      s   & * "      = < < 4 6 > 3 3  
	
 7>v < W  
 |,34K,L\cdj\k S 	 RY  
 /67N/O_fgm_n  9 U\   
 23SZ[rSs  DK  LR  DS S < y   zA  4
 $%SZ[rSs  DK  LR  DS S < y   zA  &
 01 (//D/L/L'M"&t*&/	TT$T  T 		T 2T0 :; &/88,8 	8 <8 89 /66R6Z6Z.[*.t*&/	TT+T (T 		T :T0 23jqrxjy 2# 2CZ 2`g 2 42* <CFO +, +' + +Z MTUlMm  ~E  FL  ~M 1# 1#> 1# 1#sz 1#  1#f /0 &&=>&/ 	 1r(   