[ task #826 ] Increasing stock when deleting an invoice
This commit is contained in:
parent
07a4709b45
commit
c0c1de7992
@ -49,6 +49,7 @@ For users:
|
||||
- New: [ task #814 ] Add extrafield feature into Project/project tasks module
|
||||
- New: [ task #770 ] Add ODT document generation for Projects module
|
||||
- New: [ task #741 ] Add intervention box
|
||||
- New: [ task #826 ] Optionnal increase stock when deleting an invoice already validated
|
||||
|
||||
For translators:
|
||||
- Update language files.
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
*
|
||||
* 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
|
||||
@ -61,15 +62,18 @@ if ($action == 'STOCK_CALCULATE_ON_BILL'
|
||||
// Mode of stock increase
|
||||
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_BILL'
|
||||
|| $action == 'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER'
|
||||
|| $action == 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER')
|
||||
|| $action == 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER'
|
||||
|| $action == 'STOCK_CALCULATE_ON_DELETE_INVOICE')
|
||||
{
|
||||
$db->begin();
|
||||
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", '','chaine',0,'',$conf->entity);
|
||||
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", '','chaine',0,'',$conf->entity);
|
||||
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", '','chaine',0,'',$conf->entity);
|
||||
$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_DELETE_INVOICE", '','chaine',0,'',$conf->entity);
|
||||
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_BILL') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_BILL','alpha'),'chaine',0,'',$conf->entity);
|
||||
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER','alpha'),'chaine',0,'',$conf->entity);
|
||||
if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER','alpha'),'chaine',0,'',$conf->entity);
|
||||
if ($action == 'STOCK_CALCULATE_ON_DELETE_INVOICE') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_DELETE_INVOICE", GETPOST('STOCK_CALCULATE_ON_DELETE_INVOICE','alpha'),'chaine',0,'',$conf->entity);
|
||||
}
|
||||
|
||||
if($action)
|
||||
@ -239,6 +243,19 @@ if (! empty($conf->fournisseur->enabled))
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print "</form>\n</td>\n</tr>\n";
|
||||
}
|
||||
if (! empty($conf->facture->enabled))
|
||||
{
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
print '<td width="60%">'.$langs->trans("ReStockOnDeleteInvoice").'</td>';
|
||||
print '<td width="160" align="right">';
|
||||
print "<form method=\"post\" action=\"stock.php\">";
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_DELETE_INVOICE\">";
|
||||
print $form->selectyesno("STOCK_CALCULATE_ON_DELETE_INVOICE",$conf->global->STOCK_CALCULATE_ON_DELETE_INVOICE,1);
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||
print "</form>\n</td>\n</tr>\n";
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
@ -156,7 +156,21 @@ else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->fact
|
||||
{
|
||||
$result = $object->fetch($id);
|
||||
$object->fetch_thirdparty();
|
||||
$result = $object->delete();
|
||||
|
||||
$idwarehouse=GETPOST('idwarehouse');
|
||||
|
||||
//Check for warehouse
|
||||
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_DELETE_INVOICE) && $object->hasProductsOrServices(1) && $object->statut>=1)
|
||||
{
|
||||
if (! $idwarehouse || $idwarehouse == -1)
|
||||
{
|
||||
$error++;
|
||||
setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Warehouse")),'errors');
|
||||
$action='';
|
||||
}
|
||||
}
|
||||
|
||||
$result = $object->delete(0,0,$idwarehouse);
|
||||
if ($result > 0)
|
||||
{
|
||||
header('Location: '.DOL_URL_ROOT.'/compta/facture/list.php');
|
||||
@ -2334,8 +2348,23 @@ else if ($id > 0 || ! empty($ref))
|
||||
// Confirmation to delete invoice
|
||||
if ($action == 'delete')
|
||||
{
|
||||
$text=$langs->trans('ConfirmDeleteBill');
|
||||
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id,$langs->trans('DeleteBill'),$text,'confirm_delete','',0,1);
|
||||
$text=$langs->trans('ConfirmDeleteBill',$object->ref);
|
||||
$formquestion=array();
|
||||
if ($object->type != 3 && ! empty($conf->global->STOCK_CALCULATE_ON_DELETE_INVOICE) && $object->hasProductsOrServices(1) && $object->statut>=1)
|
||||
{
|
||||
$langs->load("stocks");
|
||||
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
||||
$formproduct=new FormProduct($db);
|
||||
$label=$object->type==2?$langs->trans("SelectWarehouseForStockDecrease"):$langs->trans("SelectWarehouseForStockIncrease");
|
||||
$formquestion=array(
|
||||
//'text' => $langs->trans("ConfirmClone"),
|
||||
//array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
|
||||
//array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
|
||||
array('type' => 'other', 'name' => 'idwarehouse', 'label' => $label, 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse'),'idwarehouse','',1)));
|
||||
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id,$langs->trans('DeleteBill'),$text,'confirm_delete',$formquestion,"yes",1);
|
||||
}else {
|
||||
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?facid='.$object->id,$langs->trans('DeleteBill'),$text,'confirm_delete','','',1);
|
||||
}
|
||||
}
|
||||
|
||||
// Confirmation de la validation
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -40,6 +40,7 @@ ActionsEvents= Events for which Dolibarr will create an action in agenda automat
|
||||
PropalValidatedInDolibarr= Proposal %s validated
|
||||
InvoiceValidatedInDolibarr= Invoice %s validated
|
||||
InvoiceBackToDraftInDolibarr=Invoice %s go back to draft status
|
||||
InvoiceDeleteDolibarr=Invoice %s deleted
|
||||
OrderValidatedInDolibarr= Order %s validated
|
||||
OrderApprovedInDolibarr=Order %s approved
|
||||
OrderBackToDraftInDolibarr=Order %s go back to draft status
|
||||
|
||||
@ -55,6 +55,7 @@ DeStockOnShipment=Decrease real stocks on shipment validation
|
||||
ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation
|
||||
ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation
|
||||
ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving
|
||||
ReStockOnDispatchOrder=Increase real stocks on invocie deletion
|
||||
OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses.
|
||||
StockDiffPhysicTeoric=Reason for difference stock physical and theoretical
|
||||
NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required.
|
||||
|
||||
@ -41,6 +41,7 @@ ActionsEvents=Eventos para que Dolibarr cree una acción de forma automática
|
||||
PropalValidatedInDolibarr=Presupuesto %s validado
|
||||
InvoiceValidatedInDolibarr=Factura %s validada
|
||||
InvoiceBackToDraftInDolibarr=Factura %s devuelta a borrador
|
||||
InvoiceDeleteDolibarr=Factura %s elimina
|
||||
OrderValidatedInDolibarr=Pedido %s validado
|
||||
OrderApprovedInDolibarr=Pedido %s aprobado
|
||||
OrderBackToDraftInDolibarr=Pedido %s devuelto a borrador
|
||||
|
||||
@ -54,6 +54,7 @@ DeStockOnShipment=Decrementar los stocks físicos sobre los envíos
|
||||
ReStockOnBill=Incrementar los stocks físicos sobre las facturas/abonos de proveedores
|
||||
ReStockOnValidateOrder=Incrementar los stocks físicos sobre los pedidos a proveedores
|
||||
ReStockOnDispatchOrder=Incrementa los stocks físicos en el desglose manual de la recepción de los pedidos a proveedores en los almacenes
|
||||
ReStockOnDeleteInvoice=Incrementa los stocks físicos a la suppresion de las facturas
|
||||
OrderStatusNotReadyToDispatch=El pedido aún no está o no tiene un estado que permita un desglose de stock.
|
||||
StockDiffPhysicTeoric=Motivo de la diferencia entre valores físicos y teóricos
|
||||
NoPredefinedProductToDispatch=No hay productos predefinidos en este objeto. Por lo tanto no se puede realizar un desglose de stock.
|
||||
|
||||
@ -40,6 +40,7 @@ ActionsEvents=Événements pour lesquels Dolibarr doit créer une action dans l'
|
||||
PropalValidatedInDolibarr=Proposition %s validée
|
||||
InvoiceValidatedInDolibarr=Facture %s validée
|
||||
InvoiceBackToDraftInDolibarr=Facture %s repassée en brouillon
|
||||
InvoiceDeleteDolibarr=Facture %s supprimée
|
||||
OrderValidatedInDolibarr=Commande %s validée
|
||||
OrderApprovedInDolibarr=Commande %s approuvée
|
||||
OrderBackToDraftInDolibarr=Commande %s repassée en brouillon
|
||||
|
||||
@ -55,6 +55,7 @@ DeStockOnShipment=Décrémente les stocks physiques sur validation des expéditi
|
||||
ReStockOnBill=Incrémente les stocks physiques sur validation des factures/avoirs fournisseurs
|
||||
ReStockOnValidateOrder=Incrémente les stocks physiques sur approbation des commandes fournisseurs
|
||||
ReStockOnDispatchOrder=Incrémente les stocks physiques sur ventilation manuelle de la réception des commandes fournisseurs dans les entrepôts
|
||||
ReStockOnDeleteInvoice=Incrémente les stocks physiques sur la suppression des factures
|
||||
OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock.
|
||||
StockDiffPhysicTeoric=Raison écart stock physique-théorique
|
||||
NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user