File size: 2,265 Bytes
fb1a823
c41b38b
 
844e1ad
1f34a95
fb1a823
7a171bf
7aa5221
 
00286f9
fb1a823
fa29632
1f1d6d4
fa29632
844e1ad
 
 
 
aba4a6b
 
 
844e1ad
 
 
f038ea6
7a171bf
844e1ad
 
 
 
 
 
1f34a95
844e1ad
1f34a95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
844e1ad
 
 
 
 
 
 
 
aba4a6b
1f34a95
844e1ad
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import streamlit as st
from PIL import Image
from ocr_engine import extract_weight_from_image
import urllib.parse
from datetime import datetime

st.set_page_config(page_title="βš–οΈ Auto Weight Logger", layout="centered")
st.title("βš–οΈ Auto Weight Logger")

img_data = st.camera_input("πŸ“· Capture the weight display")

if img_data:
    st.success("βœ… Image captured successfully!")

    if len(img_data.getvalue()) > 5 * 1024 * 1024:
        st.error("❌ Image too large (>5MB). Please try again.")
        st.stop()

    image = Image.open(img_data)
    st.image(image, caption="πŸ“Έ Snapshot", use_column_width=True)

    with st.spinner("πŸ” Extracting weight..."):
        weight, confidence = extract_weight_from_image(image)

    st.write(f"πŸ› οΈ DEBUG: weight = {weight}, confidence = {confidence}")

    if not weight or confidence < 80:
        st.error(f"⚠️ OCR confidence too low ({int(confidence)}%). Please retake the image.")
        if st.button("πŸ” Try Again"):
            st.experimental_rerun()
        st.stop()

    # βœ… Prepare data for preview and URL
    device_id = "BAL-001"
    image_url = ""  # optional - add later if you host the image
    captured_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    status = "Pending Submission"

    # βœ… Show full preview
    st.markdown("### πŸ“‹ Record Preview (before sending to Salesforce)")
    st.write({
        "Auto Number": "Will be generated in Salesforce",
        "Captured Weight": f"{weight} g",
        "Captured At": captured_at,
        "Snapshot Image": "Attached" if image_url else "Not available",
        "Device ID": device_id,
        "Status": status
    })

    # βœ… Encode for Salesforce
    encoded_weight = urllib.parse.quote(str(weight))
    encoded_device = urllib.parse.quote(device_id)
    encoded_image_url = urllib.parse.quote(image_url)

    salesforce_url = (
        f"https://autoweightlogger-dev-ed.my.salesforce-sites.com/"
        f"weight_logger_page?WeightInput={encoded_weight}&DeviceID={encoded_device}&ImageURL={encoded_image_url}"
    )

    # βœ… Show Salesforce link
    st.markdown("### πŸ“€ Send to Salesforce")
    st.markdown(f"[βœ… Click here to confirm and log in Salesforce]({salesforce_url})", unsafe_allow_html=True)