HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/ContactController.php
<?php

namespace App\Http\Controllers;

use App\Models\Contact;
use App\Models\Customer;
use App\Models\Contacthr;
use App\Models\Countries;
use Illuminate\Http\Request;
use App\Library\UserLib;
use DB;
use DBD;

use pgsqlSalesforce;

class ContactController extends Controller
{
    protected $userLib;
    public function __construct(UserLib $userLib)
	{
		$this->userLib = $userLib;	          
	}

    //testContact
    public function testContact(){
         
        // $Contact=DB::table('contact')->select()->get();
        // echo json_encode($Contact);
     

         $payLoad = '{"lastname":"Manoj","asssign_to__c":null,"languages__c":"English","crmid__c":null,"name":"Rose Gonzalez","alternate_email__c":null,"heroku_id__c":null,"device_name__c":null,"isdeleted":false,"systemmodstamp":"2023-01-31 06:36:53","status__c":null,"is_primary__c":null,"createddate":"2023-04-06 06:36:53","firstname":"Rose","email":"rose@edge.com","wedding_anniversary__c":null,"level__c":"Primary","sfid":"0032w00000yDBOmAAO","id":1,"_hc_lastop":null,"_hc_err":null}';

        // $payLoadArray = json_decode($payLoad,true);

        // DB::connection('pgsqlSalesforce')->table('contact')->insert($payLoadArray);

        // $params = [
        //     '{"Manoj4"},{"Gupta4"}'
        // ];

    //     $contact = new Contacthr;
    //   $contact->firstname = "Amar";
    //   $contact->lastname = "Lucknow";
    //   $contact->save();

     //DB::connection('pgsql')->insert("insert into salesforce.contact (firstname, lastname) values ('Rohit', 'Sharma')");


     DB::connection('pgsql')->update("update salesforce.contact set firstname = 'RS 101', lastname = 'Sharma' where id = '62'");

    //  DB::connection('DBD')->insert('insert into tbl_contact (FirstName, LastName) values (?, ?)', ['Ram', 'Dayle']);

    //   $contact = new Contact;
    //   $contact->FirstName = "Amar ".time();
    //   $contact->LastName = "Lucknow ".time();
    //   $contact->save();


    //  $contact = new Contacthr;
    //   $contact->firstname = "Amar ".time();
    //   $contact->lastname = "Lucknow ".time();
    //   $contact->save();


        // $params = [
        //     "Manoj4","Gupta4"
        // ];

        // DB::connection('pgsqlSalesforce')->insert("insert into salesforce.contact (firstname, lastname) values (?, ?)", $params);

        //DB::connection('pgsqlSalesforce')->table('contact')->insert((info)'{"lastname":"Manoj","asssign_to__c":null,"languages__c":"English"}');


        //DB::connection('pgsqlSalesforce')->insert("insert into salesforce.contact (firstname, lastname) values ('Manoj2', 'Gupta')");


        // $Contact=DB::connection('pgsqlSalesforce')->table('contact')->select()->get();
        // echo json_encode($Contact);


        // {"lastname":"Gonzalez","asssign_to__c":null,"languages__c":"English","crmid__c":null,"name":"Rose Gonzalez","alternate_email__c":null,"heroku_id__c":null,"device_name__c":null,"isdeleted":false,"systemmodstamp":"2023-01-31 06:36:53","status__c":null,"is_primary__c":null,"createddate":"2023-01-31 06:36:53","firstname":"Rose","email":"rose@edge.com","wedding_anniversary__c":null,"level__c":"Primary","sfid":"0032w00000yDBOmAAO","id":1,"_hc_lastop":null,"_hc_err":null}
    }

    #All Contacts
    public function allContact(){
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }
        $Contact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as AdminUpdated_by', 'tbl_admin.FirstName as AdminCreated_by', 'tbl_user.FirstName as Updated_by', 'tbl_user.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_user', 'tbl_contact.Updated_by', '=', 'tbl_user.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $ActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $InActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $TrashContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        return view('admin.all-contact', ['Contact' => $Contact, 'ActiveContact' => $ActiveContact, 'InActiveContact' => $InActiveContact, 'TrashContact' => $TrashContact]);
    }

    #Active Contacts
    public function activeContact(){
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }
        $Contact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $ActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as AdminUpdated_by', 'tbl_admin.FirstName as AdminCreated_by', 'tbl_user.FirstName as Updated_by', 'tbl_user.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_user', 'tbl_contact.Updated_by', '=', 'tbl_user.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $InActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $TrashContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        return view('admin.active-contact', ['Contact' => $Contact, 'ActiveContact' => $ActiveContact, 'InActiveContact' => $InActiveContact, 'TrashContact' => $TrashContact]);
    }

    #InActive Contacts
    public function inactiveContact(){
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }
        $Contact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $ActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $InActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as AdminUpdated_by', 'tbl_admin.FirstName as AdminCreated_by', 'tbl_user.FirstName as Updated_by', 'tbl_user.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_user', 'tbl_contact.Updated_by', '=', 'tbl_user.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $TrashContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        return view('admin.inactive-contact', ['Contact' => $Contact, 'ActiveContact' => $ActiveContact, 'InActiveContact' => $InActiveContact, 'TrashContact' => $TrashContact]);
    }

    #Trash Contacts
    public function trashContact(){
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }
        $Contact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $ActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $InActiveContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '0')
        ->where('tbl_contact.Status', '=', '0')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        $TrashContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as AdminUpdated_by', 'tbl_admin.FirstName as AdminCreated_by', 'tbl_user.FirstName as Updated_by', 'tbl_user.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_user', 'tbl_contact.Updated_by', '=', 'tbl_user.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.IsDeleted', '=', '1')
        ->orderBy('tbl_contact.id', 'desc')
        ->get();
        return view ('admin.trash-contact', ['Contact' => $Contact, 'ActiveContact' => $ActiveContact, 'InActiveContact' => $InActiveContact, 'TrashContact' => $TrashContact]);
    }

    ### View Record
    public function viewContact($ContactId)
    {
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }
        $ViewContact = Contact::select('tbl_contact.*', 'tbl_customer.CustomerName as CustomerName', 'tbl_customer.CustomerCode as CustomerCode', 'tbl_customer.CustomerId as CustomerId', 'tbl_countries.country_name as Country', 'tbl_admin.FirstName as AdminUpdated_by', 'tbl_admin.FirstName as AdminCreated_by', 'tbl_user.FirstName as Updated_by', 'tbl_user.FirstName as Created_by')
        ->leftJoin('tbl_admin', 'tbl_contact.Updated_by', '=', 'tbl_admin.UserId')
        ->leftJoin('tbl_user', 'tbl_contact.Updated_by', '=', 'tbl_user.UserId')
        ->leftJoin('tbl_customer', 'tbl_contact.CustomerId', '=', 'tbl_customer.CustomerId')
        ->leftJoin('tbl_countries', 'tbl_contact.Country', '=', 'tbl_countries.id')
        ->where('tbl_contact.ContactId', '=', $ContactId)
        ->get()->first();
        return view('admin.view-contact', ['Contact' => $ViewContact]);
    }


    ### Check Contact Mobile Number
    public function checkContactMobile(Request $request)
    {
        $CreatedDate = date('Y-m-d H:i:s',time());
         
        $data = $request->all(); 

        $contact = Contact::where('Mobile', $data['Mobile'])->get();               
        if ($contact->count() > 0)
        {   //mobile exist
            $contact = $contact->first();   
            $ContactId = $contact->ContactId;  
        
            $response = [
                'Success' => false,
                'ResponseMessage' => "Number already exist in CRM!",
                'ResponseCode' => '201',                
            ];
            return response()->json($response);
        }  
        else{
            $response = [
                'Success' => true,
                'ResponseMessage' => "",
                'ResponseCode' => '200',                
            ];
            return response()->json($response);
        }       
    }

    ### Store New Record
    public function storeContact(Request $request)
    {
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }
        $Contact = new Contact;
        $Contact->ContactId = $this->userLib->useridGenrator();
        $Contact->Title = $request->input('Title');
        $Contact->FirstName = $request->input('firstName');
        $Contact->LastName = $request->input('lastName');
        $Contact->Mobile = $request->input('mobile');
        $Contact->AlternateMobile = $request->input('alternateMobile');
        $Contact->Email = $request->input('email');
        $Contact->AlternateEmail = $request->input('alternateEmail');

        $BirthDate = '';
        if ($request->input('dateOfBirth')) {
            $BirthDate = str_replace('/', '-', $request->input('dateOfBirth'));
            $Contact->DateOfBirth = date('d-m-Y', strtotime($BirthDate));
        }
        
        //$Contact->DateOfBirth = $request->input('dateOfBirth');
        $WeddingDate = '';
        if ($request->input('weddingAnniversary')) {
            $WeddingDate = str_replace('/', '-', $request->input('weddingAnniversary'));
            $Contact->WeddingAnniversary = date('d-m-Y', strtotime($WeddingDate));
        }
        
        //$Contact->WeddingAnniversary = $request->input('weddingAnniversary');
        $CustomerId = $request->input('customer');
        $AssignTo = '';
        if ($CustomerId) {
            $Customer = Customer::where('CustomerId', $CustomerId)->get()->first();
            $AssignTo = $Customer->AssignTo;
        }

        $Contact->CustomerId = $CustomerId;
        $Contact->StreetAddress = $request->input('streetAddress');
        $Contact->City = $request->input('city');
        $Contact->Country = $request->input('country');
        $Contact->State = $request->input('state');
        $Contact->PostalCode = $request->input('postalCode');
        $Contact->Description = $request->input('description');
        $Contact->AssignTo = $AssignTo;
        $Contact->CrmId = '';
        $Contact->Created_by = session('UserId');
        $Contact->Updated_by = session('UserId');
        $Contact->IsDeleted = '0';
        $Contact->DeviceName = 'WEB';

        if ($request->has('IsPrimary')) {
            $Contact->IsPrimary = '1';
        } else {
            $Contact->IsPrimary = '0';
        }

        $ContactCustomerDetails = Contact::where('CustomerId',$CustomerId)->where('Status','1')->get();
        if($ContactCustomerDetails->count() == 0)
        {
            $Contact->IsPrimary = '1';
        }

        if ($request->has('Status')) {
            $Contact->Status = '0';
        } else {
            $Contact->Status = '1';
        }

        $Contact->save();

        $ContactId = $Contact->ContactId;
        //$CustomerId = $Contact->CustomerId;
        $Title = $request->input('Title');
        $FirstName = $request->input('firstName');
        $LastName = '-';
        if ($request->input('lastName')) {
            $LastName = $request->input('lastName');
        }
        $Mobile = $request->input('mobile');
        $Email = $request->input('email');
        $AlternateEmail = $request->input('alternateEmail');

        // if ($request->input('dateOfBirth')) {
        //     $BirthDate = str_replace('/', '-', $request->input('dateOfBirth'));
        // }
        // $DateOfBirth = date('m-d-Y', strtotime($BirthDate));

        // if ($request->input('weddingAnniversary')) {
        //     $WeddingDate = str_replace('/', '-', $request->input('weddingAnniversary'));
        // }
        // $WeddingAnniversary = date('m-d-Y', strtotime($WeddingDate));

        $DateOfBirth = '';
        if ($request->input('dateOfBirth')) {
            $BirthDate = str_replace('/', '-', $request->input('dateOfBirth'));
            $DateOfBirth = date('d-m-Y', strtotime($BirthDate));
        }
        
        $WeddingAnniversary = '';
        if ($request->input('weddingAnniversary')) {
            $WeddingDate = str_replace('/', '-', $request->input('weddingAnniversary'));
            $WeddingAnniversary = date('d-m-Y', strtotime($WeddingDate));
        }

        $StreetAddress = $request->input('streetAddress');
        $City = $request->input('city');
        $Country_id = $request->input('country');
        $Country = '';
        if($Country_id){
            $customer_details = Countries::select('tbl_countries.country_name')
            ->where('tbl_countries.id', $Country_id)
            ->get()->first();
            $Country = $customer_details->country_name;
        }
        $State = $request->input('state');
        $PostalCode = $request->input('postalCode');
        $Description = $request->input('description');
        $IsDeleted = '0';
        $DeviceName = 'WEB';

        if ($request->has('Status')) {
            $Status = '0';
        } else {
            $Status = '1';
        }

        $DateOfBirth = date('Y-m-d',strtotime($DateOfBirth));
        $WeddingAnniversary = date('Y-m-d',strtotime($WeddingAnniversary));
         DB::connection('pgsql')->insert("insert into salesforce.contact (Contact_ID__c,External_Account_Id__c,Title,FirstName,LastName,MobilePhone,Email,Alternate_Email__c,Birthdate,Wedding_Anniversary__c,MailingStreet,MailingCity,MailingCountry,MailingState,MailingPostalCode,Description,IsDeleted,Device_Name__c,Status__c,Assign_To__c) values ('$ContactId','$CustomerId','$Title','$FirstName','$LastName','$Mobile','$Email','$AlternateEmail','$DateOfBirth','$WeddingAnniversary','$StreetAddress','$City','$Country','$State','$PostalCode','$Description','$IsDeleted','$DeviceName','$Status','$AssignTo')");

        //return redirect()->back()->with('status_success');
        return response()->json('status_success');
    }

    #### Change Status
    public function statusUpdateContact($id)
    {
        $data = Contact::find($id);
        if ($data->Status == '1') {
            $Status = '0';
        } else {
            $Status = '1';
        }

        $values = array('Status' => $Status);
        Contact::find($id)->update($values);
        return redirect()->back();
    }


    #### Delete Temporary
    public function deleteContact($id)
    {
        //get customer contact details
        $ContactDetails = Contact::where('id',$id)->get();
        $CustomerId = '';
        if($ContactDetails->count() > 0)
        {
            $ContactData = $ContactDetails->first();
            $CustomerId = $ContactData->CustomerId;
        }

         
        $ContactCustomerDetails = Contact::where('id',$id)->where('IsPrimary','1')->where('Status','1')->get();
        if($ContactCustomerDetails->count() > 0)
        {
             echo "201";
        }
        else  
        {
            $value = array('IsDeleted' => '1', 'Status' => '0');
            Contact::find($id)->update($value);            
            $Contact = Contact::find($id);
            $ContactId = $Contact->ContactId;
            DB::connection('pgsql')->update("update salesforce.contact set IsDeleted='1',Status__c='0' where Contact_ID__c = '$ContactId'");
            echo "200";
        }
                           
    }
	#### Delete Selected Contact
    public function deleteSelectedContact(Request $request)
    {
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }

        $id = $request->input('SelectedContact');
        if ($id) {
            foreach ($id as $contact) {
                $checkData = Contact::find($contact);
                if ($checkData->IsDeleted == '0') {
                    $CreatedDate = date(
                        'Y-m-d H:i:s',
                        time()
                    );
                    $data = array();
                    $data['Updated_at'] = $CreatedDate;
                    $data['IsDeleted'] = '1';
    
                    $selected_contact = Contact::where('id', $contact)->update($data);
                    if ($selected_contact) {
                        echo '1';
                    } else {
                        echo '0';
                    }
                } else {
                    $selected_contact = Contact::find($contact);
                    $selected_contact->delete();
                }
            }
        }

        return redirect()->back()->with('status_success');
    }

    #### Empty trash contact folder 
    // public function emptyTrashContact(Request $request)
    // {
    //     if (empty(session('UserId'))) {
    //         return redirect('/admin/logout');
    //     }

    //     $id = $request->input('SelectedContact');
    //     foreach ($id as $contact) {
    //         $checkData = Contact::find($contact);
    //         if ($checkData->IsDeleted == '1') {
                
    //             $selected_contact = Contact::find($contact);
    //             $selected_contact->delete();
    //             if ($selected_contact) {
    //                 echo '1';
    //             } else {
    //                 echo '0';
    //             }
    //         }
    //     }

    //     return redirect()->back()->with('status_success');
    // }

    #### Restore
    public function restoreContact($id)
    {
        $value = array('IsDeleted' => '0');
        Contact::find($id)->update($value);

        DB::connection('pgsql')->update("update salesforce.contact set IsDeleted='0',Status__c='1' where Contact_ID__c = '$id'");
    }

    #### Delete Permanent
    public function destroyContact($id)
    {
        $destroyData = Contact::find($id);
        $destroyData->delete();
    }

    ### Edit Records
    public function editContact($id)
    {
        $Contact = Contact::find($id);
        return response()->json([
            'status' => 200,
            'Contact' => $Contact,
        ]);
    }

    ### Update Records
    public function updateContact(Request $request)
    {
        if (empty(session('UserId'))) {
            return redirect('/admin/logout');
        }
        // //$user_id = Auth::id();
        // $contact_id =  $request->input('id');
        // $Contact = Contact::find($contact_id);
        // $Contact->Title = $request->input('Title');
        // $Contact->FirstName = $request->input('firstName');
        // $Contact->LastName = $request->input('lastName');
        // $Contact->Mobile = $request->input('mobile');
        // $Contact->AlternateMobile = $request->input('alternateMobile');
        // $Contact->Email = $request->input('email');
        // $Contact->AlternateEmail = $request->input('alternateEmail');

        // $BirthDate = NULL;
        // if ($request->input('dateOfBirth')) {
        //     $BirthDate = str_replace('/', '-', $request->input('dateOfBirth'));
        //     $Contact->DateOfBirth = date('d-m-Y', strtotime($BirthDate));
        // }
        
        // //$Contact->DateOfBirth = $request->input('dateOfBirth');
        // $WeddingDate = NULL;
        // if ($request->input('weddingAnniversary')) {
        //     $WeddingDate = str_replace('/', '-', $request->input('weddingAnniversary'));
        //     $Contact->WeddingAnniversary = date('d-m-Y', strtotime($WeddingDate));
        // }
        
        // //$Contact->WeddingAnniversary = $request->input('weddingAnniversary');
        // $CustomerId = $request->input('customer');
        // $AssignTo = '';
        // if ($CustomerId) {
        //     $Customer = Customer::where('CustomerId', $CustomerId)->get()->first();
        //     $AssignTo = $Customer->AssignTo;
        // }

        // $Contact->CustomerId = $CustomerId;
        // $Contact->StreetAddress = $request->input('streetAddress');
        // $Contact->City = $request->input('city');
        // $Contact->Country = $request->input('country');
        // $Contact->State = $request->input('state');
        // $Contact->PostalCode = $request->input('postalCode');
        // $Contact->Description = $request->input('description');
        // $Contact->CrmId = '';
        // $Contact->Updated_by = session('UserId');
        // $Contact->DeviceName = '';

        // if ($request->has('editIsPrimary')) {
        //     $Contact->IsPrimary = '1';
        // } else {
        //     $Contact->IsPrimary = '0';
        // }
        // $Contact->update();

        $contact_id =  $request->input('id');
        $Contact['Title'] = $request->input('Title');
        $Contact['FirstName'] = $request->input('firstName');
        $Contact['LastName'] = $request->input('lastName');
        $Contact['Mobile'] = $request->input('mobile');
        $Contact['AlternateMobile'] = $request->input('alternateMobile');
        $Contact['Email'] = $request->input('email');
        $Contact['AlternateEmail'] = $request->input('alternateEmail');

        $Contact['DateOfBirth'] = '';
        if ($request->input('dateOfBirth')) {
            $BirthDate = str_replace('/', '-', $request->input('dateOfBirth'));
            $Contact['DateOfBirth'] = date('d-m-Y', strtotime($BirthDate));
        }
        
        $Contact['WeddingAnniversary'] = '';
        if ($request->input('weddingAnniversary')) {
            $WeddingDate = str_replace('/', '-', $request->input('weddingAnniversary'));
            $Contact['WeddingAnniversary'] = date('d-m-Y', strtotime($WeddingDate));
        }
        
        $CustomerId = $request->input('customer');
        $AssignTo = '';
        if ($CustomerId) {
            $Customer = Customer::where('CustomerId', $CustomerId)->get()->first();
            $AssignTo = $Customer->AssignTo;
        }

        $Contact['CustomerId'] = $CustomerId;
        $Contact['StreetAddress'] = $request->input('streetAddress');
        $Contact['City'] = $request->input('city');
        $Contact['Country'] = $request->input('country');
        $Contact['State'] = $request->input('state');
        $Contact['PostalCode'] = $request->input('postalCode');
        $Contact['Description'] = $request->input('description');
        $Contact['CrmId'] = '';
        $Contact['Updated_by'] = session('UserId');
        $Contact['DeviceName'] = '';

        if ($request->has('editIsPrimary')) {
            $Contact['IsPrimary'] = '1';
        } else {
            $Contact['IsPrimary'] = '0';
        }
        // echo "<pre>";
        // print_r($_POST);
        // echo "<br>";
        // echo "<pre>";
        // print_r($Contact);exit;
        $update_contact = Contact::where('id', $contact_id)->update($Contact);
        
        if($update_contact)
        {

            $ContactId = $contact_id =  $request->input('ContactId');
            $Title = $request->input('Title');
            $FirstName = $request->input('firstName');
            $LastName = $request->input('lastName');
            $Mobile = $request->input('mobile');
            $Email = $request->input('email');
            $AlternateEmail = $request->input('alternateEmail');

            $BD = NULL;
            if ($request->input('dateOfBirth')) {
                $BirthDate = str_replace('/', '-', $request->input('dateOfBirth'));
                $DateOfBirth = date('Y-m-d', strtotime($BirthDate));
                $BD = "Birthdate = '".$DateOfBirth."' ,";
            }
            
            $WA = NULL;
            if ($request->input('weddingAnniversary')) {
                $WeddingDate = str_replace('/', '-', $request->input('weddingAnniversary'));
                $WeddingAnniversary = date('Y-m-d', strtotime($WeddingDate));
                $WA = "Wedding_Anniversary__c = '".$WeddingAnniversary."' ,";
            }
            

            $StreetAddress = $request->input('streetAddress');
            $City = $request->input('city');
            $Country_id = $request->input('country');
            $Country = '';
            if($Country_id){
                $customer_details = Countries::select('tbl_countries.country_name')
                ->where('tbl_countries.id', $Country_id)
                ->get()->first();
                $Country = $customer_details->country_name;
            }
            $State = $request->input('state');
            $PostalCode = $request->input('postalCode');
            $Description = $request->input('description');
            $IsDeleted = '0';
            $DeviceName = 'WEB';
            $Updated_by = session('UserId');

            DB::connection('pgsql')->update("update salesforce.contact set Title='$Title',FirstName='$FirstName',LastName='$LastName',MobilePhone='$Mobile',Email='$Email',Alternate_Email__c='$AlternateEmail', $BD $WA MailingStreet='$StreetAddress',MailingCity='$City',MailingCountry='$Country',MailingState='$State',MailingPostalCode='$PostalCode',Description='$Description',IsDeleted='$IsDeleted',Device_Name__c='$DeviceName',Updated_By__c ='$Updated_by',Assign_To__c='$AssignTo',External_Account_Id__c='$CustomerId' where Contact_ID__c = '$ContactId'");
        }

            return redirect()->back()->with('status_success');
    }

    ### Check Primary Records
    public function checkContactPrimary($CustomerId)
    {
        $Contact = Contact::select('tbl_contact.*')
        ->where('CustomerId', '=', $CustomerId)
        ->where('IsPrimary', '=', '1')
        ->where('Status', '=', '1')
       //->where('IsDeleted', '=', '0')
        ->get()->first();
        return response()->json([
            'status' => 200,
            'Contact' => $Contact,
        ]);
    }
}