Merge branch 'Dolibarr:develop' into new-odt-abbility-to-supplier-invoices

This commit is contained in:
Artem Chernitsov 2022-11-15 13:19:36 +02:00 committed by GitHub
commit b0c9260077
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 100 additions and 62 deletions

View File

@ -730,7 +730,7 @@ class AccountingAccount extends CommonObject
* @param Product $product Product object sell or buy
* @param Facture|FactureFournisseur $facture Facture
* @param FactureLigne|SupplierInvoiceLine $factureDet Facture Det
* @param array $accountingAccount Array of Account account
* @param array $accountingAccount Array of Accounting account
* @param string $type Customer / Supplier
* @return array|int Accounting accounts suggested or < 0 if technical error.
*/
@ -868,20 +868,44 @@ class AccountingAccount extends CommonObject
}
// Manage Deposit
if ($factureDet->desc == "(DEPOSIT)" || $facture->type == $facture::TYPE_DEPOSIT) {
$accountdeposittoventilated = new self($this->db);
if ($type == 'customer') {
$result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1);
} elseif ($type == 'supplier') {
$result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT, 1);
}
if (isset($result) && $result < 0) {
return -1;
if (getDolGlobalString('ACCOUNTING_ACCOUNT_' . strtoupper($type) . '_DEPOSIT')) {
if ($factureDet->desc == "(DEPOSIT)" || $facture->type == $facture::TYPE_DEPOSIT) {
$accountdeposittoventilated = new self($this->db);
if ($type == 'customer') {
$result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1);
} elseif ($type == 'supplier') {
$result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT, 1);
}
if (isset($result) && $result < 0) {
return -1;
}
$code_l = $accountdeposittoventilated->ref;
$code_p = '';
$code_t = '';
$suggestedid = $accountdeposittoventilated->rowid;
$suggestedaccountingaccountfor = 'deposit';
}
$code_l = $accountdeposittoventilated->ref;
$suggestedid = $accountdeposittoventilated->rowid;
$suggestedaccountingaccountfor = 'deposit';
// For credit note invoice, if origin invoice is a deposit invoice, force also on specific customer/supplier deposit account
if (!empty($facture->fk_facture_source)) {
$invoiceSource = new $facture($this->db);
$invoiceSource->fetch($facture->fk_facture_source);
if ($facture->type == $facture::TYPE_CREDIT_NOTE && $invoiceSource->type == $facture::TYPE_DEPOSIT) {
$accountdeposittoventilated = new self($this->db);
if ($type == 'customer') {
$accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1);
} elseif ($type == 'supplier') {
$accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT, 1);
}
$code_l = $accountdeposittoventilated->ref;
$code_p = '';
$code_t = '';
$suggestedid = $accountdeposittoventilated->rowid;
$suggestedaccountingaccountfor = 'deposit';
}
}
}
// If $suggestedid could not be guessed yet, we set it from the generic default accounting code $code_l

View File

@ -142,7 +142,7 @@ if ($action == 'validatehistory') {
}*/
// Customer Invoice lines (must be same request than into page list.php for manual binding)
$sql = "SELECT f.rowid as facid, f.ref as ref, f.datef, f.type as ftype,";
$sql = "SELECT f.rowid as facid, f.ref as ref, f.datef, f.type as ftype, f.fk_facture_source,";
$sql .= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,";
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tva_tx as tva_tx_prod,";
if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) {
@ -237,7 +237,8 @@ if ($action == 'validatehistory') {
$facture_static->ref = $objp->ref;
$facture_static->id = $objp->facid;
$facture_static->type = $objp->ftype;
$facture_static->date = $objp->datef;
$facture_static->date = $db->jdate($objp->datef);
$facture_static->fk_facture_source = $objp->fk_facture_source;
$facture_static_det->id = $objp->rowid;
$facture_static_det->total_ht = $objp->total_ht;

View File

@ -229,7 +229,7 @@ if (empty($chartaccountcode)) {
}
// Customer Invoice lines
$sql = "SELECT f.rowid as facid, f.ref, f.datef, f.type as ftype,";
$sql = "SELECT f.rowid as facid, f.ref, f.datef, f.type as ftype, f.fk_facture_source,";
$sql .= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,";
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tva_tx as tva_tx_prod,";
if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) {
@ -579,6 +579,7 @@ if ($result) {
$facture_static->id = $objp->facid;
$facture_static->type = $objp->ftype;
$facture_static->date = $db->jdate($objp->datef);
$facture_static->fk_facture_source = $objp->fk_facture_source;
$facture_static_det->id = $objp->rowid;
$facture_static_det->total_ht = $objp->total_ht;

View File

@ -140,7 +140,7 @@ if ($action == 'validatehistory') {
}*/
// Supplier Invoice Lines (must be same request than into page list.php for manual binding)
$sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype,";
$sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype, f.fk_facture_source,";
$sql .= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,";
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tva_tx as tva_tx_prod,";
if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) {
@ -233,7 +233,10 @@ if ($action == 'validatehistory') {
$facture_static->ref = $objp->ref;
$facture_static->id = $objp->facid;
$facture_static->type = $objp->ftype;
$facture_static->date = $objp->datef;
$facture_static->ref_supplier = $objp->ref_supplier;
$facture_static->label = $objp->invoice_label;
$facture_static->date = $db->jdate($objp->datef);
$facture_static->fk_facture_source = $objp->fk_facture_source;
$facture_static_det->id = $objp->rowid;
$facture_static_det->total_ht = $objp->total_ht;

View File

@ -232,7 +232,7 @@ if (empty($chartaccountcode)) {
}
// Supplier Invoice Lines
$sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype,";
$sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype, f.fk_facture_source,";
$sql .= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,";
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tva_tx as tva_tx_prod,";
if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) {
@ -592,6 +592,7 @@ if ($result) {
$facturefourn_static->ref_supplier = $objp->ref_supplier;
$facturefourn_static->label = $objp->invoice_label;
$facturefourn_static->date = $db->jdate($objp->datef);
$facturefourn_static->fk_facture_source = $objp->fk_facture_source;
$facturefourn_static_det->id = $objp->rowid;
$facturefourn_static_det->total_ht = $objp->total_ht;

View File

@ -250,9 +250,19 @@ foreach ($phparray as $key => $value) {
//var_dump($value);
foreach ($value as $keyparam => $keyvalue) {
if (!is_array($keyvalue)) {
print '<tr class="oddeven">';
print '<td>'.$keyparam.'</td>';
$keytoshow = $keyparam;
$valtoshow = $keyvalue;
// Hide value of session cookies
if (in_array($keyparam, array('HTTP_COOKIE', 'Cookie', "\$_SERVER['HTTP_COOKIE']", 'Authorization'))) {
$valtoshow = '<span class="opacitymedium">'.$langs->trans("Hidden").'</span>';
}
if (preg_match('/'.preg_quote('$_COOKIE[\'DOLSESSID_', '/').'/i', $keyparam)) {
$keytoshow = $keyparam;
$valtoshow = '<span class="opacitymedium">'.$langs->trans("Hidden").'</span>';
}
print '<tr class="oddeven">';
print '<td>'.$keytoshow.'</td>';
if ($keyparam == 'X-ChromePhp-Data') {
$valtoshow = dol_trunc($keyvalue, 80);
}

View File

@ -2642,10 +2642,10 @@ class Propal extends CommonObject
if ($resql) {
// Status self::STATUS_REFUSED by default
$modelpdf = !empty($conf->global->PROPALE_ADDON_PDF_ODT_CLOSED) ? $conf->global->PROPALE_ADDON_PDF_ODT_CLOSED : $this->model_pdf;
$trigger_name = 'PROPAL_CLOSE_REFUSED';
$trigger_name = 'PROPAL_CLOSE_REFUSED'; // used later in call_trigger()
if ($status == self::STATUS_SIGNED) { // Status self::STATUS_SIGNED
$trigger_name = 'PROPAL_CLOSE_SIGNED';
$trigger_name = 'PROPAL_CLOSE_SIGNED'; // used later in call_trigger()
$modelpdf = !empty($conf->global->PROPALE_ADDON_PDF_ODT_TOBILL) ? $conf->global->PROPALE_ADDON_PDF_ODT_TOBILL : $this->model_pdf;
// The connected company is classified as a client

View File

@ -214,6 +214,7 @@ if ($action == "importSignature") {
//customer is not a user !?! so could we use same user as validation ?
$user = new User($db);
$user->fetch($object->user_valid_id);
$object->context = array('closedfromonlinesignature' => 'closedfromonlinesignature');
$result = $object->call_trigger('PROPAL_CLOSE_SIGNED', $user);
if ($result < 0) {
$error++;

View File

@ -30,6 +30,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/project/modules_project.php';
*/
class mod_project_universal extends ModeleNumRefProjects
{
/**
* @var DoliDB $db
*/
public $db;
/**
* Dolibarr version of the loaded document
* @var string

View File

@ -127,6 +127,11 @@ abstract class ModeleNumRefProjects
*/
public $error = '';
/**
* @var string $version
*/
public $version;
/**
* Return if a module can be used or not
*

View File

@ -138,7 +138,7 @@ class mod_supplier_proposal_saphir extends ModeleNumRefSupplierProposal
return 0;
}
$date = $supplier_proposal->datep;
$date = $supplier_proposal->date;
$customercode = $objsoc->code_client;
$numFinal = get_next_value($db, $mask, 'supplier_proposal', 'ref', '', $customercode, $date);

View File

@ -385,7 +385,7 @@ if ($nolinesbefore) {
if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier' || $object->element == 'invoice_supplier_rec') { // We must have same test in printObjectLines
$coldisplay++;
?>
<td class="nobottom linecolrefsupplier"><input id="fourn_ref" name="fourn_ref" class="flat minwidth50 maxwidth125 maxwidth125onsmartphone" value="<?php echo (GETPOSTISSET("fourn_ref") ? GETPOST("fourn_ref", 'alpha', 2) : ''); ?>"></td>
<td class="nobottom linecolrefsupplier"><input id="fourn_ref" name="fourn_ref" class="flat minwidth50 maxwidth100 maxwidth125onsmartphone" value="<?php echo (GETPOSTISSET("fourn_ref") ? GETPOST("fourn_ref", 'alpha', 2) : ''); ?>"></td>
<?php }
print '<td class="nobottom linecolvat right">';
$coldisplay++;

View File

@ -196,7 +196,7 @@ $coldisplay++;
if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier' || $object->element == 'invoice_supplier_rec') { // We must have same test in printObjectLines
$coldisplay++;
?>
<td class="right linecolrefsupplier"><input id="fourn_ref" name="fourn_ref" class="flat minwidth50 maxwidth125 maxwidth125onsmartphone" value="<?php echo GETPOSTISSET('fourn_ref') ? GETPOST('fourn_ref') : ($line->ref_supplier ? $line->ref_supplier : $line->ref_fourn); ?>"></td>
<td class="right linecolrefsupplier"><input id="fourn_ref" name="fourn_ref" class="flat minwidth50 maxwidth100 maxwidth125onsmartphone" value="<?php echo GETPOSTISSET('fourn_ref') ? GETPOST('fourn_ref') : ($line->ref_supplier ? $line->ref_supplier : $line->ref_fourn); ?>"></td>
<?php
print '<input type="hidden" id="fournprice" name="fournprice" class="" value="'.$line->fk_fournprice.'">';
}

View File

@ -487,7 +487,8 @@ if ($action == 'create') {
// Payment mode
print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n";
$selected = GETPOST('modepayment', 'int');
$form->select_types_paiements($selected, 'modepayment', 'CRDT', 0, 1);
print img_picto('', 'payment', 'class="pictofixedwidth"');
print $form->select_types_paiements($selected, 'modepayment', 'CRDT', 0, 1, 0, 0, 1, 'maxwidth200 widthcentpercentminusx', 1);
print "</td></tr>\n";
// Public note
@ -516,7 +517,8 @@ if ($action == 'create') {
if (isModEnabled('project')) {
print "<tr><td>".$langs->trans("Project")."</td><td>";
$formproject->select_projects(-1, $projectid, 'fk_project', 0, 0, 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth500');
print img_picto('', 'project', 'class="pictofixedwidth"');
print $formproject->select_projects(-1, $projectid, 'fk_project', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500');
print "</td></tr>\n";
}

View File

@ -65,7 +65,7 @@ class PaymentDonation extends CommonObject
public $amounts = array(); // Array of amounts
public $fk_typepayment; // Payment mode ID
public $paymenttype; // Payment mode ID
public $paymenttype; // Payment mode ID or Code. TODO Use only the code in this field.
public $num_payment;
@ -188,12 +188,12 @@ class PaymentDonation extends CommonObject
$sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_donation (fk_donation, datec, datep, amount,";
$sql .= " fk_typepayment, num_payment, note, ext_payment_id, ext_payment_site,";
$sql .= " fk_user_creat, fk_bank)";
$sql .= " VALUES ($this->chid, '".$this->db->idate($now)."',";
$sql .= " VALUES (".((int) $this->chid).", '".$this->db->idate($now)."',";
$sql .= " '".$this->db->idate($this->datepaid)."',";
$sql .= " ".price2num($totalamount).",";
$sql .= " ".((float) price2num($totalamount)).",";
$sql .= " ".((int) $this->paymenttype).", '".$this->db->escape($this->num_payment)."', '".$this->db->escape($this->note_public)."', ";
$sql .= " ".($this->ext_payment_id ? "'".$this->db->escape($this->ext_payment_id)."'" : "null").", ".($this->ext_payment_site ? "'".$this->db->escape($this->ext_payment_site)."'" : "null").",";
$sql .= " ".$user->id.", 0)";
$sql .= " ".((int) $user->id).", 0)";
dol_syslog(get_class($this)."::create", LOG_DEBUG);
$resql = $this->db->query($sql);
@ -269,8 +269,8 @@ class PaymentDonation extends CommonObject
$this->tms = $this->db->jdate($obj->tms);
$this->datep = $this->db->jdate($obj->datep);
$this->amount = $obj->amount;
$this->fk_typepayment = $obj->fk_typepayment; // For backward compatibility
$this->paymenttype = $obj->fk_typepayment;
$this->fk_typepayment = $obj->fk_typepayment; // Id on type of payent
$this->paymenttype = $obj->fk_typepayment; // Id on type of payment. We should store the code into paymenttype.
$this->num_payment = $obj->num_payment;
$this->note_public = $obj->note_public;
$this->fk_bank = $obj->fk_bank;

View File

@ -2,4 +2,3 @@
ECMSectionsManual=Manuelle Verzeichnisse
ECMSectionsAuto=Automatische Verzeichnisse
ECMNbOfFilesInSubDir=Anzahl der Dateien im Unterverzeichnis
ECMAreaDesc2=* Automatische Verzeichnisse werden automatisch befüllt, wenn Sie Dokumente von der Karte eines Elements erstellen. <br> * Manuelle Verzeichnisse können Sie dazu nutzen, nicht mit anderen Elementen verbundene Dokumente zu speichern.

View File

@ -6,7 +6,6 @@ ECMAddSection=Ordner hinzufügen
ECMNbOfFilesInDir=Anzahl der Dateien in Ordner
ECMNbOfSubDir=Anzahl der Unterordner
ECMNbOfFilesInSubDir=Anzahl Dateien in Unterordnern
ECMAreaDesc2=* In den automatischen Verzeichnissen werden die vom System erzeugeten Dokumente abgelegt. <br> * Die manuellen Verzeichnisse können Sie selbst verwalten und zusätzliche nicht direkt zuordenbare Dokument hinterlegen.
ECMSectionWasRemoved=Der Ordner <b>%s</b> wurde gelöscht.
ECMSearchByKeywords=Suche nach Stichwörter
ECMSearchByEntity=Suche nach Objekt

View File

@ -32,6 +32,7 @@ StatusReceptionDraftShort=Draft
StatusReceptionValidatedShort=Validated
StatusReceptionProcessedShort=Processed
ReceptionSheet=Reception sheet
ValidateReception=Validate reception
ConfirmDeleteReception=Are you sure you want to delete this reception?
ConfirmValidateReception=Are you sure you want to validate this reception with reference <b>%s</b>?
ConfirmCancelReception=Are you sure you want to cancel this reception?

View File

@ -15,7 +15,6 @@ ECMNbOfSubDir=Cantidad de sub-carpetas
ECMNbOfFilesInSubDir=Cantidad de archivos en sub-carpetas
ECMArea=Area SAD/ACE
ECMAreaDesc=El área de SAD/ACE (Sistema de Administración de Documentos / Administración de Contenido Electrónico) te permite guardar, compartir y rápidamente buscar todo tipo de documentos en Dolibarr.
ECMAreaDesc2=* Las carpetas automáticas son llenadas automáticamente al agregar documentos desde la ficha de un elemento. <br> * Las carpetas manuales pueden ser usadas para guardar documentos no enlazados a un elemento en particular.
ECMSectionWasRemoved=Carpeta <b>%s</b> ha sido eliminada.
ECMSectionWasCreated=Carpeta <b>%s</b> ha sido creada.
ECMSearchByKeywords=Búsqueda por palabras clave

View File

@ -6,7 +6,6 @@ ECMNbOfSubDir=Cantidad de subdirectorios
ECMNbOfFilesInSubDir=Número de archivos en subdirectorios
ECMArea=Área de DMS / ECM
ECMAreaDesc=El área DMS / ECM (Sistema de gestión de documentos / gestión de contenido electrónico) le permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr.
ECMAreaDesc2=* Los directorios automáticos se rellenan automáticamente al agregar documentos desde la tarjeta de un elemento. <br> * Los directorios manuales se pueden usar para guardar documentos no vinculados a un elemento en particular.
ECMSectionWasRemoved=El directorio <b>%s</b> ha sido borrado.
ECMSectionWasCreated=El directorio <b>%s</b> ha sido creado.
ECMNoDirectoryYet=Sin directorio creado

View File

@ -60,7 +60,6 @@ TicketAssigned=Ticket ahora está asignado
TicketChangeCategory=Cambiar código analítico
TicketChangeSeverity=Cambiar severidad
TicketAddMessage=Añade un mensaje
AddMessage=Añade un mensaje
MessageSuccessfullyAdded=Ticket agregado
TicketMessageSuccessfullyAdded=Mensaje agregado con éxito
TicketMessagesList=Lista de mensajes

View File

@ -1307,7 +1307,6 @@ ActivateFCKeditor=Activar editor avanzado para:
FCKeditorForNotePublic=Creación / edición WYSIWIG del campo "notas públicas" de elementos
FCKeditorForNotePrivate=Creación / edición WYSIWIG del campo "notas privadas" de elementos
FCKeditorForCompany=Creación / edición WYSIWIG de la descripción de campo de elementos (excepto productos / servicios)
FCKeditorForProduct=Creación / edición WYSIWIG de la descripción de campo de productos / servicios
FCKeditorForProductDetails=WYSIWIG creación / edición de líneas de detalle de productos para todas las entidades (propuestas, pedidos, facturas, etc ...). <span class="warning">Advertencia: El uso de esta opción para este caso no se recomienda seriamente, ya que puede crear problemas con caracteres especiales y formato de página al crear archivos PDF.</span>
FCKeditorForMailing=Creación / edición WYSIWIG para eMailings masivos (Herramientas-> eMailing)
FCKeditorForUserSignature=Creación / edición WYSIWIG de la firma del usuario.

View File

@ -6,7 +6,6 @@ ECMCreationDate=Fecha de creación
ECMNbOfFilesInSubDir=Número de archivos en subdirectorios
ECMArea=Área DMS / ECM
ECMAreaDesc=El área DMS / ECM (Document Management System / Electronic Content Management) permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr.
ECMAreaDesc2=* Los directorios automáticos se llenan automáticamente al agregar documentos desde la tarjeta de un elemento. <br> * Los directorios manuales se pueden usar para guardar documentos que no están vinculados a un elemento en particular.
ECMSectionWasRemoved=El directorio <b> %s </b> ha sido eliminado.
ECMSectionWasCreated=Se ha creado el directorio <b> %s </b>.
ECMNoDirectoryYet=No se creó ningún directorio

View File

@ -77,7 +77,6 @@ TicketChangeType=Tipo de cambio
TicketChangeCategory=Cambiar el código analítico
TicketChangeSeverity=Cambiar la gravedad
TicketAddMessage=Añade un mensaje
AddMessage=Añade un mensaje
MessageSuccessfullyAdded=Ticket agregado
TicketMessageSuccessfullyAdded=Mensaje agregado exitosamente
TicketMessagesList=Lista de mensajes

View File

@ -14,5 +14,4 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasifique el pedido de ventas de o
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING_CLOSED=Clasifique el pedido de venta de origen vinculado como enviado cuando se cierra un envío (y si la cantidad enviada por todos los envíos es la misma que en el pedido para actualizar)
descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Clasifique la propuesta del proveedor de origen vinculado como facturada cuando se valida la factura del proveedor (y si el monto de la factura es el mismo que el monto total de la propuesta vinculada)
descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasifique el pedido de compra de origen vinculado como facturado cuando se valida la factura del proveedor (y si el monto de la factura es el mismo que el monto total del pedido vinculado)
descWORKFLOW_BILL_ON_RECEPTION=Clasifique las recepciones como "facturadas" cuando un pedido de proveedor vinculado is validado
descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasifique el envío de origen vinculado como cerrado cuando se valida la factura del cliente

View File

@ -5,7 +5,6 @@ ECMCreationDate=Fecha de creación
ECMNbOfFilesInSubDir=Número de archivos en subdirectorios
ECMArea=Área de DMS/ECM
ECMAreaDesc=El área SGD/GCE (Sistema de Gestión de Documentos / Gestión de Contenido Electrónico) le permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr.
ECMAreaDesc2=* Los directorios automáticos se rellenan automáticamente al agregar documentos desde la tarjeta de un elemento. <br> * Los directorios manuales se pueden utilizar para guardar documentos no vinculados a un elemento en particular.
ECMSectionWasRemoved=Se ha eliminado el directorio <b>%s</b>.
ECMSectionWasCreated=Directorio <b>%s</b> ha sido creado.
ECMSearchByKeywords=Búsqueda por palabras clave

View File

@ -53,7 +53,6 @@ TicketAssigned=Ticket ahora está asignado
TicketChangeCategory=Cambiar código analítico
TicketChangeSeverity=Cambiar severidad
TicketAddMessage=Añade un mensaje
AddMessage=Añade un mensaje
MessageSuccessfullyAdded=Ticket agregado
TicketMessageSuccessfullyAdded=Mensaje agregado con éxito
TicketMessagesList=Lista de mensajes

View File

@ -3,4 +3,3 @@ OperationParamDesc=Define the rules to use to extract or set values.<br>Example
EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it.<br>For example, if you want to create a thirdparty with a name extracted from a string 'Name: name to find' present into the body, use the sender email as email, you can set the parameter field like this:<br>'email=HEADER:^From:(.*);name=EXTRACT:BODY:Name:\\s([^\\s]*);client=SET:2;'<br>
IfYouUseASecondTaxYouMustSetYouUseTheMainTax=If you want to use a second tax, you must enable also the first sale tax
IfYouUseAThirdTaxYouMustSetYouUseTheMainTax=If you want to use a third tax, you must enable also the first sale tax
AllowExternalDownload=Allow external download

View File

@ -5,7 +5,6 @@ ECMSectionsManual=Arbre manuel
ECMSectionsAuto=Arbre automatique
ECMAddSection=Ajouter un répertoire
ECMCreationDate=Date création
ECMAreaDesc2=* Les répertoires automatiques sont remplis automatiquement lors de l'ajout de documents à partir d'une carte d'un élément. <br> * Les répertoires manuels peuvent être utilisés pour enregistrer des documents non liés à un élément particulier.
ECMSectionWasRemoved=Le répertoire <b>%s</b> a été supprimé.
ECMSectionOfDocuments=Répertoires de documents
ShowECMSection=Afficher le répertoire

View File

@ -57,7 +57,6 @@ MarkAsRead=Markeer ticket als gelezen
TicketHistory=Ticket geschiedenis
TicketChangeType=Van type veranderen
TicketAddMessage=Voeg een bericht toe
AddMessage=Voeg een bericht toe
TicketMessageSuccessfullyAdded=Bericht is succesvol toegevoegd
NoMsgForThisTicket=Geen bericht voor dit ticket
TicketSeverity=Strengheid

View File

@ -1333,7 +1333,6 @@ ActivateFCKeditor=Editor avançado ativo por:
FCKeditorForNotePublic=Usar editor WYSIWIG nos campos de "notas públicas" dos elementos
FCKeditorForNotePrivate=Usar editor WYSIWIG nos campos de "notas privadas" dos elementos
FCKeditorForCompany=Usar editor WYSIWIG nos campos de descrição dos elementos (exceto produtos/serviços)
FCKeditorForProduct=Usar editor WYSIWIG nos campos de descrição de produtos/serviços
FCKeditorForProductDetails=Criação / edição WYSIWIG de linhas de detalhes de produtos para todas as entidades (propostas, encomendas, facturas, etc ...). <span class="warning">Aviso: O uso desta opção neste caso não é recomendado, pois pode criar problemas com caracteres especiais e formatação de página ao construir arquivos PDF.</span>
FCKeditorForMailing=Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing)
FCKeditorForUserSignature=criação/edição do WYSIWIG nas assinaturas de usuários

View File

@ -12,7 +12,6 @@ ECMNbOfFilesInSubDir=Numero de arquivos nos subpastas
ECMCreationUser=Criado por
ECMArea=Área DMS / ECM
ECMAreaDesc=A área DMS / ECM (Gerenciamento de documentos / Gerenciamento de conteúdo eletrônico) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos no Dolibarr.
ECMAreaDesc2=* As pastas automáticas são geradas automaticamente quando algum arquivo é adicionado a algum ficheiro do sistema.<br>* As pastas manuais podem ser usados para guardar documentos sem ligação a um cadastro do sistema.
ECMSectionWasRemoved=A pasta <b>%s</b> foi eliminada
ECMSearchByKeywords=Busca usando palavras chave
ECMSearchByEntity=Busca por objeto

View File

@ -76,7 +76,6 @@ TicketHistory=Histórico de bilhetes
TicketChangeCategory=Modifica o código analítico
TicketChangeSeverity=Alterar gravidade
TicketAddMessage=Adiciona uma mensagem
AddMessage=Adiciona uma mensagem
MessageSuccessfullyAdded=Bilhete adicionado
NoMsgForThisTicket=Nenhuma mensagem para este bilhete
TicketProperties=Classificação

View File

@ -1329,7 +1329,6 @@ ActivateFCKeditor=Editor avançado ativo por:
FCKeditorForNotePublic=Usar editor WYSIWIG nos campos de "notas públicas" dos elementos
FCKeditorForNotePrivate=Usar editor WYSIWIG nos campos de "notas privadas" dos elementos
FCKeditorForCompany=Usar editor WYSIWIG nos campos de descrição dos elementos (exceto produtos/serviços)
FCKeditorForProduct=Usar editor WYSIWIG nos campos de descrição de produtos/serviços
FCKeditorForProductDetails=Criação / edição WYSIWIG de linhas de detalhes de produtos para todas as entidades (propostas, encomendas, facturas, etc ...). <span class="warning">Aviso: O uso desta opção neste caso não é recomendado, pois pode criar problemas com caracteres especiais e formatação de página ao construir arquivos PDF.</span>
FCKeditorForMailing=Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing)
FCKeditorForUserSignature=criação/edição do WYSIWIG nas assinaturas de usuários

View File

@ -12,7 +12,6 @@ ECMNbOfFilesInSubDir=Numero de arquivos nos subpastas
ECMCreationUser=Criado por
ECMArea=Área DMS / ECM
ECMAreaDesc=A área DMS / ECM (Gerenciamento de documentos / Gerenciamento de conteúdo eletrônico) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos no Dolibarr.
ECMAreaDesc2=* As pastas automáticas são geradas automaticamente quando algum arquivo é adicionado a algum ficheiro do sistema.<br>* As pastas manuais podem ser usados para guardar documentos sem ligação a um cadastro do sistema.
ECMSectionWasRemoved=A pasta <b>%s</b> foi eliminada
ECMSearchByKeywords=Busca usando palavras chave
ECMSearchByEntity=Busca por objeto

View File

@ -374,7 +374,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
// require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php';
// $notify = new Notify($db);
// $formquestion = array_merge($formquestion, array(
// array('type' => 'onecolumn', 'value' => $notify->confirmMessage('PROPAL_CLOSE_SIGNED', $object->socid, $object)),
// array('type' => 'onecolumn', 'value' => $notify->confirmMessage('PARTNERSHIP_CLOSE_DENY', $object->socid, $object)),
// ));
// }

View File

@ -277,11 +277,11 @@ if (empty($reshook) && $action == 'add') {
$adh->pass = GETPOST('pass1');
}
$adh->photo = GETPOST('photo');
$adh->country_id = $conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE ? $conf->global->MEMBER_NEWFORM_FORCECOUNTRYCODE : GETPOST('country_id', 'int');
$adh->country_id = getDolGlobalString("MEMBER_NEWFORM_FORCECOUNTRYCODE", GETPOST('country_id', 'int'));
$adh->state_id = GETPOST('state_id', 'int');
$adh->typeid = $conf->global->MEMBER_NEWFORM_FORCETYPE ? $conf->global->MEMBER_NEWFORM_FORCETYPE : GETPOST('typeid', 'int');
$adh->typeid = getDolGlobalString("MEMBER_NEWFORM_FORCETYPE", GETPOST('typeid', 'int'));
$adh->note_private = GETPOST('note_private');
$adh->morphy = $conf->global->MEMBER_NEWFORM_FORCEMORPHY ? $conf->global->MEMBER_NEWFORM_FORCEMORPHY : GETPOST('morphy');
$adh->morphy = getDolGlobalString("MEMBER_NEWFORM_FORCEMORPHY", GETPOST('morphy'));
$adh->birth = $birthday;
@ -433,6 +433,7 @@ if (empty($reshook) && $action == 'add') {
exit;
} else {
$db->rollback();
$action = "create";
}
}
@ -770,7 +771,7 @@ if (!empty($conf->global->MEMBER_SKIP_TABLE) || !empty($conf->global->MEMBER_NEW
foreach ($measuringUnits->records as $lines)
$units[$lines->short_label] = $langs->trans(ucfirst($lines->label));
$publiccounters = $conf->global->MEMBER_COUNTERS_ARE_PUBLIC;
$publiccounters = getDolGlobalString("MEMBER_COUNTERS_ARE_PUBLIC");
$sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.amount, d.caneditamount, d.vote, d.note, d.duration, d.statut as status, d.morphy, COUNT(a.rowid) AS membercount";
$sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d";

View File

@ -183,6 +183,7 @@ if ($action == 'confirm_refusepropal' && $confirm == 'yes') {
// Online customer is not a user, so we use the use that validates the documents
$user = new User($db);
$user->fetch($object->user_valid_id);
$object->context = array('closedfromonlinesignature' => 'closedfromonlinesignature');
$result = $object->call_trigger('PROPAL_CLOSE_REFUSED', $user);
if ($result < 0) {
$error++;

View File

@ -291,7 +291,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
require_once DOL_DOCUMENT_ROOT.'/core/class/notify.class.php';
$notify = new Notify($db);
$formquestion = array_merge($formquestion, array(
array('type' => 'onecolumn', 'value' => $notify->confirmMessage('PROPAL_CLOSE_SIGNED', $object->socid, $object)),
array('type' => 'onecolumn', 'value' => $notify->confirmMessage('RECRUITMENTJOBPOSITION_CLOSE_SIGNED', $object->socid, $object)),
));
}*/

View File

@ -1261,8 +1261,9 @@ class SupplierProposal extends CommonObject
$this->statut_libelle = $obj->statut_label;
$this->datec = $this->db->jdate($obj->datec); // TODO deprecated
$this->datev = $this->db->jdate($obj->datev); // TODO deprecated
$this->date_creation = $this->db->jdate($obj->datec); //Creation date
$this->date_validation = $this->db->jdate($obj->datev); //Validation date
$this->date_creation = $this->db->jdate($obj->datec); // Creation date
$this->date = $this->date_creation;
$this->date_validation = $this->db->jdate($obj->datev); // Validation date
$this->date_livraison = $this->db->jdate($obj->delivery_date); // deprecated
$this->delivery_date = $this->db->jdate($obj->delivery_date);
$this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null;

View File

@ -177,7 +177,7 @@ $arrayfields = array(
'state.nom'=>array('label'=>$langs->trans("StateShort"), 'checked'=>0),
'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>0),
'typent.code'=>array('label'=>$langs->trans("ThirdPartyType"), 'checked'=>$checkedtypetiers),
'sp.date_valid'=>array('label'=>$langs->trans("Date"), 'checked'=>1),
'sp.date_valid'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1),
'sp.date_livraison'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1),
'sp.total_ht'=>array('label'=>$langs->trans("AmountHT"), 'checked'=>1),
'sp.total_tva'=>array('label'=>$langs->trans("AmountVAT"), 'checked'=>0),