|
dolibarr 18.0.8
|
Class to manage products or services. More...


Public Member Functions | |
| __construct ($db) | |
| Constructor. | |
| check () | |
| Check that ref and label are ok. | |
| create ($user, $notrigger=0) | |
| Insert product into database. | |
| verify () | |
| Check properties of product are ok (like name, barcode, ...). | |
| check_barcode ($valuetotest, $typefortest) | |
| Check barcode. | |
| update ($id, $user, $notrigger=false, $action='update', $updatetype=false) | |
| Update a record into database. | |
| delete (User $user, $notrigger=0) | |
| Delete a product from database (if not used) | |
| setMultiLangs ($user) | |
| Update or add a translation for a product. | |
| delMultiLangs ($langtodelete, $user) | |
| Delete a language for this product. | |
| setAccountancyCode ($type, $value) | |
| Sets an accountancy code for a product. | |
| getMultiLangs () | |
| Load array this->multilangs. | |
| log_price_delete ($user, $rowid) | |
| Delete a price line. | |
| getSellPrice ($thirdparty_seller, $thirdparty_buyer, $pqp=0) | |
| Return price of sell of a product for a seller/buyer/product. | |
| get_buyprice ($prodfournprice, $qty, $product_id=0, $fourn_ref='', $fk_soc=0) | |
| Read price used by a provider. | |
| updatePrice ($newprice, $newpricebase, $user, $newvat='', $newminprice=0, $level=0, $newnpr=0, $newpbq=0, $ignore_autogen=0, $localtaxes_array=array(), $newdefaultvatcode='') | |
| Modify customer price of a product/Service for a given level. | |
| setPriceExpression ($expression_id) | |
| Sets the supplier price expression. | |
| fetch ($id='', $ref='', $ref_ext='', $barcode='', $ignore_expression=0, $ignore_price_load=0, $ignore_lang_load=0) | |
| Load a product in memory from database. | |
| load_stats_mo ($socid=0) | |
| Charge tableau des stats OF pour le produit/service. | |
| load_stats_bom ($socid=0) | |
| Charge tableau des stats OF pour le produit/service. | |
| load_stats_propale ($socid=0) | |
| Charge tableau des stats propale pour le produit/service. | |
| load_stats_proposal_supplier ($socid=0) | |
| Charge tableau des stats propale pour le produit/service. | |
| load_stats_commande ($socid=0, $filtrestatut='', $forVirtualStock=0) | |
| Charge tableau des stats commande client pour le produit/service. | |
| load_stats_commande_fournisseur ($socid=0, $filtrestatut='', $forVirtualStock=0, $dateofvirtualstock=null) | |
| Charge tableau des stats commande fournisseur pour le produit/service. | |
| load_stats_sending ($socid=0, $filtrestatut='', $forVirtualStock=0, $filterShipmentStatus='') | |
| Charge tableau des stats expedition client pour le produit/service. | |
| load_stats_reception ($socid=0, $filtrestatut='', $forVirtualStock=0, $dateofvirtualstock=null) | |
| Charge tableau des stats réception fournisseur pour le produit/service. | |
| load_stats_inproduction ($socid=0, $filtrestatut='', $forVirtualStock=0, $dateofvirtualstock=null) | |
| Charge tableau des stats production pour le produit/service. | |
| load_stats_contrat ($socid=0) | |
| Charge tableau des stats contrat pour le produit/service. | |
| load_stats_facture ($socid=0) | |
| Charge tableau des stats facture pour le produit/service. | |
| load_stats_facturerec ($socid=0) | |
| Charge tableau des stats facture recurrentes pour le produit/service. | |
| load_stats_facture_fournisseur ($socid=0) | |
| Charge tableau des stats facture pour le produit/service. | |
| get_nb_vente ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units or customers invoices in which product is included. | |
| get_nb_achat ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units or supplier invoices in which product is included. | |
| get_nb_propal ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units in proposals in which product is included. | |
| get_nb_propalsupplier ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units in proposals in which product is included. | |
| get_nb_order ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units in orders in which product is included. | |
| get_nb_ordersupplier ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units in orders in which product is included. | |
| get_nb_contract ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units in orders in which product is included. | |
| get_nb_mos ($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='') | |
| Return nb of units in orders in which product is included. | |
| add_sousproduit ($id_pere, $id_fils, $qty, $incdec=1) | |
| Link a product/service to a parent product/service. | |
| update_sousproduit ($id_pere, $id_fils, $qty, $incdec=1) | |
| Modify composed product. | |
| del_sousproduit ($fk_parent, $fk_child) | |
| Remove a link between a subproduct and a parent product/service. | |
| is_sousproduit ($fk_parent, $fk_child) | |
| Check if it is a sub-product into a kit. | |
| add_fournisseur ($user, $id_fourn, $ref_fourn, $quantity) | |
| Add a supplier price for the product. | |
| list_suppliers () | |
| Return list of suppliers providing the product or service. | |
| clone_price ($fromId, $toId) | |
| Recopie les prix d'un produit/service sur un autre. | |
| clone_associations ($fromId, $toId) | |
| Clone links between products. | |
| clone_fournisseurs ($fromId, $toId) | |
| Recopie les fournisseurs et prix fournisseurs d'un produit/service sur un autre. | |
| fetch_prod_arbo ($prod, $compl_path='', $multiply=1, $level=1, $id_parent=0, $ignore_stock_load=0) | |
| Function recursive, used only by get_arbo_each_prod(), to build tree of subproducts into ->res Define value of this->res. | |
| get_arbo_each_prod ($multiply=1, $ignore_stock_load=0) | |
| Build the tree of subproducts and return it. | |
| hasFatherOrChild ($mode=0) | |
| Count all parent and children products for current product (first level only) | |
| hasVariants () | |
| Return if a product has variants or not. | |
| isVariant () | |
| Return if loaded product is a variant. | |
| getFather () | |
| Return all parent products for current product (first level only) | |
| getChildsArbo ($id, $firstlevelonly=0, $level=1, $parents=array()) | |
| Return childs of product $id. | |
| get_sousproduits_arbo () | |
| getTooltipContentArray ($params) | |
| getTooltipContentArray | |
| getNomUrl ($withpicto=0, $option='', $maxlength=0, $save_lastsearch_value=-1, $notooltip=0, $morecss='', $add_label=0, $sep=' - ') | |
| Return clicable link of object (with eventually picto) | |
| generateDocument ($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0) | |
| Create a document onto disk according to template module. | |
| getLibStatut ($mode=0, $type=0) | |
| Return label of status of object. | |
| LibStatut ($status, $mode=0, $type=0) | |
| Return label of a given status. | |
| getLibFinished () | |
| Retour label of nature of product. | |
| correct_stock ($user, $id_entrepot, $nbpiece, $movement, $label='', $price=0, $inventorycode='', $origin_element='', $origin_id=null, $disablestockchangeforsubproduct=0, $extrafields=null) | |
| Adjust stock in a warehouse for product. | |
| correct_stock_batch ($user, $id_entrepot, $nbpiece, $movement, $label='', $price=0, $dlc='', $dluo='', $lot='', $inventorycode='', $origin_element='', $origin_id=null, $disablestockchangeforsubproduct=0, $extrafields=null) | |
| Adjust stock in a warehouse for product with batch number. | |
| load_stock ($option='', $includedraftpoforvirtual=null, $dateofvirtualstock=null) | |
| Load information about stock of a product into ->stock_reel, ->stock_warehouse[] (including stock_warehouse[idwarehouse]->detail_batch for batch products) This function need a lot of load. | |
| load_virtual_stock ($includedraftpoforvirtual=null, $dateofvirtualstock=null) | |
| Load value ->stock_theorique of a product. | |
| loadBatchInfo ($batch) | |
| Load existing information about a serial. | |
| add_photo ($sdir, $file) | |
| Move an uploaded file described into $file array into target directory $sdir. | |
| is_photo_available ($sdir) | |
| Return if at least one photo is available. | |
| liste_photos ($dir, $nbmax=0) | |
| Return an array with all photos of product found on disk. | |
| delete_photo ($file) | |
| Delete a photo and its thumbs. | |
| get_image_size ($file) | |
| Load size of image file. | |
| load_state_board () | |
| Load indicators this->nb for the dashboard. | |
| isProduct () | |
| Return if object is a product. | |
| isService () | |
| Return if object is a product. | |
| isMandatoryPeriod () | |
| Return if object have a constraint on mandatory_period. | |
| get_barcode ($object, $type='') | |
| Get a barcode from the module to generate barcode values. | |
| initAsSpecimen () | |
| Initialise an instance with random values. | |
| getLabelOfUnit ($type='long') | |
| Returns the text label from units dictionary. | |
| hasbatch () | |
| Return if object has a sell-by date or eat-by date. | |
| min_recommended_price () | |
| Return minimum product recommended price. | |
| setCategories ($categories) | |
| Sets object to supplied categories. | |
| generateMultiprices (User $user, $baseprice, $price_type, $price_vat, $npr, $psq) | |
| Generates prices for a product based on product multiprice generation rules. | |
| getRights () | |
| Returns the rights used for this class. | |
| info ($id) | |
| Load information for tab info. | |
| getProductDurationHours () | |
| Return the duration in Hours of a service base on duration fields. | |
| getKanbanView ($option='', $arraydata=null) | |
| Return clicable link of object (with eventually picto) | |
Public Member Functions inherited from CommonObject | |
| setErrorsFromObject ($object) | |
| setErrorsFromObject | |
| getTooltipContent ($params) | |
| getTooltipContent | |
| errorsToString () | |
| Method to output saved errors. | |
| getFormatedCustomerRef ($objref) | |
| Return customer ref for screen output. | |
| getFormatedSupplierRef ($objref) | |
| Return supplier ref for screen output. | |
| getFullAddress ($withcountry=0, $sep="\n", $withregion=0, $extralangcode='') | |
| Return full address of contact. | |
| getLastMainDocLink ($modulepart, $initsharekey=0, $relativelink=0) | |
| Return the link of last main doc file for direct public download. | |
| add_contact ($fk_socpeople, $type_contact, $source='external', $notrigger=0) | |
| Add a link between element $this->element and a contact. | |
| copy_linked_contact ($objFrom, $source='internal') | |
| Copy contact from one element to current. | |
| update_contact ($rowid, $statut, $type_contact_id=0, $fk_socpeople=0) | |
| Update a link to contact line. | |
| delete_contact ($rowid, $notrigger=0) | |
| Delete a link to contact line. | |
| delete_linked_contact ($source='', $code='') | |
| Delete all links between an object $this and all its contacts in llx_element_contact. | |
| liste_contact ($statusoflink=-1, $source='external', $list=0, $code='', $status=-1, $arrayoftcids=array()) | |
| Get array of all contacts for an object. | |
| swapContactStatus ($rowid) | |
| Update status of a contact linked to object. | |
| liste_type_contact ($source='internal', $order='position', $option=0, $activeonly=0, $code='') | |
| Return array with list of possible values for type of contacts. | |
| listeTypeContacts ($source='internal', $option=0, $activeonly=0, $code='', $element='', $excludeelement='') | |
| Return array with list of possible values for type of contacts. | |
| getIdContact ($source, $code, $status=0) | |
| Return id of contacts for a source and a contact code. | |
| fetch_contact ($contactid=null) | |
| Load object contact with id=$this->contact_id into $this->contact. | |
| fetch_thirdparty ($force_thirdparty_id=0) | |
| Load the third party of object, from id $this->socid or $this->fk_soc, into this->thirdparty. | |
| fetchOneLike ($ref) | |
| Looks for an object with ref matching the wildcard provided It does only work when $this->table_ref_field is set. | |
| fetch_barcode () | |
| Load data for barcode into properties ->barcode_type* Properties ->barcode_type that is id of barcode. | |
| fetch_project () | |
| Load the project with id $this->fk_project into this->project. | |
| fetch_projet () | |
| Load the project with id $this->fk_project into this->project. | |
| fetch_product () | |
| Load the product with id $this->fk_product into this->product. | |
| fetch_user ($userid) | |
| Load the user with id $userid into this->user. | |
| fetch_origin () | |
| Read linked origin object. | |
| fetchObjectFrom ($table, $field, $key, $element=null) | |
| Load object from specific field. | |
| getValueFrom ($table, $id, $field) | |
| Getter generic. | |
| setValueFrom ($field, $value, $table='', $id=null, $format='', $id_field='', $fuser=null, $trigkey='', $fk_user_field='fk_user_modif') | |
| Setter generic. | |
| load_previous_next_ref ($filter, $fieldid, $nodbprefix=0) | |
| Load properties id_previous and id_next by comparing $fieldid with $this->ref. | |
| getListContactId ($source='external') | |
| Return list of id of contacts of object. | |
| setProject ($projectid, $notrigger=0) | |
| Link element with a project. | |
| setPaymentMethods ($id) | |
| Change the payments methods. | |
| setMulticurrencyCode ($code) | |
| Change the multicurrency code. | |
| setPaymentTerms ($id, $deposit_percent=null) | |
| Change the payments terms. | |
| setTransportMode ($id) | |
| Change the transport mode methods. | |
| setRetainedWarrantyPaymentTerms ($id) | |
| Change the retained warranty payments terms. | |
| setDeliveryAddress ($id) | |
| Define delivery address. | |
| setShippingMethod ($shipping_method_id, $notrigger=false, $userused=null) | |
| Change the shipping method. | |
| setWarehouse ($warehouse_id) | |
| Change the warehouse. | |
| setDocModel ($user, $modelpdf) | |
| Set last model used by doc generator. | |
| setBankAccount ($fk_account, $notrigger=false, $userused=null) | |
| Change the bank account. | |
| line_order ($renum=false, $rowidorder='ASC', $fk_parent_line=true) | |
| Save a new position (field rang) for details lines. | |
| getChildrenOfLine ($id, $includealltree=0) | |
| Get children of line. | |
| line_up ($rowid, $fk_parent_line=true) | |
| Update a line to have a lower rank. | |
| line_down ($rowid, $fk_parent_line=true) | |
| Update a line to have a higher rank. | |
| updateRangOfLine ($rowid, $rang) | |
| Update position of line (rang) | |
| line_ajaxorder ($rows) | |
| Update position of line with ajax (rang) | |
| updateLineUp ($rowid, $rang) | |
| Update position of line up (rang) | |
| updateLineDown ($rowid, $rang, $max) | |
| Update position of line down (rang) | |
| getRangOfLine ($rowid) | |
| Get position of line (rang) | |
| getIdOfLine ($rang) | |
| Get rowid of the line relative to its position. | |
| line_max ($fk_parent_line=0) | |
| Get max value used for position of line (rang) | |
| update_ref_ext ($ref_ext) | |
| Update external ref of element. | |
| update_note ($note, $suffix='', $notrigger=0) | |
| Update note of element. | |
| update_note_public ($note) | |
| Update public note (kept for backward compatibility) | |
| update_price ($exclspec=0, $roundingadjust='none', $nodatabaseupdate=0, $seller=null) | |
| Update total_ht, total_ttc, total_vat, total_localtax1, total_localtax2 for an object (sum of lines). | |
| add_object_linked ($origin=null, $origin_id=null, $f_user=null, $notrigger=0) | |
| Add an object link into llx_element_element. | |
| fetchObjectLinked ($sourceid=null, $sourcetype='', $targetid=null, $targettype='', $clause='OR', $alsosametype=1, $orderby='sourcetype', $loadalsoobjects=1) | |
| Fetch array of objects linked to current object (object of enabled modules only). | |
| clearObjectLinkedCache () | |
| Clear the cache saying that all linked object were already loaded. | |
| updateObjectLinked ($sourceid=null, $sourcetype='', $targetid=null, $targettype='', $f_user=null, $notrigger=0) | |
| Update object linked of a current object. | |
| deleteObjectLinked ($sourceid=null, $sourcetype='', $targetid=null, $targettype='', $rowid='', $f_user=null, $notrigger=0) | |
| Delete all links between an object $this. | |
| setStatut ($status, $elementId=null, $elementType='', $trigkey='', $fieldstatus='fk_statut') | |
| Set status of an object. | |
| getCanvas ($id=0, $ref='') | |
| Load type of canvas of an object if it exists. | |
| getSpecialCode ($lineid) | |
| Get special code of a line. | |
| isObjectUsed ($id=0, $entity=0) | |
| Function to check if an object is used by others (by children). | |
| hasProductsOrServices ($predefined=-1) | |
| Function to say how many lines object contains. | |
| getTotalDiscount () | |
| Function that returns the total amount HT of discounts applied for all lines. | |
| getTotalWeightVolume () | |
| Return into unit=0, the calculated total of weight and volume of all lines * qty Calculate by adding weight and volume of each product line, so properties ->volume/volume_units/weight/weight_units must be loaded on line. | |
| setExtraParameters () | |
| Set extra parameters. | |
| formAddObjectLine ($dateSelector, $seller, $buyer, $defaulttpldir='/core/tpl') | |
| Show add free and predefined products/services form. | |
| printObjectLines ($action, $seller, $buyer, $selected=0, $dateSelector=0, $defaulttpldir='/core/tpl') | |
| Return HTML table for object lines TODO Move this into an output class file (htmlline.class.php) If lines are into a template, title must also be into a template But for the moment we don't know if it's possible as we keep a method available on overloaded objects. | |
| printObjectLine ($action, $line, $var, $num, $i, $dateSelector, $seller, $buyer, $selected=0, $extrafields=null, $defaulttpldir='/core/tpl') | |
| Return HTML content of a detail line TODO Move this into an output class file (htmlline.class.php) | |
| printOriginLinesList ($restrictlist='', $selectedLines=array()) | |
| Return HTML table table of source object lines TODO Move this and previous function into output html class file (htmlline.class.php). | |
| printOriginLine ($line, $var, $restrictlist='', $defaulttpldir='/core/tpl', $selectedLines=array()) | |
| Return HTML with a line of table array of source object lines TODO Move this and previous function into output html class file (htmlline.class.php). | |
| add_element_resource ($resource_id, $resource_type, $busy=0, $mandatory=0) | |
| Add resources to the current object : add entry into llx_element_resources Need $this->element & $this->id. | |
| delete_resource ($rowid, $element, $notrigger=0) | |
| Delete a link to resource line. | |
| __clone () | |
| Overwrite magic function to solve problem of cloning object that are kept as references. | |
| indexFile ($destfull, $update_main_doc_field) | |
| Index a file into the ECM database. | |
| addThumbs ($file) | |
| Build thumb. | |
| delThumbs ($file) | |
| Delete thumbs. | |
| getDefaultCreateValueFor ($fieldname, $alternatevalue=null, $type='alphanohtml') | |
| Return the default value to use for a field when showing the create form of object. | |
| call_trigger ($triggerName, $user) | |
| Call trigger based on this instance. | |
| fetchValuesForExtraLanguages () | |
| Function to get alternative languages of a data into $this->array_languages This method is NOT called by method fetch of objects but must be called separately. | |
| setValuesForExtraLanguages ($onlykey='') | |
| Fill array_options property of object by extrafields value (using for data sent by forms) | |
| fetchNoCompute ($id) | |
| Function to make a fetch but set environment to avoid to load computed values before. | |
| fetch_optionals ($rowid=null, $optionsArray=null) | |
| Function to get extra fields of an object into $this->array_options This method is in most cases called by method fetch of objects but you can call it separately. | |
| deleteExtraFields () | |
| Delete all extra fields values for the current object. | |
| insertExtraFields ($trigger='', $userused=null) | |
| Add/Update all extra fields values for the current object. | |
| insertExtraLanguages ($trigger='', $userused=null) | |
| Add/Update all extra fields values for the current object. | |
| updateExtraField ($key, $trigger=null, $userused=null) | |
| Update 1 extra field value for the current object. | |
| updateExtraLanguages ($key, $trigger=null, $userused=null) | |
| Update an extra language value for the current object. | |
| showInputField ($val, $key, $value, $moreparam='', $keysuffix='', $keyprefix='', $morecss=0, $nonewbutton=0) | |
| Return HTML string to put an input field into a page Code very similar with showInputField of extra fields. | |
| clearFieldError ($fieldKey) | |
| clear validation message result for a field | |
| setFieldError ($fieldKey, $msg='') | |
| set validation error message a field | |
| getFieldError ($fieldKey) | |
| get field error message | |
| validateField ($fields, $fieldKey, $fieldValue) | |
| Return validation test result for a field. | |
| showOptionals ($extrafields, $mode='view', $params=null, $keysuffix='', $keyprefix='', $onetrtd=0, $display_type='card') | |
| Function to show lines of extrafields with output datas. | |
| getJSListDependancies ($type='_extra') | |
| defineBuyPrice ($unitPrice=0.0, $discountPercent=0.0, $fk_product=0) | |
| Get buy price to use for margin calculation. | |
| show_photos ($modulepart, $sdir, $size=0, $nbmax=0, $nbbyrow=5, $showfilename=0, $showaction=0, $maxHeight=120, $maxWidth=160, $nolink=0, $overwritetitle=0, $usesharelink=0, $cache='', $addphotorefcss='photoref') | |
| Show photos of an object (nbmax maximum), into several columns. | |
| isDate ($info) | |
| Function test if type is date. | |
| isDuration ($info) | |
| Function test if type is duration. | |
| isInt ($info) | |
| Function test if type is integer. | |
| isFloat ($info) | |
| Function test if type is float. | |
| isText ($info) | |
| Function test if type is text. | |
| setVarsFromFetchObj (&$obj) | |
| Function to load data from a SQL pointer into properties of current object $this. | |
| getFieldList ($alias='', $excludefields=array()) | |
| Function to concat keys of fields. | |
| createCommon (User $user, $notrigger=false) | |
| Create object into database. | |
| fetchCommon ($id, $ref=null, $morewhere='') | |
| Load object in memory from the database. | |
| fetchLinesCommon ($morewhere='') | |
| Load object in memory from the database. | |
| updateCommon (User $user, $notrigger=false) | |
| Update object into database. | |
| deleteCommon (User $user, $notrigger=false, $forcechilddeletion=0) | |
| Delete object in database. | |
| deleteByParentField ($parentId=0, $parentField='', $filter=array(), $filtermode="AND") | |
| Delete all child object from a parent ID. | |
| deleteLineCommon (User $user, $idline, $notrigger=false) | |
| Delete a line of object in database. | |
| setStatusCommon ($user, $status, $notrigger=0, $triggercode='') | |
| Set to a status. | |
| initAsSpecimenCommon () | |
| Initialise object with example values Id must be 0 if object instance is a specimen. | |
| fetchComments () | |
| Load comments linked with current task. | |
| getNbComments () | |
| Return nb comments already posted. | |
| trimParameters ($parameters) | |
| Trim object parameters. | |
| getCategoriesCommon ($type_categ) | |
| Sets object to given categories. | |
| setCategoriesCommon ($categories, $type_categ='', $remove_existing=true) | |
| Sets object to given categories. | |
| cloneCategories ($fromId, $toId, $type='') | |
| Copy related categories to another object. | |
| deleteEcmFiles ($mode=0) | |
| Delete related files of object in database. | |
Static Public Member Functions | |
| static | replaceThirdparty (DoliDB $dbs, $origin_id, $dest_id) |
| Function used to replace a thirdparty id with another one. | |
Static Public Member Functions inherited from CommonObject | |
| static | isExistingObject ($element, $id, $ref='', $ref_ext='') |
| Check an object id/ref exists If you don't need/want to instantiate object and just need to know if object exists, use this method instead of fetch. | |
| static | getAllItemsLinkedByObjectID ($fk_object_where, $field_select, $field_where, $table_element) |
| Function used to get an array with all items linked to an object id in association table. | |
| static | deleteAllItemsLinkedByObjectID ($fk_object_where, $field_where, $table_element) |
| Function used to remove all items linked to an object id in association table. | |
| static | commonReplaceThirdparty (DoliDB $dbs, $origin_id, $dest_id, array $tables, $ignoreerrors=0) |
| Function used to replace a thirdparty id with another one. | |
| static | commonReplaceProduct (DoliDB $dbs, $origin_id, $dest_id, array $tables, $ignoreerrors=0) |
| Function used to replace a product id with another one. | |
Public Attributes | |
| $libelle | |
| $multiprices = array() | |
| Arrays for multiprices. | |
| $price_by_qty | |
| Price by quantity arrays. | |
| $multilangs = array() | |
| Array for multilangs. | |
| $default_vat_code | |
| Default VAT code for product (link to code into llx_c_tva but without foreign keys) | |
| $tva_tx | |
| Default VAT rate of product. | |
| $tva_npr = 0 | |
| int French VAT NPR (0 or 1) | |
| $recuperableonly | |
| $remise_percent | |
| Default discount percent. | |
| $localtax1_tx | |
| Other local taxes. | |
| $pmp | |
| Average price value for product entry into stock (PMP) | |
| $desiredstock = 0 | |
| Ask for replenishment when $desiredstock < $stock_reel. | |
| $duration_value | |
| Service expiration. | |
| $duration_unit | |
| Serivce expiration unit. | |
| $duration | |
| Service expiration label (value + unit) | |
| $fk_default_workstation | |
| Service Workstation. | |
| $weight | |
| Metric of products. | |
| $imgWidth | |
| Size of image. | |
| $product_fourn_id | |
| Id du fournisseur. | |
| $product_id_already_linked | |
| Product ID already linked to a reference supplier. | |
| $stock_warehouse = array() | |
| Contains detail of stock of product into each warehouse. | |
| $ref_fourn | |
| $res | |
| Path of subproducts. | |
| const | TYPE_PRODUCT = 0 |
| Regular product. | |
| const | TYPE_SERVICE = 1 |
| Service. | |
| const | TYPE_ASSEMBLYKIT = 2 |
| Advanced feature: assembly kit. | |
| const | TYPE_STOCKKIT = 3 |
| Advanced feature: stock kit. | |
Public Attributes inherited from CommonObject | |
| $fk_projet | |
| $note | |
| $date_modification | |
Protected Attributes | |
| $table_ref_field = 'ref' | |
| {} | |
Private Member Functions | |
| getArrayForPriceCompare ($level=0) | |
| used to check if price have really change to avoid log pollution | |
| _log_price ($user, $level=0) | |
| Insert a track that we changed a customer price. | |
| _get_stats ($sql, $mode, $year=0) | |
| Return an array formated for showing graphs. | |
Additional Inherited Members | |
Protected Member Functions inherited from CommonObject | |
| commonGenerateDocument ($modelspath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams=null) | |
| Common function for all objects extending CommonObject for generating documents. | |
| isArray ($info) | |
| Function test if type is array. | |
| canBeNull ($info) | |
| Function test if field can be null. | |
| isForcedToNullIfZero ($info) | |
| Function test if field is forced to null if zero or empty. | |
| isIndex ($info) | |
| Function test if is indexed. | |
| setSaveQuery () | |
| Function to return the array of data key-value from the ->fields and all the ->properties of an object. | |
| quote ($value, $fieldsentry) | |
| Add quote to field value if necessary. | |
Class to manage products or services.
Definition at line 46 of file product.class.php.
| Product::__construct | ( | $db | ) |
|
private |
Return an array formated for showing graphs.
| string | $sql | Request to execute |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $year | Year (0=current year, -1=all years) |
Definition at line 3775 of file product.class.php.
References dol_mktime(), dol_print_date(), dol_strlen(), and dol_trunc().
Referenced by get_nb_achat(), get_nb_contract(), get_nb_mos(), get_nb_order(), get_nb_ordersupplier(), get_nb_propal(), get_nb_propalsupplier(), and get_nb_vente().
|
private |
Insert a track that we changed a customer price.
Definition at line 1834 of file product.class.php.
References $tva_npr, dol_now(), dol_print_error(), dol_syslog(), price(), and price2num().
Referenced by create(), and updatePrice().
| Product::add_fournisseur | ( | $user, | |
| $id_fourn, | |||
| $ref_fourn, | |||
| $quantity ) |
Add a supplier price for the product.
Note: Duplicate ref is accepted for different quantity only, or for different companies.
| User | $user | User that make link |
| int | $id_fourn | Supplier id |
| string | $ref_fourn | Supplier ref |
| float | $quantity | Quantity minimum for price |
Definition at line 4462 of file product.class.php.
References $ref_fourn, dol_now(), dol_syslog(), and price2num().
| Product::add_photo | ( | $sdir, | |
| $file ) |
Move an uploaded file described into $file array into target directory $sdir.
| string | $sdir | Target directory |
| string | $file | Array of file info of file to upload: array('name'=>..., 'tmp_name'=>...) |
Definition at line 5792 of file product.class.php.
References CommonObject\addThumbs(), dol_mkdir(), dol_move_uploaded_file(), dol_osencode(), getDolGlobalInt(), and ref.
| Product::add_sousproduit | ( | $id_pere, | |
| $id_fils, | |||
| $qty, | |||
| $incdec = 1 ) |
Link a product/service to a parent product/service.
| int | $id_pere | Id of parent product/service |
| int | $id_fils | Id of child product/service |
| int | $qty | Quantity |
| int | $incdec | 1=Increase/decrease stock of child when parent stock increase/decrease |
Definition at line 4276 of file product.class.php.
References del_sousproduit(), dol_print_error(), and price2num().
| Product::check | ( | ) |
Check that ref and label are ok.
Definition at line 607 of file product.class.php.
References dol_sanitizeFileName(), dol_strlen(), getDolGlobalInt(), and ref.
| Product::check_barcode | ( | $valuetotest, | |
| $typefortest ) |
Check barcode.
| string | $valuetotest | Value to test |
| string | $typefortest | Type of barcode (ISBN, EAN, ...) |
Definition at line 997 of file product.class.php.
References $res, dol_include_once(), and dol_syslog().
Referenced by verify().
| Product::clone_associations | ( | $fromId, | |
| $toId ) |
Clone links between products.
Definition at line 4679 of file product.class.php.
References dol_syslog().
| Product::clone_fournisseurs | ( | $fromId, | |
| $toId ) |
Recopie les fournisseurs et prix fournisseurs d'un produit/service sur un autre.
| int | $fromId | Id produit source |
| int | $toId | Id produit cible |
Definition at line 4706 of file product.class.php.
References dol_now(), and dol_syslog().
| Product::clone_price | ( | $fromId, | |
| $toId ) |
Recopie les prix d'un produit/service sur un autre.
| int | $fromId | Id product source |
| int | $toId | Id product target |
Definition at line 4591 of file product.class.php.
References dol_now(), and dol_syslog().
| Product::correct_stock | ( | $user, | |
| $id_entrepot, | |||
| $nbpiece, | |||
| $movement, | |||
| $label = '', | |||
| $price = 0, | |||
| $inventorycode = '', | |||
| $origin_element = '', | |||
| $origin_id = null, | |||
| $disablestockchangeforsubproduct = 0, | |||
| $extrafields = null ) |
Adjust stock in a warehouse for product.
| User | $user | user asking change |
| int | $id_entrepot | id of warehouse |
| double | $nbpiece | nb of units (should be always positive, use $movement to decide if we add or remove) |
| int | $movement | 0 = add, 1 = remove |
| string | $label | Label of stock movement |
| double | $price | Unit price HT of product, used to calculate average weighted price (PMP in french). If 0, average weighted price is not changed. |
| string | $inventorycode | Inventory code |
| string | $origin_element | Origin element type |
| int | $origin_id | Origin id of element |
| int | $disablestockchangeforsubproduct | Disable stock change for sub-products of kit (usefull only if product is a subproduct) |
| Extrafields | $extrafields | Array of extrafields |
Definition at line 5447 of file product.class.php.
| Product::correct_stock_batch | ( | $user, | |
| $id_entrepot, | |||
| $nbpiece, | |||
| $movement, | |||
| $label = '', | |||
| $price = 0, | |||
| $dlc = '', | |||
| $dluo = '', | |||
| $lot = '', | |||
| $inventorycode = '', | |||
| $origin_element = '', | |||
| $origin_id = null, | |||
| $disablestockchangeforsubproduct = 0, | |||
| $extrafields = null ) |
Adjust stock in a warehouse for product with batch number.
| User | $user | user asking change |
| int | $id_entrepot | id of warehouse |
| double | $nbpiece | nb of units (should be always positive, use $movement to decide if we add or remove) |
| int | $movement | 0 = add, 1 = remove |
| string | $label | Label of stock movement |
| double | $price | Price to use for stock eval |
| integer | $dlc | eat-by date |
| integer | $dluo | sell-by date |
| string | $lot | Lot number |
| string | $inventorycode | Inventory code |
| string | $origin_element | Origin element type |
| int | $origin_id | Origin id of element |
| int | $disablestockchangeforsubproduct | Disable stock change for sub-products of kit (usefull only if product is a subproduct) |
| Extrafields | $extrafields | Array of extrafields |
Definition at line 5509 of file product.class.php.
| Product::create | ( | $user, | |
| $notrigger = 0 ) |
Insert product into database.
Definition at line 638 of file product.class.php.
References _log_price(), CommonObject\call_trigger(), dol_include_once(), dol_now(), dol_sanitizeFileName(), dol_string_nospecial(), dol_strlen(), dol_syslog(), get_barcode(), getDolGlobalInt(), getDolGlobalString(), price(), price2num(), ref, type, update(), and verify().
| Product::del_sousproduit | ( | $fk_parent, | |
| $fk_child ) |
Remove a link between a subproduct and a parent product/service.
| int | $fk_parent | Id of parent product (child will no more be linked to it) |
| int | $fk_child | Id of child product |
Definition at line 4373 of file product.class.php.
References dol_print_error(), and dol_syslog().
Referenced by add_sousproduit().
| Product::delete | ( | User | $user, |
| $notrigger = 0 ) |
Delete a product from database (if not used)
Definition at line 1399 of file product.class.php.
References $res, CommonObject\call_trigger(), CommonObject\deleteEcmFiles(), CommonObject\deleteExtraFields(), dol_delete_dir_recursive(), dol_sanitizeFileName(), dol_syslog(), CommonObject\isObjectUsed(), ref, type, TYPE_PRODUCT, and TYPE_SERVICE.
| Product::delete_photo | ( | $file | ) |
Delete a photo and its thumbs.
| string | $file | Path to image file |
Definition at line 5940 of file product.class.php.
References dol_delete_file(), and dol_osencode().
| Product::delMultiLangs | ( | $langtodelete, | |
| $user ) |
Delete a language for this product.
| string | $langtodelete | Language code to delete |
| User | $user | Object user making delete |
Definition at line 1668 of file product.class.php.
References CommonObject\call_trigger(), and dol_syslog().
| Product::fetch | ( | $id = '', | |
| $ref = '', | |||
| $ref_ext = '', | |||
| $barcode = '', | |||
| $ignore_expression = 0, | |||
| $ignore_price_load = 0, | |||
| $ignore_lang_load = 0 ) |
Load a product in memory from database.
| int | $id | Id of product/service to load |
| string | $ref | Ref of product/service to load |
| string | $ref_ext | Ref ext of product/service to load |
| string | $barcode | Barcode of product/service to load |
| int | $ignore_expression | When module dynamicprices is on, ignores the math expression for calculating price and uses the db value instead |
| int | $ignore_price_load | Load product without loading $this->multiprices... array (when we are sure we don't need them) |
| int | $ignore_lang_load | Load product without loading $this->multilangs language arrays (when we are sure we don't need them) |
French VAT NPR
Local taxes
Definition at line 2394 of file product.class.php.
References description, dol_strlen(), dol_syslog(), CommonObject\fetch_optionals(), getCountry(), getDolGlobalInt(), getMultiLangs(), price(), price2num(), ref, and type.
| Product::fetch_prod_arbo | ( | $prod, | |
| $compl_path = '', | |||
| $multiply = 1, | |||
| $level = 1, | |||
| $id_parent = 0, | |||
| $ignore_stock_load = 0 ) |
Function recursive, used only by get_arbo_each_prod(), to build tree of subproducts into ->res Define value of this->res.
| array | $prod | Products array |
| string | $compl_path | Directory path of parents to add before |
| int | $multiply | Because each sublevel must be multiplicated by parent nb |
| int | $level | Init level |
| int | $id_parent | Id parent |
| int | $ignore_stock_load | Ignore stock load |
Definition at line 4757 of file product.class.php.
References fetch_prod_arbo().
Referenced by fetch_prod_arbo(), and get_arbo_each_prod().
| Product::generateDocument | ( | $modele, | |
| $outputlangs, | |||
| $hidedetails = 0, | |||
| $hidedesc = 0, | |||
| $hideref = 0 ) |
Create a document onto disk according to template module.
| string | $modele | Force model to use ('' to not force) |
| Translate | $outputlangs | Object langs to use for output |
| int | $hidedetails | Hide details of lines |
| int | $hidedesc | Hide description |
| int | $hideref | Hide ref |
Definition at line 5281 of file product.class.php.
References CommonObject\commonGenerateDocument(), dol_strlen(), and getDolGlobalString().
| Product::generateMultiprices | ( | User | $user, |
| $baseprice, | |||
| $price_type, | |||
| $price_vat, | |||
| $npr, | |||
| $psq ) |
Generates prices for a product based on product multiprice generation rules.
| User | $user | User that updates the prices |
| float | $baseprice | Base price |
| string | $price_type | Base price type |
| float | $price_vat | VAT % tax |
| int | $npr | NPR |
| string | $psq | ¿? |
Definition at line 6260 of file product.class.php.
References updatePrice().
Referenced by updatePrice().
| Product::get_arbo_each_prod | ( | $multiply = 1, | |
| $ignore_stock_load = 0 ) |
Build the tree of subproducts and return it.
this->sousprods must have been loaded by this->get_sousproduits_arbo()
| int | $multiply | Because each sublevel must be multiplicated by parent nb |
| int | $ignore_stock_load | Ignore stock load |
Definition at line 4821 of file product.class.php.
References $res, and fetch_prod_arbo().
| Product::get_barcode | ( | $object, | |
| $type = '' ) |
Get a barcode from the module to generate barcode values.
Return value is stored into this->barcode
| Product | $object | Object product or service |
| string | $type | Barcode type (ean, isbn, ...) |
Definition at line 6064 of file product.class.php.
References $res, dol_include_once(), and dol_syslog().
| Product::get_buyprice | ( | $prodfournprice, | |
| $qty, | |||
| $product_id = 0, | |||
| $fourn_ref = '', | |||
| $fk_soc = 0 ) |
Read price used by a provider.
We enter as input couple prodfournprice/qty or triplet qty/product_id/fourn_ref. This also set some properties on product like ->buyprice, ->fourn_pu, ...
| int | $prodfournprice | Id du tarif = rowid table product_fournisseur_price |
| double | $qty | Quantity asked or -1 to get first entry found |
| int | $product_id | Filter on a particular product id |
| string | $fourn_ref | Filter on a supplier price ref. 'none' to exclude ref in search. |
| int | $fk_soc | If of supplier |
Definition at line 2024 of file product.class.php.
References dol_syslog().
| Product::get_image_size | ( | $file | ) |
Load size of image file.
| string | $file | Path to file |
Definition at line 5974 of file product.class.php.
References dol_osencode().
| Product::get_nb_achat | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units or supplier invoices in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 3907 of file product.class.php.
References _get_stats().
| Product::get_nb_contract | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units in orders in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 4169 of file product.class.php.
References _get_stats().
| Product::get_nb_mos | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units in orders in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 4224 of file product.class.php.
References _get_stats().
| Product::get_nb_order | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units in orders in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 4065 of file product.class.php.
References _get_stats().
| Product::get_nb_ordersupplier | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units in orders in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 4117 of file product.class.php.
References _get_stats().
| Product::get_nb_propal | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units in proposals in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities, 'byamount'=amount |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 3960 of file product.class.php.
References _get_stats().
| Product::get_nb_propalsupplier | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units in proposals in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 4012 of file product.class.php.
References _get_stats().
| Product::get_nb_vente | ( | $socid, | |
| $mode, | |||
| $filteronproducttype = -1, | |||
| $year = 0, | |||
| $morefilter = '' ) |
Return nb of units or customers invoices in which product is included.
| int | $socid | Limit count on a particular third party id |
| string | $mode | 'byunit'=number of unit, 'bynumber'=nb of entities |
| int | $filteronproducttype | 0=To filter on product only, 1=To filter on services only |
| int | $year | Year (0=last 12 month, -1=all years) |
| string | $morefilter | More sql filters |
Definition at line 3853 of file product.class.php.
References _get_stats().
| Product::get_sousproduits_arbo | ( | ) |
Return tree of all subproducts for product. Tree contains array of array(0=prodid, 1=>qty, 2=>product type, 3=>label, 4=>incdec, 5=>product ref) Set this->sousprods
Definition at line 5037 of file product.class.php.
References getChildsArbo().
|
private |
used to check if price have really change to avoid log pollution
| int | $level | price level to change |
Definition at line 1796 of file product.class.php.
Referenced by updatePrice().
| Product::getChildsArbo | ( | $id, | |
| $firstlevelonly = 0, | |||
| $level = 1, | |||
| $parents = array() ) |
Return childs of product $id.
| int | $id | Id of product to search childs of |
| int | $firstlevelonly | Return only direct child |
| int | $level | Level of recursing call (start to 1) |
| array | $parents | Array of all parents of $id |
Definition at line 4967 of file product.class.php.
References $res, dol_print_error(), dol_syslog(), and getChildsArbo().
Referenced by get_sousproduits_arbo(), and getChildsArbo().
| Product::getFather | ( | ) |
Return all parent products for current product (first level only)
Definition at line 4926 of file product.class.php.
References $res, and dol_print_error().
Referenced by load_stats_commande(), load_stats_contrat(), load_stats_facture(), load_stats_facturerec(), load_stats_propale(), and load_stats_sending().
| Product::getKanbanView | ( | $option = '', | |
| $arraydata = null ) |
Return clicable link of object (with eventually picto)
| string | $option | Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) |
| array | $arraydata | Array of data |
Definition at line 6415 of file product.class.php.
References getLibStatut(), getNomUrl(), img_picto(), is_photo_available(), price(), CommonObject\show_photos(), type, TYPE_PRODUCT, and TYPE_SERVICE.
| Product::getLabelOfUnit | ( | $type = 'long' | ) |
Returns the text label from units dictionary.
| string | $type | Label type (long or short) |
Definition at line 6141 of file product.class.php.
References $res, and dol_syslog().
| Product::getLibFinished | ( | ) |
Retour label of nature of product.
Definition at line 5406 of file product.class.php.
References $res, and dol_syslog().
| Product::getLibStatut | ( | $mode = 0, | |
| $type = 0 ) |
Return label of status of object.
| int | $mode | 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto |
| int | $type | 0=Sell, 1=Buy, 2=Batch Number management |
Reimplemented in ProductFournisseur.
Definition at line 5305 of file product.class.php.
References LibStatut().
Referenced by getKanbanView(), and getTooltipContentArray().
| Product::getMultiLangs | ( | ) |
Load array this->multilangs.
Definition at line 1760 of file product.class.php.
References description.
Referenced by fetch().
| Product::getNomUrl | ( | $withpicto = 0, | |
| $option = '', | |||
| $maxlength = 0, | |||
| $save_lastsearch_value = -1, | |||
| $notooltip = 0, | |||
| $morecss = '', | |||
| $add_label = 0, | |||
| $sep = ' - ' ) |
Return clicable link of object (with eventually picto)
| int | $withpicto | Add picto into link |
| string | $option | Where point the link ('stock', 'composition', 'category', 'supplier', '') |
| int | $maxlength | Maxlength of ref |
| int | $save_lastsearch_value | -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking |
| int | $notooltip | No tooltip |
| string | $morecss | ''=Add more css on link |
| int | $add_label | 0=Default, 1=Add label into string, >1=Add first chars into string |
| string | $sep | ' - '=Separator between ref and label if option 'add_label' is set |
Reimplemented in ProductFournisseur.
Definition at line 5178 of file product.class.php.
References dol_escape_htmltag(), dol_trunc(), getDolGlobalInt(), getTooltipContentArray(), img_object(), type, TYPE_PRODUCT, and TYPE_SERVICE.
Referenced by getKanbanView().
| Product::getProductDurationHours | ( | ) |
Return the duration in Hours of a service base on duration fields.
Definition at line 6375 of file product.class.php.
References $duration_value.
| Product::getRights | ( | ) |
Returns the rights used for this class.
Reimplemented from CommonObject.
Definition at line 6316 of file product.class.php.
References isProduct().
| Product::getSellPrice | ( | $thirdparty_seller, | |
| $thirdparty_buyer, | |||
| $pqp = 0 ) |
Return price of sell of a product for a seller/buyer/product.
| Societe | $thirdparty_seller | Seller |
| Societe | $thirdparty_buyer | Buyer |
| int | $pqp | Id of product price per quantity if a selection was done of such a price |
Definition at line 1901 of file product.class.php.
References $tva_npr, $tva_tx, get_default_npr(), get_default_tva(), and price().
| Product::getTooltipContentArray | ( | $params | ) |
getTooltipContentArray
| array | $params | params to construct tooltip data |
Reimplemented from CommonObject.
Definition at line 5056 of file product.class.php.
References getLibStatut(), img_picto(), length_accountg(), measuringUnitString(), price(), ref, CommonObject\show_photos(), type, TYPE_PRODUCT, and TYPE_SERVICE.
Referenced by getNomUrl().
| Product::hasbatch | ( | ) |
Return if object has a sell-by date or eat-by date.
Definition at line 6176 of file product.class.php.
Referenced by load_stock(), and update().
| Product::hasFatherOrChild | ( | $mode = 0 | ) |
Count all parent and children products for current product (first level only)
| int | $mode | 0=Both parent and child, -1=Parents only, 1=Children only |
Definition at line 4843 of file product.class.php.
| Product::hasVariants | ( | ) |
Return if a product has variants or not.
Definition at line 4875 of file product.class.php.
| Product::info | ( | $id | ) |
Load information for tab info.
| int | $id | Id of thirdparty to load |
Definition at line 6333 of file product.class.php.
References dol_print_error(), and ref.
| Product::initAsSpecimen | ( | ) |
Initialise an instance with random values.
Used to build previews or test instances. id must be 0 if object instance is a specimen.
Definition at line 6095 of file product.class.php.
References description, dol_now(), and ref.
| Product::is_photo_available | ( | $sdir | ) |
Return if at least one photo is available.
| string | $sdir | Directory to scan |
Definition at line 5838 of file product.class.php.
References dol_is_file(), dol_osencode(), getDolGlobalInt(), image_format_supported(), and utf8_check().
Referenced by getKanbanView().
| Product::is_sousproduit | ( | $fk_parent, | |
| $fk_child ) |
Check if it is a sub-product into a kit.
| int | $fk_parent | Id of parent kit product |
| int | $fk_child | Id of child product |
Definition at line 4422 of file product.class.php.
References dol_print_error().
| Product::isMandatoryPeriod | ( | ) |
Return if object have a constraint on mandatory_period.
Definition at line 6051 of file product.class.php.
| Product::isProduct | ( | ) |
Return if object is a product.
Definition at line 6030 of file product.class.php.
References type, and TYPE_PRODUCT.
Referenced by getRights(), and update().
| Product::isService | ( | ) |
Return if object is a product.
Definition at line 6040 of file product.class.php.
References type, and TYPE_SERVICE.
Referenced by update().
| Product::isVariant | ( | ) |
Return if loaded product is a variant.
Definition at line 4898 of file product.class.php.
References dol_print_error(), and getEntity().
| Product::LibStatut | ( | $status, | |
| $mode = 0, | |||
| $type = 0 ) |
Return label of a given status.
| int | $status | Statut |
| int | $mode | 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto |
| int | $type | 0=Status "to sell", 1=Status "to buy", 2=Status "to Batch" |
Reimplemented in ProductFournisseur.
Definition at line 5329 of file product.class.php.
References LibStatut().
Referenced by getLibStatut(), and LibStatut().
| Product::list_suppliers | ( | ) |
Return list of suppliers providing the product or service.
Definition at line 4557 of file product.class.php.
| Product::liste_photos | ( | $dir, | |
| $nbmax = 0 ) |
Return an array with all photos of product found on disk.
There is no sorting criteria.
| string | $dir | Directory to scan |
| int | $nbmax | Number maxium of photos (0=no maximum) |
Definition at line 5880 of file product.class.php.
References dol_is_file(), dol_osencode(), image_format_supported(), and utf8_check().
| Product::load_state_board | ( | ) |
Load indicators this->nb for the dashboard.
Definition at line 5989 of file product.class.php.
References dol_print_error().
| Product::load_stats_bom | ( | $socid = 0 | ) |
Charge tableau des stats OF pour le produit/service.
| int | $socid | Id societe |
Definition at line 2865 of file product.class.php.
References price2num().
| Product::load_stats_commande | ( | $socid = 0, | |
| $filtrestatut = '', | |||
| $forVirtualStock = 0 ) |
Charge tableau des stats commande client pour le produit/service.
| int | $socid | Id societe pour filtrer sur une societe |
| string | $filtrestatut | Id statut pour filtrer sur un statut |
| int | $forVirtualStock | Ignore rights filter for virtual stock calculation. Set when load_stats_commande is used for virtual stock calculation. |
Definition at line 3065 of file product.class.php.
References dol_syslog(), getFather(), and Facture\STATUS_DRAFT.
Referenced by load_virtual_stock().
| Product::load_stats_commande_fournisseur | ( | $socid = 0, | |
| $filtrestatut = '', | |||
| $forVirtualStock = 0, | |||
| $dateofvirtualstock = null ) |
Charge tableau des stats commande fournisseur pour le produit/service.
| int | $socid | Id societe pour filtrer sur une societe |
| string | $filtrestatut | Id des statuts pour filtrer sur des statuts |
| int | $forVirtualStock | Ignore rights filter for virtual stock calculation. |
| int | $dateofvirtualstock | Date of virtual stock |
Definition at line 3193 of file product.class.php.
Referenced by load_virtual_stock().
| Product::load_stats_contrat | ( | $socid = 0 | ) |
Charge tableau des stats contrat pour le produit/service.
| int | $socid | Id societe |
Definition at line 3497 of file product.class.php.
References getFather().
| Product::load_stats_facture | ( | $socid = 0 | ) |
Charge tableau des stats facture pour le produit/service.
| int | $socid | Id societe |
Definition at line 3571 of file product.class.php.
References getFather().
| Product::load_stats_facture_fournisseur | ( | $socid = 0 | ) |
Charge tableau des stats facture pour le produit/service.
| int | $socid | Id societe |
Definition at line 3720 of file product.class.php.
| Product::load_stats_facturerec | ( | $socid = 0 | ) |
Charge tableau des stats facture recurrentes pour le produit/service.
| int | $socid | Id societe |
Definition at line 3646 of file product.class.php.
References getFather().
| Product::load_stats_inproduction | ( | $socid = 0, | |
| $filtrestatut = '', | |||
| $forVirtualStock = 0, | |||
| $dateofvirtualstock = null ) |
Charge tableau des stats production pour le produit/service.
| int | $socid | Id societe pour filtrer sur une societe |
| string | $filtrestatut | Id statut pour filtrer sur un statut |
| int | $forVirtualStock | Ignore rights filter for virtual stock calculation. |
| int | $dateofvirtualstock | Date of virtual stock |
Definition at line 3401 of file product.class.php.
Referenced by load_virtual_stock().
| Product::load_stats_mo | ( | $socid = 0 | ) |
Charge tableau des stats OF pour le produit/service.
| int | $socid | Id societe |
Definition at line 2805 of file product.class.php.
References price2num().
| Product::load_stats_propale | ( | $socid = 0 | ) |
Charge tableau des stats propale pour le produit/service.
| int | $socid | Id societe |
Definition at line 2934 of file product.class.php.
References getFather().
| Product::load_stats_proposal_supplier | ( | $socid = 0 | ) |
Charge tableau des stats propale pour le produit/service.
| int | $socid | Id thirdparty |
Definition at line 3009 of file product.class.php.
| Product::load_stats_reception | ( | $socid = 0, | |
| $filtrestatut = '', | |||
| $forVirtualStock = 0, | |||
| $dateofvirtualstock = null ) |
Charge tableau des stats réception fournisseur pour le produit/service.
| int | $socid | Id societe pour filtrer sur une societe |
| string | $filtrestatut | Id statut pour filtrer sur un statut |
| int | $forVirtualStock | Ignore rights filter for virtual stock calculation. |
| int | $dateofvirtualstock | Date of virtual stock |
Definition at line 3340 of file product.class.php.
Referenced by load_virtual_stock().
| Product::load_stats_sending | ( | $socid = 0, | |
| $filtrestatut = '', | |||
| $forVirtualStock = 0, | |||
| $filterShipmentStatus = '' ) |
Charge tableau des stats expedition client pour le produit/service.
| int | $socid | Id societe pour filtrer sur une societe |
| string | $filtrestatut | [=''] Ids order status separated by comma |
| int | $forVirtualStock | Ignore rights filter for virtual stock calculation. |
| string | $filterShipmentStatus | [=''] Ids shipment status separated by comma |
Definition at line 3254 of file product.class.php.
References getFather().
Referenced by load_virtual_stock().
| Product::load_stock | ( | $option = '', | |
| $includedraftpoforvirtual = null, | |||
| $dateofvirtualstock = null ) |
Load information about stock of a product into ->stock_reel, ->stock_warehouse[] (including stock_warehouse[idwarehouse]->detail_batch for batch products) This function need a lot of load.
If you use it on list, use a cache to execute it once for each product id. If ENTREPOT_EXTRA_STATUS is set, filtering on warehouse status is possible.
| string | $option | '' = Load all stock info, also from closed and internal warehouses, 'nobatch' = do not load batch detail, 'novirtual' = do no load virtual detail You can also filter on 'warehouseclosed', 'warehouseopen', 'warehouseinternal' |
| int | $includedraftpoforvirtual | Include draft status of PO for virtual stock calculation |
| int | $dateofvirtualstock | Date of virtual stock |
Definition at line 5563 of file product.class.php.
References dol_syslog(), Productbatch\findAll(), hasbatch(), load_virtual_stock(), Entrepot\STATUS_CLOSED, Entrepot\STATUS_OPEN_ALL, and Entrepot\STATUS_OPEN_INTERNAL.
Referenced by update().
| Product::load_virtual_stock | ( | $includedraftpoforvirtual = null, | |
| $dateofvirtualstock = null ) |
Load value ->stock_theorique of a product.
Property this->id must be defined. This function need a lot of load. If you use it on list, use a cache to execute it one for each product id.
| int | $includedraftpoforvirtual | Include draft status and not yet approved Purchase Orders for virtual stock calculation |
| int | $dateofvirtualstock | Date of virtual stock |
Definition at line 5642 of file product.class.php.
References dol_print_error(), load_stats_commande(), load_stats_commande_fournisseur(), load_stats_inproduction(), load_stats_reception(), load_stats_sending(), Expedition\STATUS_CLOSED, and Expedition\STATUS_VALIDATED.
Referenced by load_stock().
| Product::loadBatchInfo | ( | $batch | ) |
Load existing information about a serial.
| string | $batch | Lot/serial number |
Definition at line 5759 of file product.class.php.
References dol_print_error(), and dol_syslog().
| Product::log_price_delete | ( | $user, | |
| $rowid ) |
Delete a price line.
| User | $user | Object user |
| int | $rowid | Line id to delete |
Definition at line 1873 of file product.class.php.
| Product::min_recommended_price | ( | ) |
Return minimum product recommended price.
Definition at line 6188 of file product.class.php.
|
static |
Function used to replace a thirdparty id with another one.
Reimplemented in ProductFournisseur.
Definition at line 6239 of file product.class.php.
References CommonObject\commonReplaceThirdparty().
| Product::setAccountancyCode | ( | $type, | |
| $value ) |
Sets an accountancy code for a product.
Also calls PRODUCT_MODIFY trigger when modified
| string | $type | It can be 'buy', 'buy_intra', 'buy_export', 'sell', 'sell_intra' or 'sell_export' |
| string | $value | Accountancy code |
Definition at line 1700 of file product.class.php.
References CommonObject\call_trigger(), and dol_syslog().
| Product::setCategories | ( | $categories | ) |
Sets object to supplied categories.
Deletes object from existing categories not supplied. Adds it to non existing supplied categories. Existing categories are left untouch.
| int[] | int | $categories | Category or categories IDs |
Definition at line 6225 of file product.class.php.
| Product::setMultiLangs | ( | $user | ) |
Update or add a translation for a product.
| User | $user | Object user making update |
Definition at line 1558 of file product.class.php.
References CommonObject\call_trigger(), description, and dol_syslog().
Referenced by update().
| Product::setPriceExpression | ( | $expression_id | ) |
Sets the supplier price expression.
| int | $expression_id | Expression |
Definition at line 2373 of file product.class.php.
References update().
| Product::update | ( | $id, | |
| $user, | |||
| $notrigger = false, | |||
| $action = 'update', | |||
| $updatetype = false ) |
Update a record into database.
If batch flag is set to on, we create records into llx_product_batch
| int | $id | Id of product |
| User | $user | Object user making update |
| int | $notrigger | Disable triggers |
| string | $action | Current action for hookmanager ('add' or 'update') |
| boolean | $updatetype | Update product type |
Definition at line 1033 of file product.class.php.
References $res, CommonObject\call_trigger(), description, dol_clone(), dol_print_error(), dol_sanitizeFileName(), dol_string_nospecial(), dol_syslog(), get_barcode(), getDolGlobalInt(), hasbatch(), CommonObject\insertExtraFields(), isProduct(), isService(), load_stock(), measuring_units_cubed(), measuring_units_squared(), price2num(), ref, setMultiLangs(), type, and verify().
Referenced by create(), and setPriceExpression().
| Product::update_sousproduit | ( | $id_pere, | |
| $id_fils, | |||
| $qty, | |||
| $incdec = 1 ) |
Modify composed product.
| int | $id_pere | Id of parent product/service |
| int | $id_fils | Id of child product/service |
| int | $qty | Quantity |
| int | $incdec | 1=Increase/decrease stock of child when parent stock increase/decrease |
Definition at line 4335 of file product.class.php.
References dol_print_error().
| Product::updatePrice | ( | $newprice, | |
| $newpricebase, | |||
| $user, | |||
| $newvat = '', | |||
| $newminprice = 0, | |||
| $level = 0, | |||
| $newnpr = 0, | |||
| $newpbq = 0, | |||
| $ignore_autogen = 0, | |||
| $localtaxes_array = array(), | |||
| $newdefaultvatcode = '' ) |
Modify customer price of a product/Service for a given level.
| double | $newprice | New price |
| string | $newpricebase | HT or TTC |
| User | $user | Object user that make change |
| double | $newvat | New VAT Rate (For example 8.5. Should not be a string) |
| double | $newminprice | New price min |
| int | $level | 0=standard, >0 = level if multilevel prices |
| int | $newnpr | 0=Standard vat rate, 1=Special vat rate for French NPR VAT |
| int | $newpbq | 1 if it has price by quantity |
| int | $ignore_autogen | Used to avoid infinite loops |
| array | $localtaxes_array | Array with localtaxes info array('0'=>type1,'1'=>rate1,'2'=>type2,'3'=>rate2) (loaded by getLocalTaxesFromRate(vatrate, 0, ...) function). |
| string | $newdefaultvatcode | Default vat code |
Definition at line 2179 of file product.class.php.
References $tva_tx, _log_price(), CommonObject\call_trigger(), dol_syslog(), generateMultiprices(), get_localtax(), getArrayForPriceCompare(), price(), and price2num().
Referenced by generateMultiprices().
| Product::verify | ( | ) |
Check properties of product are ok (like name, barcode, ...).
All properties must be already loaded on object (this->barcode, this->barcode_type_code, ...).
Definition at line 945 of file product.class.php.
References check_barcode(), and ref.
| Product::$libelle |
| Product::$recuperableonly |
Definition at line 206 of file product.class.php.
| Product::$ref_fourn |
Definition at line 466 of file product.class.php.
Referenced by add_fournisseur(), and ProductFournisseur\update_buyprice().
| Product::$res |
Path of subproducts.
Build from ->sousprods with get_arbo_each_prod()
Definition at line 504 of file product.class.php.
Referenced by check_barcode(), delete(), get_arbo_each_prod(), get_barcode(), getChildsArbo(), getFather(), getLabelOfUnit(), getLibFinished(), update(), and ProductFournisseur\update_buyprice().