Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into develop
This commit is contained in:
commit
77f7bd62cd
@ -64,6 +64,7 @@ For users:
|
||||
- New: Can choose contact on event (action com) creation, and filtred by thirdparty.
|
||||
- New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID.
|
||||
- New: Add page to make mass stock movement.
|
||||
- New: Add field oustanding limit into thirdparty properties.
|
||||
|
||||
For translators:
|
||||
- Qual: Normalized sort order of all languages files with english reference files.
|
||||
@ -315,7 +316,7 @@ For users:
|
||||
- New: Can list elements (invoices, orders or proposals) on a particular
|
||||
user contact). This allow to view a "basket" of its elements.
|
||||
- New: Show bank account on payment list of invoice card.
|
||||
- New: Cloning project allow to clones task, notes, files, contacts.
|
||||
- New: Cloning project allow to clones task, notes, projects files, tasks files, contacts.
|
||||
- New: Enhance default style.
|
||||
- New: Can edit and resiliate member status from list.
|
||||
- New: Can insert URL links into elements lines. Also reported into PDF.
|
||||
|
||||
@ -128,6 +128,14 @@ if ($action == 'cstc')
|
||||
if ($result < 0) setEventMessage($object->error,'errors');
|
||||
}
|
||||
|
||||
// Update communication level
|
||||
if ($action == 'setOutstandingBill')
|
||||
{
|
||||
$object->fetch($id);
|
||||
$object->outstanding_limit=GETPOST('OutstandingBill');
|
||||
$result=$object->set_OutstandingBill($user);
|
||||
if ($result < 0) setEventMessage($object->error,'errors');
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@ -369,6 +377,18 @@ if ($id > 0)
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
if ($object->client)
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td>';
|
||||
print $form->editfieldkey("OutstandingBill",'OutstandingBill',$object->outstanding_limit,$object,$user->rights->societe->creer);
|
||||
print '</td><td colspan="3">';
|
||||
print $form->editfieldval("OutstandingBill",'OutstandingBill',$object->outstanding_limit,$object,$user->rights->societe->creer);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
|
||||
// Multiprice level
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES))
|
||||
{
|
||||
@ -898,4 +918,4 @@ dol_htmloutput_mesg('',$mesgs);
|
||||
// End of page
|
||||
llxFooter();
|
||||
$db->close();
|
||||
?>
|
||||
?>
|
||||
|
||||
@ -1885,6 +1885,18 @@ else
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
if ($soc->outstanding_limit)
|
||||
{
|
||||
// Outstanding Bill
|
||||
print '<tr><td>';
|
||||
print $langs->trans('OutstandingBill');
|
||||
print '</td><td align=right colspan=3>';
|
||||
print price($soc->get_OutstandingBill()).' / ';
|
||||
print price($soc->outstanding_limit, 0, '', 1, -1, -1, $conf->currency);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
// Other attributes
|
||||
$res=$object->fetch_optionals($object->id,$extralabels);
|
||||
$parameters=array('colspan' => ' colspan="3"');
|
||||
|
||||
@ -2195,6 +2195,19 @@ else
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
if ($soc->outstanding_limit)
|
||||
{
|
||||
// Outstanding Bill
|
||||
print '<tr><td>';
|
||||
print $langs->trans('OutstandingBill');
|
||||
print '</td><td align=right colspan=3>';
|
||||
print price($soc->get_OutstandingBill()).' / ';
|
||||
print price($soc->outstanding_limit, 0, '', 1, -1, -1, $conf->currency);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
// Other attributes
|
||||
$res=$object->fetch_optionals($object->id,$extralabels);
|
||||
$parameters=array('colspan' => ' colspan="3"');
|
||||
|
||||
@ -2318,6 +2318,18 @@ if ($action == 'create')
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
if ($soc->outstanding_limit)
|
||||
{
|
||||
// Outstanding Bill
|
||||
print '<tr><td>';
|
||||
print $langs->trans('OutstandingBill');
|
||||
print '</td><td align=right>';
|
||||
print price($soc->get_OutstandingBill()).' / ';
|
||||
print price($soc->outstanding_limit).'</td><td colspan=2>';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
// Other attributes
|
||||
$parameters=array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"');
|
||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||
@ -3034,6 +3046,7 @@ else if ($id > 0 || ! empty($ref))
|
||||
$nbrows=8; $nbcols=2;
|
||||
if (! empty($conf->projet->enabled)) $nbrows++;
|
||||
if (! empty($conf->banque->enabled)) $nbcols++;
|
||||
if (! empty($soc->outstandingbill)) $nbrows++;
|
||||
if($mysoc->localtax1_assuj=="1") $nbrows++;
|
||||
if($mysoc->localtax2_assuj=="1") $nbrows++;
|
||||
if ($selleruserevenustamp) $nbrows++;
|
||||
@ -3305,6 +3318,18 @@ else if ($id > 0 || ! empty($ref))
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
if ($soc->outstandingbill)
|
||||
{
|
||||
// Outstanding Bill
|
||||
print '<tr><td>';
|
||||
print $langs->trans('OutstandingBill');
|
||||
print '</td><td align=right>';
|
||||
print price($soc->get_OutstandingBill()).' / ';
|
||||
print price($soc->outstandingbill);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
// Amount
|
||||
print '<tr><td>'.$langs->trans('AmountHT').'</td>';
|
||||
print '<td align="right" colspan="3" nowrap>'.price($object->total_ht,1,'',1,-1,-1,$conf->currency).'</td></tr>';
|
||||
@ -3955,4 +3980,4 @@ dol_htmloutput_mesg('',$mesgs);
|
||||
|
||||
llxFooter();
|
||||
$db->close();
|
||||
?>
|
||||
?>
|
||||
|
||||
@ -103,6 +103,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3103__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/valo.php', 'EnhancedValue', 1, 'stocks', '$user->rights->stock->lire', '', 2, 2, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3104__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/mouvement.php', 'Movements', 1, 'stocks', '$user->rights->stock->mouvement->lire', '', 2, 3, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 3105__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/replenish.php', 'Replenishments', 1, 'stocks', '$user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire', '', 2, 4, __ENTITY__);
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 3106__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/massstockmove.php', 'StockTransfer', 1, 'stocks', '$user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
|
||||
|
||||
-- Product - Categories
|
||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3200__+MAX_llx_menu__, 'products', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=0', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
||||
|
||||
@ -565,7 +565,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
|
||||
|
||||
/*
|
||||
* Menu TIERS
|
||||
* Menu THIRDPARTIES
|
||||
*/
|
||||
if ($mainmenu == 'companies')
|
||||
{
|
||||
@ -598,7 +598,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
//$newmenu->add("/contact/list.php?leftmenu=customers&type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
|
||||
}
|
||||
|
||||
// Clients
|
||||
// Customers/Prospects
|
||||
if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
|
||||
{
|
||||
$langs->load("commercial");
|
||||
@ -608,7 +608,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
//$newmenu->add("/contact/list.php?leftmenu=customers&type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
|
||||
}
|
||||
|
||||
// Fournisseurs
|
||||
// Suppliers
|
||||
if (! empty($conf->societe->enabled) && ! empty($conf->fournisseur->enabled))
|
||||
{
|
||||
$langs->load("suppliers");
|
||||
@ -1008,6 +1008,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/valo.php", $langs->trans("EnhancedValue"), 1, $user->rights->stock->lire);
|
||||
if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/mouvement.php", $langs->trans("Movements"), 1, $user->rights->stock->mouvement->lire);
|
||||
if ($conf->fournisseur->enabled) if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire);
|
||||
if ($conf->fournisseur->enabled) if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/massstockmove.php", $langs->trans("StockTransfer"), 1, $user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire);
|
||||
}
|
||||
|
||||
// Expeditions
|
||||
|
||||
@ -16,6 +16,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Javascript code to activate drag and drop on lines
|
||||
* You can use this if you want to be abale to drag and drop rows of a table.
|
||||
* You must add id="tablelines" ont table level tag and have count($object->lines) or count($taskarray) > 0
|
||||
*/
|
||||
?>
|
||||
|
||||
@ -26,6 +28,7 @@ $fk_element=$object->fk_element;
|
||||
$table_element_line=$object->table_element_line;
|
||||
$nboflines=(isset($object->lines)?count($object->lines):(isset($tasksarray)?count($tasksarray):0));
|
||||
$forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
|
||||
$tagidfortablednd=(empty($tagidfortablednd)?'tablelines':$tagidfortablednd);
|
||||
|
||||
if (GETPOST('action') != 'editline' && $nboflines > 1) { ?>
|
||||
<script type="text/javascript">
|
||||
@ -37,10 +40,10 @@ $(document).ready(function(){
|
||||
$(".tdlineupdown").css("background-repeat","no-repeat");
|
||||
$(".tdlineupdown").css("background-position","center center");
|
||||
|
||||
$("#tablelines").tableDnD({
|
||||
$("#<?php echo $tagidfortablednd; ?>").tableDnD({
|
||||
onDrop: function(table, row) {
|
||||
var reloadpage = "<?php echo $forcereloadpage; ?>";
|
||||
var roworder = cleanSerialize($("#tablelines").tableDnDSerialize());
|
||||
var roworder = cleanSerialize($("#<?php echo $tagidfortablednd; ?>").tableDnDSerialize());
|
||||
var table_element_line = "<?php echo $table_element_line; ?>";
|
||||
var fk_element = "<?php echo $fk_element; ?>";
|
||||
var element_id = "<?php echo $id; ?>";
|
||||
@ -55,7 +58,7 @@ $(document).ready(function(){
|
||||
if (reloadpage == 1) {
|
||||
location.href = '<?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>';
|
||||
} else {
|
||||
$("#tablelines .drag").each(
|
||||
$("#<?php echo $tagidfortablednd; ?> .drag").each(
|
||||
function( intIndex ) {
|
||||
$(this).removeClass("pair impair");
|
||||
if (intIndex % 2 == 0) $(this).addClass('impair');
|
||||
|
||||
@ -299,7 +299,8 @@ ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_mode_reglement integer NULL;
|
||||
ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_cond_reglement integer NULL;
|
||||
|
||||
|
||||
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (9,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1);
|
||||
INSERT INTO llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (9,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1);
|
||||
|
||||
|
||||
ALTER TABLE llx_contratdet ADD column product_type integer DEFAULT 1 after total_ttc;
|
||||
|
||||
@ -311,3 +312,7 @@ create table llx_contrat_extrafields
|
||||
import_key varchar(14) -- import key
|
||||
) ENGINE=innodb;
|
||||
|
||||
|
||||
-- add outstanding bill
|
||||
ALTER TABLE llx_societe ADD outstanding_limit double(24,8) DEFAULT NULL AFTER mode_reglement_supplier;
|
||||
|
||||
|
||||
@ -52,7 +52,7 @@ create table llx_societe
|
||||
fk_effectif integer DEFAULT 0, --
|
||||
fk_typent integer DEFAULT 0, --
|
||||
fk_forme_juridique integer DEFAULT 0, -- juridical status
|
||||
fk_currency integer DEFAULT 0, -- currency
|
||||
fk_currency integer DEFAULT 0, -- currency
|
||||
siren varchar(128), -- IDProf1: siren or RCS for france
|
||||
siret varchar(128), -- IDProf2: siret for france
|
||||
ape varchar(128), -- IDProf3: code ape for france
|
||||
@ -61,7 +61,7 @@ create table llx_societe
|
||||
idprof6 varchar(128), -- IDProf6: nu for france
|
||||
tva_intra varchar(20), -- tva
|
||||
capital real, -- capital de la societe
|
||||
fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut
|
||||
fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut
|
||||
note_private text, --
|
||||
note_public text, --
|
||||
prefix_comm varchar(5), -- prefix commercial
|
||||
@ -85,6 +85,7 @@ create table llx_societe
|
||||
barcode varchar(255), -- barcode
|
||||
fk_barcode_type integer NULL DEFAULT 0, -- barcode type
|
||||
price_level integer NULL, -- level of price for multiprices
|
||||
outstanding_limit double(24,8) DEFAULT NULL, -- allowed outstanding limit
|
||||
default_lang varchar(6), -- default language
|
||||
logo varchar(255),
|
||||
canvas varchar(32), -- type of canvas if used (null by default)
|
||||
|
||||
@ -397,7 +397,7 @@ InActivity=Open
|
||||
ActivityCeased=Closed
|
||||
ActivityStateFilter=Activity status
|
||||
ProductsIntoElements=List of products into
|
||||
|
||||
OutstandingBill=Outstanding Bill
|
||||
# Monkey
|
||||
MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for supplier code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
|
||||
# Leopard
|
||||
|
||||
@ -89,7 +89,8 @@ CloneProject=Clone project
|
||||
CloneTasks=Clone tasks
|
||||
CloneContacts=Clone contacts
|
||||
CloneNotes=Clone notes
|
||||
CloneFiles=Clone joined files
|
||||
CloneProjectFiles=Clone project joined files
|
||||
CloneTaskFiles=Clone task(s) joined files (if task(s) cloned)
|
||||
ConfirmCloneProject=Are you sure to clone this project ?
|
||||
ProjectReportDate=Change task date according project start date
|
||||
ErrorShiftTaskDate=Impossible to shift task date according to new project start date
|
||||
|
||||
@ -397,7 +397,7 @@ InActivity=En activité
|
||||
ActivityCeased=Clos
|
||||
ActivityStateFilter=Statut d'activité
|
||||
ProductsIntoElements=Liste des produits dans les %s
|
||||
|
||||
OutstandingBill=Encours de facturation
|
||||
# Monkey
|
||||
MonkeyNumRefModelDesc=Renvoie le numéro sous la forme %syymm-nnnn pour les codes clients et %syymm-nnnn pour les codes fournisseurs où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0.
|
||||
# Leopard
|
||||
|
||||
@ -89,7 +89,8 @@ CloneProject=Cloner le projet
|
||||
CloneTasks=Cloner les tâches
|
||||
CloneContacts=Cloner les contacts
|
||||
CloneNotes=Cloner les notes
|
||||
CloneFiles=Cloner les pièces jointes
|
||||
CloneProjectFiles=Cloner les pièces jointes du projet
|
||||
CloneTaskFiles=Cloner les pièces jointes des tâche(s) (si tâche(s) cloner)
|
||||
ConfirmCloneProject=Êtes-vous sûr de vouloir cloner ce projet ?
|
||||
ProjectReportDate=Reporter les dates des tâches en fonction de la date de départ.
|
||||
ErrorShiftTaskDate=Une erreur c'est produite dans le report des dates des tâches.
|
||||
@ -104,7 +105,7 @@ TypeContact_project_task_internal_TASKEXECUTIVE=Responsable
|
||||
TypeContact_project_task_external_TASKEXECUTIVE=Responsable
|
||||
TypeContact_project_task_internal_CONTRIBUTOR=Intervenant
|
||||
TypeContact_project_task_external_CONTRIBUTOR=Intervenant
|
||||
SelectElement=Eléments associable au projet :
|
||||
SelectElement=Eléments associables au projet :
|
||||
AddElement=Associer
|
||||
# Documents models
|
||||
DocumentModelBaleine=Modèle de rapport de projet complet (logo...)
|
||||
|
||||
@ -18,8 +18,8 @@
|
||||
/**
|
||||
* \file htdocs/product/stock/massstockmove.php
|
||||
* \ingroup stock
|
||||
* \brief This page allows to select several products, then incoming warehouse and
|
||||
* outgoing warehouse and create all stock movements for this.
|
||||
* \brief This page allows to select several products, then incoming warehouse and
|
||||
* outgoing warehouse and create all stock movements for this.
|
||||
*/
|
||||
|
||||
require '../../main.inc.php';
|
||||
@ -74,7 +74,7 @@ if (! empty($_SESSION['massstockmove'])) $listofdata=dol_json_decode($_SESSION['
|
||||
|
||||
if ($action == 'addline')
|
||||
{
|
||||
if (! ($id_product > 0))
|
||||
if (! ($id_product > 0))
|
||||
{
|
||||
$error++;
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Product")),'errors');
|
||||
@ -94,20 +94,20 @@ if ($action == 'addline')
|
||||
$error++;
|
||||
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("WarehouseTarget")),'errors');
|
||||
}
|
||||
if ($id_sw > 0 && $id_tw == $id_sw)
|
||||
if ($id_sw > 0 && $id_tw == $id_sw)
|
||||
{
|
||||
$error++;
|
||||
$langs->load("errors");
|
||||
setEventMessage($langs->trans("ErrorWarehouseMustDiffers"),'errors');
|
||||
}
|
||||
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
if (count(array_keys($listofdata)) > 0) $id=max(array_keys($listofdata)) + 1;
|
||||
else $id=1;
|
||||
$listofdata[$id]=array('id'=>$id, 'id_product'=>$id_product, 'qty'=>$qty, 'id_sw'=>$id_sw, 'id_tw'=>$id_tw);
|
||||
$_SESSION['massstockmove']=dol_json_encode($listofdata);
|
||||
|
||||
|
||||
unset($id_product);
|
||||
//unset($id_sw);
|
||||
//unset($id_tw);
|
||||
@ -125,27 +125,27 @@ if ($action == 'delline' && $idline != '')
|
||||
if ($action == 'createmovements')
|
||||
{
|
||||
$error=0;
|
||||
|
||||
|
||||
if (! GETPOST("label"))
|
||||
{
|
||||
$error++;
|
||||
setEventMessage($langs->trans("ErrorFieldRequired"),$langs->transnoentitiesnoconv("LabelMovement"));
|
||||
}
|
||||
|
||||
|
||||
$db->begin();
|
||||
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$product = new Product($db);
|
||||
|
||||
foreach($listofdata as $key => $val) // Loop on each movement to do
|
||||
{
|
||||
{
|
||||
$id=$val['id'];
|
||||
$id_product=$val['id_product'];
|
||||
$id_sw=$val['id_sw'];
|
||||
$id_tw=$val['id_tw'];
|
||||
$qty=price2num($val['qty']);
|
||||
|
||||
|
||||
if (! $error && $id_sw <> $id_tw && is_numeric($qty) && $id_product)
|
||||
{
|
||||
$result=$product->fetch($id_product);
|
||||
@ -171,9 +171,9 @@ if ($action == 'createmovements')
|
||||
if ($result1 < 0)
|
||||
{
|
||||
$error++;
|
||||
setEventMessage($product->errors,'errors');
|
||||
setEventMessage($product->errors,'errors');
|
||||
}
|
||||
|
||||
|
||||
// Add stock
|
||||
$result2=$product->correct_stock(
|
||||
$user,
|
||||
@ -186,21 +186,21 @@ if ($action == 'createmovements')
|
||||
if ($result2 < 0)
|
||||
{
|
||||
$error++;
|
||||
setEventMessage($product->errors,'errors');
|
||||
setEventMessage($product->errors,'errors');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error('',"Bad value saved into sessions");
|
||||
$error++;
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
unset($_SESSION['massstockmove']);
|
||||
|
||||
|
||||
$db->commit();
|
||||
setEventMessage($langs->trans("StockMovementRecorded"),'mesgs');
|
||||
header("Location: ".DOL_URL_ROOT.'/product/stock/index.php'); // Redirect to avoid pb when using back
|
||||
@ -238,7 +238,7 @@ $titletoaddnoent=$langs->transnoentitiesnoconv("Select");
|
||||
$buttonrecord=$langs->trans("RecordMovement");
|
||||
$buttonrecordnoent=$langs->trans("RecordMovement");
|
||||
print $langs->trans("SelectProductInAndOutWareHouse",$titletoaddnoent,$buttonrecordnoent).'<br>';
|
||||
print '<br>'."\n";
|
||||
print '<br>'."\n";
|
||||
|
||||
$var=true;
|
||||
|
||||
@ -286,11 +286,11 @@ print '</tr>';
|
||||
foreach($listofdata as $key => $val)
|
||||
{
|
||||
$var=!$var;
|
||||
|
||||
|
||||
$productstatic->fetch($val['id_product']);
|
||||
$warehousestatics->fetch($val['id_sw']);
|
||||
$warehousestatict->fetch($val['id_tw']);
|
||||
|
||||
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$productstatic->getNomUrl(1).'</td>';
|
||||
print '<td>';
|
||||
@ -307,7 +307,7 @@ foreach($listofdata as $key => $val)
|
||||
print '</td>';
|
||||
print '<td align="center">'.$val['qty'].'</td>';
|
||||
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=delline&idline='.$val['id'].'">'.img_delete($langs->trans("Remove")).'</a></td>';
|
||||
|
||||
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@ print '<input type="hidden" name="token" value="' .$_SESSION['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="createmovements">';
|
||||
|
||||
// Button to record mass movement
|
||||
$labelmovement=GETPOST("label")?GETPOST('label'):$langs->trans("MassStockMovement").' '.dol_print_date($now,'%Y-%m-%d %H:%M');
|
||||
$labelmovement=GETPOST("label")?GETPOST('label'):$langs->trans("StockTransfer").' '.dol_print_date($now,'%Y-%m-%d %H:%M');
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tr>';
|
||||
@ -333,7 +333,7 @@ print '<table class="border" width="100%">';
|
||||
print '<input type="text" name="label" size="80" value="'.dol_escape_htmltag($labelmovement).'">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
print '</table>';
|
||||
print '</table>';
|
||||
|
||||
print '<div class="center"><input class="button" type="submit" name="valid" value="'.dol_escape_htmltag($buttonrecord).'"></div>';
|
||||
|
||||
|
||||
@ -540,7 +540,7 @@ while ($i < min($num, $limit))
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
print '</table>'.
|
||||
print '</table>';
|
||||
|
||||
|
||||
$value=$langs->trans("CreateOrders");
|
||||
|
||||
@ -970,11 +970,13 @@ class Project extends CommonObject
|
||||
* @param int $fromid Id of object to clone
|
||||
* @param bool $clone_contact clone contact of project
|
||||
* @param bool $clone_task clone task of project
|
||||
* @param bool $clone_file clone file of project
|
||||
* @param bool $clone_project_file clone file of project
|
||||
* @param bool $clone_task_file clone file of task (if task are copied)
|
||||
* @param bool $clone_note clone note of project
|
||||
* @param bool $notrigger no trigger flag
|
||||
* @return int New id of clone
|
||||
*/
|
||||
function createFromClone($fromid,$clone_contact=false,$clone_task=true,$clone_file=false,$clone_note=true)
|
||||
function createFromClone($fromid,$clone_contact=false,$clone_task=true,$clone_project_file=false,$clone_task_file=false,$clone_note=true,$notrigger=0)
|
||||
{
|
||||
global $user,$langs,$conf;
|
||||
|
||||
@ -1025,7 +1027,7 @@ class Project extends CommonObject
|
||||
$clone_project->ref=$defaultref;
|
||||
|
||||
// Create clone
|
||||
$result=$clone_project->create($user);
|
||||
$result=$clone_project->create($user,$notrigger);
|
||||
|
||||
// Other options
|
||||
if ($result < 0)
|
||||
@ -1088,7 +1090,7 @@ class Project extends CommonObject
|
||||
|
||||
foreach ($tab as $contacttoadd)
|
||||
{
|
||||
$clone_project->add_contact($contacttoadd['id'], $contacttoadd['code'], $contacttoadd['source']);
|
||||
$clone_project->add_contact($contacttoadd['id'], $contacttoadd['code'], $contacttoadd['source'],$notrigger);
|
||||
if ($clone_project->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
|
||||
{
|
||||
$langs->load("errors");
|
||||
@ -1108,7 +1110,7 @@ class Project extends CommonObject
|
||||
}
|
||||
|
||||
//Duplicate file
|
||||
if ($clone_file)
|
||||
if ($clone_project_file)
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
|
||||
@ -1151,7 +1153,7 @@ class Project extends CommonObject
|
||||
|
||||
foreach ($tasksarray as $tasktoclone)
|
||||
{
|
||||
$result_clone = $taskstatic->createFromClone($tasktoclone->id,$clone_project_id,$tasktoclone->fk_parent,true,true,false,true,true,false);
|
||||
$result_clone = $taskstatic->createFromClone($tasktoclone->id,$clone_project_id,$tasktoclone->fk_parent,true,true,false,$clone_task_file,true,false);
|
||||
if ($result_clone <= 0)
|
||||
{
|
||||
$this->error.=$result_clone->error;
|
||||
@ -1181,7 +1183,7 @@ class Project extends CommonObject
|
||||
{
|
||||
$taskstatic->fk_task_parent=$tab_conv_child_parent[$taskstatic->fk_task_parent];
|
||||
}
|
||||
$res=$taskstatic->update($user);
|
||||
$res=$taskstatic->update($user,$notrigger);
|
||||
if ($result_clone <= 0)
|
||||
{
|
||||
$this->error.=$taskstatic->error;
|
||||
|
||||
@ -1083,6 +1083,7 @@ class Task extends CommonObject
|
||||
$this->db->commit();
|
||||
|
||||
$clone_task_id=$clone_task->id;
|
||||
$clone_task_ref = $clone_task->ref;
|
||||
|
||||
//Note Update
|
||||
if (!$clone_note)
|
||||
@ -1139,7 +1140,7 @@ class Task extends CommonObject
|
||||
$clone_project_ref=$ori_project_ref;
|
||||
}
|
||||
|
||||
$clone_task_dir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($clone_project_ref). "/" . dol_sanitizeFileName($clone_task_id);
|
||||
$clone_task_dir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($clone_project_ref). "/" . dol_sanitizeFileName($clone_task_ref);
|
||||
$ori_task_dir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($ori_project_ref). "/" . dol_sanitizeFileName($fromid);
|
||||
|
||||
$filearray=dol_dir_list($ori_task_dir,"files",0,'','\.meta$','',SORT_ASC,1);
|
||||
|
||||
@ -314,9 +314,10 @@ if ($action == 'confirm_clone' && $user->rights->projet->creer && GETPOST('confi
|
||||
{
|
||||
$clone_contacts=GETPOST('clone_contacts')?1:0;
|
||||
$clone_tasks=GETPOST('clone_tasks')?1:0;
|
||||
$clone_files=GETPOST('clone_files')?1:0;
|
||||
$clone_project_files = GETPOST('clone_project_files') ? 1 : 0;
|
||||
$clone_task_files = GETPOST('clone_task_files') ? 1 : 0;
|
||||
$clone_notes=GETPOST('clone_notes')?1:0;
|
||||
$result=$object->createFromClone($object->id,$clone_contacts,$clone_tasks,$clone_files,$clone_notes);
|
||||
$result=$object->createFromClone($object->id,$clone_contacts,$clone_tasks,$clone_project_files,$clone_task_files,$clone_notes);
|
||||
if ($result <= 0)
|
||||
{
|
||||
$mesg='<div class="error">'.$object->error.'</div>';
|
||||
@ -479,10 +480,11 @@ else
|
||||
{
|
||||
$formquestion=array(
|
||||
'text' => $langs->trans("ConfirmClone"),
|
||||
array('type' => 'checkbox', 'name' => 'clone_contacts','label' => $langs->trans("CloneContacts"), 'value' => true),
|
||||
array('type' => 'checkbox', 'name' => 'clone_tasks', 'label' => $langs->trans("CloneTasks"), 'value' => true),
|
||||
array('type' => 'checkbox', 'name' => 'clone_notes', 'label' => $langs->trans("CloneNotes"), 'value' => true),
|
||||
array('type' => 'checkbox', 'name' => 'clone_files', 'label' => $langs->trans("CloneFiles"), 'value' => false)
|
||||
array('type' => 'checkbox', 'name' => 'clone_contacts', 'label' => $langs->trans("CloneContacts"), 'value' => true),
|
||||
array('type' => 'checkbox', 'name' => 'clone_tasks', 'label' => $langs->trans("CloneTasks"), 'value' => true),
|
||||
array('type' => 'checkbox', 'name' => 'clone_notes', 'label' => $langs->trans("CloneNotes"), 'value' => true),
|
||||
array('type' => 'checkbox', 'name' => 'clone_project_files','label' => $langs->trans("CloneProjectFiles"), 'value' => false),
|
||||
array('type' => 'checkbox', 'name' => 'clone_task_files', 'label' => $langs->trans("CloneTaskFiles"), 'value' => false)
|
||||
);
|
||||
|
||||
print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id, $langs->trans("CloneProject"), $langs->trans("ConfirmCloneProject"), "confirm_clone", $formquestion, '', 1, 240);
|
||||
|
||||
@ -4,12 +4,13 @@ define("NOCSRFCHECK",1); // We accept to go on this page from external web site.
|
||||
|
||||
require '../../main.inc.php';
|
||||
|
||||
if (empty($conf->global->MAIN_FEATURES_LEVEL))
|
||||
if (!empty($conf->global->MAIN_FEATURES_LEVEL))
|
||||
{
|
||||
print "Page available onto dev environment only";
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
|
||||
@ -17,7 +18,7 @@ if (empty($conf->global->MAIN_FEATURES_LEVEL))
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
<meta name="author" content="Dolibarr Development Team">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="<?php echo DOL_URL_ROOT ?>/theme/eldy/img/favicon.ico"/>
|
||||
<title>Login Dolibarr 3.4.0-alpha</title>
|
||||
<title>Test page</title>
|
||||
<!-- Includes for JQuery (Ajax library) -->
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo DOL_URL_ROOT ?>/includes/jquery/css/smoothness/jquery-ui-latest.custom.css" />
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo DOL_URL_ROOT ?>/includes/jquery/plugins/datatables/css/jquery.dataTables.css" />
|
||||
@ -25,6 +26,7 @@ if (empty($conf->global->MAIN_FEATURES_LEVEL))
|
||||
<link rel="stylesheet" type="text/css" title="default" href="<?php echo DOL_URL_ROOT ?>/theme/eldy/style.css.php?dol_use_jmobile=1" />
|
||||
<!-- Includes JS for JQuery -->
|
||||
<script type="text/javascript" src="<?php echo DOL_URL_ROOT ?>/includes/jquery/js/jquery-latest.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo DOL_URL_ROOT ?>/includes/jquery/plugins/tablednd/jquery.tablednd.0.6.min.js"></script>
|
||||
<script type="text/javascript" src="<?php echo DOL_URL_ROOT ?>/includes/jquery/plugins/datatables/js/jquery.dataTables.js"></script>
|
||||
<!--<script type="text/javascript" src="<?php echo DOL_URL_ROOT ?>/includes/jquery/plugins/mobile/jquery.mobile-latest.min.js"></script>-->
|
||||
</head>
|
||||
@ -37,32 +39,43 @@ if (empty($conf->global->MAIN_FEATURES_LEVEL))
|
||||
This page is a sample of page using tables. To make test with<br>
|
||||
- css (edit page to change)<br>
|
||||
- jmobile (edit page to enable/disable)<br>
|
||||
- dataTables.<br>
|
||||
- dataTables<br>
|
||||
- tablednd<br>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
Example 1 : Table using tags: div.tagtable+form+div or div.tagtable+div.tagtr+div.tagtd<br>
|
||||
<?php
|
||||
$tasksarray=array(1,2,3); // To force having several lines
|
||||
$tagidfortablednd='tablelines';
|
||||
if (! empty($conf->use_javascript_ajax) && $object->statut == 0) include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php';
|
||||
?>
|
||||
|
||||
<div class="tagtable centpercent" id="abc">
|
||||
<form class="liste_titre" method="POST" action="1.php">
|
||||
<div>snake<input type="hidden" name="cartitem" value="1"></div>
|
||||
<div class="tagtable centpercent" id="tablelines">
|
||||
<form class="liste_titre" method="POST" action="1.php">
|
||||
<div>line1<input type="hidden" name="cartitem" value="1"></div>
|
||||
<div><label><input type="checkbox" name="hidedetails" value="2"> A checkbox inside a cell</label></div>
|
||||
<div><input name="count" value="4"></div>
|
||||
<div><input type="submit" name="count" class="button noshadow" value="aaa"></div>
|
||||
</form>
|
||||
<form class="impair" method="POST" action="2.php">
|
||||
<div>snagfdgfd gd fgf ke<input type="hidden" name="cartitem" value="2"></div>
|
||||
<div>line2<input type="hidden" name="cartitem" value="2"></div>
|
||||
<div>dfsdf</div>
|
||||
<div><input name="count" value="4"></div>
|
||||
<div><input type="submit" value="xxx" class="button"></div>
|
||||
<div class="tdlineupdown"><input type="submit" value="xxx" class="button"></div>
|
||||
</form>
|
||||
<div class="pair tagtr" method="GET" action="3.php">
|
||||
<div>snagfdgfd gd fgf ke<input type="hidden" name="cartitem" value="3"></div>
|
||||
<div>line3<input type="hidden" name="cartitem" value="3"></div>
|
||||
<div>dfsdf</div>
|
||||
<div><input name="count" value="4"></div>
|
||||
<div><input type="submit" value="zzz" class="button"></div>
|
||||
<div class="tdlineupdown"><input type="submit" value="zzz" class="button"></div>
|
||||
</div>
|
||||
<div class="pair tagtr" method="GET" action="3.php">
|
||||
<div>line4<input type="hidden" name="cartitem" value="3"></div>
|
||||
<div>dfsdf</div>
|
||||
<div><input name="count" value="4"></div>
|
||||
<div class="tdlineupdown"><input type="submit" value="zzz" class="button"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -133,68 +146,89 @@ $('xxxth').replaceWith(
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line1</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line2</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line3</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line4</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line5</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line6</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line7</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line8</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line9</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line10</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line11</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>snagfdgfd gd fgf ke</td>
|
||||
<td>line12</td>
|
||||
<td>dfsdf</td>
|
||||
<td> xxx </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
Example 3 : Standard table<br>
|
||||
<?php
|
||||
$tasksarray=array(1,2,3); // To force having several lines
|
||||
$tagidfortablednd='tablelines3';
|
||||
if (! empty($conf->use_javascript_ajax) && $object->statut == 0) include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php';
|
||||
?>
|
||||
|
||||
<table class="tagtable centpercent centpercent" id="tablelines3">
|
||||
<tr class="liste_titre"><td>title1</td><td class="tdlineupdown">title2</td></tr>
|
||||
<tr class="pair"><td class="pair">a1</td><td class="tdlineupdown pair">b1</td></tr>
|
||||
<tr class="impair"><td class="impair">a2</td><td class="tdlineupdown impair">b2</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -124,6 +124,7 @@ class Societe extends CommonObject
|
||||
var $statut_commercial;
|
||||
|
||||
var $price_level;
|
||||
var $outstanding_limit;
|
||||
|
||||
var $datec;
|
||||
var $date_update;
|
||||
@ -707,7 +708,7 @@ class Societe extends CommonObject
|
||||
$sql .= ', s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur, s.parent, s.barcode';
|
||||
$sql .= ', s.fk_departement, s.fk_pays as country_id, s.fk_stcomm, s.remise_client, s.mode_reglement, s.cond_reglement, s.tva_assuj';
|
||||
$sql .= ', s.mode_reglement_supplier, s.cond_reglement_supplier, s.localtax1_assuj, s.localtax2_assuj, s.fk_prospectlevel, s.default_lang, s.logo';
|
||||
$sql .= ', s.import_key, s.canvas';
|
||||
$sql .= ', s.outstanding_limit, s.import_key, s.canvas';
|
||||
$sql .= ', fj.libelle as forme_juridique';
|
||||
$sql .= ', e.libelle as effectif';
|
||||
$sql .= ', p.code as country_code, p.libelle as country';
|
||||
@ -836,6 +837,8 @@ class Societe extends CommonObject
|
||||
$this->default_lang = $obj->default_lang;
|
||||
$this->logo = $obj->logo;
|
||||
|
||||
$this->outstanding_limit = $obj->outstanding_limit;
|
||||
|
||||
// multiprix
|
||||
$this->price_level = $obj->price_level;
|
||||
|
||||
@ -2767,6 +2770,71 @@ class Societe extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set outstanding value
|
||||
*
|
||||
* @param User $user User making change
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function set_outstanding($user)
|
||||
{
|
||||
if ($this->id)
|
||||
{
|
||||
$this->db->begin();
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$outstanding = price2num($this->outstanding_limit);
|
||||
|
||||
// Positionne l'encours de facturaiton
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET ";
|
||||
$sql.= " outstanding_limit=".$outstanding;
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
dol_syslog(get_class($this)."::set_outstanding sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if (! $resql)
|
||||
{
|
||||
$this->db->rollback();
|
||||
$this->error=$this->db->error();
|
||||
return -1;
|
||||
}
|
||||
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* return amount of bill not paid
|
||||
*
|
||||
* @return boolean Yes or no
|
||||
*/
|
||||
function get_OutstandingBill()
|
||||
{
|
||||
/* Accurate value of remain to pay is to sum remaintopay for each invoice
|
||||
$paiement = $invoice->getSommePaiement();
|
||||
$creditnotes=$invoice->getSumCreditNotesUsed();
|
||||
$deposits=$invoice->getSumDepositsUsed();
|
||||
$alreadypayed=price2num($paiement + $creditnotes + $deposits,'MT');
|
||||
$remaintopay=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT');
|
||||
*/
|
||||
$sql = "SELECT sum(total) as amount FROM ".MAIN_DB_PREFIX."facture as f";
|
||||
$sql .= " WHERE fk_soc = ". $this->id;
|
||||
$sql .= " AND paye = 0";
|
||||
$sql .= " AND fk_statut <> 0";
|
||||
|
||||
dol_syslog("get_OutstandingBill sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$obj=$this->db->fetch_object($resql);
|
||||
return ($obj->amount);
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return label of status customer is prospect/customer
|
||||
*
|
||||
|
||||
@ -374,6 +374,7 @@ td.showDragHandle {
|
||||
}
|
||||
.tdlineupdown {
|
||||
white-space: nowrap;
|
||||
min-width: 10px;
|
||||
}
|
||||
|
||||
/* ============================================================================== */
|
||||
|
||||
@ -256,6 +256,7 @@ td.showDragHandle {
|
||||
}
|
||||
.tdlineupdown {
|
||||
white-space: nowrap;
|
||||
min-width: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -282,6 +282,7 @@ td.showDragHandle {
|
||||
}
|
||||
.tdlineupdown {
|
||||
white-space: nowrap;
|
||||
min-width: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -256,6 +256,7 @@ td.showDragHandle {
|
||||
}
|
||||
.tdlineupdown {
|
||||
white-space: nowrap;
|
||||
min-width: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -426,6 +426,7 @@ td.showDragHandle {
|
||||
}
|
||||
.tdlineupdown {
|
||||
white-space: nowrap;
|
||||
min-width: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user