wdrożenia PrestaShop Powiększenie zdjęć moduł

baza danych - status zamówienia

  • 2 Odpowiedzi
  • 4084 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline sliw

  • Użytkownik
  • **
  • 28
  • 0
baza danych - status zamówienia
« dnia: Listopad 20, 2013, 06:58:05 pm »
WItam forumowiczów.
Czy w bazie presty status zamówienia przechowywany jest w formie pojedycznej zmiennej ?
Znalazłem id_order_state ale nie wie zmienia się nic po ręcznej edycji czy trzeba w innych miejscach jeszcze coś zmienić ?
Jak zmodyfikować status zamówienia z poziomu bazy ?
dziekuje z góry

*

Offline west

  • Administrator
  • Mieszkaniec
  • *****
  • 5,291
  • 106
  • Płeć: Mężczyzna
  • Europasaz.pl
    • PrestaShop, Wordpress, SMF, Woocomerce
  • PrestaShop: 1.7
  • Status: Programista
Odp: baza danych - status zamówienia
« Odpowiedź #1 dnia: Listopad 20, 2013, 10:41:27 pm »
zobacz tabelę order_history
MODUŁY | https://europasaz.pl |  SKLEPY INTERNETOWE | WSPARCIE TECHNICZNE | HOSTING | https://europasaz.pl 

*

Offline sliw

  • Użytkownik
  • **
  • 28
  • 0
Odp: baza danych - status zamówienia
« Odpowiedź #2 dnia: Listopad 22, 2013, 01:50:54 pm »
Dziękuje za podpowiedz. Znalazłem tą tabelę już wczseniej , ale modyfikacja tam pozycji ze statusem nic nie zmienia, dlatego sądze , ze dodatkowo należy to zmienić - albo gdzie indziej albo w inny sposob.
znalzłem w orderHistory.php czesc odpowiedzialna za zmiany i nadawanie statusów ale nie wiem co one zmieniaja jako obiekty
$this->id_order_state = (int)$new_order_state;
      
      // changes invoice number of order ?
      if (!Validate::isLoadedObject($new_os) || !Validate::isLoadedObject($order))
         die(Tools::displayError('Invalid new order state'));

      // the order is valid if and only if the invoice is available and the order is not cancelled
      $order->current_state = $this->id_order_state;
      $order->valid = $new_os->logable;
      $order->update();

      if ($new_os->invoice && !$order->invoice_number)
         $order->setInvoice($use_existing_payment);

      // set orders as paid
      if ($new_os->paid == 1)
      {
         $invoices = $order->getInvoicesCollection();
         if ($order->total_paid != 0)
            $payment_method = Module::getInstanceByName($order->module);

         foreach ($invoices as $invoice)
         {
            $rest_paid = $invoice->getRestPaid();
            if ($rest_paid > 0)
            {
               $payment = new OrderPayment();
               $payment->order_reference = $order->reference;
               $payment->id_currency = $order->id_currency;
               $payment->amount = $rest_paid;

               if ($order->total_paid != 0)
                  $payment->payment_method = $payment_method->displayName;
               else
                  $payment->payment_method = null;
               
               // Update total_paid_real value for backward compatibility reasons
               if ($payment->id_currency == $order->id_currency)
                  $order->total_paid_real += $payment->amount;
               else
                  $order->total_paid_real += Tools::ps_round(Tools::convertPrice($payment->amount, $payment->id_currency, false), 2);
               $order->save();
                  
               $payment->conversion_rate = 1;
               $payment->save();
               Db::getInstance()->execute('
               INSERT INTO `'._DB_PREFIX_.'order_invoice_payment`
               VALUES('.(int)$invoice->id.', '.(int)$payment->id.', '.(int)$order->id.')');
            }
         }
      }