/** * event function to add the invoice payment * @param object $evctl */ public function eventAjaxAddInvoicePayment(EventControler $evctl) { $err = false; $error_code = 0; if (trim($evctl->payment_date) == '') { $err = true; $error_code = 1; } elseif (trim($evctl->ref_num) == '') { $err = true; $error_code = 2; } elseif ((int) FieldType30::convert_before_save(trim($evctl->amount)) == 0) { $err = true; $error_code = 3; } elseif (true === $this->is_payment_more_than_due($evctl->idinvoice, FieldType30::convert_before_save(trim($evctl->amount)))) { $err = true; $error_code = 4; } if (true === $err) { echo $error_code; } else { $payment_date = FieldType9::convert_before_save($evctl->payment_date); $payment_mode = $evctl->payment_mode; $amount = FieldType30::convert_before_save($evctl->amount); $ref_num = CommonUtils::purify_input($evctl->ref_num); $additional_note = CommonUtils::purify_input($evctl->additional_note); $idinvoice = (int) $evctl->idinvoice; // add to paymentlog $do_paymentlog = new Paymentlog(); $do_paymentlog->addNew(); $do_paymentlog->date_added = $payment_date; $do_paymentlog->amount = $amount; $do_paymentlog->ref_num = $ref_num; $do_paymentlog->idpayment_mode = $payment_mode; $do_paymentlog->add(); $idpaymentlog = $do_paymentlog->getInsertId(); // add to invoice payment $this->addNew(); $this->idinvoice = $idinvoice; $this->idpaymentlog = $idpaymentlog; $this->additional_note = $additional_note; $this->iduser = $_SESSION["do_user"]->iduser; $this->add(); $qry = "\n\t\t\tselect * from `payment_mode` where `idpayment_mode` = ?\n\t\t\t"; $stmt = $this->getDbConnection()->executeQuery($qry, array($evctl->payment_mode)); $data = $stmt->fetch(); $payment_mode_name = $data['mode_name']; $html = ''; $html .= '<tr>'; $html .= '<td>' . FieldType9::display_value($payment_date) . '</td>'; $html .= '<td>' . FieldType30::display_value($amount) . '</td>'; $html .= '<td>' . FieldType1::display_value($ref_num) . '</td>'; $html .= '<td>' . FieldType1::display_value($payment_mode_name) . '</td>'; $html .= '<td>' . _('charge') . '</td>'; $html .= '<td>' . nl2br($additional_note) . '</td>'; $html .= '</tr>'; $invoice_payments = new InvoicePayments(); $due_amount = FieldType30::display_value($invoice_payments->get_due_amount($idinvoice)); echo json_encode(array('html' => $html, 'due_amount' => $due_amount)); } }
/** * parse the date filter for the query * @param integer $idreport * @param array $data * @return string */ public function get_parsed_date_filter($idreport, $data = array()) { $date_where = ''; if (count($data) > 0) { $filter_type = $data["filter_type"]; $do_fields = new CRMFields(); $do_fields->getId((int) $data["idfield"]); $where_field = $do_fields->table_name . '.' . $do_fields->field_name; if ($data["start_date"] != '') { $start_date = FieldType9::convert_before_save($data["start_date"]); } if ($data["end_date"] != '') { $end_date = FieldType9::convert_before_save($data["end_date"]); } } else { $qry = $this->get_saved_date_filter(); $this->query($qry, array($idreport)); if ($this->getNumRows() > 0) { $this->next(); $filter_type = $this->filter_type; $field_name = $this->field_name; $where_field = $this->table_name . '.' . $field_name; if ($this->start_date != '' && $this->start_date != '0000-00-00') { $start_date = $this->start_date; } if ($this->end_date != '' && $this->end_date != '0000-00-00') { $end_date = $this->end_date; } } } if ($filter_type > 0) { switch ($filter_type) { case '1': if ($start_date != '' && $start_date != '0000-00-00' && $end_date != '' && $end_date != '0000-00-00') { $date_where = " AND " . $where_field . " between '" . $start_date . "' AND '" . $end_date . "'"; } break; case '2': $date_range = CommonUtils::get_year_date_range('previous'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '3': $date_range = CommonUtils::get_year_date_range('current'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '4': $date_range = CommonUtils::get_year_date_range('next'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '5': $date_range = CommonUtils::get_quarter_date_range('previous'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '6': $date_range = CommonUtils::get_quarter_date_range('current'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '7': $date_range = CommonUtils::get_quarter_date_range('next'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '8': $date_where = " AND " . $where_field . " between concat(date_sub(curdate(),interval 1 day),' 00:00:00') and concat(date_sub(curdate(),interval 1 day),' 23:59:59')"; break; case '9': $date_where = " AND " . $where_field . " between concat(curdate(),' 00:00:00') and concat(curdate(),' 23:59:59')"; break; case '10': $date_where = " AND " . $where_field . " between concat(date_add(curdate(),interval 1 day),' 00:00:00') and concat(date_add(curdate(),interval 1 day),' 23:59:59')"; break; case '11': $date_range = CommonUtils::get_week_date_range('previous'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '12': $date_range = CommonUtils::get_week_date_range('current'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '13': $date_range = CommonUtils::get_week_date_range('next'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '14': $date_range = CommonUtils::get_month_date_range('previous'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '15': $date_range = CommonUtils::get_month_date_range('current'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '16': $date_range = CommonUtils::get_month_date_range('next'); $date_where = " AND " . $where_field . " between '" . $date_range["start"] . "' AND '" . $date_range["end"] . "'"; break; case '17': $date_where = " AND " . $where_field . " between date_sub(curdate(),interval 7 day) and date_sub(curdate(),interval 1 day)"; break; case '18': $date_where = " AND " . $where_field . " between date_sub(curdate(),interval 30 day) and date_sub(curdate(),interval 1 day)"; break; case '19': $date_where = " AND " . $where_field . " between date_sub(curdate(),interval 60 day) and date_sub(curdate(),interval 1 day)"; break; case '20': $date_where = " AND " . $where_field . " between date_sub(curdate(),interval 90 day) and date_sub(curdate(),interval 1 day)"; break; case '21': $date_where = " AND " . $where_field . " between date_add(curdate(),interval 1 day) and date_add(curdate(),interval 7 day)"; break; case '22': $date_where = " AND " . $where_field . " between date_add(curdate(),interval 1 day) and date_add(curdate(),interval 30 day)"; break; case '23': $date_where = " AND " . $where_field . " between date_add(curdate(),interval 1 day) and date_add(curdate(),interval 60 day)"; break; case '24': $date_where = " AND " . $where_field . " between date_add(curdate(),interval 1 day) and date_add(curdate(),interval 90 day)"; break; } } return $date_where; }
} else { $report_query = $do_report->execute_report($sqcrm_record_id); //echo $report_query; $do_report->query($report_query); } //echo $report_query;exit; $report_modules = $do_report->get_report_modules(); $date_filters = $do_report_filter->get_date_filter_fields($report_modules["primary"]["idmodule"], $report_modules["secondary"]["idmodule"]); $date_filter_options = $do_report_filter->get_date_filter_options(); $saved_date_filter = array(); $custom_date_filter_values = false; if (isset($_REQUEST["runtime"]) && (int) $_REQUEST["runtime"] == 1) { if ($_REQUEST["report_date_field_type_runtime"] == 1) { $custom_date_filter_values = true; } $saved_date_filter = array("idfield" => $_REQUEST["report_date_field_runtime"], "filter_type" => $_REQUEST["report_date_field_type_runtime"], "start_date" => FieldType9::convert_before_save($_REQUEST["report_date_start_runtime"]), "end_date" => FieldType9::convert_before_save($_REQUEST["report_date_end_runtime"])); } else { $saved_date_filter_qry = $do_report_filter->get_saved_date_filter(); $do_report_filter->query($saved_date_filter_qry, array($sqcrm_record_id)); if ($do_report_filter->getNumRows() > 0) { $do_report_filter->next(); if ($do_report_filter->filter_type == 1) { $custom_date_filter_values = true; } $saved_date_filter = array("idfield" => $do_report_filter->idfield, "filter_type" => $do_report_filter->filter_type, "start_date" => $do_report_filter->start_date, "end_date" => $do_report_filter->end_date); } else { $custom_date_filter_values = true; } } $date_range_display = 'style="display:block;margin-left:3px;"'; if (false === $custom_date_filter_values) {
/** * function to get the recurrent dates * @param object $evctl * @return array containing the recurrent dates */ public function get_recurrent_dates($evctl) { $recurrent_options = (int) $evctl->recurrent_options; $this->set_recurrent_option_selected($recurrent_options); $repeat_end_type = (int) $evctl->repeat_end_opts; $this->set_repeat_end_type($repeat_end_type); if ($repeat_end_type == 1) { $repeat_end = (int) $evctl->repeat_end_num_occurence; $this->set_repeat_end_num_occurence($repeat_end); } elseif ($repeat_end_type == 2) { $repeat_end = $evctl->repeat_end_date; $this->set_repeat_end_date($repeat_end); } $start_date = FieldType9::convert_before_save($evctl->start_date); switch ($recurrent_options) { case 1: $this->set_repeat_freq_opts((int) $evctl->repeat_freq_opts); return $this->get_recurrent_dates_daily($start_date); break; case 2: return $this->get_recurrent_dates_weekdays($start_date); break; case 3: return $this->get_recurrent_dates_mon_wed_fri($start_date); break; case 4: return $this->get_recurrent_dates_tue_thu($start_date); break; case 5: $this->set_repeat_freq_opts((int) $evctl->repeat_freq_opts); $this->set_repeat_week_week_opts($evctl->weekly_opts); return $this->get_recurrent_dates_weekly($start_date); break; case 6: $this->set_repeat_freq_opts((int) $evctl->repeat_freq_opts); $this->set_repeat_monthly_opts((int) $evctl->repeat_monthly_opts); if ((int) $evctl->repeat_monthly_opts == 1) { $this->set_repeat_monthly_opts_days((int) $evctl->repeat_monthly_opts_days); } elseif ((int) $evctl->repeat_monthly_opts == 2) { $this->set_repeat_monthly_opts_week_freq($evctl->repeat_monthly_opts_week_freq); $this->set_repeat_monthly_opts_week_weekdays($evctl->repeat_monthly_opts_week_weekdays); } return $this->get_recurrent_dates_monthly($start_date); break; case 7: $this->set_repeat_freq_opts((int) $evctl->repeat_freq_opts); return $this->get_recurrent_dates_yearly($start_date); break; } }
/** * event function to add an entity to queue * @param object $evctl * @return string */ public function eventAjaxAddQueue(EventControler $evctl) { if (trim($evctl->date) != '' && (int) $evctl->related_module_id > 0 && (int) $evctl->related_record_id > 0) { $user_timezone = $_SESSION['do_user']->user_timezone; $date = FieldType9::convert_before_save($evctl->date); $today = TimeZoneUtil::get_user_timezone_date($user_timezone); $todayDateObj = new DateTime($today); $queueDateObj = new DateTime($date); $diff = $todayDateObj->diff($queueDateObj); $day_diff = $diff->format('%R%a'); if ($day_diff < 0) { echo _('Older date for queue is not allowed !'); } else { $this->addNew(); $this->sqcrm_record_id = (int) $evctl->related_record_id; $this->related_module_id = (int) $evctl->related_module_id; $this->iduser = $_SESSION['do_user']->iduser; $this->queue_date = $date; $this->add(); echo '1'; } } else { echo _('Missing module id , date or record id to be added in queue !'); } }
/** * event function to set the form data step wise on add/edit * sets the values in $_SESSION * @param object $evctl */ public function eventSetReportData(EventControler $evctl) { $step = (int) $evctl->step; switch ($step) { case 1: $next_step = $step + 1; $_SESSION["report_type"] = $evctl->report_type; $_SESSION["primary_module"] = ''; $_SESSION["secondary_module"] = ''; $_SESSION["report_fields"] = ''; $_SESSION["report_fields_data"] = ''; if ($evctl->mode == "edit") { $next_page = NavigationControl::getNavigationLink("Report", "edit"); $dis = new Display($next_page); $dis->addParam("sqrecord", $evctl->sqrecord); } else { $next_page = NavigationControl::getNavigationLink("Report", "add"); $dis = new Display($next_page); } $dis->addParam("step", $next_step); $evctl->setDisplayNext($dis); break; case 2: $next_step = $step + 1; $_SESSION["primary_module"] = $evctl->primary_module; $_SESSION["secondary_module"] = ''; $_SESSION["report_fields"] = ''; $_SESSION["report_fields_data"] = ''; if ($evctl->mode == "edit") { $next_page = NavigationControl::getNavigationLink("Report", "edit"); $dis = new Display($next_page); $dis->addParam("sqrecord", $evctl->sqrecord); } else { $next_page = NavigationControl::getNavigationLink("Report", "add"); $dis = new Display($next_page); } $dis->addParam("step", $next_step); $evctl->setDisplayNext($dis); break; case 3: $next_step = $step + 1; $_SESSION["secondary_module"] = $evctl->secondary_module; $_SESSION["report_fields"] = ''; $_SESSION["report_fields_data"] = ''; if ($evctl->mode == "edit") { $next_page = NavigationControl::getNavigationLink("Report", "edit"); $dis = new Display($next_page); $dis->addParam("sqrecord", $evctl->sqrecord); } else { $next_page = NavigationControl::getNavigationLink("Report", "add"); $dis = new Display($next_page); } $dis->addParam("step", $next_step); $evctl->setDisplayNext($dis); break; case 4: $next_step = $step + 1; $_SESSION["report_fields"] = $evctl->report_fields; $_SESSION["report_order_by"] = ''; if ($evctl->mode == "edit") { $next_page = NavigationControl::getNavigationLink("Report", "edit"); $dis = new Display($next_page); $dis->addParam("sqrecord", $evctl->sqrecord); } else { $next_page = NavigationControl::getNavigationLink("Report", "add"); $dis = new Display($next_page); } $dis->addParam("step", $next_step); $evctl->setDisplayNext($dis); break; case 5: $next_step = $step + 1; $report_order_by = array("order_by_1" => array("order_by_field" => $evctl->report_order_by_1, "order_by_type" => $evctl->report_order_by_type_1), "order_by_2" => array("order_by_field" => $evctl->report_order_by_2, "order_by_type" => $evctl->report_order_by_type_2), "order_by_3" => array("order_by_field" => $evctl->report_order_by_3, "order_by_type" => $evctl->report_order_by_type_3)); $_SESSION["report_order_by"] = $report_order_by; if ($evctl->mode == "edit") { $next_page = NavigationControl::getNavigationLink("Report", "edit"); $dis = new Display($next_page); $dis->addParam("sqrecord", $evctl->sqrecord); } else { $next_page = NavigationControl::getNavigationLink("Report", "add"); $dis = new Display($next_page); } $dis->addParam("step", $next_step); $evctl->setDisplayNext($dis); break; case 6: $next_step = $step + 1; $report_filter_options = array("date_filter_options" => array("report_date_field" => $evctl->report_date_field, "report_date_field_type" => $evctl->report_date_field_type, "report_date_start" => FieldType9::convert_before_save($evctl->report_date_start), "report_date_end" => FieldType9::convert_before_save($evctl->report_date_end)), "advanced_filter_options" => array("report_adv_fields_1" => $evctl->report_adv_fields_1, "report_adv_fields_type_1" => $evctl->report_adv_fields_type_1, "report_adv_fields_val_1" => $_POST["report_adv_fields_val_1"], "report_adv_fields_2" => $evctl->report_adv_fields_2, "report_adv_fields_type_2" => $evctl->report_adv_fields_type_2, "report_adv_fields_val_2" => $_POST["report_adv_fields_val_2"], "report_adv_fields_3" => $evctl->report_adv_fields_3, "report_adv_fields_type_3" => $evctl->report_adv_fields_type_3, "report_adv_fields_val_3" => $_POST["report_adv_fields_val_3"], "report_adv_fields_4" => $evctl->report_adv_fields_4, "report_adv_fields_type_4" => $evctl->report_adv_fields_type_4, "report_adv_fields_val_4" => $_POST["report_adv_fields_val_4"], "report_adv_fields_5" => $evctl->report_adv_fields_5, "report_adv_fields_type_5" => $evctl->report_adv_fields_type_5, "report_adv_fields_val_5" => $_POST["report_adv_fields_val_5"])); $_SESSION["report_filter"] = $report_filter_options; if ($evctl->mode == "edit") { $next_page = NavigationControl::getNavigationLink("Report", "edit"); $dis = new Display($next_page); $dis->addParam("sqrecord", $evctl->sqrecord); } else { $next_page = NavigationControl::getNavigationLink("Report", "add"); $dis = new Display($next_page); } $dis->addParam("step", $next_step); $evctl->setDisplayNext($dis); break; } }
/** * function to update the custom view date filter * @param integer $idcustom_view * @param integer $idfield * @param integer $filter_type * @param string $start_date * @param string $end_date * @return void */ public function update_custom_view_date_filter($idcustom_view, $idfield, $filter_type, $start_date, $end_date) { $qry = "\n\t\tselect * from `custom_view_date_filter`\n\t\twhere `idcustom_view` = ?\n\t\t"; $this->query($qry, array($idcustom_view)); if ($this->getNumRows() > 0) { if ((int) $idfield > 0 && (int) $filter_type > 0) { $cv_start_date = ''; $cv_end_date = ''; if ($start_date != '' && $end_date != '') { $cv_start_date = FieldType9::convert_before_save($start_date); $cv_end_date = FieldType9::convert_before_save($end_date); } $qry = "\n\t\t\t\tupdate `custom_view_date_filter`\n\t\t\t\t`idfield` = ?,\n\t\t\t\t`filter_type` = ?,\n\t\t\t\t`start_date` = ?,\n\t\t\t\t`end_date` = ?\n\t\t\t\twhere \n\t\t\t\t`idcustom_view` = ?\n\t\t\t\t"; $this->query($idfield, $filter_type, $cv_start_date, $cv_end_date, $idcustom_view); } } else { $this->add_custom_view_date_filter($idfield, $filter_type, $cv_start_date, $cv_end_date, $idcustom_view); } }
/** * function to create a new potential at the time of conversion * @param object $evctl * @param array $assigned_to_data * @param integer $related_to * @param integer $related_to_module * @return integer $idpotentials */ public function create_new_potential_converted($evctl, $assigned_to_data, $related_to, $related_to_module) { $this->insert("potentials", array("potential_name" => $evctl->potential_name, "expected_closing_date" => FieldType9::convert_before_save($evctl->expected_closing_date), "sales_stage" => $evctl->sales_stage, "probability" => $evctl->probability, "amount" => FieldType30::convert_before_save($evctl->amount), "iduser" => $assigned_to_data["value"], "added_on" => date("Y-m-d H:i:s"), "lost_reason" => $evctl->lost_reason, "competitor_name" => $evctl->competitor_name)); $idpotentials = $this->getInsertId(); $this->insert("potentials_custom_fld", array("idpotentials" => $idpotentials)); $this->insert("potentials_related_to", array("idpotentials" => $idpotentials, "related_to" => $related_to, "idmodule" => $related_to_module)); return $idpotentials; }