Code more generic around setting projet on a card

This commit is contained in:
Laurent Destailleur 2019-10-22 13:43:24 +02:00
parent b2bbee55f1
commit 5ad7ca5620
12 changed files with 71 additions and 27 deletions

View File

@ -178,6 +178,7 @@ class DolibarrApi
unset($object->lines[$i]->cond_reglement);
unset($object->lines[$i]->fk_delivery_address);
unset($object->lines[$i]->fk_projet);
unset($object->lines[$i]->fk_project);
unset($object->lines[$i]->thirdparty);
unset($object->lines[$i]->user);
unset($object->lines[$i]->model_pdf);

View File

@ -1882,13 +1882,19 @@ abstract class CommonObject
}
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
if ($this->table_element == 'actioncomm')
if (! empty($this->fields['fk_project'])) // Common case
{
if ($projectid) $sql.= ' SET fk_project = '.$projectid;
else $sql.= ' SET fk_project = NULL';
$sql.= ' WHERE rowid = '.$this->id;
}
elseif ($this->table_element == 'actioncomm') // Special case for actioncomm
{
if ($projectid) $sql.= ' SET fk_project = '.$projectid;
else $sql.= ' SET fk_project = NULL';
$sql.= ' WHERE id = '.$this->id;
}
else
else // Special case for old architecture objects
{
if ($projectid) $sql.= ' SET fk_projet = '.$projectid;
else $sql.= ' SET fk_projet = NULL';

View File

@ -211,7 +211,7 @@ if ($resql)
if (! empty($conf->projet->enabled))
{
$langs->load("projects");
print_liste_field_titre("Project", $_SERVER["PHP_SELF"], "fk_projet", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("Project", $_SERVER["PHP_SELF"], "d.fk_projet", "", $param, "", $sortfield, $sortorder);
}
print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "d.amount", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "d.fk_statut", "", $param, '', $sortfield, $sortorder, 'right ');

View File

@ -57,7 +57,7 @@ $confirm = GETPOST('confirm', 'alpha');
$date_start = dol_mktime(0, 0, 0, GETPOST('date_debutmonth', 'int'), GETPOST('date_debutday', 'int'), GETPOST('date_debutyear', 'int'));
$date_end = dol_mktime(0, 0, 0, GETPOST('date_finmonth', 'int'), GETPOST('date_finday', 'int'), GETPOST('date_finyear', 'int'));
$date = dol_mktime(0, 0, 0, GETPOST('datemonth', 'int'), GETPOST('dateday', 'int'), GETPOST('dateyear', 'int'));
$fk_projet=GETPOST('fk_projet', 'int');
$fk_project=GETPOST('fk_project', 'int');
$vatrate=GETPOST('vatrate', 'alpha');
$ref=GETPOST("ref", 'alpha');
$comments=GETPOST('comments', 'none');
@ -145,7 +145,7 @@ if (empty($reshook))
}
$action='';
$fk_projet='';
$fk_project='';
$date_start='';
$date_end='';
$date='';
@ -1232,7 +1232,7 @@ if (empty($reshook))
$type = 0; // TODO What if service ? We should take the type product/service from the type of expense report llx_c_type_fees
// Insert line
$result = $object->addline($qty, $value_unit, $fk_c_type_fees, $vatrate, $date, $comments, $fk_projet, $fk_c_exp_tax_cat, $type, $fk_ecm_files);
$result = $object->addline($qty, $value_unit, $fk_c_type_fees, $vatrate, $date, $comments, $fk_project, $fk_c_exp_tax_cat, $type, $fk_ecm_files);
if ($result > 0)
{
$ret = $object->fetch($object->id); // Reload to get new records
@ -1257,7 +1257,7 @@ if (empty($reshook))
unset($vatrate);
unset($comments);
unset($fk_c_type_fees);
unset($fk_projet);
unset($fk_project);
unset($date);
} else {
@ -1334,7 +1334,7 @@ if (empty($reshook))
$rowid = $_POST['rowid'];
$type_fees_id = GETPOST('fk_c_type_fees', 'int');
$fk_c_exp_tax_cat = GETPOST('fk_c_exp_tax_cat', 'int');
$projet_id = $fk_projet;
$projet_id = $fk_project;
$comments = GETPOST('comments', 'none');
$qty = GETPOST('qty', 'int');
$vatrate = GETPOST('vatrate', 'alpha');
@ -2372,7 +2372,7 @@ else
if (! empty($conf->projet->enabled))
{
print '<td>';
$formproject->select_projects(-1, $line->fk_project, 'fk_projet', 0, 0, 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth300');
$formproject->select_projects(-1, $line->fk_project, 'fk_project', 0, 0, 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth300');
print '</td>';
}
@ -2527,7 +2527,7 @@ else
if (! empty($conf->projet->enabled))
{
print '<td>';
$formproject->select_projects(-1, $fk_projet, 'fk_projet', 0, 0, 1, -1, 0, 0, 0, '', 0, 0, 'maxwidth300');
$formproject->select_projects(-1, $fk_project, 'fk_project', 0, 0, 1, -1, 0, 0, 0, '', 0, 0, 'maxwidth300');
print '</td>';
}

View File

@ -158,12 +158,10 @@ if ($action == 'add') {
// on récupère les enregistrements
$object->fetch($id);
// on transfert les données de l'un vers l'autre
if ($object->socid > 0) {
$newinter->socid=$object->socid;
$newinter->fk_projet=$object->fk_projet;
$newinter->fk_project=$object->fk_projet;
$newinter->fk_project=$object->fk_project;
$newinter->fk_contrat=$object->fk_contrat;
} else {
$newinter->socid=GETPOST("socid");

View File

@ -97,6 +97,7 @@ class MyObject extends CommonObject
'amount' =>array('type'=>'double(24,8)', 'label'=>'Amount', 'enabled'=>1, 'visible'=>1, 'default'=>'null', 'position'=>40, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text for amount'),
'qty' =>array('type'=>'real', 'label'=>'Qty', 'enabled'=>1, 'visible'=>1, 'default'=>'0', 'position'=>45, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text for quantity', 'css'=>'maxwidth75imp'),
'fk_soc' =>array('type'=>'integer:Societe:societe/class/societe.class.php:1', 'label'=>'ThirdParty', 'visible'=> 1, 'enabled'=>1, 'position'=>50, 'notnull'=>-1, 'index'=>1, 'help'=>'LinkToThirparty'),
'fk_project' =>array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'enabled'=>1, 'visible'=>-1, 'position'=>52, 'notnull'=>-1, 'index'=>1,),
'description' =>array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>3, 'position'=>60),
'note_public' =>array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>61),
'note_private' =>array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>62),

View File

@ -142,6 +142,18 @@ if (empty($reshook))
// Actions when printing a doc from card
include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
// Action to move up and down lines of object
//include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; // Must be include, not include_once
if ($action == 'set_thirdparty' && $permissiontoadd)
{
$object->setValueFrom('fk_soc', GETPOST('fk_soc', 'int'), '', '', 'date', '', $user, 'MYOBJECT_MODIFY');
}
if ($action == 'classin' && $permissiontoadd)
{
$object->setProject(GETPOST('projectid', 'int'));
}
// Actions to send emails
$trigger_name='MYOBJECT_SENTBYMAIL';
$autocopy='MAIN_MAIL_AUTOCOPY_MYOBJECT_TO';
@ -310,7 +322,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->mymodule->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->mymodule->creer, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1);
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
if (! empty($conf->projet->enabled))
{
@ -355,6 +367,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
// Common attributes
//$keyforbreak='fieldkeytoswitchonsecondcolumn';
//unset($object->fields['fk_project']); // Hide field already shown in banner
//unset($object->fields['fk_soc']); // Hide field already shown in banner
include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php';
// Other attributes. Fields from hook formObjectOptions and Extrafields.

View File

@ -36,11 +36,16 @@ function moPrepareHead($object)
$h = 0;
$head = array();
$head[$h][0] = dol_buildpath("/mrp/mo_card.php", 1).'?id='.$object->id;
$head[$h][0] = DOL_URL_ROOT.'/mrp/mo_card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][2] = 'card';
$h++;
$head[$h][0] = DOL_URL_ROOT.'/mrp/mo_production.php?id='.$object->id;
$head[$h][1] = $langs->trans("Production");
$head[$h][2] = 'production';
$h++;
if (isset($object->fields['note_public']) || isset($object->fields['note_private']))
{
$nbNote = 0;

View File

@ -58,6 +58,7 @@ if (! $res) die("Include of main fails");
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
dol_include_once('/mrp/class/mo.class.php');
dol_include_once('/mrp/lib/mrp_mo.lib.php');
@ -143,6 +144,18 @@ if (empty($reshook))
// Actions when printing a doc from card
include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
// Action to move up and down lines of object
//include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php'; // Must be include, not include_once
if ($action == 'set_thirdparty' && $permissiontoadd)
{
$object->setValueFrom('fk_soc', GETPOST('fk_soc', 'int'), '', '', 'date', '', $user, 'MO_MODIFY');
}
if ($action == 'classin' && $permissiontoadd)
{
$object->setProject(GETPOST('projectid', 'int'));
}
// Actions to send emails
$trigger_name='MO_SENTBYMAIL';
$autocopy='MAIN_MAIL_AUTOCOPY_MO_TO';
@ -160,7 +173,7 @@ if (empty($reshook))
*/
$form=new Form($db);
$formfile=new FormFile($db);
$formproject=new FormProjets($db);
llxHeader('', $langs->trans('Mo'), '');
@ -248,7 +261,7 @@ if ($action == 'create')
// Part to edit record
if (($id || $ref) && $action == 'edit')
{
print load_fiche_titre($langs->trans("Mo"), '', 'cubes');
print load_fiche_titre($langs->trans("MO"), '', 'cubes');
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@ -341,9 +354,9 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
/*
// Ref bis
$morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->mrp->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->mrp->creer, 'string', '', null, null, '', 1);
$morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->mrp->creer, 'string', '', null, null, '', 1);*/
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1);
$morehtmlref.=$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
if (! empty($conf->projet->enabled))
{
@ -374,7 +387,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
}
}
}
*/
$morehtmlref.='</div>';
@ -387,7 +399,9 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
print '<table class="border centpercent">'."\n";
// Common attributes
//$keyforbreak='fieldkeytoswitchonsecondcolumn';
$keyforbreak='qty';
unset($object->fields['fk_project']);
unset($object->fields['fk_soc']);
include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php';
// Other attributes

View File

@ -585,7 +585,7 @@ class MouvementStock extends CommonObject
$sql .= " t.batch,";
$sql .= " t.eatby,";
$sql .= " t.sellby,";
$sql .= " t.fk_projet";
$sql .= " t.fk_projet as fk_project";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
$sql.= ' WHERE 1 = 1';
//if (null !== $ref) {
@ -618,6 +618,7 @@ class MouvementStock extends CommonObject
$this->batch = $obj->batch;
$this->eatby = $this->db->jdate($obj->eatby);
$this->sellby = $this->db->jdate($obj->sellby);
$this->fk_project = $obj->fk_project;
}
// Retreive all extrafield

View File

@ -429,7 +429,7 @@ $sql.= " e.ref as warehouse_ref, e.rowid as entrepot_id, e.lieu, e.fk_parent, e.
$sql.= " m.rowid as mid, m.value as qty, m.datem, m.fk_user_author, m.label, m.inventorycode, m.fk_origin, m.origintype,";
$sql.= " m.batch, m.price,";
$sql.= " m.type_mouvement,";
$sql.= " m.fk_projet,";
$sql.= " m.fk_projet as fk_project,";
$sql.= " pl.rowid as lotid, pl.eatby, pl.sellby,";
$sql.= " u.login, u.photo, u.lastname, u.firstname";
// Add fields from extrafields
@ -859,7 +859,7 @@ if ($resql)
}
if (! empty($arrayfields['m.fk_projet']['checked']))
{
// fk_projet
// fk_project
print '<td class="liste_titre" align="left">';
print '&nbsp; ';
print '</td>';
@ -1115,9 +1115,9 @@ if ($resql)
}
if (! empty($arrayfields['m.fk_projet']['checked']))
{
// fk_projet
// fk_project
print '<td align="right">';
if ($objp->fk_projet != 0) print $movement->get_origin($objp->fk_projet, 'project');
if ($objp->fk_project != 0) print $movement->get_origin($objp->fk_project, 'project');
print '</td>';
}
// Action column

View File

@ -5788,7 +5788,7 @@ div.tabsElem a.tab {
}
.dropdown dd ul {
max-width: 300px;
max-width: 350px;
}
}
/* rule to reduce top menu - 2nd reduction: Reduce width of top menu icons again */
@ -5817,6 +5817,10 @@ div.tabsElem a.tab {
margin-top: 2px;
left: 4px;
}
.dropdown dd ul {
max-width: 300px;
}
}
/* rule to reduce top menu - 3rd reduction: The menu for user is on left */
@media only screen and (max-width: <?php echo empty($conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC3) ? round($nbtopmenuentries * 47, 0) + 130 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC3; ?>px) /* reduction 3 */