Current File : /home/inlingua/www/crm.vprotectindia.com/app/Http/Controllers/API/InvoiceMastersController.php
<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use App\Model\API\CustomerMasterModel;
use App\Model\API\InvoiceDetails;
use App\Model\API\InvoiceMasters;
use App\Model\API\Ledgers;
use App\Model\API\Receipts;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

 

class InvoiceMastersController extends Controller
{
    public function store (Request $request)
    {
    	ini_set('memory_limit', '-1');
    	$data = json_decode(file_get_contents("php://input"));
         //dd($data); exit;
   //return response()->json($data);exit;

// echo "<pre>";
// print_r($data);exit;
    	$result =1;
		 for ($i=0; $i <count($data) ; $i++) { 
		 	//echo $data[$i]->invoice_number;

	 		// if($data[$i]->partyledgername!=""){echo "partyledgername=>".$i;exit;}
	 		// else
	 		// 	{continue; }
			$inv_no=isset($data[$i]->invoice_number)?$data[$i]->invoice_number:"0";
			if (InvoiceMasters::where('invoice_number', '=',$inv_no)->exists()) {
			continue;
			}
		 	 if(isset($data[$i]->invoice_number))
		 	 { 
		 	 	$invoice = new InvoiceMasters();
		 	 	$san =$invoice->customer;
		 	 	//print_r($data[$i]->partyledgername);exit;()
		 	 	 $CustomerMaster = new CustomerMasterModel();
		 	 	 $userid="00";
                  $userid = isset(CustomerMasterModel::where('fname',$data[$i]->partyledgername)->first()->id)?CustomerMasterModel::where('fname',$data[$i]->partyledgername)->first()->id:"00";
               //if(!$userid){print_r($data[$i]->partyledgername);exit;}
		 	 	$invoice->customer_id=  $userid ;//
				$invoice->invoice_number=$data[$i]->invoice_number;
				$invoice->date=$data[$i]->date;
				$invoice->voucher_type=$data[$i]->voucher_type;
				$invoice->refrence=$data[$i]->refrence;
				$invoice->partyname=$data[$i]->partyname;
				$invoice->partyledgername=$data[$i]->partyledgername;
				$invoice->buyeraddress=$data[$i]->buyeraddress;
				$invoice->salesperson=$data[$i]->salesperson;
				$invoice->total_amount=$data[$i]->total_amount;

				$invoice->delivery_note=$data[$i]->delivery_note;
				$invoice->sales_order=$data[$i]->sales_order;
				$invoice->pay_mode=$data[$i]->pay_mode;
				$invoice->pay_appr_code=$data[$i]->pay_appr_code;
			$invoice->cont_from=$data[$i]->cont_from!=''?$data[$i]->cont_from:date('Y-m-d');
			$invoice->cont_to=$data[$i]->cont_to!=''?$data[$i]->cont_to:date('Y-m-d');
                $invoice->kit_type=$data[$i]->kit_type;
				$result = $invoice->save();
				$identity =$invoice->id; 
				if(!$result)
				{
					$result=0;
				}
				foreach ($data[$i]->ItemList as $items) {
					if(isset($items->ItemName))
					{
					$invdt =new InvoiceDetails();
					$invdt->main_id=$identity;

					$invdt->itemname=$items->ItemName;
					$invdt->qty=$items->ItemQuantity;
					$invdt->rate=$items->RateAmount;
					$invdt->discount=$items->Discount;
					$invdt->amount=$items->Amount;
					 $result = $invdt->save();
					}
				}

	//$tax_type = array('Output CGST' =>9,'Output SGST'=>9,'Output IGST'=> 18);

				foreach ($data[$i]->LedgerEntries as $ledger) {
					if(isset($ledger->LedgerName))
					{
						// $taxrate=$ledger->Rate;
						// if(array_key_exists($ledger->LedgerName,$tax_type))
						// {
						// 	$taxrate=  array_search ($ledger->LedgerName, $tax_type);
						// }
						$ledgers = new Ledgers();
						$ledgers->main_id=$identity;
						$ledgers->type="non";
						$ledgers->ledgername=$ledger->LedgerName;
						$ledgers->amount=str_replace('-', '',$ledger->Amount);
						$ledgers->rate=$ledger->Rate;
						$result = $ledgers->save();

						foreach ($ledger->ReceiptList as $receipt) {
							if(isset($receipt->ReceiptNo)&&$receipt->BillType!="")
							{
							//return response()->json($receipt);
							if($receipt->BillType=="Agst Ref")
							{
						    $receipts = new Receipts();
							$receipts->main_id =$identity;    
							$receipts->inv_id =$identity;
							$receipts->main_voucher_id =$identity;
							$receipts->receiptno =$receipt->ReceiptNo;
							$receipts->billtype =$receipt->BillType;
							$receipts->pay_source ='inv';
							$receipts->amount =str_replace('-', '',$receipt->Amount);
							$result = $receipts->save();
							}

							}
						}


						
					}
				}
				


		 	 }
		 }
				 if(!$result)
			     {   
			      return response()->json(['error'=>'Unauthorised'.$result], 401);      
			     }
			     else
			     {
			      return response()->json(['success'=>$result]);
			     }

    } 

 public function report($id="NULL")
    {
		
		$id=date('Y-m-d');
		$url = "https://api.sisindia.com/Magicxpi4.13/MgWebRequester.dll?prgname=HTTP&appname=IFSPROD_GET_APIS&arguments=-AReports%23SISOutstandingV2&ORG=SIS%20Alarm%20Monitoring%20and%20Response%20Services%20Private%20Limited&DATE=".$id."&USERID=SIS&PWD=U0lTTWFnaWM=";
$xml = simplexml_load_file($url);


DB::enableQueryLog();
$i=0;
foreach ($xml->G_1 as $row) {
	
		$data=[
		'organization_id' => $row->ORGANIZATION_ID,
		'party_name' => $row->PARTY_NAME, 
		'bal_func_amt' => $row->BAL_FUNC_AMT, 
		'invoice_number' => $row->INVOICE_NUMBER,
		'invoice_amount' => $row->INVOICE_AMOUNT,
		'customer_number' => $row->CUSTOMER_NUMBER,
		'rec_account' => $row->REC_ACCOUNT, 
		'customer_trx_id' => $row->CUSTOMER_TRX_ID,
		'payment_schedule_id' => $row->PAYMENT_SCHEDULE_ID
				];	
				
			
			//$user = DB::table('outstanding_report')->select('customer_trx_id', $row->CUSTOMER_TRX_ID)->get();
          /*
			$user = DB::table('outstanding_report')
             ->select('customer_trx_id')
             ->where('customer_trx_id', '=', $row->CUSTOMER_TRX_ID)
             ->get();
			*/
			
			$user = DB::table('outstanding_reports')->where('customer_trx_id',$row->CUSTOMER_TRX_ID)->first();
		
			
			if($user===null){
		
		 	 $alluser=DB::table('outstanding_reports')->insert($data);
			 //dd(DB::getQueryLog());
			 $i++;
			}
			 
			 unset($data);
			 
			 
	}
				


				
echo $i."-Record Inserted successfully !!!";
				
       
		exit;
    	
	}
				 
public function customer($id="NULL")
    {
		
		 $id=date('Y-m-d', strtotime('-1 day'));
		$id='2023-07-26';
		//$url = "https://api.sisindia.com/Magicxpi4.13/MgWebRequester.dll?appname=IFSPROD_GET_APIS&prgname=HTTP&arguments=-AReports%23SISCustomerDetails&Date=".$id."&p_org_id=SIS Alarm Monitoring and Response Services Private Limited&UserId=SIS&Pwd=U0lTTWFnaWM=";
$url="https://api.sisindia.com/Magicxpi4.13/MgWebRequester.dll?appname=IFSPROD_GET_APIS&prgname=HTTP&arguments=-AGRN%23MDM&FROM_DATE=".$id."&USER=SIS&PWD=U0lTTWFnaWM=";
$xml = simplexml_load_file($url);



DB::enableQueryLog();

//echo '<pre>';print_r($xml);

//for($i=0; $i<count($xml->G_2); $i++ ) {
	
	$i=0;
	foreach($xml->G_1 as $row)
	{
	//echo '<pre>'; print_r($row[$i]);
	
	if($row->CUSTOMER_CLASS=='B2C' && $row->CUSTOMER_EMAIL !=''){
		//echo $i.'<br>'; 
       if($row->PAYMENT_TERM==''){
          $PAYMENT_TERM='0';
	   }else{
		$PAYMENT_TERM=$row->PAYMENT_TERM;
	   }	

if($row->SITE_ADDRESS_3==''){
          $SITE_ADDRESS_3='0';
	   }else{
		$SITE_ADDRESS_3=$row->SITE_ADDRESS_3;
	   }		   


$alldata=[	
		'PARTY_NAME' =>$row->PARTY_NAME,
		'email' =>$row->CUSTOMER_EMAIL,
		'CUSTOMER_PHONE_NUMBER' =>$row->CUSTOMER_PHONE_NUMBER,
		'ACCOUNT_NUMBER' => $row->ACCOUNT_NUMBER,
		'PARTY_SITE_ID' =>$row->PARTY_SITE_ID,
		'PARTY_SITE_NAME' =>$row->PARTY_SITE_NAME,
		'PARTY_SITE_NUMBER' =>$row->PARTY_SITE_NUMBER,
		'ACCOUNT_START_DATE' =>$row->ACCOUNT_START_DATE,
		'SITE_START_DATE' =>$row->SITE_START_DATE,
		'SITE_ADDRESS' =>$row->SITE_ADDRESS,
		'SITE_ADDRESS_2' =>$row->SITE_ADDRESS_2,
		'SITE_ADDRESS_3' =>$SITE_ADDRESS_3,
		'SITE_CITY' =>$row->SITE_CITY,
		'SITE_STATE' =>$row->SITE_STATE,
		'CUSTOMER_CLASS' =>$row->CUSTOMER_CLASS,
		'SITE_PIN_CODE' =>$row->SITE_PIN_CODE,
		'BUSINESS_TYPE' =>$row->BUSINESS_TYPE,
		'PERSON_NAME' =>$row->PERSON_NAME,
		'PAYMENT_TERM' =>$PAYMENT_TERM,
		'TAXPAYER_IDENTIFICATION_NUMBER' =>$row->TAXPAYER_IDENTIFICATION_NUMBER,
		'SITE_GST_REGISTRATION_NUMBER' =>$row->SITE_GST_REGISTRATION_NUMBER,
		'password'=>'$2y$10$mlefhlBtgNFbYX/w/9DhLeiN70Ne7CmXzLMNOPD8hia.eZ4twY73W'
	
		];
			$data = array_filter($alldata);
			//echo $i.'---------<br>';echo '<pre>';print_r($data);	
			$cus=$row->CUSTOMER_EMAIL;
			$user = DB::table('customers')->where('email',$cus)->first();
			
			//dd(DB::getQueryLog()); //exit;
			//echo '<pre>';print_r($data);
			//$alluser=DB::table('customers')->insert($data);
			 //dd(DB::getQueryLog());
			 //exit;
			//echo "uuu->".$alluser.$row->CUSTOMER_EMAIL; exit;
			if($user===null){
		   
		 	 $alluser=DB::table('customers')->insert($data);
			 //dd(DB::getQueryLog());
			 $i++; 
			}else {
				
				echo $cus.'<br>';
			}	
			
			
	}	
			
			 //echo '---------------'.'<br>';
			 unset($alldata);
			 unset($data);
	}
				


				
echo $i."-Record Inserted successfully !!!";
				
     exit;  
		
    	
	}
    

}