From eeb75bf6501d6db7a8f4a754b535137a84f1e78a Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Thu, 18 Oct 2018 10:26:32 +0200 Subject: [PATCH] FIX add object linked supplier order of reception --- htdocs/fourn/facture/card.php | 33 ++++++++++++++++++++++----------- htdocs/reception/list.php | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 14 deletions(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 9594715b70f..b2ab0f7dacc 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -652,6 +652,27 @@ if (empty($reshook)) } $object->origin = GETPOST('origin'); $object->origin_id = GETPOST('originid'); + + + require_once DOL_DOCUMENT_ROOT.'/'.$element.'/class/'.$subelement.'.class.php'; + $classname = ucfirst($subelement); + if ($classname == 'Fournisseur.commande') $classname='CommandeFournisseur'; + $objectsrc = new $classname($db); + $objectsrc->fetch($originid); + $objectsrc->fetch_thirdparty(); + + if ($object->origin == 'reception') + { + $objectsrc->fetchObjectLinked(); + + if (count($objectsrc->linkedObjectsIds['order_supplier']) > 0) + { + foreach ($objectsrc->linkedObjectsIds['order_supplier'] as $key => $value) + { + $object->linked_objects['order_supplier'] = $value; + } + } + } $id = $object->create($user); @@ -1411,18 +1432,8 @@ if ($action == 'create') $objectsrc = new $classname($db); $objectsrc->fetch($originid); $objectsrc->fetch_thirdparty(); + - if ($object->origin == 'reception') - { - $objectsrc->fetchObjectLinked(); - if (count($objectsrc->linkedObjectsIds['commande']) > 0) - { - foreach ($objectsrc->linkedObjectsIds['commande'] as $key => $value) - { - $object->linked_objects['commande'] = $value; - } - } - } $projectid = (!empty($objectsrc->fk_project)?$objectsrc->fk_project:''); //$ref_client = (!empty($objectsrc->ref_client)?$object->ref_client:''); diff --git a/htdocs/reception/list.php b/htdocs/reception/list.php index 14c2f65cd57..b92a3c6a745 100644 --- a/htdocs/reception/list.php +++ b/htdocs/reception/list.php @@ -178,15 +178,35 @@ if (empty($reshook)) } $object = new FactureFournisseur($db); - if (!empty($createbills_onebythird) && !empty($TFactThird[$rcp->socid])) $object = $TFactThird[$rcp->socid]; // If option "one bill per third" is set, we use already created reception. + if (!empty($createbills_onebythird) && !empty($TFactThird[$rcp->socid])){ + $object = $TFactThird[$rcp->socid]; // If option "one bill per third" is set, we use already created reception. + $object->fetchObjectLinked(); + $rcp->fetchObjectLinked(); + + if (count($rcp->linkedObjectsIds['order_supplier']) > 0) + { + foreach ($rcp->linkedObjectsIds['order_supplier'] as $key => $value) + { + if(empty($object->linkedObjectsIds['order_supplier']) || !in_array($value, $object->linkedObjectsIds['order_supplier']))//Dont try to link if already linked + $object->add_object_linked('order_supplier', $value); // add supplier order linked object + } + } + + } else { - + + + $object->socid = $rcp->socid; $object->type = FactureFournisseur::TYPE_STANDARD; $object->cond_reglement_id = $rcp->thirdparty->cond_reglement_supplier_id; $object->mode_reglement_id = $rcp->thirdparty->mode_reglement_supplier_id; + $object->fk_account = !empty($rcp->thirdparty->fk_account)?$rcp->thirdparty->fk_account:0; + $object->remise_percent = !empty($rcp->thirdparty->remise_percent)?$rcp->thirdparty->remise_percent:0; + $object->remise_absolue = !empty($rcp->thirdparty->remise_absolue)?$rcp->thirdparty->remise_absolue:0; + $object->fk_project = $rcp->fk_project; - $object->ref_supplier = $rcp->ref_supplier; + $object->ref_supplier = $rcp->ref_supplier; $datefacture = dol_mktime(12, 0, 0, GETPOST('remonth'),GETPOST('reday'), GETPOST('reyear')); if (empty($datefacture)) @@ -198,6 +218,15 @@ if (empty($reshook)) $object->origin = 'reception'; $object->origin_id = $id_reception; + $rcp->fetchObjectLinked(); + if (count($rcp->linkedObjectsIds['order_supplier']) > 0) + { + foreach ($rcp->linkedObjectsIds['order_supplier'] as $key => $value) + { + $object->linked_objects['order_supplier'] = $value; + } + } + $res = $object->create($user); //var_dump($object->error);exit; if($res > 0){