Vlastne polia vo FA

Praktické rady a návody.

Vlastne polia vo FA

Poslaťod 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
key4uco
 
Príspevky: 48
Registrovaný: 08. Jún 2014 18:52
Verzia OpenCartu: 1.5.6.4 / 2.1.0.2

Re: Vlastne polia vo FA

Poslaťod 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: 39
Registrovaný: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Poslaťod 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: 39
Registrovaný: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Poslaťod 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.
Martin80
 
Príspevky: 39
Registrovaný: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Poslaťod key4uco » 10. Máj 2017 8:03

Martin80 píše: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
key4uco
 
Príspevky: 48
Registrovaný: 08. Jún 2014 18:52
Verzia OpenCartu: 1.5.6.4 / 2.1.0.2

Re: Vlastne polia vo FA

Poslaťod 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 Martin80 dňa 11. Máj 2017 22:03, celkovo upravené 2
Martin80
 
Príspevky: 39
Registrovaný: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2

Re: Vlastne polia vo FA

Poslaťod key4uco » 10. Máj 2017 21:06

Martin80 píše: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
key4uco
 
Príspevky: 48
Registrovaný: 08. Jún 2014 18:52
Verzia OpenCartu: 1.5.6.4 / 2.1.0.2

Re: Vlastne polia vo FA

Poslaťod 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) 21 krát
Martin80
 
Príspevky: 39
Registrovaný: 30. Jan 2017 12:03
Verzia OpenCartu: 2.3.0.2


Späť na Tipy a triky

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť