コード例 #1
0
 function display($p_array)
 {
     require_once NOALYSS_INCLUDE . '/class_acc_ledger_purchase.php';
     global $g_parameter, $g_user;
     extract($p_array);
     $ledger = new Acc_Ledger_Purchase($this->db, $this->jrn_def_id);
     if ($p_array != null) {
         extract($p_array);
     }
     $flag_tva = $g_parameter->MY_TVA_USE;
     /* Add button */
     $f_add_button = new IButton('add_card');
     $f_add_button->label = _('Créer une nouvelle fiche');
     $f_add_button->tabindex = -1;
     $f_add_button->set_attribute('ipopup', 'ipop_newcard');
     $f_add_button->set_attribute('jrn', $this->jrn_def_id);
     $f_add_button->javascript = " this.jrn=\$('p_jrn').value;select_card_type(this);";
     $f_add_button2 = new IButton('add_card2');
     $f_add_button2->tabindex = -1;
     $f_add_button2->label = _('Créer une nouvelle fiche');
     $f_add_button2->set_attribute('ipopup', 'ipop_newcard');
     $f_add_button2->set_attribute('filter', $ledger->get_all_fiche_def());
     //    $f_add_button2->set_attribute('jrn',$ledger->id);
     $f_add_button2->javascript = "  this.jrn=\$('p_jrn').value;select_card_type(this);";
     $str_add_button = "";
     $str_add_button2 = "";
     if ($g_user->check_action(FICADD) == 1) {
         $str_add_button = $f_add_button->input();
         $str_add_button2 = $f_add_button2->input();
     }
     $r = "";
     $r .= dossier::hidden();
     $f_legend = _("En-tête facture fournisseur");
     $f_legend_detail = _("Détail articles acheté");
     // Ledger (p_jrn)
     //--
     /* if we suggest the next pj, then we need a javascript */
     $add_js = "";
     // Display the customer
     //--
     $fiche = 'cred';
     // Save old value and set a new one
     //--
     $e_client = isset($e_client) ? $e_client : "";
     $e_client_label = " ";
     //str_pad("",100,".");
     // retrieve e_client_label
     //--
     if (strlen(trim($e_client)) != 0) {
         $fClient = new Fiche($ledger->db);
         $fClient->get_by_qcode($e_client);
         $e_client_label = $fClient->strAttribut(ATTR_DEF_NAME) . ' ' . ' Adresse : ' . $fClient->strAttribut(ATTR_DEF_ADRESS) . ' ' . $fClient->strAttribut(ATTR_DEF_CP) . ' ' . $fClient->strAttribut(ATTR_DEF_CITY) . ' ';
     }
     $W1 = new ICard();
     $W1->label = _("Fournisseur ") . HtmlInput::infobulle(0);
     $W1->name = "e_client";
     $W1->tabindex = 3;
     $W1->value = $e_client;
     $W1->table = 0;
     $W1->set_dblclick("fill_ipopcard(this);");
     $W1->set_attribute('ipopup', 'ipopcard');
     // name of the field to update with the name of the card
     $W1->set_attribute('label', 'e_client_label');
     // name of the field to update with the name of the card
     $W1->set_attribute('typecard', 'cred');
     // Add the callback function to filter the card on the jrn
     $W1->set_callback('filter_card');
     $W1->set_function('fill_data');
     $W1->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $W1->name);
     $f_client_qcode = $W1->input();
     $client_label = new ISpan();
     $client_label->table = 0;
     $f_client = $client_label->input("e_client_label", $e_client_label);
     $f_client_bt = $W1->search();
     // Record the current number of article
     $min = $ledger->get_min_row();
     $p_article = isset($nb_item) ? $nb_item : $min;
     $max = $p_article < $min ? $min : $p_article;
     $e_comment = isset($e_comment) ? $e_comment : "";
     $Hid = new IHidden();
     $r .= $Hid->input("nb_item", $p_article);
     // For each article
     //--
     for ($i = 0; $i < $max; $i++) {
         // Code id, price & vat code
         //--
         $march = isset(${"e_march{$i}"}) ? ${"e_march{$i}"} : "";
         $march_price = isset(${"e_march" . $i . "_price"}) ? ${"e_march" . $i . "_price"} : "";
         /* use vat */
         if ($g_parameter->MY_TVA_USE == 'Y') {
             $march_tva_id = isset(${"e_march{$i}" . "_tva_id"}) ? ${"e_march{$i}" . "_tva_id"} : "";
             $march_tva_amount = isset(${"e_march{$i}" . "_tva_amount"}) ? ${"e_march{$i}" . "_tva_amount"} : "";
         }
         $march_label = isset(${"e_march" . $i . "_label"}) ? ${"e_march" . $i . "_label"} : "";
         // retrieve the tva label and name
         //--
         if (strlen(trim($march)) != 0 && strlen(trim($march_label)) == 0) {
             $fMarch = new Fiche($ledger->db);
             $fMarch->get_by_qcode($march);
             $march_label = $fMarch->strAttribut(ATTR_DEF_NAME);
             /* vat use */
             if (!isset($march_tva_id) && $g_parameter->MY_TVA_USE == 'Y') {
                 $march_tva_id = $fMarch->strAttribut(ATTR_DEF_TVA);
             }
         }
         // Show input
         //--
         $W1 = new ICard();
         $W1->label = "";
         $W1->name = "e_march" . $i;
         $W1->value = $march;
         $W1->table = 1;
         $W1->set_dblclick("fill_ipopcard(this);");
         $W1->set_attribute('ipopup', 'ipopcard');
         $W1->set_attribute('typecard', 'deb');
         // name of the field to update with the name of the card
         $W1->set_attribute('label', 'e_march' . $i . '_label');
         // name of the field with the price
         $W1->set_attribute('purchase', 'e_march' . $i . '_price');
         /* autocomplete */
         $W1->set_attribute('price', 'e_march' . $i . '_price');
         /* via search */
         // name of the field with the TVA_ID
         $W1->set_attribute('tvaid', 'e_march' . $i . '_tva_id');
         // Add the callback function to filter the card on the jrn
         $W1->set_callback('filter_card');
         $W1->set_function('fill_data');
         $W1->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $W1->name);
         $W1->readonly = false;
         $array[$i]['quick_code'] = $W1->input();
         $array[$i]['bt'] = $W1->search();
         $array[$i]['hidden'] = '';
         // For computing we need some hidden field for holding the value
         if ($g_parameter->MY_TVA_USE == 'Y') {
             $array[$i]['hidden'] .= HtmlInput::hidden('tva_march' . $i, 0);
         }
         if ($g_parameter->MY_TVA_USE == 'Y') {
             $tvac = new INum('tvac_march' . $i);
         } else {
             $tvac = new IHidden('tvac_march' . $i);
         }
         $tvac->readOnly = 1;
         $tvac->value = 0;
         $array[$i]['tvac'] = $tvac->input();
         $htva = new INum('htva_march' . $i);
         $htva->readOnly = 1;
         $htva->value = 0;
         $array[$i]['htva'] = $htva->input();
         if ($g_parameter->MY_UPDLAB == 'Y') {
             $Span = new IText("e_march" . $i . "_label");
             $Span->css_size = "100%";
         } else {
             $Span = new ISpan("e_march" . $i . "_label");
         }
         $Span->value = $march_label;
         $Span->setReadOnly(false);
         // card's name, price
         //--
         $array[$i]['denom'] = $Span->input("e_march" . $i . "_label", $march_label);
         // price
         $Price = new INum();
         $Price->setReadOnly(false);
         $Price->size = 9;
         $Price->javascript = "onBlur='format_number(this);clean_tva({$i});compute_ledger({$i})'";
         $array[$i]['pu'] = $Price->input("e_march" . $i . "_price", $march_price);
         if ($g_parameter->MY_TVA_USE == 'Y') {
             // vat label
             //--
             $Tva = new ITva_Popup($ledger->db);
             $Tva->js = "onblur=\"format_number(this);onChange=clean_tva({$i});compute_ledger({$i})\"";
             $Tva->in_table = true;
             $Tva->set_attribute('compute', $i);
             $Tva->value = $march_tva_id;
             $array[$i]['tva'] = $Tva->input("e_march{$i}" . "_tva_id");
             // Tva_amount
             // price
             $Tva_amount = new INum();
             $Tva_amount->setReadOnly(false);
             $Tva_amount->size = 9;
             $Tva_amount->javascript = "onBlur='format_number(this);compute_ledger({$i})'";
             $array[$i]['amount_tva'] = $Tva_amount->input("e_march" . $i . "_tva_amount", $march_tva_amount);
         }
         // quantity
         //--
         $quant = isset(${"e_quant{$i}"}) ? ${"e_quant{$i}"} : "1";
         $Quantity = new INum();
         $Quantity->setReadOnly(false);
         $Quantity->size = 9;
         $Quantity->javascript = "onChange=format_number(this);clean_tva({$i});compute_ledger({$i})";
         $array[$i]['quantity'] = $Quantity->input("e_quant" . $i, $quant);
     }
     $f_type = _('Fournisseur');
     ob_start();
     require_once NOALYSS_INCLUDE . '/template/predf_ledger_detail.php';
     $r .= ob_get_contents();
     ob_end_clean();
     // Set correctly the REQUEST param for jrn_type
     $r .= HtmlInput::hidden('jrn_type', 'ACH');
     $r .= HtmlInput::button('add_item', _('Ajout article'), ' onClick="ledger_add_row()"');
     return $r;
 }
コード例 #2
0
 /**
  * \brief Display the object, the tags for the FORM
  *        are in the caller. It will be used for adding and updating
  *        action
  * \note  If  ag_id is not equal to zero then it is an update otherwise
  *        it is a new document
  *
  * \param $p_view form will be in readonly mode (value: READ, UPD or NEW  )
  * \param $p_gen true we show the tag for generating a doc (value : true or false) and adding files
  * \param $p_base is the ac parameter
  * \param $retour is the html code for the return button
  * \note  update the reference number or the document type is not allowed
  *
  *
  * \return string containing the html code
  */
 function Display($p_view, $p_gen, $p_base, $retour = "")
 {
     global $g_user;
     if ($p_view == 'UPD') {
         $upd = true;
         $readonly = false;
     } elseif ($p_view == "NEW") {
         $upd = false;
         $readonly = false;
         $this->ag_ref = _("Nouveau");
     } elseif ($p_view == 'READ') {
         $upd = true;
         $readonly = true;
     } else {
         throw new Exception('class_action' . __LINE__ . 'Follow_Up::Display error unknown parameter' . $p_view);
     }
     // Compute the widget
     // Date
     $date = new IDate();
     $date->readOnly = $readonly;
     $date->name = "ag_timestamp";
     $date->id = "ag_timestamp";
     $date->value = $this->ag_timestamp;
     $remind_date = new IDate();
     $remind_date->readOnly = $readonly;
     $remind_date->name = "ag_remind_date";
     $remind_date->id = "ag_remind_date";
     $remind_date->value = $this->ag_remind_date;
     // Doc Type
     $doc_type = new ISelect();
     $doc_type->name = "dt_id";
     $doc_type->value = $this->db->make_array("select dt_id,dt_value from document_type order by dt_value", 1);
     $doc_type->selected = $this->dt_id;
     $doc_type->readOnly = $readonly;
     $str_doc_type = $doc_type->input();
     // Description
     $desc = new ITextArea();
     $desc->style = ' class="itextarea" style="width:80%;margin-left:0px"';
     $desc->name = "ag_comment";
     $desc->readOnly = $readonly;
     $acomment = $this->db->get_array("SELECT agc_id, ag_id, to_char(agc_date,'DD.MM.YYYY HH24:MI') as str_agc_date, agc_comment, tech_user\n\t\t\t\t FROM action_gestion_comment where ag_id=\$1 order by agc_id;", array($this->ag_id));
     // List opération liées
     $operation = $this->db->get_array("select ago_id,j.jr_id,j.jr_internal,j.jr_comment,to_char(j.jr_date,'DD.MM.YY') as str_date\n\t\t\tfrom jrn as j join action_gestion_operation as ago on (j.jr_id=ago.jr_id)\n\t\t\twhere ag_id=\$1 order by jr_date", array($this->ag_id));
     $iconcerned = new IConcerned('operation');
     // List related action
     $action = $this->db->get_array("\n\t\t\tselect ag_id,ag_ref,substr(ag_title,1,40) as sub_title,to_char(ag_timestamp,'DD.MM.YY') as str_date ,\n\t\t\t\tag_timestamp,dt_value\n\t\t\t\t\tfrom action_gestion\n\t\t\t\t\t join document_type on (ag_type=dt_id)\n\t\t\t\twhere\n\t\t\t\tag_id in (select aga_greatest from action_gestion_related where aga_least =\$1)\n\t\t\t\tor\n\t\t\t\tag_id in (select aga_least from action_gestion_related where aga_greatest =\$1)\n\t\t\t\torder by ag_timestamp", array($this->ag_id));
     $iaction = new IRelated_Action('action');
     $iaction->value = isset($this->action) ? $this->action : "";
     // state
     // Retrieve the value
     $a = $this->db->make_array("select s_id,s_value from document_state ");
     $state = new ISelect();
     $state->readOnly = $readonly;
     $state->name = "ag_state";
     $state->value = $a;
     $state->selected = $this->ag_state;
     $str_state = $state->input();
     // Retrieve the value if there is an attached doc
     $doc_ref = "";
     // Document id
     $h2 = new IHidden();
     $h2->name = "d_id";
     $h2->value = $this->d_id;
     if ($this->d_id != 0 && $this->d_id != "") {
         $h2->readonly = $p_view == 'NEW' ? false : true;
         $doc = new Document($this->db, $this->d_id);
         $doc->get();
         if (strlen(trim($doc->d_lob)) != 0) {
             $d_id = new IHidden();
             $doc_ref = "<p> Document " . $doc->anchor() . '</p>';
             $doc_ref .= $h2->input() . $d_id->input('d_id', $this->d_id);
         }
     }
     // title
     $title = new IText();
     $title->readOnly = $readonly;
     $title->name = "ag_title";
     $title->value = $this->ag_title;
     $title->size = 60;
     // Priority of the ag_priority
     $ag_priority = new ISelect();
     $ag_priority->readOnly = $readonly;
     $ag_priority->name = "ag_priority";
     $ag_priority->selected = $this->ag_priority;
     $ag_priority->value = array(array('value' => 1, 'label' => 'Haute'), array('value' => 2, 'label' => 'Moyenne'), array('value' => 3, 'label' => 'Basse'));
     $str_ag_priority = $ag_priority->input();
     // hour of the action (meeting) ag_hour
     $ag_hour = new IText();
     $ag_hour->readOnly = $readonly;
     $ag_hour->name = "ag_hour";
     $ag_hour->value = $this->ag_hour;
     $ag_hour->size = 6;
     $ag_hour->javascript = " onblur=check_hour('ag_hour');";
     $str_ag_hour = $ag_hour->input();
     // Profile in charged of the action
     $ag_dest = new ISelect();
     $ag_dest->readOnly = $readonly;
     $ag_dest->name = "ag_dest";
     // select profile
     $aAg_dest = $this->db->make_array("select  p_id as value, " . "p_name as label " . " from profile  where p_id in (select p_granted from user_sec_action_profile where ua_right='W' and p_id=" . $g_user->get_profile() . ") order by 2");
     $ag_dest->value = $aAg_dest;
     $ag_dest->selected = $this->ag_dest;
     $str_ag_dest = $ag_dest->input();
     // ag_ref
     // Always false for update
     $client_label = new ISpan();
     /* Add button */
     $f_add_button = new IButton('add_card');
     $f_add_button->label = _('Créer une nouvelle fiche');
     $f_add_button->set_attribute('ipopup', 'ipop_newcard');
     $filter = $this->db->make_list('select fd_id from fiche_def ');
     $f_add_button->set_attribute('filter', $filter);
     $f_add_button->javascript = " select_card_type(this);";
     $str_add_button = $f_add_button->input();
     // f_id_dest sender
     if ($this->qcode_dest != NOTFOUND && strlen(trim($this->qcode_dest)) != 0) {
         $tiers = new Fiche($this->db);
         $tiers->get_by_qcode($this->qcode_dest);
         $qcode_dest_label = $tiers->strAttribut(1);
         $this->f_id_dest = $tiers->id;
     } else {
         $qcode_dest_label = $this->f_id_dest == 0 || trim($this->qcode_dest) == "" ? 'Interne ' : 'Error';
     }
     $h_ag_id = new IHidden();
     // if concerns another action : show the link otherwise nothing
     //
     // sender
     $w = new ICard();
     $w->readOnly = $readonly;
     $w->jrn = 0;
     $w->name = 'qcode_dest';
     $w->value = $this->f_id_dest != 0 ? $this->qcode_dest : "";
     $w->label = "";
     $list_recipient = $this->db->make_list('select fd_id from fiche_def where frd_id in (14,25,8,9,16)');
     $w->extra = $list_recipient;
     $w->set_attribute('typecard', $list_recipient);
     $w->set_dblclick("fill_ipopcard(this);");
     $w->set_attribute('ipopup', 'ipopcard');
     // name of the field to update with the name of the card
     $w->set_attribute('label', 'qcode_dest_label');
     // name of the field to update with the name of the card
     $w->set_attribute('typecard', $w->extra);
     $w->set_function('fill_data');
     $w->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $w->name);
     $sp = new ISpan();
     $sp->name = 'qcode_dest_label';
     $sp->value = $qcode_dest_label;
     // autre - a refaire pour avoir plusieurs fiches
     // Sur le modèle des tags
     $ag_contact = new ICard();
     $ag_contact->readOnly = $readonly;
     $ag_contact->jrn = 0;
     $ag_contact->name = 'ag_contact';
     $ag_contact->value = '';
     $ag_contact->set_attribute('ipopup', 'ipopcard');
     if ($this->ag_contact != 0) {
         $contact = new Fiche($this->db, $this->ag_contact);
         $ag_contact->value = $contact->get_quick_code();
     }
     $ag_contact->label = "";
     $list_contact = $this->db->make_list('select fd_id from fiche_def where frd_id=16');
     $ag_contact->extra = $list_contact;
     $ag_contact->set_dblclick("fill_ipopcard(this);");
     // name of the field to update with the name of the card
     $ag_contact->set_attribute('label', 'ag_contact_label');
     // name of the field to update with the name of the card
     $ag_contact->set_attribute('typecard', $list_contact);
     $ag_contact->set_function('fill_data');
     $ag_contact->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $ag_contact->name);
     $spcontact = new ISpan();
     $spcontact->name = 'ag_contact_label';
     $spcontact->value = '';
     $fiche_contact = new Fiche($this->db);
     $fiche_contact->get_by_qcode($this->ag_contact);
     if ($fiche_contact->id != 0) {
         $spcontact->value = $fiche_contact->strAttribut(ATTR_DEF_NAME);
     }
     $h_agrefid = new IHidden();
     $iag_ref = new IText("ag_ref");
     $iag_ref->value = $this->ag_ref;
     $iag_ref->readOnly = $p_view == "NEW" || $p_view == 'READ' ? true : false;
     $str_ag_ref = $iag_ref->input();
     // Preparing the return string
     $r = "";
     /* for new files */
     $upload = new IFile();
     $upload->name = "file_upload[]";
     $upload->readOnly = $readonly;
     $upload->value = "";
     $aAttachedFile = $this->db->get_array('select d_id,d_filename,d_description,d_mimetype,' . '\'show_document.php?' . Dossier::get() . '&d_id=\'||d_id as link' . ' from document where ag_id=$1', array($this->ag_id));
     /* create the select for document */
     $aDocMod = new ISelect();
     $aDocMod->name = 'doc_mod';
     $aDocMod->value = $this->db->make_array('select md_id,dt_value||\' : \'||md_name as md_name' . ' from document_modele join document_type on (md_type=dt_id)' . ' order by md_name');
     $str_select_doc = $aDocMod->input();
     /* if no document then do not show the generate button */
     if (empty($aDocMod->value)) {
         $str_submit_generate = "";
     } else {
         $str_submit_generate = HtmlInput::submit("generate", _("Génére le document"));
     }
     $ag_id = $this->ag_id;
     /* fid = Icard  */
     $icard = new ICard();
     $icard->jrn = 0;
     $icard->table = 0;
     $icard->extra2 = 'QuickCode';
     $icard->noadd = "no";
     $icard->extra = 'all';
     /* Text desc  */
     $text = new IText();
     $num = new INum();
     /* TVA */
     $itva = new ITva_Popup($this->db);
     $itva->in_table = true;
     $aCard = array();
     /* create aArticle for the detail section */
     $article_count = count($this->aAction_detail) == 0 ? MAX_ARTICLE : count($this->aAction_detail);
     /* Compute total */
     $tot_item = 0;
     $tot_vat = 0;
     for ($i = 0; $i < $article_count; $i++) {
         /* fid = Icard  */
         $icard = new ICard();
         $icard->jrn = 0;
         $icard->table = 0;
         $icard->noadd = "no";
         $icard->extra = 'all';
         $icard->name = "e_march" . $i;
         $tmp_ad = isset($this->aAction_detail[$i]) ? $this->aAction_detail[$i] : false;
         $icard->readOnly = $readonly;
         $icard->value = '';
         $aCard[$i] = 0;
         if ($tmp_ad) {
             $march = new Fiche($this->db);
             $f = $tmp_ad->get_parameter('qcode');
             if ($f != 0) {
                 $march->id = $f;
                 $icard->value = $march->get_quick_code();
                 $aCard[$i] = $f;
             }
         }
         $icard->set_dblclick("fill_ipopcard(this);");
         // name of the field to update with the name of the card
         $icard->set_attribute('label', "e_march" . $i . "_label");
         // name of the field to update with the name of the card
         $icard->set_attribute('typecard', $icard->extra);
         $icard->set_attribute('ipopup', 'ipopcard');
         $icard->set_function('fill_data');
         $icard->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $icard->name);
         $aArticle[$i]['fid'] = $icard->search() . $icard->input();
         $text->javascript = ' onchange="clean_tva(' . $i . ');compute_ledger(' . $i . ')"';
         $text->css_size = "100%";
         $text->name = "e_march" . $i . "_label";
         $text->id = "e_march" . $i . "_label";
         $text->size = 40;
         $text->value = $tmp_ad ? $tmp_ad->get_parameter('text') : "";
         $text->readOnly = $readonly;
         $aArticle[$i]['desc'] = $text->input();
         $num->javascript = ' onchange="format_number(this);clean_tva(' . $i . ');compute_ledger(' . $i . ')"';
         $num->name = "e_march" . $i . "_price";
         $num->id = "e_march" . $i . "_price";
         $num->size = 8;
         $num->readOnly = $readonly;
         $num->value = $tmp_ad ? $tmp_ad->get_parameter('price_unit') : 0;
         $aArticle[$i]['pu'] = $num->input();
         $num->name = "e_quant" . $i;
         $num->id = "e_quant" . $i;
         $num->size = 8;
         $num->value = $tmp_ad ? $tmp_ad->get_parameter('quantity') : 0;
         $aArticle[$i]['quant'] = $num->input();
         $itva->name = 'e_march' . $i . '_tva_id';
         $itva->id = 'e_march' . $i . '_tva_id';
         $itva->value = $tmp_ad ? $tmp_ad->get_parameter('tva_id') : 0;
         $itva->readOnly = $readonly;
         $itva->js = ' onchange="format_number(this);clean_tva(' . $i . ');compute_ledger(' . $i . ')"';
         $itva->set_attribute('compute', $i);
         $aArticle[$i]['tvaid'] = $itva->input();
         $num->name = "e_march" . $i . "_tva_amount";
         $num->id = "e_march" . $i . "_tva_amount";
         $num->value = $tmp_ad ? $tmp_ad->get_parameter('tva_amount') : 0;
         $num->javascript = " onchange=\"compute_ledger('" . $i . " ')\"";
         $num->size = 8;
         $aArticle[$i]['tva'] = $num->input();
         $tot_vat = bcadd($tot_vat, $num->value);
         $num->name = "tvac_march" . $i;
         $num->id = "tvac_march" . $i;
         $num->value = $tmp_ad ? $tmp_ad->get_parameter('total') : 0;
         $num->size = 8;
         $aArticle[$i]['tvac'] = $num->input();
         $tot_item = bcadd($tot_item, $num->value);
         $aArticle[$i]['hidden_htva'] = HtmlInput::hidden('htva_march' . $i, 0);
         $aArticle[$i]['hidden_tva'] = HtmlInput::hidden('tva_march' . $i, 0);
         $aArticle[$i]['ad_id'] = $tmp_ad ? HtmlInput::hidden('ad_id' . $i, $tmp_ad->get_parameter('id')) : HtmlInput::hidden('ad_id' . $i, 0);
     }
     /* Add the needed hidden values */
     $r .= dossier::hidden();
     /* add the number of item */
     $Hid = new IHidden();
     $r .= $Hid->input("nb_item", $article_count);
     $r .= HtmlInput::request_to_hidden(array("closed_action", "remind_date_end", "remind_date", "sag_ref", "only_internal", "state", "qcode", "ag_dest_query", "action_query", "tdoc", "date_start", "date_end", "hsstate", "searchtag"));
     $a_tag = $this->tag_get();
     $menu = new Default_Menu();
     /* get template */
     ob_start();
     require 'template/detail-action.php';
     $content = ob_get_contents();
     ob_end_clean();
     $r .= $content;
     //hidden
     $r .= "<p>";
     $r .= $h2->input();
     $r .= $h_ag_id->input('ag_id', $this->ag_id);
     $hidden2 = new IHidden();
     $r .= $hidden2->input('f_id_dest', $this->f_id_dest);
     $r .= "</p>";
     return $r;
 }
コード例 #3
0
 public static function test_me()
 {
     $a = new IPopup('popup_tva');
     $a->set_title('Choix de la tva');
     echo $a->input();
     $tva = new ITva_Popup("tva1");
     $tva->with_button(true);
     // We can add a label for the code
     $tva->add_label('code');
     $tva->js = 'onchange="set_tva_label(this);"';
     echo $tva->input();
     echo $tva->dbutton();
 }
コード例 #4
0
 function input($p_array = null, $p_readonly = 0)
 {
     global $g_parameter, $g_user;
     if ($p_array != null) {
         extract($p_array);
     }
     $flag_tva = $g_parameter->MY_TVA_USE;
     /* Add button */
     $f_add_button = new IButton('add_card');
     $f_add_button->tabindex = -1;
     $f_add_button->label = _('Créer une nouvelle fiche');
     $f_add_button->set_attribute('ipopup', 'ipop_newcard');
     $f_add_button->set_attribute('jrn', $this->id);
     $f_add_button->javascript = "this.jrn=\$('p_jrn').value; select_card_type(this);";
     $f_add_button2 = new IButton('add_card2');
     $f_add_button2->tabindex = -1;
     $f_add_button2->label = _('Créer une nouvelle fiche');
     $f_add_button2->set_attribute('ipopup', 'ipop_newcard');
     $f_add_button2->set_attribute('filter', $this->get_all_fiche_def());
     //    $f_add_button2->set_attribute('jrn',$this->id);
     $f_add_button2->javascript = " this.jrn=\$('p_jrn').value;select_card_type(this);";
     $str_add_button = "";
     $str_add_button2 = "";
     if ($g_user->check_action(FICADD) == 1) {
         $str_add_button = $f_add_button->input();
         $str_add_button2 = $f_add_button2->input();
     }
     // The first day of the periode
     $oPeriode = new Periode($this->db);
     list($l_date_start, $l_date_end) = $oPeriode->get_date_limit($g_user->get_periode());
     if ($g_parameter->MY_DATE_SUGGEST == 'Y') {
         $op_date = !isset($e_date) ? $l_date_start : $e_date;
     } else {
         $op_date = !isset($e_date) ? '' : $e_date;
     }
     $e_ech = isset($e_ech) ? $e_ech : "";
     $e_comm = isset($e_comm) ? $e_comm : "";
     $r = '';
     $r .= dossier::hidden();
     $f_legend = _('Client');
     $Echeance = new IDate();
     $Echeance->setReadOnly(false);
     $Echeance->tabindex = 2;
     $label = HtmlInput::infobulle(4);
     $f_echeance = $Echeance->input('e_ech', $e_ech, _('Echéance') . $label);
     $Date = new IDate();
     $Date->setReadOnly(false);
     $f_date = $Date->input("e_date", $op_date);
     $f_periode = '';
     // Periode
     //--
     if ($this->check_periode() == true) {
         $l_user_per = $g_user->get_periode();
         $def = isset($periode) ? $periode : $l_user_per;
         $period = new IPeriod("period");
         $period->user = $g_user;
         $period->cn = $this->db;
         $period->value = $def;
         $period->type = OPEN;
         try {
             $l_form_per = $period->input();
         } catch (Exception $e) {
             if ($e->getCode() == 1) {
                 throw new Exception(_("Aucune période ouverte"));
             }
         }
         $label = HtmlInput::infobulle(3);
         $f_periode = '<td>' . _("Période comptable") . "</td> <td> {$label} " . $l_form_per . '</td>';
     }
     /* if we suggest the next pj, then we need a javascript */
     $add_js = "";
     if ($g_parameter->MY_PJ_SUGGEST == 'Y') {
         $add_js = "update_pj();";
     }
     if ($g_parameter->MY_DATE_SUGGEST == 'Y') {
         $add_js .= 'get_last_date();';
     }
     $add_js .= 'update_name();';
     $add_js .= 'update_pay_method();';
     $add_js .= 'update_row("sold_item");';
     $wLedger = $this->select_ledger('VEN', 2);
     if ($wLedger == null) {
         throw new Exception(_('Pas de journal disponible'));
     }
     $wLedger->table = 1;
     $wLedger->javascript = "onChange='update_predef(\"ven\",\"f\",\"" . $_REQUEST['ac'] . "\");{$add_js}'";
     $wLedger->label = " Journal " . HtmlInput::infobulle(2);
     $f_jrn = $wLedger->input();
     $Commentaire = new IText();
     $Commentaire->table = 0;
     $Commentaire->setReadOnly(false);
     $Commentaire->size = 60;
     $Commentaire->tabindex = 3;
     $label = HtmlInput::infobulle(1);
     $f_desc = $Commentaire->input("e_comm", h($e_comm));
     // PJ
     //--
     /* suggest PJ ? */
     $default_pj = '';
     if ($g_parameter->MY_PJ_SUGGEST == 'Y') {
         $default_pj = $this->guess_pj();
     }
     $pj = new IText();
     $pj->table = 0;
     $pj->name = "e_pj";
     $pj->size = 10;
     $pj->value = isset($e_pj) ? $e_pj : $default_pj;
     $f_pj = $pj->input() . HtmlInput::hidden('e_pj_suggest', $default_pj);
     // Display the customer
     //--
     $fiche = 'deb';
     // Save old value and set a new one
     //--
     $e_client = isset($e_client) ? $e_client : "";
     $e_client_label = "&nbsp;";
     //str_pad("",100,".");
     // retrieve e_client_label
     //--
     if (strlen(trim($e_client)) != 0) {
         $fClient = new Fiche($this->db);
         $fClient->get_by_qcode($e_client);
         $e_client_label = $fClient->strAttribut(ATTR_DEF_NAME) . ' ' . ' Adresse : ' . $fClient->strAttribut(ATTR_DEF_ADRESS) . ' ' . $fClient->strAttribut(ATTR_DEF_CP) . ' ' . $fClient->strAttribut(ATTR_DEF_CITY) . ' ';
     }
     $W1 = new ICard();
     $W1->label = "Client " . HtmlInput::infobulle(0);
     $W1->name = "e_client";
     $W1->tabindex = 3;
     $W1->value = $e_client;
     $W1->table = 0;
     $W1->set_dblclick("fill_ipopcard(this);");
     $W1->set_attribute('ipopup', 'ipopcard');
     // name of the field to update with the name of the card
     $W1->set_attribute('label', 'e_client_label');
     // name of the field to update with the name of the card
     $W1->set_attribute('typecard', 'deb');
     // Add the callback function to filter the card on the jrn
     $W1->set_callback('filter_card');
     $W1->set_function('fill_data');
     $W1->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $W1->name);
     $f_client_qcode = $W1->input();
     $client_label = new ISpan();
     $client_label->table = 0;
     $f_client = $client_label->input("e_client_label", $e_client_label);
     $f_client_bt = $W1->search();
     // Record the current number of article
     $Hid = new IHidden();
     $p_article = isset($nb_item) ? $nb_item : $this->get_min_row();
     $r .= $Hid->input("nb_item", $p_article);
     $max = $p_article < $this->get_min_row() ? $this->get_min_row() : $p_article;
     $f_legend_detail = _("Détail articles vendus");
     // For each article
     //--
     for ($i = 0; $i < $max; $i++) {
         // Code id, price & vat code
         //--
         $march = isset(${"e_march{$i}"}) ? ${"e_march{$i}"} : "";
         $march_price = isset(${"e_march" . $i . "_price"}) ? ${"e_march" . $i . "_price"} : "";
         if ($flag_tva == 'Y') {
             $march_tva_id = isset(${"e_march{$i}" . "_tva_id"}) ? ${"e_march{$i}" . "_tva_id"} : "";
             $march_tva_amount = isset(${"e_march{$i}" . "_tva_amount"}) ? ${"e_march{$i}" . "_tva_amount"} : "";
         }
         $march_label = isset(${"e_march" . $i . "_label"}) ? ${"e_march" . $i . "_label"} : "";
         // retrieve the tva label and name
         //--
         if (strlen(trim($march)) != 0 && strlen(trim($march_label)) == 0) {
             $fMarch = new Fiche($this->db);
             $fMarch->get_by_qcode($march);
             $march_label = $fMarch->strAttribut(ATTR_DEF_NAME);
             if ($flag_tva == 'Y') {
                 if (!isset(${"e_march{$i}" . "_tva_id"})) {
                     $march_tva_id = $fMarch->strAttribut(ATTR_DEF_TVA);
                 }
             }
         }
         // Show input
         //--
         $W1 = new ICard();
         $W1->label = "";
         $W1->name = "e_march" . $i;
         $W1->value = $march;
         $W1->table = 1;
         $W1->set_attribute('typecard', 'cred');
         $W1->set_dblclick("fill_ipopcard(this);");
         $W1->set_attribute('ipopup', 'ipopcard');
         // name of the field to update with the name of the card
         $W1->set_attribute('label', 'e_march' . $i . '_label');
         // name of the field with the price
         $W1->set_attribute('price', 'e_march' . $i . '_price');
         // name of the field with the TVA_ID
         $W1->set_attribute('tvaid', 'e_march' . $i . '_tva_id');
         // Add the callback function to filter the card on the jrn
         $W1->set_callback('filter_card');
         $W1->set_function('fill_data');
         $W1->javascript = sprintf(' onchange="fill_data_onchange(\'%s\');" ', $W1->name);
         $W1->readonly = false;
         $array[$i]['quick_code'] = $W1->input();
         $array[$i]['bt'] = $W1->search();
         // For computing we need some hidden field for holding the value
         $array[$i]['hidden'] = '';
         if ($flag_tva == 'Y') {
             $array[$i]['hidden'] .= HtmlInput::hidden('tva_march' . $i, 0);
         }
         $htva = new INum('htva_march' . $i);
         $htva->readOnly = 1;
         $htva->value = 0;
         $array[$i]['htva'] = $htva->input();
         if ($g_parameter->MY_TVA_USE == 'Y') {
             $tvac = new INum('tvac_march' . $i);
         } else {
             $tvac = new IHidden('tvac_march' . $i);
         }
         $tvac->readOnly = 1;
         $tvac->value = 0;
         $array[$i]['tvac'] = $tvac->input();
         if ($g_parameter->MY_UPDLAB == 'Y') {
             $Span = new IText("e_march" . $i . "_label");
             $Span->css_size = "100%";
         } else {
             $Span = new ISpan("e_march" . $i . "_label");
         }
         $Span->value = $march_label;
         $Span->setReadOnly(false);
         // card's name, price
         //--
         $array[$i]['denom'] = $Span->input("e_march" . $i . "_label", $march_label);
         // price
         $Price = new INum();
         $Price->setReadOnly(false);
         $Price->size = 9;
         $Price->javascript = "onBlur='format_number(this);clean_tva({$i});compute_ledger({$i})'";
         $array[$i]['pu'] = $Price->input("e_march" . $i . "_price", $march_price);
         $array[$i]['tva'] = '';
         $array[$i]['amount_tva'] = '';
         // if tva is not needed then no tva field
         if ($flag_tva == 'Y') {
             // vat label
             //--
             $Tva = new ITva_Popup($this->db);
             $Tva->in_table = true;
             $Tva->set_attribute('compute', $i);
             $Tva->js = 'onblur="format_number(this);clean_tva(' . $i . ');compute_ledger(' . $i . ')"';
             $Tva->value = $march_tva_id;
             $array[$i]['tva'] = $Tva->input("e_march{$i}" . "_tva_id");
             // vat amount
             //--
             $wTva_amount = new INum();
             $wTva_amount->readOnly = false;
             $wTva_amount->size = 6;
             $wTva_amount->javascript = "onBlur='format_number(this);compute_ledger({$i})'";
             $array[$i]['amount_tva'] = $wTva_amount->input("e_march" . $i . "_tva_amount", $march_tva_amount);
         }
         // quantity
         //--
         $quant = isset(${"e_quant{$i}"}) ? ${"e_quant{$i}"} : "1";
         $Quantity = new INum();
         $Quantity->setReadOnly(false);
         $Quantity->size = 8;
         $Quantity->javascript = "onChange='format_number(this);clean_tva({$i});compute_ledger({$i})'";
         $array[$i]['quantity'] = $Quantity->input("e_quant" . $i, $quant);
     }
     // foreach article
     $f_type = _('Client');
     ob_start();
     require_once NOALYSS_INCLUDE . '/template/form_ledger_detail.php';
     $r .= ob_get_contents();
     ob_end_clean();
     // Set correctly the REQUEST param for jrn_type
     $r .= HtmlInput::hidden('jrn_type', 'VEN');
     $r .= HtmlInput::button('add_item', _('Ajout article'), ' onClick="ledger_add_row()"');
     $r .= create_script("\$('" . $Date->id . "').focus()");
     return $r;
 }