function doActions($parameters, &$object, &$action, $hookmanager) { if (GETPOST('addcontratline')) { $fk_line_contrat_origin = GETPOST('fk_line_contrat_origin', 'int'); if ($fk_line_contrat_origin > 0) { global $db; dol_include_once('/contrat/class/contrat.class.php'); $lineContrat = new ContratLigne($db); $res = $lineContrat->fetch($fk_line_contrat_origin); if ($res > 0) { $linePropal = new PropaleLigne($db); $array_options = array(); require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; $extrafields = new ExtraFields($db); $TExtra = $extrafields->fetch_name_optionals_label($linePropal->table_element); // Récupération des extrafields de la ligne contrat vers la ligne propal $lineContrat->fetch_optionals(); foreach ($lineContrat->array_options as $key => $val) { $subkey = substr($key, 8); if (isset($TExtra[$subkey])) { $array_options[$key] = $val; } } if (isset($TExtra['fk_contratdet_origin'])) { $array_options['options_fk_contratdet_origin'] = $lineContrat->id; } $object->addline($lineContrat->description, $lineContrat->subprice, $lineContrat->qty, $lineContrat->tva_tx, $lineContrat->localtax1_tx, $lineContrat->localtax2_tx, $lineContrat->fk_product, $lineContrat->remise_percent, 'HT', 0.0, $lineContrat->info_bits, 1, -1, 0, 0, 0, $lineContrat->pa_ht, '', $lineContrat->date_ouverture_prevue, $lineContrat->date_fin_validite, $array_options, $lineContrat->fk_unit); } } } }
print '<input type="hidden" name="shipToZip" value="' . $shipToZip . '">' . "\n"; print '<input type="hidden" name="shipToStreet2" value="' . $shipToStreet2 . '">' . "\n"; print '<input type="hidden" name="phoneNum" value="' . $phoneNum . '">' . "\n"; } else { print '<!-- Shipping address not complete, so we don t use it -->' . "\n"; } print '<input type="hidden" name="email" value="' . $invoice->thirdparty->email . '">' . "\n"; print '<input type="hidden" name="desc" value="' . $langs->trans("Invoice") . ' ' . $invoice->ref . '">' . "\n"; } // Payment on contract line if (GETPOST("source") == 'contractline' && $valid) { $found = true; $langs->load("contracts"); require_once DOL_DOCUMENT_ROOT . '/contrat/class/contrat.class.php'; $contractline = new ContratLigne($db); $result = $contractline->fetch('', $ref); if ($result < 0) { $mesg = $contractline->error; $error++; } else { if ($contractline->fk_contrat > 0) { $contract = new Contrat($db); $result = $contract->fetch($contractline->fk_contrat); if ($result > 0) { $result = $contract->fetch_thirdparty($contract->socid); } else { $mesg = $contract->error; $error++; } } else { $mesg = 'ErrorRecordNotFound';
print ' ('.$langs->trans("ToComplete").')'; $email=$invoice->client->email; $email=(GETPOST("email")?GETPOST("email"):(isValidEmail($email)?$email:'')); print '</td><td class="CTableRow'.($var?'1':'2').'"><input class="flat" type="text" name="email" size="48" value="'.$email.'"></td></tr>'."\n"; } // Payment on contract line if (GETPOST("source") == 'contractline') { $found=true; $langs->load("contracts"); require_once(DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php"); $contractline=new ContratLigne($db); $result=$contractline->fetch('',$_REQUEST["ref"]); if ($result < 0) { $mesg=$contractline->error; $error++; } else { if ($contractline->fk_contrat > 0) { $contract=new Contrat($db); $result=$contract->fetch($contractline->fk_contrat); if ($result > 0) { $result=$contract->fetch_thirdparty($contract->socid); }
if ($action == 'confirm_close' && $confirm == 'yes' && $user->rights->contrat->creer) { $object->cloture($user); } else { if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->contrat->supprimer) { $result = $object->delete($user); if ($result >= 0) { header("Location: index.php"); return; } else { setEventMessage($object->error, 'errors'); } } else { if ($action == 'confirm_move' && $confirm == 'yes' && $user->rights->contrat->creer) { if (GETPOST('newcid') > 0) { $contractline = new ContratLigne($db); $result = $contractline->fetch(GETPOST('lineid')); $contractline->fk_contrat = GETPOST('newcid'); $result = $contractline->update($user, 1); if ($result >= 0) { header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id); return; } else { setEventMessage($object->error, 'errors'); } } else { setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentities("RefNewContract")), 'errors'); } } else { if ($action == 'update_extras') { // Fill array 'array_options' with data from update form $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
/** * Update total of contract lines * * @param DoliDB $db Database handler * @param Translate $langs Object langs * @param Conf $conf Object conf * @return void */ function migrate_price_contrat($db, $langs, $conf) { $db->begin(); $tmpmysoc = new Societe($db); $tmpmysoc->setMysoc($conf); if (empty($tmpmysoc->country_id)) { $tmpmysoc->country_id = 0; } // Ti not have this set to '' or will make sql syntax error. print '<tr><td colspan="4">'; print '<br>'; print '<b>' . $langs->trans('MigrationContract') . "</b><br>\n"; // Liste des lignes contrat non a jour $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,"; $sql .= " c.rowid as contratid"; $sql .= " FROM " . MAIN_DB_PREFIX . "contratdet as cd, " . MAIN_DB_PREFIX . "contrat as c"; $sql .= " WHERE cd.fk_contrat = c.rowid"; $sql .= " AND ((cd.total_ttc = 0 AND cd.remise_percent != 100 AND cd.subprice > 0) or cd.total_ttc IS NULL)"; dolibarr_install_syslog("upgrade2::migrate_price_contrat"); $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); $i = 0; if ($num) { while ($i < $num) { $obj = $db->fetch_object($resql); $rowid = $obj->rowid; $qty = $obj->qty; $pu = $obj->subprice; $vatrate = $obj->vatrate; $remise_percent = $obj->remise_percent; $info_bits = $obj->info_bits; // On met a jour les 3 nouveaux champs $contratligne = new ContratLigne($db); //$contratligne->fetch($rowid); Non requis car le update_total ne met a jour que chp redefinis $contratligne->fetch($rowid); $result = calcul_price_total($qty, $pu, $remise_percent, $vatrate, 0, 0, 0, 'HT', $info_bits, $contratligne->product_type, $tmpmysoc); $total_ht = $result[0]; $total_tva = $result[1]; $total_ttc = $result[2]; $contratligne->total_ht = $total_ht; $contratligne->total_tva = $total_tva; $contratligne->total_ttc = $total_ttc; dolibarr_install_syslog("upgrade2: Line " . $rowid . ": contratdetid=" . $obj->rowid . " pu=" . $pu . " qty=" . $qty . " vatrate=" . $vatrate . " remise_percent=" . $remise_percent . " -> " . $total_ht . ", " . $total_tva . " , " . $total_ttc); print ". "; $contratligne->update_total(); $i++; } } else { print $langs->trans("AlreadyDone"); } $db->free($resql); $db->commit(); } else { print "Error #1 " . $db->error(); $db->rollback(); } print '<br>'; print '</td></tr>'; }
} else { $mesg='<div class="error">'.$object->error.'</div>'; } } } if ($action == 'confirm_move' && $_REQUEST["confirm"] == 'yes') { if ($user->rights->contrat->creer) { if ($_POST['newcid'] > 0) { $contractline = new ContratLigne($db); $result=$contractline->fetch($_GET["lineid"]); $contractline->fk_contrat = $_POST["newcid"]; $result=$contractline->update($user,1); if ($result >= 0) { Header("Location: ".$_SERVER['PHP_SELF'].'?id='.$_GET['id']); return; } else { $mesg='<div class="error">'.$object->error.'</div>'; } } else { $mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("RefNewContract")).'</div>';