<?php
require_once("../include/config.php");	
require_once("../include/startup.php");

$obj  							=  new Product();
$invoice_obj					=	new Invoice();
$client_obj  					=	new Client();
$company_obj  					=	new Company();

$memberpaymentdetail_obj	=	new Memberpaymentdetail();
$memberpaymentheader_obj	=	new Memberpaymentheader();
 
if($_POST['SUBMIT'])
{ 		//echo"<pre>";
			//print_r($_POST);
			//die();
	$memberid 							= $_POST['memberid'];
	$billing_membercompanyid		= sanitize($_POST['billing_membercompanyid'],SQL);
	$billed_membercompanyid			= sanitize($_POST['billed_membercompanyid'],SQL);
	if($billed_membercompanyid == '')
	{
		 	echo"<script> alert('Invoice is Not completed ! (Invoice to:) Company Not Match in a System  please  First create This company');window.location = 'create_invoice.php'; </script>";
			exit;
				//$redirect_url = DOC_ROOT."admin/viewProforma.php";
				//	header("Location: $redirect_url");
	    			//exit;
	    			//echo"submit is completed";
	}
	else
	{
	 	$member_sql = "select billing_address from mstclients where clientcompanyid = $billed_membercompanyid ";
		$mem_info 	= $obj-> getProduct('',$member_sql);		
		$billing_address_val = $mem_info[0]['billing_address'];
	
		if($billing_address_val === '0') 
			{			
				$sql2 = "select companyname,Addline1 as Add1,Addline2 as Add2, head_CityName as CityName,head_Pin as Pin,head_Stateid1,head_StateidName as StateName,Country,gstno from mstclients where clientcompanyid =".$billed_membercompanyid;
			}
			else 
			{
				$billing_data = explode('-',$billing_address_val);
				$add_type = $billing_data[0];
				$add_id 	 = $billing_data[1];
				
					if($add_type == 'FACTORY') 
					{
						
							$sql2 = "select factoryaddressline1 as Add1,factoryaddressline2 as Add2,factoryaddressline3 as Add3,factoryaddressline4 as Add4,
										factorycity as CityName,factorypincode as Pin,factorystateid as head_Stateid,
										factorystate as StateName,factorygstno as GST_no 
										from client_factories where clientfactoryid = ".$add_id;
							
						
					}
					elseif($add_type == 'BRANCH') 
					{
							$sql2 = "select branchaddressline1 as Add1,branchaddressline2 as Add2,branchaddressline3 as Add3,branchaddressline4 as Add4,
										branchcity as CityName,branchpincode as Pin,branchstateid as head_Stateid,
										branchstate as StateName,branchgstno as GST_no
										from client_branches where clientbranchid = ".$add_id;				
									
						
					}				
				
			}
			
			$inv_add_data 	= $client_obj-> getClient('','',$sql2);		
//print_r($inv_add_data);
			$invoicearray['memberid'] 									= $memberid;
			$invoicearray['billing_membercompanyid'] 				= $billing_membercompanyid;
			$invoicearray['billed_membercompanyid'] 				= $billed_membercompanyid;
			$invoicearray['billed_membername'] 						= sanitize($inv_add_data[0]['companyname'],SQL);
			$invoicearray['inv_Add1'] 				= sanitize($inv_add_data[0]['Add1'],SQL);
			$invoicearray['inv_Add2'] 				= sanitize($inv_add_data[0]['Add2'],SQL);
			$invoicearray['inv_Add3'] 				= sanitize($inv_add_data[0]['Add3'],SQL);
			$invoicearray['inv_Add4'] 				= sanitize($inv_add_data[0]['Add4'],SQL);
			$invoicearray['inv_CityName'] 		= sanitize($inv_add_data[0]['CityName'],SQL);
			$invoicearray['inv_Pin'] 				= sanitize($inv_add_data[0]['Pin'],SQL);
			$invoicearray['inv_State'] 			= $inv_add_data[0]['State'];
			$invoicearray['inv_StateName'] 		= $inv_add_data[0]['StateName'];
			$invoicearray['inv_head_Stateid'] 	= $inv_add_data[0]['head_Stateid1'];
			$gstno_available			= $inv_add_data[0]['gstno'];
			$gstno_notavailable       = 'GST Not available';
			$gstno_notapplicable         = 'GST Not applicable';
			if($_POST['txtgstapplicable'] == '1')
			{
				if($gstno_available == '')
				{
					$invoicearray['inv_GST_no'] 			= $gstno_notavailable;
				}
				else if($gstno_available != '')
				{
					$invoicearray['inv_GST_no'] 			= $gstno_available;
				}

			}

			if($_POST['txtgstapplicable'] == '2')
			{
				if($gstno_available == '')
				{
					$invoicearray['inv_GST_no'] 			= $gstno_notapplicable;
				}
				else if($gstno_available != '')
				{
					$invoicearray['inv_GST_no'] 			= $gstno_available;
				}

			}
			
			/*elseif($_POST['txtgstapplicable'] == '1' || $gstno1 != ' ')
			{
				$invoicearray['inv_GST_no'] 			= $inv_add_data[0]['gstno'];
			}*/
			$invoicearray['inv_Country'] 			= $inv_add_data[0]['Country'];
	     //$invoicearray['tax'] 			= $inv_add_data[0]['gstno'];
	    // $invoicearray['inv_GST_no'] 			= $inv_add_data[0]['gstno'];
			

		
		$invoicearray['quotes_proforma_invoice']	=	2;
		$invoicearray['invoiceno'] 			= $_POST['txtinv_no'];
		$invoicearray['invoicedate'] 			= date("Y-m-d",strtotime($_POST['txtinv_date']));
		$invoicearray['duedate'] 				= date("Y-m-d",strtotime($_POST['txtinv_duedate']));
		$invoicearray['status_invoice'] 				= $_POST['txtgstapplicable'];
		$invoicearray['entered_by']			  = $G_memberid;
		$invoicearray['entry_date']          = date('Y-m-d h:m:s');
		

if( $_POST['txtgstapplicable'] == '1' || $_POST['txtgstapplicable'] == '2')
{
			// If Product Not Available Start Of product addition
			$itemname_display_array	= $_POST['txtitemname_asperinvoice_display1'];
			if(is_array($itemname_display_array))
			{
				$rowcountitemname = count($itemname_display_array);
			}
			
			for($j=0;$j<$rowcountitemname;$j++)
			{
				$itemname	= $itemname_display_array[$j];	
				$product_available_query = "Select * from mstproducts where productname = '$itemname' and membercompanyid = $billing_membercompanyid ";	
				$productrow = $obj-> getProduct('',$product_available_query);
				$productname = $productrow[0]['productname'];
				if($itemname != $productname)
				{
					$addproduct['itemno'] 			 = $_POST['txtitemno_asperinvoice_display1'][$j];
					$addproduct['productname'] 	 = $_POST['txtitemname_asperinvoice_display1'][$j];
					$addproduct['hsn_code'] 		 = $_POST['txthsncode_asperinvoice_display1'][$j];
					$addproduct['price'] 			 = $_POST['txtitemprice_asperinvoice_display1'][$j];
					$addproduct['membercompanyid'] = $billing_membercompanyid;
					$addproduct['memberid'] 		 = $memberid;
					$addproductrow = $obj-> AddProduct($addproduct);
					
				}				
			}	
			// End of product addition
				
			$cgstper 				= 0;
			$cgstamt 				= 0;
			$sgstper 				= 0;
			$sgstamt 				= 0;	

			if($billed_membercompanyid > 0)
			{
				$taxtype   = CheckTypeOfGST($billed_membercompanyid,$statecode);
			}
			else 
			{
				$taxtype   = CheckTypeOfGSTWithoutCustomerId($stateid,$statecode);
			}
				
				
			if($taxtype == 'IGST') 
			{		
				$tax_percent  = $_POST['tax'];
			 	$invoicearray['igst_percentage'] = $tax_percent	;
				$invoicearray['igst_amount'] 		= $_POST['gst_amt'];
					
			}
			//else if($taxtype == 'SGST' || $taxtype == 'CGST'){
			 else if($taxtype == 'SC_GST'){
					$tax_percent  = $_POST['tax'];
						$invoicearray['cgst_percentage'] = $tax_percent / 2;
						$cgst_amount 							= $_POST['gst_amt']/2;
						$invoicearray['cgst_amount'] 		= $cgst_amount;
						$invoicearray['sgst_percentage'] = $tax_percent / 2;
						$invoicearray['sgst_amount'] 		= $cgst_amount;
			}
		if($_POST['discounts'] > 0)
		{
			if($_POST['select_discounts_mode'] == '%') 
			{
				$invoicearray['discount_percentage'] 	= $_POST['discounts'];
			}
			else if($_POST['select_discounts_mode'] == '1')
			{
				$invoicearray['discount_flat'] 			= $_POST['discounts'];
			}
			$discount_amount 									= $_POST['storefinaldiscountamt'];
			$invoicearray['discount_amount'] 			= $discount_amount;			
				
			$invoicearray['InvoiceBaseAmount'] 			= $_POST['invoicebaseamount'];
			$invoicearray['InvoiceTotalAmount'] 		= $_POST['final_amt'];
			$invoicearray['InvoiceSubTotalAmount'] 		= $_POST['subtotal_amt'];
			$invoicearray['SEZ_remark'] 	= "";
		}
		else 
		{
			$invoicearray['InvoiceBaseAmount'] 			= $_POST['invoicebaseamount'];
			$invoicearray['InvoiceTotalAmount'] 		= $_POST['final_amt'];
			$invoicearray['InvoiceSubTotalAmount'] 		= $_POST['subtotal_amt'];
		
			$invoicearray['SEZ_remark'] 	= "";
		}



		$add_invoice = $invoice_obj -> AddInvoice($invoicearray);
		
		$sql ="select * from trninvoicetomember 
				 where billed_membercompanyid = $billed_membercompanyid 
				 order by memberinvoicesid desc limit 0,1";

		$get_invoicelist = $invoice_obj -> getInvoice('',$sql,'','','');

		$memberinvoicesid	=	$get_invoicelist[0]['memberinvoicesid'];
		
		$itemno   = $_POST['txtitemno_asperinvoice_display1'];
		
		if(is_array($itemno))
		{
			$rowcountitemno = count($itemno);
		}
		if($memberinvoicesid > '')
		{
			for($j=0;$j<$rowcountitemno;$j++)
			{
				 $itemno1	= $itemno[$j];
				 $itemname	= $itemname_display_array[$j];
				 $sqltext = "Select * from mstproducts  where isdeleted = 0 and  ( itemno = '".($itemno1)."' or productname  = '".($itemname)."') and membercompanyid = $billing_membercompanyid order by Product_ID desc";
		
				 $row = $obj-> getProduct('',$sqltext);
				 $total = 0;
				$quantity  = $_POST['txtitemquantity_asperinvoice_display1'][$j];
				$productid = $row[0]['Product_ID'];
				if($quantity > 0)
				{
						$memberinvoicedetail['memberinvoicesid'] 		= $memberinvoicesid;
						$memberinvoicedetail['itemno'] 					= $row[0]['itemno'];
						$memberinvoicedetail['productname'] 			= $row[0]['productname'];
						//$memberinvoicedetail['product_description'] 	= $row[0]['product_description'];	
						$memberinvoicedetail['quantity '] 				= $quantity;	
						
							
						$memberinvoicedetail['ProductBaseAmount'] 		= sanitize($_POST['txtitemprice_asperinvoice_display1'][$j],SQL);
						$memberinvoicedetail['product_description'] 		= sanitize($_POST['txtitemdescription_asperinvoice_display2'][$j],SQL);
						$memberinvoicedetail['ProductTotalAmount'] 		= sanitize($_POST['txtitemprice_asperinvoice_display1'][$j]*$quantity,SQL);
					
		
						$memberinvoicedetail['billed_membercompanyid'] 				= $billed_membercompanyid;
						$add_memberinvoicedetail = $invoice_obj -> AddInvoiceDetails($memberinvoicedetail);
				}
			}	
			
			
		}
					
	}
}

		   /*	if($add_memberinvoicedetail)
		 		{
					$redirect_url = DOC_ROOT."admin/viewInvoice.php";
					header("Location: $redirect_url");
	    			exit;
				 }*/

				/* if($add_memberinvoicedetail)
		 		{
		 			echo"<script> alert('Invoice is completed');setTimeout(function() { window.location = 'viewInvoice.php'; } ); </script>";
					exit;
					/*$redirect_url = DOC_ROOT."admin/viewQuotes.php";
					header("Location: $redirect_url");
	    			exit;*/
				 /*}
				 if($addproductrow)
		 		{
					echo"<script> alert('Invoice is completed');setTimeout(function() { window.location = 'viewInvoice.php'; } ); </script>";
					exit;
				 }
				 if($add_invoice)
		 		{
					echo"<script> alert('Invoice is completed');setTimeout(function() { window.location = 'viewInvoice.php'; } ); </script>";
					exit;
				 }*/


				  if($add_memberinvoicedetail)
		 		{
		 			//echo"<script> alert('Invoice is completed');setTimeout(function() { window.location = 'viewInvoice.php'; } ); </script>";
		 			//echo $billing_membercompanyid;
					//exit;
					$redirect_url = DOC_ROOT."admin/viewInvoice.php?membercompanyid=".$billing_membercompanyid."";
					header("Location: $redirect_url");
	    			exit;
				 }
				 if($addproductrow)
		 		{
					//echo"<script> alert('Invoice is completed');setTimeout(function() { window.location = 'viewInvoice.php'; } ); </script>";
					$redirect_url = DOC_ROOT."admin/viewInvoice.php?membercompanyid=".$billing_membercompanyid."";
					header("Location: $redirect_url");
					exit;
				 }
				 if($add_invoice)
		 		{
					//echo"<script> alert('Invoice is completed');setTimeout(function() { window.location = 'viewInvoice.php'; } ); </script>";
				$redirect_url = DOC_ROOT."admin/viewInvoice.php?membercompanyid=".$billing_membercompanyid."";
				header("Location: $redirect_url");
					exit;
				 }
		   	
}
?>