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;
}
}