Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 11.0
This commit is contained in:
commit
a1b03e094c
@ -154,51 +154,32 @@ class StockMovements extends DolibarrApi
|
|||||||
return $obj_ret;
|
return $obj_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* @param int $product_id Id product id {@min 1}
|
|
||||||
* @param int $warehouse_id Id warehouse {@min 1}
|
|
||||||
* @param float $qty Qty to add (Use negative value for a stock decrease) {@min 0} {@message qty must be higher than 0}
|
|
||||||
* @param string $lot Lot
|
|
||||||
* @param string $movementcode Movement code {@example INV123}
|
|
||||||
* @param string $movementlabel Movement label {@example Inventory number 123}
|
|
||||||
* @param string $price To update AWP (Average Weighted Price) when you make a stock increase (qty must be higher then 0).
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create stock movement object.
|
* Create stock movement object.
|
||||||
* You can use the following message to test this RES API:
|
* @param int $product_id Id product id {@min 1} {@from body} {@required true}
|
||||||
* { "product_id": 1, "warehouse_id": 1, "qty": 1, "lot": "", "movementcode": "INV123", "movementlabel": "Inventory 123", "price": 0 }
|
* @param int $warehouse_id Id warehouse {@min 1} {@from body} {@required true}
|
||||||
|
* @param float $qty Qty to add (Use negative value for a stock decrease) {@min 0} {@message qty must be higher than 0} {@from body} {@required true}
|
||||||
|
* @param string $lot Lot {@from body}
|
||||||
|
* @param string $movementcode Movement code {@example INV123} {@from body}
|
||||||
|
* @param string $movementlabel Movement label {@example Inventory number 123} {@from body}
|
||||||
|
* @param string $price To update AWP (Average Weighted Price) when you make a stock increase (qty must be higher then 0). {@from body}
|
||||||
|
* @param string $dlc {@from body} {@type date}
|
||||||
|
* @param string $dluo {@from body} {@type date}
|
||||||
*
|
*
|
||||||
* @param array $request_data Request data
|
|
||||||
* @return int ID of stock movement
|
* @return int ID of stock movement
|
||||||
|
* @throws RestException
|
||||||
*/
|
*/
|
||||||
//function post($product_id, $warehouse_id, $qty, $lot='', $movementcode='', $movementlabel='', $price=0)
|
public function post($product_id, $warehouse_id, $qty, $lot = '', $movementcode = '', $movementlabel = '', $price = '', $dlc = '', $dluo = '')
|
||||||
public function post($request_data = null)
|
|
||||||
{
|
{
|
||||||
if(! DolibarrApiAccess::$user->rights->stock->creer) {
|
if(! DolibarrApiAccess::$user->rights->stock->creer) {
|
||||||
throw new RestException(401);
|
throw new RestException(401);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check mandatory fields
|
|
||||||
//$result = $this->_validate($request_data);
|
|
||||||
|
|
||||||
foreach($request_data as $field => $value) {
|
|
||||||
//$this->stockmovement->$field = $value;
|
|
||||||
if ($field == 'product_id') $product_id = $value;
|
|
||||||
if ($field == 'warehouse_id') $warehouse_id = $value;
|
|
||||||
if ($field == 'qty') $qty = $value;
|
|
||||||
if ($field == 'lot') $lot = $value;
|
|
||||||
if ($field == 'movementcode') $movementcode = $value;
|
|
||||||
if ($field == 'movementlabel') $movementlabel = $value;
|
|
||||||
if ($field == 'price') $price = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Type increase or decrease
|
// Type increase or decrease
|
||||||
if ($qty >= 0) $type = 3;
|
if ($qty >= 0) $type = 3;
|
||||||
else $type = 2;
|
else $type = 2;
|
||||||
|
|
||||||
if($this->stockmovement->_create(DolibarrApiAccess::$user, $product_id, $warehouse_id, $qty, $type, $price, $movementlabel, $movementcode, '', '', '', $lot) <= 0) {
|
if($this->stockmovement->_create(DolibarrApiAccess::$user, $product_id, $warehouse_id, $qty, $type, $price, $movementlabel, $movementcode, '', $dlc, $dluo, $lot) <= 0) {
|
||||||
throw new RestException(503, 'Error when create stock movement : '.$this->stockmovement->error);
|
throw new RestException(503, 'Error when create stock movement : '.$this->stockmovement->error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,7 +323,7 @@ class StockMovements extends DolibarrApi
|
|||||||
private function _validate($data)
|
private function _validate($data)
|
||||||
{
|
{
|
||||||
$stockmovement = array();
|
$stockmovement = array();
|
||||||
foreach (Warehouses::$FIELDS as $field) {
|
foreach (self::$FIELDS as $field) {
|
||||||
if (!isset($data[$field]))
|
if (!isset($data[$field]))
|
||||||
throw new RestException(400, "$field field missing");
|
throw new RestException(400, "$field field missing");
|
||||||
$stockmovement[$field] = $data[$field];
|
$stockmovement[$field] = $data[$field];
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
|
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
* Copyright (C) 2005-2017 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2017 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2008 Patrick Raguin <patrick.raguin@auguria.net>
|
* Copyright (C) 2008 Patrick Raguin <patrick.raguin@auguria.net>
|
||||||
* Copyright (C) 2010-2016 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2020 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2011-2013 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2011-2013 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
@ -1070,13 +1070,13 @@ else
|
|||||||
$linkback = "";
|
$linkback = "";
|
||||||
print load_fiche_titre($langs->trans("NewThirdParty"), $linkback, 'building');
|
print load_fiche_titre($langs->trans("NewThirdParty"), $linkback, 'building');
|
||||||
|
|
||||||
if (!empty($conf->use_javascript_ajax) && !empty($conf->global->THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION))
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
{
|
if (!empty($conf->global->THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION)) {
|
||||||
print "\n".'<script type="text/javascript">';
|
print "\n" . '<script type="text/javascript">';
|
||||||
print '$(document).ready(function () {
|
print '$(document).ready(function () {
|
||||||
id_te_private=8;
|
id_te_private=8;
|
||||||
id_ef15=1;
|
id_ef15=1;
|
||||||
is_private='.$private.';
|
is_private=' . $private . ';
|
||||||
if (is_private) {
|
if (is_private) {
|
||||||
$(".individualline").show();
|
$(".individualline").show();
|
||||||
} else {
|
} else {
|
||||||
@ -1103,7 +1103,7 @@ else
|
|||||||
});
|
});
|
||||||
function init_customer_categ() {
|
function init_customer_categ() {
|
||||||
console.log("is customer or prospect = "+jQuery("#customerprospect").val());
|
console.log("is customer or prospect = "+jQuery("#customerprospect").val());
|
||||||
if (jQuery("#customerprospect").val() == 0 && (jQuery("#fournisseur").val() == 0 || '.(empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER) ? '1' : '0').'))
|
if (jQuery("#customerprospect").val() == 0 && (jQuery("#fournisseur").val() == 0 || ' . (empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER) ? '1' : '0') . '))
|
||||||
{
|
{
|
||||||
jQuery(".visibleifcustomer").hide();
|
jQuery(".visibleifcustomer").hide();
|
||||||
}
|
}
|
||||||
@ -1134,28 +1134,38 @@ else
|
|||||||
document.formsoc.submit();
|
document.formsoc.submit();
|
||||||
});
|
});
|
||||||
});';
|
});';
|
||||||
print '</script>'."\n";
|
print '</script>' . "\n";
|
||||||
|
|
||||||
print '<div id="selectthirdpartytype">';
|
print '<div id="selectthirdpartytype">';
|
||||||
print '<div class="hideonsmartphone float">';
|
print '<div class="hideonsmartphone float">';
|
||||||
print $langs->trans("ThirdPartyType").': ';
|
print $langs->trans("ThirdPartyType") . ': ';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '<label for="radiocompany" class="radiocompany">';
|
print '<label for="radiocompany" class="radiocompany">';
|
||||||
print '<input type="radio" id="radiocompany" class="flat" name="private" value="0"'.($private ? '' : ' checked').'>';
|
print '<input type="radio" id="radiocompany" class="flat" name="private" value="0"' . ($private ? '' : ' checked') . '>';
|
||||||
print ' ';
|
print ' ';
|
||||||
print $langs->trans("CreateThirdPartyOnly");
|
print $langs->trans("CreateThirdPartyOnly");
|
||||||
print '</label>';
|
print '</label>';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<label for="radioprivate" class="radioprivate">';
|
print '<label for="radioprivate" class="radioprivate">';
|
||||||
$text = '<input type="radio" id="radioprivate" class="flat" name="private" value="1"'.($private ? ' checked' : '').'>';
|
$text = '<input type="radio" id="radioprivate" class="flat" name="private" value="1"' . ($private ? ' checked' : '') . '>';
|
||||||
$text .= ' ';
|
$text .= ' ';
|
||||||
$text .= $langs->trans("CreateThirdPartyAndContact");
|
$text .= $langs->trans("CreateThirdPartyAndContact");
|
||||||
$htmltext = $langs->trans("ToCreateContactWithSameName");
|
$htmltext = $langs->trans("ToCreateContactWithSameName");
|
||||||
print $form->textwithpicto($text, $htmltext, 1, 'help', '', 0, 3);
|
print $form->textwithpicto($text, $htmltext, 1, 'help', '', 0, 3);
|
||||||
print '</label>';
|
print '</label>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
}
|
} else {
|
||||||
|
print '<script type="text/javascript">';
|
||||||
|
print '$(document).ready(function () {
|
||||||
|
$("#selectcountry_id").change(function() {
|
||||||
|
document.formsoc.action.value="create";
|
||||||
|
document.formsoc.submit();
|
||||||
|
});
|
||||||
|
});';
|
||||||
|
print '</script>' . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dol_htmloutput_mesg(is_numeric($error) ? '' : $error, $errors, 'error');
|
dol_htmloutput_mesg(is_numeric($error) ? '' : $error, $errors, 'error');
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user