Merge branch 'Purchase_Invoice_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Finance_Export_Functionality
This commit is contained in:
commit
8fc49ab4a7
@ -147,13 +147,13 @@ const TaskReportList = () => {
|
|||||||
data-bs-placement="left"
|
data-bs-placement="left"
|
||||||
data-bs-html="true"
|
data-bs-html="true"
|
||||||
data-bs-content={`
|
data-bs-content={`
|
||||||
<div class="border border-secondary rounded custom-popover p-2 px-3">
|
<div className="border border-secondary rounded custom-popover p-2 px-3">
|
||||||
${task.teamMembers
|
${task.teamMembers
|
||||||
.map(
|
.map(
|
||||||
(m) => `
|
(m) => `
|
||||||
<div class="d-flex align-items-center gap-2 mb-2">
|
<div className="d-flex align-items-center gap-2 mb-2">
|
||||||
<div class="avatar avatar-xs">
|
<div className="avatar avatar-xs">
|
||||||
<span class="avatar-initial rounded-circle bg-label-primary">
|
<span className="avatar-initial rounded-circle bg-label-primary">
|
||||||
${m?.firstName?.charAt(0) || ""}${m?.lastName?.charAt(0) || ""
|
${m?.firstName?.charAt(0) || ""}${m?.lastName?.charAt(0) || ""
|
||||||
}
|
}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@ -119,7 +119,7 @@ export const FileView = ({ file, viewFile }) => {
|
|||||||
<span className="text-muted small text-truncate mb-n4">
|
<span className="text-muted small text-truncate mb-n4">
|
||||||
{file.fileName}
|
{file.fileName}
|
||||||
</span>
|
</span>
|
||||||
<span className="text-body-secondary small">
|
<span className="text-body-secondary small mt-2">
|
||||||
<Tooltip text={"Click on file"}>
|
<Tooltip text={"Click on file"}>
|
||||||
{" "}
|
{" "}
|
||||||
{file.fileSize ? formatFileSize(file.fileSize) : ""}
|
{file.fileSize ? formatFileSize(file.fileSize) : ""}
|
||||||
|
|||||||
@ -110,7 +110,7 @@ const PreviewDocument = ({ files = [] }) => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
onWheel={handleWheel}
|
// onWheel={handleWheel}
|
||||||
onMouseDown={handleMouseDown}
|
onMouseDown={handleMouseDown}
|
||||||
onMouseMove={handleMouseMove}
|
onMouseMove={handleMouseMove}
|
||||||
onMouseUp={handleMouseUp}
|
onMouseUp={handleMouseUp}
|
||||||
|
|||||||
@ -43,7 +43,7 @@ const OrgPickerfromTenant = ({ title }) => {
|
|||||||
label: "Name",
|
label: "Name",
|
||||||
getValue: (org) => (
|
getValue: (org) => (
|
||||||
<div className="d-flex gap-2 py-1 ">
|
<div className="d-flex gap-2 py-1 ">
|
||||||
<i class="bx bx-buildings"></i>
|
<i className="bx bx-buildings"></i>
|
||||||
<span
|
<span
|
||||||
className="text-truncate d-inline-block "
|
className="text-truncate d-inline-block "
|
||||||
style={{ maxWidth: "150px" }}
|
style={{ maxWidth: "150px" }}
|
||||||
@ -126,7 +126,7 @@ const OrgPickerfromTenant = ({ title }) => {
|
|||||||
onOpen({ startStep: 3, orgData: row })
|
onOpen({ startStep: 3, orgData: row })
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<i class='bx bx-right-arrow-circle text-primary'></i>
|
<i className='bx bx-right-arrow-circle text-primary'></i>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@ -191,16 +191,16 @@ const ActionPaymentRequest = ({ requestId }) => {
|
|||||||
{IsPaymentProcess && nextStatusWithPermission?.length > 0 && (
|
{IsPaymentProcess && nextStatusWithPermission?.length > 0 && (
|
||||||
<>
|
<>
|
||||||
{isProccesed ? (
|
{isProccesed ? (
|
||||||
<div class="accordion-item active shadow-none">
|
<div className="accordion-item active shadow-none">
|
||||||
<h2 class="accordion-header d-flex align-items-center">
|
<h2 className="accordion-header d-flex align-items-center">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="accordion-button"
|
className="accordion-button"
|
||||||
data-bs-toggle="collapse"
|
data-bs-toggle="collapse"
|
||||||
data-bs-target="#accordionWithIcon-1"
|
data-bs-target="#accordionWithIcon-1"
|
||||||
aria-expanded="true"
|
aria-expanded="true"
|
||||||
>
|
>
|
||||||
<i class="icon-base bx bx-receipt me-2"></i>
|
<i className="icon-base bx bx-receipt me-2"></i>
|
||||||
Make Expense
|
Make Expense
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
|
|||||||
@ -307,7 +307,7 @@ const PaymentRequestList = ({ filters, filterData, removeFilterChip, clearFilter
|
|||||||
data-bs-toggle="tooltip"
|
data-bs-toggle="tooltip"
|
||||||
data-bs-offset="0,8"
|
data-bs-offset="0,8"
|
||||||
data-bs-placement="top"
|
data-bs-placement="top"
|
||||||
data-bs-custom-class="tooltip-dark"
|
data-bs-custom-className="tooltip-dark"
|
||||||
title="More Action"
|
title="More Action"
|
||||||
></i>
|
></i>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -15,7 +15,7 @@ const ProjectAssignedOrgs = () => {
|
|||||||
label: "Organization Name",
|
label: "Organization Name",
|
||||||
getValue: (org) => (
|
getValue: (org) => (
|
||||||
<div className="d-flex gap-2 py-1 ">
|
<div className="d-flex gap-2 py-1 ">
|
||||||
<i class="bx bx-buildings"></i>
|
<i className="bx bx-buildings"></i>
|
||||||
<span
|
<span
|
||||||
className="text-truncate d-inline-block "
|
className="text-truncate d-inline-block "
|
||||||
style={{ maxWidth: "150px" }}
|
style={{ maxWidth: "150px" }}
|
||||||
|
|||||||
@ -241,7 +241,7 @@ const EditMaster = ({ master, onClose }) => {
|
|||||||
data-bs-trigger="focus"
|
data-bs-trigger="focus"
|
||||||
data-bs-placement="right"
|
data-bs-placement="right"
|
||||||
data-bs-html="true"
|
data-bs-html="true"
|
||||||
data-bs-content={`<div class="border border-secondary rounded custom-popover p-2 px-3">${perm.description}</div>`}
|
data-bs-content={`<div className="border border-secondary rounded custom-popover p-2 px-3">${perm.description}</div>`}
|
||||||
>
|
>
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { SpinnerLoader } from "../common/Loader";
|
|||||||
import { formatUTCToLocalTime } from "../../utils/dateUtils";
|
import { formatUTCToLocalTime } from "../../utils/dateUtils";
|
||||||
import { FileView } from "../Expenses/Filelist";
|
import { FileView } from "../Expenses/Filelist";
|
||||||
|
|
||||||
const DeliverChallanList = ({ purchaseId }) => {
|
const DeliverChallanList = ({ purchaseId, viewDocuments }) => {
|
||||||
const { data, isLoading, isError, error } = useDeliverChallane(purchaseId);
|
const { data, isLoading, isError, error } = useDeliverChallane(purchaseId);
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
return (
|
return (
|
||||||
@ -56,7 +56,7 @@ const DeliverChallanList = ({ purchaseId }) => {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
{item.attachment?.preSignedUrl && (
|
{item.attachment?.preSignedUrl && (
|
||||||
<FileView file={item.attachment} />
|
<FileView file={item.attachment} viewFile={viewDocuments} />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -21,9 +21,11 @@ import SingleFileUploader from "../common/SigleFileUploader";
|
|||||||
import { localToUtc } from "../../utils/appUtils";
|
import { localToUtc } from "../../utils/appUtils";
|
||||||
import WarningBlock from "../InfoBlock/WarningBlock";
|
import WarningBlock from "../InfoBlock/WarningBlock";
|
||||||
import { FILE_UPLOAD_INFO } from "../../utils/staticContent";
|
import { FILE_UPLOAD_INFO } from "../../utils/staticContent";
|
||||||
|
import { usePurchaseContext } from "../../pages/purchase/PurchasePage";
|
||||||
|
|
||||||
const DeliveryChallane = ({ purchaseId }) => {
|
const DeliveryChallane = ({ purchaseId }) => {
|
||||||
const [file, setFile] = useState(null);
|
const [file, setFile] = useState(null);
|
||||||
|
const {setDocumentView} = usePurchaseContext()
|
||||||
|
|
||||||
const {
|
const {
|
||||||
register,
|
register,
|
||||||
@ -174,14 +176,16 @@ const DeliveryChallane = ({ purchaseId }) => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="col-12 text-end my-3">
|
<div className="col-12 text-end my-3">
|
||||||
<button type="submit" className="btn btn-sm btn-primary px-4">
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="btn btn-sm btn-primary px-4"
|
||||||
|
disabled={isPending}
|
||||||
|
>
|
||||||
{isPending ? "Please Wait..." : "Submit"}
|
{isPending ? "Please Wait..." : "Submit"}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{!isUploaded && (
|
{!isUploaded && <WarningBlock content={FILE_UPLOAD_INFO} />}
|
||||||
<WarningBlock content={FILE_UPLOAD_INFO} />
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="col-md-6 text-start">
|
<div className="col-md-6 text-start">
|
||||||
@ -190,7 +194,7 @@ const DeliveryChallane = ({ purchaseId }) => {
|
|||||||
<p className="fw-medium mb-0">History</p>
|
<p className="fw-medium mb-0">History</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="overflow-auto " style={{ maxHeight: "420px" }}>
|
<div className="overflow-auto " style={{ maxHeight: "420px" }}>
|
||||||
<DeliverChallanList purchaseId={purchaseId} />
|
<DeliverChallanList purchaseId={purchaseId} viewDocuments={setDocumentView} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -123,7 +123,16 @@ const PurchaseList = ({ searchString, isActive }) => {
|
|||||||
data?.data?.map((item, index) => (
|
data?.data?.map((item, index) => (
|
||||||
<tr key={item?.id || index}>
|
<tr key={item?.id || index}>
|
||||||
{visibleColumns.map((col) => (
|
{visibleColumns.map((col) => (
|
||||||
<td key={col.key} className={col.className || ""}>
|
<td
|
||||||
|
key={col.key}
|
||||||
|
className={`${col.className} cursor-pointer` || ""}
|
||||||
|
onClick={() =>
|
||||||
|
setViewPurchase({
|
||||||
|
isOpen: true,
|
||||||
|
purchaseId: item.id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
>
|
||||||
{col.render ? col.render(item) : item[col.key] || "NA"}
|
{col.render ? col.render(item) : item[col.key] || "NA"}
|
||||||
</td>
|
</td>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@ -93,16 +93,6 @@ const PurchasePayment = ({onClose, purchaseId }) => {
|
|||||||
size="md"
|
size="md"
|
||||||
name="paymentReceivedDate"
|
name="paymentReceivedDate"
|
||||||
control={control}
|
control={control}
|
||||||
minDate={
|
|
||||||
Purchase?.createdAt
|
|
||||||
? new Date(
|
|
||||||
new Date(Purchase?.createdAt).setDate(
|
|
||||||
new Date(Purchase?.createdAt).getDate() + 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
: null
|
|
||||||
}
|
|
||||||
maxDate={new Date()}
|
|
||||||
/>
|
/>
|
||||||
{errors.paymentReceivedDate && (
|
{errors.paymentReceivedDate && (
|
||||||
<small className="danger-text">
|
<small className="danger-text">
|
||||||
@ -283,9 +273,10 @@ const PurchasePayment = ({onClose, purchaseId }) => {
|
|||||||
{data?.length === 0 && (
|
{data?.length === 0 && (
|
||||||
<div className="d-flex justify-content-center algin-items-center text-center">
|
<div className="d-flex justify-content-center algin-items-center text-center">
|
||||||
<div>
|
<div>
|
||||||
|
<i className="bx bx-box"></i>
|
||||||
<i className='bx bx-box'></i>
|
<p className="text-secondary">
|
||||||
<p className="text-secondary">You don't have any payment yet.</p>
|
You don't have any payment yet.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -38,11 +38,11 @@ const ViewPurchase = ({ purchaseId }) => {
|
|||||||
<p className="fw-semibold mb-3">Purchase Details</p>
|
<p className="fw-semibold mb-3">Purchase Details</p>
|
||||||
<div className="row mb-3">
|
<div className="row mb-3">
|
||||||
<div className="col-md-6">
|
<div className="col-md-6">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-captions bx-sm me-1'></i>Title:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-captions bx-sm me-1'></i>Title:</p>
|
||||||
<p className="fw-light mb-1">{data?.title}</p>
|
<p className="fw-light mb-1">{data?.title}</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="col-md-6">
|
<div className="col-md-6">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-comment-detail bx-sm me-1'></i>Description:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-comment-detail bx-sm me-1'></i>Description:</p>
|
||||||
<p className="fw-light mb-1 ">{data?.description}</p>
|
<p className="fw-light mb-1 ">{data?.description}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -56,31 +56,31 @@ const ViewPurchase = ({ purchaseId }) => {
|
|||||||
<div className="row text-start h-auto">
|
<div className="row text-start h-auto">
|
||||||
{/* Project Name */}
|
{/* Project Name */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-captions bx-sm me-1'></i>Project Name:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-captions bx-sm me-1'></i>Project Name:</p>
|
||||||
<p className="fw-light mb-0">{data?.project?.name}</p>
|
<p className="fw-light mb-0">{data?.project?.name}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Organization Name */}
|
{/* Organization Name */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bxs-component bx-sm me-1'></i>Organization:</p>
|
<p className="text-secondary mb-0"><i className='bx bxs-component bx-sm me-1'></i>Organization:</p>
|
||||||
<p className="fw-light mb-0">{data?.organization?.name}</p>
|
<p className="fw-light mb-0">{data?.organization?.name}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Email */}
|
{/* Email */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-envelope me-1 bx-sm'></i>Email:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-envelope me-1 bx-sm'></i>Email:</p>
|
||||||
<p className="fw-light mb-0">{data?.organization?.email}</p>
|
<p className="fw-light mb-0">{data?.organization?.email}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Contact Number */}
|
{/* Contact Number */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bxs-contact bx-sm me-1' ></i>Contact:</p>
|
<p className="text-secondary mb-0"><i className='bx bxs-contact bx-sm me-1' ></i>Contact:</p>
|
||||||
<p className="fw-light mb-0">{data?.organization?.contactNumber}</p>
|
<p className="fw-light mb-0">{data?.organization?.contactNumber}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Address */}
|
{/* Address */}
|
||||||
<div className="col-12 mb-3">
|
<div className="col-12 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-message-square-detail bx-sm me-1'></i>Address:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-message-square-detail bx-sm me-1'></i>Address:</p>
|
||||||
<p className="fw-light mb-0">{data?.organization?.address}</p>
|
<p className="fw-light mb-0">{data?.organization?.address}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -93,31 +93,31 @@ const ViewPurchase = ({ purchaseId }) => {
|
|||||||
|
|
||||||
{/* Supplier Name */}
|
{/* Supplier Name */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-captions bx-sm me-1'></i>Name:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-captions bx-sm me-1'></i>Name:</p>
|
||||||
<p className="fw-light mb-0">{data?.supplier?.name}</p>
|
<p className="fw-light mb-0">{data?.supplier?.name}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Contact Person */}
|
{/* Contact Person */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-support bx-sm me-1'></i>Contact Person:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-support bx-sm me-1'></i>Contact Person:</p>
|
||||||
<p className="fw-light mb-0">{data?.supplier?.contactPerson}</p>
|
<p className="fw-light mb-0">{data?.supplier?.contactPerson}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Email */}
|
{/* Email */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-envelope me-1 bx-sm'></i>Email:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-envelope me-1 bx-sm'></i>Email:</p>
|
||||||
<p className="fw-light mb-0">{data?.supplier?.email}</p>
|
<p className="fw-light mb-0">{data?.supplier?.email}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Contact Number */}
|
{/* Contact Number */}
|
||||||
<div className="col-12 col-md-4 mb-3">
|
<div className="col-12 col-md-4 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bxs-contact bx-sm me-1' ></i>Contact:</p>
|
<p className="text-secondary mb-0"><i className='bx bxs-contact bx-sm me-1' ></i>Contact:</p>
|
||||||
<p className="fw-light mb-0">{data?.supplier?.contactNumber}</p>
|
<p className="fw-light mb-0">{data?.supplier?.contactNumber}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Address */}
|
{/* Address */}
|
||||||
<div className="col-12 mb-3">
|
<div className="col-12 mb-3">
|
||||||
<p className="text-secondary mb-0"><i class='bx bx-message-square-detail bx-sm me-1'></i>Address:</p>
|
<p className="text-secondary mb-0"><i className='bx bx-message-square-detail bx-sm me-1'></i>Address:</p>
|
||||||
<p className="fw-light mb-0">{data?.supplier?.address}</p>
|
<p className="fw-light mb-0">{data?.supplier?.address}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -24,25 +24,25 @@ const AuthLayout = () => {
|
|||||||
>
|
>
|
||||||
{" "}
|
{" "}
|
||||||
<nav
|
<nav
|
||||||
class="navbar navbar-light ms-10 w-auto justify-content-start"
|
className="navbar navbar-light ms-10 w-auto justify-content-start"
|
||||||
style={{ opacity: "100%" }}
|
style={{ opacity: "100%" }}
|
||||||
>
|
>
|
||||||
<a class="navbar-brand" href="/">
|
<a className="navbar-brand" href="/">
|
||||||
Home
|
Home
|
||||||
</a>
|
</a>
|
||||||
<a class="navbar-brand" href="/#landingFeatures">
|
<a className="navbar-brand" href="/#landingFeatures">
|
||||||
Features
|
Features
|
||||||
</a>
|
</a>
|
||||||
<a class="navbar-brand" href="/#landingPricing">
|
<a className="navbar-brand" href="/#landingPricing">
|
||||||
Pricing
|
Pricing
|
||||||
</a>
|
</a>
|
||||||
<a class="navbar-brand" href="/#landingFAQ">
|
<a className="navbar-brand" href="/#landingFAQ">
|
||||||
FAQ
|
FAQ
|
||||||
</a>
|
</a>
|
||||||
<a class="navbar-brand" href="/#sectionBlog">
|
<a className="navbar-brand" href="/#sectionBlog">
|
||||||
Blogs
|
Blogs
|
||||||
</a>
|
</a>
|
||||||
<a class="navbar-brand" href="/#landingCTA">
|
<a className="navbar-brand" href="/#landingCTA">
|
||||||
Contact Us
|
Contact Us
|
||||||
</a>
|
</a>
|
||||||
</nav>{" "}
|
</nav>{" "}
|
||||||
|
|||||||
@ -10,7 +10,7 @@ const FeatureCard = ({ imagesrc, title, description }) => {
|
|||||||
alt={title}
|
alt={title}
|
||||||
className="w-14 mb-4 feature-icon-image"
|
className="w-14 mb-4 feature-icon-image"
|
||||||
/>
|
/>
|
||||||
<span class="ms-5">
|
<span className="ms-5">
|
||||||
<h5>{title}</h5>
|
<h5>{title}</h5>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -67,14 +67,14 @@ const LandingPageOld = () => {
|
|||||||
|
|
||||||
<a
|
<a
|
||||||
href="/"
|
href="/"
|
||||||
class="app-brand-link fw-bold navbar-brand text-green fs-5"
|
className="app-brand-link fw-bold navbar-brand text-green fs-5"
|
||||||
>
|
>
|
||||||
<span class="app-brand-logo demo">
|
<span className="app-brand-logo demo">
|
||||||
<img src="/img/brand/marco.png" width="50" />
|
<img src="/img/brand/marco.png" width="50" />
|
||||||
</span>
|
</span>
|
||||||
<span class="text-blue">OnField</span>
|
<span className="text-blue">OnField</span>
|
||||||
<span>Work</span>
|
<span>Work</span>
|
||||||
<span class="text-dark">.com</span>
|
<span className="text-dark">.com</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{/* Menu logo wrapper: End */}
|
{/* Menu logo wrapper: End */}
|
||||||
@ -404,11 +404,11 @@ const LandingPageOld = () => {
|
|||||||
{/* <!-- Real blog/ case studies: Start --> */}
|
{/* <!-- Real blog/ case studies: Start --> */}
|
||||||
<section
|
<section
|
||||||
id="sectionBlog"
|
id="sectionBlog"
|
||||||
class="section-py bg-body landing-reviews pb-0"
|
className="section-py bg-body landing-reviews pb-0"
|
||||||
hidden
|
hidden
|
||||||
>
|
>
|
||||||
{/* <!-- What people say slider: Start --> */}
|
{/* <!-- What people say slider: Start --> */}
|
||||||
<div class="container">
|
<div className="container">
|
||||||
<div className="text-center mb-4">
|
<div className="text-center mb-4">
|
||||||
<span className="badge bg-label-primary heading">
|
<span className="badge bg-label-primary heading">
|
||||||
Case Studies
|
Case Studies
|
||||||
@ -430,8 +430,8 @@ const LandingPageOld = () => {
|
|||||||
See the transformations our clients have achieved with us
|
See the transformations our clients have achieved with us
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="row">
|
<div className="row">
|
||||||
<div class="swiper-reviews-carousel">
|
<div className="swiper-reviews-carousel">
|
||||||
<Swiper
|
<Swiper
|
||||||
onSwiper={setSwiperRef}
|
onSwiper={setSwiperRef}
|
||||||
slidesPerView={4}
|
slidesPerView={4}
|
||||||
|
|||||||
@ -5,37 +5,37 @@ const SwaperBlogContent = ({
|
|||||||
ContentAlign = "right",
|
ContentAlign = "right",
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<div class="swiper-slide">
|
<div className="swiper-slide">
|
||||||
<div class="card h-100">
|
<div className="card h-100">
|
||||||
<div class="card-body text-body d-flex flex-column justify-content-between h-100">
|
<div className="card-body text-body d-flex flex-column justify-content-between h-100">
|
||||||
<div class="mb-4">
|
<div className="mb-4">
|
||||||
<img
|
<img
|
||||||
src={ImageUrl}
|
src={ImageUrl}
|
||||||
alt="client logo"
|
alt="client logo"
|
||||||
class="client-logo img-fluid"
|
className="client-logo img-fluid"
|
||||||
style={{ width: "580px", height: "100px" }}
|
style={{ width: "580px", height: "100px" }}
|
||||||
/>
|
/>
|
||||||
<h5>{Title}</h5>
|
<h5>{Title}</h5>
|
||||||
</div>
|
</div>
|
||||||
<p>{Body}</p>
|
<p>{Body}</p>
|
||||||
<div class="text-warning mb-4">
|
<div className="text-warning mb-4">
|
||||||
<i class="bx bxs-star"></i>
|
<i className="bx bxs-star"></i>
|
||||||
<i class="bx bxs-star"></i>
|
<i className="bx bxs-star"></i>
|
||||||
<i class="bx bxs-star"></i>
|
<i className="bx bxs-star"></i>
|
||||||
<i class="bx bxs-star"></i>
|
<i className="bx bxs-star"></i>
|
||||||
<i class="bx bxs-star"></i>
|
<i className="bx bxs-star"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-items-center">
|
<div className="d-flex align-items-center">
|
||||||
<div class="avatar me-3 avatar-sm">
|
<div className="avatar me-3 avatar-sm">
|
||||||
<img
|
<img
|
||||||
src="../../assets/img/avatars/1.png"
|
src="../../assets/img/avatars/1.png"
|
||||||
alt="Avatar"
|
alt="Avatar"
|
||||||
class="rounded-circle"
|
className="rounded-circle"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h6 class="mb-0">Cecilia Payne</h6>
|
<h6 className="mb-0">Cecilia Payne</h6>
|
||||||
<p class="small text-muted mb-0">CEO of Airbnb</p>
|
<p className="small text-muted mb-0">CEO of Airbnb</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -59,10 +59,10 @@ const ForgotPasswordPage = () => {
|
|||||||
<div className="d-flex align-items-center justify-content-center ">
|
<div className="d-flex align-items-center justify-content-center ">
|
||||||
<img src="/img/brand/marco.png" width="70" />
|
<img src="/img/brand/marco.png" width="70" />
|
||||||
<Link aria-label="Go to Home Page" to="/">
|
<Link aria-label="Go to Home Page" to="/">
|
||||||
<span class="app-brand-logo ">
|
<span className="app-brand-logo ">
|
||||||
<span class="text-blue fs-4">OnField</span>
|
<span className="text-blue fs-4">OnField</span>
|
||||||
<span className="text-green fs-4">Work</span>
|
<span className="text-green fs-4">Work</span>
|
||||||
<span class="text-dark fs-4">.com</span>
|
<span className="text-dark fs-4">.com</span>
|
||||||
</span>
|
</span>
|
||||||
<br />
|
<br />
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -90,16 +90,16 @@ const LoginPage = () => {
|
|||||||
<div className="col-12 col-lg-5 col-xl-4 d-flex align-items-top p-4 p-sm-5 bg-gray-60">
|
<div className="col-12 col-lg-5 col-xl-4 d-flex align-items-top p-4 p-sm-5 bg-gray-60">
|
||||||
<div className="w-100 mt-10" style={{ maxWidth: 420, margin: "0 auto" }}>
|
<div className="w-100 mt-10" style={{ maxWidth: 420, margin: "0 auto" }}>
|
||||||
<Link aria-label="Go to Home Page" to="/">
|
<Link aria-label="Go to Home Page" to="/">
|
||||||
<span class="app-brand-logo rounded-circle">
|
<span className="app-brand-logo rounded-circle">
|
||||||
<img src="/img/brand/marco.png" width="70" />
|
<img src="/img/brand/marco.png" width="70" />
|
||||||
</span>
|
</span>
|
||||||
<br />
|
<br />
|
||||||
<span class="text-dark fs-5">Welcome to</span> <br />
|
<span className="text-dark fs-5">Welcome to</span> <br />
|
||||||
<h4 className="mb-2 ">
|
<h4 className="mb-2 ">
|
||||||
{" "}
|
{" "}
|
||||||
<span class="text-blue ms-1">OnField</span>
|
<span className="text-blue ms-1">OnField</span>
|
||||||
<span className="text-green">Work</span>
|
<span className="text-green">Work</span>
|
||||||
<span class="text-dark">.com</span>
|
<span className="text-dark">.com</span>
|
||||||
</h4>
|
</h4>
|
||||||
</Link>
|
</Link>
|
||||||
<p className="mb-4">
|
<p className="mb-4">
|
||||||
|
|||||||
@ -8,17 +8,17 @@ const MainLogin = () => {
|
|||||||
<div className=" d-lg-flex col-lg-7 col-xl-8 align-items-center p-5 justify-content-center">
|
<div className=" d-lg-flex col-lg-7 col-xl-8 align-items-center p-5 justify-content-center">
|
||||||
{/* <div className="w-75 text-start" style={{ marginTop: "75px" }}> */}
|
{/* <div className="w-75 text-start" style={{ marginTop: "75px" }}> */}
|
||||||
<div
|
<div
|
||||||
class="w-75 text-start swiper-container login-pg-swiper"
|
className="w-75 text-start swiper-container login-pg-swiper"
|
||||||
style={{ marginTop: "75px" }}
|
style={{ marginTop: "75px" }}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
id="textCarousel"
|
id="textCarousel"
|
||||||
class="carousel slide"
|
className="carousel slide"
|
||||||
data-bs-ride="carousel"
|
data-bs-ride="carousel"
|
||||||
>
|
>
|
||||||
<div class="carousel-inner">
|
<div className="carousel-inner">
|
||||||
<div class="carousel-item active">
|
<div className="carousel-item active">
|
||||||
<div class="p-5 text-center">
|
<div className="p-5 text-center">
|
||||||
<p>
|
<p>
|
||||||
<img
|
<img
|
||||||
className="w-100 login-pg-img-swiper"
|
className="w-100 login-pg-img-swiper"
|
||||||
@ -27,8 +27,8 @@ const MainLogin = () => {
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="carousel-item active">
|
<div className="carousel-item active">
|
||||||
<div class="p-5 text-center">
|
<div className="p-5 text-center">
|
||||||
<p>
|
<p>
|
||||||
<img
|
<img
|
||||||
className="w-100 login-pg-img-swiper"
|
className="w-100 login-pg-img-swiper"
|
||||||
@ -37,8 +37,8 @@ const MainLogin = () => {
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="carousel-item ">
|
<div className="carousel-item ">
|
||||||
<div class="p-5 ">
|
<div className="p-5 ">
|
||||||
<p>
|
<p>
|
||||||
<div className="text-start">
|
<div className="text-start">
|
||||||
<h3 className="display-header text-black">
|
<h3 className="display-header text-black">
|
||||||
@ -112,8 +112,8 @@ const MainLogin = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="carousel-item">
|
<div className="carousel-item">
|
||||||
<div class="p-5 text-center ">
|
<div className="p-5 text-center ">
|
||||||
<p className="text-start">
|
<p className="text-start">
|
||||||
<div className="text-start">
|
<div className="text-start">
|
||||||
<h1 className="display-header text-black">
|
<h1 className="display-header text-black">
|
||||||
@ -196,8 +196,8 @@ const MainLogin = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="carousel-item">
|
<div className="carousel-item">
|
||||||
<div class="p-5 text-center ">
|
<div className="p-5 text-center ">
|
||||||
<p className="text-start">
|
<p className="text-start">
|
||||||
<div className="text-start">
|
<div className="text-start">
|
||||||
<h1 className="display-header text-black">
|
<h1 className="display-header text-black">
|
||||||
@ -264,28 +264,28 @@ const MainLogin = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="carousel-control-prev"
|
className="carousel-control-prev"
|
||||||
type="button"
|
type="button"
|
||||||
data-bs-target="#textCarousel"
|
data-bs-target="#textCarousel"
|
||||||
data-bs-slide="prev"
|
data-bs-slide="prev"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="carousel-control-prev-icon"
|
className="carousel-control-prev-icon"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
></span>
|
></span>
|
||||||
<span class="visually-hidden">Previous</span>
|
<span className="visually-hidden">Previous</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="carousel-control-next"
|
className="carousel-control-next"
|
||||||
type="button"
|
type="button"
|
||||||
data-bs-target="#textCarousel"
|
data-bs-target="#textCarousel"
|
||||||
data-bs-slide="next"
|
data-bs-slide="next"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="carousel-control-next-icon"
|
className="carousel-control-next-icon"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
></span>
|
></span>
|
||||||
<span class="visually-hidden">Next</span>
|
<span className="visually-hidden">Next</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -84,10 +84,10 @@ const RegisterPage = () => {
|
|||||||
<div className="d-flex align-items-center justify-content-center ">
|
<div className="d-flex align-items-center justify-content-center ">
|
||||||
<img src="/img/brand/marco.png" width="50" />
|
<img src="/img/brand/marco.png" width="50" />
|
||||||
<Link aria-label="Go to Home Page" to="/">
|
<Link aria-label="Go to Home Page" to="/">
|
||||||
<span class="app-brand-logo ">
|
<span className="app-brand-logo ">
|
||||||
<span class="text-blue fs-4">OnField</span>
|
<span className="text-blue fs-4">OnField</span>
|
||||||
<span className="text-green fs-4">Work</span>
|
<span className="text-green fs-4">Work</span>
|
||||||
<span class="text-dark fs-4">.com</span>
|
<span className="text-dark fs-4">.com</span>
|
||||||
</span>
|
</span>
|
||||||
<br />
|
<br />
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import DeliveryChallane from "../../components/purchase/DeliveryChallane";
|
|||||||
import PurchasePayment from "../../components/purchase/PurchasePayment";
|
import PurchasePayment from "../../components/purchase/PurchasePayment";
|
||||||
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
||||||
import { MANAGEPURCHASE_INVOICE } from "../../utils/constants";
|
import { MANAGEPURCHASE_INVOICE } from "../../utils/constants";
|
||||||
|
import PreviewDocument from "../../components/Expenses/PreviewDocument";
|
||||||
|
|
||||||
export const PurchaseContext = createContext();
|
export const PurchaseContext = createContext();
|
||||||
export const usePurchaseContext = () => {
|
export const usePurchaseContext = () => {
|
||||||
@ -40,6 +41,7 @@ const PurchasePage = () => {
|
|||||||
isOpen: false,
|
isOpen: false,
|
||||||
purchaseId: null,
|
purchaseId: null,
|
||||||
});
|
});
|
||||||
|
const [ViewDocument,setDocumentView] = useState({ IsOpen: false, Images: null })
|
||||||
|
|
||||||
const canCreatePurchase = useHasUserPermission(MANAGEPURCHASE_INVOICE);
|
const canCreatePurchase = useHasUserPermission(MANAGEPURCHASE_INVOICE);
|
||||||
|
|
||||||
@ -48,6 +50,7 @@ const PurchasePage = () => {
|
|||||||
setManagePurchase,
|
setManagePurchase,
|
||||||
setChallan,
|
setChallan,
|
||||||
setAddPayment,
|
setAddPayment,
|
||||||
|
setDocumentView
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<PurchaseContext.Provider value={contextValue}>
|
<PurchaseContext.Provider value={contextValue}>
|
||||||
@ -170,6 +173,17 @@ const PurchasePage = () => {
|
|||||||
/>
|
/>
|
||||||
</GlobalModel>
|
</GlobalModel>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{ViewDocument.IsOpen && (
|
||||||
|
<GlobalModel
|
||||||
|
isOpen
|
||||||
|
size="md"
|
||||||
|
key={ViewDocument.Images ?? "doc"}
|
||||||
|
closeModal={() => setDocumentView({ IsOpen: false, Images: null })}
|
||||||
|
>
|
||||||
|
<PreviewDocument files={ViewDocument.Images} />
|
||||||
|
</GlobalModel>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</PurchaseContext.Provider>
|
</PurchaseContext.Provider>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -2,15 +2,15 @@ export const blockUI = (message = 'Please wait...') => {
|
|||||||
if (window.$ && window.$.blockUI) {
|
if (window.$ && window.$.blockUI) {
|
||||||
window.$.blockUI({
|
window.$.blockUI({
|
||||||
message: `
|
message: `
|
||||||
<div class="d-flex flex-column align-items-center">
|
<div className="d-flex flex-column align-items-center">
|
||||||
<div class="sk-wave mb-2">
|
<div className="sk-wave mb-2">
|
||||||
<div class="sk-wave-rect"></div>
|
<div className="sk-wave-rect"></div>
|
||||||
<div class="sk-wave-rect"></div>
|
<div className="sk-wave-rect"></div>
|
||||||
<div class="sk-wave-rect"></div>
|
<div className="sk-wave-rect"></div>
|
||||||
<div class="sk-wave-rect"></div>
|
<div className="sk-wave-rect"></div>
|
||||||
<div class="sk-wave-rect"></div>
|
<div className="sk-wave-rect"></div>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-white">${message}</p>
|
<p className="text-white">${message}</p>
|
||||||
</div>`,
|
</div>`,
|
||||||
css: {
|
css: {
|
||||||
backgroundColor: 'transparent',
|
backgroundColor: 'transparent',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user