예제 #1
0
 protected function _push($Node, $Object)
 {
     $name = $Node->name();
     $data = $Node->data();
     if (substr($name, -2, 2) == 'Id' or $name == 'ExternalKey' or substr($name, -3, 3) == 'Ref') {
         $data = QuickBooks_IPP_IDS::buildIDType($Node->getAttribute('idDomain'), $data);
     }
     $adds = array();
     if ($Node->hasChildren()) {
         $class = 'QuickBooks_IPP_Object_' . $name;
         $Subobject = new $class();
         foreach ($Node->children() as $Subnode) {
             $this->_push($Subnode, $Subobject);
         }
         $Object->{'add' . $name}($Subobject);
     } else {
         if (true or isset($adds[$name])) {
             $Object->{'add' . $name}($data);
         }
         /*else
         		{
         			if ($data == 'false')
         			{
         				$Object->{'set' . $name}(false);
         			}
         			else if ($data == 'true')
         			{
         				$Object->{'set' . $name}(true);
         			}
         			else
         			{
         				$Object->{'set' . $name}($data);
         			}
         		}*/
     }
     if ($Node->hasAttributes()) {
         //Don't make a new object, just put it as a property of the same one
         foreach ($Node->attributes() as $attr_name => $attr_value) {
             $Object->{'add' . $name . '_' . $attr_name}($attr_value);
         }
     }
 }