[CORE] correction bug + trad + ajout de conditions pour le fonctionnement du module (#new_ask_price).

This commit is contained in:
phf 2015-02-02 17:50:33 +01:00
parent d2c4e8c98f
commit 5266542bc9
7 changed files with 52 additions and 32 deletions

View File

@ -616,6 +616,7 @@ if (empty($reshook))
$predef='';
$product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):'');
$price_ht = GETPOST('price_ht');
if (GETPOST('prod_entry_mode') == 'free')
{
$idprod=0;
@ -798,7 +799,8 @@ if (empty($reshook))
setEventMessage($mesg, 'errors');
} else {
// Insert line
$result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $pu_ttc, $info_bits, $type, - 1, 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $date_start, $date_end, $array_option);
$ref_fourn = GETPOST('fourn_ref');
$result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $pu_ttc, $info_bits, $type, - 1, 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $date_start, $date_end, $array_option, $ref_fourn);
if ($result > 0) {
$db->commit();
@ -925,8 +927,8 @@ if (empty($reshook))
if (! $error) {
$db->begin();
$result = $object->updateline(GETPOST('lineid'), $pu_ht, GETPOST('qty'), GETPOST('remise_percent'), $vat_rate, $localtax1_rate, $localtax2_rate, $description, 'HT', $info_bits, $special_code, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $type, $date_start, $date_end, $array_option);
$ref_fourn = GETPOST('fourn_ref');
$result = $object->updateline(GETPOST('lineid'), $pu_ht, GETPOST('qty'), GETPOST('remise_percent'), $vat_rate, $localtax1_rate, $localtax2_rate, $description, 'HT', $info_bits, $special_code, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $type, $date_start, $date_end, $array_option, $ref_fourn);
if ($result >= 0) {
$db->commit();
@ -1042,16 +1044,6 @@ if (empty($reshook))
$result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int'));
}
// bank account
else if ($action == 'setbankaccount' && $user->rights->askpricesupplier->creer) {
$result=$object->setBankAccount(GETPOST('fk_account', 'int'));
}
// shipping method
else if ($action == 'setshippingmethod' && $user->rights->askpricesupplier->creer) {
$result=$object->setShippingMethod(GETPOST('shipping_method_id', 'int'));
}
/*
* Ordonnancement des lignes
*/
@ -1894,7 +1886,7 @@ if ($action == 'create')
print '</td></tr>';
// Project
/*
if (! empty($conf->projet->enabled)) {
$langs->load("projects");
print '<tr><td>';
@ -1927,7 +1919,7 @@ if ($action == 'create')
}
print '</tr>';
}
*/
if ($soc->outstanding_limit)
{
@ -2043,7 +2035,6 @@ if ($action == 'create')
$ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1);
// Form to add new line
/* PHFAVRE retrait en temporaire*/
if ($object->statut == 0 && $user->rights->askpricesupplier->creer)
{
if ($action != 'editline')
@ -2075,7 +2066,7 @@ if ($action == 'create')
$parameters = array();
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
}
*/
*/
print '</table>';
print "</form>\n";

View File

@ -321,7 +321,7 @@ class AskPriceSupplier extends CommonObject
*
* @see add_product
*/
function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $price_base_type='HT', $pu_ttc=0, $info_bits=0, $type=0, $rang=-1, $special_code=0, $fk_parent_line=0, $fk_fournprice=0, $pa_ht=0, $label='',$date_start='', $date_end='',$array_option=0)
function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $price_base_type='HT', $pu_ttc=0, $info_bits=0, $type=0, $rang=-1, $special_code=0, $fk_parent_line=0, $fk_fournprice=0, $pa_ht=0, $label='',$date_start='', $date_end='',$array_option=0, $ref_fourn='')
{
global $mysoc;
@ -420,7 +420,8 @@ class AskPriceSupplier extends CommonObject
$this->line->date_start=$date_start;
$this->line->date_end=$date_end;
$this->line->ref_fourn = $this->db->escape($ref_fourn);
// infos marge
if (!empty($fk_product) && empty($fk_fournprice) && empty($pa_ht)) {
// by external module, take lowest buying price
@ -499,7 +500,7 @@ class AskPriceSupplier extends CommonObject
* @param array $array_option extrafields array
* @return int 0 if OK, <0 if KO
*/
function updateline($rowid, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0, $txlocaltax2=0, $desc='', $price_base_type='HT', $info_bits=0, $special_code=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=0, $pa_ht=0, $label='', $type=0, $date_start='', $date_end='', $array_option=0)
function updateline($rowid, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0, $txlocaltax2=0, $desc='', $price_base_type='HT', $info_bits=0, $special_code=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=0, $pa_ht=0, $label='', $type=0, $date_start='', $date_end='', $array_option=0, $ref_fourn)
{
global $conf,$user,$langs, $mysoc;
@ -579,6 +580,7 @@ class AskPriceSupplier extends CommonObject
$this->line->special_code = $special_code;
$this->line->fk_parent_line = $fk_parent_line;
$this->line->skip_update_total = $skip_update_total;
$this->line->ref_fourn = $ref_fourn;
// infos marge
if (!empty($fk_product) && empty($fk_fournprice) && empty($pa_ht)) {
@ -1188,7 +1190,7 @@ class AskPriceSupplier extends CommonObject
$sql = "SELECT d.rowid, d.fk_askpricesupplier, d.fk_parent_line, d.label as custom_label, 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.fk_product_fournisseur_price as fk_fournprice, d.buy_price_ht as pa_ht, d.special_code, d.rang, d.product_type,";
$sql.= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label as product_label,';
$sql.= ' d.date_start, d.date_end';
$sql.= ' d.date_start, d.date_end, d.ref_fourn as ref_produit_fourn';
$sql.= " FROM ".MAIN_DB_PREFIX."askpricesupplierdet as d";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON d.fk_product = p.rowid";
$sql.= " WHERE d.fk_askpricesupplier = ".$this->id;
@ -1246,6 +1248,8 @@ class AskPriceSupplier extends CommonObject
$line->date_start = $objp->date_start;
$line->date_end = $objp->date_end;
$line->ref_fourn = $objp->ref_produit_fourn;
$this->lines[$i] = $line;
//dol_syslog("1 ".$line->fk_product);
@ -1840,14 +1844,14 @@ class AskPriceSupplier extends CommonObject
* @return int <0 if KO, >0 if OK
*/
function updateOrCreatePriceFournisseur($user)
{
{
$productsupplier = new ProductFournisseur($this->db);
dol_syslog(get_class($this)."::updateorCreatePriceFournisseur", LOG_DEBUG);
foreach ($this->lines as $product) {
$idProductFourn = $productsupplier->find_min_price_product_fournisseur($product->fk_product, $product->qty);
$res = $productsupplier->fetch($idProductFourn);
if ($productsupplier->id) {
if ($productsupplier->fourn_qty == $product->qty) {
$this->updatePriceFournisseur($productsupplier->product_fourn_price_id, $product, $user);
@ -1872,7 +1876,7 @@ class AskPriceSupplier extends CommonObject
$price=price2num($product->subprice*$product->qty,'MU');
$unitPrice = price2num($product->subprice,'MU');
$sql = 'UPDATE '.MAIN_DB_PREFIX.'product_fournisseur_price SET price ='.$price.', unitprice ='.$unitPrice.' WHERE rowid = '.$idProductFournPrice;
$sql = 'UPDATE '.MAIN_DB_PREFIX.'product_fournisseur_price SET '.(!empty($product->ref_fourn) ? 'ref_fourn = `'.$product->ref_fourn.'`, ' : '').' price ='.$price.', unitprice ='.$unitPrice.' WHERE rowid = '.$idProductFournPrice;
$resql = $this->db->query($sql);
if (!resql) {
@ -1896,10 +1900,10 @@ class AskPriceSupplier extends CommonObject
$now=dol_now();
$values = array(
'`'.$this->db->idate($now).'`',
"'".$this->db->idate($now)."'",
$product->fk_product,
$this->client->id,
'`'.$this->db->escape($product->ref).'`', //En attente de récupérer la bonne ref fournisseur sur le form
"'".$product->ref_fourn."'",
$price,
$qty,
$unitPrice,
@ -2737,7 +2741,7 @@ class AskPriceSupplier extends CommonObject
$sql.= ' pt.total_ht, pt.total_tva, pt.total_ttc, pt.fk_product_fournisseur_price as fk_fournprice, pt.buy_price_ht as pa_ht, pt.special_code, pt.localtax1_tx, pt.localtax2_tx,';
$sql.= ' pt.date_start, pt.date_end, pt.product_type, pt.rang, pt.fk_parent_line,';
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
$sql.= ' p.description as product_desc';
$sql.= ' p.description as product_desc, pt.ref_fourn as ref_produit_fourn';
$sql.= ' FROM '.MAIN_DB_PREFIX.'askpricesupplierdet as pt';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
$sql.= ' WHERE pt.fk_askpricesupplier = '.$this->id;
@ -2784,6 +2788,8 @@ class AskPriceSupplier extends CommonObject
$this->lines[$i]->rang = $obj->rang;
$this->lines[$i]->date_start = $this->db->jdate($obj->date_start);
$this->lines[$i]->date_end = $this->db->jdate($obj->date_end);
$this->lines[$i]->ref_fourn = $obj->ref_produit_fourn;
$i++;
}
@ -2905,6 +2911,8 @@ class AskPriceSupplierLigne extends CommonObject
var $skip_update_total; // Skip update price total for special lines
var $ref_fourn;
/**
* Class line Contructor
*
@ -2928,7 +2936,7 @@ class AskPriceSupplierLigne extends CommonObject
$sql.= ' pd.info_bits, pd.total_ht, pd.total_tva, pd.total_ttc, pd.fk_product_fournisseur_price as fk_fournprice, pd.buy_price_ht as pa_ht, pd.special_code, pd.rang,';
$sql.= ' pd.localtax1_tx, pd.localtax2_tx, pd.total_localtax1, pd.total_localtax2,';
$sql.= ' p.ref as product_ref, p.label as product_label, p.description as product_desc,';
$sql.= ' pd.date_start, pd.date_end, pd.product_type';
$sql.= ' pd.date_start, pd.date_end, pd.product_type, pd.ref_fourn as ref_produit_fourn';
$sql.= ' FROM '.MAIN_DB_PREFIX.'askpricesupplierdet as pd';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pd.fk_product = p.rowid';
$sql.= ' WHERE pd.rowid = '.$rowid;
@ -2976,6 +2984,8 @@ class AskPriceSupplierLigne extends CommonObject
$this->date_start = $this->db->jdate($objp->date_start);
$this->date_end = $this->db->jdate($objp->date_end);
$this->ref_fourn = $objp->ref_produit_forun;
$this->db->free($result);
}
@ -3035,7 +3045,7 @@ class AskPriceSupplierLigne extends CommonObject
$sql.= ' subprice, remise_percent, ';
$sql.= ' info_bits, ';
$sql.= ' total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, fk_product_fournisseur_price, buy_price_ht, special_code, rang,';
$sql.= ' date_start, date_end)';
$sql.= ' date_start, date_end, ref_fourn)';
$sql.= " VALUES (".$this->fk_askpricesupplier.",";
$sql.= " ".($this->fk_parent_line>0?"'".$this->fk_parent_line."'":"null").",";
$sql.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
@ -3062,7 +3072,8 @@ class AskPriceSupplierLigne extends CommonObject
$sql.= ' '.$this->special_code.',';
$sql.= ' '.$this->rang.',';
$sql.= " ".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null").',';
$sql.= " ".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= " ".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null").',';
$sql.= " '".$this->db->escape($this->ref_fourn)."'";
$sql.= ')';
dol_syslog(get_class($this).'::insert', LOG_DEBUG);
@ -3225,6 +3236,7 @@ class AskPriceSupplierLigne extends CommonObject
if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
$sql.= " , date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= " , date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= " , ref_fourn=".(! empty($this->ref_fourn)?"'".$this->db->escape($this->ref_fourn)."'":"null");
$sql.= " WHERE rowid = ".$this->rowid;
dol_syslog(get_class($this)."::update", LOG_DEBUG);

View File

@ -29,6 +29,7 @@ CREATE TABLE `llx_askpricesupplierdet` (
`fk_product_fournisseur_price` int(11) DEFAULT NULL,
`special_code` int(11) DEFAULT '0',
`rang` int(11) DEFAULT '0',
`ref_fourn` varchar(30) DEFAULT NULL,
PRIMARY KEY (`rowid`),
KEY `idx_askpricesupplierdet_fk_askpricesupplierdet` (`fk_askpricesupplier`),
KEY `idx_askpricesupplierdet_fk_product` (`fk_product`),

View File

@ -2575,7 +2575,11 @@ abstract class CommonObject
// Description
print '<td><label for="">'.$langs->trans('Description').'</label></td>';
if ($this->element == 'askpricesupplier') {
print '<td align="right"><span id="title_fourn_ref">'.$langs->trans("AskPriceSupplierRefFourn").'</span></td>';
}
// VAT
print '<td align="right" width="50"><label for="tva_tx">'.$langs->trans('VAT').'</label></td>';

View File

@ -52,6 +52,9 @@ if (in_array($object->element,array('propal', 'askpricesupplier','facture','invo
<td<?php echo (! empty($conf->global->MAIN_VIEW_LINE_NUMBER) ? ' colspan="2"' : ''); ?>>
<div id="add"></div><span class="hideonsmartphone"><?php echo $langs->trans('AddNewLine'); ?></span><?php // echo $langs->trans("FreeZone"); ?>
</td>
<?php if ($object->element == 'askpricesupplier') { ?>
<td align="right"><span id="title_fourn_ref"><?php echo $langs->trans('AskPriceSupplierRefFourn'); ?></span></td>
<?php } ?>
<td align="right"><span id="title_vat"><?php echo $langs->trans('VAT'); ?></span></td>
<td align="right"><span id="title_up_ht"><?php echo $langs->trans('PriceUHT'); ?></span></td>
<?php if (! empty($inputalsopricewithtax)) { ?>
@ -195,7 +198,11 @@ else {
$doleditor->Create();
?>
</td>
<?php if ($object->element == 'askpricesupplier') { ?>
<td align="right"><input id="fourn_ref" name="fourn_ref" class="flat" value="" size="12"></td>
<?php } ?>
<td align="right"><?php
if (GETPOST('prod_entry_mode') != 'predef')
{

View File

@ -100,6 +100,10 @@ $coldisplay=-1; // We remove first td
?>
</td>
<?php if ($object->element == 'askpricesupplier') { ?>
<td align="right"><input id="fourn_ref" name="fourn_ref" class="flat" value="<?php echo $line->ref_fourn; ?>" size="12"></td>
<?php } ?>
<?php
$coldisplay++;
if ($this->situation_counter == 1 || !$this->situation_cycle_ref) {

View File

@ -44,6 +44,7 @@ NewAskPrice=Nouvelle demande de prix
NewAsk=Nouvelle demande
ShowAskpricesupplier=Afficher la demande de prix
AddAskPriceSupplier=Créer une demande de prix
AskPriceSupplierRefFourn= Réf. fournisseur
# # Modifié
ConfirmValidateAsk=Êtes-vous sûr de vouloir valider cette demande de prix sous la référence <b>%s</b> ?
DateAsk=Date de demande