1

I am here to have some help from you.

I am making a Unilevel MLM using Codeigniter and now I can sucessfully add new member

But the problem is I need to distribute the earnings to other level after a new member is successfully Added

See pic below:

Distribution of earnings

I need to distribute like the image above.

I hope you can help me with this guys.

1 Answers1

0

Okay, I have a solution for you. The process i used is based on my understanding of the question.

So this is it, first i checked for a registration post, if a post request is made, i use the referral id from the post to fetch the number of registrations tied to that referral id that has not been given awarded the 100 earning. If the count of the result of this query is equal to 4, i loop through all of them and give them the earning of 100 and update their paid status to reflect that they have been paid then i insert the record, else i just insert the record.

So too much text, lets see the code

 //this is the controller code
//first check for post of registration
    if($_POST){

       //kindly do your form validation here

        $register = array(
            "name" => $this->input->post('name'),
            "refid" => $this->input->post('refID')
        );

        //during post, get the referral id from the post
        $refID = $this->input->post('refID');

        //before registering, use referral id to get the referred that have not been given earnings yet
        $thereffered = $this->referral_m->getReferred($refID);

        //check for the number of registration
        if(count($thereffered) == 4){

            //then get their ids and give them their earnings and update them to paid
            foreach($thereffered as $referred){

                $earnings = array(
                    "userID" => $referred->id,
                    "amount" => 100
                );

                $paid = array(
                    "paid" => 1
                );

                //give earning
                $this->referral_m->giveEarning($earnings); //this adds the user id to earning table and give it an amount of 100
                $this->referral_m->updateUser($paid, $referred->id); //this updates the user with the paid status

            }

            //then proceed to register the new record
            $this->referral_m->register($register);

        }else{

            //register the new record
            $this->referral_m->register($register);

        }
        //redirect after registration
        redirect();

    }else{
        //load view here
    }

This is how the model looks like

function getReferred($refID){
    return $this->db->get_where('referral', array("refid" => $refID, "paid" => '0'))->result();
}

function giveEarning($record){
    $this->db->insert('earnings', $record);
}

function register($array){
    $this->db->insert('referral', $array);
}

function updateUser($array, $id){
    $this->db->where('id', $id);
    $this->db->update('referral', $array);
}

From the model, you would discover that i created 2 database tables, I assume you already have those tables created, just use the logic to update your code. If you find any difficulty, kindly comment lets sort it out

Sunday Okoi
  • 303
  • 2
  • 7