Commit 0355b81b by sujata

add converstion code section every page

1 parent 42714e9b
......@@ -2,25 +2,27 @@ import React from "react";
import Head from "next/head";
const ConversionCode = ({ code }) => {
console.log(code, "Full code data");
return (
<>
<Head>
{code?.scriptcode ? (
<script
dangerouslySetInnerHTML={{
__html: code.scriptcode,
}}
/>
) : (
<noscript
dangerouslySetInnerHTML={{
__html: code.noscriptcode,
}}
/>
)}
</Head>
<Head>
{code?.map((code, index) => (
<React.Fragment key={code.id}>
{code?.scriptcode ? (
<script
dangerouslySetInnerHTML={{
__html: code.scriptcode,
}}
/>
) : (
<noscript
dangerouslySetInnerHTML={{
__html: code.noscriptcode,
}}
/>
)}
</React.Fragment>
))}
</Head>
</>
);
};
......
......@@ -75,7 +75,7 @@ const HomeBlog = ({ data }) => {
>
<div className="single-blog-post">
<div className="post-image">
<Link href={post?.slug} className="d-block">
<Link href={`/blog/${post?.slug}`} className="d-block">
<Image
layout="fill"
src={cleanImage(post?.ThumbnailImage?.url)}
......@@ -95,7 +95,7 @@ const HomeBlog = ({ data }) => {
</li>
</ul>
<h3>
<Link href={post?.slug}>{post.Title}</Link>
<Link href={`/blog/${post?.slug}`}>{post.Title}</Link>
</h3>
<p>{post?.shortDescription}</p>
......
......@@ -6,32 +6,32 @@ import { motion } from "framer-motion";
import { slideFromLeft } from "@/components/reuseables/variants";
import Image from "next/image";
import { cleanImage } from "@/layout/imageHandling";
const services = [
{
id: 1,
serviceTitle: "Mismatch in year of taxation of Income and TDS Credit – Form 71 to the relief",
serviceShortDescription: "The Income Tax Law in India requires that income from a particular assessment year be subjected to tax in that assessment year.",
serviceDetailsUrl: "/services/details",
date: "21 Sep 2023",
pdfUrl: "/images/knoweledge/pdf/taxwire/Mismatch_in_year_of_taxation_of_Income_and_TDS_Credit_–_Form_71_to_the_relief.pdf",
},
{
id: 2,
serviceTitle: "GST on Renting of residential property to registered person",
serviceShortDescription: "For more than 15 years, renting of property has been covered under either service taxor Goods and Service Tax (GST). Broadly,the Government’s intention seemed clear –tax commercial rentals and exemptresidential rentals. ",
serviceDetailsUrl: "/services/details",
date: "04 Aug 2022",
pdfUrl: "/images/knoweledge/pdf/taxwire/GST_on_Renting_of_residential_property_to_registered_person.pdf",
},
{
id: 3,
serviceTitle: "Remission of Duties and Taxes on Exported Products (RoDTEP)",
serviceShortDescription: "RoDTEP rates and scheme details have been announced by the Ministry of Commerce and Industry by making suitable amendments to chapter 4 of the Foreign Trade Policy (FTP) in the notification (19/2015-2020) dated 17th August 2021.",
serviceDetailsUrl: "/services/details",
date: "25 Aug 2021",
pdfUrl: "/images/knoweledge/pdf/taxwire/Remission_of_Duties_and_Taxes_on_Exported_Products_(RoDTEP).pdf",
},
];
// const services = [
// {
// id: 1,
// serviceTitle: "Mismatch in year of taxation of Income and TDS Credit – Form 71 to the relief",
// serviceShortDescription: "The Income Tax Law in India requires that income from a particular assessment year be subjected to tax in that assessment year.",
// serviceDetailsUrl: "/services/details",
// date: "21 Sep 2023",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Mismatch_in_year_of_taxation_of_Income_and_TDS_Credit_–_Form_71_to_the_relief.pdf",
// },
// {
// id: 2,
// serviceTitle: "GST on Renting of residential property to registered person",
// serviceShortDescription: "For more than 15 years, renting of property has been covered under either service taxor Goods and Service Tax (GST). Broadly,the Government’s intention seemed clear –tax commercial rentals and exemptresidential rentals. ",
// serviceDetailsUrl: "/services/details",
// date: "04 Aug 2022",
// pdfUrl: "/images/knoweledge/pdf/taxwire/GST_on_Renting_of_residential_property_to_registered_person.pdf",
// },
// {
// id: 3,
// serviceTitle: "Remission of Duties and Taxes on Exported Products (RoDTEP)",
// serviceShortDescription: "RoDTEP rates and scheme details have been announced by the Ministry of Commerce and Industry by making suitable amendments to chapter 4 of the Foreign Trade Policy (FTP) in the notification (19/2015-2020) dated 17th August 2021.",
// serviceDetailsUrl: "/services/details",
// date: "25 Aug 2021",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Remission_of_Duties_and_Taxes_on_Exported_Products_(RoDTEP).pdf",
// },
// ];
const TaxWire = ({taxWire , taxwirelist}) => {
const taxwirelistlatest = taxwirelist.slice(0, 3);
......
......@@ -54,41 +54,35 @@ export default function App({
gtmId: gtmtag,
});
}
}, [gtmtag]); // Re-run effect when gtmtag changes
useEffect(() => {
const loadFacebookPixel = async () => {
const { default: ReactPixel } = await import("react-facebook-pixel");
ReactPixel.init("2400625270215830", null, {
autoConfig: true,
debug: true,
});
ReactPixel.pageView(); // Track page view
ReactPixel.track("ViewContent"); // Track a custom event, for example
};
if (typeof window !== "undefined") {
loadFacebookPixel();
}
return () => {
};
}, []);
return (
<>
<Providers store={store}>
<Head>
<title>{title}</title>
<meta charSet="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<meta name="description" content={description} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<link rel="apple-touch-icon" sizes="180x180" href="images/fav.png" />
<link rel="icon" type="image/png" sizes="32x32" href="images/fav.png" />
<link rel="icon" type="image/png" sizes="16x16" href="images/fav.png" />
<link
rel="icon"
type="image/png"
sizes="32x32"
href="images/fav.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="images/fav.png"
/>
</Head>
<Header />
......
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
import PageBanner from "@/components/reuseables/PageBanner";
import Seo from "@/components/reuseables/Seo/Seo";
// import BlogDetails from "@/container/Blog/BlogDetails";
......@@ -8,7 +9,7 @@ import Link from "next/link";
import QueryString from "qs";
import React from "react";
const details = ({ blog }) => {
const details = ({ blog ,conversionData }) => {
// console.log(blog, "blog");
// console.log(blog[0]?.Description, "blog content");
......@@ -22,6 +23,8 @@ const details = ({ blog }) => {
},
];
const code = conversionData?.conversion;
// const seo = blog?.seo;
// console.log(seo, 'seo');
......@@ -29,7 +32,7 @@ const details = ({ blog }) => {
<>
{/* <Seo seo={seo} /> */}
<PageBanner banners={banners} />
<ConversionCode code={code} />
<div className="blog-details-area ptb-100">
<div className="container">
<div className="row">
......@@ -108,15 +111,34 @@ export async function getServerSideProps({ params }) {
],
};
const query2 = {
populate: ["conversion"],
};
const queryString = QueryString.stringify(query, {
encodeValuesOnly: true,
});
const query12String = QueryString.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/blogs?${queryString}`;
const response = await axios.get(endpoint);
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
const [response, response2] = await Promise.all([
axios.get(endpoint),
axios.get(endpoint2),
]);
const blog = response.data.data;
const conversionData = response2.data.data;
return {
props: {
blog,
conversionData
},
};
}
......@@ -11,9 +11,10 @@ import qs from "qs";
import axios from "axios";
import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const blogs = ({Blogpage }) => {
const blogs = ({Blogpage, conversionData }) => {
const dispatch = useDispatch()
useEffect(() => {
dispatch(fetchBlogList())
......@@ -46,6 +47,8 @@ const blogs = ({Blogpage }) => {
const seo = Blogpage?.seo;
const code = conversionData?.conversion;
// console.log(seo, 'Blogpage');
return (
......@@ -53,6 +56,7 @@ const blogs = ({Blogpage }) => {
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<div className="blog-area ptb-100">
<Container>
......@@ -147,19 +151,31 @@ export async function getServerSideProps() {
"seo.schema",
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/blog-page?${query1String}`;
console.log(`Final url: ${endpoint1}`);
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const response1 = await axios.get(endpoint1);
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/blog-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint2}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Blogpage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { Blogpage },
props: { Blogpage,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -10,10 +10,10 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import TableData from "@/components/reuseables/services/TableData";
import Details from "@/components/reuseables/services/Details";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const details = ({ Budget }) => {
const details = ({ Budget, conversionData }) => {
const introDeatils = Budget;
// console.log("Budget", Budget);
const dynamicdata = Budget[0]?.BudgetDeatils;
// console.log("dynamicdata", dynamicdata);
const banners = [
......@@ -26,9 +26,13 @@ const details = ({ Budget }) => {
},
// Add more banners as needed
];
const code = conversionData?.conversion;
return (
<>
<PageBanner banners={banners} />
<ConversionCode code={code} />
<Background introdeatils={introDeatils} />
<section className="corpedia-details-page">
......@@ -114,19 +118,34 @@ export async function getServerSideProps({ params }) {
},
},
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/budgetpanoramas?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Budget = response1.data.data;
const conversionData = response2.data.data;
return {
props: { Budget },
props: { Budget , conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -15,6 +15,7 @@ import axios from "axios";
import ReactPaginate from "react-paginate";
import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
// const services = [
// {
......@@ -89,7 +90,7 @@ import Pagination from "react-js-pagination";
// },
// ];
const BudgetPanorama = ({ BudgetData }) => {
const BudgetPanorama = ({ BudgetData , conversionData }) => {
const banners = [
{
imageSrc: cleanImage(BudgetData?.Banner?.Image?.url),
......@@ -112,6 +113,7 @@ const BudgetPanorama = ({ BudgetData }) => {
const postsPerPage = 6; // Number of items per page
const offset = (currentPage - 1) * postsPerPage; // Calculate offset
const currentItems = budgetlist?.slice(offset, offset + postsPerPage);
const code = conversionData?.conversion;
// Handle page click
const handlePageClick = (pageNumber) => {
......@@ -123,6 +125,7 @@ const BudgetPanorama = ({ BudgetData }) => {
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<div className="budget-panorama-page-area pt-70 pb-100 bg-light">
<Container>
......@@ -256,19 +259,34 @@ export async function getServerSideProps() {
"seo.schema",
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/budget-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const BudgetData = response1.data.data;
const conversionData = response2.data.data;
return {
props: { BudgetData },
props: { BudgetData,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -6,8 +6,9 @@ import { cleanImage } from "@/layout/imageHandling";
import qs from "qs";
import axios from "axios";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const index = ({ CareerPage }) => {
const index = ({ CareerPage ,conversionData }) => {
console.log(CareerPage, "CareerPage");
const banners = [
{
......@@ -19,13 +20,16 @@ const index = ({ CareerPage }) => {
},
// Add more banners as needed
];
const code = conversionData?.conversion;
const seo = CareerPage?.seo;
console.log(seo, "seo")
// console.log(seo, "seo")
return (
<>
<Seo seo={seo} />
<PageBanner banners={banners} />
<ConversionCode code={code} />
{/* <CareerListing /> */}
<section className="ptb-100">
<Container>
......@@ -67,19 +71,31 @@ export async function getServerSideProps() {
const query1 = {
populate: ["Banner.Image"],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/career-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const CareerPage = response1.data.data;
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const CareerPage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { CareerPage },
props: { CareerPage ,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -8,6 +8,7 @@ import MethodOne from "@/components/reuseables/services/MethodOne";
import Seo from "@/components/reuseables/Seo/Seo";
import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const banners = [
{
......@@ -19,40 +20,6 @@ const banners = [
},
// Add more banners as needed
];
const BAData = [
{
subtitle: "Client Servicing",
title: "Business Advisory ",
paragraphs: [
"At Advith Consulting, we guide businesses through the critical growth stages - Existence, Survival, Success, Take off & Maturity . Our advisory services are tailored to navigate each phase with strategic foresight and financial acumen, ensuring your business thrives at every turn. Partner with us for a journey of financial excellence.",
],
imageSrc: "/images/client-service/About-Business-Advisory.png",
imageAlt: "Client Servicing Image",
},
];
const shareholders = [
{
// subtitle: "About FC & CFO Services",
title: "Stakeholders & their expectations",
paragraphs: [
"McKinsey & Company has defined a matrix where they have arrived at 4 types of consulting - a neutral facilitator, a facilitative consultant, an observer or an expert. In Business Conuslting engagements, in addition to performing these roles, we also perform the role of a doer and an enabler, helping founders solve problems with their idea. ",
],
imageSrc: "/images/client-service/stake.png",
imageAlt: "FC & CFO Services Image",
},
];
const aboutcfo = [
{
subtitle: "About FC & CFO Services",
title: "About Business Advisory",
paragraphs: [
"An idea is great only as long as it solves a problem. In solving a problem, an organisation and its founder go through multiple stages. Founders are often stuck in a balancing act, handling multiple stakeholders and their expectations.Through our Business Advisory engagements, we play the critical role of guiding organizations through their growth journey, providing strategic insights and actionable plans that align with their goals. We help management teams and founders navigate the complexities of each stage, from existence to maturity, ensuring they make informed decisions. Our expertise enables us to identify the strengths, weaknesses, opportunities and threats of organisations, ultimately supporting our clients in achieving their long-term vision while effectively balancing stakeholder expectations",
],
imageSrc: "/images/client-service/cfo.webp",
imageAlt: "FC & CFO Services Image",
},
];
const sliderConfig = {
spaceBetween: 20,
......@@ -61,98 +28,10 @@ const sliderConfig = {
showAutoplay: true,
autoplayDelay: 4000,
};
const MethodOneData = [
{
stepNumber: "01",
img: "/images/shape/icon/discovery.png",
title: "Founder’s Office",
descr:
"Our Founders's Office offers strategic guidance and executive oversight, ensuring alignment with the organization's long-term vision and objectives. We facilitate high-level decision-making processes and foster stakeholder relationships to drive sustainable growth and corporate excellence.",
altText: "discovery-icon",
},
{
stepNumber: "02",
img: "/images/shape/icon/analysis.png",
title: "Family Business Advisory & Succession Planning",
descr:
"Our Family Business Advisory services focus on sustaining and enhancing family-owned enterprises. We provide strategies for governance, succession planning, family office setup and conflict resolution to ensure long-term success and harmony within the family business.",
altText: "analysis-icon",
},
{
stepNumber: "03",
img: "/images/shape/icon/setup.png",
title: "Compensation Structuring (Stock Based Plans)",
descr:
"Our Compensation Structuring services are designed to align employee incentives with company performance and strategic goals. We develop and implement comprehensive compensation plans that attract, retain, and motivate top talent while fostering a culture of ownership and engagement.",
altText: "setup-icon",
},
{
stepNumber: "04",
img: "/images/shape/icon/execution.png",
title: "Transfer Pricing",
descr:
"We provide comprehensive transfer pricing strategies, documentation, and risk assessment to manage intercompany transactions effectively and minimize potential tax challenges.",
altText: "execution-icon",
},
{
stepNumber: "05",
img: "/images/shape/icon/setup.png",
title: "Bespoke Advisory",
descr:
"Our Business Advisory practice is agile & agnostic to the type & size of an organisation. We offer solutions covering the strategic, operational & tactical needs of any business. ",
altText: "setup-icon",
},
{
stepNumber: "06",
img: "/images/shape/icon/execution.png",
title: "Transformation Engagements",
descr:
"Our Transformation Engagements are designed to drive comprehensive change. We implement innovative strategies and solutions to optimize business processes, foster a culture of continuous improvement, and achieve measurable results. ",
altText: "execution-icon",
},
{
stepNumber: "07",
img: "/images/shape/icon/setup.png",
title: "Governance Models",
descr:
"Our Governance Models services help create clear and effective frameworks for better decision-making and accountability. We design customized structures to improve performance and ensure regulatory compliance. ",
altText: "setup-icon",
},
];
const partners = [
{
image: "/images/clientel/academic-city.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/ADALVO.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/RANDOX.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Relicare.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Relicare-1.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Sigma.svg",
altText: "partner",
link: "#",
},
];
const Ba = ({ bapage }) => {
const Ba = ({ bapage ,conversionData }) => {
const dynamicdata = bapage?.BusinessDetails;
// console.log("dynamicdata", dynamicdata);
......@@ -162,9 +41,12 @@ const Ba = ({ bapage }) => {
const seo = bapage?.seo;
// console.log(seo);
const code = conversionData?.conversion;
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<section className="cfo-page">
{dynamicdata &&
......@@ -288,18 +170,33 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/business-page?${query1String}`;
console.log(`Final url: ${endpoint1}`);
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const response1 = await axios.get(endpoint1);
const bapage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { bapage },
props: { bapage , conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -8,36 +8,37 @@ import { cleanImage } from "@/layout/imageHandling";
import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const CFOData = [
{
subtitle: "Client Servicing",
title: "Client Servicing - CFO",
paragraphs: [
"FC & CFO Services at Advith Consulting LLP brings together specialists at different functional layers enabling finance operations in your organisation to function in an efficient manner. Depending upon the requirement of the business, our areas of focus range from streamling routine finance operations to ensuring compliances including taxation and corporate law and even to strategic, business finance & assurance, to provide a holistic approach to financial management. ",
],
imageSrc: "/images/client-service/Client_Servicing-CFO.webp",
imageAlt: "Client Servicing Image",
},
{
subtitle: "About FC & CFO Services",
title: "About FC & CFO Services",
paragraphs: [
"The significance and role of a finance function in an organisation depends on multiple factors including the vision of the management, nature of business, scale of operations & status of funding among others. At Advith Consulting, we offer FC & CFO Services upon careful evaluation of the requirement of your business. Our role as FC's and CFO's will be to act as enablers in moving from data entry and reporting merely as a compliance to a mechanism wherein we bring together insightful data analysis and financial expertise to offer actionable insights to the leadership team",
],
imageSrc: "/images/client-service/About_FC_&_CFO_Services.webp",
imageAlt: "FC & CFO Services Image",
},
{
subtitle: "About FC & CFO Services",
title: "Methodology 1 - How we do it? ",
paragraphs: [
"A typical finance function in an organization is structured in the manner of a pyramid with the executors at the base and strategic decision making at the pinnacle. Each layer has incremental responsibilities which are all aligned to the organization’s vision. The pyramid of finance operations is a testament to structured efficiency. Each layer signifies a distinct function, essential to the integrity of the whole. ",
],
imageSrc: "/images/client-service/Methodology 1 - How we do it.webp",
imageAlt: "FC & CFO Services Image",
},
];
// const CFOData = [
// {
// subtitle: "Client Servicing",
// title: "Client Servicing - CFO",
// paragraphs: [
// "FC & CFO Services at Advith Consulting LLP brings together specialists at different functional layers enabling finance operations in your organisation to function in an efficient manner. Depending upon the requirement of the business, our areas of focus range from streamling routine finance operations to ensuring compliances including taxation and corporate law and even to strategic, business finance & assurance, to provide a holistic approach to financial management. ",
// ],
// imageSrc: "/images/client-service/Client_Servicing-CFO.webp",
// imageAlt: "Client Servicing Image",
// },
// {
// subtitle: "About FC & CFO Services",
// title: "About FC & CFO Services",
// paragraphs: [
// "The significance and role of a finance function in an organisation depends on multiple factors including the vision of the management, nature of business, scale of operations & status of funding among others. At Advith Consulting, we offer FC & CFO Services upon careful evaluation of the requirement of your business. Our role as FC's and CFO's will be to act as enablers in moving from data entry and reporting merely as a compliance to a mechanism wherein we bring together insightful data analysis and financial expertise to offer actionable insights to the leadership team",
// ],
// imageSrc: "/images/client-service/About_FC_&_CFO_Services.webp",
// imageAlt: "FC & CFO Services Image",
// },
// {
// subtitle: "About FC & CFO Services",
// title: "Methodology 1 - How we do it? ",
// paragraphs: [
// "A typical finance function in an organization is structured in the manner of a pyramid with the executors at the base and strategic decision making at the pinnacle. Each layer has incremental responsibilities which are all aligned to the organization’s vision. The pyramid of finance operations is a testament to structured efficiency. Each layer signifies a distinct function, essential to the integrity of the whole. ",
// ],
// imageSrc: "/images/client-service/Methodology 1 - How we do it.webp",
// imageAlt: "FC & CFO Services Image",
// },
// ];
const sliderConfig = {
spaceBetween: 20,
slidesPerView: 5,
......@@ -176,7 +177,7 @@ const partners = [
link: "#",
},
];
const clientservicecfo = ({ cfopage }) => {
const clientservicecfo = ({ cfopage ,conversionData }) => {
// console.log(cfopage ,"cfopage")
const banners = [
{
......@@ -197,9 +198,12 @@ const clientservicecfo = ({ cfopage }) => {
const seo = cfopage?.seo;
// console.log(seo)
const code = conversionData?.conversion;
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<div className="cfo-services-area ptb-100">
......@@ -291,18 +295,35 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/cfo-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const cfopage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { cfopage },
props: { cfopage ,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -13,10 +13,11 @@ import { fetchIndustryList } from "@/redux/slices/industryslice";
import { fetchFunctionArea } from "@/redux/slices/functionareaslice";
import TechnicalExpertise from "@/container/ClientServicing/ TechnicalExpertise";
import ClientService from "@/container/Home/ClientService";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const ClientServicingPage = ({ ClientPage }) => {
const ClientServicingPage = ({ ClientPage , conversionData }) => {
// console.log(ClientPage, "data1");
const banners = [
......@@ -46,11 +47,14 @@ const ClientServicingPage = ({ ClientPage }) => {
// console.log(FunctionArea, "data")
const seo = ClientPage?.seo;
const code = conversionData?.conversion;
return (
<>
<PageBanner banners={banners} />
<ConversionCode code={code} />
<ClientService service={serviceData} />
{/* <OurService /> */}
<TechnicalExpertise technicalexpertise={technicalexpertise}/>
......@@ -76,18 +80,32 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/client-servicing?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const ClientPage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { ClientPage },
props: { ClientPage,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -9,6 +9,7 @@ import MethodTwoSection from "@/components/reuseables/services/MethodTwo";
import Seo from "@/components/reuseables/Seo/Seo";
import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const banners = [
{
......@@ -21,26 +22,26 @@ const banners = [
// Add more banners as needed
];
const RAData = [
{
subtitle: "Client Servicing",
title: "Risk Advisory",
paragraphs: [
"As businesses grow and expand their footprint, an area that is often neglected is the requirement to bring in discipline in areas of finance, human resource management operations. At Advith Consulting, we follow a 4-step EASE Approach. E – Understand existing processes , A – Analyze the gaps S – Set up SOP’s , E – Effective Implementation ",
],
imageSrc: "/images/client-service/Risk Advisory.webp",
imageAlt: "Client Servicing Image",
},
{
subtitle: "Client Servicing",
title: " About Risk Advisory",
paragraphs: [
"Often, it is not until something goes wrong that an organisation realises that it is has ineffective internal controls. Further, there is also a misconception among organisations that internal controls are needed only to satisy the statutory auditor. Strong internal controls play a crucial role in the success of any organisation. They enhance efficiency, ensure compliance, streamline operations & facilitate growth. Irrespective of the size of your organisation, defining processes, identifying risks & establishing controls are essential. At Advith, we understand the business of the entity and build strong yet agile processes to ensure that they stand the test of time. ",
],
imageSrc: "/images/client-service/About-Risk-Advisory.png",
imageAlt: "FC & CFO Services Image",
},
];
// const RAData = [
// {
// subtitle: "Client Servicing",
// title: "Risk Advisory",
// paragraphs: [
// "As businesses grow and expand their footprint, an area that is often neglected is the requirement to bring in discipline in areas of finance, human resource management operations. At Advith Consulting, we follow a 4-step EASE Approach. E – Understand existing processes , A – Analyze the gaps S – Set up SOP’s , E – Effective Implementation ",
// ],
// imageSrc: "/images/client-service/Risk Advisory.webp",
// imageAlt: "Client Servicing Image",
// },
// {
// subtitle: "Client Servicing",
// title: " About Risk Advisory",
// paragraphs: [
// "Often, it is not until something goes wrong that an organisation realises that it is has ineffective internal controls. Further, there is also a misconception among organisations that internal controls are needed only to satisy the statutory auditor. Strong internal controls play a crucial role in the success of any organisation. They enhance efficiency, ensure compliance, streamline operations & facilitate growth. Irrespective of the size of your organisation, defining processes, identifying risks & establishing controls are essential. At Advith, we understand the business of the entity and build strong yet agile processes to ensure that they stand the test of time. ",
// ],
// imageSrc: "/images/client-service/About-Risk-Advisory.png",
// imageAlt: "FC & CFO Services Image",
// },
// ];
const sliderConfig = {
spaceBetween: 20,
slidesPerView: 4,
......@@ -63,109 +64,23 @@ const sliderConfig = {
},
},
};
const MethodOneData = [
{
stepNumber: "01",
img: "/images/shape/icon/discovery.png",
title: "E – Understand existing processes",
descr:
"Understand the business of the entity & identify the requirements of the entity with respect to the finance function",
altText: "discovery-icon",
},
{
stepNumber: "02",
img: "/images/shape/icon/analysis.png",
title: "A – Analyze the gaps ",
descr: " Analyze past financial data to uncover trends and obtain insights",
altText: "analysis-icon",
},
{
stepNumber: "03",
img: "/images/shape/icon/setup.png",
title: "S – Set up SOP’s ",
descr: " Establishing the Modus Operandi of the finance function",
altText: "setup-icon",
},
{
stepNumber: "04",
img: "/images/shape/icon/execution.png",
title: "E – Effective Implementation",
descr: " Implement financial strategies and manage day-to-day operations ",
altText: "execution-icon",
},
];
const methodTwoData = [
{
img: "/images/services/cfo/activity/recurring.png",
title: "Understanding Common Terms",
descr:
"By establishing a common vocabulary, it promotes consistency, minimizes ambiguity, and enhances communication, thereby facilitating accurate interpretation and execution of the procedures outlined in the SOP.",
},
{
img: "/images/services/cfo/activity/monthly.png",
title: "Organisation Structure",
descr:
"This matrix outlines reporting relationships, hierarchical structures, and communication channels among different departments or personnel involved in the SOP processes.",
},
{
img: "/images/services/cfo/activity/quarterly.png",
title: "Process Flow Chart & Detailed Process Notes:",
descr:
"A flow provides a visual representation of the sequential steps in the process. The detailed process notes that accompany the flow chart provide a more in-depth explanation of each step in the process",
},
{
img: "/images/services/cfo/activity/annual.png",
title: "Risk Control Matrix:",
descr:
"Risks associated with each step in the process are Controls may be categorized as System (automated), Manual (human intervention), or Hybrid (combination of both). ",
},
{
img: "/images/services/cfo/activity/need.png",
title: "Version Control",
descr:
"With identifiable version numbers, dates, and authorship details, it enhances accountability and transparency during audits. Effective version control streamlines collaboration, allowing multiple contributors to work simultaneously.",
},
];
const partners = [
{
image: "/images/clientel/adsyndicate.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/APISERO.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Bighaat.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/CRESTA.svg",
altText: "partner",
link: "#",
},
{
image: "/images/clientel/Encee.svg",
altText: "partner",
link: "#",
},
];
const RaPage = ({ rapage }) => {
const RaPage = ({ rapage, conversionData }) => {
const dynamicdata = rapage?.RiskDetails;
// console.log("dynamicdata", dynamicdata);
const clientlogo = rapage?.Clientel;
// console.log("clientlogo", clientlogo);
const seo = rapage?.seo;
const code = conversionData?.conversion;
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<section className="cfo-page">
{dynamicdata &&
......@@ -269,18 +184,34 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/risk-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const rapage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { rapage },
props: { rapage, conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -9,6 +9,7 @@ import { cleanImage } from "@/layout/imageHandling";
import Seo from "@/components/reuseables/Seo/Seo";
import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const banners = [
{
......@@ -221,7 +222,7 @@ const partners = [
},
];
const TaPage = ({ tapage }) => {
const TaPage = ({ tapage ,conversionData }) => {
const banners = [
{
imageSrc: cleanImage(tapage?.Banner?.Image?.url),
......@@ -240,9 +241,12 @@ const TaPage = ({ tapage }) => {
// console.log("clientlogo", clientlogo);
const seo = tapage?.seo;
// console.log(seo, "seo")
const code = conversionData?.conversion;
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
......@@ -333,18 +337,33 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/transaction-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const tapage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { tapage },
props: { tapage , conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -7,8 +7,9 @@ import { cleanImage } from '@/layout/imageHandling';
import axios from 'axios';
import qs from 'qs';
import Seo from '@/components/reuseables/Seo/Seo';
import ConversionCode from '@/components/reuseables/ConversionCode/ConversionCode';
export default function Contact({ Contactpage }) {
export default function Contact({ Contactpage ,conversionData }) {
// console.log("conatct", Contactpage)
const banners = [
{
......@@ -22,10 +23,13 @@ export default function Contact({ Contactpage }) {
const seo = Contactpage?.seo;
// console.log(seo)
const code = conversionData?.conversion;
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<ContactInfo />
<ContactForm />
......@@ -44,19 +48,32 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/conatct-page?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Contactpage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { Contactpage },
props: { Contactpage ,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -11,11 +11,14 @@ import RightSideImage from "@/container/Corpedia/RightSideImage";
import TableData from "@/components/reuseables/services/TableData";
import Details from "@/components/reuseables/services/Details";
import DownloadBtn from "@/components/reuseables/DownloadBtn";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const details = ({ Corpedia }) => {
const details = ({ Corpedia , conversionData }) => {
const introDeatils = Corpedia;
// console.log("corpedia", Corpedia);
const dynamicdata = Corpedia[0]?.CorpediaDetails;
const code = conversionData?.conversion;
// console.log("dynamicdata", dynamicdata);
const banners = [
{
......@@ -31,7 +34,7 @@ const details = ({ Corpedia }) => {
return (
<>
<PageBanner banners={banners} />
<ConversionCode code={code} />
{/* <Background introdeatils ={introDeatils} /> */}
<section className="corpedia-details-page ptb-100">
{dynamicdata &&
......@@ -124,19 +127,31 @@ export async function getServerSideProps({ params }) {
},
},
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/corpedias?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const Corpedia = response1.data.data;
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Corpedia = response1.data.data;
const conversionData = response2.data.data;
return {
props: { Corpedia },
props: { Corpedia , conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -15,6 +15,7 @@ import ReactPaginate from "react-paginate";
import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination";
import { fetchcodeList } from "@/redux/slices/mangerslice";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
// const services = [
// {
......@@ -107,7 +108,7 @@ import { fetchcodeList } from "@/redux/slices/mangerslice";
// },
// ];
const CorpediaPage = ({ CorpediaData }) => {
const CorpediaPage = ({ CorpediaData, conversionData }) => {
// console.log(CorpediaData,"CorpediaData")
const banners = [
{
......@@ -129,12 +130,14 @@ const CorpediaPage = ({ CorpediaData }) => {
const corpedialist = useSelector((state) => state.corpedialist.data);
const tagmangerlist = useSelector((state) => state.tagmangerlist.data);
console.log(tagmangerlist,"tagmangerlist")
// console.log(tagmangerlist,"tagmangerlist")
// Pagination setup
const [currentPage, setCurrentPage] = useState(1); // Start at page 1
const postsPerPage = 6; // Number of items per page
const offset = (currentPage - 1) * postsPerPage; // Calculate offset
const currentItems = corpedialist?.slice(offset, offset + postsPerPage);
const code = conversionData?.conversion;
// Handle page click
const handlePageClick = (pageNumber) => {
......@@ -147,6 +150,8 @@ const CorpediaPage = ({ CorpediaData }) => {
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<div className="corpedia-page-area pt-70 pb-100 bg-light">
......@@ -278,19 +283,30 @@ export const getStaticProps = async () => {
"seo.schema",
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/corpedia-page?${query1String}`;
// console.log(`Final corpedia: ${endpoint1}`);
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url1: ${endpoint2}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const CorpediaData = response1.data.data;
const conversionData = response2.data.data;
return {
props: { CorpediaData },
props: { CorpediaData,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -20,7 +20,7 @@ import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCod
const inter = Inter({ subsets: ["latin"] });
export default function Home({homepage,conversionData }) {
export default function Home({ homepage, conversionData }) {
const dispatch = useDispatch();
// console.log("homepage", homepage);
const banner = homepage?.Banner;
......@@ -31,31 +31,30 @@ export default function Home({homepage,conversionData }) {
const functionarea = homepage?.FunctionalAreas;
const industry = homepage?.Industry;
const Clientel = homepage?.Clientel;
const code = conversionData?.conversion
const code = conversionData?.conversion;
useEffect(() => {
dispatch(fetchBlogList());
dispatch(fetchServiceList());
dispatch(fetchServiceList());
}, []);
const blogData = useSelector((state) => state.bloglist.data)
const serviceData = useSelector((state) => state.servicelist.data)
console.log(conversionData, "data")
const blogData = useSelector((state) => state.bloglist.data);
const serviceData = useSelector((state) => state.servicelist.data);
// console.log(conversionData, "data");
const seo = homepage?.seo;
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<ConversionCode code={code} />
<HomeBanner banner={banner} />
<AboutContent Knowledges={Knowledgeshack} KnowledgeTab={KnowledgeTab} />
<People people={people} />
<ClientService service={serviceData} />
<ClientService service={serviceData} />
<AreasofExpertise Areas={Areas} />
<FunctionalAreas functionarea={functionarea} />
<Industries industry={industry} />
<HomeBlog data={blogData}/>
<HomeBlog data={blogData} />
<div className="ptb-100 bg-fafafa">
<PartnerSlider Clientel={Clientel} />
</div>
......@@ -91,9 +90,7 @@ export async function getServerSideProps() {
};
const query2 = {
populate: [
"conversion",
]
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
......@@ -105,7 +102,7 @@ export async function getServerSideProps() {
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/home?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint2}`);
// console.log(`Final url1: ${endpoint2}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
......@@ -116,7 +113,7 @@ export async function getServerSideProps() {
const conversionData = response2.data.data;
return {
props: { homepage, conversionData },
props: { homepage, conversionData },
};
} catch (error) {
console.log("Error", error);
......
import React from "react";
import PageBanner from "@/components/reuseables/PageBanner";
import Education from "@/container/IndustryFocus/Education";
import Hospitality from "@/container/IndustryFocus/Hospitality";
import LifeSciences from "@/container/IndustryFocus/LifeSciences";
import RealEstate from "@/container/IndustryFocus/RealEstate";
import Technology from "@/container/IndustryFocus/Technology";
import axios from 'axios';
import qs from 'qs';
import { cleanImage } from "@/layout/imageHandling";
......@@ -12,9 +7,10 @@ import IndustryOverview from "@/container/IndustryFocus/IndustryOverview";
import IndustryTab from "@/container/IndustryFocus/IndustryTab";
import Seo from "@/components/reuseables/Seo/Seo";
import IndustryClientele from "@/components/reuseables/IndustryClientele";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const industry = ({ IndustryPage }) => {
const industry = ({ IndustryPage , conversionData }) => {
console.log("conatct", IndustryPage)
const dynamicdata = IndustryPage?.IndustryDetails;
console.log(dynamicdata , "dynamicdata")
......@@ -28,6 +24,7 @@ const industry = ({ IndustryPage }) => {
},
];
const seo = IndustryPage?.seo;
const code = conversionData?.conversion;
// console.log(seo, "seo")
......@@ -36,7 +33,8 @@ const industry = ({ IndustryPage }) => {
<>
<Seo seo={seo} />
<PageBanner banners={banners} />
<ConversionCode code={code} />
<section className="industry-details-page">
{dynamicdata &&
dynamicdata?.map((section, index) => {
......@@ -90,18 +88,32 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/industry-page?${query1String}`;
console.log(`Final url: ${endpoint1}`);
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const IndustryPage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { IndustryPage },
props: { IndustryPage , conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -14,10 +14,11 @@ import { fetchCorpediaList } from "@/redux/slices/corpediaslice";
import { fetchTaxwireList } from "@/redux/slices/taxwireslice"
import { fetchBudgetList } from "@/redux/slices/budgetslice";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
export default function Home({ Knowledgepage }) {
export default function Home({ Knowledgepage, conversionData }) {
const dispatch = useDispatch();
useEffect(() => {
......@@ -31,13 +32,15 @@ export default function Home({ Knowledgepage }) {
const corpedialist = useSelector((state) => state.corpedialist.data)
const taxwirelist = useSelector((state) => state.taxwirelist.data)
const budgetlist = useSelector((state) => state.budgetlist.data)
const code = conversionData?.conversion;
// console.log(budgetlist, "budgetlist")
// console.log("Knowledgepage", Knowledgepage);
const Overview = Knowledgepage?.Overview
const corpedia = Knowledgepage?.Corpedia
const taxWire = Knowledgepage?.Taxwire
const Budgetpanorama = Knowledgepage?.Budgetpanorama
console.log(conversionData, "data");
const banners = [
{
......@@ -56,6 +59,8 @@ export default function Home({ Knowledgepage }) {
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<KnowledgeContent Overview={Overview} />
<Corpedia Corpedia={corpedia} corpedialist={corpedialist} />
......@@ -82,19 +87,33 @@ export async function getServerSideProps() {
"seo.schema",
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/knowledgeshack?${query1String}`;
// console.log(`Final url: ${endpoint1}`);
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url3: ${endpoint2}`);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const response1 = await axios.get(endpoint1);
const Knowledgepage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { Knowledgepage },
props: { Knowledgepage,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -8,8 +8,9 @@ import qs from "qs";
import axios from "axios";
import { cleanImage } from "@/layout/imageHandling";
import Seo from "@/components/reuseables/Seo/Seo";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const people = ({peoplepage}) => {
const people = ({peoplepage , conversionData}) => {
const banners = [
{
imageSrc: cleanImage(peoplepage?.Banner?.Image?.url),
......@@ -29,9 +30,13 @@ const people = ({peoplepage}) => {
// console.log("AdvisoryBoard",Advisory)
const seo = peoplepage?.seo;
// console.log(seo )
const code = conversionData?.conversion;
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<AboutPeople aboutPeople ={aboutPeople}/>
<AdvisoryBoard advisoryboard ={Advisory}/>
......@@ -63,18 +68,32 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/people?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
// console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const peoplepage = response1.data.data;
const conversionData = response2.data.data;
return {
props: { peoplepage },
props: { peoplepage , conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -10,8 +10,9 @@ import LeftSideImage from "@/container/Corpedia/LeftSideImage";
import RightSideImage from "@/container/Corpedia/RightSideImage";
import TableData from "@/components/reuseables/services/TableData";
import Details from "@/components/reuseables/services/Details";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
const details = ({ Taxwire }) => {
const details = ({ Taxwire , conversionData }) => {
const introDeatils = Taxwire;
// console.log("taxwire", introDeatils);
const dynamicdata = Taxwire[0]?.TaxwireDetails;
......@@ -26,9 +27,12 @@ const details = ({ Taxwire }) => {
},
// Add more banners as needed
];
const code = conversionData?.conversion;
return (
<>
<PageBanner banners={banners} />
<ConversionCode code={code} />
<section className="Taxwire-details-page">
......@@ -116,18 +120,32 @@ export async function getServerSideProps({ params }) {
},
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/taxwires?${query1String}`;
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint1}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const Taxwire = response1.data.data;
const conversionData = response2.data.data;
return {
props: { Taxwire },
props: { Taxwire, conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -15,213 +15,9 @@ import axios from "axios";
import ReactPaginate from "react-paginate";
import Seo from "@/components/reuseables/Seo/Seo";
import Pagination from "react-js-pagination";
import ConversionCode from "@/components/reuseables/ConversionCode/ConversionCode";
// const services = [
// {
// id: 0,
// serviceTitle: "Supreme Court of India's Safari Retreats' Verdict: TaxWire 25.10.2024",
// serviceShortDescription: "The recent Indian Supreme Court judgement in the Chief Commissioner of Central Goods and Service Tax vs. Safari Retreats Private Limited & Others1 case is a landmark judgement under the Goods & Services Tax (GST) law in India,",
// date: "25 Oct 2024",
// pdfUrl: "/images/knoweledge/pdf/taxwire/TaxWire_25.10.2024.pdf",
// },
// {
// id: 1,
// serviceTitle: "Mismatch in year of taxation of Income and TDS Credit – Form 71 to the relief",
// serviceShortDescription: "The Income Tax Law in India requires that income from a particular assessment year be subjected to tax in that assessment year.",
// serviceDetailsUrl: "/services/details",
// date: "21 Sep 2023",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Mismatch_in_year_of_taxation_of_Income_and_TDS_Credit_–_Form_71_to_the_relief.pdf",
// },
// {
// id: 2,
// serviceTitle: "GST on Renting of residential property to registered person",
// serviceShortDescription: "For more than 15 years, renting of property has been covered under either service taxor Goods and Service Tax (GST). Broadly,the Government's intention seemed clear –tax commercial rentals and exemptresidential rentals. ",
// serviceDetailsUrl: "/services/details",
// date: "04 Aug 2022",
// pdfUrl: "/images/knoweledge/pdf/taxwire/GST_on_Renting_of_residential_property_to_registered_person.pdf",
// },
// {
// id: 3,
// serviceTitle: "Remission of Duties and Taxes on Exported Products (RoDTEP)",
// serviceShortDescription: "RoDTEP rates and scheme details have been announced by the Ministry of Commerce and Industry by making suitable amendments to chapter 4 of the Foreign Trade Policy (FTP) in the notification (19/2015-2020) dated 17th August 2021.",
// serviceDetailsUrl: "/services/details",
// date: "25 Aug 2021",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Remission_of_Duties_and_Taxes_on_Exported_Products_(RoDTEP).pdf",
// },
// {
// id: 4,
// serviceTitle: "Section 2(42C) of the Income-tax Act, 1961(IT Act) defines 'slump sale' as transfer ofone or more undertakings for a lumpsumconsideration without the value beingassigned to individual assets and liabilities in such cases.",
// serviceShortDescription: "Section 2(42C) of the Income-tax Act, 1961 (IT Act) defines 'slump sale' as transfer of one or more undertakings for a lumpsum consideration without the value being assigned to individual assets and liabilities in such cases.",
// serviceDetailsUrl: "/services/details",
// date: "07 Jun 2021",
// pdfUrl: "/images/knoweledge/pdf/taxwire/PDF1629220424.pdf",
// },
// {
// id: 5,
// serviceTitle: "Consideration for sale of software - Royalty or not: Delhi tax tribunal ruling",
// serviceShortDescription: "It is a known fact that buying licenses for software usage is a very common business transaction. It is also fairly common for Indian entities to buy suchsoftware from foreign companies. ",
// serviceDetailsUrl: "/services/details",
// date: "19 Jan 2021",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Delhi_High_Court_ruling_on_Constitutional_Validity_of_Income_Computation_and_Disclosure_Standards_(ICDS).pdf",
// },
// {
// id: 6,
// serviceTitle: "Finance Act, 2020 – Passed with multiple amendments",
// serviceShortDescription: "Indian Finance Minister had presented the Budget containing the Finance Bill, 2020 on 1st February, 2020. This was tabled in both the houses of Parliament and wassupposed to be discussed. ",
// serviceDetailsUrl: "/services/details",
// date: "02 Apr 2020",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Finance_Act,_2020_–_Passed_with_multiple_amendments.pdf",
// },
// {
// id: 7,
// serviceTitle: "Direct Tax Vivad se Vishwas Act, 2020",
// serviceShortDescription: "The Finance Minister introduced the Direct Tax Vivad se Vishwas Bill, 2020('DTVSV' or 'the scheme') in the Parliament on 05-02-2020 for providingresolution of disputed tax and for mattersconnected therewith and incidentalthereto.",
// serviceDetailsUrl: "/services/details",
// date: "30 Mar 2020",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Direct_Tax_Vivad_se_Vishwas_Act,_2020.pdf",
// },
// {
// id: 8,
// serviceTitle: "Key highlights of 31st and 32nd GST Council Meet",
// serviceShortDescription: "As you all are aware, w.e.f 01st July 2017, India moved into a comprehensive Indirect tax regimeunder the Goods and Services Tax (GST) Law. GST Council is a constitutional body for makingrecommendations to the Union and State Government on issues related to Goods and Service Tax.",
// serviceDetailsUrl: "/services/details",
// date: "23 Jan 2019",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Key_highlights_of_31st_and_32nd_GST_Council_Meet.pdf",
// },
// {
// id: 9,
// serviceTitle: "Mumbai tax tribunal holds that 'Conversion of CCPS into equity shares is Not taxable'",
// serviceShortDescription: "The provisions of section 45(1) of the Income Tax Act, 1961 (the Act) brings into tax the profits or gains arising from the transfer of capital asset under the head'Capital Gains'. Both the terms transfer and capital asset has been defined under the Act.",
// serviceDetailsUrl: "/services/details",
// date: "16 Jan 2019",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Mumbai_tax_tribunal_holds_that_'Conversion_of_CCPS_into_equity_shares_is_Not_taxable'.pdf",
// },
// {
// id: 10,
// serviceTitle: "Tax Benefit for Start-ups – an overview",
// serviceShortDescription: "To keep a check on the closely held companies from bringing in undisclosed income into the company by issuing the shares at abnormal premium, section 56(2)(viib) was introduced into the Income Tax Act, 1961(the Act) by the Finance Act2012. ",
// serviceDetailsUrl: "/services/details",
// date: "24 Apr 2018",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Tax_Benefit_for_Start-ups_–_an_overview.pdf",
// },
// {
// id: 11,
// serviceTitle: "Changes in the ITR Forms AY 2018-19",
// serviceShortDescription: "Income Tax filings in India are based on self-assessment mechanism. Meaning, every person earning income in India and who is required to file tax returns, is required to compute his income and tax thereon. He needs to remit the tax and then file the said return with the income tax authority within the said date",
// serviceDetailsUrl: "/services/details",
// date: "17 Apr 2018",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Changes_in_the_ITR_Forms_AY_2018-19.pdf",
// },
// {
// id: 12,
// serviceTitle: "Delhi High Court ruling on Constitutional Validity of Income Computation and Disclosure Standards (ICDS)",
// serviceShortDescription: "'Accountancy is a matter of taste. One tax payer may be conservative and others may not.' - So was told by Lord Greene in Henriksen (Inspector of Taxes) vs GraftonHotel Ltd",
// serviceDetailsUrl: "/services/details",
// date: "23 Nov 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Delhi_High_Court_ruling_on_Constitutional_Validity_of_Income_Computation_and_Disclosure_Standards_(ICDS).pdf",
// },
// {
// id: 13,
// serviceTitle: "Green or not Green?",
// serviceShortDescription: "“Agriculture is the backbone of the Indian economy”. This is a statement that all of us are familiar with right from elementary school. Rightly so, as agriculture contributes around 22% to our country's",
// serviceDetailsUrl: "/services/details",
// date: "12 Sep 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Green_or_not_Green.pdf",
// },
// {
// id: 14,
// serviceTitle: "Penny wise, Pound foolish!",
// serviceShortDescription: "It has been constantly the effort of the Government to encourage the habit of savings and investment amongst its people and to ensure the surplus funds ",
// serviceDetailsUrl: "/services/details",
// date: "16 Jun 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Penny_wise,_Pound_foolish!.pdf",
// },
// {
// id: 15,
// serviceTitle: "Changes in the ITR Forms AY 2017-18",
// serviceShortDescription: "The year 2016-17 saw a lot of steps taken by the Government of India to ensure that black money is subject to taxes and the revenue of the government is secured. ",
// serviceDetailsUrl: "/services/details",
// date: "08 Apr 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Changes_in_the_ITR_Forms_AY_2017-18.pdf",
// },
// {
// id: 16,
// serviceTitle: "Bollywood Badshah's tryst with the tax department!",
// serviceShortDescription: "Mr. Shahrukh Khan (hereinafter referred to as Mr. Khan/the assessee for brevity) is a well-known name in the film industry and also referred to as Badshah ",
// serviceDetailsUrl: "/services/details",
// date: "07 Apr 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Bollywood_Badshah_s_tryst_with_the_tax_department!.pdf",
// },
// {
// id: 17,
// serviceTitle: "India enters into protocol amending Singapore DTAA",
// serviceShortDescription: "It has always been a matter of dispute in India whether alienation of shares of Indian companies by companies located in tax jurisdictions like Mauritius or Cyprus can avail the benefit of treaty.",
// serviceDetailsUrl: "/services/details",
// date: "09 Jan 2017",
// pdfUrl: "/images/knoweledge/pdf/taxwire/India_enters_into_protocol_amending_Singapore_DTAA.pdf",
// },
// {
// id: 18,
// serviceTitle: "Update on Section 44AD & Section 44ADA of Income Tax Act, 1961",
// serviceShortDescription: "This communication is to apprise you of some amendment that has happened to Income Tax act relating to professional starting FY 2016-17. The amendment will apply to taxpayers engaged in specified profession like:",
// serviceDetailsUrl: "/services/details",
// date: "23 Dec 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Update_on_Section_44AD_&_Section_44ADA_of_Income_Tax_Act,_1961.pdf",
// },
// {
// id: 19,
// serviceTitle: "Opportunity hardly ever knocks twice!",
// serviceShortDescription: "In light of the recent developments in the administration of the country, with the introduction of the Income Declaration scheme,",
// serviceDetailsUrl: "/services/details",
// date: "21 Dec 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Opportunity_hardly_ever_knocks_twice!.pdf",
// },
// {
// id: 20,
// serviceTitle: "Relaxation for Non-residents from obtaining PAN",
// serviceShortDescription: "The requirement to have a Permanent Account Number (PAN) for the purpose of Income Tax Act was first introduced in 1976. ",
// serviceDetailsUrl: "/services/details",
// date: "09 Jul 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Relaxation_for_Non_residents_from_obtaining_PAN.pdf",
// },
// {
// id: 21,
// serviceTitle: "Government frees 'Startup' from 'Angel Tax'",
// serviceShortDescription: "Infusing unaccounted money into closely held companies by issuing shares at abnormal premiums was a practice that prevailed as a method to convert unaccounted money into accounted money. In order to curb such practice, the",
// serviceDetailsUrl: "/services/details",
// date: "02 Jul 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Government_frees_'Startup'_from_'Angel_Tax'.pdf",
// },
// {
// id: 22,
// serviceTitle: "TDS and TCS amendments applicable from 1st June, 2016",
// serviceShortDescription: "The Finance Act, 2016 has brought changes in rates and limits for withholding as well as collection of taxes. These changes are applicable from 1st June, 2016. We have tried to summarise these changes as below",
// serviceDetailsUrl: "/services/details",
// date: "01 Jun 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/TDS_and_TCS_amendments_applicable_from_1st_June,_2016.pdf",
// },
// {
// id: 23,
// serviceTitle: "Compliances for Foreign Remittances Rationalized",
// serviceShortDescription: "Section 195 of the Income Tax Act, 1961 mandates withholding of taxes from payments being made to a non-resident ifsuch incomes is taxable in India.",
// serviceDetailsUrl: "/services/details",
// date: "25 Mar 2016",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Compliances_for_Foreign_Remittances_Rationalized.pdf",
// },
// {
// id: 24,
// serviceTitle: "Madras High Court's ruling on Taxation of unclaimed trading liability of discontinued business",
// serviceShortDescription: "When a person claims allowance or deduction in respect of losses, expenditures or trading liability in the earlier years and subsequently he obtainsany benefit/recovery/remission/cessation with respect to such allowances or deductions, such benefit is deemed to be the profits and gains from business or profession u/s 41(1) of the Income Tax Act, 1961 (the Act)",
// serviceDetailsUrl: "/services/details",
// date: "26 Apr 2019",
// pdfUrl: "/images/knoweledge/pdf/taxwire/Madras_High_Court`s_ruling_on_Taxation_of_unclaimed_trading_liability_of_discontinued_business.pdf",
// },
// ];
const TaxWire = ({ TaxwireData }) => {
const TaxWire = ({ TaxwireData ,conversionData }) => {
const banners = [
{
imageSrc: cleanImage(TaxwireData?.Banner?.Image?.url),
......@@ -231,33 +27,34 @@ const TaxWire = ({ TaxwireData }) => {
activePageText: TaxwireData?.Banner?.Heading,
},
];
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchTaxwireList());
}, []);
const taxwirelist = useSelector((state) => state.taxwirelist.data);
// Pagination setup
const taxwirelist = useSelector((state) => state.taxwirelist.data);
const code = conversionData?.conversion;
const seo = TaxwireData?.seo;
// Pagination setup
const [currentPage, setCurrentPage] = useState(1); // Start at page 1
const postsPerPage = 6; // Number of items per page
const offset = (currentPage - 1) * postsPerPage; // Calculate offset
const [currentPage, setCurrentPage] = useState(1);
const postsPerPage = 6;
const offset = (currentPage - 1) * postsPerPage;
const currentItems = taxwirelist?.slice(offset, offset + postsPerPage);
// Handle page click
const handlePageClick = (pageNumber) => {
setCurrentPage(pageNumber); // Update current page
setCurrentPage(pageNumber);
};
const seo = TaxwireData?.seo;
// console.log(seo)
return (
<>
<Seo seo={seo} />
<ConversionCode code={code} />
<PageBanner banners={banners} />
<div className="tax-wire-page-area pt-70 pb-100 bg-light ">
<Container>
<div className="section-title">
......@@ -390,18 +187,31 @@ export async function getServerSideProps() {
],
};
const query2 = {
populate: ["conversion"],
};
const query1String = qs.stringify(query1, {
encodeValuesOnly: true,
});
const query12String = qs.stringify(query2, {
encodeValuesOnly: true,
});
const endpoint1 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/taxwire-page?${query1String}`;
console.log(`Final url: ${endpoint1}`);
const endpoint2 = `${process.env.NEXT_PUBLIC_BACKEND_API_URL}/api/google-manger?${query12String}`;
console.log(`Final url: ${endpoint2}`);
const response1 = await axios.get(endpoint1);
const [response1, response2] = await Promise.all([
axios.get(endpoint1),
axios.get(endpoint2),
]);
const TaxwireData = response1.data.data;
const conversionData = response2.data.data;
return {
props: { TaxwireData },
props: { TaxwireData ,conversionData },
};
} catch (error) {
console.log("Error", error);
......
......@@ -3978,7 +3978,7 @@
}
.fuctional-areas {
height: 45vh;
height: 65vh;
}
.method-one-above-img {
margin-top: 13vw;
......@@ -4093,12 +4093,12 @@
line-height: 1.3;
}
.fuctional-areas {
min-height: 36vh;
min-height: 40vh;
/* max-width: fit-content; */
height: 83vh;
}
.fuctional-areas {
height: 40vh;
height: 45vh;
}
/* cfo services */
.method-one-above-img {
......@@ -4117,7 +4117,7 @@ height: 40vh;
/* Add your styles here */
.fuctional-areas{
height: 63vh;
height: 80vh;
}
.single-services-box .content{
/* height: 42vh; */
......
......@@ -8159,7 +8159,7 @@ h3.sub-title {
}
.fuctional-areas {
height: 36vh;
height: 48vh;
/* max-width: fit-content; */
}
.area_expertise{
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!