Jump to content

Order reference jako číslo v PS 1.5


Stanislav Novák
 Share

Recommended Posts

Pro odstranění Označení objednávky velkými písmeny a nahrazení běžným číslem (jako v starších verzích) jsem vyrobil tuto jednoduchou úpravu souboru /override/classes/order/Order.php

Kód:

 

<?php
class Order extends OrderCore
{
public static function getUniqReferenceOf($id_order)
  {
  $order = new Order($id_order);
  //return $order->getUniqReference();
  return str_pad($id_order, 6, "0", STR_PAD_LEFT);
  }
}

 

Pro návrat k původnímu Označení objednávky písmeny stačí odpoznámkovat první return a zapoznámkovat druhý (funguje ve Front Office).

  • Like 2

Share this post


Link to post
Share on other sites

Aktualizace: nová úprava souboru /override/classes/order/Order.php funguje i v e-mailech

 

<?php

class Order extends OrderCore
{
public function getUniqReference()
{
	$query = new DbQuery();
	$query->select('MIN(id_order) as min, MAX(id_order) as max');
	$query->from('orders');
	$query->where('id_cart = '.(int)$this->id_cart);
	$query->orderBy('id_order');

	$order = Db::getInstance()->getRow($query);

	/*if ($order['min'] == $order['max'])
		return $this->reference;
	else
		return $this->reference.'#'.($this->id + 1 - $order['min']);*/

    return sprintf('%06d', $this->id);

}
public static function getUniqReferenceOf($id_order)
{
	$order = new Order($id_order);
	return $order->getUniqReference();
}
}   

Edited by Stano Novák (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

  • 2 weeks later...
  • 2 weeks later...
  • 3 weeks later...
  • 1 month later...
  • 4 weeks later...

Aktualizace: nová úprava souboru /override/classes/order/Order.php funguje i v e-mailech

 

<?php

class Order extends OrderCore
{
public function getUniqReference()
{
	$query = new DbQuery();
	$query->select('MIN(id_order) as min, MAX(id_order) as max');
	$query->from('orders');
	$query->where('id_cart = '.(int)$this->id_cart);
	$query->orderBy('id_order');

	$order = Db::getInstance()->getRow($query);

	/*if ($order['min'] == $order['max'])
		return $this->reference;
	else
		return $this->reference.'#'.($this->id + 1 - $order['min']);*/

	return sprintf('%06d', $this->id);

}
public static function getUniqReferenceOf($id_order)
{
	$order = new Order($id_order);
	return $order->getUniqReference();
}
}   

Pro zobrazení VS jako čísla v bankwire (bankovní převod) stačí upravit file modules/bankwire/views/templates/hook/payment_return.tpl

 

soubor přikládám v příloze

 

Potvrzuju funkčnost pro 1.5.3.1

Bez Vás bych to rozkopal. Díky!

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Jak to mám udělat, aby se jako variabilní symbol zobrazilo tohle: 13020003.

Formátování je následující:

  1. První dva čísla jsou rok
  2. Druhá dvě čísla jsou měsíc
  3. Poslední číslo je číslo objednávky

Celé číslo by mělo být zarovnáno na 8 znaků. Nějak na tohle moje znalosti programování nestačí a nemůžu s tím hnout. :(

Share this post


Link to post
Share on other sites

  • 3 weeks later...
  • 1 month later...

... jak jinak uz jsem myslel ze nekoho pochvalim a dam mu like za snahu a misto toho .. JAKEJ?

 

tak tady mate link : https://www.dropbox....odrefchange.zip

 

Ahoj. Děkuji za super modul, ale teď pokud vyberu možnost platby při převzetí, zobrazí se mi chyba:

 

 

Chyba serveru

 

Při načítání adresy http://khortytsacz.c...very/validation narazily stránky na chybu. Na této adrese možná právě probíhá údržba stránek, nebo jsou stránky chybně nakonfigurovány.

 

 

Poraďte, co s tím mohu udělat?

Edited by Gorshoksv (see edit history)

Share this post


Link to post
Share on other sites

  • 2 weeks later...

po pouziti modulu ktery je tady z dropboxu mi neslo udelat posledni krok objednavky , porad to hodilo chybu pro zakaznika ale objednavka byla v systemu spravne... radeji se vracim k pismenum ktere aspon funguji

verze presta 1.5.4.1

Share this post


Link to post
Share on other sites

  • 2 months later...

Jak to mám udělat, aby se jako variabilní symbol zobrazilo tohle: 13020003.

Formátování je následující:

  1. První dva čísla jsou rok
  2. Druhá dvě čísla jsou měsíc
  3. Poslední číslo je číslo objednávky

Celé číslo by mělo být zarovnáno na 8 znaků. Nějak na tohle moje znalosti programování nestačí a nemůžu s tím hnout. :(

 

Tak odpovím si sám: :D

 

Upravit soubor override/classes/order/Order.php

 

class Order extends OrderCore
{
public static function generateReference()
   {
    $query = new DbQuery();
    $query->select('MAX(id_order) as max');
    $query->from('orders');
    $query->where('id_cart' > 0);
    $order = Db::getInstance()->getRow($query);
    $reference = $order['max'] +1 ;
    $datum = Date('Ym');
    $reference = $datum.$reference;
    return sprintf('%010d', $reference);
   }
}

Share this post


Link to post
Share on other sites

  • 6 months later...
  • 1 month later...

Tak odpovím si sám: :D

 

Upravit soubor override/classes/order/Order.php

 

class Order extends OrderCore
{
public static function generateReference()
    {
	    $query = new DbQuery();
	    $query->select('MAX(id_order) as max');
	    $query->from('orders');
	    $query->where('id_cart' > 0);
	    $order = Db::getInstance()->getRow($query);
	    $reference = $order['max'] +1 ;
	    $datum = Date('Ym');
	    $reference = $datum.$reference;
	    return sprintf('%010d', $reference);
    }
}

Pěkný

Share this post


Link to post
Share on other sites

  • 1 month later...

Ahoj všem,

nainstaloval jsem modul pro změnu čísel objednávek ale po nainstalování mně přestalo fungovat zobrazování faktur a dodáků u již proběhlých objednávek. Nevíte, čím to je?... Presta 1.5.6.2

Po stisknutí na ikonku faktury nebo DL se zobrazí bílá stránka a nic dál...

Tak jsem modul odinstaloval a nepomohlo a teď už nejde ani nainstalovat zpět.

Díky

 

Poznatek:

Už vím, že problém bude někde v souboru class_index.php který se nachází ve složce root/cache

Edited by Nicocz (see edit history)

Share this post


Link to post
Share on other sites

  • 3 weeks later...

Nehapu proc na to hledate nejaky modul. Podle me je perfektni ze presta 1.5 dodatecne k cislu objednavky generuje ted a jmeno objednavky. Nicmene cislo objednavky nikam nezmizelo. Ma to hodne duvodu. Napriklad aby konkurence nemohla spocitat pocet objednavek u vas, obcasnym vytvarenim zkusebni objednavky a pod.  Ale pokud nechcete aby zakaznik misto jmena objednavky videl cislo objednavky, coz je potreba napriklad u VS bankovniho prevodu, tak staci u te sablony, misto {order_name} dat {id_order} misto zasahu do presty. 

Share this post


Link to post
Share on other sites

  • 3 weeks later...

Ahoj.

 

Tak kolem "číslování" objednávek pro PS 1.5.xx studuju fórum už skoro hodinu, ale úplně moudrý z toho, jaké řešení vybrat, nejsem. Někdo doporučuje http://prestadev.nl/en/mod/administrative-tools/8-order-reference-change-module.html, někdo zase varuje, že se zbořil systém...

 

Hlavně mne překvapuje, že není jednoznačně vyřešeno... Nejde nezbytně o nutnost definování nějaké vlastní sofistikované řady, ale o to, že implicitní formát IFFFPHAKR prostě v Česku přece nelze použít jako variabilní symbol. Nebo...?

 

Jak to tedy změním NEJJEDNODUŠEJI na čísla?

 

Díky.

d

Share this post


Link to post
Share on other sites

Ahoj.

 

Tak kolem "číslování" objednávek pro PS 1.5.xx studuju fórum už skoro hodinu, ale úplně moudrý z toho, jaké řešení vybrat, nejsem. Někdo doporučuje http://prestadev.nl/en/mod/administrative-tools/8-order-reference-change-module.html, někdo zase varuje, že se zbořil systém...

 

Hlavně mne překvapuje, že není jednoznačně vyřešeno... Nejde nezbytně o nutnost definování nějaké vlastní sofistikované řady, ale o to, že implicitní formát IFFFPHAKR prostě v Česku přece nelze použít jako variabilní symbol. Nebo...?

 

Jak to tedy změním NEJJEDNODUŠEJI na čísla?

 

Díky.

d

upravit primo soubor classes/order/Order.php

 

tak ze najdete funkci generateReference()

 

a upravite ji takto :

 

public static function generateReference()

            {

                        $query = new DbQuery();

                        $query->select('MAX(id_order) as max');

                        $query->from('orders');

                        $query->where('id_cart' > 0);

                        $order = Db::getInstance()->getRow($query);

                        $reference = $order['max'] +1 ;

                        return sprintf('%06d', $reference);

           

           

            }

 

zmeny se projevi az u nove objednavky kazdopadne se vam zmeni i variabilni symbol v emailech a samozrejme vsude kde se reference number vyskytuje bez dalsich uprav.

Share this post


Link to post
Share on other sites

  • 3 months later...

upravit primo soubor classes/order/Order.php

 

tak ze najdete funkci generateReference()

 

a upravite ji takto :

 

public static function generateReference()

            {

                        $query = new DbQuery();

                        $query->select('MAX(id_order) as max');

                        $query->from('orders');

                        $query->where('id_cart' > 0);

                        $order = Db::getInstance()->getRow($query);

                        $reference = $order['max'] +1 ;

                        return sprintf('%06d', $reference);

           

           

            }

 

zmeny se projevi az u nove objednavky kazdopadne se vam zmeni i variabilni symbol v emailech a samozrejme vsude kde se reference number vyskytuje bez dalsich uprav.

A nepríde ti žiaden autetifikačný e-mail ohľadom tejto zmenej objednávky. Ak zmeníš natvrdo kód.

Edited by mitro2666 (see edit history)

Share this post


Link to post
Share on other sites

upravit primo soubor classes/order/Order.php

 

tak ze najdete funkci generateReference()

 

a upravite ji takto :

 

public static function generateReference()

            {

                        $query = new DbQuery();

                        $query->select('MAX(id_order) as max');

                        $query->from('orders');

                        $query->where('id_cart' > 0);

                        $order = Db::getInstance()->getRow($query);

                        $reference = $order['max'] +1 ;

                        return sprintf('%06d', $reference);

           

           

            }

 

zmeny se projevi az u nove objednavky kazdopadne se vam zmeni i variabilni symbol v emailech a samozrejme vsude kde se reference number vyskytuje bez dalsich uprav.

 

Použil jsem tuto úpravu a na číslo objednávky to zafungovalo. Čemu nerozumím že když si vygeneruju fakturu např. k objednávce č. 00015 tak ve faktuře mám  sice Číslo objednávky:000015 ale  taky číslo faktury  #in000011 prostě o 4 nižší, než je čílso objednávky. Tuší někdo z čeho se bere číslo faktury,  měl jsem za to že ty čisla by měla být stejná.

Děkuji za případnou napovědu

Share this post


Link to post
Share on other sites

  • 2 years later...

Použil jsem tuto úpravu a na číslo objednávky to zafungovalo. Čemu nerozumím že když si vygeneruju fakturu např. k objednávce č. 00015 tak ve faktuře mám  sice Číslo objednávky:000015 ale  taky číslo faktury  #in000011 prostě o 4 nižší, než je čílso objednávky. Tuší někdo z čeho se bere číslo faktury,  měl jsem za to že ty čisla by měla být stejná.

Děkuji za případnou napovědu

Co se týče účetnictví, tak číselná řada objednávek a faktur nemusí souhlasit. Vím, že to lépe vypadá a lehce se faktura přiřadí k objednávce. Ale k tomu je i na faktuře číslo objednávky. Reálně by to šlo udělat aby hned po vygenerování objednávky se vygenerovala faktura. Nyní se vygeneruje až po provedené platbě. Pokud by to tak bylo a generovalo by to hned i fakturu a pak zákazník nezaplatí, nepřevezme zboží, pak budeš muset fakturu stornovat. Proto je to asi udělaný nyní takto.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More