FactureFournisseur
class FactureFournisseur extends CommonInvoice (View source)
Class to manage suppliers invoices
Traits
Trait for incoterm classes
Class for handling deprecated properties and methods
Parent class of all other business classes (invoices, contracts, proposals, orders, ...)
Constants
| TYPE_STANDARD |
Standard invoice |
| TYPE_REPLACEMENT |
Replacement invoice |
| TYPE_CREDIT_NOTE |
Credit note invoice |
| TYPE_DEPOSIT |
Deposit invoice |
| deprecated TYPE_PROFORMA |
Proforma invoice. |
| TYPE_SITUATION |
Situation invoice |
| STATUS_DRAFT |
Draft |
| STATUS_VALIDATED |
Validated (need to be paid) |
| STATUS_CLOSED |
Classified paid. If paid partially, $this->close_code can be:
|
| STATUS_ABANDONED |
Classified abandoned and no payment done. $this->close_code can be:
|
| CLOSECODE_DISCOUNTVAT |
|
| CLOSECODE_BADDEBT |
|
| CLOSECODE_BANKCHARGE |
|
| CLOSECODE_WITHHOLDINGTAX |
|
| CLOSECODE_OTHER |
|
| CLOSECODE_ABANDONED |
|
| CLOSECODE_REPLACED |
|
| CLOSECODE_BADCREDIT |
|
Properties
| DoliDB | $db | from CommonTrigger | |
| $error | from CommonTrigger | ||
| string[] | $errors | from CommonTrigger | |
| string | $TRIGGER_PREFIX | from CommonTrigger | |
| string | $module | from CommonObject | |
| int | $id | from CommonIncoterm | |
| ?int | $entity | from CommonObject | |
| $errorhidden | from CommonObject | ||
| string[] | $warnings | from CommonObject | |
| string | $element | ||
| string | $fk_element | ||
| string | $element_for_permission | from CommonObject | |
| string | $table_element | ||
| ?string | $table_rowid | from CommonObject | |
| string | $table_element_line | ||
| int<0, 1>|string|null | $ismultientitymanaged | from CommonObject | |
| ?string | $import_key | from CommonObject | |
| array<string, mixed> | $array_options | from CommonObject | |
| $fields | |||
| array<string, array<string, string>> | $array_languages | from CommonObject | |
| array<int, array{parentId: int, source: string, socid: int, id: int, nom: string, civility: string, lastname: string, firstname: string, email: string, login: string, photo: string, statuscontact: int, rowid: int, code: string, libelle: string, status: int, fk_c_type_contact: int}> | $contacts_ids | from CommonObject | |
| array<int, array{parentId: int, source: string, socid: int, id: int, nom: string, civility: string, lastname: string, firstname: string, email: string, login: string, photo: string, statuscontact: int, rowid: int, code: string, libelle: string, status: int, fk_c_type_contact: int}> | $contacts_ids_internal | from CommonObject | |
| mixed | $linked_objects | from CommonObject | |
| array<string, array<int, int>> | $linkedObjectsIds | from CommonObject | |
| CommonObject[]> | $linkedObjects | from CommonObject | |
| ?static | $oldcopy | from CommonObject | |
| string | $oldref | from CommonObject | |
| protected | $table_ref_field | {@inheritdoc} | |
| int | $restrictiononfksoc | 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user |
|
| array<string, mixed> | $context | from CommonObject | |
| string | $actionmsg | from CommonObject | |
| string | $actionmsg2 | from CommonObject | |
| string | $canvas | from CommonObject | |
| Project|null | $project | from CommonObject | |
| $fk_project | from CommonObject | ||
| $fk_projet | from CommonObject | ||
| Contact|null | $contact | from CommonObject | |
| int | $contact_id | from CommonObject | |
| Societe | $thirdparty | from CommonObject | |
| User | $user | from CommonObject | |
| Product | $product | from CommonObject | |
| string | $origin_type | from CommonObject | |
| int | $origin_id | from CommonObject | |
| CommonObject | $origin_object | from CommonObject | |
| CommonObject|string|null deprecated | $origin | from CommonObject | |
| string | $ref | ||
| ?string | $ref_ext | from CommonObject | |
| string | $ref_previous | from CommonObject | |
| string | $ref_next | from CommonObject | |
| ?string | $newref | from CommonObject | |
| $statut | Supplier invoice status |
||
| $status | Supplier invoice status |
||
| string | $country | from CommonObject | |
| $country_id | from CommonObject | ||
| $country_code | from CommonObject | ||
| ?string | $state | from CommonObject | |
| $state_id | from CommonObject | ||
| $state_code | from CommonObject | ||
| $region_id | from CommonObject | ||
| $region_code | from CommonObject | ||
| $region | from CommonObject | ||
| int | $barcode_type | from CommonObject | |
| $barcode_type_code | from CommonObject | ||
| $barcode_type_label | from CommonObject | ||
| $barcode_type_coder | from CommonObject | ||
| ?int | $mode_reglement_id | from CommonInvoice | |
| ?int | $cond_reglement_id | from CommonInvoice | |
| ?int | $demand_reason_id | from CommonObject | |
| int | $transport_mode_id | ||
| protected int|string | $depr_cond_reglement | from CommonObject | |
| ?int deprecated | $fk_delivery_address | from CommonObject | |
| ?int | $shipping_method_id | from CommonObject | |
| ?string | $shipping_method | from CommonObject | |
| int | $fk_multicurrency | from CommonObject | |
| string|string[] | $multicurrency_code | from CommonObject | |
| null|float|float[] | $multicurrency_tx | from CommonObject | |
| float | $multicurrency_total_ht | from CommonObject | |
| float | $multicurrency_total_tva | from CommonObject | |
| float|string | $multicurrency_total_localtax1 | from CommonObject | |
| float|string | $multicurrency_total_localtax2 | from CommonObject | |
| float | $multicurrency_total_ttc | from CommonObject | |
| ?string | $model_pdf | from CommonObject | |
| string | $last_main_doc | from CommonObject | |
| $fk_bank | from CommonObject | ||
| ?int | $fk_account | ||
| string | $note_public | ||
| string | $note_private | ||
| $note | |||
| float | $total_ht | ||
| float | $total_tva | ||
| float | $total_localtax1 | ||
| float | $total_localtax2 | ||
| float | $total_ttc | ||
| CommonInvoiceLine[] | $lines | Invoice lines |
|
| string | $actiontypecode | from CommonObject | |
| mixed | $comments | from CommonObject | |
| ?string | $name | from CommonObject | |
| ?string | $lastname | from CommonObject | |
| ?string | $firstname | from CommonObject | |
| string deprecated | $civility_id | from CommonObject | |
| string | $civility_code | from CommonObject | |
| int|""|null | $date_creation | from CommonObject | |
| int|""|null | $date_validation | from CommonObject | |
| int|""|null | $date_modification | from CommonObject | |
| int deprecated | $tms | Update timestamp record (tms) |
from CommonObject |
| int|""|null | $date_cloture | from CommonObject | |
| int|null | $user_creation_id | from CommonObject | |
| int|null | $user_validation_id | from CommonObject | |
| int|null | $user_closing_id | from CommonObject | |
| int|null | $user_modification_id | from CommonObject | |
| int|null deprecated | $fk_user_creat | from CommonObject | |
| int|null deprecated | $fk_user_modif | from CommonObject | |
| string | $next_prev_filter | from CommonObject | |
| int<0, 1> | $specimen | from CommonObject | |
| int[] | $sendtoid | from CommonObject | |
| $alreadypaid | from CommonObject | ||
| float | $totalpaid | from CommonInvoice | |
| $totalpaid_multicurrency | from CommonObject | ||
| array<int, string> | $labelStatus | from CommonObject | |
| array<int, string> | $labelStatusShort | from CommonObject | |
| array<string, int|float|string|null> | $tpl | from CommonObject | |
| int | $showphoto_on_popup | from CommonObject | |
| array{actionscomm?: int, banklines?: int, cheques?: int, contacts?: int, contracts?: int, customers?: int, dolresource?: int, donations?: int, expensereports?: int, holidays?: int, interventions?: int, invoices?: int, members?: int, orders?: int, products?: int, projects?: int, proposals?: int, prospects?: int, services?: int, supplier_invoices?: int, supplier_orders?: int, supplier_proposals?: int, suppliers?: int, tasks?: int, ticket?: int, users?: int} | $nb | from CommonObject | |
| int | $nbphoto | from CommonObject | |
| string | $output | from CommonObject | |
| array<string, string> | $extraparams | ||
| protected string[]|array<string, string[]|array{parent: string, parentkey: string}> | $childtables | from CommonObject | |
| protected string[] | $childtablesoncascade | from CommonObject | |
| int | $cond_reglement_supplier_id | from CommonObject | |
| float|string | $deposit_percent | from CommonObject | |
| int | $retained_warranty_fk_cond_reglement | from CommonObject | |
| int | $warehouse_id | from CommonObject | |
| int<0, 1> | $isextrafieldmanaged | from CommonObject | |
| int | $fk_incoterms | from CommonIncoterm | |
| string | $label_incoterms | from CommonIncoterm | |
| string | $location_incoterms | from CommonIncoterm | |
| string | $title | from CommonInvoice | |
| $type | |||
| ?int | $subtype | from CommonInvoice | |
| $fk_soc | from CommonInvoice | ||
| int | $socid | from CommonInvoice | |
| int<0, 1> deprecated | $paye | Set to 1 if the invoice is completely paid, otherwise is 0 |
|
| int | $date | Invoice date (date) |
from CommonInvoice |
| int | $date_lim_reglement | from CommonInvoice | |
| string|int | $cond_reglement_code | from CommonInvoice | |
| string | $cond_reglement_label | from CommonInvoice | |
| string | $cond_reglement_doc | from CommonInvoice | |
| string | $mode_reglement_code | from CommonInvoice | |
| string | $mode_reglement | from CommonInvoice | |
| float|null | $revenuestamp | from CommonInvoice | |
| int|float | $totaldeposits | from CommonInvoice | |
| int|float | $totalcreditnotes | from CommonInvoice | |
| int|float|string | $remaintopay | from CommonInvoice | |
| int | $nbofopendirectdebitorcredittransfer | from CommonInvoice | |
| int[] | $creditnote_ids | from CommonInvoice | |
| int | $stripechargedone | from CommonInvoice | |
| int | $stripechargeerror | from CommonInvoice | |
| string | $payment_reference | from CommonInvoice | |
| int | $dispute_status | from CommonInvoice | |
| string | $description | Payment description |
from CommonInvoice |
| $ref_client | from CommonInvoice | ||
| int | $situation_cycle_ref | from CommonInvoice | |
| string | $close_code | ! Closing after partial payment: CLOSECODE_DISCOUNTVAT, CLOSECODE_BADDEBT, CLOSECODE_BANKCHARGE, CLOSECODE_OTHER ! Closing when no payment: CLOSECODE_ABANDONED, CLOSECODE_REPLACED |
from CommonInvoice |
| string | $close_note | ! Comment if paid without full payment |
from CommonInvoice |
| string[] | $postactionmessages | ! Populated by payment modules like Stripe |
from CommonInvoice |
| string | $class_element_line | ||
| string | $picto | ||
| int | $rowid | ||
| string | $ref_supplier | ||
| string deprecated | $libelle | ||
| string | $label | ||
| $fk_statut | Supplier invoice status |
||
| int<0, 1> | $paid | Set to 1 if the invoice is completely paid, otherwise is 0 |
|
| int deprecated | $author | ||
| int deprecated | $fk_user_valid | ||
| int | $datec | Date creation record (datec) |
|
| int | $date_echeance | Max payment date (date_echeance) |
|
| float deprecated | $amount | ||
| float deprecated | $remise | ||
| float deprecated | $tva | ||
| ?string | $localtax1 | ||
| ?string | $localtax2 | ||
| int | $propalid | ||
| int<0, 1> | $vat_reverse_charge | ||
| Fournisseur deprecated | $fournisseur | ||
| int | $fk_facture_source | ||
| int | $fac_rec | ||
| int | $fk_fac_rec_source |
Methods
Provide list of deprecated properties
Provide list of deprecated methods
Call trigger based on this instance.
Check if an object id or ref exists If you don't need or want to instantiate the object and just need to know if the object exists, use this method instead of fetch
getTooltipContentArray
Return customer ref for screen output.
Return supplier ref for screen output.
Return full address of contact
Return the link of last main doc file for direct public download.
Add a link between element $this->element and a contact
Copy contact from one element to current
Update a link to contact line
Delete all links between an object $this and all its contacts in llx_element_contact
Get array of all contacts for an object
Return array with list of possible values for type of contacts
Return array with list of possible values for type of contacts
Return id of contacts for a source and a contact code.
Load object contact with id=$this->contact_id into $this->contact
Load the third party of object, from id $this->socid or $this->fk_soc, into this->thirdparty
Looks for an object with ref matching the wildcard provided It does only work when $this->table_ref_field is set
Load data for barcode into properties ->barcode_type* Properties ->barcode_type that is id of barcode. Type is used to find other properties, but if it is not defined, ->element must be defined to know default barcode type.
Load data for barcode into properties ->barcode_type* Properties ->barcode_type that is id of barcode. Type is used to find other properties, but if it is not defined, ->element must be defined to know default barcode type.
Load the product with id $this->fk_product into this->product
Load object from specific field
Getter generic. Load value from a specific field
Setter generic. Update a specific field into database.
Load properties id_previous and id_next by comparing $fieldid with $this->ref
Return list of id of contacts of object
Change the retained warranty payments terms
Change the shipping method
Change the bank account
Save a new position (field rang) for details lines.
Update a line to have a higher rank
Update total_ht, total_ttc, total_vat, total_localtax1, total_localtax2 for an object (sum of lines).
Add an object link into llx_element_element.
Return an element type string formatted like element_element target_type and source_type
Fetch array of objects linked to current object (object of enabled modules only). Links are loaded into this->linkedObjectsIds array + this->linkedObjects array if $loadalsoobjects = 1 or $loadalsoobjects = type Possible usage for parameters:
- all parameters empty -> we look all link to current object (current object can be source or target)
- source id+type -> will get list of targets linked to source
- target id+type -> will get list of sources linked to target
- source id+type + target type -> will get list of targets of the type linked to source
- target id+type + source type -> will get list of sources of the type linked to target
Clear the cache saying that all linked object were already loaded. So next fetchObjectLinked will reload all links.
Update object linked of a current object
Delete all links between an object $this
Function used to get an array with all items linked to an object id in association table
Count items linked to an object id in association table
Function used to remove all items linked to an object id in association table
Set status of an object.
Load type of canvas of an object if it exists
Function to check if an object is used by others (by children).
Function to say how many lines object contains
Function that returns the total amount HT of discounts applied for all lines.
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.
Show add free and predefined products/services form
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.
Return HTML content of a detail line TODO Move this into an output class file (htmlline.class.php)
Return HTML table table of source object lines TODO Move this and previous function into output html class file (htmlline.class.php).
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 resources to the current object : add entry into llx_element_resources Need $this->element & $this->id
Delete a link to resource line
Overwrite magic function to solve problem of cloning object that are kept as references
Common function for all objects extending CommonObject for generating documents
Index a file into the ECM database
Return the default value to use for a field when showing the create form of object.
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.
Fill array_options property of object by extrafields value (using for data sent by forms) Used for example when PDF_USE_ALSO_LANGUAGE_CODE is set to a language for the name of a thirdparty.
Function to make a fetch but set environment to avoid to load computed values before.
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.
Add/Update all extra fields values for the current object.
Add/Update all extra languages values for the current object.
Update 1 extra field value for the current object. Keep other fields unchanged.
Convenience method for retrieving the value of an extrafield without actually fetching it from the database.
Convenience method for setting the value of an extrafield without actually updating it in the database.
Update an extra language value for the current object.
Return HTML string to put an input field into a page Code very similar with showInputField of extra fields
Return HTML string to show a field into a page Code very similar with showOutputField of extra fields
clear validation message result for a field
set validation error message a field
Return validation test result for a field
Function to show lines of extrafields with output data.
Function used to replace a thirdparty id with another one.
Function used to replace a product id with another one.
Get buy price to use for margin calculation. This function is called when buy price is unknown.
Function used to get the logos or photos of an object
Show photos of an object (nbmax maximum), into several columns
Function test if type is array
Function test if type is date
Function test if type is duration
Function test if type is integer
Function test if type is float
Function test if type is text
Function test if field can be null
Function test if field is forced to null if zero or empty
Function test if is indexed
Function to return the array of data key-value from the ->fields and all the ->properties of an object.
Function to load data from a SQL pointer into properties of current object $this
Sets all object fields to null. Useful for example in lists, when printing multiple lines and a different object os fetched for each line.
Function to concat keys of fields
Add quote to field value if necessary
Load object in memory from the database. This does not load line. This is done by parent fetch() that call fetchCommon
Load object in memory from the database
Delete object in database
Delete all child object from a parent ID
Initialise object with example values Id must be 0 if object instance is a specimen
Sets object to given categories.
Sets object to given categories.
Copy related categories to another object
Check if all products have the right status (on sale, on buy) called during validation of propal, order, supplier proposal, supplier order
Set the error message for the object without logging it.
Set the error message for the object and log it.
Define incoterms values of current object
Return remain amount to pay. Property ->id and ->total_ttc must be set.
Return amount of payments already done. This must include ONLY the record into the payment table.
Return amount (with tax) of all deposits invoices used by invoice.
Return amount (with tax) of all credit notes invoices + excess received used by invoice
Return amount (with tax) of all converted amount for this credit note
Returns array of credit note ids from the invoice
Returns the id of the invoice that replaces it
Return list of open direct debit or credit transfer
Return list of payments
Return if an invoice can be deleted Rule is: If invoice is draft and has a temporary ref -> yes (1) If hidden option INVOICE_CAN_NEVER_BE_REMOVED is 1 -> no (0) If invoice is transferred in bookkeeping -> no (-1) If invoice has a definitive ref, is not last in ref -> no (-2) If invoice has a definitive ref, is not last in a situation cycle -> no (-3) If there is one payment -> no (-4) If already sent by email -> no (-5) If already printed -> no (-6) If running a LNE version and customer invoice was validated -> no (-7) Other value (may be returned by a hook -10, -11, ...) Otherwise -> yes (2)
Return if an invoice was transferred into accountnancy.
Return next reference of supplier invoice not already used (or last reference) according to numbering module defined into constant INVOICE_SUPPLIER_ADDON_NUMBER
Retrieve a list of invoice subtype labels or codes.
Return label of object status
Return label of a status
Returns an invoice payment deadline based on the invoice settlement conditions and billing date.
Create a withdrawal request for a direct debit order or a credit transfer order.
Create a payment with Stripe card Must take amount using Stripe and record an event into llx_actioncomm Record bank payment Send email to customer ?
Create a direct debit order into prelevement_bons for a given prelevement_request, then Send the payment order to the service (for a direct debit order or a credit transfer order) and record an event in llx_actioncomm.
Remove a direct debit request or a credit transfer request
Constructor
Create supplier invoice into database
Load object in memory from database
Load this->lines
Update database
Add a discount line into an invoice (as an invoice line) using an existing absolute discount (Consume the discount)
Tag the invoice as not fully paid + trigger call BILL_UNPAYED Function used when a direct debit payment is refused, or when the invoice was canceled and reopened.
Tag invoice as canceled, with no payment on it (example for replacement invoice or payment never received) + call trigger BILL_CANCEL Warning, if option to decrease stock on invoice was set, this function does not change stock (it might be a cancel because of no payment even if merchandises were sent).
Adds an invoice line (associated with no predefined product/service) The parameters are already supposed to be correct and with final values when calling this method. Also, for the VAT rate, it must already have been defined by the caller by by the get_default_tva method(vendor_company, buying company, idprod) and the desc must already have the right value (the caller has to manage the multilanguage).
Update a line detail in the database
Delete a detail line from database
Loads the info order information into the invoice object
Return list of replaceable invoices Status valid or abandoned for other reason + not paid + no payment + not already replaced
Return list of qualifying invoices for correction by credit note Invoices that respect the following rules are returned: (validated + payment in progress) or classified (paid in full or paid in part) + not already replaced + not already having
Return clickable name (with optional picto)
Sets object to given categories.
Initialise an instance with random values.
Load indicators for dashboard (this->nbtodo and this->nbtodolate)
Load an object from its id and create a new one in database
Create a document onto disk according to template model.
Function used to replace a thirdparty id with another one.
Function used to replace a product id with another one.
Is the payment of the supplier invoice having a delay?
Is credit note used
Return clickable link of object (with eventually picto)
Change the option VAT reverse charge
Send reminders by emails for supplier invoices validated that are due.
Details
mixed
__get(string $name)
Get deprecated property
void
__set(string $name, mixed $value)
Set deprecated property
void
__unset(string $name)
Unset deprecated property
void
__isset(string $name)
Test if deprecated property is set
mixed
__call(string $name, mixed[] $arguments)
Call deprecated method
protected array<string, string>
deprecatedProperties()
Provide list of deprecated properties
Override this method in subclasses
protected array<string, string>
deprecatedMethods()
Provide list of deprecated methods
Override this method in subclasses
final static protected string
getCallerInfoString()
Get caller info
int
call_trigger(string $triggerName, User $user)
Call trigger based on this instance.
Some context information may also be provided into array property this->context. NB: Error from trigger are stacked in interface->errors NB2: If return code of triggers are < 0, action calling trigger should cancel all transaction.
static
isExistingObject($element, int $id, $ref = '', $ref_ext = '')
Check if an object id or ref exists If you don't need or want to instantiate the object and just need to know if the object exists, use this method instead of fetch
@param string $element String of element ('product', 'facture', ...)
bool
isEmpty()
isEmpty We consider CommonObject isEmpty if this->id is empty
void
setErrorsFromObject(CommonObject|HookManager $object)
setErrorsFromObject
getTooltipContentArray($params)
getTooltipContentArray
getTooltipContent($params)
getTooltipContent
string
errorsToString()
Method to output saved errors
string
getFormatedCustomerRef(string $objref)
Return customer ref for screen output.
string
getFormatedSupplierRef(string $objref)
Return supplier ref for screen output.
string
getFullAddress($withcountry = 0, string $sep = "\n", $withregion = 0, $extralangcode = '')
Return full address of contact
@param int<0,1> $withcountry 1=Add country into address string
string|-1
getLastMainDocLink(string $modulepart, int $initsharekey = 0, int $relativelink = 0)
Return the link of last main doc file for direct public download.
add_contact($fk_socpeople, int|string $type_contact, $source = 'external', $notrigger = 0)
Add a link between element $this->element and a contact
@param int $fk_socpeople Id of thirdparty contact (if source = 'external') or id of user (if source = 'internal') to link
copy_linked_contact($objFrom, "internal"|"external" $source = 'internal')
Copy contact from one element to current
@param CommonObject $objFrom Source element
update_contact($rowid, int $statut, $type_contact_id = 0, $fk_socpeople = 0)
Update a link to contact line
@param int $rowid Id of line contact-element
delete_contact($rowid, int $notrigger = 0)
Delete a link to contact line
@param int $rowid Id of contact link line to delete
delete_linked_contact($source = '', string $code = '')
Delete all links between an object $this and all its contacts in llx_element_contact
@param string $source '' or 'internal' or 'external'
liste_contact($statusoflink = -1, "external"|"thirdparty"|"internal" $source = 'external', $list = 0, $code = '', $status = -1, $arrayoftcids = array())
Get array of all contacts for an object
@param int $statusoflink Status of links to get (-1=all). Not used.
int
swapContactStatus($rowid)
Update status of a contact linked to object
@param int $rowid Id of link between object and contact
liste_type_contact($source = 'internal', string $order = 'position', $option = 0, $activeonly = 0, $code = '')
Return array with list of possible values for type of contacts
@param 'internal'|'external'|'all' $source 'internal', 'external' or 'all'
listeTypeContacts($source = 'internal', int<0, 1> $option = 0, $activeonly = 0, $code = '', $element = '', $excludeelement = '')
Return array with list of possible values for type of contacts
@param string $source 'internal', 'external' or 'all'
getIdContact(string $source, $code, $status = 0)
Return id of contacts for a source and a contact code.
Example: contact client de facturation ('external', 'BILLING') Example: contact client de livraison ('external', 'SHIPPING') Example: contact interne suivi paiement ('internal', 'SALESREPFOLL')
int<-1, 1>
fetch_contact($contactid = null)
Load object contact with id=$this->contact_id into $this->contact
@param ?int $contactid Id du contact. Use this->contact_id if empty.
int<-1, 1>
fetch_thirdparty($force_thirdparty_id = 0)
Load the third party of object, from id $this->socid or $this->fk_soc, into this->thirdparty
@param int<0,1> $force_thirdparty_id Force thirdparty id
int<-1, 1>
fetchOneLike(string $ref)
Looks for an object with ref matching the wildcard provided It does only work when $this->table_ref_field is set
int<-1, 1>
fetch_barcode()
Load data for barcode into properties ->barcode_type* Properties ->barcode_type that is id of barcode. Type is used to find other properties, but if it is not defined, ->element must be defined to know default barcode type.
int<-1, 1>
fetchBarCode()
Load data for barcode into properties ->barcode_type* Properties ->barcode_type that is id of barcode. Type is used to find other properties, but if it is not defined, ->element must be defined to know default barcode type.
fetchProject()
Load the project with id $this->fk_project into this->project
@return int<-1,1> Return integer <0 if KO, >=0 if OK
fetch_project()
deprecated
deprecated
Load the project with id $this->fk_project into this->project
@return int<-1,1> Return integer <0 if KO, >=0 if OK
fetch_projet()
deprecated
deprecated
Load the project with id $this->fk_project into this->project
@return int Return integer <0 if KO, >=0 if OK
int<-1, 1>
fetch_product()
Load the product with id $this->fk_product into this->product
int<-1, 1>
fetch_user(int $userid)
Load the user with id $userid into this->user
void
fetch_origin()
Read linked origin object.
Set ->origin_object
int<-1, 1>|false
fetchObjectFrom($table, string $field, $key, $element = null)
Load object from specific field
@param string $table Table element or element line
int<-1, 1>
getValueFrom(string $table, int $id, string $field)
Getter generic. Load value from a specific field
int<-2, 1>
setValueFrom(string $field, mixed $value, string $table = '', ?int $id = null, string $format = '', string $id_field = '', User|string|null $fuser = null, $trigkey = '', $fk_user_field = 'fk_user_modif')
Setter generic. Update a specific field into database.
Warning: Trigger is run only if param trigkey is provided.
load_previous_next_ref($filter, string $fieldid, $nodbprefix = 0)
Load properties id_previous and id_next by comparing $fieldid with $this->ref
@param string $filter Optional SQL filter. Use SQL or Universal Search Filter. Example: "(t.field1 = 'aa' OR t.field2 = 'bb')". Do not allow user input data here with this syntax. Example: "((t.field1:=:'aa') OR (t.field2:=:'bb'))".
int[]
getListContactId($source = 'external')
Return list of id of contacts of object
@param string $source Source of contact: external (llx_socpeople) or internal (llx_user) or thirdparty (llx_societe)
int<-1, 1>
setProject(int $projectid, $notrigger = 0)
Link element with a project
int
setPaymentMethods($id)
Change the payments methods
@param int $id Id of new payment method
int
setMulticurrencyCode($code)
Change the multicurrency code
@param string $code multicurrency code
setMulticurrencyRate($rate, int $mode = 1)
Change the multicurrency rate
@param double $rate multicurrency rate
setPaymentTerms($id, float $deposit_percent = null)
Change the payments terms
@param int $id Id of new payment terms
int
setTransportMode($id)
Change the transport mode methods
@param int $id Id of transport mode
int
setRetainedWarrantyPaymentTerms($id)
Change the retained warranty payments terms
@param int $id Id of new payment terms
int
setDeliveryAddress(int $id)
Define delivery address
@deprecated
setShippingMethod($shipping_method_id, int $notrigger = 0, $userused = null)
Change the shipping method
@param int $shipping_method_id Id of shipping method
int
setWarehouse($warehouse_id)
Change the warehouse
@param int $warehouse_id Id of warehouse
setDocModel($user, string $modelpdf)
Set last model used by doc generator
@param User $user User object that make change
setBankAccount($fk_account, int $notrigger = 0, $userused = null)
Change the bank account
@param int $fk_account Id of bank account
line_order(bool $renum = false, $rowidorder = 'ASC', $fk_parent_line = true)
Save a new position (field rang) for details lines.
You can choose to set position for lines with already a position or lines without any position defined.
getChildrenOfLine($id, int<0, 1001> $includealltree = 0)
Get children of line
@param int $id Id of parent line
line_up($rowid, bool $fk_parent_line = true)
Update a line to have a lower rank
@param int $rowid Id of line
line_down($rowid, bool $fk_parent_line = true)
Update a line to have a higher rank
@param int $rowid Id of line
updateRangOfLine($rowid, int $rang)
Update position of line (rang)
@param int $rowid Id of line
void
line_ajaxorder($rows)
Update position of line with ajax (rang)
@param int[] $rows Array of rows
updateLineUp($rowid, int $rang)
Update position of line up (rang)
@param int $rowid Id of line
updateLineDown($rowid, int $rang, $max)
Update position of line down (rang)
@param int $rowid Id of line
int
getRangOfLine($rowid)
Get position of line (rang)
@param int $rowid Id of line
int
getIdOfLine($rang)
Get rowid of the line relative to its position
@param int $rang Rang value
int
line_max($fk_parent_line = 0)
Get max value used for position of line (rang)
@param int $fk_parent_line Parent line id
int
update_ref_ext($ref_ext)
Update external ref of element
@param string $ref_ext Update field ref_ext
update_note($note, string $suffix = '', $notrigger = 0)
Update note of element
@param string $note New value for note
int
update_note_public(string $note)
deprecated
deprecated
Update public note (kept for backward compatibility)
int<-1, 1>
update_price(int $exclspec = 0, $roundingadjust = 'auto', $nodatabaseupdate = 0, $seller = null)
Update total_ht, total_ttc, total_vat, total_localtax1, total_localtax2 for an object (sum of lines).
Must be called at end of methods addline or updateline.
add_object_linked($origin = null, $origin_id = null, $f_user = null, $notrigger = 0)
Add an object link into llx_element_element.
string
getElementType()
Return an element type string formatted like element_element target_type and source_type
int<-1, 1>
fetchObjectLinked(?int $sourceid = null, string $sourcetype = '', ?int $targetid = null, string $targettype = '', string $clause = 'OR', $alsosametype = 1, $orderby = 'sourcetype', $loadalsoobjects = 1)
Fetch array of objects linked to current object (object of enabled modules only). Links are loaded into this->linkedObjectsIds array + this->linkedObjects array if $loadalsoobjects = 1 or $loadalsoobjects = type Possible usage for parameters:
- all parameters empty -> we look all link to current object (current object can be source or target)
- source id+type -> will get list of targets linked to source
- target id+type -> will get list of sources linked to target
- source id+type + target type -> will get list of targets of the type linked to source
- target id+type + source type -> will get list of sources of the type linked to target
int
clearObjectLinkedCache()
Clear the cache saying that all linked object were already loaded. So next fetchObjectLinked will reload all links.
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 = 0, $f_user = null, $notrigger = 0)
Delete all links between an object $this
static array|int
getAllItemsLinkedByObjectID(int $fk_object_where, string $field_select, string $field_where, string $table_element)
Function used to get an array with all items linked to an object id in association table
static array|int
getCountOfItemsLinkedByObjectID(int $fk_object_where, string $field_where, string $table_element)
Count items linked to an object id in association table
static int
deleteAllItemsLinkedByObjectID(int $fk_object_where, string $field_where, string $table_element)
Function used to remove all items linked to an object id in association table
setStatut($status, ?int $elementId = null, $elementType = '', $trigkey = '', $fieldstatus = '')
Set status of an object.
@param int $status Status to set
getCanvas($id = 0, string $ref = '')
Load type of canvas of an object if it exists
@param int $id Record id
int
getSpecialCode($lineid)
Get special code of a line
@param int $lineid Id of line
isObjectUsed(int $id = 0, $entity = 0)
Function to check if an object is used by others (by children).
Check is done into this->childtables. There is no check into llx_element_element.
hasProductsOrServices(int $predefined = -1)
Function to say how many lines object contains
float|null
getTotalDiscount()
Function that returns the total amount HT of discounts applied for all lines.
array{weight: int|float, volume: int|float, ordered: int|float, toship: int|float}|array{}
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.
int
setExtraParameters()
Set extra parameters
void
formAddObjectLine($dateSelector, Societe $seller, $buyer, $defaulttpldir = '/core/tpl')
Show add free and predefined products/services form
@param int $dateSelector 1=Show also date range input fields
void
printObjectLines(string $action, Societe $seller, Societe $buyer, int<0, max> $selected = 0, int $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.
void
printObjectLine(string $action, CommonObjectLine $line, "" $var, int $num, int $i, int $dateSelector, Societe $seller, Societe $buyer, int<0, max> $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(""|"services" $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).
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, so we keep the method available on overloaded objects.
printOriginLine(CommonObjectLine $line, $var, string $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).
If lines are into a template, titles 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.
int
add_element_resource(int $resource_id, string $resource_type, int $busy = 0, int $mandatory = 0, $notrigger = 0)
Add resources to the current object : add entry into llx_element_resources Need $this->element & $this->id
delete_resource($rowid, string $element = '', $notrigger = 0)
Delete a link to resource line
@param int $rowid Id of resource line to delete
void
__clone()
Overwrite magic function to solve problem of cloning object that are kept as references
protected int<-1, 1>
commonGenerateDocument(string $modelspath, string $modele, Translate $outputlangs, int<0, 1> $hidedetails, int<0, 1> $hidedesc, int<0, 1> $hideref, ?array<string, mixed> $moreparams = null)
Common function for all objects extending CommonObject for generating documents
int
indexFile(string $destfull, int $update_main_doc_field)
Index a file into the ECM database
void
addThumbs(string $file, $quality = 50)
Build thumb
@todo Move this into files.lib.php
void
delThumbs(string $file)
Delete thumbs
@todo Move this into files.lib.php
string|string[]
getDefaultCreateValueFor(string $fieldname, string $alternatevalue = null, string $type = 'alphanohtml')
Return the default value to use for a field when showing the create form of object.
Return values in this order: 1) If parameter is available into POST, we return it first. 2) If not but an alternate value was provided as parameter of function, we return it. 3) If not but a constant $conf->global->OBJECTELEMENT_FIELDNAME is set, we return it (It is better to use the dedicated table). 4) Return value found into database (TODO No yet implemented)
int<-1, 1>
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.
Used for example when PDF_USE_ALSO_LANGUAGE_CODE is set to a language for the name of a thirdparty.
int<-1, 1>
setValuesForExtraLanguages(string $onlykey = '')
Fill array_options property of object by extrafields value (using for data sent by forms) Used for example when PDF_USE_ALSO_LANGUAGE_CODE is set to a language for the name of a thirdparty.
int<-1, 1>
fetchNoCompute(int $id)
Function to make a fetch but set environment to avoid to load computed values before.
fetch_optionals($rowid = null, array{}|array{label: array<string, string>, type: array<string, string>, size: array<string, string>, default: array<string, string>, computed: array<string, string>, unique: array<string, int>, required: array<string, int>, param: array<string, mixed>, perms: array<string, mixed[]>, list: array<string, int>|array<string, string>, pos: array<string, int>, totalizable: array<string, int>, help: array<string, string>, printable: array<string, int>, enabled: array<string, int>, langfile: array<string, string>, css: array<string, string>, csslist: array<string, string>, hidden: array<string, int>, mandatoryfieldsofotherentities?: array<string, string>, loaded?: int, count: int} $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.
@param int $rowid Id of line. Use the id of object if not defined. Deprecated. Function must be called without parameters.
deleteExtraFields()
Delete all extra fields values for the current object.
@return int<-1,1> Return integer <0 if KO, >0 if OK
insertExtraFields(string $trigger = '', $userused = null)
Add/Update all extra fields values for the current object.
Data to describe values to insert/update are stored into $this->array_options=array('options_codeforfield1'=>'valueforfield1', 'options_codeforfield2'=>'valueforfield2', ...) This function delete record with all extrafields and insert them again from the array $this->array_options.
insertExtraLanguages(string $trigger = '', $userused = null)
Add/Update all extra languages values for the current object.
Data to describe values to insert/update are stored into $this->array_languages=array('options_codeforfield1'=>'valueforfield1', 'options_codeforfield2'=>'valueforfield2', ...) This function delete record with all languages and insert them again from the array $this->array_languages. Used for example when PDF_USE_ALSO_LANGUAGE_CODE is set to a language for the name of a thirdparty.
updateExtraField(string $key, $trigger = null, $userused = null)
Update 1 extra field value for the current object. Keep other fields unchanged.
Data to describe values to update are stored into $this->array_options=array('options_codeforfield1'=>'valueforfield1', 'options_codeforfield2'=>'valueforfield2', ...)
mixed|null
getExtraField(string $key)
Convenience method for retrieving the value of an extrafield without actually fetching it from the database.
void
setExtraField(string $key, mixed $value)
Convenience method for setting the value of an extrafield without actually updating it in the database.
updateExtraLanguages(string $key, $trigger = null, $userused = null)
Update an extra language value for the current object.
Data to describe values to update are stored into $this->array_options=array('options_codeforfield1'=>'valueforfield1', 'options_codeforfield2'=>'valueforfield2', ...)
string
showInputField(?array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $val, string $key, string|string[] $value, string $moreparam = '', string $keysuffix = '', string $keyprefix = '', string|int $morecss = 0, int<0, 1> $nonewbutton = 0)
Return HTML string to put an input field into a page Code very similar with showInputField of extra fields
string
showOutputField(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $val, string $key, string $value, string $moreparam = '', string $keysuffix = '', string $keyprefix = '', mixed $morecss = '')
Return HTML string to show a field into a page Code very similar with showOutputField of extra fields
void
clearFieldError(string $fieldKey)
clear validation message result for a field
void
setFieldError(string $fieldKey, string $msg = '')
set validation error message a field
string
getFieldError(string $fieldKey)
get field error message
bool
validateField(array<string, array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int<-2, 5>|string, alwayseditable?: int<0, 1>, noteditable?: int<0, 1>, default?: string, index?: int, foreignkey?: string, searchall?: int<0, 1>, isameasure?: int<0, 1>, css?: string, csslist?: string, help?: string, showoncombobox?: int<0, 2>, disabled?: int<0, 1>, arrayofkeyval?: array<int, string>, autofocusoncreate?: int<0, 1>, comment?: string, copytoclipboard?: int<1, 2>, validate?: int<0, 1>}> $fields, string $fieldKey, string $fieldValue)
Return validation test result for a field
string
showOptionals(ExtraFields $extrafields, string $mode = 'view', array<string, mixed> $params = null, string $keysuffix = '', string $keyprefix = '', string $onetrtd = '', string $display_type = 'card')
Function to show lines of extrafields with output data.
This function is responsible to output the
string
getJSListDependancies(string $type = '_extra')
No description
null|int|stdClass
getRights()
Returns the rights used for this class
static bool
commonReplaceThirdparty(DoliDB $dbs, int $origin_id, int $dest_id, array $tables, int<0, 1> $ignoreerrors = 0)
Function used to replace a thirdparty id with another one.
This function is meant to be called from replaceThirdparty with the appropriate tables Column name fk_soc MUST exist.
static bool
commonReplaceProduct(DoliDB $dbs, int $origin_id, int $dest_id, array $tables, int<0, 1> $ignoreerrors = 0)
Function used to replace a product id with another one.
This function is meant to be called from replaceProduct with the appropriate tables Column name fk_product MUST be used to identify products
float|int<-2, -1>
defineBuyPrice(float $unitPrice = 0.0, float $discountPercent = 0.0, int $fk_product = 0)
Get buy price to use for margin calculation. This function is called when buy price is unknown.
Set buy price = sell price if ForceBuyingPriceIfNull configured, elseif calculation MARGIN_TYPE = 'costprice' and costprice is defined, use costprice as buyprice elseif calculation MARGIN_TYPE = 'pmp' and pmp is calculated, use pmp as buyprice else set min buy price as buy price
array{dir: string, file: string, originalfile: string, altfile: string, email: string, capture: string}
getDataToShowPhoto(string $modulepart, string $imagesize)
Function used to get the logos or photos of an object
show_photos($modulepart, string $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
@param string $modulepart 'product', 'ticket', ...
protected bool
isArray(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if type is array
bool
isDate(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if type is date
bool
isDuration(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if type is duration
bool
isInt(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if type is integer
bool
isFloat(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if type is float
bool
isText(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if type is text
protected bool
canBeNull(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if field can be null
protected bool
isForcedToNullIfZero(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if field is forced to null if zero or empty
protected bool
isIndex(array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $info)
Function test if is indexed
protected array<string, null|int|float|string>
setSaveQuery()
Function to return the array of data key-value from the ->fields and all the ->properties of an object.
Note: $this->${field} are set by the page that make the createCommon() or the updateCommon(). $this->${field} should be a clean and string value (so date are formatted for SQL insert).
void
setVarsFromFetchObj(stdClass $obj)
Function to load data from a SQL pointer into properties of current object $this
void
emtpyObjectVars()
Sets all object fields to null. Useful for example in lists, when printing multiple lines and a different object os fetched for each line.
string
getFieldList(string $alias = '', string[] $excludefields = array())
Function to concat keys of fields
protected string|int
quote(string|int $value, array{type: string, label: string, enabled: int<0, 2>|string, position: int, notnull?: int, visible: int, noteditable?: int, default?: string, index?: int, foreignkey?: string, searchall?: int, isameasure?: int, css?: string, csslist?: string, help?: string, showoncombobox?: int, disabled?: int, arrayofkeyval?: array<int, string>, comment?: string} $fieldsentry)
Add quote to field value if necessary
int<-1, max>
createCommon(User $user, int<0, 1> $notrigger = 0)
Create object in the database
int<-4, 1>
fetchCommon(int $id, ?string $ref = null, string $morewhere = '', int<0, 1> $noextrafields = 0)
Load object in memory from the database. This does not load line. This is done by parent fetch() that call fetchCommon
int<-1, 1>
fetchLinesCommon(string $morewhere = '', int<0, 1> $noextrafields = 0)
Load object in memory from the database
int<-1, 1>
updateCommon(User $user, int<0, 1> $notrigger = 0)
Update object into database
int<-1, 1>
deleteCommon(User $user, int<0, 1> $notrigger = 0, int<0, 1> $forcechilddeletion = 0)
Delete object in database
int
deleteByParentField(int $parentId = 0, string $parentField = '', string $filter = '', string $filtermode = "AND")
Delete all child object from a parent ID
deleteLineCommon(User $user, $idline, $notrigger = 0)
Delete a line of object in database
int
setStatusCommon(User $user, $status, $notrigger = 0, $triggercode = '')
Set to a status
int
initAsSpecimenCommon()
Initialise object with example values Id must be 0 if object instance is a specimen
int<0, max>|-1
fetchComments()
Load comments linked with current task
int
getNbComments()
Return nb comments already posted
void
trimParameters(string[] $parameters)
Trim object parameters
int[]|int
getCategoriesCommon(string $type_categ)
Sets object to given categories.
Deletes object from existing categories not supplied. Adds it to non existing supplied categories. Existing categories are left untouch.
int
setCategoriesCommon(int[]|int $categories, string $type_categ = '', bool $remove_existing = true)
Sets object to given categories.
Assign the object to all categories not yet assigned. Unasign object from existing categories not supplied in $categories (if remove_existing==true). If remove_existing is false, existing categories are left untouch.
int
cloneCategories(int $fromId, int $toId, string $type = '')
Copy related categories to another object
bool
deleteEcmFiles(int $mode = 0)
Delete related files of object in database
bool
checkActiveProductInLines(string $status = 'onsale')
Check if all products have the right status (on sale, on buy) called during validation of propal, order, supplier proposal, supplier order
void
setErrorWithoutLog(string $message)
Set the error message for the object without logging it.
void
setErrorWithLog(string $message, int<0, 7> $loglevel = LOG_ERR)
Set the error message for the object and log it.
display_incoterms()
Return incoterms information TODO Use a cache for label get
@return string incoterms info
getIncotermsForPDF()
Return incoterms information for pdf display
@return string|boolean Incoterms info or false
setIncoterms($id_incoterm, string $location)
Define incoterms values of current object
@param int $id_incoterm Id of incoterm to set or '' to remove
float|string
getRemainToPay(int $multicurrency = 0)
Return remain amount to pay. Property ->id and ->total_ttc must be set.
This does not include open direct debit requests.
float|int|array{alreadypaid: float, alreadypaid_multicurrency: float}
getSommePaiement(int<-1, 1> $multicurrency = 0)
Return amount of payments already done. This must include ONLY the record into the payment table.
Payments done using discounts, credit notes, etc are not included. This also set ->totalpaid and ->totalpaid_multicurrency
getSumDepositsUsed($multicurrency = 0)
Return amount (with tax) of all deposits invoices used by invoice.
Should always be empty, except if option FACTURE_DEPOSITS_ARE_JUST_PAYMENTS is on for sale invoices (not recommended), of FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS is on for purchase invoices (not recommended).
getSumCreditNotesUsed($multicurrency = 0)
Return amount (with tax) of all credit notes invoices + excess received used by invoice
@param int $multicurrency Return multicurrency_amount instead of amount
float
getSumFromThisCreditNotesNotUsed($multicurrency = 0)
Return amount (with tax) of all converted amount for this credit note
@param int $multicurrency Return multicurrency_amount instead of amount
int[]
getListIdAvoirFromInvoice()
Returns array of credit note ids from the invoice
int
getIdReplacingInvoice(string $option = '')
Returns the id of the invoice that replaces it
array<array{id: int, invoiceid: int, date: ""|int, amount: float}>
getListOfOpenDirectDebitOrCreditTransfer($type)
Return list of open direct debit or credit transfer
@param 'bank-transfer'|'direct-debit' $type 'bank-transfer' or 'direct-debit'
getListOfPayments(string $filtertype = '', $multicurrency = 0, $mode = 0)
Return list of payments
$error Empty string '' if no error.
int
isEditable()
Return if an invoice can be set back to draft.
Rule is: If invoice is draft and has a temporary ref -> yes (1) If hidden option INVOICE_CAN_NEVER_BE_REMOVED is 1 -> no (0) If invoice is transferred in bookkeeping -> no (-1) If invoice has a definitive ref, is not last in ref -> no (-2) If invoice has a definitive ref, is not last in a situation cycle -> no (-3) If there is one payment -> no (-4) If already sent by email -> no (-5) If already printed -> no (-6) If running a LNE version and customer invoice was validated -> no (-7) Otherwise -> yes (2)
is_erasable()
Return if an invoice can be deleted Rule is: If invoice is draft and has a temporary ref -> yes (1) If hidden option INVOICE_CAN_NEVER_BE_REMOVED is 1 -> no (0) If invoice is transferred in bookkeeping -> no (-1) If invoice has a definitive ref, is not last in ref -> no (-2) If invoice has a definitive ref, is not last in a situation cycle -> no (-3) If there is one payment -> no (-4) If already sent by email -> no (-5) If already printed -> no (-6) If running a LNE version and customer invoice was validated -> no (-7) Other value (may be returned by a hook -10, -11, ...) Otherwise -> yes (2)
@return int Return integer <=0 if no, >0 if yes
int
getVentilExportCompta(int $mode = 0)
Return if an invoice was transferred into accountnancy.
This is true if at least on line was transferred into table accounting_bookkeeping
string
getNextNumRef(Societe $soc, string $mode = 'next')
Return next reference of supplier invoice not already used (or last reference) according to numbering module defined into constant INVOICE_SUPPLIER_ADDON_NUMBER
@param Societe $soc Thirdparty object
string
getLibType(int $withbadge = 0)
Return label of type of invoice
string|int
getSubtypeLabel($table = '')
Return label of invoice subtype
@param string $table table of invoice
array<int, string>|array<string, int>
getArrayOfInvoiceSubtypes($mode = 0)
Retrieve a list of invoice subtype labels or codes.
@param int<0,1> $mode 0=Return id+label, 1=Return code+id
getLibStatut($mode = 0, int|float $alreadypaid = -1)
Return label of object status
@param 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
string
LibStatut(int $paye, int $status, int<0, 6> $mode = 0, int|float $alreadypaid = -1, int $type = -1, $moreparams = array())
Return label of a status
calculate_date_lim_reglement(int $cond_reglement = 0)
Returns an invoice payment deadline based on the invoice settlement conditions and billing date.
demande_prelevement(User $fuser, float $amount = 0, string $type = 'direct-debit', string $sourcetype = 'facture', int $checkduplicateamongall = 0, int $ribId = 0)
Create a withdrawal request for a direct debit order or a credit transfer order.
Use the remain to pay excluding all existing open direct debit requests.
int
makeStripeCardRequest(User $fuser, $id, $sourcetype = 'facture')
Create a payment with Stripe card Must take amount using Stripe and record an event into llx_actioncomm Record bank payment Send email to customer ?
int
makeStripeSepaRequest(User $fuser, $did, $type = 'direct-debit', $sourcetype = 'facture', $service = '', $forcestripe = '')
Create a direct debit order into prelevement_bons for a given prelevement_request, then Send the payment order to the service (for a direct debit order or a credit transfer order) and record an event in llx_actioncomm.
demande_prelevement_delete($fuser, int $did)
Remove a direct debit request or a credit transfer request
@param User $fuser User making delete
string
buildEPCQrCodeString()
Build string for EPC QR Code
string
buildZATCAQRString()
Build string for ZATCA QR Code (Arabi Saudia)
string
buildSwitzerlandQRString()
Build string for QR-Bill (Switzerland)
__construct($db)
Constructor
@param DoliDB $db Database handler
int
create($user)
Create supplier invoice into database
@param User $user user object that creates
fetch($id = 0, string $ref = '', $ref_ext = '')
Load object in memory from database
@param int $id Id supplier invoice
fetch_lines()
Load this->lines
@return int 1 si ok, < 0 si erreur
update($user = null, int $notrigger = 0)
Update database
@param User $user User that modify
int
insert_discount($idremise)
Add a discount line into an invoice (as an invoice line) using an existing absolute discount (Consume the discount)
@param int $idremise Id of absolute discount
int
delete(User $user, int $notrigger = 0)
Delete invoice from database
@param User $user User object
int
set_paid(User $user, string $close_code = '', string $close_note = '')
deprecated
deprecated
Tag invoice as a paid invoice
int<-1, 1>
setPaid(User $user, string $close_code = '', string $close_note = '')
Tag invoice as a paid invoice
int
set_unpaid(User $user)
deprecated
deprecated
Tag the invoice as not fully paid + trigger call BILL_UNPAYED Function used when a direct debit payment is refused, or when the invoice was canceled and reopened.
int
setUnpaid(User $user)
Tag the invoice as not fully paid + trigger call BILL_UNPAYED Function used when a direct debit payment is refused, or when the invoice was canceled and reopened.
int
setCanceled(User $user, string $close_code = '', string $close_note = '')
Tag invoice as canceled, with no payment on it (example for replacement invoice or payment never received) + call trigger BILL_CANCEL Warning, if option to decrease stock on invoice was set, this function does not change stock (it might be a cancel because of no payment even if merchandises were sent).
int
validate(User $user, string $force_number = '', int $idwarehouse = 0, $notrigger = 0)
Tag invoice as validated + call trigger BILL_VALIDATE
int
setDraft(User $user, int $idwarehouse = -1, $notrigger = 0)
Set draft status
int
addline(string $desc, float $pu, float|string $txtva, float $txlocaltax1, float $txlocaltax2, float $qty, int $fk_product = 0, float $remise_percent = 0, int|"" $date_start = 0, int|"" $date_end = 0, int $fk_code_ventilation = 0, int $info_bits = 0, string $price_base_type = 'HT', int $type = 0, int $rang = -1, int $notrigger = 0, array<string, mixed> $array_options = [], int|null $fk_unit = null, int $origin_id = 0, float $pu_devise = 0, string $ref_supplier = '', int $special_code = 0, int $fk_parent_line = 0, int $fk_remise_except = 0)
Adds an invoice line (associated with no predefined product/service) The parameters are already supposed to be correct and with final values when calling this method. Also, for the VAT rate, it must already have been defined by the caller by by the get_default_tva method(vendor_company, buying company, idprod) and the desc must already have the right value (the caller has to manage the multilanguage).
int<-1, 1>
updateline(int $id, string $desc, float $pu, float|string $vatrate, float $txlocaltax1 = 0, float $txlocaltax2 = 0, float $qty = 1, int $idproduct = 0, string $price_base_type = 'HT', int $info_bits = 0, int<0, 1> $type = 0, float $remise_percent = 0, int<0, 1> $notrigger = 0, int|"" $date_start = '', int|"" $date_end = '', array<string, mixed> $array_options = [], ?int $fk_unit = null, float $pu_devise = 0, string $ref_supplier = '', int $rang = 0)
Update a line detail in the database
deleteLine($rowid, int<0, 1> $notrigger = 0)
Delete a detail line from database
@param int $rowid Id of line to delete
void
info(int $id)
Loads the info order information into the invoice object
array<int, array{id: int, ref: string, status: int}>|int<-1, -1>
list_replacable_supplier_invoices(int $socid = 0)
Return list of replaceable invoices Status valid or abandoned for other reason + not paid + no payment + not already replaced
array<int, array{ref: string, status: int, type: int, paid: int<0, 1>, paye: int<0, 1>, paymentornot: int<0, 1>}>|int<-1, -1>
list_qualified_avoir_supplier_invoices(int $socid = 0)
Return list of qualifying invoices for correction by credit note Invoices that respect the following rules are returned: (validated + payment in progress) or classified (paid in full or paid in part) + not already replaced + not already having
WorkboardResponse|int
load_board(User $user)
Load indicators for dashboard (this->nbtodo and this->nbtodolate)
getNomUrl(int<0, 1> $withpicto = 0, string $option = '', int $max = 0, int<0, 1> $short = 0, string $moretitle = '', $notooltip = 0, $save_lastsearch_value = -1, $addlinktonotes = 0)
Return clickable name (with optional picto)
int
setCategories(int[]|int $categories)
Sets object to given categories.
Adds it to non existing supplied categories. Existing categories are left untouch.
initAsSpecimen(string $option = '')
Initialise an instance with random values.
Used to build previews or test instances. id must be 0 if object instance is a specimen.
loadStateBoard()
Load indicators for dashboard (this->nbtodo and this->nbtodolate)
@return int Return integer <0 if KO, >0 if OK
createFromClone(User $user, int $fromid, int<0, 1> $invertdetail = 0)
Load an object from its id and create a new one in database
generateDocument(string $modele, Translate $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null)
Create a document onto disk according to template model.
static bool
replaceThirdparty(DoliDB $dbs, int $origin_id, int $dest_id)
Function used to replace a thirdparty id with another one.
static bool
replaceProduct(DoliDB $db, int $origin_id, int $dest_id)
Function used to replace a product id with another one.
bool
hasDelay()
Is the payment of the supplier invoice having a delay?
bool
isCreditNoteUsed()
Is credit note used
getKanbanView(string $option = '', $arraydata = null)
Return clickable link of object (with eventually picto)
int
setVATReverseCharge($vatreversecharge)
Change the option VAT reverse charge
@param int<0,1> $vatreversecharge 0 = Off, 1 = On
sendEmailsRemindersOnSupplierInvoiceDueDate(int $nbdays = 0, $paymentmode = 'all', $template = '', $datetouse = 'duedate', $forcerecipient = '')
Send reminders by emails for supplier invoices validated that are due.
CAN BE A CRON TASK