diff --git a/.idea/vcs.xml b/.idea/vcs.xml index a57048e..94a25f7 100755 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,6 +2,5 @@ - \ No newline at end of file diff --git a/class/actions_supplierlink3.class.php b/class/actions_supplierlink3.class.php index c65a3d8..dcaa979 100755 --- a/class/actions_supplierlink3.class.php +++ b/class/actions_supplierlink3.class.php @@ -389,7 +389,7 @@ class ActionsSupplierLink3 extends CommonHookActions * @param HookManager $hookmanager Hook manager propagated to allow calling another hook * @return int Return integer < 0 on error, 0 on success, 1 to replace standard code */ - public function showLinkToObjectBlock($parameters, &$object, &$action, $hookmanager) + /*public function showLinkToObjectBlock($parameters, &$object, &$action, $hookmanager) { $myobject = new MyObject($object->db); $this->results = array('myobject@supplierlink3' => array( @@ -399,20 +399,68 @@ class ActionsSupplierLink3 extends CommonHookActions 'sql' => "SELECT t.rowid, t.ref, t.ref as 'name' FROM " . $this->db->prefix() . $myobject->table_element. " as t "),); return 1; - } + }*/ /* Add other hook methods here... */ public function printObjectLine($parameters, &$object, &$action, $hookmanager) { - if ($parameters['currentcontext'] != 'ordersuppliercard') { + static $css_added = false; + + $isSupplierOrder = ($parameters['currentcontext'] == 'ordersuppliercard'); + $isCustomerOrder = ($parameters['currentcontext'] == 'ordercard'); + + if (!$isSupplierOrder && !$isCustomerOrder) { return 0; } + // CSS nur einmal hinzufügen + if (!$css_added) { + ?> + + fk_product; + + $resStock = $this->db->query($sqlStock); + $qtyStock = 0; + $desiredQty = 0; + if ($resStock && $this->db->num_rows($resStock) > 0) { + $objStock = $this->db->fetch_object($resStock); + $qtyStock = (float) $objStock->stock; + $desiredQty = (float) $objStock->desiredstock; + } + + // Farbe setzen + $stockColor = 'ffffff'; + if ($qtyStock < 1) { + $stockColor = 'red'; // ausverkauft + } elseif ($qtyStock < $desiredQty) { + $stockColor = 'orange'; // kleiner als Wunschbestand + } + // Lieferanten-ID aus dem Bestell-Objekt holen - if (!empty($object->socid)) { + if (!empty($object->socid) && $isSupplierOrder) { $fk_supplier = $object->socid; + + // Extrafeld-Wert vom Lieferanten laden $sql = "SELECT shop_url FROM ".MAIN_DB_PREFIX."societe_extrafields"; $sql .= " WHERE fk_object = ".(int)$fk_supplier; @@ -428,28 +476,6 @@ class ActionsSupplierLink3 extends CommonHookActions if (!empty($shop_url)) { - // Lagerbestand und Wunschbestand abfragen - $sqlStock = "SELECT stock, desiredstock - FROM ".MAIN_DB_PREFIX."product - WHERE rowid = ".(int)$line->fk_product; - - $resStock = $this->db->query($sqlStock); - $qtyStock = 0; - $desiredQty = 0; - if ($resStock && $this->db->num_rows($resStock) > 0) { - $objStock = $this->db->fetch_object($resStock); - $qtyStock = (float) $objStock->stock; - $desiredQty = (float) $objStock->desiredstock; - } - - // Farbe setzen - $stockColor = 'ffffff'; - if ($qtyStock < 1) { - $stockColor = 'red'; // ausverkauft - } elseif ($qtyStock < $desiredQty) { - $stockColor = 'orange'; // kleiner als Wunschbestand - } - // Artikel-Link $full_url = rtrim($shop_url, '/') . '/' . $line->ref_fourn; $newref = ''; @@ -464,6 +490,22 @@ class ActionsSupplierLink3 extends CommonHookActions } } } + } elseif ($isCustomerOrder) { + // NUR für Produkte, NICHT für Dienstleistungen + if (!empty($line->fk_product) && $line->product_type == 0) { + + // Lagerbestand rechtsbündig mit float + $stockInfo = ''; + $stockInfo .= ''; + $stockInfo .= ' ' . $qtyStock . ''; + $stockInfo .= ''; + + // An verschiedene mögliche Felder anhängen + if (isset($line->product_label)) { + $line->product_label .= $stockInfo; + } + + } } return 0; diff --git a/core/modules/modSupplierLink3.class.php b/core/modules/modSupplierLink3.class.php index db06d78..c9f27e0 100755 --- a/core/modules/modSupplierLink3.class.php +++ b/core/modules/modSupplierLink3.class.php @@ -122,6 +122,7 @@ class modSupplierLink3 extends DolibarrModules 'hooks' => array( 'data' => array( 'ordersuppliercard', + 'ordercard', ), 'entity' => '0', ),