/**
  * 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));
     }
 }
Exemple #2
0
 /**
  * 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;
     }
 }
Exemple #5
0
 /**
  * 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 !');
     }
 }
Exemple #6
0
 /**
  * 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);
     }
 }
Exemple #8
0
 /**
  * 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;
 }