Vlastne polia vo FA

Praktické rady a návody.
key4uco
Príspevky: 50
Dátum registrácie: 08. Jún 2014 18:52
Verzia OpenCartu: 1.5.6.4 / 2.1.0.2

Vlastne polia vo FA

Príspevok od užívateľa key4uco » 09. Máj 2017 13:22

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: 77
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Príspevok od užívateľa Martin80 » 09. Máj 2017 20:57

Skús tému viewtopic.php?f=9&t=3000, možno Ťa to posunie trocha dopredu.

Martin80
Príspevky: 77
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Príspevok od užívateľa Martin80 » 09. Máj 2017 22:44

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: 77
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Príspevok od užívateľa Martin80 » 09. Máj 2017 22:54

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: 50
Dátum registrácie: 08. Jún 2014 18:52
Verzia OpenCartu: 1.5.6.4 / 2.1.0.2

Re: Vlastne polia vo FA

Príspevok od užívateľa key4uco » 10. Máj 2017 8:03

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: 77
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Príspevok od užívateľa Martin80 » 10. Máj 2017 21:00

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: 50
Dátum registrácie: 08. Jún 2014 18:52
Verzia OpenCartu: 1.5.6.4 / 2.1.0.2

Re: Vlastne polia vo FA

Príspevok od užívateľa key4uco » 10. Máj 2017 21:06

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: 77
Dátum registrácie: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Príspevok od užívateľa Martin80 » 10. Máj 2017 21:48

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) 34 stiahnutí

Napísať odpoveď