Vlastne polia vo FA

Praktické rady a návody.
key4uco
Príspevky: 48
Dátum registrácie: 08. Jún 2014 18:52
Verzia OpenCartu: 3x

Vlastne polia vo FA

Príspevok od používateľa key4uco »

Ahojte.. vie mi tu niekto poradit.. ako dam vlastne polia do faktury.. vytvoril som si v OC 2.x IČO, DIČ, IČ DPH ale na fakturu to nehadze.. hladal som rozne ale nikde som nenasiel odpoved alebo aspon nieco co funguje. dakujem
Martin80
Príspevky: 117
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2
Kontaktovať používateľa:

Re: Vlastne polia vo FA

Príspevok od používateľa Martin80 »

Skús tému viewtopic.php?f=9&t=3000, možno Ťa to posunie trocha dopredu.
Martin80
Príspevky: 117
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2
Kontaktovať používateľa:

Re: Vlastne polia vo FA

Príspevok od používateľa Martin80 »

admin/controller/sale/order.php niekde okolo ridku 2200 koniec metódy invoice()
vlož vetvu a uprav $data['orders'][], vlož posledný prvok 'custom_field' => $custom_field

Kód: Vybrať všetko

if ($order_info['custom_field']) {
    $custom_field = $order_info['custom_field'];
} else {
    $custom_field = array();
}


$data['orders'][] = array(
    'order_id'	         => $order_id,
    'invoice_no'         => $invoice_no,
    'date_added'         => date($this->language->get('date_format_short'), strtotime($order_info['date_added'])),
    'store_name'         => $order_info['store_name'],
    'store_url'          => rtrim($order_info['store_url'], '/'),
    'store_address'      => nl2br($store_address),
    'store_email'        => $store_email,
    'store_telephone'    => $store_telephone,
    'store_fax'          => $store_fax,
    'email'              => $order_info['email'],
    'telephone'          => $order_info['telephone'],
    'shipping_address'   => $shipping_address,
    'shipping_method'    => $order_info['shipping_method'],
    'payment_address'    => $payment_address,
    'payment_method'     => $order_info['payment_method'],
    'product'            => $product_data,
    'voucher'            => $voucher_data,
    'total'              => $total_data,
    'comment'            => nl2br($order_info['comment']),
    'custom_field'       => $custom_field
);
admin/view/template/sale/order_invoice.tpl
cez $order['custom_field'][index] pristupuješ k hodnotám vlastných polí. Čísla nemusia sedieť ale var dumpni $order['custom_field'] a uvidíš sám

Kód: Vybrať všetko

        <tr>
            <td colspan="2">IČO: <?php echo $order['custom_field'][1]; ?></td>
        </tr>
        <tr>
            <td colspan="2">DIČ: <?php echo $order['custom_field'][2]; ?></td>
        </tr>
Funguje na objednávkach vykonaných po úprave kódu.
Martin80
Príspevky: 117
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2
Kontaktovať používateľa:

Re: Vlastne polia vo FA

Príspevok od používateľa Martin80 »

Pardon že opäť spamujem, ale až po opätovnom prečítaní zisťujem že potrebuješ vložiť vlastné polia. Predcházajúci kód platí pre polia zákazníkov, tak to tu nechám ak by niekto potreboval. Pre Tvoje potreby už vytvoril šablónu funny102 na adrese viewtopic.php?f=13&t=2358&p=5339&hilit=faktura#p5339.
key4uco
Príspevky: 48
Dátum registrácie: 08. Jún 2014 18:52
Verzia OpenCartu: 3x

Re: Vlastne polia vo FA

Príspevok od používateľa key4uco »

Martin80 napísal:Pardon že opäť spamujem, ale až po opätovnom prečítaní zisťujem že potrebuješ vložiť vlastné polia. Predcházajúci kód platí pre polia zákazníkov, tak to tu nechám ak by niekto potreboval. Pre Tvoje potreby už vytvoril šablónu funny102 na adrese viewtopic.php?f=13&t=2358&p=5339&hilit=faktura#p5339.
Dakujem velmi pekne.. ale FA si viem editovat davno.. myslel som vlastne polia ktore sa nachadazuju pod zakaznik > vlastne polia. tam som si vytvoril IČO, DIČ, IČ DPH, su to polia, ktore vyplna zakaznik... to bude asi ten kod vyssie :D

EDIT: ten prvy kod mi ale nefunguje... pise mi: Notice: Undefined index: custom_field
Martin80
Príspevky: 117
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2
Kontaktovať používateľa:

Re: Vlastne polia vo FA

Príspevok od používateľa Martin80 »

Ja som skúšal v defaultnej šablóne. Možno, skús si vypísať $order, či obsahuje tú premennú. A napadá ma akurát, že to musí byť v cykle foreach ktorý začína okolo riadku 14. Ja som poslal len jeden kód pre dva súbory. Treba upraviť aj template aj model. V controlery custom_field zadefinuješ a priradíš, v template (na faktúre) ho vypíšeš. Či i tak nejde?
Edit: Alebo ak ti hádže chybu controler, tak pozri či tam nie je iný názov pre vlastné polia. Ja som skúšal na 2.0.1.1. Alebo napíš pre akú verziu, pozriem na to ešte raz.
Naposledy upravil/-a Martin80 v 11. Máj 2017 22:03, upravené celkom 2 krát.
key4uco
Príspevky: 48
Dátum registrácie: 08. Jún 2014 18:52
Verzia OpenCartu: 3x

Re: Vlastne polia vo FA

Príspevok od používateľa key4uco »

Martin80 napísal:Ja som skúšal v defaultnej šablóne. Možno, skús si vypísať $order, či obsahuje tú premennú. A napadá ma akurát, že to musí byť v cykle foreach ktorý začína okolo riadku 14. Ja som poslal len jeden kód pre dva súbory. Treba upraviť aj template aj model. V modely custom_field zadefinuješ a priradíš, v template (na faktúre) ho vypíšeš. Či i tak nejde?
Edit: Alebo ak ti hádže chybu model, tak pozri či tam nie je iný názov pre vlastné polia. Ja som skúšal na 2.0.1.1. Alebo napíš pre akú verziu, pozriem na to ešte raz.
ja mam tiez zakladnu sablonu... ide o verziu 2.1.0.2. ... ak sa chces povrtat.. viem ti dat aj pristup do testujuceho eshopu
Martin80
Príspevky: 117
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2
Kontaktovať používateľa:

Re: Vlastne polia vo FA

Príspevok od používateľa Martin80 »

Ak je to testovací, skús tento balíček. Je z čerstvej inštalácie pre 2.1.0.2 a práve som tam skopíroval to, čo som napísal vyššie. A funguje na prvú šupu. Ak by i tak nešlo, možno by som na to zo zvedavosti pozrel.

Edit: Balíček platí pre vlastné polia s umiestnením v účte.

Pre umiestnenie do adresy je to o niečo jednoduchšie admin/controller/sale/order
niekde okolo riadku 1600 v metóde invoice()

Kód: Vybrať všetko

$inject = strpos($format, '{address_1}');
$format = substr ( $format , 0 , $inject ) . '{ico}' . "\n" . '{dic}' . "\n" . substr ( $format , $inject );


$find = array(
    '{firstname}',
    '{lastname}',
    '{company}',
    '{ico}',
    '{dic}',
    '{address_1}',
    '{address_2}',
    '{city}',
    '{postcode}',
    '{zone}',
    '{zone_code}',
    '{country}'
);

$replace = array(
    'firstname' => $order_info['shipping_firstname'],
    'lastname'  => $order_info['shipping_lastname'],
    'company'   => $order_info['shipping_company'],
    'ico'       => 'IČO: ' . $order_info['payment_custom_field'][1],
    'dic'       => $order_info['payment_custom_field'][2],
    'address_1' => $order_info['shipping_address_1'],
    'address_2' => $order_info['shipping_address_2'],
    'city'      => $order_info['shipping_city'],
    'postcode'  => $order_info['shipping_postcode'],
    'zone'      => $order_info['shipping_zone'],
    'zone_code' => $order_info['shipping_zone_code'],
    'country'   => $order_info['shipping_country']
);


Poznámka: kód slúži len ako názorná ukážka na zodpovedanie dotazu a neprešiel žiadnymi testami.
Prílohy
upload.zip
(10.78 KiB) 81 stiahnutí
Napísať odpoveď