File size: 5,738 Bytes
fc6f62e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import streamlit as st
import datetime


def main():

    # Creating the Contract Creation Workflow Screen
    st.title("1 - Contract Creation Workflow")

    # Contract Details Section
    st.header("Contract Details")
    contract_type = st.selectbox("Contract Type", ["","Type 1", "Type 2", "Type 3"])
    start_date = st.date_input("Start Date", datetime.date.today())
    end_date = st.date_input("End Date", datetime.date.today())
    parties_involved = st.text_input("Parties Involved", help="Separate multiple parties with commas")

    # Rich Text Editor for Contract Terms and Conditions
    st.header("Contract Terms and Conditions")
    contract_terms = st.text_area("Terms and Conditions")

    # Supporting Documents Section
    st.header("Supporting Documents")
    uploaded_files = st.file_uploader("Attach Supporting Documents", accept_multiple_files=True)

    # Displaying Contract Details
    st.header("Contract Details Summary")
    st.write(f"Contract Number:")
    st.write(f"Contract Type: {contract_type}")
    st.write(f"Start Date: {start_date}")
    st.write(f"End Date: {end_date}")
    st.write(f"Parties Involved: {parties_involved}")

    # Displaying Contract Terms and Conditions
    st.header("Contract Terms and Conditions Summary")
    st.write(contract_terms)

    # Displaying Attached Supporting Documents
    if uploaded_files:
        st.header("Attached Documents")
        for file in uploaded_files:
            st.write(file.name)
    


    # Contract Approval Screen
    st.title("2 - Contract Approval")
    user_role = st.radio("User Role", ("Contract Approver", "Manager"))
    contract_details = {
        "Contract Type": contract_type,
        "Start Date": start_date,
        "End Date": end_date,
        "Parties Involved": parties_involved,
    }

    st.header("Contract Details")
    for key, value in contract_details.items():
        st.write(f"{key}: {value}")

    # Highlight pending approvals with color coding
    if user_role == "Contract Approver":
        st.error("Pending Approval: Contract Approver action required!")
    elif user_role == "Manager":
        st.warning("Pending Approval: Manager action required!")

    # Comments Section
    st.header("Comments Section")
    comments = st.text_area("Comments")


    # Screen for searching and retrieving contracts
    st.title("3 - Contract Search and Retrieval")

    # Search Criteria Fields
    st.header("Search Criteria")
    contract_number = st.text_input("Contract Number (Exact Match)")
    vendor = st.text_input("Vendor", help="Enter vendor name or id")
    contract_status = st.selectbox("Contract Status", ["","Approved", "Approval in process", "On hold"])
    start_date_range = st.date_input("Start Date Range", help="Select the start date")
    end_date_range = st.date_input("End Date Range", help="Select the end date")

    # Export Options for Search Results
    st.header("Export Options")
    export_format = st.selectbox("Export Format", ["CSV", "PDF"])

    # Simulated Search Results
    st.header("Search Results")
    # ... (Add simulated search results here)

    # Exporting Search Results
    if st.button("Export Results"):
        if export_format == "CSV":
            # ... (Add CSV export functionality here)
            st.write("Exporting to CSV...")
        elif export_format == "PDF":
            # ... (Add PDF export functionality here)
            st.write("Exporting to PDF...")
    
    # Contract Amendment Workflow
    st.title("4 - Contract Amendment Workflow")

    # Trigger Condition - Change in Contract Scope
    st.header("Trigger")
    change_in_scope = st.checkbox("Change in Contract Scope")

    # Display fields if change_in_scope is True
    if change_in_scope:
        # Fields for Describing Proposed Amendments
        st.header("Proposed Amendments")
        description = st.text_area("Description", "Enter the description of the proposed amendments here.")
        reason = st.text_area("Reason", "Enter the reason for the proposed amendments here.")

        # Approval Process for Amendments
        st.header("Amendment Approval Process")
        amendment_roles = ["Amendment Initiator", "Contract Approver", "Manager"]
        current_role_index = amendment_roles.index(st.selectbox("Current Role", amendment_roles))
        st.write(f"Current Role: {amendment_roles[current_role_index]}")

        # Version Control to Track Changes
        st.header("Version Control")
        st.write("Implement version control to track changes during the approval process.")

    
    # Contract renewal management
    st.title("5 - Contract Renewal Management")

    # Renewal Triggers - Time-based Alerts
    st.header("Renewal Triggers")
    days_before_expiration = st.slider("Days Before Expiration", min_value=0, max_value=365, step=1, value=30)

    # Dashboard for Contracts Approaching Expiration
    st.header("Contracts Approaching Expiration")
    # Simulated display of contracts approaching expiration
    contracts = [
        {"Contract Type": "Type 1", "Parties Involved": "Party 1, Party 2", "Renewal Status": "Pending"},
        {"Contract Type": "Type 2", "Parties Involved": "Party 3, Party 4", "Renewal Status": "Negotiation"},
    ]
    for i, contract in enumerate(contracts):
        st.write(f"Contract Type: {contract['Contract Type']}")
        st.write(f"Parties Involved: {contract['Parties Involved']}")
        st.write(f"Renewal Status: {contract['Renewal Status']}")
        st.button(f"Renew_{i}")

    # Tracking Renewal History
    st.header("Renewal History")
    st.write("Track renewal history and view details for each contract renewal.")
    st.button("View History")


if __name__ == "__main__":
    main()