Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

При редактировании заказа - затирается поле "Компания"


BeTep2

Recommended Posts

Добрый вечер,

 

ранее не пользовался этим полем, соответственно не замечал подобного.

При изменении заказа в админке, сразу после открытия формы updateorder затирается значение поля "Компания".

В /admin/controller/sale/order.php никаких правил для этого поля не добавлял, из родных тоже вроде ничего не нашел. В /model/controller/sale/order.php все дефолтное.

 

Если заказ не изменять в админке, все нормально, оно коректно записывается\формируется и т.д. Но как только заходишь в изменение заказа - заменяется на пустое.

Честно говоря не знаю даже куда копать.

Подскажите кто сталкивался, возможно были аналогичные случаи. Спасибо.

Надіслати
Поділитися на інших сайтах


чудес не бывает

либо все же вносили изменения в файлы, либо что-то их меняет (например мод какой-нибудь если vqmod есть)

 

в первом случае пробуйте заменить файлы

admin\controller\sale\order.php

admin\model\sale\order.php

оригинальными из дистрибутива (только копии своих сделайте на всякий)

если проблема исчезнет - дело в изменениях, сравнивайте файлы со своими на предмет отличий

 

во втором - достаточно проверить наличие этих измененных файлов в кеше vqmod

если в папке vqmod/vqcache есть файлы

vq2-admin_controller_sale_order.php

vq2-admin_model_sale_order.php

- значит какой-то мод вносит в них изменения, смотрите сами файлы, ищите виновника

Надіслати
Поділитися на інших сайтах

чудес не бывает

либо все же вносили изменения в файлы, либо что-то их меняет (например мод какой-нибудь если vqmod есть)

 

в первом случае пробуйте заменить файлы

admin\controller\sale\order.php

admin\model\sale\order.php

оригинальными из дистрибутива (только копии своих сделайте на всякий)

если проблема исчезнет - дело в изменениях, сравнивайте файлы со своими на предмет отличий

 

во втором - достаточно проверить наличие этих измененных файлов в кеше vqmod

если в папке vqmod/vqcache есть файлы

vq2-admin_controller_sale_order.php

vq2-admin_model_sale_order.php

- значит какой-то мод вносит в них изменения, смотрите сами файлы, ищите виновника

 

Изменения конечно вносил, только они не касались company, может что-то завязано на ней? К примеру Фамилия или метод доставки, которые я менял? На глаз не нашел этого..

По сути я частично закомментировал валидацию полей и добавил новые функции аля как invoice только с другими шаблонами и т.д.

То есть единственные значительные изменение это комментирование строк валидации, я кину весь сюда, чтобы было видно что я закоментировал:

private function validateForm() {
    	if (!$this->user->hasPermission('modify', 'sale/order')) {
      		$this->error['warning'] = $this->language->get('error_permission');
    	}

    	if ((utf8_strlen($this->request->post['firstname']) < 1) || (utf8_strlen($this->request->post['firstname']) > 32)) {
      		$this->error['firstname'] = $this->language->get('error_firstname');
    	}

    	/*if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) {
      		$this->error['lastname'] = $this->language->get('error_lastname');
    	}*/

    	if ((utf8_strlen($this->request->post['email']) > 96) || (!preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i', $this->request->post['email']))) {
      		$this->error['email'] = $this->language->get('error_email');
    	}

    	if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {
      		$this->error['telephone'] = $this->language->get('error_telephone');
    	}

			/*if ((utf8_strlen($this->request->post['payment_firstname']) < 1) || (utf8_strlen($this->request->post['payment_firstname']) > 32)) {
      		$this->error['payment_firstname'] = $this->language->get('error_firstname');
    	}*/

    	/*if ((utf8_strlen($this->request->post['payment_lastname']) < 1) || (utf8_strlen($this->request->post['payment_lastname']) > 32)) {
      		$this->error['payment_lastname'] = $this->language->get('error_lastname');
    	}*/

			/*if ((utf8_strlen($this->request->post['payment_address_1']) < 3) || (utf8_strlen($this->request->post['payment_address_1']) > 128)) {
      		$this->error['payment_address_1'] = $this->language->get('error_address_1');
    	}*/

    	/*if ((utf8_strlen($this->request->post['payment_city']) < 3) || (utf8_strlen($this->request->post['payment_city']) > 128)) {
      		$this->error['payment_city'] = $this->language->get('error_city');
    	}*/

		$this->load->model('localisation/country');

		$country_info = $this->model_localisation_country->getCountry($this->request->post['payment_country_id']);

		if ($country_info) {
			if ($country_info['postcode_required'] && (utf8_strlen($this->request->post['payment_postcode']) < 2) || (utf8_strlen($this->request->post['payment_postcode']) > 10)) {
				$this->error['payment_postcode'] = $this->language->get('error_postcode');
			}

			// VAT Validation
			$this->load->helper('vat');

			if ($this->config->get('config_vat') && $this->request->post['payment_tax_id'] && (vat_validation($country_info['iso_code_2'], $this->request->post['payment_tax_id']) != 'invalid')) {
				$this->error['payment_tax_id'] = $this->language->get('error_vat');
			}
		}

			if ($this->request->post['payment_country_id'] == '') {
      		$this->error['payment_country'] = $this->language->get('error_country');
    	}

    	if ($this->request->post['payment_zone_id'] == '') {
      		$this->error['payment_zone'] = $this->language->get('error_zone');
    	}

    	if ($this->request->post['payment_method'] == '') {
      		$this->error['payment_zone'] = $this->language->get('error_zone');
    	}

		if (!$this->request->post['payment_method']) {
			$this->error['payment_method'] = $this->language->get('error_payment');
		}

		// Check if any products require shipping
		$shipping = false;

		if (isset($this->request->post['order_product'])) {
			$this->load->model('catalog/product');

			foreach ($this->request->post['order_product'] as $order_product) {
				$product_info = $this->model_catalog_product->getProduct($order_product['product_id']);

				if ($product_info && $product_info['shipping']) {
					$shipping = true;
				}
			}
		}

		if ($shipping) {
			/*if ((utf8_strlen($this->request->post['shipping_firstname']) < 1) || (utf8_strlen($this->request->post['shipping_firstname']) > 32)) {
				$this->error['shipping_firstname'] = $this->language->get('error_firstname');
			}*/

			/*if ((utf8_strlen($this->request->post['shipping_lastname']) < 1) || (utf8_strlen($this->request->post['shipping_lastname']) > 32)) {
				$this->error['shipping_lastname'] = $this->language->get('error_lastname');
			}*/

			/*if ((utf8_strlen($this->request->post['shipping_address_1']) < 3) || (utf8_strlen($this->request->post['shipping_address_1']) > 128)) {
				$this->error['shipping_address_1'] = $this->language->get('error_address_1');
			}*/

			/*if ((utf8_strlen($this->request->post['shipping_city']) < 3) || (utf8_strlen($this->request->post['shipping_city']) > 128)) {
				$this->error['shipping_city'] = $this->language->get('error_city');
			}*/

			$this->load->model('localisation/country');

			$country_info = $this->model_localisation_country->getCountry($this->request->post['shipping_country_id']);

			if ($country_info && $country_info['postcode_required'] && (utf8_strlen($this->request->post['shipping_postcode']) < 2) || (utf8_strlen($this->request->post['shipping_postcode']) > 10)) {
				$this->error['shipping_postcode'] = $this->language->get('error_postcode');
			}

			if ($this->request->post['shipping_country_id'] == '') {
				$this->error['shipping_country'] = $this->language->get('error_country');
			}

			if ($this->request->post['shipping_zone_id'] == '') {
				$this->error['shipping_zone'] = $this->language->get('error_zone');
			}

			if (!$this->request->post['shipping_method']) {
				$this->error['shipping_method'] = $this->language->get('error_shipping');
			}
		}

		if ($this->error && !isset($this->error['warning'])) {
			$this->error['warning'] = $this->language->get('error_warning');
		}

		if (!$this->error) {
	  		return true;
		} else {
	  		return false;
		}
  	}

 

ЗЫ. VQMOD не установлен.

Змінено користувачем BeTep2
Надіслати
Поділитися на інших сайтах


Понял в чем проблема.

В шаблоне админки в order_form.tpl я менял поле компании с:

              <td><input type="text" name="shipping_company" value="<?php echo $shipping_company; ?>" /></td>
на:
              <td><textarea name="shipping_company" value="<?php echo $shipping_company; ?>" /></textarea></td>
 
Сейчас я понял глупость, но в целом если ли возможность изменить так область этого поля? Это значительно облегчит работу с ним.
Надіслати
Поділитися на інших сайтах


возможность есть, но так же нужно менять код js в admin\view\template\sale\order_form.tpl

найдите

$('input[name=\'shipping_company\']').attr('value', json['company']);

 

измените на

$('textarea[name=\'shipping_company\']').attr('value', json['company']);

Надіслати
Поділитися на інших сайтах

возможность есть, но так же нужно менять код js в admin\view\template\sale\order_form.tpl

найдите

$('input[name=\'shipping_company\']').attr('value', json['company']);

 

измените на

$('textarea[name=\'shipping_company\']').attr('value', json['company']);

Когда нашел причину уже пробовал изменить и js, все равно значение поля textarea становится пустым.

Не знаю важно ли это, но в бд для этого поля выставил те же требования что и для поля comment то есть text (с лимитом, но большим достаточно).

Ранее у него было значение varchar (32). 

Надіслати
Поділитися на інших сайтах


В общем ошибка в выводе textarea. Вместо:
 <td><textarea name="shipping_company" value="<?php echo $shipping_company; ?>" /></textarea></td>

Нужно value вынести:
<td><textarea name="shipping_company"><?php echo $shipping_company; ?></textarea></td>

 

Как обычно тупейшая ошибка..

Спасибо за помощь!
 

Надіслати
Поділитися на інших сайтах


Привет еще раз. Теперь такой вопрос:

Как значение этой переменной в виде textarea вывести в счет с переносами строк? Он вставляет просто текст, не понимая перенос строки.

К примеру текст:
"Компания Пупсик и Ко
Директор: Пупсик К.О.

тел. 467496476947694"

Вставляет как: "
Компания Пупсик и КоДиректор: Пупсик К.О.тел. 467496476947694"

 

Ранее (когда был input вместо textarea) вставлял с переносами...

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.