<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi Adam,<br>
      <br>
      I think the function is correct. Let me try to explain what I
      understand:<br>
      <br>
      In line 1309:<br>
      <br>
      $query="select smownerid from vtiger_crmentity where crmid = ?";<br>
      <br>
      We get the ownerid of the record passed in as a parameter, but we
      don't know if this ID belongs to a user or to a group.<br>
      <br>
      The next step is to make sure we got an ownerid:<br>
      <br>
      if($adb-&gt;num_rows($result) &gt; 0)<br>
      <br>
      Ok, once inside this "if", we need to know if the ID we have is a
      user or a group, so we launch the SQL:<br>
      <br>
      <br>
      $sql_result = $adb-&gt;pquery("select count(*) as count from
      vtiger_users where id = ?",array($ownerId));<br>
      <br>
      if the ownerid is of a user, this will return 1, if it belongs to
      a group it will return 0, thus the next "if" which fills the array
      (with only one ID always).<br>
      <br>
      So, I'm not sure what the stock functions is sending in, probably
      still the prior to 5.4.0 product handler instead of the new 5.4.0
      assigned user, but I think the getRecordOwnerId() function is
      correct.<br>
      <br>
      Joe<br>
      TSolucio<br>
      <br>
      <br>
      <br>
      On 23/01/13 21:24, Adam Heinz wrote:<br>
    </div>
    <blockquote
cite="mid:CAKBdvM-xS5nQK5=STj1x-R4QfrJyvHsBvoG3urOCbvotb_3d_g@mail.gmail.com"
      type="cite">
      <div dir="ltr">I'm mucking around with an aftersave handler for
        the Quotes module today and I started seeing some warnings
        getting logged. &nbsp;It looks like the product stock email is
        causing them, but when I trace into the code [1] my jaw hit the
        floor. &nbsp;Am I reading this right? &nbsp;This function seems to think
        that you can get back more than one user for a given id, which
        is impossible, since id is the primary key for vtiger_users. &nbsp;So
        then it passes the array('Users' =&gt; ID) to&nbsp;getOwnerName
        to&nbsp;getOwnerNameList and eventually blows up because it tries to
        use an array for an array key. &nbsp;To keep the blast radius small,
        I patched around the error [2], but I think the moral of the
        story is that&nbsp;getRecordOwnerId() should be rewritten or removed
        and all uses of it changed.
        <div>
          <br>
        </div>
        <div>[1]&nbsp;<a moz-do-not-send="true"
href="http://trac.vtiger.com/cgi-bin/trac.cgi/browser/vtigercrm/branches/5.4.0/include/utils/utils.php#L1303">http://trac.vtiger.com/cgi-bin/trac.cgi/browser/vtigercrm/branches/5.4.0/include/utils/utils.php#L1303</a></div>
        <div>[2]</div>
        <div>
          <div>Index: include/utils/InventoryUtils.php</div>
          <div>===================================================================</div>
          <div>--- include/utils/InventoryUtils.php<span class=""
              style="white-space:pre"> </span>(revision 3777)</div>
          <div>+++ include/utils/InventoryUtils.php<span class=""
              style="white-space:pre"> </span>(working copy)</div>
          <div>@@ -110,7 +110,7 @@</div>
          <div>&nbsp;<span class="" style="white-space:pre"> </span>if($upd_qty
            &lt; $reorderlevel)</div>
          <div>&nbsp;<span class="" style="white-space:pre"> </span>{</div>
          <div>&nbsp;<span class="" style="white-space:pre"> </span>//send
            mail to the handler</div>
          <div>-<span class="" style="white-space:pre"> </span>$handler
            = getRecordOwnerId($product_id);</div>
          <div>+<span class="" style="white-space:pre"> </span>$handler
            = $adb-&gt;database-&gt;GetOne("SELECT smownerid FROM
            vtiger_crmentity WHERE crmid = ?", array($product_id));</div>
          <div>&nbsp;<span class="" style="white-space:pre"> </span>$handler_name
            = getOwnerName($handler);</div>
          <div>&nbsp;<span class="" style="white-space:pre"> </span>if(vtws_isRecordOwnerUser($handler))
            {</div>
          <div>&nbsp;<span class="" style="white-space:pre"> </span>$to_address
            = getUserEmail($handler);</div>
        </div>
        <div><br>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
<a class="moz-txt-link-freetext" href="http://www.vtiger.com/">http://www.vtiger.com/</a></pre>
    </blockquote>
    <br>
  </body>
</html>