diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index acb455ff8eb87346578f21a5d2d54e8e63421704..b5db99285bf35c63508c4dcd37efd61202495e51 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -164,7 +164,7 @@ if ($_REQUEST['action'] == 'confirm_deleteline' && $_REQUEST['confirm'] == 'yes' $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$propal->id); exit; @@ -194,7 +194,7 @@ if ($_REQUEST['action'] == 'confirm_validate' && $_REQUEST['confirm'] == 'yes' & $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); } else { @@ -342,7 +342,7 @@ if ($_POST['action'] == 'add' && $user->rights->propale->creer) $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $id, $_REQUEST['model'], $outputlangs); + propale_pdf_create($db, $propal, $_REQUEST['model'], $outputlangs); Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$id); exit; @@ -602,7 +602,7 @@ if ($_GET['action'] == 'modif' && $user->rights->propale->creer) $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); } if ($_POST['action'] == "setabsolutediscount" && $user->rights->propale->creer) @@ -751,7 +751,7 @@ if ($_POST['action'] == "addline" && $user->rights->propale->creer) $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); unset($_POST['qty']); unset($_POST['type']); @@ -823,7 +823,7 @@ if ($_POST['action'] == 'updateligne' && $user->rights->propale->creer && $_POST $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); } } @@ -850,7 +850,7 @@ if ($_REQUEST['action'] == 'builddoc' && $user->rights->propale->creer) $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - $result=propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + $result=propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); if ($result <= 0) { dol_print_error($db,$result); @@ -920,7 +920,7 @@ if ($_GET['action'] == 'up' && $user->rights->propale->creer) $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'#'.$_GET['rowid']); exit; @@ -942,7 +942,7 @@ if ($_GET['action'] == 'down' && $user->rights->propale->creer) $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - propale_pdf_create($db, $propal->id, $propal->modelpdf, $outputlangs); + propale_pdf_create($db, $propal, $propal->modelpdf, $outputlangs); Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'#'.$_GET['rowid']); exit; @@ -1372,7 +1372,7 @@ if ($id > 0 || ! empty($ref)) print '<table class="noborder" width="100%">'; $result = $propal->getLinesArray(); - + if (!empty($propal->lines)) { $propal->print_title_list(); diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index a3b4c0081237c2c2514198fe633210c9cee226ff..5f6788dc1ac99828a6171a5136e03bf63538f97a 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -928,7 +928,7 @@ class Propal extends CommonObject /* * Lignes propales liees a un produit ou non */ - $sql = "SELECT d.rowid, d.description, d.price, d.tva_tx, d.localtax1_tx, d.localtax2_tx, d.qty, d.fk_remise_except, d.remise_percent, d.subprice, d.fk_product,"; + $sql = "SELECT d.rowid, d.fk_propal, d.description, d.price, d.tva_tx, d.localtax1_tx, d.localtax2_tx, d.qty, d.fk_remise_except, d.remise_percent, d.subprice, d.fk_product,"; $sql.= " d.info_bits, d.total_ht, d.total_tva, d.total_localtax1, d.total_localtax2, d.total_ttc, d.marge_tx, d.marque_tx, d.special_code, d.rang, d.product_type,"; $sql.= " p.ref, p.label, p.description as product_desc"; $sql.= " FROM ".MAIN_DB_PREFIX."propaldet as d"; @@ -949,6 +949,7 @@ class Propal extends CommonObject $line = new PropaleLigne($this->db); $line->rowid = $objp->rowid; + $line->fk_propal = $objp->fk_propal; $line->product_type = $objp->product_type; $line->desc = $objp->description; // Description ligne $line->qty = $objp->qty; diff --git a/htdocs/includes/modules/propale/modules_propale.php b/htdocs/includes/modules/propale/modules_propale.php index 95caa4d3113460dc234519d39b3ed13fe5c61940..02ffaa1988608144e7ff8015373abc42fe2ec647 100644 --- a/htdocs/includes/modules/propale/modules_propale.php +++ b/htdocs/includes/modules/propale/modules_propale.php @@ -138,7 +138,7 @@ class ModeleNumRefPropales * @param outputlangs objet lang a utiliser pour traduction * @return int 0 si KO, 1 si OK */ -function propale_pdf_create($db, $id, $modele, $outputlangs) +function propale_pdf_create($db, $object, $modele, $outputlangs) { global $langs; $langs->load("propale"); @@ -181,11 +181,11 @@ function propale_pdf_create($db, $id, $modele, $outputlangs) // We save charset_output to restore it because write_file can change it if needed for // output format that does not support UTF8. $sav_charset_output=$outputlangs->charset_output; - if ($obj->write_file($id, $outputlangs) > 0) + if ($obj->write_file($object, $outputlangs) > 0) { $outputlangs->charset_output=$sav_charset_output; // on supprime l'image correspondant au preview - propale_delete_preview($db, $id); + propale_delete_preview($db, $object->id); return 1; } else diff --git a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php index 2fc5e05f004218ab2b81c29c5ef3482a01b8b8a0..91a5bb867b2a58f0157d96a2b9982bee430c989a 100644 --- a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php +++ b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php @@ -123,13 +123,6 @@ class pdf_propale_azur extends ModelePDFPropales if ($conf->propale->dir_output) { - // Definition de l'objet $object (pour compatibilite ascendante) - if (! is_object($object)) - { - $id = $object; - $object = new Propal($this->db); - $ret=$object->fetch($id); - } $object->fetch_thirdparty(); $deja_regle = ""; @@ -264,8 +257,10 @@ class pdf_propale_azur extends ModelePDFPropales // TVA if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { + $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs); + $pdf->SetXY ($this->posxtva, $curY); - $pdf->MultiCell($this->posxup-$this->posxtva-1, 4, vatrate($object->lines[$i]->tva_tx,1,$object->lines[$i]->info_bits), 0, 'R'); + $pdf->MultiCell($this->posxup-$this->posxtva-1, 4, $vat_rate, 0, 'R'); } // Prix unitaire HT avant remise diff --git a/htdocs/lib/pdf.lib.php b/htdocs/lib/pdf.lib.php index 705d2af18e710e25ad3c1de214078b7b10f985af..dcc595621329d7e5aed6aba183d0c9cbf7500ab3 100644 --- a/htdocs/lib/pdf.lib.php +++ b/htdocs/lib/pdf.lib.php @@ -501,4 +501,23 @@ function pdf_getlinedesc($line,$outputlangs,$hideref=0,$hidedesc=0,$issupplierli } return $libelleproduitservice; } + +/** + * Return line vat rate + * @param object Object + * @param $i Current line number + * @param outputlang Object lang for output + */ +function pdf_getlinevatrate($object,$i,$outputlangs) +{ + if (!empty($object->hooks) && $object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) + { + // TODO add hook function + } + else + { + return vatrate($object->lines[$i]->tva_tx,1,$object->lines[$i]->info_bits); + } +} + ?> \ No newline at end of file