Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace CompleteSolar\HelioTrack\Views;
- use CompleteSolar\HelioTrack\Controllers\JobStateController;
- use CompleteSolar\HelioTrack\Models\HtDB;
- use CompleteSolar\HelioTrack\Models\State;
- use CompleteSolar\HelioTrack\Utilities\Substates;
- use CompleteSolar\HelioTrack\Utilities\Actions;
- use CompleteSolar\MVC\Html\Script;
- use CompleteSolar\MVC\Html\Style;
- use CompleteSolar\HelioTrack\Commission\Controllers\JobCommissionController;
- use CompleteSolar\HelioTrack\Utilities\JobCommissionTypes;
- use CompleteSolar\HelioTrack\Models\Job;
- use CompleteSolar\HelioTrack\Utilities\JobFields;
- use CompleteSolar\HelioTrack\Utilities\JobInfoFields;
- use CompleteSolar\HelioTrack\Utilities\JobInstallationStatus;
- //includes that only pertain to the updateCommissionAnd Discounts method
- use CompleteSolar\HelioTrack\Utilities\JobInfo;
- class JobStateView extends BaseView{
- protected $state;
- protected $subState;
- protected $siteTechSubmitJob= false;
- protected $action;
- public $job;
- public function __construct($controller, $job){
- parent::__construct($controller);
- date_default_timezone_set('America/Los_Angeles');
- $this->job = $job;
- }
- public function getJobFields(){
- return $this->controller->getJobFields();
- }
- public function init(){
- }
- public function setScripts($imports=array()) {
- $imports[] = $this->createScript("js/plugins/datetimepicker-master/jquery.datetimepicker.js");
- $imports[] = $this->createScript("js/jquery.numeric.js");
- MustacheTemplateViews::assignJobToInstallerModalTemplate();
- MustacheTemplateViews::jobCommentTemplate();
- $imports[] = $this->createScript($this->getFrontEndFile("js/jobs.js"));
- parent::setScripts($imports);
- }
- static public function createView($controller, $job){
- $jobStateName = null;
- $jobSubStateName = null;
- if($controller != null){
- $jobInfo = $controller->getJobInfo();
- if($jobInfo != null){
- $jobStateName = $jobInfo->jobStateName;
- $jobSubStateName = $jobInfo->jobSubStateName;
- }
- }
- if($jobStateName == State::OPEN){
- if($jobSubStateName == Substates::ITEMS_MISSING){
- return new JobItemsMissingStateView($controller, $job);
- }
- return new JobOpenStateView($controller, $job);
- }else if($jobStateName == State::WAITING){
- return new JobWaitingStateView($controller, $job);
- }else if($jobStateName == State::PENDING){
- return new JobPendingStateView($controller, $job);
- }else if($jobStateName == State::SITE_TECH_REQUIRED){
- return new JobSiteTechRequiredStateView($controller, $job);
- }else if($jobStateName == State::APPROVED){
- if($jobSubStateName == Substates::JOB_IN_JEOPARDY){
- return new JobInJeopardySubstateView($controller, $job);
- }else if($jobSubStateName == Substates::PIP_PENDING){
- return new JobPipPendingSubstateView($controller, $job);
- }else if($jobSubStateName == Substates::PIP_APPROVED){
- return new JobPipApprovedSubstateView($controller, $job);
- }else if($jobSubStateName == Substates::PIP_ITEMS_MISSING){
- return new JobPipItemsMissingSubstateView($controller, $job);
- }
- return new JobApprovedStateView($controller, $job);
- }else if($jobStateName == State::INSTALL_COMPLETE){
- return new JobFWTStateView($controller, $job);
- }else {
- return new JobStateView($controller, $job);
- }
- }
- public function getSiteTechSubmitJob(){
- return $this->siteTechSubmitJob;
- }
- public function setAction($action){
- $this->action = $action;
- }
- public function process($submitType, $data){
- if ($submitType == Actions::SAVE){
- $this->processSave($data);
- }else if ($submitType == Actions::SUBMIT){
- $this->processSubmit($data);
- }else if ($submitType == Actions::REQUEST_SITE_TECH ){
- $this->processRequestSiteTech($data);
- }else if($submitType == Actions::OPEN_JOB_SUBMISSION){
- $this->processOpenJobSubmission($data);
- }else if($submitType == Actions::APPROVE){
- $this->processApprove($data);
- }else if($submitType == Actions::JOB_IN_JEOPARDY){
- $this->processJobInJeopardy($data);
- }else if($submitType == Actions::ITEMS_MISSING){
- $this->processItemsMissing($data);
- }else if($submitType == Actions::REOPEN){
- if(isset($data["fwt_date"])){
- //we need to clear FWT date when reopening a job
- $data["fwt_date"] = null;
- }
- $this->processReopen($data);
- }else if($submitType == Actions::INSTALL_COMPLETE){
- $this->processFWT($data);
- }else if($submitType == Actions::PIP_SUBMIT){
- $this->processPipSubmit($data);
- }else if($submitType == Actions::PIP_APPROVE){
- $this->processPipApprove($data);
- }else if($submitType == Actions::PIP_ITEMS_MISSING){
- $this->processPipItemsMissing($data);
- }
- }
- public function processSave($data){
- if($this->okToExecuteSave()){
- $this->controller->updateJob($data);
- $this->controller->processSave();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processSubmit($data=[]){
- if($this->okToExecuteSubmit()){
- $this->controller->updateJob($data);
- $this->controller->processSubmit();
- }else{
- $jobInfo = $this->controller->getJobInfo();
- header("Location: job.php?action=dispmsg&msg=invalidAction&&jobID=$jobInfo->jobId");
- exit(0);
- }
- }
- public function processRequestSiteTech($data){
- if($this->okToExecuteRequestSiteTech()){
- $this->controller->updateJob($data);
- $this->controller->processRequestSiteTech();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processOpenJobSubmission($data){
- if($this->okToExecuteOpenJobSubmission()){
- $this->controller->updateJob($data);
- $this->controller->processOpenJobSubmission();
- }else{
- $result = array();
- $result['status']= "FAIL";
- $result['error']= "invalid action";
- echo json_encode($result);
- exit(0);
- }
- }
- public function processApprove($data){
- if($this->okToExecuteApprove()){
- $this->controller->updateJob($data);
- $this->controller->processApprove();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processJobInJeopardy($data){
- if($this->okToExecuteJobInJeopardy()){
- $this->controller->updateJob($data);
- $this->controller->processJobInJeopardy();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processItemsMissing($data){
- if($this->okToExecuteItemsMissing()){
- $this->controller->updateJob($data);
- $this->controller->processItemsMissing();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processReopen($data){
- if($this->okToExecuteReopen()){
- $this->controller->updateJob($data);
- $this->controller->processReopen();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processFWT($data){
- if($this->okToExecuteFWT()){
- $this->controller->updateJob($data);
- $this->controller->processFWT();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processPipSubmit($data){
- if($this->okToExecutePipSubmit()){
- $this->controller->updateJob($data);
- $this->controller->processPipSubmit();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processPipApprove($data){
- if($this->okToExecutePipApprove()){
- $this->controller->updateJob($data);
- $this->controller->processPipApprove();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function processPipItemsMissing($data){
- if($this->okToExecutePipItemsMissing()){
- $this->controller->updateJob($data);
- $this->controller->processPipItemsMissing();
- }else{
- header("Location: job.php?action=dispmsg&msg=invalidAction");
- exit(0);
- }
- }
- public function addDiscountToJob($desc, $amount){
- $this->controller->addDiscountToJob($desc, $amount);
- }
- public function updateJobFields($data){
- $this->controller->updateJobFields($data);
- }
- //##########################
- //## HTML ##
- //##########################
- public function displayJob(){
- if(!$this->controller->canUserViewJob()){
- echo "User not authorized to view this job";
- exit(0);
- }
- $this->setHead();
- //header-specific
- $this->startBody("job-page");
- $this->displayHeader();
- $this->startContainer();
- //echo "<br /><br /><br /> <pre>"; print_r($this->job); echo "</pre>";
- //page-specific
- $this->displayPageHeading();
- $this->startForm();
- $this->printHiddenItems();
- $this->printJobInfoSection();
- if($this->canViewCommissionSection()){
- $this->printCommissionSection();
- }
- $this->printSections($this->job->fields);
- $this->printHistorySection();
- echo "<div class=\" container end-buttons\"><div class=\"row\">"; $this->printButtons(false); echo "</div></div>";
- $this->endForm();
- $this->displayOtherModule();
- $this->displayOtherInverter();
- $this->endContainer();
- $this->displayFooter();
- $this->setScripts();
- $this->endBody();
- }
- //##########################
- // Section HTML Functions ##
- //##########################
- public function printHiddenItems() {
- $this->printHiddenItem("jobID", $this->job->id);
- $this->printHiddenItem("jobTypeID", $this->job->jobTypeId->id);
- $this->printHiddenItem("jobStateID", $this->job->jobStateId->id);
- $this->printHiddenItem("opfError", null);
- $this->printHiddenItem("job_system_size", $this->job->systemSize);
- $this->printHiddenItem("job_solar_expert", $this->job->solarExpertId->id);
- $this->printHiddenItem("submitType", "");
- }
- public function displayMsg($msg) {
- $this->setHead();
- $this->startBody("job-page");
- $this->displayHeader();
- $this->startContainer();
- ?>
- <div class="container msg-error-div">
- <span>Alert</span>
- </div>
- <div class="container msg-text-div">
- <span><?= $msg ?></span>
- </div>
- <?php
- $this->endContainer();
- $this->displayFooter();
- $this->endBody();
- }
- public function displayPageHeading() {
- ?>
- <div class="container header-container">
- <div class="row header-title-row">
- <span class="status-title-text">Job Status:
- <?php
- if($this->controller->jobLocked()){
- echo "[Locked]";
- }else if($this->controller->jobINFWT()){
- echo "[FWT]";
- }
- ?>
- </span>
- </div>
- <div class="row header-status-row">
- <span><?= $this->printState() ?></span>
- </div>
- <div class="pending-state-history" style="text-align: center">
- <?php $this->printStateHistory() ?>
- </div>
- </div>
- <?php
- }
- public function startForm() {
- ?>
- <form id="htform" method="POST" action="<?php echo $this->controller->getHTDomain();?>job.php?action=submit" enctype="multipart/form-data">
- <?php
- }
- public function endForm() {
- ?>
- </form>
- <?php
- }
- public function printSections($fields) {
- foreach($fields as $field) {
- $this->printSection($field, 0);
- }
- }
- public function setApproved($field) {
- $status;
- $approved;
- if ($field->needsApproval) {
- if (isset($field->jobData->approved) && $field->jobData->approved == 1) {
- $status = "complete";
- $approved = 2;
- } else {
- $approved = 1;
- if (isset($field->documents) && (count($field->documents) > 0)) {
- $status="info";
- } else {
- $status = "doc";
- }
- }
- } else {
- $approved = 0;
- if ($field->controlType->id == 3) {
- if (isset($field->documents) && (count($field->documents) > 0)) {
- $status = "info";
- } else {
- $status = "doc";
- }
- } else {
- $status = "info";
- }
- }
- return array("status" => $status, "approved" => $approved);
- }
- public function canComment($field) {
- $messageBox;
- if ($field->canComment || $field->id == 153) {
- if (isset($field->jobData->comments) && count($field->jobData->comments) > 0) {
- $messageBox = 2;
- } else {
- $messageBox = 1;
- }
- } else {
- $messageBox = 0;
- }
- return $messageBox;
- }
- public function canUseCheckbox() {
- return $this->canUpdateFieldStatus() ? "enabled" : "disabled";
- }
- public function isInFwt() {
- return ($this->job->jobStateId->id == 5) ? false : true;
- }
- public function printSection($field, $level=0) {
- $jobFields = $this->getJobFields();
- if(!$jobFields->canViewField($field->id)){
- return;
- }
- $id = $field->id;
- $parentId = (isset($field->parentId)) ? $field->parentId : null;
- $title = $field->name;
- $fieldType = strtolower($field->controlType->name);
- if ($field->controlType->id == 8 || $field->controlType->id == 10) { return true; }
- $topLevel = ($level == 0);
- $endpointInputTypes = array(1,2,4,5,7,"1","2","4","5","7");
- $jobComments = (isset($field->jobData->comments)) ? $field->jobData->comments : null;
- $messageBox = $this->canComment($field);
- $approval = $this->setApproved($field);
- $approved = $approval["approved"];
- $status = $approval["status"];
- if (count($field->fields) > 0 && count($field->documents) == 0) {
- $childCount = 0;
- $docCount = 0;
- foreach ($field->fields as $child) {
- $childStatus = $this->setApproved($child);
- if ($child->controlType->id == 3) {
- $childCount++;
- if ($childStatus["status"] == "doc") {
- $docCount++;
- }
- }
- }
- if ($childCount == $docCount) {
- $status = "doc";
- }
- }
- ?>
- <div class="auto-save">
- <?php
- if ($topLevel) {
- $this->openSection($id, $level, $fieldType, $status, $approved, $messageBox, $field->id == 20);
- $this->insertHeading($id, $level, $title, $status, $approved, $messageBox, $field->id == 20, $field->canDownloadAll);
- if ($messageBox > 0) {
- $this->printCommentSection($id, "top", $jobComments, $status);
- }
- $this->openSectionBody($title, $field->id == 20);
- } else {
- if (in_array($field->controlType->id, $endpointInputTypes)) {
- $this->printItem($field, $approved);
- } else {
- $this->openSubsection($id, $level, $status, $parentId);
- $this->printSubsectionHeading($id, $level, $title, $status, $approved, $messageBox, false, $field);
- if ($messageBox > 0) {
- $show = ($field->name == "General Comments");
- $this->printCommentSection($id, "sub", $jobComments, $status, $show);
- }
- $this->openSubsectionItemList($id, $level, $status, $title, $messageBox, $jobComments);
- }
- }
- if ($fieldType == "file") {
- $this->printDocumentSubsection($id, $field->documents);
- }
- foreach ($field->fields as $subField) {
- $this->printSection($subField, $level + 1);
- }
- if (!$topLevel) {
- if (in_array($field->controlType->id, $endpointInputTypes)) {
- } else {
- $this->closeSubsectionItemList();
- $this->closeSubsection();
- }
- } else {
- if($field->name == "Job In Jeopardy"){
- $this->printJobInJeopardyContainer();
- }
- $this->closeSectionBody();
- $this->closeSection();
- }
- ?>
- </div>
- <?php
- }
- public function printJobInfoSection() {
- $this->openSection("jobinfo-section", 0, "section", "info", 0, null, true);
- $this->insertHeading("jobinfo-section", 0, "Job Information", "info", 0, null, true);
- $this->openSectionBody("jobinfo", true);
- $this->printJobInfoSectionCells();
- $this->closeSectionBody();
- $this->closeSection();
- }
- public function printCommissionSection() {
- $commissionField = $this->job->getFieldById(154);
- $messageBox = 0;
- if ($commissionField->canComment) {
- $messageBox = (isset($commissionField->jobData->comments) &&
- count($commissionField->jobData->comments) > 0) ? 2 : 1;
- }
- $commissionController = new JobCommissionController($this->controller->getLoggedInUser(), $this->job->id);
- $this->openSection($commissionField->id, 0, "section", "info", $messageBox, true, true);
- $this->insertHeading(154, 0, "Commission & Discounts", "info", 0, $messageBox, true);
- $commentArray = (isset($commissionField->jobData->comments)) ? $commissionField->jobData->comments : array();
- $this->printCommentSection(154, "top", $commentArray, "info", false);
- $this->openSectionBody("commission", true);
- if($this->canViewSolarExpertCommissionSection()){
- $this->openSection("solarExpert", 1, "section", "info", 0, 1);
- $this->printSubsectionHeading("solarExpert", 1, "Solar Experts", "info", 0, null);
- $this->openSubsectionItemList(null, 1, "info", "commission", 0);
- $this->printCommissionSectionTopInfo($commissionController);
- foreach ($this->job->commission->solarExpertCommissionList as $com) {
- $this->printCommissionTable($com);
- }
- if($this->canViewDiscounts()){
- $this->openSection("jobDiscounts", 1, "section", "info", 0, 1);
- $this->printSubsectionHeading("jobDiscounts", 1, "Discounts, Rebates & Commission Adjustments", "info", 0, null);
- $this->openSubsectionItemList(null, 1, "info", "commission", 0);
- $commissionAdjustments = $commissionController->getJobDiscounts($this->job->id);
- $this->printCommissionAdjustments($commissionAdjustments);
- $this->closeSubsectionItemList();
- $this->closeSection();
- }
- $this->closeSubsectionItemList();
- $this->closeSection();
- }
- if($this->canViewInstallerCommissionSection($this->job->id)){
- $this->openSection("installer", 1, "section", "info", 0, 1);
- $this->printSubsectionHeading("Installer", 1, "Installers", "info", 0, null);
- $this->openSubsectionItemList(null, 1, "info", "commission", 0);
- foreach($this->job->commission->installerCommissionList as $com){
- $this->printInstallerCommissionTable($com);
- }
- if($this->canViewInstallerDiscounts($this->job->id)){
- $this->openSection("installerDiscounts", 1, "section", "info", 0, 1);
- $this->printSubsectionHeading("installerDiscounts", 1, "Installer Discounts", "info", 0, null);
- $this->openSubsectionItemList(null, 1, "info", "commission", 0);
- $commissionAdjustments = $commissionController->getInstallerJobDiscounts($this->job->id);
- $this->printInstallerCommissionAdjustments($commissionAdjustments);
- $this->closeSubsectionItemList();
- $this->closeSection();
- }
- $this->closeSubsectionItemList();
- $this->closeSection();
- }
- $this->closeSectionBody();
- $this->closeSection();
- }
- public function printHistorySection() {
- $this->openSection("history-section", 0, "section", "info", 0, false);
- $this->insertHeading("history-section", 0, "State Change History", "info", 0, 0);
- $this->openSectionBody("history");
- $this->printHistorySectionBody();
- $this->printHistorySectionBodyMobile();
- $this->closeSectionBody();
- $this->closeSection();
- }
- public function printJobInfoSectionBody($section) {
- $sectionClass = strtolower(str_replace(" ", "_", $section));;
- $this->printJobInfoSectionCells();
- }
- public function printJobInfoSectionCells() {
- $restrictions = $this->controller->getJobInfoRestrictions($this->job->jobTypeId->id);
- $cellInfo;
- $cellInfo1;
- $restriction;
- $this->openJobInfoColumn();
- $this->printJobInfoHeader('Customer');
- $restrictionFirst = isset($restrictions["first_name"])? $restrictions["first_name"]: null;
- $restrictionLast = isset($restrictions["last_name"])? $restrictions["last_name"]: null;
- $this->printJobInfoNameFields([
- ['title' => 'First Name', 'name' => 'customer_first_name', 'value' => $this->job->firstname, 'restriction' => $restrictionFirst, 'editable' => $this->canEditJobField(JobInfoFields::FIRST_NAME, $restrictionFirst)],
- ['title' => 'Last Name', 'name' => 'customer_last_name', 'value' => $this->job->lastname, 'restriction' => $restrictionLast, 'editable' => $this->canEditJobField(JobInfoFields::LAST_NAME, $restrictionLast)]
- ]);
- $cellData = array("id" => "", "val" => $this->job->street);
- $restriction = isset($restrictions["street"])? $restrictions["street"]: null;
- $this->printJobInfoSectionCellData(1, "Street", "customer_street_address", $cellData, null, $restriction, $this->canEditJobField("street", $restriction));
- $restrictionCity = isset($restrictions["city"])? $restrictions["city"]: null;
- $restrictionState = isset($restrictions["state"])? $restrictions["state"]: null;
- $restrictionZip = isset($restrictions["zip"])? $restrictions["zip"]: null;
- $this->printJobInfoAddressFields([
- ['title' => 'City', 'name' => 'customer_city', 'value' => $this->job->city, 'restriction' => $restrictionCity, 'editable' => $this->canEditJobField("city", $restrictionCity)],
- ['title' => 'State', 'name' => 'customer_state', 'value' => $this->job->state, 'restriction' => $restrictionState, 'editable' => $this->canEditJobField("state", $restrictionState)],
- ['title' => 'Zip', 'name' => 'customer_zip', 'value' => $this->job->zip, 'restriction' => $restrictionZip, 'editable' => $this->canEditJobField("zip", $restrictionZip)]
- ]);
- $cellInfo = (isset($this->job->email)) ? $this->job->email : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["customer_email"])? $restrictions["customer_email"]: null;
- $this->printJobInfoSectionCellData(1, "Email", "customer_email", $cellData, "email", $restriction, $this->canEditJobField("customer_email", $restriction));
- $restriction = isset($restrictions["customer_phone"])? $restrictions["customer_phone"]: null;
- $this->printJobInfoFieldWithCheckbox([
- ['title' => 'Phone', 'name' => 'customer_phone', 'value' => $this->job->phone, 'restriction' => $restriction, 'editable' => $this->canEditJobField("customer_phone", $restriction)],
- ['title' => 'Text OK', 'name' => 'text_ok', 'value' => $this->job->textOk, 'restriction' => $restriction, 'editable' => $this->canEditJobField("customer_phone", $restriction), 'type' => 'checkbox']
- ]);
- /*secondary*/
- $restrictionFirst = isset($restrictions["secondary_first_name"])? $restrictions["secondary_first_name"]: null;
- $restrictionLast = isset($restrictions["secondary_last_name"])? $restrictions["secondary_last_name"]: null;
- $this->printJobInfoNameFields([
- ['title' => 'Secondary First Name', 'name' => 'secondary_first_name', 'value' => $this->job->secondaryFirstname, 'restriction' => $restrictionFirst, 'editable' => $this->canEditJobField(JobInfoFields::FIRST_NAME, $restrictionFirst)],
- ['title' => 'Secondary Last Name', 'name' => 'secondary_last_name', 'value' => $this->job->secondaryLastname, 'restriction' => $restrictionLast, 'editable' => $this->canEditJobField(JobInfoFields::LAST_NAME, $restrictionLast)]
- ]);
- $cellInfo = (isset($this->job->secondaryEmail)) ? $this->job->secondaryEmail : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["customer_email"])? $restrictions["customer_email"]: null;
- $this->printJobInfoSectionCellData(1, "Secondary Email", "secondary_email", $cellData, "email", $restriction, $this->canEditJobField("customer_email", $restriction));
- $restriction = isset($restrictions["customer_phone"])? $restrictions["customer_phone"]: null;
- $this->printJobInfoFieldWithCheckbox([
- ['title' => 'Secondary Phone', 'name' => 'secondary_phone', 'value' => $this->job->secondaryPhone, 'restriction' => $restriction, 'editable' => $this->canEditJobField("customer_phone", $restriction)],
- ['title' => 'Text OK', 'name' => 'secondary_text_ok', 'value' => $this->job->secondaryTextOk, 'restriction' => $restriction, 'editable' => $this->canEditJobField("customer_phone", $restriction), 'type' => 'checkbox']
- ]);
- /*****/
- $cellData = array("id" => "", "val" => $this->job->advocateName);
- $restriction = isset($restrictions["advocate_name"])? $restrictions["advocate_name"]: null;
- $this->printJobInfoSectionCellData(1, "Advocate's Name", "advocate_name", $cellData, null, $restriction, $this->canEditJobField("advocate_name", $restriction));
- $cellInfo = (isset($this->job->dealerId->id)) ? $this->job->dealerId->id : "";
- $restriction = isset($restrictions["dealer_id"])? $restrictions["dealer_id"]: null;
- $this->printJobInfoDropdownField(1, "Partner", "dealer_id", $cellInfo, $this->controller->getDealers(), $restriction, $this->canEditJobField("dealer_id", $restriction));
- $cellInfo = (isset($this->job->languageId->id)) ? $this->job->languageId->id : null;
- $restriction = isset($restrictions["language_id"]) ? $restrictions["language_id"] : null;
- $this->printJobInfoDropdownField(1, "Language", "language_id", $cellInfo, $this->controller->getLanguages(), $restriction, $this->canEditJobField("language_id", $restriction));
- $restrictionLead = isset($restrictions["sugar_lead_id"])? $restrictions["sugar_lead_id"]: null;
- $restrictionCustomer = isset($restrictions["sugar_customer_id"])? $restrictions["sugar_customer_id"]: null;
- $this->printJobInfoSugarFields([
- ['title' => 'Sugar Lead', 'name' => 'sugar_lead_id', 'value' => $this->job->sugarLeadId, 'restriction' => $restrictionLead, 'editable' => $this->canEditJobField('sugar_lead_id', $restrictionLead), 'module' => 'Leads'],
- ['title' => 'Sugar Customer', 'name' => 'sugar_customer_id', 'value' => $this->job->sugarCustomerId, 'restriction' => $restrictionCustomer, 'editable' => $this->canEditJobField('sugar_customer_id', $restrictionCustomer), 'module' => 'Opportunities']
- ]);
- $this->endContainer();
- $this->openJobInfoColumn();
- $this->printJobInfoHeader('Complete Solar');
- $cellInfo = (isset($this->job->solarExpertId->id)) ? $this->job->solarExpertId->id : "";
- $cellInfo1 = (isset($this->job->solarExpertId->firstName)) ? $this->job->solarExpertId->firstName . " " . $this->job->solarExpertId->lastName : "";
- $cellData = array("id" => $cellInfo, "val" => $cellInfo1);
- $restriction = isset($restrictions["solar_expert"])? $restrictions["solar_expert"]: null;
- $this->printJobInfoSectionCellData(2, "Solar Expert", "solar_expert", $cellData, null, $restriction, $this->canEditJobField("solar_expert", $restriction));
- $cellInfo = (isset($this->job->secSolarExpertId->id)) ? $this->job->secSolarExpertId->id : "";
- $cellInfo1 = (isset($this->job->secSolarExpertId->firstName)) ? $this->job->secSolarExpertId->firstName . " " . $this->job->secSolarExpertId->lastName : "";
- $cellData = array("id" => $cellInfo, "val" => $cellInfo1);
- $restriction = isset($restrictions["sec_solar_expert"])? $restrictions["sec_solar_expert"]: null;
- $this->printJobInfoSectionCellData(2, "2nd Solar Expert", "sec_solar_expert", $cellData, null, $restriction, $this->canEditJobField("sec_solar_expert", $restriction));
- $cellInfo = (isset($this->job->siteTechnician->id)) ? $this->job->siteTechnician->id : "";
- $cellInfo1 = (isset($this->job->siteTechnician->firstName)) ? $this->job->siteTechnician->firstName . " " . $this->job->siteTechnician->lastName : "";
- $cellData = array("id" => $cellInfo, "val" => $cellInfo1);
- $restriction = isset($restrictions["site_technician"])? $restrictions["site_technician"]: null;
- $this->printJobInfoSectionCellData(2, "Site Technician", "site_technician", $cellData, null, $restriction, $this->canEditJobField("site_technician", $restriction));
- $cellInfo = (isset($this->job->siteSurveyScheduled)) ? $this->job->siteSurveyScheduled : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["site_technician"])? $restrictions["site_technician"]: null;
- $this->printJobInfoSectionCellData(2, "Site Visit Date", "site_survey_scheduled", $cellData, null, $restriction, $this->canEditJobField("site_survey_scheduled", $restriction));
- $cellInfo = (isset($this->job->accountManagerId->id)) ? $this->job->accountManagerId->id : null;
- $restriction = isset($restrictions["account_manager_id"]) ? $restrictions["account_manager_id"] : null;
- $this->printJobInfoDropdownField(2, "Account Manager", "account_manager_id", $cellInfo, $this->controller->getActiveAccountManagers(), $restriction, $this->canEditJobField("account_manager_id", $restriction));
- $id = (isset($this->job->installerId->id)) ? $this->job->installerId->id : "";
- $value = (isset($this->job->installerId->firstName)) ? $this->job->installerId->firstName . " " . $this->job->installerId->lastName : "";
- $cellData = array("id" => $id, "val" => $value, "additionalClasses" => 'js-init-assign-job');
- $restriction = isset($restrictions["installer_id"]) ? $restrictions["installer_id"] : null;
- /*
- NOTE: If you change the structure of how the Section Cell Data is generating
- you must change the AssignInstallerToJob.js file as well. It is dependent
- on keeping the ids such that they are fID-installer_id and fID-installer
- */
- $this->printJobInfoSectionCellData(2, "Installer", "installer", $cellData, 'installer_field', $restriction, $this->canEditJobField("installer_id", $restriction));
- $cellInfo = (isset($this->job->contractDate)) ? $this->job->contractDate : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["contract_date"])? $restrictions["contract_date"]: null;
- $this->printJobInfoSectionCellData(2, "Contract Date", "contract_date", $cellData, null, $restriction, $this->canEditJobField("contract_date", $restriction));
- $cellInfo = (isset($this->job->contractAmount)) ? number_format($this->job->contractAmount, 2) : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["contract_amount"])? $restrictions["contract_amount"]: null;
- $this->printJobInfoSectionCellData(2, "Contract Amount", "contract_amount", $cellData, null, $restriction, $this->canEditJobField("contract_amount", $restriction));
- $cellInfo = (isset($this->job->projectedLifetimeSavings)) ? $this->job->projectedLifetimeSavings : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["projected_lifetime_savings"])? $restrictions["projected_lifetime_savings"]: null;
- $this->printJobInfoSectionCellData(2, "Projected Lifetime Savings", "projected_lifetime_savings", $cellData, null, $restriction, $this->canEditJobField("projected_lifetime_savings", $restriction));
- $cellInfo = (isset($this->job->welcomeCallDate)) ? $this->job->welcomeCallDate : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["welcome_call_date"])? $restrictions["welcome_call_date"]: null;
- $this->printJobInfoSectionCellData(2, "Welcome Call Date", "welcome_call_date", $cellData, null, $restriction, $this->canEditJobField("welcome_call_date", $restriction));
- $cellInfo = (isset($this->job->fwtDate)) ? $this->job->fwtDate : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["fwt_date"])? $restrictions["fwt_date"]: null;
- $this->printJobInfoSectionCellData(2, "Install Complete Date", "fwt_date", $cellData, null, $restriction, $this->canEditJobField("fwt_date", $restriction));
- $this->endContainer();
- $this->openJobInfoColumn(true);
- $this->printJobInfoHeaderSystemTitle('System');
- $cellInfo = (isset($this->job->moduleNumber)) ? $this->job->moduleNumber : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["module_number"])? $restrictions["module_number"]: null;
- $this->printJobInfoSectionCellData(3, "No. of Modules", "module_number", $cellData, null, $restriction, $this->canEditJobField("module_number", $restriction));
- $cellInfo = (isset($this->job->productTypeId->id)) ? $this->job->productTypeId->id : null;
- $restriction = (isset($restrictions["productID"])) ? $restrictions["productID"] : null;
- $this->printJobInfoDropdownField(3, "Financial Product", "productID", $cellInfo, $this->controller->getProductTypes(), $restriction, $this->canEditJobField("productID", $restriction));
- $cellInfo = (isset($this->job->moduleId->id)) ? $this->job->moduleId->id : null;
- $restriction = (isset($restrictions["moduleId"])) ? $restrictions["moduleID"] : null;
- $this->printModuleDropdownField(3, "Module", "moduleId", $cellInfo, $this->controller->getModules(), $restriction, $this->canEditJobField("moduleId", $restriction));
- $cellInfo = (isset($this->job->inverterId->id)) ? $this->job->inverterId->id : null;
- $restriction = (isset($restrictions["inverterId"])) ? $restrictions["inverterID"] : null;
- $this->printInverterDropdownField(3, "Inverter", "inverterId", $cellInfo, $this->controller->getInverters(), $restriction, $this->canEditJobField("inverterId", $restriction));
- $cellInfo = (isset($this->job->monitorTypeId->id)) ? $this->job->monitorTypeId->id : null;
- $restriction = (isset($restrictions["monitor_type_id"])) ? $restrictions["monitor_type_id"] : null;
- $this->printJobInfoDropdownField(3, "Monitor Type", "monitor_type_id", $cellInfo, $this->controller->getMonitorTypes(), $restriction, $this->canEditJobField("monitor_type_id", $restriction));
- $cellInfo = (isset($this->job->monitorId)) ? $this->job->monitorId : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["monitor_id"])? $restrictions["monitor_id"]: null;
- $this->printJobInfoSectionCellData(3, "Monitor ID", "monitor_id", $cellData, null, $restriction, $this->canEditJobField("monitor_id"));
- $cellInfo = (isset($this->job->equipmentCost)) ? number_format($this->job->equipmentCost, 2) : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["equipment_cost"])? $restrictions["equipment_cost"]: null;
- $this->printJobInfoSectionCellData(3, "Equipment Cost", "equipment_cost", $cellData, null, $restriction, $this->canEditJobField("equipment_cost", $restriction));
- $cellInfo = (isset($this->job->systemSize)) ? number_format($this->job->systemSize, 3) : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["system_size"])? $restrictions["system_size"]: null;
- $this->printJobInfoSectionCellData(3, "System Size", "system_size", $cellData, "null", $restriction, $this->canEditJobField("system_size", $restriction));
- $cellInfo = (isset($this->job->annualProduction)) ? number_format($this->job->annualProduction, 2) : "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["annual_production"])? $restrictions["annual_production"]: null;
- $this->printJobInfoSectionCellData(3, "Annual Prod", "annual_production", $cellData, null, $restriction, $this->canEditJobField("annual_production", $restriction));
- $cellInfo = (isset($this->job->utility->id)) ? $this->job->utility->id : "";
- $restriction = isset($restrictions["utility"]) ? $restrictions["utility"] : null;
- $this->printJobInfoDropdownField(3, "Utility", "utility", $cellInfo, $this->controller->getUtilities(), $restriction, $this->canEditJobField("utility", $restriction));
- $cellInfo = ($this->job->dollarsPerKwh != null) ? ($this->job->dollarsPerKwh * 100): "";
- $cellData = array("id" => "", "val" => $cellInfo);
- $restriction = isset($restrictions["dollars_per_kwh"])? $restrictions["dollars_per_kwh"]: null;
- $this->printJobInfoSectionCellData(3, "¢/kWh", "dollars_per_kwh", $cellData, null, $restriction, $this->canEditJobField("dollars_per_kwh", $restriction));
- $restriction = isset($restrictions["home_held_in_trust"]) ? $restrictions["home_held_in_trust"] : null;
- $checkBoxArray = array();
- $checkBoxArray[] = array(
- 'title' => "In HOA",
- 'name' => "in_hoa",
- 'value' => $this->job->inHoa,
- );
- $checkBoxArray[] = array(
- 'title' => "Home in Trust",
- 'name' => "home_held_in_trust",
- 'value' => $this->job->homeHeldInTrust,
- );
- $this->printJobInfoCheckboxField($checkBoxArray, $restriction, $this->canEditJobField("home_held_in_trust", $restriction));
- $this->endContainer();
- /*
- $this->printJobInfoSectionCellData(3, "Inverter Mfg", "inverter_manufacturer", $this->job->inverterManufacturer, "null", false);
- $this->printJobInfoSectionCellData("Bill Offset", "bill_offset", $this->job->billOffset);
- $this->printJobInfoSectionCellData("Module Size", "module_size", $this->job->moduleSize);
- $cellInfo = (isset($this->job->referredBy->username)) ? $this->job->referredBy->username : "";
- $this->printJobInfoSectionCellData("Referrer[STS])", "referrer", $cellInfo);
- $cellInfo = (isset($this->job->office->name)) ? $this->job->office->name : "";
- $this->printJobInfoSectionCellData("Office", "office_id", $cellInfo);
- $cellInfo = (isset($this->job->checkedInBy->username)) ? $this->job->checkedInBy->username : "";
- $this->printJobInfoSectionCellData("Checked In By", "checked_in_by", $cellInfo);
- */
- ?>
- </div>
- <div class="row">
- <?php if ($this->canEditJobSection()) { ?>
- <div class="col-xs-12 edit-info-div" data-edit="0">
- <div class="edit-info-btn sd-btn action col-xs-12 col-md-4 col-md-offset-4">Edit Fields</div>
- <div class="cancel-edit-info-btn sd-btn action col-xs-12 col-md-3 col-md-offset-3 action">Cancel</div>
- <div class="submit-edit-info-btn sd-btn action col-xs-12 col-md-3 action">Submit</div>
- </div>
- <?php if (empty($this->job->sugarCustomerId) ) { ?>
- <div class="col-xs-12 convert-lead-div">
- <div id="convertLeadInSugar" class="convert-lead-btn sd-btn action col-xs-12 col-md-4 col-md-offset-4" style="background-color: gray; border: 5px solid white">Convert Lead</div>
- </div>
- <?php } ?>
- <?php } ?>
- </div>
- <?php
- }
- public function printJobInfoCheckboxField($checkBoxArray, $restriction, $editable = true) {
- if ($restriction != null && $restriction["can_view"] == 0) { return false; };
- $editableClass = ($editable) ? "editable" : "noneditable";
- $column_layout = 12 / count($checkBoxArray);
- if($column_layout < 1) $column_layout = 1;
- ?>
- <div class="row">
- <?php
- for ($i = 0; $i < count($checkBoxArray); $i++) {
- if(!isset($checkBoxArray[$i]['value']) || $checkBoxArray[$i]['value'] == null ) {
- $value = "0";
- $checked = "";
- } else {
- $value = $checkBoxArray[$i]['value'];
- $checked = ($checkBoxArray[$i]['value'] > 0) ? "checked" : "";
- }
- ?>
- <div class="col-xs-<?= $column_layout ?> job-check-col">
- <div class="job-info-cell-title-div job-check-div">
- <span class="job-info-cell-title job-cell-check-title"><?= $checkBoxArray[$i]['title'] ?></span>
- <div class="checkbox-wrapper info">
- <div id="fID-<?= $checkBoxArray[$i]['name'] ?>" class="job-checkbox info <?= $checked ?> <?= $editableClass ?>" data-id="<?= $checkBoxArray[$i]['name'] ?>" data-val="<?= $value ?>" readonly></div>
- <input type="checkbox" class="checkbox-hidden <?= $editableClass ?>" name="fID-<?= $checkBoxArray[$i]['name'] ?>" data-id="<?= $checkBoxArray[$i]['name'] ?>" data-name="fID-<?= $checkBoxArray[$i]['name'] ?>" checked="checked" value="<?= $value ?>" style="display: none" readonly>
- </div>
- </div>
- </div>
- <?php } ?>
- </div>
- <?php
- }
- public function printJobInfoDropdownField($columnNumber, $title, $name, $attr, $dropdown, $restriction, $editable=true) {
- if ($restriction != null && $restriction["can_view"] == 0) { return false; };
- $editableClass = ($editable) ? "editable" : "noneditable";
- ?>
- <div class="row">
- <div class="col-xs-12 job-info-cell-title-div">
- <span class="job-info-cell-title"><?= $title ?></span>
- <select id="fID-<?= $name ?>" name="fID-<?= $name ?>" class="<?= $editableClass ?>" disabled>
- <?php if ($attr == null) { ?>
- <option value="" selected></option>
- <?php } else { ?>
- <option value=""></option>
- <?php } ?>
- <?php foreach ($dropdown as $item) {
- $selected = ($item["id"] == $attr) ? "selected" : "";
- ?>
- <option value="<?= $item["id"] ?>" <?= $selected ?>><?= $item["name"] ?></option>
- <?php } ?>
- </select>
- </div>
- </div>
- <?php
- }
- public function printModuleDropdownField($columnNumber, $title, $name, $attr, $dropdown, $restriction, $editable=true) {
- if ($restriction != null && $restriction["can_view"] == 0) { return false; };
- $editableClass = ($editable) ? "editable" : "noneditable";
- ?>
- <div class="row">
- <div class="col-xs-12 <?= $colWidth["title"] ?> job-info-cell-title-div">
- <span class="job-info-cell-title"><?= $title ?></span>
- <select id="fID-moduleId" name="fID-moduleId" data-original-value="<?= $attr ?>" class="<?= $editableClass ?>" disabled>
- <?php if ($attr == null) { ?>
- <option value="" selected></option>
- <?php } else { ?>
- <option value=""></option>
- <?php } ?>
- <?php foreach ($dropdown as $item) {
- $selected = ($item["id"] == $attr) ? "selected = \"selected\"" : "";
- ?>
- <option value="<?= $item["id"] ?>" <?= $selected ?>><?= $item["name"] ?></option>
- <?php } ?>
- <option value="other">Other</option>
- </select>
- </div>
- </div>
- <?php
- }
- public function printInverterDropdownField($columnNumber, $title, $name, $attr, $dropdown, $restriction, $editable=true) {
- if ($restriction != null && $restriction["can_view"] == 0) { return false; };
- $editableClass = ($editable) ? "editable" : "noneditable";
- ?>
- <div class="row">
- <div class="col-xs-12 <?= $colWidth["title"] ?> job-info-cell-title-div">
- <span class="job-info-cell-title"><?= $title ?></span>
- <select id="fID-inverterId" name="fID-inverterId" data-original-value="<?= $attr ?>" class="<?= $editableClass ?>" disabled>
- <?php if ($attr == null) { ?>
- <option value="" selected></option>
- <?php } else { ?>
- <option value=""></option>
- <?php } ?>
- <?php foreach ($dropdown as $item) {
- $selected = ($item["id"] == $attr) ? "selected = \"selected\"" : "";
- ?>
- <option value="<?= $item["id"] ?>" <?= $selected ?>><?= $item["name"] ?></option>
- <?php } ?>
- <option value="other">Other</option>
- </select>
- </div>
- </div>
- <?php
- }
- public function printJobInfoSectionCellData($columnNumber, $title, $name, $attrArray, $special="null", $restriction, $editable = true, $additionalClasses = null) {
- if ($restriction != null && $restriction["can_view"] == 0) { return false; };
- $specialTags = array("open"=>"", "close"=>"");
- $val = $attrArray["val"];
- if ($special == "email") {
- $specialTags = array("open"=>"<a href=\"mailto:$val\" target=\"_top\">", "close"=>"</a>");
- } else if (($special == "Leads" || $special == "Opportunities") && $val) {
- $sugarPath = $this->controller->getSugarBasePath();
- $specialTags = array("open"=>"<a href=\"".$sugarPath.(substr($sugarPath, -1) == "/" ? "" : "/")."#".$special."/".$val."\" target=\"_blank\">", "close"=>"</a>");
- } else if ($special == "installer_field") {
- $status = $this->controller->getInstallationStatusForInstallerOnJob($this->job->id, $this->job->installerId->id);
- switch ($status) {
- case JobInstallationStatus::APPROVED:
- $jobStatusClass = "installation-status approved";
- $jobStatusInitial = 'A';
- $jobStatusTooltip = 'Approved';
- break;
- case JobInstallationStatus::REJECTED:
- $jobStatusClass = "installation-status rejected";
- $jobStatusInitial = 'R';
- $jobStatusTooltip = 'Rejected';
- break;
- default:
- $jobStatusClass = "installation-status pending";
- $jobStatusInitial = 'P';
- $jobStatusTooltip = 'Pending';
- break;
- }
- $jobStatusDisplayClass = $val ? '' : 'hide' ;
- }
- $editableClass = ($editable) ? "editable" : "noneditable";
- ?>
- <div class="row">
- <div class="col-xs-12 job-info-cell-title-div <?= isset($jobStatusClass) ? $jobStatusClass : '' ?>">
- <?php if(isset($jobStatusClass)) { ?>
- <span class="icon <?= $jobStatusDisplayClass ?>" data-toggle="tooltip" data-placement="top" data-original-title="<?= $jobStatusTooltip ?>" ><?= $jobStatusInitial ?></span>
- <?php } ?>
- <?php if ($special != "null") { ?>
- <?= $specialTags["open"] ?>
- <span class="job-info-cell-title"><?= $title ?></span>
- <?= $specialTags["close"] ?>
- <?php } else { ?>
- <span class="job-info-cell-title"><?= $title ?></span>
- <?php } ?>
- <input type="hidden" class="<?= $editableClass ?>" id="fID-<?= $name ?>_id" name="fID-<?= $name ?>_id" value="<?= $attrArray["id"] ?>"></input>
- <input id="fID-<?= $name ?>" class="job-info-cell-input jobinfo-input <?= $editableClass ?> <?= $attrArray["additionalClasses"] ?>" type="text" name="fID-<?= $name ?>" value="<?= $attrArray["val"] ?>" readonly></input>
- </div>
- </div>
- <?php
- }
- public function printJobInfoNameFields($fields = []) {
- ?>
- <div class="row">
- <?php foreach ($fields as $field) {
- if ($field['restriction'] != null && $field['restriction']["can_view"] == 0) {
- echo '</div>';
- return false;
- };
- $editableClass = $field['editable'] ? "editable" : "noneditable";
- ?>
- <div class="col-xs-12 col-sm-6 job-info-cell-title-div">
- <span class="job-info-cell-title"><?= $field['title'] ?></span>
- <input type="hidden" class="<?= $editableClass ?>" id="fID-<?= $name ?>_id" name="fID-<?= $field['name'] ?>_id" value="<?= $field['value'] ?>"></input>
- <input id="fID-<?= $field['name'] ?>" class="job-info-cell-input jobinfo-input <?= $editableClass ?>"
- type="text" name="fID-<?= $field['name'] ?>" value="<?= $field['value'] ?>" readonly></input>
- </div>
- <?php } ?>
- </div>
- <?php
- }
- public function printJobInfoSugarFields($fields = []) {
- $sugarPath = $this->controller->getSugarBasePath();
- $sugarPath .= substr($sugarPath, -1) == "/" ? "" : "/";
- ?>
- <div class="row">
- <?php foreach ($fields as $field) {
- if ($field['restriction'] != null && $field['restriction']["can_view"] == 0) {
- echo '</div>';
- return false;
- }
- $editableClass = $field['editable'] ? "editable" : "noneditable";
- $id = $field['value'];
- $name = $field['name'];
- $title = $field['title'];
- $fullSugarPathNoId = $sugarPath."#".$field['module']."/";
- $linkClass = $id ? 'active' : '';
- $spanClass = $id ? '' : 'active';
- ?>
- <div class="col-xs-12 col-sm-6 job-info-cell-title-div js-sugar-field" data-url="<?= $fullSugarPathNoId ?>">
- <div class="spacer"></div>
- <a class="center-this js-sugar-link-toggle link-toggle <?= $linkClass ?>" href="<?= $fullSugarPathNoId.$id ?>" target="_blank">
- <span class="job-info-cell-title"><?= $title ?></span>
- </a>
- <span class="center-this job-info-cell-title js-sugar-link-toggle span-toggle <?= $spanClass ?>"><?= $title ?></span>
- <input type="hidden" class="<?= $editableClass ?>" id="fID-<?= $name ?>_id" name="fID-<?= $name ?>_id" value="<?= $id ?>"></input>
- <input id="fID-<?= $name ?>" class="job-info-cell-input jobinfo-input sugar-field-swap hide <?= $editableClass ?>"
- type="text" name="fID-<?= $name ?>" value="<?= $id ?>" readonly></input>
- </div>
- <?php } ?>
- </div>
- <div class="div"></div>
- <?php
- }
- public function printJobInfoFieldWithCheckbox($fields = []) {
- ?>
- <div class="row">
- <?php foreach ($fields as $key => $field) {
- if ($field['restriction'] != null && $field['restriction']["can_view"] == 0) {
- echo '</div>';
- return false;
- };
- $editableClass = ($field['editable']) ? "editable" : "noneditable";
- $column = '6';
- ?>
- <div class="col-xs-12 col-sm-<?= $column ?> job-info-cell-title-div">
- <?php if($field['type'] == 'checkbox') { ?>
- <?php
- $checked = ($field['value'] > 0) ? "checked" : "";
- ?>
- <div class="job-info-cell-title-div job-check-div">
- <div class="spacer sm"></div>
- <span class="job-info-cell-title job-cell-check-title"><?= $field['title'] ?></span>
- <div class="checkbox-wrapper info">
- <div id="fID-<?= $field['name'] ?>" class="job-checkbox info <?= $checked ?> <?= $editableClass ?>" data-id="<?= $field['name'] ?>" data-val="<?= $field['value'] ?>" readonly></div>
- <input type="checkbox" class="checkbox-hidden <?= $editableClass ?>" name="fID-<?= $field['name'] ?>" data-id="<?= $field['name'] ?>" data-name="fID-<?= $field['name'] ?>" checked="checked" value="<?= $field['value'] ?>" style="display: none" readonly>
- </div>
- </div>
- <?php } else { ?>
- <span class="job-info-cell-title"><?= $field['title'] ?></span>
- <input type="hidden" class="<?= $editableClass ?>" id="fID-<?= $name ?>_id" name="fID-<?= $field['name'] ?>_id" value="<?= $field['value'] ?>"></input>
- <input id="fID-<?= $field['name'] ?>" class="job-info-cell-input jobinfo-input <?= $editableClass ?>"
- type="text" name="fID-<?= $field['name'] ?>" value="<?= $field['value'] ?>" readonly></input>
- <?php } ?>
- </div>
- <?php } ?>
- </div>
- <?php
- }
- public function printJobInfoAddressFields($fields = []) {
- ?>
- <div class="row">
- <?php foreach ($fields as $key => $field) {
- if ($field['restriction'] != null && $field['restriction']["can_view"] == 0) {
- continue;
- };
- $editableClass = ($field['editable']) ? "editable" : "noneditable";
- if($key == 0) {
- $width = '7';
- } else if($key == 1) {
- $width = '2';
- } else {
- $width = '3';
- }
- ?>
- <div class="col-xs-12 col-sm-<?= $width ?> job-info-cell-title-div">
- <span class="job-info-cell-title"><?= $field['title'] ?></span>
- <input type="hidden" class="<?= $editableClass ?>" id="fID-<?= $name ?>_id" name="fID-<?= $field['name'] ?>_id" value="<?= $field['value'] ?>"></input>
- <input id="fID-<?= $field['name'] ?>" class="job-info-cell-input jobinfo-input <?= $editableClass ?>"
- type="text" name="fID-<?= $field['name'] ?>" value="<?= $field['value'] ?>" readonly></input>
- </div>
- <?php } ?>
- </div>
- <?php
- }
- public function printCommissionSectionTopInfo($controller) {
- $com = $this->job->commission;
- if($com == null || count($com->solarExpertCommissionList) == 0){
- return;
- }
- $comType= JobCommissionTypes::SELF_START_BONUS;
- $comTypeString = "Self Generated";
- $dropDown = $controller->getDropDownValue($comType);
- $dropDownValue = $com->isSelfGen;
- ?>
- <div class="row">
- <div class="col-xs-12 col-md-3 commission-info">
- <?= $comTypeString ?>:
- <select name="<?= $comType ?>" id="<?= $comType ?>">
- <?php
- $i = 0;
- foreach($dropDown as $d) {
- $selected = ($dropDownValue == $i) ? "selected" : "";
- ?>
- <option value="<?= $i ?>" <?= $selected ?>><?= $d->value ?></option>
- <?php
- $i++;
- }
- ?>
- </select>
- </div>
- <div class="col-xs-12 col-md-3 commission-info">
- By:<input class="job-info-cell-input jobinfo-input self-started" id="selfStartedBy" type="text" name="selfStartedBy" value="<?=$com->selfStartedByName?>"></input>
- <input type="hidden" class="editable" name="selfStartedById" id="selfStartedById" value="<?=$com->selfStartedById?>" \>
- </div>
- </div>
- <?php
- }
- public function printCommissionTable($com) {
- //only admin can see commissions on the job
- //also a logged in user can see his own commission on the job
- if(!($this->controller->canHtRoleSeeCommissionOnJob() || ($com->userId == $this->controller->getLoggedInUser()->userId))){
- return;
- }
- $total = 0.00;
- ?>
- <div class="commission-table-div" style="margin-left: 0px; padding: 0px">
- <div class="row">
- <div class="com-table-mobile-title">
- <div class="commission-details-title" style="padding-left: 30px; font-weight: normal">Commission Details:</div>
- </div>
- <div class="col-md-3 commission-info">Solar Expert: <?= $com->userName ?></div>
- <div class="col-md-3 commission-info">Certification: <?= $com->certificationName ?></div>
- <div class="col-md-3 commission-info">KW: <?= $com->kw ?></div>
- <div class="col-md-3 commission-info">Rule: <?= $com->ruleName ?></div>
- <?php if ($com->canUpdateCertificate == 1) { ?>
- <div class="col-md-3 update-cert-btn-div">
- <div class="update-cert sd-btn action" data-solarexpertid="<?= $com->userId ?>" data-certid="<?= $com->certificationId ?>">Update to Current Certification</div>
- </div>
- <?php } ?>
- </div>
- <div class="com-table-desktop-title">
- <div class="commission-details-title" style=" font-weight: normal">Commission Details:</div>
- </div>
- <table class="commission-table">
- <thead>
- <tr>
- <td>Type</td>
- <td>Formula</td>
- <td>Amount</td>
- </tr>
- </thead>
- <tbody>
- <?php foreach($com->commissionDetail as $row) {
- $total += $row->amount;
- ?>
- <tr>
- <td class="commission-table-column-1"><?= $row->type ?></td>
- <td class="commission-table-column-2"><?= $row->formula ?></td>
- <td class="commission-table-column-3">$<?= number_format($row->amount, 2) ?></td>
- </tr>
- <?php } ?>
- </tbody>
- <tfoot>
- <tr class="commission-total-row">
- <td></td>
- <td class="table-total-text">Total:</td>
- <td class="table-total-val">$<?= number_format($total, 2) ?></td>
- </tr>
- </tfoot>
- </table>
- </div>
- <?php
- }
- public function printInstallerCommissionTable($com) {
- if(!($this->controller->canHtRoleSeeInstallerCommissionOnJob() || ($com->userId == $this->controller->getLoggedInUser()->userId))){
- return;
- }
- $total = 0.00;
- ?>
- <div class="commission-table-div" style="margin-left: 0px; padding: 0px">
- <div class="row">
- <div class="com-table-mobile-title">
- <div class="commission-details-title" style="padding-left: 30px; font-weight: normal">Commission Details:</div>
- </div>
- <div class="col-md-3 installer-commission-info">Installer: <?= $com->userName ?></div>
- <div class="col-md-3 installer-commission-info">KW: <?= $com->kw ?></div>
- <div class="col-md-3 installer-commission-info">Rule: <?= $com->ruleName ?></div>
- <div class="col-md-3 installer-commission-info">Bonus Rule: <?= $com->bonusRuleName ?></div>
- </div>
- <div class="row">
- <div class="installer-commission-info">Job Start Date: <?= $com->jobStartDate ?></div>
- </div>
- <div class="row">
- <div class="installer-commission-info bottom-padding"><?= $com->detailMsg ?></div>
- </div>
- <?php if ($com->canUpdateCertificate == 1) { ?>
- <div class="col-md-3 update-cert-btn-div">
- <div class="update-cert sd-btn action" data-solarexpertid="<?= $com->userId ?>" data-certid="<?= $com->certificationId ?>">Update to Current Certification</div>
- </div>
- <?php } ?>
- <div class="com-table-desktop-title">
- <div class="commission-details-title" style=" font-weight: normal">Commission Details:</div>
- </div>
- <table class="commission-table">
- <thead>
- <tr>
- <td>Type</td>
- <td>Formula</td>
- <td>Amount</td>
- </tr>
- </thead>
- <tbody>
- <?php foreach($com->commissionDetail as $row) {
- $total += $row->amount;
- ?>
- <tr>
- <td class="commission-table-column-1"><?= $row->type ?></td>
- <td class="commission-table-column-2"><?= $row->formula ?></td>
- <td class="commission-table-column-3">$<?= number_format($row->amount, 2) ?></td>
- </tr>
- <?php } ?>
- </tbody>
- <tfoot>
- <tr class="commission-total-row">
- <td></td>
- <td class="table-total-text">Total:</td>
- <td class="table-total-val">$<?= number_format($total, 2) ?></td>
- </tr>
- </tfoot>
- </table>
- </div>
- <?php
- }
- public function printInstallerCommissionAdjustments($comAdjustments){
- ?>
- <div class="com-adj-section">
- <?php
- $this->printInstallerComAdjustment(array_reverse($comAdjustments), "Discount");
- if($this->canEditInstallerDiscounts()){
- ?>
- <div class="row new-adj-input-div">
- <hr>
- <div class="col-xs-offset-1 col-md-3 col-md-offset-3 new-adj-input-cell"><input id="new-installer-adj-input-desc" type="text" placeholder="Description"></input></div>
- <div class="col-xs-4 new-adj-input-cell"></div>
- <div class="col-xs-10 col-xs-offset-1 col-md-3 col-md-offset-0 new-adj-input-cell"><input id="new-installer-adj-input-amount" type="number" placeholder="Amount"></input></div>
- <br>
- </div>
- <div class="row edit-adj-btn-div" data-edit="0">
- <div class="col-xs-10 col-xs-offset-1 col-md-4 col-md-offset-4 new-adj-btn sd-btn action">Add New</div>
- <div class="col-xs-10 col-xs-offset-1 col-md-3 col-md-offset-3 cancel-adj-btn sd-btn action">Cancel</div>
- <div class="col-xs-10 col-xs-offset-1 col-md-3 col-md-offset-0 submit-adj-btn sd-btn action">Add</div>
- </div>
- </div>
- <?php
- }
- }
- public function printInstallerComAdjustment($list, $title) {
- $total = 0.00;
- $name = strtolower(str_replace(" ", "_", $title));
- ?>
- <div class="com-adj-subsection">
- <div class="row com-adj-title-row">
- <div class="com-adj-title"><span><?= $title ?>s</span></div>
- </div>
- <table class="com-adj-table">
- <tr class="com-adj-row">
- <th class="com-adj-cell col-1">Description</th>
- <th class="com-adj-cell col-2">Date Added</th>
- <th class="com-adj-cell col-3">Discount Amount</th>
- <th class="com-adj-cell col-4"></th>
- <th class="com-adj-cell col-5"></th>
- </tr>
- <?php foreach ($list as $item) {
- $total += $item["amount"];
- ?>
- <tr class="com-adj-row installer" data-id="<?= $item["id"] ?>">
- <td class="com-adj-cell col-1"><?= $item["description"] ?></td>
- <td class="com-adj-cell col-3"><?= $item["time_submitted"]? (new \DateTime($item["time_submitted"]))->format("Y-m-d"):""?></td>
- <td class="com-adj-cell col-3"><input type="text" value="<?= number_format($item["amount"], 2) ?>" name="<?= $name ?>-<?= $item["id"] ?>" data-id="<?= $item["id"] ?>"></input></td>
- <?php if($this->canEditInstallerDiscounts()){?>
- <td class="com-adj-cell col-4">
- <div class="com-adj-update-btn desktop sd-btn action" data-id="<?= $item["id"] ?>">Update</div>
- <div class="com-adj-update-btn mobile" data-id="<?= $item["id"] ?>"><img src="/images/update-icon.png"></div>
- </td>
- <td class="com-adj-cell col-5">
- <div class="com-adj-del-btn mobile x-del-btn" data-id="<?= $item["id"] ?>"></div>
- <div class="com-adj-del-btn desktop sd-btn action" data-id="<?= $item["id"] ?>">Delete</div>
- </td>
- <?php }else{?>
- <td class="com-adj-cell col-4"></td>
- <td class="com-adj-cell col-5"></td>
- <?php }?>
- </tr>
- <?php } ?>
- <tr>
- <td colspan="2" class="com-adj-total-label">Total <?= $title ?>s:</td>
- <td class="com-adj-total-value col-3">$<span id="com-adj-total-amount"><?= number_format($total, 2) ?></span></td>
- </tr>
- </table>
- </div>
- <?php
- }
- public function printCommissionAdjustments($comAdjustments) {
- ?>
- <div class="com-adj-section">
- <?php
- if (count($comAdjustments->discountList) > 0) {
- $this->printComAdjustment($comAdjustments->discountList, "Discount");
- }
- if (count($comAdjustments->rebateList) > 0) {
- $this->printComAdjustment($comAdjustments->rebateList, "Rebate");
- }
- if (count($comAdjustments->commAdjList) > 0) {
- $this->printComAdjustment($comAdjustments->commAdjList, "Commission Adjustment");
- }
- ?>
- <div class="row new-adj-input-div">
- <hr>
- <div class="col-xs-4 new-adj-input-cell"><input id="new-adj-input-desc" type="text" placeholder="Description"></input></div>
- <div class="col-xs-4 new-adj-input-cell">
- <select id="new-adj-input-type" placeholder="Discount Type" style="width: 100%">
- <option value="">Adjustment Type</option>
- <option value="1">Discount</option>
- <option value="2">Rebate</option>
- <?php
- if($this->controller->isAdminUser() || $this->controller->isAuditorUser()){
- ?>
- <option value="3">Com Adj</option>
- <?php
- }
- ?>
- </select>
- </div>
- <div class="col-xs-4 new-adj-input-cell"><input id="new-adj-input-amount" type="text" placeholder="Amount"></input></div>
- </div>
- <?php if(!$comAdjustments->viewOnly){ ?>
- <div class="row edit-adj-btn-div" data-edit="0">
- <div class="col-xs-10 col-xs-offset-1 col-md-4 col-md-offset-4 new-adj-btn sd-btn action">Add New</div>
- <div class="col-xs-10 col-xs-offset-1 col-md-3 col-md-offset-3 cancel-adj-btn sd-btn action">Cancel</div>
- <div class="col-xs-10 col-xs-offset-1 col-md-3 col-md-offset-0 submit-adj-btn sd-btn action">Add</div>
- </div>
- <?php } ?>
- </div>
- <?php
- }
- public function printComAdjustment($list, $title) {
- $total = 0.00;
- $name = strtolower(str_replace(" ", "_", $title));
- ?>
- <div class="com-adj-subsection">
- <div class="row com-adj-title-row">
- <div class="com-adj-title"><span><?= $title ?>s</span></div>
- </div>
- <table class="com-adj-table">
- <?php foreach ($list as $item) {
- $total += $item["amount"];
- ?>
- <tr class="com-adj-row" data-id="<?= $item["id"] ?>">
- <td class="com-adj-cell col-1"><?= $item["description"] ?></td>
- <td class="com-adj-cell col-2"><?= $title ?></td>
- <td class="com-adj-cell col-3"><?= $item["timeSubmitted"]? (new \DateTime($item["timeSubmitted"]))->format("Y-m-d"):""?></td>
- <td class="com-adj-cell col-4"><input type="text" value="<?= number_format($item["amount"], 2) ?>" name="<?= $name ?>-<?= $item["id"] ?>" data-id="<?= $item["id"] ?>"></input></td>
- <td class="com-adj-cell col-5">
- <?php if ($item["canUpdate"] == 1 && $this->job->jobStateId->name != State::WAITING) { ?>
- <div class="com-adj-update-btn desktop sd-btn action" data-id="<?= $item["id"] ?>">Update</div>
- <div class="com-adj-update-btn mobile" data-id="<?= $item["id"] ?>"><img src="/images/update-icon.png"></div>
- <?php } ?>
- </td>
- <td class="com-adj-cell col-6">
- <?php if ($item["canDelete"] == 1 && $this->job->jobStateId->name != State::WAITING) { ?>
- <div class="com-adj-del-btn mobile x-del-btn" data-id="<?= $item["id"] ?>"></div>
- <div class="com-adj-del-btn desktop sd-btn action" data-id="<?= $item["id"] ?>">Delete</div>
- <?php } ?>
- </td>
- </tr>
- <?php } ?>
- <tr>
- <td colspan="3" class="com-adj-total-label">Total <?= $title ?>s:</td>
- <td class="com-adj-total-value col-4">$<span id="com-adj-total-amount"><?= number_format($total, 2) ?></span></td>
- </tr>
- </table>
- </div>
- <?php
- }
- public function printHistorySectionBody() {
- ?>
- <div class="h-tbl-div desktop" id="history_div">
- <?php
- $this->printHistorySectionBodyContent();
- ?>
- </div>
- <?php
- if ($this->controller->userCanManageCommission()) { ?>
- <div class="update-history-btn-div">
- <div id="update-history-btn" class="sd-btn action" name="update-history-btn">Update</div>
- </div>
- <?php }
- }
- public function printHistorySectionBodyContent() {
- $num = count($this->job->stateChanges );
- echo "<input type=\"hidden\" id=\"numHistory\" value=\"$num\">";
- ?>
- <table class="h-tbl">
- <thead>
- <tr class="h-tbl-header-row h-tbl-row">
- <td class="h-tbl-h-cell h-tbl-cell">New State</td>
- <td class="h-tbl-h-cell h-tbl-cell">Performed On</td>
- <td class="h-tbl-h-cell h-tbl-cell"> Performed By</td>
- <td class="h-tbl-h-cell h-tbl-cell">KW</td>
- <?php if(!$this->controller->isInstallerUser()){ ?>
- <td class="h-tbl-h-cell h-tbl-cell">Solar Expert</td>
- <td class="h-tbl-h-cell h-tbl-cell">2nd Solar Expert</td>
- <td class="h-tbl-h-cell h-tbl-cell">Is Adjustment</td>
- <td class="h-tbl-h-cell h-tbl-cell">Partner</td>
- <td class="h-tbl-h-cell h-tbl-cell">Contract Amt</td>
- <td class="h-tbl-h-cell h-tbl-cell">Roof</td>
- <td class="h-tbl-h-cell h-tbl-cell">MainPanel</td>
- <td class="h-tbl-h-cell h-tbl-cell">Financial Prod</td>
- <td class="h-tbl-h-cell h-tbl-cell">¢/kWh</td>
- <td class="h-tbl-h-cell h-tbl-cell">FWT</td>
- <?php } ?>
- </tr>
- </thead>
- <tbody class="h-tbl-body">
- <?php $i = 1; ?>
- <?php foreach($this->job->stateChanges as $stateChange) { ?>
- <tr class="h-tbl-body-row h-tbl-row">
- <?php if($stateChange->newSubState != null){?>
- <td class="h-tbl-b-cell h-tbl-cell"><?= $stateChange->newSubState->name ?></td>
- <?php }else{?>
- <td class="h-tbl-b-cell h-tbl-cell"><?= $stateChange->newState->name ?></td>
- <?php }?>
- <td class="h-tbl-b-cell h-tbl-cell">
- <?php if ($this->controller->userCanManageCommission()) {?>
- <input type="text" data-historyid="<?= $stateChange->id ?>" data-origdate="<?= date("m/d/Y h:i a", strtotime($stateChange->performedOn)) ?>" id="performedOn_<?= $i ?>" value="<?= date("m/d/Y h:i a", strtotime($stateChange->performedOn)) ?>"></input>
- <?php } else { ?>
- <?= date("m/d/Y", strtotime($stateChange->performedOn)) . '<br>' . date("h:i a", strtotime($stateChange->performedOn)) ?>
- <?php } ?>
- </td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->performedBy->firstName)) ? $stateChange->performedBy->firstName . " " . $stateChange->performedBy->lastName : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->kw)) ? $stateChange->kw : "" ?></td>
- <?php if(!$this->controller->isInstallerUser()){ ?>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->solarExpert->firstName)) ? $stateChange->solarExpert->firstName . " " . $stateChange->solarExpert->lastName : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->secondarySolarExpert)) ? $stateChange->secondarySolarExpert->firstName . " " . $stateChange->secondarySolarExpert->lastName : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= ($stateChange->isAdjustment == 1) ? "Yes" : "No" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->dealer->firstName)) ? $stateChange->dealer->firstName . " " . $stateChange->dealer->lastName : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->contractAmount)) ? $stateChange->contractAmount : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->roofType)) ? $stateChange->roofType->name : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->mainPanel)) ? $stateChange->mainPanel : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->productType)) ? $stateChange->productType->name : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->dollarsPerKwh)) ? ($stateChange->dollarsPerKwh * 100) : "" ?></td>
- <td class="h-tbl-b-cell h-tbl-cell"><?= (isset($stateChange->fwtDate)) ? $stateChange->fwtDate : "" ?></td>
- <?php } ?>
- </tr>
- <?php $i++ ?>
- <?php } ?>
- </tbody>
- </table>
- <?php
- }
- public function printHistorySectionBodyMobile() {
- ?>
- <div class="h-tbl-div mobile">
- <?php foreach($this->job->stateChanges as $stateChange) { ?>
- <div class="row no-margin-row h-tbl-title-div-mbl">
- <div class="h-tbl-title-mbl"><?= $stateChange->newState->name ?></div>
- </div>
- <table class="h-tbl-mbl">
- <tr><td>Performed On</td><td><?= $stateChange->performedOn ?></td></tr>
- <tr><td>Performed By</td><td><?= $stateChange->performedBy->username ?></td></tr>
- <tr><td>KW</td><td><?= $stateChange->kw ?></td></tr>
- <?php if(!$this->controller->isInstallerUser()){ ?>
- <tr><td>Solar Expert</td><td><?= (isset($stateChange->solarExpert->username)) ? $stateChange->solarExpert->username : "" ?></td></tr>
- <tr><td>2nd Solar Expert</td><td><?= (isset($stateChange->secondarySolarExpert)) ? $stateChange->secondarySolarExpert->username : "" ?></td></tr>
- <tr><td>Is Adjustment?</td><td><?= ($stateChange->isAdjustment == 1) ? "Yes" : "No" ?></td></tr>
- <?php } ?>
- </table>
- <?php } ?>
- </div>
- <?php
- }
- //############################
- //## Section HTML Functions ##
- //############################
- public function openSection($id, $level, $fieldType, $status, $approved, $messageBox, $show=false) {
- $toShow = ($show == true) ? "maximized" : "minimized";
- $section;
- switch ($level) {
- case 0:
- $section = "container section-container";
- break;
- case 1:
- $section = "col-xs-12 subsection";
- break;
- default:
- // $section = "subsection-expand-table-cell";
- $section = "subsection";
- }
- ?>
- <div class="<?= $section ?> section msgs-inactive <?= $toShow ?> status-<?= $status ?>" data-type="<?= $fieldType ?>" data-id="<?= $id ?>" data-level="<?= $level ?>" data-status="<?= $status ?>">
- <?php
- }
- public function insertHeading($id, $level, $title, $status, $approved, $messageBox=0, $show=false, $canDownloadAll = false) {
- $canCheck = $this->canUseCheckbox();
- $toShow = ($show == true) ? "maximized" : "minimized";
- $className = strtolower(str_replace(" ", "_", $title));
- $message = ($messageBox > 1) ? "message" : "no-message";
- ?>
- <div class="row <?=$className?>-header section-heading <?=$status?>-header top-section-heading status-<?= $status ?>" data-id="<?= $id ?>" data-level="<?= $level ?>" data-status="<?= $status ?>">
- <div class="top-expand-btn-div section-expand expand-btn-div <?= $toShow ?>" data-id="<?= $id ?>"></div>
- <?php if ($approved > 0) { $checked = ($approved == 2) ? "checked" : ""; ?>
- <!--
- <div class="checkbox-wrapper top">
- <div class="job-checkbox top <?= $checked ?>" data-id="<?= $id ?>" data-val="" name="fID-<?= $id ?>" <?= $canCheck ?>></div>
- <input type="hidden" class="checkbox-hidden" name="fID-<?= $id ?>" data-id="<?= $id ?>" value="0" <?= $canCheck ?>\>
- </div>
- -->
- <?php } ?>
- <div class="title-text-div <?= ($approved > 0) ? "box" : "no-box" ?>">
- <span class="title-text"><?= $title ?></span>
- </div>
- <div class="title-action-buttons">
- <?php
- if($canDownloadAll){
- $this->displayDownloadAllSectionDocuments($id);
- }
- ?>
- <?php if ($messageBox > 0) { ?>
- <div class="message-icon top-msg <?= $message ?>" data-section="<?= $className ?>" data-level="<?= $level ?>" data-id="<?= $id ?>">
- <img class="empty-comment" src="images/job_comment_white.png"></img>
- <img class="full-comment" src="images/job_comment_pop.png"></img>
- </div>
- <?php } ?>
- </div>
- </div>
- <div class="toplevel-arrow <?= $status ?> status-<?= $status ?>" data-id="<?= $id ?>" data-status="<?= $status ?>"></div>
- <?php
- }
- public function openSectionBody($title, $display=false) {
- $show = ($display) ? "display" : "no-display";
- $section = strtolower(str_replace(" ", "_", $title));
- ?>
- <div class="row section-body s-body <?= $show ?>" data-section="<?= $section ?>">
- <div class="section-body-content">
- <?php
- }
- public function openSubsection($id, $level, $status, $parentId) {
- ?>
- <div class="subsection-wrapper" data-id="<?= $id ?>" data-level="<?= $level ?>">
- <div class="col-xs-12 subsection section level-<?= $level . " " . $status ?> minimized msgs-inactive status-<?= $status ?>" data-id="<?= $id ?>" data-parent="<?= $parentId ?>" data-level="<?= $level ?>" data-status="<?= $status ?>">
- <?php
- }
- public function printSubsectionHeading($id, $level, $title, $status, $approved, $messageBox=0, $show=false, $field = null) {
- $canCheck = $this->canUseCheckbox();
- $message = ($messageBox == 2) ? "message" : "no-message";
- $longText = (strlen($title) > 35) ? "long-mobile" : "";
- $type = ($level == 1) ? "circle" : "nested";
- $rowColumn = ($level == 1) ? "row" : "col-xs-12";
- $showClass = ($show) ? "maximized" : "minimized";
- $status = ($field && $field->jobData) ? strtolower($field->jobData->getStatus()) : 'missing';
- $fieldType = strtolower($field->controlType->name);
- $fileUploadedClass = ($fieldType == "file" && count($field->documents)) ? ' file-uploaded' : '';
- ?>
- <div class="<?= $rowColumn ?> subsection-title-div section-heading <?= $showClass ?> status-<?= $status ?>" data-id="<?= $id ?>" data-level="<?= $level ?>" data-status="<?= $status ?>">
- <div class="level-3-title-bg"></div>
- <div class="subsection-expand-div section-expand status-<?= $status ?><?= $fileUploadedClass ?>" data-id="<?= $id ?>" data-level="<?= $level ?>" data-status="<?= $status ?>">
- </div>
- <div class="subsection-expand-text <?= ($approved > 0) ? "box" : "no-box" ?>">
- <span><?= $title ?></span>
- </div>
- <?php if ($messageBox > 0) { ?>
- <div class="message-icon sub-msg <?= $message ?>" data-level="<?= $level ?>" data-id="<?= $id ?>">
- <img class="empty-comment" src="images/job_comment_empty.png"></img>
- <img class="empty-comment-mobile" src="images/job_comment_white.png"></img>
- <img class="full-comment" src="images/job_comment_pop.png"></img>
- </div>
- <?php } ?>
- <?php if($level == 1 && $field->needsApproval) { ?>
- <div class="sales-packet-status <?= $canCheck ?>" data-id="<?= $id ?>">
- <?php $approvedClass = ($status == 'approved') ? 'active' : ''; ?>
- <div class="status-container approved <?= $approvedClass ?>">
- <div class="icon"></div>
- </div>
- <?php $pendingClass = ($status == 'pending') ? 'active' : ''; ?>
- <div class="status-container pending <?= $pendingClass ?>">
- <div class="icon"></div>
- </div>
- <?php $missingClass = ($status == 'missing') ? 'active' : ''; ?>
- <div class="status-container missing <?= $missingClass ?>">
- <div class="icon"></div>
- </div>
- <?php $naClass = ($status == 'not_applicable') ? 'active' : ''; ?>
- <div class="status-container not_applicable <?= $naClass ?>">
- <div class="icon"></div>
- </div>
- </div>
- <?php } ?>
- </div>
- <?php
- }
- public function openSubsectionItemList($id, $level, $status, $title, $messageBox, $comments=null) {
- $showComment = ($title == "General Comments") ? "active" : "inactive";
- ?>
- <div class="col-xs-12 item-list-wrapper s-body no-display" data-id="<?= $id ?>" data-level="<?= $level ?>">
- <div class="col-xs-12 item-list status-<?= $status ?>" data-level="<?= $level ?>" data-status="<?= $status ?>">
- <div class=" row subsection-expand-table status-<?= $status ?>" data-level="<?= $level ?>" data-status="<?= $status ?>">
- <?php
- }
- public function closeSubsectionItemList() {
- ?>
- </div>
- </div>
- </div>
- <?php
- }
- public function closeSubsection() {
- ?>
- </div>
- </div>
- <?php
- }
- public function closeSectionBody() {
- ?>
- </div>
- </div>
- <?php
- }
- public function closeSection() {
- ?>
- </div>
- <?php
- }
- public function openJobInfoColumn($last = false) {
- $lastClass = ($last) ? "last" : "";
- ?>
- <div class="col-xs-12 col-md-4 job-info-column <?= $lastClass ?>">
- <?php
- }
- public function printJobInfoHeader($title = null) {
- ?>
- <div class="row">
- <div class="col-md-12">
- <h4 class="job-info-subheader"><?= $title ?></h4>
- </div>
- </div>
- <?php
- }
- public function printJobInfoHeaderSystemTitle($title = null) {
- ?>
- <div class="row">
- <div class="col-md-12">
- <h4 class="job-info-subheader"><?= $title ?>
- <?php if($this->job->hqQuoteId) { ?>
- - <a href="https://helioquote.completesolar.com/addresses?quote_id=<?= $this->job->hqQuoteId ?>" target="_blank">HQ</a>
- <?php } ?>
- </h4>
- </div>
- </div>
- <?php
- }
- function printCommentSection($id, $section, $comments, $status, $show=false) {
- $active = ($show == true) ? "display" : "no-display";
- ?>
- <div class="row comments-section <?= $active ?> status-<?= $status ?>" data-id="<?= $id ?>" data-status="<?= $status ?>" data-section="<?= $section ?>">
- <div class="comments-container">
- <?php
- if (isset($comments)) {
- foreach($comments as $comment) {
- $this->printComment($comment, false);
- }
- }
- ?>
- </div>
- <?php
- $this->displayAvatar();
- ?>
- <div class="col-xs-12 col-md-10 col-offset-md-1 new-comment-box">
- <textarea name="ncID-<?= $id ?>" rows="4" placeholder="Type your comment here..."></textarea>
- <div class="add-comment-button-div">
- <div class="add-comment-btn sd-btn action" data-action="add_comment">Add</div>
- </div>
- </div>
- </div>
- <?php
- }
- public function printComment($comment, $return=false) {
- if ($return) { ob_start(); }
- ?>
- <div class="general-comment-wrapper">
- <?php $this->displayAvatar($comment->commenter->id); ?>
- <div class="general-comment">
- <div class="comment-header">
- <span class="comment-username"><?= $comment->commenter->firstName ?> <?= $comment->commenter->lastName ?> - </span>
- <span class="comment-userrole"><?= ucwords(strtolower($comment->commenter->role->name)) ?></span>
- </div>
- <span class="comment-datetime"><?= $comment->commentTime ?></span>
- <p class="comment-comment"><?= $comment->content ?></p>
- </div>
- </div>
- <?php
- if ($return) {
- $return = ob_get_contents();
- ob_end_clean();
- return $return;
- }
- }
- public function printDocumentSubsection($id, $docs) {
- ?>
- <div class="doc-area" data-id="<?= $id ?>">
- <?php
- $this->printDocList($id, $docs);
- $this->printDocUploadArea($id);
- ?>
- </div>
- <!-- <hr class="doc-hr"> -->
- <?php
- }
- public function printDocList($id, $docs) {
- $jobFields = $this->getJobFields();
- ?>
- <div class="doc-list" data-id="<?= $id ?>">
- <?php
- foreach($docs as $doc) {
- if (empty($doc->isDeleted)) {
- $splitDoc = explode("-", $doc->name, 2);
- $docTime = $splitDoc[0];
- $docName = $splitDoc[1];
- $dateFormat1 = 'M d, Y \a\t H:i:s';
- $dateFormat2 = 'Y-m-d H:i:s';
- ?>
- <div class="document"data-id="<?= $id ?>" data-docid="<?= $doc->id ?>">
- <?php if($jobFields->canEditField($id) && $this->controller->okToUpdateJobDocs($this->job->id)){?>
- <div class="js-job-delete-doc x-del-btn" data-docid="<?= $doc->id ?>"></div>
- <?php }?>
- <a href="<?= $this->controller->getHTDomain() ?>jobUpkeep.php?action=open&id=<?= $doc->id ?>" target="_blank">
- <img class="doc-img" src="/images/document_icon.png"></img>
- <div class="doc-name">
- <span class="doc-name-title"><?= $docName ?></span><br />
- <span class="doc-time"><?= date($dateFormat2, $docTime) ?></span>
- </div>
- </a>
- </div>
- <?php
- }
- }
- ?>
- </div>
- <?php
- }
- public function printDocUploadArea($id) {
- $jobFields = $this->getJobFields();
- if($jobFields->canEditField($id) && $this->controller->okToUpdateJobDocs($this->job->id)){
- ?>
- <div class="doc-upload-area">
- <?php if (false) { // temporary statement to hide the following section until drag & drop is implemented ?>
- <div class="desktop-upload" style="border: 1px dashed gray; text-align: center; height: 100px; margin: 10px">
- <img src="images/upload_icon.png"></img>
- <span>To attach files drag & drop here or <span class="desktop-upload-text" style="position: relative">select files from your computer<input type="file" style="opacity: 0; position: absolute; top: 0; left: 0;"></input></span></span>
- </div>
- <div class="mobile-upload">
- <div class="js-job-file-upload-btn choose-file-btn sd-btn action" style="width: 100px; display: block; margin: 10px auto; position: relative">Choose File<input type="file" style="opacity: 0; position: absolute; top: 0; left: 0;"></input></div>
- </div>
- <?php } ?>
- <div class="upload">
- <div class="choose-file">
- <input type="file" class="choose-file-btn" name="fID-<?= $id ?>[]" data-action="doc-upload" data-id="<?= $id ?>" multiple></input>
- <div class="choose-file-btn-cover">
- <div class="file-status">
- <div class="choose-file-text">To attach files drag & drop here or <span>select files from your computer...</span></div>
- <div class="choose-file-value" data-id="<?= $id ?>"></div>
- </div>
- </div>
- <div class="clear"></div>
- </div>
- <button id="up-doc-<?= $id ?>" class="js-job-file-upload-btn file-upload-btn upload-btn sd-btn action inverse no-display" data-id="<?= $id ?>" data-action="up-doc-<?= $id ?>">Upload</button>
- </div>
- </div>
- <?php
- }
- }
- public function printItem($field, $approved) {
- $canCheck = $this->canUseCheckbox();
- $isInputField = ($field->controlType->id == 1 || $field->controlType->id == 5) ? "col-xs-12 col-md-4 input-cell " : "col-xs-12 col-md-12 ";
- $type = (isset($field->controlType->id)) ? intval($field->controlType->id) : 0;
- ?>
- <div class="<?= $isInputField ?>subsection-expand-table-cell">
- <div class="subsection-cell-value-div">
- <?php if ($approved > 0) {
- $checked = ($approved == 2) ? "checked" : "";
- ?>
- <div class="checkbox-wrapper item">
- <div class="job-checkbox end <?= $checked ?>" data-id="<?= $field->id ?>" name="fID-<?= $field->id ?>"data-val="" <?= $canCheck ?>></div>
- <input type="hidden" class="checkbox-hidden" name="fID-<?= $field->id ?>" data-id="<?= $field->id ?>" value="0" <?= $canCheck ?> \>
- </div>
- <?php } ?>
- <span class="subsection-cell-title"><?= $field->name ?></span>
- <?php
- switch ($type) {
- case 1:
- $this->printTextItem($field);
- break;
- case 5:
- $this->printDropDownItem($field);
- break;
- default:
- }
- ?>
- </div>
- </div>
- <?php
- }
- public function printLabelItem($field) {
- ?>
- <div class="subsection-expand-table-cell">
- <span class="subsection-cell-title"><?= $field->name ?></span>
- </div>
- <?php
- }
- public function printDropDownItem($field) {
- $dropdownArray = $field->getDataAccess();
- $jobFields = $this->getJobFields();
- $disabled = "";
- if(!$jobFields->canEditField($field->id)){
- $disabled = " disabled";
- }
- ?>
- <br />
- <select class="dropdown_field" name="fID-<?= $field->id ?>" data-id="<?= $field->id ?>" data-input="<?= $field->id ?>" <?= $disabled ?>>
- <?php
- foreach($dropdownArray as $option) {
- $selected = "";
- if ($option->id == $field->jobData->value){
- $selected = ' selected="selected" ';
- }
- echo "<option value=\"$option->id\"$selected>$option->value</option>";
- }
- ?>
- </select>
- <?php
- }
- public function printTextItem($field) {
- $jobFields = $this->getJobFields();
- $readonly = "";
- if(!$jobFields->canEditField($field->id)){
- $readonly = " readonly";
- }
- $dataId = (isset($field->jobData->id)) ? $field->jobData->id : $field->id;
- $id = $field->id;
- $value = (isset($field->jobData->value)) ? $field->jobData->value : "";
- ?>
- <br />
- <input class="job-text-field" type="text" name="fID-<?= $id ?>" id="fID-<?= $id ?>" data-input="<?= $dataId ?>" data-id="<?= $id ?>" value="<?= $value ?>" <?= $readonly ?>></input>
- <?php
- }
- public function printHiddenField($field) {
- ?>
- <input class="hidden name="<?= strtolower(str_replace(" ", "_", $field->name)) ?>" <?= $field->jobData->id ?>" type="hidden" data-id="<?= $field->jobData->id ?>"></input>
- <?php
- }
- public function printHiddenItem($item, $val) {
- ?>
- <input class="hidden" id="<?= $item ?>" type="hidden" name="<?= $item ?>" data-name="<?= $item ?>" value="<?= $val ?>" data-id="<?= $val ?>"></input>
- <?php
- }
- public function printButtons($siteSurveyComplete){
- echo "<button class=\"sd-btn action download-documents\" type=\"button\">Download All Docs</button>";
- }
- public function printState(){
- echo $this->state;
- }
- public function printStateHistory() {
- }
- public function updateCommissionAndDiscounts($htdb, $loggedInUser, $jobId, $solarExpertOpen=false, $installerOpen=false) {
- if(!$this->canViewCommissionSection()){
- return;
- }
- $dbResult = $htdb->getJobInfo($jobId);
- if($dbResult->errors && count($dbResult->errors> 0)){
- // $this->log->addERROR(" failed ". $this->jobId ." ".$dbResult->errors[0]);
- }
- $row = $dbResult->data[0];
- $jobStateId = $row['job_state_id'];
- $jobStateName = $row['state_name'];
- $jobSubStateName = $row['sub_state_name'];
- $jobStateView = $jobStateController = null;
- $jobInfo = new JobInfo($jobId, $jobStateId, $jobStateName, $jobSubStateName);
- // echo "<pre>"; print_r($loggedInUser); echo "</pre>"; exit(0);
- $jobStateController = JobStateController::createController($loggedInUser, $jobInfo, $htdb);
- $jobCommissionController = new JobCommissionController($loggedInUser, $jobId);
- $jobCommissionInfo = $jobCommissionController->getJobCommissionFromJob($jobId);
- $jobObject = $jobStateController->getJob($jobId);
- $jobObject->setCommission($jobCommissionInfo);
- $jobStateView = JobStateView::createView($jobStateController, $jobObject);
- if(!$jobStateController->canUserViewJob()){
- header("Location: job.php?action=dispmsg&msg=nopermissiontoview");
- exit(0);
- }
- ob_start();
- $this->openSection("solarExpert", 1, "section", "info", 0, 1, $solarExpertOpen);
- $this->printSubsectionHeading("solarExpert", 1, "Solar Experts", "info", 0, null, $solarExpertOpen);
- $this->openSubsectionItemList(null, 1, "info", "commission", 0);
- $jobStateView->printCommissionSectionTopInfo($jobCommissionController);
- foreach ($jobStateView->job->commission->solarExpertCommissionList as $com) {
- $jobStateView->printCommissionTable($com);
- }
- if($this->canViewDiscounts()){
- $jobStateView->openSection("jobDiscounts", 1, "section", "info", 0, 1, $jobOpen);
- $jobStateView->printSubsectionHeading("jobDiscounts", 1, "Discounts, Rebates & Commission Adjustments", "info", 0, null, $jobOpen);
- $jobStateView->openSubsectionItemList(null, 1, "info", "commission", 0);
- $commissionAdjustments = $jobCommissionController->getJobDiscounts($jobId);
- $jobStateView->printCommissionAdjustments($commissionAdjustments);
- $jobStateView->closeSubsectionItemList();
- $this->closeSection();
- }
- $jobStateView->closeSubsectionItemList();
- $this->closeSection();
- $this->openSection("installer", 1, "section", "info", 0, 1, $installerOpen);
- $this->printSubsectionHeading("Installer", 1, "Installers", "info", 0, null, $installerOpen);
- $this->openSubsectionItemList(null, 1, "info", "commission", 0);
- foreach($jobStateView->job->commission->installerCommissionList as $com){
- $this->printInstallerCommissionTable($com);
- }
- if($this->canViewInstallerDiscounts($jobId)){
- $this->openSection("installerDiscounts", 1, "section", "info", 0, 1, $installerOpen);
- $this->printSubsectionHeading("installerDiscounts", 1, "Installer Discounts", "info", 0, null, $installerOpen);
- $this->openSubsectionItemList(null, 1, "info", "commission", 0);
- $commissionAdjustments = $jobCommissionController->getInstallerJobDiscounts($jobId);
- $this->printInstallerCommissionAdjustments($commissionAdjustments);
- $this->closeSubsectionItemList();
- $this->closeSection();
- }
- $this->closeSubsectionItemList();
- $this->closeSection();
- $html = ob_get_contents();
- ob_end_clean();
- return $html;
- }
- public function displayOtherModule() {
- ?>
- <div id="othermodule" class="othermodule">
- <div class="padded">
- <p>Add a new module type:</p>
- <form method="POST" id="subform" class="newModuleForm">
- Manufacturer:<br>
- <input type="text" name="newManufacturer" id="newManufacturer" class="enabled"><br>
- Model:<br>
- <input type="text" name="newModel" id="newModel" class="enabled"><br>
- Size:<br>
- <input type="text" name="newSize" id="newSize" class="enabled"><br><br>
- <div id="submitModuleButton" class="sd-btn action enabled">Add Module</div>
- </form>
- </div>
- </div>
- <?php
- }
- public function displayOtherInverter() {
- ?>
- <div id="otherinverter" class="otherinverter">
- <div class="padded">
- <p>Add a new inverter type:</p>
- <form method="POST" id="subform" class="newInverterForm">
- Manufacturer:<br>
- <input type="text" name="newManufacturerInv" class="enabled" id="newManufacturerInv"><br>
- Model:<br>
- <input type="text" name="newModelInv" class="enabled" id="newModelInv"><br><br>
- <div id="submitInverterButton" class="sd-btn action enabled">Add Inverter</div>
- </form>
- </div>
- </div>
- <?php
- }
- /***********Job In Jeopardy Section********************/
- public function okToAddJobInJeopardyReason(){
- return false;
- }
- public function printJobInJeopardyContainer() {
- ?>
- <div class="job-in-jeopardy-container">
- <div class="pulse-loading-container">
- <h5>Loading</h5>
- <div class="throbber"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>
- </div>
- </div>
- <?php
- }
- public function printJobInJeopardySection($reasons = [], $jobInJeopardyTimeout = null) {
- if($jobInJeopardyTimeout == null){
- $jobInJeopardyTimeout = $this->controller->getJobInJeopardyDefaultTimeoutDate();
- $jobInJeopardyTimeout = $this->controller->convertToHTDate($jobInJeopardyTimeout->date, 'm/d/Y');
- }
- if($this->canMoveJobToJeopardy()){
- ?>
- <div class="hide"><?php print_r($timeoutDate); ?></div>
- <div class="row">
- <div class="col-sm-2">
- <div class="new-reason"><span class="plus-reason">+</span>Add Reason</div>
- </div>
- <div class="col-sm-10">
- <div class="reopen-date">This job will automatically re-open on
- <input type="text" class="reopen-date-input datepicker" readonly value="<?= $jobInJeopardyTimeout; ?>" />
- <div class="reopen-btn reopen-date-edit">Edit</div>
- <div class="reopen-btn reopen-date-save hidden">Save</div>
- </div>
- </div>
- </div>
- <?php }?>
- <div class="row">
- <div class="col-sm-12">
- <table class="table">
- <thead>
- <tr>
- <th>Why is this job in jeopardy?</th>
- <th>Issue</th>
- <th>Target Resolution Date?</th>
- <th>Resolved</th>
- <th class="completion-date-col">Completion Date</th>
- <th class="action-btns"></th><!-- Actions -->
- </tr>
- </thead>
- <tbody>
- <?php
- if($this->okToAddJobInJeopardyReason()) {
- $this->printJobInJeopardyNewReason();
- }
- ?>
- <?= $this->printJobInJeopardyReasons($reasons) ?>
- </tbody>
- </table>
- </div>
- </div>
- <?php
- }
- public function printJobInJeopardyReasons($reasons) {
- foreach ($reasons as $reason) {
- $resolved = $reason['resolution'] == 'Closed' ? 1 : 0;
- $desc = $reason['description'];
- ?>
- <tr>
- <input readonly name="id" type="hidden" class="reasons-id" value="<?= $reason['id'] ?>" />
- <td>
- <?= $this->printJobInJeopardyReasonsSelect($reason['name'], true) ?>
- </td>
- <td><input readonly name="issue" type="text" title="<?= $desc ?>" value="<?= $desc ?>" /></td>
- <td><input readonly name="targetResolutionDate" type="text" class="datepicker" value="<?= $this->controller->convertToHTDate($reason['target_resolution_date_c']) ?>" /></td>
- <td><?= $this->createCustomCheckbox('resolved', $resolved) ?></td>
- <?php $completionDate = empty($reason['resolved_on_c']) ? 'MM/DD/YYYY' : $this->controller->convertToHTDate($reason['resolved_on_c']); ?>
- <td class="completion-date-col"><input class="completion-date" readonly name="completionDate" type="text" value="<?= $completionDate ?>" /></td>
- <td></td><!-- Actions -->
- </tr>
- <?php
- }
- }
- public function printJobInJeopardyNewReason() {
- ?>
- <tr>
- <input readonly name="id" type="hidden" class="reasons-id" value="" />
- <td>
- <?php $this->printJobInJeopardyReasonsSelect() ?>
- </td>
- <td><input name="issue" type="text" /></td>
- <td><input name="targetResolutionDate" type="text" class="datepicker" /></td>
- <td><?= $this->createCustomCheckbox('resolved', 0) ?></td>
- <td class="completion-date-col"><input class="completion-date" name="completionDate" type="text" value="MM/DD/YYYY" readonly /></td>
- <td>
- <?= $this->printJobInJeopardyActionButtons() ?>
- </td><!-- Actions -->
- </tr>
- <?php
- }
- public function printJobInJeopardyReasonsSelect($selectedValue = null, $disabled = false) {
- $reasons = $this->controller->getDefaultJobInJeopardyReasons();
- if($disabled) {
- $disabledHtml = 'disabled';
- } else {
- $disabledHtml = '';
- }
- ?>
- <select <?= $disabledHtml ?> name="reason">
- <option value="">Choose One</option>
- <?php if (!in_array($selectedValue, $reasons) && $selectedValue) { ?>
- <option value="<?= $selectedValue ?>" selected="selected"><?= $selectedValue ?></option>
- <?php }
- foreach ($reasons as $reason) { ?>
- <?php $selected = ($selectedValue == $reason ) ? 'selected="selected"' : ''; ?>
- <option value="<?= $reason ?>" <?= $selected ?>><?= $reason ?></option>
- <?php } ?>
- </select>
- <?php
- }
- public function printJobInJeopardyActionButtons() {
- if ($this->okToExecuteJobInJeopardy()) { ?>
- <div class="sd-btn action jij-new">JIJ</div> <?php
- }else{?>
- <div class="sd-btn action jij-submit">Submit</div> <?php
- }
- }
- public function displayDownloadAllSectionDocuments($sectionId){
- ?>
- <i class="fa fa-download download-documents" aria-hidden="true" data-field-id="<?= $sectionId ?>"></i>
- <?php
- }
- /********PERMISSIONS*****************/
- public function okToExecuteSave(){
- return false;
- }
- public function okToExecuteSubmit(){
- return false;
- }
- public function okToExecuteRequestSiteTech(){
- return false;
- }
- public function okToExecuteApprove(){
- return false;
- }
- public function okToExecuteJobInJeopardy(){
- return false;
- }
- public function okToExecuteClaimIt(){
- return false;
- }
- public function okToExecuteProcessDone(){
- return false;
- }
- public function okToExecuteOpenJobSubmission(){
- return false;
- }
- public function okToExecuteItemsMissing(){
- return false;
- }
- public function okToExecuteReopen(){
- return false;
- }
- public function okToExecutePipSubmit(){
- return false;
- }
- public function okToExecutePipApprove(){
- return false;
- }
- public function okToExecutePipItemsMissing(){
- return false;
- }
- public function okToExecuteFWT(){
- return false;
- }
- public function canUserViewJob(){
- return $this->controller->canUserViewJob();
- }
- public function canViewDiscounts(){
- return !$this->controller->isInstallerUser();
- }
- public function canViewCommissionSection(){
- return true;
- }
- public function canMoveJobToJeopardy(){
- return false;
- }
- public function canViewInstallerDiscounts($jobId){
- return $this->controller->canViewInstallerDiscounts($jobId);
- }
- public function canEditInstallerDiscounts(){
- return $this->controller->canEditInstallerDiscounts();
- }
- public function canEditJobField($field=null, $restriction=null){
- }
- public function canEditJobSection(){
- return $this->controller->canEditJobSection();
- }
- public function canUpdateFieldStatus(){
- return $this->controller->canUpdateFieldStatus();
- }
- public function canViewSolarExpertCommissionSection(){
- return $this->controller->canViewSolarExpertCommissionSection();
- }
- public function canViewInstallerCommissionSection($jobId){
- return $this->controller->canViewInstallerCommissionSection($jobId);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement