diff --git a/public/index.html b/public/index.html index 6f189cc..b7751db 100644 --- a/public/index.html +++ b/public/index.html @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - Ezhisab + PaisaVara diff --git a/src/assets/Image/expenses type .png b/src/assets/Image/expenses type .png new file mode 100644 index 0000000..b77a618 Binary files /dev/null and b/src/assets/Image/expenses type .png differ diff --git a/src/assets/Image/invoiceIcon.png b/src/assets/Image/invoiceIcon.png new file mode 100644 index 0000000..01c97d1 Binary files /dev/null and b/src/assets/Image/invoiceIcon.png differ diff --git a/src/assets/Image/loginbackgound.png b/src/assets/Image/loginbackgound.png new file mode 100644 index 0000000..0b73c60 Binary files /dev/null and b/src/assets/Image/loginbackgound.png differ diff --git a/src/assets/Image/vendor.png b/src/assets/Image/vendor.png new file mode 100644 index 0000000..41a5266 Binary files /dev/null and b/src/assets/Image/vendor.png differ diff --git a/src/assets/css/App.css b/src/assets/css/App.css index 50a0fc6..c89fe4c 100644 --- a/src/assets/css/App.css +++ b/src/assets/css/App.css @@ -128,6 +128,7 @@ body { list-style: none; margin: 0; padding: 0; + display: flex; justify-content: center; align-items: center; @@ -135,6 +136,7 @@ body { .nav-item { margin: 0 15px; position: relative; + display: flex; align-items: center; } @@ -142,6 +144,7 @@ body { font-family: "Manrope"; font-size: 18px !important; color: #002300; + text-decoration: none; } .nav-link:hover { @@ -500,7 +503,7 @@ body { box-sizing: border-box; } .search-container input::placeholder { - color: #a9a9a9; + color: #ffffff; } .search-container input:focus { outline: none; @@ -722,12 +725,13 @@ h3 { padding: 8px 12px; font-size: 16px; border: none; - border-radius: 60px; - background-color: #007bff; - color: white; + border-radius: 10px; + background-color: #FFAF32; + color: rgb(0, 0, 0); cursor: pointer; - transition: background-color 0.3s; + /* transition: background-color 0.3s; */ } + .expense-searchcontainerstart { width: 90%; } diff --git a/src/components/Pages/AppPAges/Dashboard/Invoice/AddInvoice.js b/src/components/Pages/AppPAges/Dashboard/Invoice/AddInvoice.js index fb269e5..7974c61 100644 --- a/src/components/Pages/AppPAges/Dashboard/Invoice/AddInvoice.js +++ b/src/components/Pages/AppPAges/Dashboard/Invoice/AddInvoice.js @@ -288,12 +288,12 @@ function AddInvoice() { }, { row: 2, - column: "col-md-5", + column: "col-md-3", label: "Amount", name: "amount", type: "prefix-input", placeholder: "Amount", - prefixText: "USD", + // prefixText: "USD", }, { row: 2, @@ -309,19 +309,19 @@ function AddInvoice() { }, { row: 4, - column: "col-md-12", + column: "col-md-6", label: "Payment Method Options", type: "payment-method-options", }, { row: 4, - column: "col-md-12", + column: "col-md-6", label: "Payment Method Options", type: "pay-bank-options", }, { - row: 4, - column: "col-md-6", + row: 5, + column: "col-md-3", label: "Due Days", type: "select-dueDays", name: "due_days", @@ -331,14 +331,14 @@ function AddInvoice() { // The "Notes" field is conditionally rendered based on pay_method_status ...(formData.pay_method_status !== "pay_now" ? [ - { - row: 5, - column: "col-md-6", - label: "Notes", - type: "text", - name: "note", - placeholder: "Notes", - }, + // { + // row: 5, + // column: "col-md-6", + // label: "Notes", + // type: "text", + // name: "note", + // placeholder: "Notes", + // }, ] : []), { @@ -450,15 +450,16 @@ function AddInvoice() { borderBottom: "1px solid #f4f4f4", paddingBottom: "16px", height: "50px", + }} > -
- +
+ {/* {field.prefixText} - + */} - - {field.options.map((option, index) => ( -
- {" "} - - -
- ))} -
- ); - - case "payment-method-options": - return ( - formData.pay_method_status === "pay_now" && ( -
- {/* Align items vertically */} - {/* {" "} */} - {/* Extra space after the main label */} - {paymentMethodOptions.map((option, index) => ( -
- {" "} - {/* Space between options */} - - {" "} - {/* Space between radio and label */} + case "radio": + return ( +
+ + {field.options.map((option, index) => ( +
handlePaymentMethodChange({ target: { name: field.name, value: option.value } })} + > +
))}
- ) - ); + ); + + case "payment-method-options": + return ( + formData.pay_method_status === "pay_now" && ( +
+ {paymentMethodOptions.map((option, index) => ( +
handleChange({ target: { name: 'pay_method', value: option.value } })} + > + +
+ ))} +
+ ) + ); + + case "checkbox": return (
@@ -643,47 +659,47 @@ function AddInvoice() {
); - case "pay-bank-options": - return ( - (formData.pay_method === "cheque" || - formData.pay_method === "bank") && ( -
-
-
- -
-
- - {formData.pay_method === "cheque" && ( // Only show this if pay_method is cheque -
+ case "pay-bank-options": + return ( + (formData.pay_method === "cheque" || formData.pay_method === "bank") && ( +
+
- + > + + {banks.map((bank) => ( + + ))} +
- )} -
+ + {formData.pay_method === "cheque" && ( +
+
+ +
+
+ )} + +
- + {/* */}
- + {/* USD - + */} { - setActiveButton(location.pathname); // Set the active button based on the current location + setActiveButton(location.pathname); // Set the active button based on the current location }, [location.pathname]); const dropdownRef = useRef(null); @@ -156,46 +156,46 @@ function BankDeposit() {
-
- - - - -
-
+
+ + + + +
+
- - - + + +
@@ -224,93 +224,73 @@ function BankDeposit() { ))}
-
- + - -
+ ))} -
+
-
+ + +
- - USD -
-
+
- - USD -
+ +
+ +
+ +
- - -
- + + +
+
diff --git a/src/components/Pages/AppPAges/Dashboard/Invoice/BankDepositTable.js b/src/components/Pages/AppPAges/Dashboard/Invoice/BankDepositTable.js index 9ddd464..a13585a 100644 --- a/src/components/Pages/AppPAges/Dashboard/Invoice/BankDepositTable.js +++ b/src/components/Pages/AppPAges/Dashboard/Invoice/BankDepositTable.js @@ -270,7 +270,7 @@ const BankDepositTable = (props) => { return (
- + */} {paginationItems} - + */}
); }; @@ -675,10 +675,8 @@ const BankDepositTable = (props) => { style={{ paddingLeft: index === 0 ? "30px" : "0", cursor: "pointer", - borderTopLeftRadius: index === 0 ? "60px" : "0", - borderBottomLeftRadius: index === 0 ? "60px" : "0", - borderTopRightRadius: index === 5 ? "60px" : "0", - borderBottomRightRadius: index === 5 ? "60px" : "0", + backgroundColor:'#282e26', + color:'#ffffff', textAlign: "start", alignContent: "center", }} diff --git a/src/components/Pages/AppPAges/Dashboard/Invoice/Invoice.css b/src/components/Pages/AppPAges/Dashboard/Invoice/Invoice.css index 81dc0b9..60bc52a 100644 --- a/src/components/Pages/AppPAges/Dashboard/Invoice/Invoice.css +++ b/src/components/Pages/AppPAges/Dashboard/Invoice/Invoice.css @@ -94,7 +94,7 @@ .input-group .form-control { border: none; - background-color: transparent; + /* background-color: transparent; */ outline: none; /* Removes the outline */ } @@ -310,8 +310,7 @@ input[type="color"]:focus, width:.30%; /* Make it 30% smaller (i.e., 70% width) */ } } - - +/* style for dropdown --> select type in bank deposite and atm deposite */ .custom-select { border: none; /* Remove default borders */ border-bottom: 2px solid #e4e5e7; /* Add a bottom border */ diff --git a/src/components/Pages/AppPAges/Expense/expense.js b/src/components/Pages/AppPAges/Expense/expense.js index dd3e4b3..88d1998 100644 --- a/src/components/Pages/AppPAges/Expense/expense.js +++ b/src/components/Pages/AppPAges/Expense/expense.js @@ -9,6 +9,9 @@ import { useNavigate } from "react-router-dom"; import AddExpenseTypeModal from "../ReusableForm/AddExpenseModal"; import AddVendorModal from "../ReusableForm/AddVendorModal"; import Swal from "sweetalert2"; +import invoiceIcon from '../../../../assets/Image/invoiceIcon.png' +import expensetype from '../../../../assets/Image/expenses type .png' +import vendor from '../../../../assets/Image/vendor.png' export default function Expense() { const { user } = useContext(AuthContext); @@ -448,24 +451,24 @@ export default function Expense() { try { let response; if (editingInvoiceId) { - // Editing an existing invoice - const originalInvoice = invoices.find((invoice) => invoice.id === editingInvoiceId); - if (!originalInvoice) { - console.error("Invoice not found for editingInvoiceId:", editingInvoiceId); - return; - } + // Editing an existing invoice + const originalInvoice = invoices.find((invoice) => invoice.id === editingInvoiceId); + if (!originalInvoice) { + console.error("Invoice not found for editingInvoiceId:", editingInvoiceId); + return; + } - // Determine the new status based on payment method and remaining amount - const newRemainingAmount = Math.max(0, originalInvoice.amount - (formData.pay_amount || 0)); - let newStatus = originalInvoice.status; // Start with the original status + // Determine the new status based on payment method and remaining amount + const newRemainingAmount = Math.max(0, originalInvoice.amount - (formData.pay_amount || 0)); + let newStatus = originalInvoice.status; // Start with the original status - if (formData.pay_method_status === "pay_now") { - newStatus = "paid"; // Always "paid" if paid now - } else if (formData.pay_method_status === "pay_later") { - newStatus = "unpaid"; // Ensure unpaid if paying later - } else if (newRemainingAmount < originalInvoice.amount) { - newStatus = "partially_paid"; // Adjust if partially paid - } + if (formData.pay_method_status === "pay_now") { + newStatus = "paid"; // Always "paid" if paid now + } else if (formData.pay_method_status === "pay_later") { + newStatus = "unpaid"; // Ensure unpaid if paying later + } else if (newRemainingAmount < originalInvoice.amount) { + newStatus = "partially_paid"; // Adjust if partially paid + } // Ensure pay_amount is included when editing @@ -625,15 +628,148 @@ export default function Expense() {
-
-

Expense

- + + + + + + +
+ {/* Invoice due this month */} +
+

+ $500 +

+

+ Invoice due this month +

+
+ + {/* Last 7 days sale */} +
+

+ $1900 +

+

+ Last 7 days sale +

+
+ + {/* Expense this month */} +
+

+ $0.00 +

+

+ Expense this month +

+
+
+ + +
+ + e.stopPropagation()} style={{ - width: "700px", + width: "1200px", backgroundColor: "white", margin: "100px auto", padding: "20px", @@ -694,13 +830,16 @@ export default function Expense() {
-
+
-
+
-
-
-
+
- + {filteredExpenseTypes.map((service) => (
-
-
-

Payment Method :

- - - -
+
+
+
-
+ { + // Allow only numbers and a decimal point with two digits after it + e.target.value = e.target.value + .replace(/[^0-9.]/g, '') // Remove non-numeric characters except the decimal point + .replace(/^(\d*\.?\d{0,2}).*/g, '$1') // Allow only two decimal places + .slice(0, 12); // Limit input length (10 digits + 1 decimal + 2 decimal places) + }} + onChange={handleChange} + /> +
+
+
+ -
- )} +
+ + + + {showPaymentOptions && ( +
+ {[ + { value: "cash", label: "Cash" }, + { value: "cheque", label: "Check" }, + { value: "bank", label: "Bank Card/ACH/EFT" } + ].map((method) => ( + + ))} +
+)} + + {(formData.pay_method_status === "pay_later" || formData.pay_method_status === "credit_invoice") && ( -
+
@@ -1021,7 +1308,7 @@ export default function Expense() { alignItems: "center", }} > - USD - + */}
)} -
-
-
- - USD - -
- { - // Allow only numbers and a decimal point with two digits after it - e.target.value = e.target.value - .replace(/[^0-9.]/g, '') // Remove non-numeric characters except the decimal point - .replace(/^(\d*\.?\d{0,2}).*/g, '$1') // Allow only two decimal places - .slice(0, 12); // Limit input length (10 digits + 1 decimal + 2 decimal places) - }} - onChange={handleChange} - /> -
-
+
@@ -1115,7 +1352,8 @@ export default function Expense() { + + {/*
-
-

Show

+ +
+
+
Show
+
+
@@ -486,7 +526,7 @@ const PayrollTable = ({ diff --git a/src/components/Pages/AppPAges/ManageSettings/Settings.css b/src/components/Pages/AppPAges/ManageSettings/Settings.css index d06d49e..5e7170b 100644 --- a/src/components/Pages/AppPAges/ManageSettings/Settings.css +++ b/src/components/Pages/AppPAges/ManageSettings/Settings.css @@ -575,6 +575,7 @@ input[type="date"] { .pagination .page-link { padding: 10px; border: 1px solid #F4F4F4; + background-color: #b6d7a8; border-radius: 50%; color: #002300; text-decoration: none; @@ -586,30 +587,17 @@ input[type="date"] { transition: background-color 0.3s, color 0.3s; } .pagination .page-link:hover { - background-color: #f2f2f2; + background-color: #ffaf32; } .pagination .page-item.active .page-link { - background-color: #FFFFFF; + background-color: #ffaf32; /* Yellow background */ color: #002300; border-color:#fbfbfbfb; border: 1px solid #d3d3d3fb; } .pagination .page-item.disabled .page-link { opacity: 0.5; + pointer-events: none; } -.pagination .prev-next { - height: 36px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - border: 1px solid #F4F4F4; - color: #002300; - cursor: pointer; - transition: background-color 0.3s, color 0.3s; -} -.pagination .prev-next:hover { - background-color: #f2f2f2; -} diff --git a/src/components/common/FormLayout.js b/src/components/common/FormLayout.js index 918ba1a..34fa414 100644 --- a/src/components/common/FormLayout.js +++ b/src/components/common/FormLayout.js @@ -1,9 +1,9 @@ import React from "react"; import PropTypes from "prop-types"; -import backgroundimg from "../../assets/img/BackgroundBody.png"; +import backgroundimg from "../../assets/Image/loginbackgound.png"; import { Link } from "react-router-dom"; import "./Formlayout.css"; -const FormLayout = ({ logoSrc, backgroundImageSrc, children, TopImage }) => { +const FormLayout = ({ backgroundImageSrc, children, TopImage }) => { return (
{ }} >
{/* Left side: Form */}
{ boxSizing: "border-box", height: "100%", overflow: "hidden", + boxShadow: "0px 0px 10px rgba(74, 85, 70, 0.25)", + borderRadius:"40px", position: "relative", "@media (maxWidth: 768px)": { width: "100%", @@ -56,22 +44,7 @@ const FormLayout = ({ logoSrc, backgroundImageSrc, children, TopImage }) => { }, }} > -
- - Logo - - -
+
{
{/* Right side: Background image */} -
- Background - Background -
+
); diff --git a/src/components/common/Login.js b/src/components/common/Login.js index c43534e..52e576a 100644 --- a/src/components/common/Login.js +++ b/src/components/common/Login.js @@ -6,7 +6,7 @@ import backgroundImage from "../../assets/img/Frame 812.png"; import LoginPage from "./WithUi/LoginPage"; function Login() { return ( - + ); diff --git a/src/components/common/WithUi/AccountCreate.js b/src/components/common/WithUi/AccountCreate.js index 562acf8..adb8c08 100644 --- a/src/components/common/WithUi/AccountCreate.js +++ b/src/components/common/WithUi/AccountCreate.js @@ -305,6 +305,7 @@ function AccountCreate() { fontWeight: "700", lineHeight: "40px", textAlign: "left", + // width:'500px', marginTop: "100px", }} > @@ -314,8 +315,8 @@ function AccountCreate() { className="mb-3" style={{ fontSize: "14px", color: "#002300" }} > - Start managing your finances effortlessly. Sign up to access your - personal ledger and gain control of your transactions with ease! + {/* Start managing your finances effortlessly. Sign up to access your + personal ledger and gain control of your transactions with ease! */}

- Enter the Details + Enter store details

- Get started with your personal ledger. Fill in your information to track - transactions and manage your finances seamlessly! + {/* Get started with your personal ledger. */} + {/* Fill in your information to track + transactions and manage your finances seamlessly! */}