/** * Pack out a referral to a PPI client. * * @access public * @param mixed $referral_id * @return void */ public function post_create_client($referral_id) { // First, we must save the updated data // Need to make sure that if we are a 0 referral_id then we create a new referral. list($referral, $referral_id) = Controller_Crm_Ppi::save_current_post($referral_id); // Now create the client $referralData = $referral->values(); $clientID = ClientClass::createClient($referralData); \log::write('Msg', 'Create Client: ' . (int) $clientID, 'post_create_client'); if ($clientID > 0) { // -- Create a PPI account for the client // -------------------------------------- $referralData['clientID'] = $clientID; $ppiClientID = \Crm\Ppi\Ppi_class::createPpiClient($referralData); $ppiReference = \Crm\Ppi\Ppi_class::forge($ppiClientID); // -- Create a partner if details have been supplied // ------------------------------------------------- $partnerDetails = $referral->loadData(); if (isset($partnerDetails['partner']) && is_array($partnerDetails['partner'])) { $partnerDetails['partner']['clientID'] = $clientID; \Crm\PartnerClass::createPartner($partnerDetails['partner']); } $referral->setDisposition(5); list($driver, $user_id) = \Auth::get_user_id(); $thisUser = \Model_User::find($user_id); \Log::write('Dispo', $thisUser->name . ' created a client from referral ID ' . $referral_id, 'Controller_Crm_Ppi::post_create_client()'); $referralDetails = \DB::query("SELECT data FROM crm_referrals WHERE id='" . $referral_id . "';", \DB::select())->execute()->as_array(); $data = unserialize($referralDetails[0]['data']); $letterConfig = \Crm\Ppi\Ppi_class::loadLettersList((int) $referralData['company_id']); if ((int) $referralData['company_id'] == 1) { $timeSlot = 1; } else { if ((int) $referralData['company_id'] == 3) { $timeSlot = 2; } } // -- Persolvo Letters \Crm\Letter\Pack::forge($clientID, null, array(array('id' => $letterConfig['ppi_welcome_letter'], 'qty' => 1, 'tray_id' => 2)))->setOutputFilename('ppi_pack_coverletter_' . $clientID . '.pdf')->printLetter(2, 40)->timeSlot($timeSlot)->create(); $pack = array(array('id' => $letterConfig['ppi_form_of_authority'], 'qty' => count($data['creditors']) > 0 ? count($data['creditors']) : 3, 'tray_id' => 1), array('id' => $letterConfig['recommand_a_friend'], 'qty' => 1, 'tray_id' => 1), array('id' => $letterConfig['terms_and_conditions_GAB'], 'qty' => 1, 'tray_id' => 1), array('id' => $letterConfig['terms_and_conditions_CUSTOMER'], 'qty' => 1, 'tray_id' => 1)); if ((int) $referralData['company_id'] == 3) { $pack[] = array('id' => $letterConfig['ipad_questionnaire'], 'qty' => 1, 'tray_id' => 1); } \Crm\Letter\Pack::forge($clientID, null, $pack)->setOutputFilename('ppi_pack_' . $clientID . '.pdf')->printLetter()->timeSlot($timeSlot)->create(); \DB::query("UPDATE crm_ppi_clients SET pack_sent_date = NOW() WHERE client_id=" . $clientID . ";")->execute(); // -- Set Correspondence to Pack Out // --------------------------------- $correspondence = \Crm\Ppi\Ppi_correspondence::forge($clientID); $correspondence->saveNew(0, 1, 1, 0, 'Client Created and Pack Sent Out'); $this->response(array('status' => 'SUCCESS', 'referralID' => $referral_id, 'clientID' => $clientID, 'ppiID' => $ppiClientID)); } else { $this->response(array('status' => 'FAIL', 'message' => 'No Client could be created. Oh dear!')); } }
public function action_view_client($clientID = 6273) { /* ** Client class now displays the client on the page ** NEEDS TO: ** * Display a list of products for the client ** * Show the status for these products ** * If we are still in 'Pack Sent' status then an icon lets us 're-send' a pack */ $this->template->title = 'View Client'; $ppiDetails = \Crm\Ppi\Ppi_class::forge($clientID); $chosenClient = \Crm\ClientClass::forge($clientID); // -- Check to see if the client has a partner saved // ------------------------------------------------- $partnerDetails = array(); if ($ppiDetails->hasPartner()) { $partner = \Crm\PartnerClass::forge($ppiDetails->partner_id); $partnerDetails = array('partnerID' => $ppiDetails->partner_id, 'title' => $partner->title, 'forename' => $partner->forename, 'surname' => $partner->surname, 'streetAndNumber' => $partner->streetAndNumber, 'area' => $partner->area, 'district' => $partner->district, 'town' => $partner->town, 'county' => $partner->county, 'postCode' => $partner->postCode, 'dateOfBirth' => $partner->dateOfBirth == "0000-00-00" ? "Not Taken" : date("d/m/Y", strtotime($partner->dateOfBirth)), 'telHome' => $partner->telHome == 0 ? "Not Taken" : "0" . $partner->telHome, 'telMobile' => $partner->telMobile == 0 ? "Not Taken" : "0" . $partner->telMobile, 'telWork' => $partner->telWork == 0 ? "Not Taken" : "0" . $partner->telWork, 'email' => $partner->email); } $referralDetails = Referrals_class::forge($ppiDetails->referral_id); $packDocuments = $ppiDetails->getPackReturnedDocuments(); $creditorList = Creditor_class::loadCreditorList(); $disposisionList = $referralDetails->loadDispositionList(); // -- Is the client Active // ----------------------- $clientProduct = \Crm\Product\Client_product_class::forge(\Crm\Product\Product_class::getClientProductID($ppiDetails->referral_id)); // -- Correspondence // ----------------- $correspondence = \Crm\Ppi\Ppi_correspondence::forge($clientID); $correspondenceList = $correspondence->getCorrespondences(5); // -- PPI Claims // ------------- $claims = \Crm\Ppi\Ppi_claims::getClaims($ppiDetails->id); $ppiStages = \Crm\Ppi\Ppi_class::listStages(); $niceCreditorList = array(); foreach ($creditorList as $creditor) { $niceCreditorList[$creditor['id']] = $creditor['name']; } // -- Get a nice Debt Type List // ---------------------------- $debtTypeList = \Crm\Ppi\Ppi_class::getDebtList(); $niceDebtTypeList = array(); foreach ($debtTypeList as $debt) { $niceDebtTypeList[$debt['id']] = $debt['description']; } $fullNoteList = $chosenClient->loadClientNotes(); // -- Letters - Chase Letter and Non Claim Letter // ---------------------------------------------- $letterConfig = \Crm\Ppi\Ppi_class::loadLettersList((int) $ppiDetails->company_id); $letters = array(); $letters[] = array('id' => $letterConfig['client_free_text'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['client_free_text']), 'freeText' => true, 'tray' => 2); $letters[] = array('id' => $letterConfig['ppi_welcome_letter'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['ppi_welcome_letter']), 'freeText' => false, 'tray' => 2); $letters[] = array('id' => $letterConfig['ppi_form_of_authority'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['ppi_form_of_authority']), 'freeText' => false, 'tray' => 1); $letters[] = array('id' => $letterConfig['recommand_a_friend'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['recommand_a_friend']), 'freeText' => false, 'tray' => 1); $letters[] = array('id' => $letterConfig['terms_and_conditions_GAB'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['terms_and_conditions_GAB']), 'freeText' => false, 'tray' => 1); $letters[] = array('id' => $letterConfig['terms_and_conditions_CUSTOMER'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['terms_and_conditions_CUSTOMER']), 'freeText' => false, 'tray' => 1); $letters[] = array('id' => $letterConfig['missing_loa'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['missing_loa']), 'freeText' => false, 'tray' => 2); $letters[] = array('id' => $letterConfig['missing_tac'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['missing_tac']), 'freeText' => false, 'tray' => 2); $letters[] = array('id' => $letterConfig['ipad_questionnaire'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['ipad_questionnaire']), 'freeText' => false, 'tray' => 1); $letters[] = array('id' => $letterConfig['client_pack_not_returned_1'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['client_pack_not_returned_1']), 'freeText' => false, 'tray' => 2); $letters[] = array('id' => $letterConfig['client_pack_not_returned_2'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['client_pack_not_returned_2']), 'freeText' => false, 'tray' => 2); $letters[] = array('id' => $letterConfig['client_missing_creditor_details'], 'details' => \Crm\Letter\Letter::letterDetails($letterConfig['client_missing_creditor_details']), 'freeText' => false, 'tray' => 2); $this->template->content = View::forge(static::$_viewPath . '/view_client.php', array('productDetails' => array('ppi' => array('companyName' => $ppiDetails->company_name, 'referralID' => $ppiDetails->referral_id, 'account_created' => date("d/m/Y", strtotime($ppiDetails->account_created)), 'pack_sent_date' => $ppiDetails->pack_sent_date == "0000-00-00" ? "Not Sent" : date("d/m/Y", strtotime($ppiDetails->pack_sent_date)), 'pack_returned_date' => $ppiDetails->pack_returned_date == "0000-00-00" ? "Not Received" : date("d/m/Y", strtotime($ppiDetails->pack_returned_date)), 'hasReturnedPack' => $ppiDetails->hasResentPack())), 'isActive' => $clientProduct->status('active'), 'creditorList' => $creditorList, 'claims' => $claims, 'allCreditors' => $niceCreditorList, 'allDebtTypes' => $niceDebtTypeList, 'debtList' => $debtTypeList, 'disposisionList' => $disposisionList, 'ppiStages' => $ppiStages, 'packDocuments' => $packDocuments, 'packCompleted' => $ppiDetails->pack_completed, 'canCreateClaims' => $ppiDetails->canCreateClaims(), 'agentDetails' => $ppiDetails->getReferralAgent(), 'clientDetails' => array('clientID' => $clientID, 'title' => $chosenClient->title, 'forename' => $chosenClient->forename, 'surname' => $chosenClient->surname, 'streetAndNumber' => $chosenClient->streetAndNumber, 'area' => $chosenClient->area, 'district' => $chosenClient->district, 'town' => $chosenClient->town, 'county' => $chosenClient->county, 'postCode' => $chosenClient->postCode, 'dateOfBirth' => $chosenClient->dateOfBirth == "0000-00-00" ? "Not Taken" : date("d/m/Y", strtotime($chosenClient->dateOfBirth)), 'telHome' => $chosenClient->telHome == 0 ? "Not Taken" : "0" . $chosenClient->telHome, 'telMobile' => $chosenClient->telMobile == 0 ? "Not Taken" : "0" . $chosenClient->telMobile, 'telWork' => $chosenClient->telWork == 0 ? "Not Taken" : "0" . $chosenClient->telWork, 'email' => $chosenClient->email, 'notes' => $chosenClient->notes, 'creditors' => $referralDetails->loadData(), 'allNotes' => $fullNoteList, 'correspondences' => $correspondenceList, 'hasPartner' => $chosenClient->hasPartner()), 'partnerDetails' => $partnerDetails, 'letters' => $letters)); }