public function generateControlPanelHTML($cp_array, &$messages) { $string = ''; // Amount of active deals should be shown. $query = 'SELECT count(id) AS amount FROM deal WHERE status = 1'; $result = $this->db->select($query); $active = $result[0]['amount']; foreach ($cp_array as $index => $row) { $request_params = array(); $request_params['class_name'] = 'ajax_accounting_modules_AjaxControlPanel'; $request_params['action'] = $row['action']; $request_params = json_encode($request_params); $options = array(); $options['id'] = 'btn_cp_' . $index; $options['css_class'] = 'btn btn-primary btn-block'; $options['onclick'] = 'ajax_request(' . $request_params . ')'; $options['content'] = $row['button_name']; if ($row['action'] === 'show_deals') { $options['content'] .= ' <span id=\'deals_badge\' class=\'badge\'>' . $active . '</span>'; } $button = new html_elements_Button($options); $string .= $button->generateButtonHTML(); } return $string; }
public function showDeals() { $buttonHTML = ''; $contentHTML = ''; // This will be fired each time the deals are saved. $script = '$("#deals_table").tableConstructor(\'DealTable\', true);'; // Amount of active deals should be shown. $query = 'SELECT count(id) AS amount FROM deal WHERE status = 1'; $activeAmount = $this->db->select($query)[0]['amount']; $script .= '$(\'#deals_badge\').text(\'' . $activeAmount . '\');'; // Add button on the bottom of control panel. $request_params['class_name'] = 'ajax_accounting_AjaxDeal'; $request_params['action'] = 'generate_form'; $request_params = json_encode($request_params); $options = array(); $options['id'] = 'add_deal_button'; $options['css_class'] = 'btn btn-default btn-block btn-info text-left'; $options['onclick'] = 'ajax_request(' . $request_params . ')'; $options['content'] = '<span class=\'glyphicon glyphicon-plus\' aria-hidden=\'true\'> </span>Добавить'; $button = new html_elements_Button($options); $buttonHTML .= $button->generateButtonHTML(); // Add table with all payments. $contentHTML .= '<h2>Сделки</h2>'; $contentHTML .= '<table id=\'deals_table\' class=\'table table-hover table-striped\'></table>'; $response[0]['id'] = 'extra_button'; $response[0]['html'] = $buttonHTML; $response[1]['id'] = 'extra_content'; $response[1]['html'] = ''; $response[2]['id'] = 'content'; $response[2]['html'] = $contentHTML; $response['script'] = $script; return $response; }
public function generateCustomerForm() { $id = 0; $last_name = ''; $first_name = ''; $middle_name = ''; $nick_name = ''; $email = ''; $extras = ''; $country = ''; $zip_code = ''; $city = ''; $street = ''; $street_number = ''; $room_number = ''; $phone = ''; $action = 'add_customer'; // If an existing id was passed then we need to edit an object. if (array_key_exists('id', $this->params) === TRUE && (int) $this->params['id'] > 0) { $id = (int) $this->params['id']; $action = 'edit_customer'; } if (array_key_exists('row_data', $this->params) === TRUE) { if (array_key_exists('last_name', $this->params['row_data']) === TRUE) { $last_name = $this->params['row_data']['last_name']; } if (array_key_exists('first_name', $this->params['row_data']) === TRUE) { $first_name = $this->params['row_data']['first_name']; } if (array_key_exists('middle_name', $this->params['row_data']) === TRUE) { $middle_name = $this->params['row_data']['middle_name']; } if (array_key_exists('nick_name', $this->params['row_data']) === TRUE) { $nick_name = $this->params['row_data']['nick_name']; } if (array_key_exists('email', $this->params['row_data']) === TRUE) { $email = $this->params['row_data']['email']; } if (array_key_exists('extras', $this->params['row_data']) === TRUE) { $extras = $this->params['row_data']['extras']; } if (array_key_exists('country', $this->params['row_data']) === TRUE) { $country = $this->params['row_data']['country']; } if (array_key_exists('zip_code', $this->params['row_data']) === TRUE) { $zip_code = $this->params['row_data']['zip_code']; } if (array_key_exists('city', $this->params['row_data']) === TRUE) { $city = $this->params['row_data']['city']; } if (array_key_exists('street', $this->params['row_data']) === TRUE) { $street = $this->params['row_data']['street']; } if (array_key_exists('street_number', $this->params['row_data']) === TRUE) { $street_number = $this->params['row_data']['street_number']; } if (array_key_exists('room_number', $this->params['row_data']) === TRUE) { $room_number = $this->params['row_data']['room_number']; } if (array_key_exists('phone', $this->params['row_data']) === TRUE) { $phone = $this->params['row_data']['phone']; } } $options = array(); $options['id'] = 'add_button'; $options['css_class'] = 'btn btn-default btn-add'; $options['onclick'] = 'addCustomer()'; $options['content'] = 'Сохранить'; $button = new html_elements_Button($options); $buttonHTML = ''; $buttonHTML = $button->generateButtonHTML(); $string = ' <form class="form-horizontal" method="post" action="ajax.php"> <div class="form-group"> <label for="input_last_name" class="col-sm-2 control-label">Фамилия</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_last_name" name="input_last_name" placeholder=\'Фамилия\' value=\'' . $last_name . '\'> </div> </div> <div class="form-group"> <label for="input_first_name" class="col-sm-2 control-label">Имя</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_first_name" name="input_first_name" placeholder=\'Имя\' value=\'' . $first_name . '\'> </div> </div> <div class="form-group"> <label for="input_middle_name" class="col-sm-2 control-label">Отчество</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_middle_name" name="input_middle_name" placeholder=\'Отчество\' value=\'' . $middle_name . '\'> </div> </div> <div class="form-group"> <label for="input_nick_name" class="col-sm-2 control-label">Ник</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_nick_name" name="input_nick_name" placeholder=\'Ник\' value=\'' . $nick_name . '\'> </div> </div> <div class="form-group"> <label for="input_email" class="col-sm-2 control-label">email</label> <div class="col-sm-6"> <input type="email" class="form-control" id="input_email" name="input_email" placeholder=\'email\' value=\'' . $email . '\'> </div> </div> <div class="form-group"> <label for="input_extras" class="col-sm-2 control-label">Доп. инфо</label> <div class="col-sm-6"> <input type="email" class="form-control" id="input_extras" name="input_extras" placeholder=\'Доп. инфо\' value=\'' . $extras . '\'> </div> </div> <!-- Address --> <div class="form-group"> <label for="input_country" class="col-sm-2 control-label">Страна</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_country" name="input_country" placeholder=\'Страна\' value=\'' . $country . '\'> </div> </div> <div class="form-group"> <label for="input_zip_code" class="col-sm-2 control-label">ZIP</label> <div class="col-sm-6"> <input type="number" class="form-control" id="input_zip_code" name="input_zip_code" placeholder=\'ZIP\' value=\'' . $zip_code . '\'> </div> </div> <div class="form-group"> <label for="input_city" class="col-sm-2 control-label">Город</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_city" name="input_city" placeholder=\'Город\' value=\'' . $city . '\'> </div> </div> <div class="form-group"> <label for="input_street" class="col-sm-2 control-label">Улица</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_street" name="input_street" placeholder=\'Улица\' value=\'' . $street . '\'> </div> </div> <div class="form-group"> <label for="input_street_number" class="col-sm-2 control-label">Номер дома</label> <div class="col-sm-6"> <input type="number" class="form-control" id="input_street_number" name="input_street_number" placeholder=\'Номер дома\' value=\'' . $street_number . '\'> </div> </div> <div class="form-group"> <label for="input_room_number" class="col-sm-2 control-label">Квартира</label> <div class="col-sm-6"> <input type="number" class="form-control" id="input_room_number" name="input_room_number" placeholder=\'Квартира\' value=\'' . $room_number . '\'> </div> </div> <div class="form-group"> <label for="input_phone" class="col-sm-2 control-label">Телефон</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_phone" name="input_phone" placeholder=\'Телефон\' value=\'' . $phone . '\'> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> ' . $buttonHTML . ' </div> </div> </form>'; $script = ' function addCustomer() { var last_name = $(\'#input_last_name\').val(); var first_name = $(\'#input_first_name\').val(); var middle_name = $(\'#input_middle_name\').val(); var nick_name = $(\'#input_nick_name\').val(); var email = $(\'#input_email\').val(); var extras = $(\'#input_extras\').val(); var country = $(\'#input_country\').val(); var zip_code = $(\'#input_zip_code\').val(); var city = $(\'#input_city\').val(); var street = $(\'#input_street\').val(); var street_number = $(\'#input_street_number\').val(); var room_number = $(\'#input_room_number\').val(); var phone = $(\'#input_phone\').val(); ajax_request( { "id": \'' . $id . '\', "class_name": "ajax_accounting_AjaxCustomer", "action": \'' . $action . '\', "last_name": last_name, "first_name": first_name, "middle_name": middle_name, "nick_name": nick_name, "email": email, "extras": extras, "country": country, "zip_code": zip_code, "city": city, "street": street, "street_number": street_number, "room_number": room_number, "phone": phone, } ); }'; $response[0]['id'] = 'extra_content'; $response[0]['html'] = $string; $response['script'] = $script; return $response; }
public function generateDealForm() { $id = 0; $article_id = 0; $customer_id = 0; $amount = 0; $total_price = 0.0; $platform_name = ''; $commented = FALSE; $extras = ''; $status = 1; $action = 'add_deal'; // If an existing id was passed then we need to edit an object. if (array_key_exists('id', $this->params) === TRUE && (int) $this->params['id'] > 0) { $id = (int) $this->params['id']; $action = 'edit_deal'; } if (array_key_exists('row_data', $this->params) === TRUE) { if (array_key_exists('customer_id', $this->params['row_data']) === TRUE) { $customer_id = $this->params['row_data']['customer_id']; } if (array_key_exists('article_id', $this->params['row_data']) === TRUE) { $article_id = $this->params['row_data']['article_id']; } if (array_key_exists('amount', $this->params['row_data']) === TRUE) { $amount = $this->params['row_data']['amount']; } if (array_key_exists('total_price', $this->params['row_data']) === TRUE) { $total_price = $this->params['row_data']['total_price']; } if (array_key_exists('platform_name', $this->params['row_data']) === TRUE) { $platform_name = $this->params['row_data']['platform_name']; } if (array_key_exists('commented', $this->params['row_data']) === TRUE) { // If there is a success word in the span . if (strpos($this->params['row_data']['commented'], 'success') !== FALSE) { $commented = TRUE; } else { $commented = FALSE; } } if (array_key_exists('extras', $this->params['row_data']) === TRUE) { $extras = $this->params['row_data']['extras']; } if (array_key_exists('status', $this->params['row_data']) === TRUE) { // If there is a success word in the span . if (strpos($this->params['row_data']['status'], 'success') !== FALSE) { $status = 2; } else { if (strpos($this->params['row_data']['status'], 'warning') !== FALSE) { $status = 1; } else { $status = 0; } } } } $options = array(); $options['id'] = 'add_button'; $options['css_class'] = 'btn btn-default btn-add'; $options['onclick'] = 'addDeal()'; $options['content'] = 'Сохранить'; $button = new html_elements_Button($options); $buttonHTML = ''; $buttonHTML = $button->generateButtonHTML(); $customer = new objects_Customer(); $customersSelectFieldArray = $customer->getSelectFieldArray(); if ($customersSelectFieldArray['result'] === FALSE) { $response['messages']['danger'] = $customersSelectFieldArray['error']; return $response; } $selectField = new html_elements_SelectField('input_customer_id', 'input_customer_id', 'form-control', $customer_id); $customersHTML = $selectField->generateHTML($customersSelectFieldArray['result']); $article = new objects_Article(); $articlesSelectFieldArray = $article->getSelectFieldArray(); if ($articlesSelectFieldArray['result'] === FALSE) { $response['messages']['danger'] = $articlesSelectFieldArray['error']; return $response; } $selectField = new html_elements_SelectField('input_article_id', 'input_article_id', 'form-control', $article_id); $articlesHTML = $selectField->generateHTML($articlesSelectFieldArray['result']); $checkbox = new html_elements_Checkbox('input_commented', 'input_commented', 'form-control', $commented); $commentedHTML = $checkbox->generateCheckboxHTML(); $statusSelectFieldArray = array(); $statusSelectFieldArray[] = array('id' => '0', 'sf_option' => 'Сделка не состоялась'); $statusSelectFieldArray[] = array('id' => '1', 'sf_option' => 'В работе'); $statusSelectFieldArray[] = array('id' => '2', 'sf_option' => 'Прошла успешно'); $selectField = new html_elements_SelectField('input_status', 'input_status', 'form-control', $status); $statusHTML = $selectField->generateHTML($statusSelectFieldArray); $string = ' <form class="form-horizontal" method="post" action="ajax.php"> <div class="form-group"> <label for="input_customer_id" class="col-sm-2 control-label">Покупатель</label> <div class="col-sm-6">' . $customersHTML . '</div> </div> <div class="form-group"> <label for="input_article_id" class="col-sm-2 control-label">Товар</label> <div class="col-sm-6">' . $articlesHTML . '</div> </div> <div class="form-group"> <label for="input_amount" class="col-sm-2 control-label">Количество, шт.</label> <div class="col-sm-6"> <input type="number" class="form-control" id="input_amount" name="input_amount" placeholder="Количество, шт." value=\'' . $amount . '\'> </div> </div> <div class="form-group"> <label for="input_total_price" class="col-sm-2 control-label">Сумма</label> <div class="col-sm-6"> <input type="number" class="form-control" id="input_total_price" name="input_total_price" placeholder="Сумма" value=\'' . $total_price . '\'> </div> </div> <div class="form-group"> <label for="input_platform_name" class="col-sm-2 control-label">Платформа</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_platform_name" name="input_platform_name" placeholder="Платформа" value=\'' . $platform_name . '\'> </div> </div> <div class="form-group"> <label for="input_commented" class="col-sm-2 control-label">Отзыв</label> <div class="col-sm-6"> ' . $commentedHTML . ' </div> </div> <div class="form-group"> <label for="input_extras" class="col-sm-2 control-label">Доп. информация</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_extras" name="input_extras" placeholder="Доп. информация" value=\'' . $extras . '\'> </div> </div> <div class="form-group"> <label for="input_status" class="col-sm-2 control-label">Статус</label> <div class="col-sm-6">' . $statusHTML . '</div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> ' . $buttonHTML . ' </div> </div> </form>'; $script = ' function addDeal() { var customer_id = $(\'#input_customer_id\').val(); var article_id = $(\'#input_article_id\').val(); var amount = $(\'#input_amount\').val(); var total_price = $(\'#input_total_price\').val(); var platform_name = $(\'#input_platform_name\').val(); if ($(\'#input_commented\').is(\':checked\')) { var commented = 1; } else { var commented = 0; } var status = $(\'#input_status\').val(); var extras = $(\'#input_extras\').val(); ajax_request( { "id": \'' . $id . '\', "class_name": "ajax_accounting_AjaxDeal", "action": \'' . $action . '\', "customer_id": customer_id, "article_id": article_id, "amount": amount, "total_price": total_price, "platform_name": platform_name, "commented": commented, "status": status, "extras": extras } ); }'; $response[0]['id'] = 'extra_content'; $response[0]['html'] = $string; $response['script'] = $script; return $response; }
public function generateShipmentForm() { $id = 0; $number = 0; $date = ''; $transport_charge = 0.0; $extras = ''; $action = 'add_shipment'; // If an existing id was passed then we need to edit an object. if (array_key_exists('id', $this->params) === TRUE && (int) $this->params['id'] > 0) { $id = (int) $this->params['id']; $action = 'edit_shipment'; } if (array_key_exists('row_data', $this->params) === TRUE) { if (array_key_exists('date', $this->params['row_data']) === TRUE) { $date = $this->params['row_data']['date']; } if (array_key_exists('number', $this->params['row_data']) === TRUE) { $number = $this->params['row_data']['number']; } if (array_key_exists('transport_charge', $this->params['row_data']) === TRUE) { $transport_charge = $this->params['row_data']['transport_charge']; } if (array_key_exists('extras', $this->params['row_data']) === TRUE) { $extras = $this->params['row_data']['extras']; } } $options = array(); $options['id'] = 'add_button'; $options['css_class'] = 'btn btn-default btn-add'; $options['onclick'] = 'addShipment()'; $options['content'] = 'Сохранить'; $button = new html_elements_Button($options); $buttonHTML = ''; $buttonHTML = $button->generateButtonHTML(); $string = ' <form class="form-horizontal" method="post" action="ajax.php"> <div class="form-group"> <label for="input_number" class="col-sm-2 control-label">Номер отправления</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_number" name="input_number" placeholder="Номер" value=\'' . $number . '\'> </div> </div> <div class="form-group"> <label for="input_date" class="col-sm-2 control-label">Дата</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_date" name="input_date" placeholder="Дата" value=\'' . $date . '\'> </div> </div> <div class="form-group"> <label for="input_transport_charge" class="col-sm-2 control-label">Транспортные расходы</label> <div class="col-sm-6"> <input type="number" class="form-control" id="input_transport_charge" name="input_transport_charge" placeholder="Транспортные расходы" value=\'' . $transport_charge . '\'> </div> </div> <div class="form-group"> <label for="input_extras" class="col-sm-2 control-label">Доп. инфо</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_extras" name="input_extras" placeholder="Доп. инфо" value=\'' . $extras . '\'> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> ' . $buttonHTML . ' </div> </div> </form>'; $script = ' function addShipment() { var date = $(\'#input_date\').val(); var number = $(\'#input_number\').val(); var transport_charge = $(\'#input_transport_charge\').val(); var extras = $(\'#input_extras\').val(); ajax_request( { "id": \'' . $id . '\', "class_name": "ajax_accounting_AjaxShipment", "action": \'' . $action . '\', "date": date, "number": number, "transport_charge": transport_charge, "extras": extras, } ); }'; $response[0]['id'] = 'extra_content'; $response[0]['html'] = $string; $response['script'] = $script; return $response; }
public function generatePaymentForm() { $id = 0; $date = date("d.m.Y"); $paid_amount = ''; $bank_name = ''; $extras = ''; $action = 'add_payment'; // If an existing id was passed then we need to edit an object. if (array_key_exists('id', $this->params) === TRUE && (int) $this->params['id'] > 0) { $id = (int) $this->params['id']; $action = 'edit_payment'; } if (array_key_exists('row_data', $this->params) === TRUE) { if (array_key_exists('date', $this->params['row_data']) === TRUE) { $date = $this->params['row_data']['date']; } if (array_key_exists('paid_amount', $this->params['row_data']) === TRUE) { $paid_amount = $this->params['row_data']['paid_amount']; } if (array_key_exists('bank_name', $this->params['row_data']) === TRUE) { $bank_name = $this->params['row_data']['bank_name']; } if (array_key_exists('extras', $this->params['row_data']) === TRUE) { $extras = $this->params['row_data']['extras']; } } $options = array(); $options['id'] = 'add_button'; $options['css_class'] = 'btn btn-default btn-add'; $options['onclick'] = 'addPayment()'; $options['content'] = 'Сохранить'; $button = new html_elements_Button($options); $buttonHTML = ''; $buttonHTML = $button->generateButtonHTML(); $string = ' <form class="form-horizontal" method="post" action="ajax.php"> <div class="form-group"> <label for="input_date" class="col-sm-2 control-label">Дата</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_date" name="input_date" placeholder="Дата" value=\'' . $date . '\'> </div> </div> <div class="form-group"> <label for="input_paid_amount" class="col-sm-2 control-label">Оплаченная сумма</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_paid_amount" name="input_paid_amount" placeholder="Оплаченная сумма" value=\'' . $paid_amount . '\'> </div> </div> <div class="form-group"> <label for="input_bank_name" class="col-sm-2 control-label">Банк</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_bank_name" name="input_bank_name" placeholder="Банк" value=\'' . $bank_name . '\'> </div> </div> <div class="form-group"> <label for="input_extras" class="col-sm-2 control-label">Доп. условия</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_extras" name="input_extras" placeholder="Доп. условия" value=\'' . $extras . '\'> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> ' . $buttonHTML . ' </div> </div> </form>'; $script = ' function addPayment() { var date = $(\'#input_date\').val(); var paid_amount = $(\'#input_paid_amount\').val(); var bank_name = $(\'#input_bank_name\').val(); var extras = $(\'#input_extras\').val(); ajax_request( { "id": \'' . $id . '\', "class_name": "ajax_accounting_AjaxPayment", "action": \'' . $action . '\', "date": date, "paid_amount": paid_amount, "bank_name": bank_name, "extras": extras } ); }'; $response[0]['id'] = 'extra_content'; $response[0]['html'] = $string; $response['script'] = $script; return $response; }
public function generateArticleForm() { $id = 0; $name = ''; $price = 0; $extras = ''; $action = 'add_article'; // If an existing id was passed then we need to edit an object. if (array_key_exists('id', $this->params) === TRUE && (int) $this->params['id'] > 0) { $id = (int) $this->params['id']; $action = 'edit_article'; } if (array_key_exists('row_data', $this->params) === TRUE) { if (array_key_exists('name', $this->params['row_data']) === TRUE) { $name = $this->params['row_data']['name']; } if (array_key_exists('price', $this->params['row_data']) === TRUE) { $price = $this->params['row_data']['price']; } if (array_key_exists('extras', $this->params['row_data']) === TRUE) { $extras = $this->params['row_data']['extras']; } } $options = array(); $options['id'] = 'add_button'; $options['css_class'] = 'btn btn-default btn-add'; $options['onclick'] = 'addArticle()'; $options['content'] = 'Сохранить'; $button = new html_elements_Button($options); $saveButtonHTML = ''; $saveButtonHTML = $button->generateButtonHTML(); $string = ' <form class="form-horizontal" method="post" action="ajax.php" enctype="multipart/form-data"> <div class="form-group"> <label for="input_name" class="col-sm-2 control-label">Название</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_name" name="input_name" placeholder="Название" value=\'' . $name . '\'> </div> </div> <div class="form-group"> <label for="input_price" class="col-sm-2 control-label">Себестоимость</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_price" name="input_price" placeholder="Себестоимость" value=\'' . $price . '\'> </div> </div> <div class="form-group"> <label for="input_extras" class="col-sm-2 control-label">Доп. инфо</label> <div class="col-sm-6"> <input type="text" class="form-control" id="input_extras" name="input_extras" placeholder="Доп. инфо" value=\'' . $extras . '\'> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> ' . $saveButtonHTML . ' </div> </div> </form>'; $script = ' function addArticle() { var name = $(\'#input_name\').val(); var price = $(\'#input_price\').val(); var extras = $(\'#input_extras\').val(); ajax_request( { "id": \'' . $id . '\', "class_name": "ajax_accounting_AjaxArticle", "action": \'' . $action . '\', "name": name, "price": price, "extras": extras } ); }'; $response[0]['id'] = 'extra_content'; $response[0]['html'] = $string; $response['script'] = $script; return $response; }