Автор Тема: Добавил в таблицу payment новый столбик lastname  (Прочитано 831 раз)

23 Апрель 2016, 15:14:26
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Данные обрабатываются в модуле или контроллере, там должны быть sql запросы к базе данных и функции работы с бд.
Db::getInstance()->Execute('UPDATE `'._
14 Май 2016, 12:56:35
Ответ #16
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
В файле который отвечает за заполнение в Б/Д таблицы payment
есть код для заполнения этой таблицы:
if (($prod->id_manufacturer != 0)) {
    if (!PaymentsCore::PaymentExists($order->id,$product['product_id'])){
    $payment = new PaymentsCore();
    $payment->id_order = $order->id;
    $payment->id_seller = $prod->id_manufacturer;
    $payment->firstname = ;  не могу написать переменную
    $payment->lastname = ;   не могу написать переменную
    $payment->summ = $product['product_price'] * $product['product_quantity'] * $percent-$fixed;
    $payment->id_product = $product['product_id'];
    $payment->status = 0;
    $payment->description = $product['product_name'];
    $payment->add();
    }

Если в строки где написано "не могу вставить переменную" вписать $prod->id_manufacturer
то во всех столбцах Б/Д просто появляется ID производителя,
чтобы там такое написать, чтобы появились имя и фамилия.
Так пробовал не работает
    $payment->firstname = $customer->firstname;
    $payment->lastname = $customer->lastname;
Не боги горшки обжигают, не зачем им такой хренью заниматься.
14 Май 2016, 14:02:27
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В классе Payments у вас должно быть описание полей firstname, lastname. Данные должны быть в формате TYPE_STRING.
24 Май 2016, 14:55:49
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
В классе Payments у вас должно быть описание полей firstname, lastname. Данные должны быть в формате TYPE_STRING.

Не нашел на сайте класс  Payments, уж и не говоря о формате TYPE_STRING.
Версия PS 1.4.5.1
Не боги горшки обжигают, не зачем им такой хренью заниматься.
24 Май 2016, 15:29:40
Ответ #19
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Плохо искал, в папке classes ищи.
25 Май 2016, 12:58:00
Ответ #20
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Плохо искал, в папке classes ищи.

В папке класс есть только два файла с упоминанием Payment:
PaymentCC.php
PaymentModule.php

И есть два файле в модуле в котором это и должно все происходить:
AdminPayments.php
PaymentsCore.php

Ни в одном из этих файлов нет упоминания о TYPE_STRING
Не боги горшки обжигают, не зачем им такой хренью заниматься.
25 Май 2016, 13:11:38
Ответ #21
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В оригинальном варианте prestashop 1.4-1.6 в таб. payment вообще нет полей "firstname, lastname", поэтому я вам дал тольео направление как там может быть написано. А что точно указано в вашем варианте, нужно смотреть самому.
27 Май 2016, 11:27:17
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
А вообще как должна выглядеть команда для записи информации
в Базу Данных, которая обычно используется в Престе.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
27 Май 2016, 17:13:34
Ответ #23
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
...
Так как вы писали в этом посту.

Только смущает
$payment = new PaymentsCore();Файл с описанием класса PaymentsCore приложите.
28 Май 2016, 11:44:16
Ответ #24
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Файл PaymentsCore.php


<?php
/*
CREATE TABLE `ps_payment` (
`id_payment` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_product` INT( 10 ) UNSIGNED NULL ,
`summ` DECIMAL( 20, 2 ) NOT NULL DEFAULT '0',
`wmr` VARCHAR( 13 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`description` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`status` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0',
`firstname` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`lastname` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`id_seller` INT( 10 ) UNSIGNED NOT NULL ,
`date_add` DATETIME NOT NULL ,
`date_upd` DATETIME NOT NULL ,
PRIMARY KEY ( `id_payment` )
) ENGINE = MYISAM ;
 */
class PaymentsCore extends ObjectModel
{
public  $id_product;
public  $id_order;
public  $id_seller;
public  $lastname;
public  $firstname;
public  $summ;
public  $wmr;
public  $description;
/*
 * 0 - РїСЂРѕРґР°Р¶Р° (Продажа)
 * 1 - Р·Р°РїСЂРѕСЃ РІС‹РІРѕРґР° (Запрос вывода)
 * 2 - РІС‹РїР»Р°С‚Р° (Выплата)
 * 3 - РїРѕРєСѓРїРєР° СЃ РІРЅСѓС‚реннего СЃС‡РµС‚Р° (Покупка с внутреннего счета)
 * 4 - РїРѕРїРѕР»РЅРµРЅРёРµ СЃС‡РµС‚Р° (Пополнение счета)
 */
public  $status=0;
public  $date_add;
public  $date_upd;

 
protected  $fieldsRequired = array('id_seller''summ');
 
protected  $fieldsSize = array('description' => 255);
 
protected  $fieldsValidate = array('id_product' => 'isUnsignedId','id_order' => 'isUnsignedId','id_seller' =>  'isUnsignedId','summ' => 'isFloat','description' => 'isGenericName');


protected  $table 'payment';
protected  $identifier 'id_payment';

public function getFields()
{
parent::validateFields();
if (isset($this->id))
$fields['id_payment'] = (int)($this->id);
$fields['id_product'] = (int)($this->id_product);
$fields['id_order'] = (int)($this->id_order);
$fields['summ'] = (float)($this->summ);
$fields['wmr'] = pSQL($this->wmr);
$fields['description'] = pSQL($this->description);
$fields['status'] = (int)($this->status);
$fields['firstname'] = pSQL($this->firstname);
$fields['lastname'] = pSQL($this->lastname);
$fields['id_seller'] = (int)($this->id_seller);
$fields['date_add'] = pSQL($this->date_add);
$fields['date_upd'] = pSQL($this->date_upd);
return $fields;
}

static public function getBallance($id_customer)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT SUM(summ)
FROM `'
._DB_PREFIX_.'payment`
WHERE `id_seller` = '
.(int)($id_customer));
}

static public function getPayments($id_customer)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT *
FROM `'
._DB_PREFIX_.'payment`
WHERE `id_seller` = '
.(int)($id_customer).
' ORDER BY `date_upd` DESC');
}

static public function PaymentExists($id_order,$id_product)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT *
FROM `'
._DB_PREFIX_.'payment`
WHERE `id_order` = '
.(int)($id_order).
' AND `id_product` = '.(int)($id_product));
}

}

?>
Не боги горшки обжигают, не зачем им такой хренью заниматься.
28 Май 2016, 14:43:33
Ответ #25
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
$customer = new Customer((int)$cart->id_customer);

$payment->firstname = $customer->firstname;
$payment->lastname = $customer->lastname;
                     
29 Май 2016, 23:27:58
Ответ #26
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
$payment->firstname = $customer->firstname;
$payment->lastname = $customer->lastname;

Этот код есть в файле addprod.php

а куда вставить этот:
$customer = new Customer((int)$cart->id_customer);
Не боги горшки обжигают, не зачем им такой хренью заниматься.
30 Май 2016, 08:45:41
Ответ #27
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Перед тем как использовать
$customer->...добавьте
$customer = new Customer((int)$cart->id_customer);
30 Май 2016, 15:38:02
Ответ #28
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Спасибо, получилось, просто пытался не в тот файл запихнуть код.
Не боги горшки обжигают, не зачем им такой хренью заниматься.