2012-02-19 21:08:17 +01:00
< ? php
2012-09-02 22:12:56 +02:00
/* Copyright ( C ) 2006 - 2011 Laurent Destailleur < eldy @ users . sourceforge . net >
* Copyright ( C ) 2006 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
* Copyright ( C ) 2007 Patrick Raguin < patrick . raguin @ gmail . com >
2018-10-27 14:43:12 +02:00
* Copyright ( C ) 2010 - 2012 Regis Houssin < regis . houssin @ inodbox . com >
2012-09-02 22:12:56 +02:00
* Copyright ( C ) 2010 Juanjo Menent < jmenent @ 2 byte . es >
* Copyright ( C ) 2012 Christophe Battarel < christophe . battarel @ altairis . fr >
2012-02-19 21:08:17 +01:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2012-02-19 21:08:17 +01:00
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2019-09-23 21:55:30 +02:00
* along with this program . If not , see < https :// www . gnu . org / licenses />.
* or see https :// www . gnu . org /
2012-02-19 21:08:17 +01:00
*/
/**
* \file htdocs / core / lib / doc . lib . php
* \brief Set of functions used for ODT generation
* \ingroup core
*/
/**
* Return line description translated in outputlangs and encoded into UTF8
*
2019-03-11 01:01:15 +01:00
* @ param Object $line Object of line
2012-02-19 21:08:17 +01:00
* @ param Translate $outputlangs Object langs for output
* @ param int $hideref Hide reference
* @ param int $hidedesc Hide description
* @ param int $issupplierline Is it a line for a supplier object ?
* @ return string String with line
*/
2019-01-27 15:20:16 +01:00
function doc_getlinedesc ( $line , $outputlangs , $hideref = 0 , $hidedesc = 0 , $issupplierline = 0 )
2012-02-19 21:08:17 +01:00
{
global $db , $conf , $langs ;
$idprod = $line -> fk_product ;
2012-09-02 22:12:56 +02:00
$label = ( ! empty ( $line -> label ) ? $line -> label : ( ! empty ( $line -> libelle ) ? $line -> libelle : '' ));
$desc = ( ! empty ( $line -> desc ) ? $line -> desc : ( ! empty ( $line -> description ) ? $line -> description : '' ));
$ref_supplier = ( ! empty ( $line -> ref_supplier ) ? $line -> ref_supplier : ( ! empty ( $line -> ref_fourn ) ? $line -> ref_fourn : '' )); // TODO Not yet saved for supplier invoices, only supplier orders
$note = ( ! empty ( $line -> note ) ? $line -> note : '' );
2012-02-19 21:08:17 +01:00
if ( $issupplierline ) $prodser = new ProductFournisseur ( $db );
else $prodser = new Product ( $db );
if ( $idprod )
{
$prodser -> fetch ( $idprod );
// If a predefined product and multilang and on other lang, we renamed label with label translated
2012-09-02 22:12:56 +02:00
if ( ! empty ( $conf -> global -> MAIN_MULTILANGS ) && ( $outputlangs -> defaultlang != $langs -> defaultlang ))
2012-02-19 21:08:17 +01:00
{
2012-08-25 12:07:18 +02:00
if ( ! empty ( $prodser -> multilangs [ $outputlangs -> defaultlang ][ " label " ]) && $label == $prodser -> label ) $label = $prodser -> multilangs [ $outputlangs -> defaultlang ][ " label " ];
2012-02-19 21:08:17 +01:00
if ( ! empty ( $prodser -> multilangs [ $outputlangs -> defaultlang ][ " description " ]) && $desc == $prodser -> description ) $desc = $prodser -> multilangs [ $outputlangs -> defaultlang ][ " description " ];
if ( ! empty ( $prodser -> multilangs [ $outputlangs -> defaultlang ][ " note " ]) && $note == $prodser -> note ) $note = $prodser -> multilangs [ $outputlangs -> defaultlang ][ " note " ];
}
}
// Description short of product line
$libelleproduitservice = $label ;
// Description long of product line
if ( $desc && ( $desc != $label ))
{
if ( $desc == '(CREDIT_NOTE)' && $line -> fk_remise_except )
{
$discount = new DiscountAbsolute ( $db );
$discount -> fetch ( $line -> fk_remise_except );
2018-03-05 11:49:04 +01:00
$sourceref =! empty ( $discount -> discount_type ) ? $discount -> ref_invoive_supplier_source : $discount -> ref_facture_source ;
2019-01-27 11:55:16 +01:00
$libelleproduitservice = $outputlangs -> transnoentitiesnoconv ( " DiscountFromCreditNote " , $sourceref );
2012-02-19 21:08:17 +01:00
}
elseif ( $desc == '(DEPOSIT)' && $line -> fk_remise_except )
{
$discount = new DiscountAbsolute ( $db );
$discount -> fetch ( $line -> fk_remise_except );
2018-03-05 11:49:04 +01:00
$sourceref =! empty ( $discount -> discount_type ) ? $discount -> ref_invoive_supplier_source : $discount -> ref_facture_source ;
2019-01-27 11:55:16 +01:00
$libelleproduitservice = $outputlangs -> transnoentitiesnoconv ( " DiscountFromDeposit " , $sourceref );
2012-02-19 21:08:17 +01:00
// Add date of deposit
2019-01-27 11:55:16 +01:00
if ( ! empty ( $conf -> global -> INVOICE_ADD_DEPOSIT_DATE )) $libelleproduitservice .= ' (' . dol_print_date ( $discount -> datec , 'day' , '' , $outputlangs ) . ')' ;
2012-02-19 21:08:17 +01:00
}
2016-11-25 11:04:42 +01:00
elseif ( $desc == '(EXCESS RECEIVED)' && $line -> fk_remise_except )
{
$discount = new DiscountAbsolute ( $db );
$discount -> fetch ( $line -> fk_remise_except );
2019-01-27 11:55:16 +01:00
$libelleproduitservice = $outputlangs -> transnoentitiesnoconv ( " DiscountFromExcessReceived " , $discount -> ref_facture_source );
2018-02-19 15:52:07 +01:00
}
elseif ( $desc == '(EXCESS PAID)' && $line -> fk_remise_except )
{
$discount = new DiscountAbsolute ( $db );
$discount -> fetch ( $line -> fk_remise_except );
2019-01-27 11:55:16 +01:00
$libelleproduitservice = $outputlangs -> transnoentitiesnoconv ( " DiscountFromExcessPaid " , $discount -> ref_invoice_supplier_source );
2018-02-19 15:52:07 +01:00
}
2012-02-19 21:08:17 +01:00
else
{
if ( $idprod )
{
2014-05-07 19:06:47 +02:00
if ( empty ( $hidedesc )) $libelleproduitservice = dol_concatdesc ( $libelleproduitservice , $desc );
2012-02-19 21:08:17 +01:00
}
else
{
2014-05-07 19:06:47 +02:00
$libelleproduitservice = dol_concatdesc ( $libelleproduitservice , $desc );
2012-02-19 21:08:17 +01:00
}
}
}
// If line linked to a product
if ( $idprod )
{
// On ajoute la ref
if ( $prodser -> ref )
{
$prefix_prodserv = " " ;
$ref_prodserv = " " ;
2012-09-02 22:12:56 +02:00
if ( ! empty ( $conf -> global -> PRODUCT_ADD_TYPE_IN_DOCUMENTS )) // In standard mode, we do not show this
2012-02-19 21:08:17 +01:00
{
2015-11-07 14:37:47 +01:00
if ( $prodser -> isService ())
2012-02-19 21:08:17 +01:00
{
$prefix_prodserv = $outputlangs -> transnoentitiesnoconv ( " Service " ) . " " ;
}
else
{
$prefix_prodserv = $outputlangs -> transnoentitiesnoconv ( " Product " ) . " " ;
}
}
2012-09-02 22:12:56 +02:00
if ( empty ( $hideref ))
2012-02-19 21:08:17 +01:00
{
if ( $issupplierline ) $ref_prodserv = $prodser -> ref . ' (' . $outputlangs -> trans ( " SupplierRef " ) . ' ' . $ref_supplier . ')' ; // Show local ref and supplier ref
else $ref_prodserv = $prodser -> ref ; // Show local ref only
$ref_prodserv .= " - " ;
}
$libelleproduitservice = $prefix_prodserv . $ref_prodserv . $libelleproduitservice ;
}
}
2012-09-02 22:12:56 +02:00
if ( ! empty ( $line -> date_start ) || ! empty ( $line -> date_end ))
2012-02-19 21:08:17 +01:00
{
$format = 'day' ;
// Show duration if exists
if ( $line -> date_start && $line -> date_end )
{
2019-01-27 11:55:16 +01:00
$period = '(' . $outputlangs -> transnoentitiesnoconv ( 'DateFromTo' , dol_print_date ( $line -> date_start , $format , false , $outputlangs ), dol_print_date ( $line -> date_end , $format , false , $outputlangs )) . ')' ;
2012-02-19 21:08:17 +01:00
}
if ( $line -> date_start && ! $line -> date_end )
{
2019-01-27 11:55:16 +01:00
$period = '(' . $outputlangs -> transnoentitiesnoconv ( 'DateFrom' , dol_print_date ( $line -> date_start , $format , false , $outputlangs )) . ')' ;
2012-02-19 21:08:17 +01:00
}
if ( ! $line -> date_start && $line -> date_end )
{
2019-01-27 11:55:16 +01:00
$period = '(' . $outputlangs -> transnoentitiesnoconv ( 'DateUntil' , dol_print_date ( $line -> date_end , $format , false , $outputlangs )) . ')' ;
2012-02-19 21:08:17 +01:00
}
//print '>'.$outputlangs->charset_output.','.$period;
2014-05-07 19:06:47 +02:00
$libelleproduitservice = dol_concatdesc ( $libelleproduitservice , $period );
2012-02-19 21:08:17 +01:00
//print $libelleproduitservice;
}
return $libelleproduitservice ;
}