Strana 1 z 1

Vlastne polia vo FA

Napísané: 09. Máj 2017 13:22
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

Re: Vlastne polia vo FA

Napísané: 09. Máj 2017 20:57
od používateľa Martin80
Skús tému viewtopic.php?f=9&t=3000, možno Ťa to posunie trocha dopredu.

Re: Vlastne polia vo FA

Napísané: 09. Máj 2017 22:44
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.

Re: Vlastne polia vo FA

Napísané: 09. Máj 2017 22:54
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.

Re: Vlastne polia vo FA

Napísané: 10. Máj 2017 8:03
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

Re: Vlastne polia vo FA

Napísané: 10. Máj 2017 21:00
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.

Re: Vlastne polia vo FA

Napísané: 10. Máj 2017 21:06
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

Re: Vlastne polia vo FA

Napísané: 10. Máj 2017 21:48
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.