Door
endy voest
op 01-02-2013 10:05
gewijzigd op 01-02-2013 10:07
1.975 views
Goedemorgen dames en heren,
Ik heb een steuntje in de rug nodig.
Heb een module gekocht voor een prestashop omgeving en het doet alles behalve wat voor de opdrachtgever
nu net belangrijk is geworden.
In deze prestashop omgeving zit de mogelijkheid om apart teksten toe te voegen aan een bestelling.
Deze teksten worden netjes in de database gezet en ik weet ook welke database tabel dat is.
Echter deze customexport module maakt het de klant mogelijk alle bestelling of geselecteerd op datum
op .CSV bestand te exporteren.
Het mist dus nou NET die extra toe te kunnen voegen tekst.
Ik ben al even bezig geweest met wat beperkte begin klungel copy paste programpruts acties van me zelf.
maar ik krijg die data niet goed opgesomd in het te exporteren cvs bestand.
NOob dus ;)
Goed, wie zou me kunnen helpen met een kleine wijziging aan te brengen in dit script waardoor ik de door de klant toegevoegde tekst kan exprteren via een csv bestand.
Het betreft echt een kleine aanpassing want voor de rest doet het wel alles exporteren op csv, nog net niet de schoenmaat van de klant ;)
Oh...en natuurlijk kan er een kleine vergoeding tegenover staan!
Oh...en natuurlijk kan er een kleine vergoeding tegenover staan!
Voor een kratje bier lopen ze hier al warm hoor. :)
Nee even zonder gekheid, dit topic staat in programmeerhulp->php.
Dus als je nou de relevante code hier neerzet dan zou dit topic wat completer zijn.
Dan kunnen we met z'n allen meekijken wat er mis is he.
Alleen een vraag zonder code kunnen we niet zoveel mee.
Ok hahaha.....tnx...ik ga me best doen in deze reactie zoveel mogelijk info mee te sturen....
HERE IT COMES ;)
WAT MOET HET DOEN: daar waar nu staat op regel 108
<?php
//TO GET CUSTOMIZED_DATA VALUES FROM DATABASE 04-09-2012 [zelf toegevoegd]
$f_no[39] = 'NAAM'; //is het kolom waar de data in geplaatst moet worden op het .csv betand
$f_no[40] = 'TEKST';
?>
Moet 'NAAM'; en 'TEKST'; of in iedergeval 'TEKST'; worden vervangen door de data vanuit de database.
'NAAM'; en 'TEKST'; en heb ik al in het php script voorbereid en wordt ook al weergegeven op het .csv bestand. Dus dat gaat al goed ;)
Nu alleen de data nog die dus overeen komt met dat wat er door de klant is besteld...
DATABASE VALUES;
In value staat de waarde die ik moet hebben.
MAAR....de waarde die daar in staat moet tevens overeenkomen met de betreffende bestelling en /of klant.
SCRIPT:
<?php
$address_choice = $_POST['address_choice'];
// natuurlijk details van de orders
$orders_detail = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'order_detail` od
LEFT JOIN `'._DB_PREFIX_.'orders` o ON (o.`id_order` = od.`id_order`)
WHERE `date_add` >= "'.$date_start.'"
AND `date_add` <= "'.$date_end.'"');
foreach($orders_detail as $order_detail){
if(Customer::customerIdExists($order_detail['id_customer'])){
$f_no = array();
// Objet commande
$Order = new Order($order_detail['id_order']);
$order = $Order->getFields();
$f_no[1] = $order_detail['id_order'];
$f_no[2] = $order_detail['id_order_detail'];
$f_no[3] = date("d.m.Y", strtotime($order['date_add']));
// info client
$Customer = new Customer($order['id_customer']);
$customer = $Customer->getFields();
if($customer['id_gender']==1){$gender=$this->l('Meneer');}else{$gender=$this->l('Mevrouw');}
// info adresse
if($address_choice=='delivery'){
$Address = new Address($order['id_address_delivery']);
}else{
$Address = new Address($order['id_address_invoice']);
}
$address = $Address->getFields();
$f_no[38] = $address['company'];
$f_no[4] = $gender;
$f_no[5] = $customer['firstname'];
$f_no[6] = $customer['lastname'];
$f_no[7] = $address['address1'];
$f_no[8] = $address['address2'];
$f_no[9] = $address['postcode'];
$f_no[10] = $address['city'];
$country = Country::getNameById($order['id_lang'],$address['id_country']);
$f_no[11] = $country;
$f_no[12] = $address['phone'];
$f_no[13] = $address['phone_mobile'];
$f_no[14] = $customer['email'];
$f_no[15] = $customer['birthday'];
if($customer['newsletter']){
$newsletter=$this->l('Oui');
}else{
$newsletter = $this->l('Non');
}
$f_no[16] = $newsletter;
$group = '';
// v1.3 +
if(isset($customer['id_default_group'])){
$Group = new Group($customer['id_default_group']);
$group = $Group->name[$order['id_lang']];
}else{
$res = Db::getInstance()->getRow('SELECT `id_group` FROM '._DB_PREFIX_.'customer_group WHERE `id_customer` = "'.$order_detail['id_customer'].'"');
$Group = new Group($res['id_group']);
$group = $Group->name[$order['id_lang']];
}
$f_no[17] = $group;
$f_no[18] = $order_detail['product_quantity'];
$f_no[19] = $order_detail['product_name'];
$f_no[20] = round($order_detail['product_price']+($order_detail['product_price']*$order_detail['tax_rate']/100),2);
$f_no[21] = $order_detail['tax_rate'];
$f_no[22] = $order_detail['product_weight'];
$f_no[23] = $order_detail['product_ean13'];
$f_no[24] = $order_detail['product_reference'];
$f_no[25] = $order_detail['product_supplier_reference'];
$f_no[26] = $order['total_paid'];
$f_no[27] = $order['total_paid_real'];
$f_no[28] = $order['total_shipping'];
$Currency = new Currency($order['id_currency']);
$currency = $Currency->getFields();
$f_no[29] = $currency['iso_code'];
$f_no[30] = $order['payment'];
$f_no[31] = $order['invoice_number'];
$f_no[32] = $order['delivery_number'];
if($order['id_carrier']>0){
$Carrier = new Carrier($order['id_carrier']);
$carrier = $Carrier->getFields();
$carrier_name = $carrier['name'];
}else{
$carrier_name = '';
}
$f_no[33] = $carrier_name;
$Language = new Language($order['id_lang']);
$language = $Language->getFields();
$f_no[34] = $language['name'];
$f_no[35] = $order['invoice_date'];
// récupère l'emplacement du produit
$id_product = $order_detail['product_id'];
// simple
if(empty($order_detail['product_attribute_id'])){
$product = Db::getInstance()->getRow('SELECT `location`,`wholesale_price` FROM '._DB_PREFIX_.'product WHERE `id_product`="'.$id_product.'"');
$location = $product['location'];
$wholesale_price = $product['wholesale_price'];
// déclinaison
}else{
$id_product_attribute = $order_detail['product_attribute_id'];
$productDecl = Db::getInstance()->getRow('SELECT `location`,`wholesale_price` FROM '._DB_PREFIX_.'product_attribute WHERE `id_product`="'.$id_product.'" AND `id_product_attribute`="'.$id_product_attribute.'"');
$location = $productDecl['location'];
$wholesale_price = $productDecl['wholesale_price'];
}
$f_no[36] = $location;
$f_no[37] = $wholesale_price;
//TO GET CUSTOMIZED_DATA VALUES FROM DATABASE 04-09-2012
//$f_no[39] = 'NAAM';
//$f_no[40] = 'TEKST';
// Ordonne les cellules selon la base de donnée
$f_place = array();
if(is_array($fields_no)){
foreach($fields_no as $field_no){
$res = Db::getInstance()->ExecuteS('SELECT `place` FROM '._DB_PREFIX_.'customexporter WHERE `field_no`='.$field_no.' AND `export_type`="'.$export_type.'"');
$place = $res[0]['place'];
$f_place[$place] = $f_no[$field_no];
}
}
$this->file[] = $f_place; // ajoute nouvelle ligne triée au fichier
} // end if customer exist
}
?>