function _card(&$PDOdb, &$object) { global $langs, $conf, $user, $db; llxHeader(); dol_fiche_head(array(), 'menu', 'Menu'); $formCore = new TFormCore('auto', 'formMenu', 'post'); echo $formCore->hidden('action', 'save'); echo $formCore->hidden('id', $object->getId()); $TQuery = array('0' => '----') + TQuery::getQueries($PDOdb); $TDashBoard = array('0' => '----') + TQDashBoard::getDashboard($PDOdb, '', 0, true); $tbs = new TTemplateTBS(); echo $tbs->render('tpl/menu.html', array(), array('menu' => array('type_menu' => $formCore->combo('', 'type_menu', $object->TTypeMenu, $object->type_menu), 'tab_object' => $formCore->combo('', 'tab_object', $object->TTabObject, $object->tab_object), 'mainmenu' => $formCore->combo('', 'mainmenu', TQueryMenu::getMenu($PDOdb, 'main'), $object->mainmenu), 'leftmenu' => $formCore->combo('', 'leftmenu', TQueryMenu::getMenu($PDOdb, 'left'), $object->leftmenu), 'fk_query' => $formCore->combo('', 'fk_query', $TQuery, $object->fk_query), 'fk_dashboard' => $formCore->combo('', 'fk_dashboard', $TDashBoard, $object->fk_dashboard), 'title' => $formCore->texte('', 'title', $object->title, 80, 255), 'perms' => $formCore->texte('', 'perms', $object->perms, 80, 255)), 'view' => array('langs' => $langs, 'buttons' => $formCore->btsubmit($langs->trans('Delete'), 'bt_delete', '', 'butActionDelete') . ' ' . $formCore->btsubmit($langs->trans('Save'), 'bt_save')))); $formCore->end(); dol_fiche_end(); llxFooter(); }
function _card(&$PDOdb, &$object) { global $langs, $conf, $user, $db; if (empty($user->rights->query->bdd->use_other_db)) { return ''; } llxHeader(); dol_fiche_head(array(), 'bdd', 'BDD'); $tbs = new TTemplateTBS(); $object->connect(); $formCore = new TFormCore('auto', 'formBDD', 'post'); echo $formCore->hidden('action', 'save'); echo $formCore->hidden('id', $object->getId()); echo $tbs->render('tpl/bdd.html', array(), array('object' => array('host' => $formCore->texte('', 'host', $object->host, 30, 128), 'db_name' => $formCore->texte('', 'db_name', $object->db_name, 30, 128), 'login' => $formCore->texte('', 'login', $object->login, 30, 128), 'password' => $formCore->texte('', 'password', $object->password, 30, 128), 'port' => $formCore->texte('', 'port', $object->port, 5, 5), 'charset' => $formCore->texte('', 'charset', $object->charset, 10, 128), 'db_type' => $formCore->combo('', 'db_type', $object->TDBType, $object->db_type)), 'view' => array('langs' => $langs, 'buttons' => $formCore->btsubmit($langs->trans('Delete'), 'bt_delete', '', 'butActionDelete') . ' ' . $formCore->btsubmit($langs->trans('Save'), 'bt_save')))); $formCore->end(); dol_fiche_end(); llxFooter(); }
function _liste(&$PDOdb) { global $langs, $db, $user, $conf; llxHeader('', $langs->trans('ListOFAsset'), '', ''); //getStandartJS(); if (isset($_REQUEST['delete_ok'])) { ?> <br><div class="error"><?php echo $langs->trans('OFAssetDeleted'); ?> </div><br> <?php } $fk_soc = __get('fk_soc', 0, 'integer'); $fk_product = __get('fk_product', 0, 'integer'); $fk_commande = __get('fk_commande', 0, 'integer'); if ($fk_product > 0) { dol_include_once('/core/lib/product.lib.php'); $product = new Product($db); $result = $product->fetch($fk_product); $head = product_prepare_head($product, $user); $titre = $langs->trans("CardProduct" . $product->type); $picto = $product->type == 1 ? 'service' : 'product'; dol_fiche_head($head, 'tabOF2', $titre, 0, $picto); } elseif ($fk_commande > 0) { dol_include_once("/core/lib/order.lib.php"); $commande = new Commande($db); $result = $commande->fetch($fk_commande); $head = commande_prepare_head($commande, $user); $titre = $langs->trans("CustomerOrder" . $product->type); dol_fiche_head($head, 'tabOF3', $titre, 0, "order"); } $form = new TFormCore(); $assetOf = new TAssetOF(); $r = new TSSRenderControler($assetOf); $sql = "SELECT ofe.rowid, ofe.numero, ofe.fk_soc, s.nom as client, SUM(ofel.qty) as nb_product_to_make\n\t\t, GROUP_CONCAT(DISTINCT ofel.fk_product SEPARATOR ',') as fk_product, p.label as product, ofe.ordre, ofe.date_lancement , ofe.date_besoin, ofe.fk_commande,ofe.fk_project\n\t\t, ofe.status, ofe.fk_user,ofe.total_estimated_cost, ofe.total_cost, '' AS printTicket\n\t\t FROM " . MAIN_DB_PREFIX . "assetOf as ofe \n\t\t LEFT JOIN " . MAIN_DB_PREFIX . "assetOf_line ofel ON (ofel.fk_assetOf=ofe.rowid AND ofel.type = 'TO_MAKE')\n\t\t LEFT JOIN " . MAIN_DB_PREFIX . "product p ON (p.rowid = ofel.fk_product)\n\t\t LEFT JOIN " . MAIN_DB_PREFIX . "societe s ON (s.rowid = ofe.fk_soc)\n\t\t WHERE ofe.entity=" . $conf->entity; if ($fk_soc > 0) { $sql .= " AND ofe.fk_soc=" . $fk_soc; } if ($fk_product > 0) { $sql .= " AND ofel.fk_product=" . $fk_product; } if ($fk_commande > 0) { $sql .= " AND ofe.fk_commande=" . $fk_commande; } $sql .= " GROUP BY ofe.rowid "; // TODO je me rappelle plus pourquoi j'ai fait cette merde mais ça fait planter le tri, donc à virer. /*if($conf->global->ASSET_OF_LIST_BY_ROWID_DESC) $orderBy['ofe.rowid']='DESC'; else $orderBy['ofe.date_cre']='DESC';*/ $TMath = array(); $THide = array('rowid', 'fk_user', 'fk_product', 'fk_soc'); if ($fk_commande > 0) { $THide[] = 'fk_commande'; } if ($conf->global->OF_NB_TICKET_PER_PAGE == -1) { $THide[] = 'printTicket'; } if (empty($user->rights->of->of->price)) { $THide[] = 'total_cost'; $THide[] = 'total_estimated_cost'; } else { $TMath['total_estimated_cost'] = 'sum'; $TMath['total_cost'] = 'sum'; } if (!empty($fk_product)) { $TMath['nb_product_to_make'] = 'sum'; } $form = new TFormCore($_SERVER['PHP_SELF'], 'form', 'GET'); echo $form->hidden('action', ''); if ($fk_commande > 0) { echo $form->hidden('fk_commande', $fk_commande); } if ($fk_product > 0) { echo $form->hidden('fk_product', $fk_product); } // permet de garder le filtre produit quand on est sur l'onglet OF d'une fiche produit $r->liste($PDOdb, $sql, array('limit' => array('nbLine' => $conf->liste_limit), 'orderBy' => $orderBy, 'subQuery' => array(), 'link' => array('Utilisateur en charge' => '<a href="' . dol_buildpath('/user/card.php?id=@fk_user@', 2) . '">' . img_picto('', 'object_user.png', '', 0) . ' @val@</a>', 'numero' => '<a href="' . dol_buildpath('/of/fiche_of.php?id=@rowid@"', 2) . '>' . img_picto('', 'object_list.png', '', 0) . ' @val@</a>', 'printTicket' => '<input style=width:40px;"" type="number" value="' . (int) $conf->global->OF_NB_TICKET_PER_PAGE . '" name="printTicket[@rowid@]" min="0" />'), 'translate' => array(), 'hide' => $THide, 'type' => array('date_lancement' => 'date', 'date_besoin' => 'date', 'total_cost' => 'money', 'total_estimated_cost' => 'money', 'nb_product_to_make' => 'number'), 'math' => $TMath, 'liste' => array('titre' => $langs->trans('ListOFAsset'), 'image' => img_picto('', 'title.png', '', 0), 'picto_precedent' => img_picto('', 'back.png', '', 0), 'picto_suivant' => img_picto('', 'next.png', '', 0), 'noheader' => (int) isset($_REQUEST['fk_soc']) | (int) isset($_REQUEST['fk_product']), 'messageNothing' => "Il n'y a aucun " . $langs->trans('OFAsset') . " à afficher", 'picto_search' => img_picto('', 'search.png', '', 0)), 'title' => array('numero' => 'Numéro', 'fk_commande' => 'Commande client', 'ordre' => 'Priorité', 'date_lancement' => 'Date du lancement', 'date_besoin' => 'Date du besoin', 'status' => 'Status', 'login' => 'Utilisateur en charge', 'product' => 'Produit', 'client' => 'Client', 'nb_product_to_make' => 'Nb produits à fabriquer', 'total_cost' => 'Coût réel', 'total_estimated_cost' => 'Coût prévu', 'printTicket' => 'impression<br />étiquette', 'fk_project' => 'Projet'), 'orderBy' => array('rowid' => 'DESC'), 'eval' => array('ordre' => 'TAssetOF::ordre(@val@)', 'status' => 'TAssetOF::status(@val@)', 'product' => 'get_format_libelle_produit("@fk_product@")', 'client' => 'get_format_libelle_societe(@fk_soc@)', 'fk_commande' => 'get_format_libelle_commande(@fk_commande@)', 'fk_project' => 'get_format_libelle_projet(@fk_project@)'), 'search' => array('numero' => array('recherche' => true, 'table' => 'ofe'), 'date_lancement' => array('recherche' => 'calendars', 'table' => 'ofe'), 'date_besoin' => array('recherche' => 'calendars', 'table' => 'ofe'), 'status' => array('recherche' => TAssetOF::$TStatus, 'table' => 'ofe')))); if ($conf->global->OF_NB_TICKET_PER_PAGE != -1) { echo '<p align="right"><input class="button" type="button" onclick="$(this).closest(\'form\').find(\'input[name=action]\').val(\'printTicket\'); $(this).closest(\'form\').submit(); " name="print" value="' . $langs->trans('ofPrintTicket') . '" /></p>'; } $form->end(); // On n'affiche pas le bouton de création d'OF si on est sur la liste OF depuis l'onglet "OF" de la fiche commande if ($fk_commande) { $commande = new Commande($db); $commande->fetch($fk_commande); $r2 = new TSSRenderControler($assetOf); $sql = "SELECT c.rowid as fk_commandedet, p.rowid as rowid, p.ref as refProd, p.label as nomProd, c.qty as qteCommandee, c.description, c.product_type"; $sql .= " FROM " . MAIN_DB_PREFIX . "commandedet c LEFT JOIN " . MAIN_DB_PREFIX . "product p"; $sql .= " ON (c.fk_product = p.rowid)"; $sql .= " WHERE c.product_type IN (0,9) AND c.fk_commande = " . $fk_commande; $resql = $db->query($sql); //var_dump($db); $num = $db->num_rows($resql); print_barre_liste($langs->trans('ListOrderProducts'), $page, "liste.php", $param, $sortfield, $sortorder, '', $num); $i = 0; $form = new TFormCore($_SERVER['PHP_SELF'], 'formMakeOk', 'post'); echo $form->hidden('fk_commande', __get('fk_commande', 0, 'int')); echo $form->hidden('action', 'createOFCommande'); echo $form->hidden('fk_soc', $commande->socid); echo $form->hidden('token', $_SESSION['newtoken']); print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; print_liste_field_titre("#"); print_liste_field_titre($langs->trans("Ref"), "liste_of.php", "ref", "", $param, '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Label"), "liste_of.php", "label", "", $param, 'align="left"', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Quantité à produire"), "liste_of.php", "", "", $param, '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Produits à ajouter à un OF"), "liste_of.php", "", "", $param, '', $sortfield, $sortorder); print "</tr>\n"; $var = 1; $bc = array(1 => 'class="pair"', -1 => 'class="impair"'); while ($prod = $db->fetch_object($resql)) { $var = !$var; //print "<tr ".$bc[$var].">"; if ($prod->product_type == 9) { print "<tr>"; print "<td> </td>"; print "<td colspan=\"4\"><strong>"; print $prod->description; print '</strong></td>'; } else { if (empty($prod->rowid)) { // ligne libre print "<tr>"; print "<td> </td>"; print "<td colspan=\"4\">"; print $prod->description; print '</td>'; } else { print "<tr " . $bc[$var] . ">"; print "<td>" . ($i + 1) . "</td>"; print "<td>"; $p_static = new Product($db); $p_static->ref = $prod->refProd; $p_static->id = $prod->rowid; print $p_static->getNomUrl(1); print "</td>\n"; print '<td>'; print $prod->nomProd; print '</td>'; print "<td>"; print $form->texte('', 'TQuantites[' . $prod->fk_commandedet . ']', $prod->qteCommandee, 3, 255); print "</td>"; print "<td>" . $form->checkbox1('', 'TProducts[' . $prod->fk_commandedet . '][' . (int) $prod->rowid . ']', false, true, '', 'checkOF'); print "</td>"; print "</tr>\n"; $i++; } } } print '<tr class="liste_titre">'; echo '<th class="liste_titre" colspan="2"> </th><th class="liste_titre"> </th><th class="liste_titre"> </th> <th class="liste_titre"><input type="checkbox" id="checkall" checked="checked" value="1"></th> '; print '</tr>'; print "</table>"; ?> <script type="text/javascript"> $('input#checkall').change(function() { $('input.checkOF').prop('checked',$(this).is(':checked')); }); </script> <?php echo '<p align="right">' . $form->btsubmit('Créer OFs', 'subForm') . ' ' . $form->btsubmit('Créer un seul OF', 'subFormAlone') . '</p>'; $form->end(); echo '</div>'; $db->free($resql); } else { if (!empty($fk_product)) { $sql = "SELECT ofe.rowid, ofe.numero, ofe.fk_soc, s.nom as client, SUM(IF(ofel.qty>0,ofel.qty,ofel.qty_needed) ) as nb_product_needed, ofel.fk_product, p.label as product, ofe.ordre, ofe.date_lancement , ofe.date_besoin\n , ofe.status, ofe.fk_user, ofe.total_cost\n FROM " . MAIN_DB_PREFIX . "assetOf as ofe \n LEFT JOIN " . MAIN_DB_PREFIX . "assetOf_line ofel ON (ofel.fk_assetOf=ofe.rowid AND ofel.type = 'NEEDED')\n LEFT JOIN " . MAIN_DB_PREFIX . "product p ON p.rowid = ofel.fk_product\n LEFT JOIN " . MAIN_DB_PREFIX . "societe s ON s.rowid = ofe.fk_soc\n WHERE ofe.entity=" . $conf->entity . " AND ofel.fk_product=" . $fk_product . " AND ofe.status!='CLOSE'"; $sql .= " GROUP BY ofe.rowid "; if ($conf->global->ASSET_OF_LIST_BY_ROWID_DESC) { $orderBy['ofe.rowid'] = 'DESC'; } else { $orderBy['ofe.date_cre'] = 'DESC'; } $TMath = array(); $THide = array('rowid', 'fk_user', 'fk_product', 'fk_soc'); if (empty($user->rights->asset->of->price)) { $THide[] = 'total_cost'; } else { $TMath['total_cost'] = 'sum'; } $TMath['nb_product_needed'] = 'sum'; $l = new TListviewTBS('listeofproductneeded'); echo $langs->trans('ofListProductNeeded'); echo $l->render($PDOdb, $sql, array('limit' => array('nbLine' => $conf->liste_limit), 'orderBy' => $orderBy, 'subQuery' => array(), 'link' => array('Utilisateur en charge' => '<a href="' . dol_buildpath('/user/card.php?id=@fk_user@', 2) . '">' . img_picto('', 'object_user.png', '', 0) . ' @val@</a>', 'numero' => '<a href="' . dol_buildpath('/of/fiche_of.php?id=@rowid@', 2) . '">' . img_picto('', 'object_list.png', '', 0) . ' @val@</a>', 'product' => '<a href="' . dol_buildpath('/product/card.php?id=@fk_product@', 2) . '">' . img_picto('', 'object_product.png', '', 0) . ' @val@</a>', 'client' => '<a href="' . dol_buildpath('/societe/soc.php?id=@fk_soc@', 2) . '">' . img_picto('', 'object_company.png', '', 0) . ' @val@</a>'), 'translate' => array(), 'hide' => $THide, 'type' => array('date_lancement' => 'date', 'date_besoin' => 'date', 'total_cost' => 'money', 'nb_product_needed' => 'number'), 'math' => $TMath, 'liste' => array('titre' => $langs->trans('ListOFAsset'), 'image' => img_picto('', 'title.png', '', 0), 'picto_precedent' => img_picto('', 'back.png', '', 0), 'picto_suivant' => img_picto('', 'next.png', '', 0), 'noheader' => (int) isset($_REQUEST['fk_soc']) | (int) isset($_REQUEST['fk_product']), 'messa geNothing' => "Il n'y a aucun " . $langs->trans('OFAsset') . " à afficher", 'picto_search' => img_picto('', 'search.png', '', 0)), 'title' => array('numero' => 'Numéro', 'ordre' => 'Priorité', 'date_lancement' => 'Date du lancement', 'date_besoin' => 'Date du besoin', 'status' => 'Status', 'login' => 'Utilisateur en charge', 'product' => 'Produit', 'client' => 'Client', 'nb_product_needed' => 'Nb produits nécessaire', 'total_cost' => 'Coût'), 'eval' => array('ordre' => 'TAssetOF::ordre(@val@)', 'status' => 'TAssetOF::status(@val@)', 'product' => 'get_format_libelle_produit(@fk_product@)', 'client' => 'get_format_libelle_societe(@fk_soc@)'))); } echo '<div class="tabsAction">'; echo '<a id="bt_createOf" class="butAction" href="fiche_of.php?action=new' . (!empty($fk_product) ? '&fk_product=' . $fk_product : '') . '">' . $langs->trans('CreateOFAsset') . '</a>'; if ($conf->nomenclature->enabled && !empty($fk_product)) { dol_include_once('/core/class/html.form.class.php'); dol_include_once('/asset/lib/asset.lib.php'); dol_include_once('/nomenclature/class/nomenclature.class.php'); $doliForm = new Form($db); echo $doliForm->selectarray('fk_nomenclature', TNomenclature::get($PDOdb, $fk_product, true)); echo '<script type="text/javascript"> var url_create_of = $("#bt_createOf").attr("href"); $("#bt_createOf").attr("href","#"); $("#bt_createOf").click(function() { var fk_nomenclature = $("select[name=fk_nomenclature]").val(); var href = url_create_of + "&fk_nomenclature=" + fk_nomenclature; $(this).attr("href", href); }); </script>'; } echo '</div>'; } $PDOdb->close(); llxFooter(''); }
function fiche(&$PDOdb, &$expedition, &$TImport) { global $langs, $db; llxHeader(); $head = shipping_prepare_head($expedition); $title = $langs->trans("Shipment"); dol_fiche_head($head, 'dispatch', $title, 0, 'dispatch'); enteteexpedition($expedition); echo '<br>'; if ($expedition->statut == 0) { //Form pour import de fichier if ($conf->global->DISPATCH_USE_IMPORT_FILE) { $form = new TFormCore('auto', 'formimport', 'post', true); echo $form->hidden('action', 'SAVE'); echo $form->hidden('id', $expedition->id); echo $form->fichier('Fichier à importer', 'file1', '', 80); echo $form->btsubmit('Envoyer', 'btsend'); $form->end(); } ?> <script> $(document).ready(function() { $('#lot_number').change(function() { var lot_number = $(this).val(); $.ajax({ url: 'script/interface.php', method: 'GET', data: { lot_number: lot_number, productid: $('#lineexpeditionid').find(':selected').attr('fk-product'), type:'get', get:'autocomplete_asset' } }).done(function(results) { var json_results = $.parseJSON(results); $('#numserie option').remove(); cpt = 0; $.each(json_results, function(index) { var obj = json_results[index]; cpt ++; $('#numserie').append($('<option>', { value: obj.serial_number, text: obj.serial_number + ' - ' + obj.qty + ' ' +obj.unite_string })); $('#quantity').val(obj.qty); if(obj.unite != 'unité(s)'){ $('#quantity_unit').show(); $('#units_lable').remove(); $('#quantity_unit option[value='+obj.unite+']').attr("selected","selected"); } else{ $('#quantity_unit').hide(); $('#quantity_unit option[value=0]').attr("selected","selected"); $('#quantity').after('<span id="units_lable"> unité(s)</span>'); } }); }); }); $('#lineexpeditionid').change(function() { var productid = $(this).find(':selected').attr('fk-product'); $.ajax({ url: 'script/interface.php', method: 'GET', data: { productid: productid, type:'get', get:'autocomplete_lot_number' } }).done(function(results) { var json_results = $.parseJSON(results); $('#lot_number option').remove(); $.each(json_results, function(index) { var obj = json_results[index]; $('#lot_number').append($('<option>', { value: obj.lot_number, text: obj.label })); }); }); }); }); </script> <?php //Form pour ajouter un équipement directement $DoliForm = new FormProduct($db); $form = new TFormCore('auto', 'formaddasset', 'post', true); echo $form->hidden('action', 'edit'); echo $form->hidden('mode', 'addasset'); echo $form->hidden('id', $expedition->id); $TLotNumber = array(' -- aucun produit sélectionné -- '); /*$sql = "SELECT DISTINCT(lot_number),rowid, SUM(contenancereel_value) as qty, contenancereel_units as unit FROM ".MAIN_DB_PREFIX."asset GROUP BY lot_number ORDER BY lot_number ASC"; $PDOdb->Execute($sql); $Tres = $PDOdb->Get_All(); foreach($Tres as $res){ $asset = new TAsset; $asset->load($PDOdb, $res->rowid); $asset->load_asset_type($PDOdb); //pre($asset,true);exit; $TLotNumber[$res->lot_number] = $res->lot_number." / ".$res->qty." ".(($asset->assetType->measuring_units == 'unit') ? 'unité(s)' : measuring_units_string($res->unit,$asset->assetType->measuring_units)); } */ $TSerialNumber = array(' -- aucun lot sélectionné -- '); /*$sql = "SELECT DISTINCT(serial_number),contenancereel_value, contenancereel_units FROM ".MAIN_DB_PREFIX."asset ORDER BY serial_number ASC"; $PDOdb->Execute($sql); while ($PDOdb->Get_line()) { $TSerialNumber[$PDOdb->Get_field('serial_number')] = $PDOdb->Get_field('serial_number').' / '.$PDOdb->Get_field('contenancereel_value')." ".measuring_units_string($PDOdb->Get_field('contenancereel_units'),'weight'); } */ echo 'Produit expédié<select id="lineexpeditionid" name="lineexpeditionid"><option value=""></option>'; $TProduct = array(''); $sql = "SELECT DISTINCT(ed.rowid),p.rowid as fk_product,p.ref,p.label ,ed.qty\n\t\t\t\tFROM " . MAIN_DB_PREFIX . "product as p\n\t\t\t\t\tLEFT JOIN " . MAIN_DB_PREFIX . "commandedet as cd ON (cd.fk_product = p.rowid)\n\t\t\t\t\tLEFT JOIN " . MAIN_DB_PREFIX . "expeditiondet as ed ON (ed.fk_origin_line = cd.rowid)\n\t\t\t\tWHERE ed.fk_expedition = " . $expedition->id . ""; $PDOdb->Execute($sql); while ($obj = $PDOdb->Get_line()) { //$TProduct[$PDOdb->Get_field('rowid')] = $PDOdb->Get_field('ref').' - '.$PDOdb->Get_field('label'); echo '<option value="' . $obj->rowid . '" fk-product="' . $obj->fk_product . '">' . $obj->ref . ' - ' . $obj->label . ' x ' . $obj->qty . '</option>'; } echo '</select><br />'; //echo $form->combo('Produit expédié', 'lineexpeditionid', $TProduct, '').'<br>'; echo $form->combo('Numéro de Lot', 'lot_number', $TLotNumber, '') . '<br>'; echo $form->combo('Numéro de série à ajouter', 'numserie', $TSerialNumber, '') . '<br>'; echo $form->texte('Quantité', 'quantity', '', 10) . " " . $DoliForm->load_measuring_units('quantity_unit" id="quantity_unit', 'weight'); echo $form->btsubmit('Ajouter', 'btaddasset'); $form->end(); echo '<br>'; } tabImport($TImport, $expedition); llxFooter(); }
$TData[$row->fk_soc][$TMonth[(int) $row->month]] = (double) $row->total; $TData[$row->fk_soc]['total'] += (double) $row->total; } _get_company_object($TData); //usort($TData, '_sort_company'); ?> <style type="text/css"> *[field=total],tr.liste_total td { font-weight: bold; } </style> <?php $formCore = new TFormCore('auto', 'form2', 'get'); $headsearch = $formCore->hidden('mode', $mode); $headsearch .= $formCore->combo($langs->trans('Year'), 'year', $TYear, $year); $headsearch .= $formCore->btsubmit($langs->trans('Ok'), 'bt_ok'); $listeview = new TListviewTBS('CAClientMonth'); print $listeview->renderArray($PDOdb, $TData, array('liste' => array('titre' => $langs->transnoentitiesnoconv('CAClientMonth'), 'head_search' => $headsearch), 'type' => $ColFormat, 'title' => array('client' => $langs->transnoentitiesnoconv('Company'), 'total' => $langs->transnoentitiesnoconv('Total'), 'year' => $langs->transnoentitiesnoconv('Year')), 'math' => $ColTotal, 'export' => array('CSV'))); $formCore->end(); dol_fiche_end(); llxFooter(); function _sort_company(&$a, &$b) { $r = strcasecmp($a->name, $b->name); return empty($r) ? 0 : $r / abs($r); } function _get_company_object(&$TRender) { global $db, $conf, $langs, $user; dol_include_once('/societe/class/societe.class.php'); foreach ($TRender as $fk_soc => &$line) {
function _fiche(&$PDOdb, &$hero, $action = 'view') { global $db; // création du template $form = new TFormCore($_SERVER['PHP_SELF'], 'form', 'POST'); //affiche un formulaire qui définit les actions print $form->hidden('action', 'save'); print $form->hidden('id', $hero->getId()); //définit le type d'action du formulaire en fonction de la variable $action récupérée par le GETPOST $form->Set_typeaff($action); //instanciationb de l'objet template $TBS = new TTemplateTBS(); $buttons = ''; //si l'action passée en paramètre est à view : //on affiche les boutons modifier et supprimer if ($action == 'view') { //si l'id du héro est égal à 1 : //on ne peut qu'ajouter un héro (on ne peut pas supprimer un héro inexistant) if ($hero->getId() > 0) { $buttons .= "<input type=\"button\" id=\"action-delete\" value=\"Supprimer\" name=\"cancel\" class=\"butActionDelete\" onclick=\"if(confirm('Supprimer ce hero ?'))document.location.href='?action=delete&id=" . $hero->rowid . "'\" />"; } $buttons .= '<a class="butAction" href="?action=edit&id=' . $hero->getId() . '">Modifier</a>'; } else { $buttons .= $form->btsubmit('Valider', 'save'); } /*$btSave = $form->btsubmit('Valider', 'save'); $btCancel = $form->btsubmit('Annuler', 'cancel'); $btDelete = ; */ $THero = $hero->get_tab(); //création de la zone de texte (tirée du template) qui permet d'ajouter le ,nom du héro $THero['name'] = $form->texte('', 'name', $hero->name, 30, 255); //création de la zone de texte (tirée du template) qui permet d'ajouter la description $THero['description'] = $form->zonetexte('', 'description', $hero->description, 80, 5); //récupération des pouvoirs dans TPower (tableau de pouvoirs) $TPower = $hero->getPower(); $THero['powers'] = ''; if (empty($TPower) && $action == 'view') { $THero['powers'] .= 'pas de chocolat'; } else { foreach ($TPower as $idp => $pName) { if (!empty($THero['powers'])) { $THero['powers'] .= ', '; } $THero['powers'] .= $pName; if ($action == 'edit') { $THero['powers'] .= ' <a href="?action=delete-power&id=' . $hero->getId() . '&idPower=' . $idp . '">X</a>'; } } } if ($action == 'edit') { $THero['powers'] .= $form->texte(' - Nouveau pouvoir', 'power', '', 30); } print $TBS->render('./tpl/hero.tpl.php', array(), array('hero' => $THero, 'view' => array('mode' => $mode), 'buttons' => array('buttons' => $buttons))); $form->end_form(); }
function liste() { global $langs, $conf, $user; $PDOdb = new TPDOdb(); llxHeader('', 'Query', '', '', 0, 0, array(), array('/query/css/query.css')); dol_fiche_head(); $sql = "SELECT rowid as 'Id', type,nb_result_max, title,expert,0 as 'delete' \n\tFROM " . MAIN_DB_PREFIX . "query\n\tWHERE 1\n\t "; $formCore = new TFormCore('auto', 'formQ', 'get'); $r = new TListviewTBS('lQuery'); echo $r->render($PDOdb, $sql, array('link' => array('Id' => '<a href="?action=view&id=@val@">' . img_picto('Edit', 'edit.png') . ' @val@</a>', 'title' => '<a href="?action=run&id=@Id@">' . img_picto('Run', 'object_cron.png') . ' @val@</a>', 'delete' => '<a href="?action=delete&id=@Id@" onclick="return(confirm(\'' . $langs->trans('ConfirmDeleteMessage') . '\'));">' . img_picto('Delete', 'delete.png') . '</a>'), 'orderBy' => array('title' => 'ASC'), 'hide' => array('type', 'nb_result_max'), 'title' => array('title' => $langs->trans('Title'), 'expert' => $langs->trans('Expert'), 'delete' => $langs->trans('Delete')), 'translate' => array('expert' => array(0 => $langs->trans('No'), 1 => $langs->trans('Yes'), 2 => $langs->trans('Free'))), 'search' => array('title' => true))); $formCore->end(); $formCore = new TFormCore('auto', 'formUPQ', 'post', true); echo $formCore->hidden('action', 'up_query'); echo $formCore->fichier($langs->trans('QueryToUpload'), 'query_to_upload', '', 10) . ' ' . $formCore->btsubmit($langs->trans('UploadQuery'), 'bt_upquery'); $formCore->end(); dol_fiche_end(); llxFooter(); }
function _fiche(&$PDOdb, &$dispatch) { global $db, $conf, $langs; llxHeader(); $form = new TFormCore('auto', 'asset', 'post'); echo $form->hidden('action', 'save'); echo $form->hidden('id', $dispatch->fk_object); echo $form->hidden('type_object', $dispatch->type_object); $object = _header($dispatch->fk_object, $dispatch->type_object); $pListe[0] = "Sélectionnez une ligne"; foreach ($object->lines as $k => &$line) { $label = !empty($line->label) ? $line->label : $line->libelle; if (empty($label) && !empty($line->desc)) { $label = $line->desc; } $pListe[$line->id] = $k + 1 . '/ ' . $label; } print count($dispatch->TDispatchAsset) . ' équipement(s) lié(s)<br />'; ?> <table width="100%" class="border"> <tr class="liste_titre"> <?php if (GETPOST('type_object') !== 'ticketsup') { print '<td>Ligne concernée</td>'; } ?> <td>Equipement</td> <?php if (!empty($conf->global->USE_LOT_IN_OF)) { ?> <td>Numéro de Lot</td><?php } print '<td>DLUO</td>'; ?> <?php if ($conf->global->clinomadic->enabled) { ?> <td>IMEI</td> <td>Firmware</td> <?php } ?> <td> </td> </tr> <?php foreach ($dispatch->TDispatchAsset as $k => &$da) { if ($da->to_delete) { continue; } $class = $class == 'pair' ? 'impair' : 'pair'; ?> <tr class="<?php echo $class; ?> "> <?php if (GETPOST('type_object') !== 'ticketsup') { echo '<td>' . $pListe[$da->fk_object] . '</td>'; } ?> <td><?php echo $da->asset->getNomUrl(1, 0, 1); ?> </td> <td><?php echo $da->asset->lot_number; ?> </td> <?php if (!empty($conf->global->USE_LOT_IN_OF)) { ?> <td><?php echo $da->asset->dluo ? dol_print_date($da->asset->dluo) : 'N/A'; ?> </td><?php } ?> <?php if ($conf->global->clinomadic->enabled) { ?> <td>IMEI</td> <td>Firmware</td> <?php } ?> <td><?php if ($object->statut == 0 || $type_object == 'contrat') { echo '<a href="?action=delete-line&k=' . $k . '&id=' . $object->id . '&type_object=' . $dispatch->type_object . '">' . img_delete() . '</a>'; } ?> </td> </tr> <?php } $formproduct = new FormProduct($db); if ($object->statut == 0 || $type_object == 'contrat') { ?> <tr style="background-color: lightblue;"> <?php if (GETPOST('type_object') !== 'ticketsup') { echo '<td>' . $form->combo('', 'TLine[-1][fk_object]', $pListe, '') . '</td>'; } ?> <td><?php echo $form->texte('', 'TLine[-1][serial_number]', '', 30); ?> </td> <?php if (!empty($conf->global->USE_LOT_IN_OF)) { ?> <td> </td><?php } ?> <td> </td> <?php if ($conf->global->clinomadic->enabled) { ?> <td> </td> <td> </td> <?php } ?> <td>Nouveau </td> </tr><?php } ?> </table> <script type="text/javascript"> $(document).ready(function() { $( "input[name='TLine[-1][serial_number]']" ).autocomplete({ source: "<?php echo dol_buildpath('/dispatch/script/interface.php', 1); ?> ?get=serial_number", minLength: 1, select: function( event, ui ) { } }); }); </script> <?php echo $form->btsubmit($langs->trans('Save'), 'bt_new'); dol_fiche_end(); $form->end(); llxFooter(); }
function fiche(&$commande, &$TImport) { global $langs, $db, $conf; llxHeader(); $head = ordersupplier_prepare_head($commande); $title = $langs->trans("SupplierOrder"); dol_fiche_head($head, 'recepasset', $title, 0, 'order'); entetecmd($commande); $form = new TFormCore('auto', 'formrecept', 'post', true); echo $form->hidden('action', 'SAVE'); echo $form->hidden('id', $commande->id); if ($commande->statut < 5 && $conf->global->DISPATCH_USE_IMPORT_FILE) { echo $form->fichier('Fichier à importer', 'file1', '', 80); echo $form->btsubmit('Envoyer', 'btsend'); } tabImport($TImport, $commande); $form->end(); _list_already_dispatched($commande); llxFooter(); }
function fiche(&$remise, $type, $mode) { global $conf, $langs, $db; $page_name = "RemiseSetup"; llxHeader('', $langs->trans($page_name)); $linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>'; print_fiche_titre($langs->trans($page_name), $linkback); // Configuration header $head = remiseAdminPrepareHead(); dol_fiche_head($head, $type, $page_name, 0, "remise@remise"); $form = new TFormCore('auto', 'form1', 'post'); $form->Set_typeaff($mode); echo $form->hidden('type', $type); echo $form->hidden('id', $remise->getId()); echo $form->hidden('action', 'save'); $f = new Form($db); ?> <table class="border" width="100%"> <tr> <td width="20%"><?php echo $langs->trans('Palier'); ?> </td><td><?php echo $form->texte('', 'palier', $remise->palier, 10, 255); ?> </td> </tr> <tr> <td><?php echo $langs->trans('Remise'); ?> </td><td><?php echo $form->texte('', 'remise', $remise->remise, 10, 255); ?> </td> </tr> <tr> <td><?php echo $langs->trans('Zip'); ?> </td><td><?php echo $form->texte('', 'zip', $remise->zip, 5, 255); ?> </td> </tr> <tr> <td><?php echo $langs->trans('ShipmentMode'); ?> </td><td> <?php if ((double) DOL_VERSION >= 3.7) { $f->selectShippingMethod($remise->fk_shipment_mode, 'fk_shipment_mode', '', 1); } else { $query = "SELECT rowid, code, libelle"; $query .= " FROM " . MAIN_DB_PREFIX . "c_shipment_mode"; $query .= " WHERE active = 1"; $query .= " ORDER BY libelle ASC"; $resql = $db->query($query); print '<select id="fk_shipment_mode" class="flat selectshippingmethod" name="fk_shipment_mode"' . ($moreattrib ? ' ' . $moreattrib : '') . '>'; print '<option value="">'; print '</option>'; while ($res = $db->fetch_object($resql)) { $selected = ''; if ($remise->fk_shipment_mode == $res->rowid) { $selected = 'selected="selected"'; } print '<option value="' . $res->rowid . '" ' . $selected . '>'; print $langs->trans("SendingMethod" . strtoupper($res->code)); print '</option>'; } print '</select>'; } ?> </td> </tr> </table> <div class="tabsAction"> <?php echo $form->btsubmit($langs->trans('Save'), 'bt_save'); echo $form->btsubmit($langs->trans('Cancel'), 'bt_cancel', '', 'butAction butActionCancel'); ?> </div> <?php $form->end(); dol_fiche_end(); llxFooter(); }
} } } $page_name = "RemiseImport"; llxHeader('', $langs->trans($page_name)); // Subheader $linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>'; print_fiche_titre($langs->trans($page_name), $linkback); // Configuration header $head = remiseAdminPrepareHead(); dol_fiche_head($head, 'import', $langs->trans("Module104921Name"), 0, "remise@remise"); $form = new TFormCore('auto', 'formImport', 'post', true); echo $form->hidden('action', 'import'); print_titre('Etape 1'); echo $form->fichier('Fichier à importer', 'f1', '', 50); echo $form->btsubmit('Prévisualiser', 'bt_preview'); ?> <br /><small>(Colonnes : n° département,poids,palier,montant - séparateur : ';')</small> <?php if ($etape > 1) { print_titre('Etape 2'); echo $form->zonetexte('', 'data', serialize($TData), 80, 5, ' style="display:none;" '); ?> <table class="liste"> <tr class="liste_titre"> <td>Département</td> <td>Poids</td> <td>ou Palier</td> <td>Montant</td> </tr>
ob_start(); $form->select_comptes($factor->fk_bank_account, 'TFactor[' . $factor->getId() . '][fk_bank_account]'); $selectBank = ob_get_clean(); echo '<td>' . $form->select_thirdparty_list($factor->fk_soc, 'TFactor[' . $factor->getId() . '][fk_soc]', 'fournisseur=1') . '<br />' . $selectBank . '</td>'; // supplier if (!empty($conf->fckeditor->enabled)) { $editor = new DolEditor('TFactor[' . $factor->getId() . '][mention]', $factor->mention, '', 200); echo '<td>' . $editor->Create(1) . '<td>'; } else { echo '<td>' . $formCore->zonetexte('', 'TFactor[' . $factor->getId() . '][mention]', $factor->mention, 80, 5) . '</td>'; } echo '<td><a href="?action=delete_factor&id=' . $factor->getId() . '">' . img_delete($langs->trans('Delete')) . '</a></td>'; print '</tr>'; } print '</table><div class="tabsAction">'; echo $formCore->btsubmit($langs->trans('Add'), 'bt_add', '', 'butAction'); echo $formCore->btsubmit($langs->trans('Save'), 'bt_save', '', 'butAction'); echo '</div>'; $formCore->end(); // Setup page goes here $var = false; print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; print '<td>' . $langs->trans("Parameters") . '</td>' . "\n"; print '<td align="center" width="20"> </td>'; print '<td align="center" width="100">' . $langs->trans("Value") . '</td>' . "\n"; // Example with a yes / no select $var = !$var; print '<tr ' . $bc[$var] . '>'; print '<td>' . $langs->trans("setFACTOR_LIMIT_DEPOT") . '</td>'; print '<td align="center" width="20"> </td>';