Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
8754fc1d1e
@ -7117,6 +7117,13 @@ abstract class CommonObject
|
|||||||
{
|
{
|
||||||
$value = GETPOSTISSET($keyprefix.'options_'.$key.$keysuffix) ?price2num(GETPOST($keyprefix.'options_'.$key.$keysuffix, 'alpha', 3)) : $this->array_options['options_'.$key];
|
$value = GETPOSTISSET($keyprefix.'options_'.$key.$keysuffix) ?price2num(GETPOST($keyprefix.'options_'.$key.$keysuffix, 'alpha', 3)) : $this->array_options['options_'.$key];
|
||||||
}
|
}
|
||||||
|
// HTML, select, integer and text add default value
|
||||||
|
if (in_array($extrafields->attributes[$this->table_element]['type'][$key], array('html', 'text', 'select', 'int')))
|
||||||
|
{
|
||||||
|
if($action=='create') $value = $extrafields->attributes[$this->table_element]['default'][$key];
|
||||||
|
else $value = $this->array_options['options_'.$key];
|
||||||
|
}
|
||||||
|
|
||||||
$labeltoshow = $langs->trans($label);
|
$labeltoshow = $langs->trans($label);
|
||||||
$helptoshow = $langs->trans($extrafields->attributes[$this->table_element]['help'][$key]);
|
$helptoshow = $langs->trans($extrafields->attributes[$this->table_element]['help'][$key]);
|
||||||
|
|
||||||
|
|||||||
@ -479,6 +479,203 @@ class SupplierInvoices extends DolibarrApi
|
|||||||
return $paiement_id;
|
return $paiement_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get lines of a supplier invoice
|
||||||
|
*
|
||||||
|
* @param int $id Id of supplier invoice
|
||||||
|
*
|
||||||
|
* @url GET {id}/lines
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getLines($id)
|
||||||
|
{
|
||||||
|
if(! DolibarrApiAccess::$user->rights->fournisseur->facture->creer) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->invoice->fetch($id);
|
||||||
|
if( ! $result ) {
|
||||||
|
throw new RestException(404, 'Supplier invoice not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! DolibarrApi::_checkAccessToResource('fournisseur', $this->invoice->id, 'facture_fourn', 'facture')) {
|
||||||
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
|
}
|
||||||
|
$this->invoice->fetch_lines();
|
||||||
|
$result = array();
|
||||||
|
foreach ($this->invoice->lines as $line) {
|
||||||
|
array_push($result, $this->_cleanObjectDatas($line));
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a line to given supplier invoice
|
||||||
|
*
|
||||||
|
* @param int $id Id of supplier invoice to update
|
||||||
|
* @param array $request_data supplier invoice line data
|
||||||
|
*
|
||||||
|
* @url POST {id}/lines
|
||||||
|
*
|
||||||
|
* @return int|bool
|
||||||
|
*/
|
||||||
|
public function postLine($id, $request_data = null)
|
||||||
|
{
|
||||||
|
if(! DolibarrApiAccess::$user->rights->fournisseur->facture->creer) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->invoice->fetch($id);
|
||||||
|
if( ! $result ) {
|
||||||
|
throw new RestException(404, 'Supplier invoice not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! DolibarrApi::_checkAccessToResource('fournisseur', $this->invoice->id, 'facture_fourn', 'facture')) {
|
||||||
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
|
}
|
||||||
|
$request_data = (object) $request_data;
|
||||||
|
|
||||||
|
$updateRes = $this->invoice->addline(
|
||||||
|
$request_data->description,
|
||||||
|
$request_data->pu_ht,
|
||||||
|
$request_data->tva_tx,
|
||||||
|
$request_data->localtax1_tx,
|
||||||
|
$request_data->localtax2_tx,
|
||||||
|
$request_data->qty,
|
||||||
|
$request_data->fk_product,
|
||||||
|
$request_data->remise_percent,
|
||||||
|
$request_data->date_start,
|
||||||
|
$request_data->date_end,
|
||||||
|
$request_data->ventil,
|
||||||
|
$request_data->info_bits,
|
||||||
|
'HT',
|
||||||
|
$request_data->product_type,
|
||||||
|
$request_data->rang,
|
||||||
|
false,
|
||||||
|
$request_data->array_options,
|
||||||
|
$request_data->fk_unit,
|
||||||
|
$request_data->origin_id,
|
||||||
|
$request_data->multicurrency_subprice,
|
||||||
|
$request_data->ref_supplier,
|
||||||
|
$request_data->special_code
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($updateRes < 0) {
|
||||||
|
throw new RestException(400, 'Unable to insert the new line. Check your inputs. '.$this->invoice->error);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $updateRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update a line to a given supplier invoice
|
||||||
|
*
|
||||||
|
* @param int $id Id of supplier invoice to update
|
||||||
|
* @param int $lineid Id of line to update
|
||||||
|
* @param array $request_data InvoiceLine data
|
||||||
|
*
|
||||||
|
* @url PUT {id}/lines/{lineid}
|
||||||
|
*
|
||||||
|
* @return object
|
||||||
|
*
|
||||||
|
* @throws 200
|
||||||
|
* @throws 304
|
||||||
|
* @throws 401
|
||||||
|
* @throws 404
|
||||||
|
*/
|
||||||
|
public function putLine($id, $lineid, $request_data = null)
|
||||||
|
{
|
||||||
|
if(! DolibarrApiAccess::$user->rights->fournisseur->facture->creer) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->invoice->fetch($id);
|
||||||
|
if( ! $result ) {
|
||||||
|
throw new RestException(404, 'Supplier invoice not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! DolibarrApi::_checkAccessToResource('fournisseur', $this->invoice->id, 'facture_fourn', 'facture')) {
|
||||||
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
|
}
|
||||||
|
$request_data = (object) $request_data;
|
||||||
|
$updateRes = $this->invoice->updateline(
|
||||||
|
$lineid,
|
||||||
|
$request_data->description,
|
||||||
|
$request_data->pu_ht,
|
||||||
|
$request_data->tva_tx,
|
||||||
|
$request_data->localtax1_tx,
|
||||||
|
$request_data->localtax2_tx,
|
||||||
|
$request_data->qty,
|
||||||
|
$request_data->fk_product,
|
||||||
|
'HT',
|
||||||
|
$request_data->info_bits,
|
||||||
|
$request_data->product_type,
|
||||||
|
$request_data->remise_percent,
|
||||||
|
false,
|
||||||
|
$request_data->date_start,
|
||||||
|
$request_data->date_end,
|
||||||
|
$request_data->array_options,
|
||||||
|
$request_data->fk_unit,
|
||||||
|
$request_data->multicurrency_subprice,
|
||||||
|
$request_data->ref_supplier
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($updateRes > 0) {
|
||||||
|
$result = $this->get($id);
|
||||||
|
unset($result->line);
|
||||||
|
return $this->_cleanObjectDatas($result);
|
||||||
|
} else {
|
||||||
|
throw new RestException(304, $this->invoice->error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes a line of a given supplier invoice
|
||||||
|
*
|
||||||
|
* @param int $id Id of supplier invoice
|
||||||
|
* @param int $lineid Id of the line to delete
|
||||||
|
*
|
||||||
|
* @url DELETE {id}/lines/{lineid}
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @throws 400
|
||||||
|
* @throws 401
|
||||||
|
* @throws 404
|
||||||
|
* @throws 405
|
||||||
|
*/
|
||||||
|
public function deleteLine($id, $lineid)
|
||||||
|
{
|
||||||
|
if(! DolibarrApiAccess::$user->rights->fournisseur->facture->creer) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->invoice->fetch($id);
|
||||||
|
if( ! $result ) {
|
||||||
|
throw new RestException(404, 'Supplier invoice not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($lineid)) {
|
||||||
|
throw new RestException(400, 'Line ID is mandatory');
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! DolibarrApi::_checkAccessToResource('fournisseur', $this->invoice->id, 'facture_fourn', 'facture')) {
|
||||||
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO Check the lineid $lineid is a line of ojbect
|
||||||
|
|
||||||
|
$updateRes = $this->invoice->deleteline($lineid);
|
||||||
|
if ($updateRes > 0) {
|
||||||
|
return $this->get($id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new RestException(405, $this->invoice->error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
||||||
/**
|
/**
|
||||||
* Clean sensible object datas
|
* Clean sensible object datas
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
* Copyright (C) 2015-2019 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2015-2019 Ferran Marcet <fmarcet@2byte.es>
|
||||||
* Copyright (C) 2016 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2016 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -3128,7 +3128,7 @@ class SupplierInvoiceLine extends CommonObjectLine
|
|||||||
*/
|
*/
|
||||||
public function delete($notrigger = 0)
|
public function delete($notrigger = 0)
|
||||||
{
|
{
|
||||||
global $user;
|
global $user, $conf;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::deleteline rowid=".$this->id, LOG_DEBUG);
|
dol_syslog(get_class($this)."::deleteline rowid=".$this->id, LOG_DEBUG);
|
||||||
|
|
||||||
@ -3144,6 +3144,17 @@ class SupplierInvoiceLine extends CommonObjectLine
|
|||||||
|
|
||||||
$this->deleteObjectLinked();
|
$this->deleteObjectLinked();
|
||||||
|
|
||||||
|
// Remove extrafields
|
||||||
|
if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) // For avoid conflicts if trigger used
|
||||||
|
{
|
||||||
|
$result=$this->deleteExtraFields();
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
// Supprime ligne
|
// Supprime ligne
|
||||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn_det ';
|
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn_det ';
|
||||||
|
|||||||
@ -250,3 +250,13 @@ ALTER TABLE llx_categorie ADD COLUMN fk_user_creat integer;
|
|||||||
ALTER TABLE llx_categorie ADD COLUMN fk_user_modif integer;
|
ALTER TABLE llx_categorie ADD COLUMN fk_user_modif integer;
|
||||||
|
|
||||||
ALTER TABLE llx_commandedet ADD CONSTRAINT fk_commandedet_fk_commandefourndet FOREIGN KEY (fk_commandefourndet) REFERENCES llx_commande_fournisseurdet (rowid);
|
ALTER TABLE llx_commandedet ADD CONSTRAINT fk_commandedet_fk_commandefourndet FOREIGN KEY (fk_commandefourndet) REFERENCES llx_commande_fournisseurdet (rowid);
|
||||||
|
|
||||||
|
--Dictionary of package type because filename in V11 was incomplete
|
||||||
|
create table llx_c_shipment_package_type
|
||||||
|
(
|
||||||
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
label varchar(50) NOT NULL, -- Short name
|
||||||
|
description varchar(255), -- Description
|
||||||
|
active integer DEFAULT 1 NOT NULL, -- Active or not
|
||||||
|
entity integer DEFAULT 1 NOT NULL -- Multi company id
|
||||||
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004-2018 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2004-2018 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2018-2019 Nicolas ZABOURI <info@inovea-conseil.com>
|
* Copyright (C) 2018-2019 Nicolas ZABOURI <info@inovea-conseil.com>
|
||||||
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2019-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) ---Put here your own copyright and developer email---
|
* Copyright (C) ---Put here your own copyright and developer email---
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -396,11 +396,11 @@ class modMyModule extends DolibarrModules
|
|||||||
// Create extrafields during init
|
// Create extrafields during init
|
||||||
//include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
//include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||||
//$extrafields = new ExtraFields($this->db);
|
//$extrafields = new ExtraFields($this->db);
|
||||||
//$result1=$extrafields->addExtraField('myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
//$result1=$extrafields->addExtraField('mymodule_myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
||||||
//$result2=$extrafields->addExtraField('myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
//$result2=$extrafields->addExtraField('mymodule_myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
||||||
//$result3=$extrafields->addExtraField('myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
//$result3=$extrafields->addExtraField('mymodule_myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
||||||
//$result4=$extrafields->addExtraField('myattr4', "New Attr 4 label", 'select', 1, 3, 'thirdparty', 0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
//$result4=$extrafields->addExtraField('mymodule_myattr4', "New Attr 4 label", 'select', 1, 3, 'thirdparty', 0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
||||||
//$result5=$extrafields->addExtraField('myattr5', "New Attr 5 label", 'text', 1, 10, 'user', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
//$result5=$extrafields->addExtraField('mymodule_myattr5', "New Attr 5 label", 'text', 1, 10, 'user', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
$this->remove($options);
|
$this->remove($options);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user