From 05a6fbddb6f020ffc309ca96319aa98c8a7cccdf Mon Sep 17 00:00:00 2001 From: Jadowyne Ulve Date: Fri, 22 Nov 2024 17:04:03 -0600 Subject: [PATCH] 11-22-2024 UPDATE --- __pycache__/api.cpython-312.pyc | Bin 42873 -> 47310 bytes __pycache__/main.cpython-312.pyc | Bin 24658 -> 25441 bytes api.py | 125 ++++++++++-- main.py | 182 +++++++++--------- .../default/sql/unique/Insert_transaction.sql | 3 + .../sql/unique/logistics_transactions.sql | 3 + .../default/sql/unique/set_location_data.sql | 3 + sites/main/sql/unique/Insert_transaction.sql | 3 + .../sql/unique/logistics_transactions.sql | 3 + sites/main/sql/unique/set_location_data.sql | 3 + static/itemHandler.js | 5 +- static/transactionHandler.js | 171 ++++++++++++++++ templates/itemLookup.html | 145 ++++++++++++++ templates/items/index.html | 4 +- templates/items/transactions.html | 124 +++++++++++- templates/transaction.html | 128 ++++++++++++ webserver.py | 7 +- 17 files changed, 803 insertions(+), 106 deletions(-) create mode 100644 sites/default/sql/unique/Insert_transaction.sql create mode 100644 sites/default/sql/unique/logistics_transactions.sql create mode 100644 sites/default/sql/unique/set_location_data.sql create mode 100644 sites/main/sql/unique/Insert_transaction.sql create mode 100644 sites/main/sql/unique/logistics_transactions.sql create mode 100644 sites/main/sql/unique/set_location_data.sql create mode 100644 static/transactionHandler.js create mode 100644 templates/itemLookup.html create mode 100644 templates/transaction.html diff --git a/__pycache__/api.cpython-312.pyc b/__pycache__/api.cpython-312.pyc index 4d8b66f12f066970437ce2890ca1565005687a7d..f6dbc35fc4fc49503aed76bf39f763c2d9877f31 100644 GIT binary patch delta 6496 zcmd5=eNa?amVfuXe*Fn{H{J9n{Y3*!^P%!3K@mli_ywro;3uTvp#g!$*G*K?h|aoI zXtG=2H6>2UKz4LON>kDF%*3h8*5Fuc60K-6jZ0UTlbG4eWRlt0L8Hs6o7CR(8UkS_ zlbKEa*e>|pbI(2Z+;i?d_ug~g!yELCyY#&4@$qts{BABU*nRM5|2zZw%|(}m)}2GZ zr6|sLggO@^scm)~LVB5rGw(*{lg`n&i{3_`L-;nGCH;~oXMQ@rqE=tviWUDHrT+^4IX5cAuxw-|TJ2qepaf z0*yzX8blJj*Yg5yD6~5*Q?^n8X4(Zr`E4`Y^J0A1W=83Fk*koA_$|0M*CMImsBXzY zqD5zx?cC37rS>7W6stL1j;Y>1Go;U6yL#28RrY3XX{v9D8$}hf8u<-m5Vr~+K9q=G z=hCsvq1oz|@@<66?*P~izys_ASOAa*&_uu|C19WW@p@8;Dv7_dN9TQn`xeN4Lg9Ze zTFBl>&>mWc`|CCMLY{tm-jFk5NEZ8z5?L1j`njV9+x-lG~JgkTB-XP$%%doF-h_q)~Kv z+naoR4{7))*qz6U(GmQ2MRn|RgmFLkyCOYJzb_@RQH#ImD#3l*cVWAwIJju(HH0#Q zXjvPLe^X*rXEsxTxHIS$+7%k?VG9$;UjI7iPsg2|^@{9t*y zoO2q<2;DmW6WCjtM7J!#IZ~4Fh*9!6Ym9~e*o|RXaR)HV&hw|=a?SUuo6GIwOerom(EPLb#$c*eLiB@6{0I?Kk;Be+RTMm0p3d~-Q}TpynQ;{U zvIeRMOi)%f_kw7Gw#afL>co@gelxaAQ2Kbwkn>J#kAdTMW|o)7W9 zP?CR4)fq8c2a8V?zgRNt7&T}0Nk1~!#|`dLgL~YNJ!;4f8x}+i?ufw_F(gF{_K3mU z7y*{?wjpUyeo8*H_JTCzED9SIPiW+3Q=jC%fl?=qtDK`MXT)fUSY44MXT*{kNh<`x zV1A&Ks4bHYV%sE3tiHb*QE{5SCkM8MG_J5BJtRt>^dS7}HCr@yDI=?UH2DM(6?}Po zKNtUg%@aLKNw>S;@#Bd_j4b!jWFeu2DR|`j37M>`Y+h9c^ERCeSdv5Vogyc}cP*+) zIsI<7yP|}>rjru-npH*k*A-}^ler$R+Q87)Eh|J-h3tC{DXF|y!d6OTHy8;Ky&*SN zx!4=dg;krA*_#?fDmS$v()(sI3$%*?I)kmsm)tC5H&C*h#S)?-#27c)*-+BLjb?T< z4iS1ZUPMM4HM2n58K9l)#w>hxZI%K~Rfhb3HX_Hj*A|FH{0Dv!g`ax55g%IT#(e<^ zE*;25VqE&POClBaIpGjmCeTuWmJ75DXrn@)0)BU^GXpFkp1RXUA1G8@^zbiAZW;#F+cANZ=!V15D zX_h;xmK?A)0a05il2@A!nx5YsD!%dsEp{Mc4 zrlW`puB}c)G^fC*#*jQc0-3%zVJc+-L}>YGNw*{*4oG&<*i)mAi?0-tl1C_=e;FUC zSy;}mBzn8VvFyi9^XV{*n}Ayy742y{;Nu%fCCd6e4XsU4v_FdKqv${^Gw&iTvCJHQ zT(ey4gFN9H&ffe&kH$2RKUj3CXsG7JWg%1M@S+Q;7xb6pBZVXGcXC4Nie7O z`)o*RdU#Js+43IV6I0e)ADp;9maRyaUv|q@WJ~$Wq|PS*2rmU8SNdnD{+vKm(%Aud z5y!s-tU-Vu0AC}jZ*STc71uYD9L5(F)q7hxZ2z9SNAQ+k1%l-Sy3*!kd-MN%R>(tk z&#wVk3$PCQ%46E+ljlw>HT)qooq?wK%`v;|kV8$SfoDlW5ijIkLW-vW>Ei%GvS;E& zgpP{an*2|DIbH%4DLipnd?br&z#qP3=y@BYZvtcjTm>1XtGR>EhH4Pt#{e^tBLoek zC44Qw761rZ{vrT8ZQW-68qi|^!W&FjZxNYSPb@Y4a=Lr?TOc%Nu4O*YGfnj%9z}cj zcR)gT&+P;Xwg4}f4I7DvfQd@UVhHlFr1z)L@FIYak_yilxay`~dov}L8Aw-NT@Z95EJYon?ulfq`kqeCnn@ZcRpNvpSG-a;uC$FRZDFOOSA>6C>+d0XVaPgv z)VQE`-W{#3R~FHlPge9-;HrBRlDUqq>@Drx8%as+T{EB_UU=LF(f<}=Cids{yn0a~yk1!jcZR;#k7DrDlNEvYRcz@ojR(E}W4`a7MmKASx2x z^1`hsTp&Xj)on+o@y@!X>!75_V^-oOjmK1ZM8?DoG;o4N32?z%+buH$cmEL?Q_ zugUe6j32c-RCA2Jh%>!5)g1L75bN}KuQ#21)cS!pApU}=(9*%AjxWS1U!5ubx1c=% zKo}j~IQ$SU*>^TxuxkUUyS2h+7DJ+NFV4M0iD4GUT%$mXaCgQ{d5)jjuT_J_s0_Z* z`23!>4j#<3;D6e06Vv35T1^Mv-v6l>{VDiHPZgr$5w3KYvGs6|N=sUI5zBnn2^^w6 z!d`bp@X_H0iHapHys+#mVaQK#>(TGK#lZXzsQ(E-0#zx13_uQ`0Eol-V@qiz!u^~T zf3BC|!9yl|^4J1keORZ%?;p!in2F$V7`mS&pG@t+#m~Ji&C@~e*nlv=Dga29cs(>2 z0EBdC#)b);bRriSan*^vNQp0>&>$1Obs~+m64}?@c%ev&F5|_g%}F!sNRgJPd~c_x z-QVnQCSNLV;Jv4Rj{b<}zm$sBjBWZD) zm+Ne8D&aFoEBT{*$B13zT1V&u$~#VZZ&6-sI{OoSNShi)X?JNA%KD6+y2z}R1IQjwC< z;_i+huKZk9t3|1-y2Yw36BR~wW_5JjLQ#{6*qUV&cX8dHai=0X3}toqo)#Y- zqYjcTHll6e`^79ae0^abhq_3psD|&RGfsymiw<)rNZJPcz=nKMRUTBu4rSC zfjnQHl^Wthj3h{IDd&Y*!#wF+W#eZ15gEzOM7NViZ=cW{xu2_Lwj*&axo`D4)Ej<# z^**!)gFmo9q1#p>Nj^zf9rU#c!49E%M}SIhk;7iv8&`D&e7Mms#dVS|(2V_^L4QX( zw!-Z76htR+?{yGc<(V>rSCSfo*xMfPHp3v%j`snBqTSo(!^dF8BhXd_x|)JJI(@hv zR0FcA)4QX!!z*pDl>s|JCmdwNt+cABO;|X7 zjq1OGzELhbUghEPiWy!rp-7J^()%5Qt42+yN+K0a=M~LY)J%%yz^eY*h-F?(=ZPph zSLcxP8#eV$F%I579oRxi-sX#{G~6H9TL70AQXE?{i{crlu|j0e@Uc+IQ>jW_Y8UjEn<37G)ySvUIX#EoECjZoZBgCbcS+YEVc;OjauyO;OuJT!j`@Ff0oU8$x>Wg~cj_458E;Nrjk@`X)|w zl9QJ?iNR`5Fe+un)E{Tm+{CE)9;0cKix}!v2E&h2X>X#^CaJ#Jur|42g}glD_c@I- zHY|G~OESsh%^{Au$?_yWj1q359?_FeYOF+4dma&$Rm>$zE)5BX6|4GS9vydyis-Ya&hUjd3 z9N6TolDvBo;In0(c^7v+W@yxWH6gp}1xGmGfAN3s1olBioN7n5n^!AHq;Z$YZa zVh@mr6hsv%ZxZ-`ippeL({0L9>ZZUkaZb?X}B#CcEg`WhLXfC7`2&Ue=WA zv~P%-QllE51{O0w8$c((Nq|==(DEdwkc5wb>Pdip&?_7LG^+ySqh_(S+ge>#S+-)M z(B#F<9gWyVp-8Q)z(&Y3C+r0rHVZ<$>xB_%?(Mr@n z3(P+NAXh^Rd0KMzLK@>c0IC5t0=xlm24FrwK0q#j?CKGaY5+C?ya)idnP|puf&4Cj zTrZnJy4eZ%Jd~F55M{<%*qA8y?)Xdsn|brpmrx&Fo(nwdU>7TrxW*%sEkWPRu-eaAVY*yGKPz zw*-4HID`p@7^=>?N%!eHs4UZ8MH6qZCOL*a^;du4*8 zcBJ8WLo9#UsZeBn?byypofN6^#avr}=Kp5N_}?^Sw?DI&F1}$R|F&rUZL$2)$jUn- zb*{>)^i`f7!j)pOvBjOb1Qdw_xPB#%EZCP{Q%HN|bD9pUrZMv7Pf?|Ydvlqw zLe0LVFXz`R<LH7?G&kPK*!D2_Npf#%nLqjziEfP5PD>hR5!^Pc?f+ zHEMzdd}{^&5t?J9Y1dciV{&)zFXs+`LVhgCyI4<~q75rR`vCw{L_9%^bSdw7c#_}e zHqO}7i=?41+c?9-dAj&C@=TwHz7yZ+3n{;(G$&Aa-R`fIv*n@RIugghLeh^kr5XGb z*|z6d>ddsg9(!C3PmrL$%@^m|>02w|Tv$>0%$2}YxhSP1w;b2B`UAo5`jw7~Yk)5h z^tN?kSgMmm_Gas@(VkDio%HIWehwQSdQXWig)bghhme9492($tw3iD<4!x!_{u_+R zyI2X*N92ho9uVPyhyM(43E*ph{{S#_B1Qo8ZelP;$_AF{lpx9;HO^9q?7Sg zY9OxN*5z#v`h$M@OJR&0ed%}TPh|5*?(Cb_fj@?|2>|k0e?+D3Ou9BlWuAcl0{YJY z{t94)&HPY|rhP9)VYr-M$pC?n75@eue+Q5s4tXH`17K$Kkh)P-I@-_M!^6)FA z{%z2PUtsbND!dmY_qT5k>Lfg~Pl2>~Ms0Si_D31h%!+)THmkw-H_cMDna zh!GnSv)NrQq<0G{#xA@`WmQEg!I@1Jl}%z0E}N?4$7sbGwu}65vQ??wq_z|w#RjL6 zoO63#0-5YqrKkGq`|5koy?xJj&pGpxoAei-(z$=1ljES^`tGl)M*pVgVs0t@y^D>r zv2)b1Jjn%^FXaIiNcn(;Qi04#g>Vqzj!>b0(^*|yjma8>dV~gqM*U-FE!`gfXXhbyl=QVG*%#Ip zAru1`mT*K4DQihmkwwX{`h#IrR+_Oz)jc zp}XQAyZ)7-*T=6F@N^8vNcKLihC_x`nw*HJN(mN|-U~5h&IMDI03P0)j2jE801Pf7 zP6xxHq_kl!KNubjs9M0U`U0VmurDBG&l_5(Jb-|g{tr%v-cwXU?}{HT+Q5QTXG^+h zF)fwigqFXhG)f=7LnK)f(Bz5Lgn-2_(L2iu=tJ>=vQ`*ZpRD|&%wm|sdaX~C~yutV)i>VCM&WaiJB+`RAE941tOC{QIjR;J{b0kS|AKV zm@lUDT39#>-A5q(88rsxT!M4dz;MAnt zmX^V%DPl+!{WwFl6FGpuA<86q$>l<1{1i<|^}zn{DX^H*NNEOLUW zp*u0P1EG=9PYsvGDpXn9pQ7@9kZd?JEoBTE{s3+jHZ3(rJuas>=lNGI?7h&PsOnER zciq&MZ2Olfnkh;g7`|^`^IiU%{I{HQwNF?mTDI_v>ptgv=k2p^|L*KEWo2KXFSGYq z+dJK7yA%06Hv%_~Ct`b~giB70O(#a9ciGwd^-Vu~?Zemp_{1VxlVA%kynf%k{+_#a z(cL=#){XonclQndqT4&ybD?yREq}1KB2n2quP#=0EUoQ?=E=U#tBKiQb_^(ePdN@DnG>uv|d#1y9OQLW+(tMNgmD(#2ms=AiN+#en3D?VXmhE$7a5giC=^GNhAMYjeDC=vm@3dr3Da|%SFKCM4fD1{QQKX1;}af+ zSP?PIxx9W0dGW(nH( zz76bcSAJgudt0C}-CzauBLk%_8zcxLwZ4Fn@>1%)nVJPlY@9`PEu1B`+jG|2A69U? zRx_q7(HF6X^*Os~3$jLqHElPcZAmV|8n!3}_Fm;lFq~{j!^w8WMhqu-W*JU4u?c3j zHw1o`CWu1TaSo;uC|6qFiNQ0eg7!hPq!R?Baa{j(`wqsz>sveOVy}NCivWfABw6(< zfe4xkKG4x*A3{?QJSenl;DHQtS`1FgV8(?(03sEU1I>k#qAIU6S$x`bME0fnj-@*{ zm9{3^WHCF-wpTJrYpSYkRnsG*q+FJL(FaTYjA|;4F(_2=+a~=T)7{B8N6xk=LeS=O zYo0C#KvxY zEx*^rF7PyD7FklO0x%hNRY5vaN3($bnS?$GlOmbe>dxh!XgOL;D!D%7|ub<%P~Yv@_- z3^MMh)03qMFFB9k)RBo#mHoc*uccsfCI@?lWc8D>C&_c#O>f6>HXg$9M=L9 zvZ{#_5wwp-13K5SF{4t@bfv2jevzy4yr(jpbz)DA1^i>eR3I1>#>CU$eXLM;kej$H zS(+Ims+m2HlhE0(=LE4gPicWKaLS5Udh0ZbeR^N?RHwDepo zMZg#P5i+NLuo3dB#87hKTV*p!1e*N{o1)P%M=jTJjOzhYc%lEY=jxHWOv?i%|3ckm z{_5A}k6icPWx5_P?#t5Ez4LD+Ui$i-zMnD&e*J(i(1qfbjTq@BX+ z>tS!z(wO#G0nOM45fH6*rBA=oRmNB>`lj$<6I*r_nTZ(SJf@ZtY12AClXfBaxfWfDuRmyt(i|q?B!!~quXn5Dl|B@PY zrg$&3M!VA72P)CoYGng7@H}@42vGX$XCq;yViHy|I7N;GMZf%Pq>bzeh<@f!3i7RT z2;nH&i7|5Ktc*mGD5znFV^Bu6FxXIdO2M!0DR}OaU`Hy#>i~vD6Gv6U8VrQqRI}n$ z{n+3j!mHTI1{SO~6*gEUJhdh}h^c?Dv(54Q(1Zs&LH#fN-p=%!-wQiojzV$};V(0Fq{5^BcKjVwHBl zxt5>j6yM9KTFj}sms7KtQ?ry)muT2}qvU4Y9ed)?;lz0~i&*<#(jBmQ}xiy7Gj zLk$coWD6w&qM49LYSUx~N4{#eq=MvlESkZO8cfwAH0t{X1nYT7Zi+_+>R9?@{QG;) z&~_~G(285H*jH)&1IP@-x9xk=<~)fnDF|x(FAsi1L-35=S8pTj0(9%Kr~F-zvrfGOli z<#q6c8m!-e@|^hQaJnRGGYV1FAlu zfmD78i8<=$&UnXbV|2`|kWG#Tpy?~mVd^7)|30XCM=uH`KrdXTw1v<&(- z$jo<|&+C5kd9(i!DPMkt&ZBcL7e1ok@vzQCZ+}?RLFX-x>;HD5p011+_}p}59c5W_ Ze^+0ST4!WsN2J+aJEmU1H6{{kw2OjQ5? delta 6218 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 response.json()) + .then(data => { + console.log(data) + end_page = parseInt(data.end) + if (current_page === end_page){ + document.getElementById('forward').classList.add("disabled") + document.getElementById('forward').classList.remove("waves-effect") + } else { + document.getElementById('forward').classList.remove("disabled") + document.getElementById('forward').classList.add("waves-effect") + }; + var table = document.getElementById("item_table") + while (table.rows.length > 0) { + table.deleteRow(0); + } + const header = table.createTHead(); + const row = header.insertRow(0); + + var header_database_id = row.insertCell(); + header_database_id.classList.add('center') + var header_barcode = row.insertCell(); + header_barcode.classList.add('center') + var header_name = row.insertCell(); + header_name.classList.add('center') + header_name.classList.add('hide-on-med-and-down') + + header_database_id.innerHTML = `Database ID`; + header_barcode.innerHTML = `Barcode`; + header_name.innerHTML = `Product Name`; + + let colorstate = 1; + data.items.forEach(transaction => { + console.log(transaction) + var row = table.insertRow(); + + var row_id = row.insertCell(); + row_id.classList.add('center') + var row_barcode = row.insertCell(); + row_barcode.classList.add('center') + var row_name = row.insertCell(); + row_name.classList.add('hide-on-med-and-down') + row_name.classList.add('center') + + + row_id.innerHTML = transaction[0]; + row_barcode.innerHTML = transaction[1]; + row_name.innerHTML = transaction[2]; + + + if ((colorstate % 2) == 0){ + row.classList.add('grey') + row.classList.add('lighten-5') + } + row.classList.add("custom_row") + row.addEventListener('click', function(){ + clickRow(transaction[0]) + }) + colorstate++ + }); + }) +} + +async function clickRow(database_id){ + let item = await fetchItem(database_id); + await populateFields(item) + +}; + +async function populateFields(item){ + document.getElementById("database_id").value = item[0]; + document.getElementById("barcode").value = item[1]; + document.getElementById("name").value = item[2]; + document.getElementById("QOH").value = item[19]; + + let location = item[16].split('@') + await setLocation(location[0], location[1]) +} + +async function setLocation(zone, location){ + document.getElementById('zone').value = zone + await loadLocations() + document.getElementById('location').value = location +}; + +async function fetchItem(database_id){ + const url = new URL('/getItem', window.location.origin); + url.searchParams.append('id', database_id); + const response = await fetch(url); + data = await response.json(); + return data.item; +} + +document.getElementById('forward').addEventListener('click', async function(){ + current_page++ + await fetchItems() +}) + +document.getElementById('back').addEventListener('click', async function(){ + current_page-- + await fetchItems() +}) \ No newline at end of file diff --git a/templates/itemLookup.html b/templates/itemLookup.html new file mode 100644 index 0000000..4ef45ec --- /dev/null +++ b/templates/itemLookup.html @@ -0,0 +1,145 @@ + + + \ No newline at end of file diff --git a/templates/items/index.html b/templates/items/index.html index 4bba343..36d1c85 100644 --- a/templates/items/index.html +++ b/templates/items/index.html @@ -385,10 +385,10 @@ button_group.style = "margin-bottom: 0px; padding-bottom: 0px;" button_group.innerHTML = ` ` diff --git a/templates/items/transactions.html b/templates/items/transactions.html index 42f1e36..40e0690 100644 --- a/templates/items/transactions.html +++ b/templates/items/transactions.html @@ -30,6 +30,15 @@ pointer-events: none; opacity: 0.5; /* or your desired degree of transparency */ } + .custom_row:hover{ + background-color: rgb(230, 230, 230) !important; + cursor: pointer; + } + .fixed-bottom { + position: absolute; + bottom: 10px; + width: 100%; + }
@@ -89,6 +104,41 @@
+ + + + + + +
+
+ +
+
Enter Transaction Receipt
+
+
+ + + +
+ +
+
+ + + +
+
+ + +
+
+ + +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/webserver.py b/webserver.py index ead8b44..22515e6 100644 --- a/webserver.py +++ b/webserver.py @@ -1,4 +1,4 @@ -from flask import Flask, render_template, session +from flask import Flask, render_template, session, request import api, config app = Flask(__name__) app.secret_key = '11gs22h2h1a4h6ah8e413a45' @@ -20,6 +20,11 @@ def item(id): sites = config.sites_config() return render_template("items/item.html", id=id, current_site=session['selected_site'], sites=sites['sites']) +@app.route("/transaction") +def transaction(): + print(request.referrer) + sites = config.sites_config() + return render_template("transaction.html", current_site=session['selected_site'], sites=sites['sites'], proto={'referrer': request.referrer}) @app.route("/workshop") def workshop():