Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.35
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
html /
bdc.bdcloud.fr /
custom /
stancer /
Delete
Unzip
Name
Size
Permission
Date
Action
admin
[ DIR ]
drwxr-x---
2025-11-08 11:17
backport
[ DIR ]
drwxr-x---
2025-11-08 11:17
class
[ DIR ]
drwxr-x---
2025-11-08 11:17
core
[ DIR ]
drwxr-x---
2025-11-08 11:17
img
[ DIR ]
drwxr-x---
2025-11-08 11:17
langs
[ DIR ]
drwxr-x---
2025-11-08 11:17
lib
[ DIR ]
drwxr-x---
2025-11-08 11:17
public
[ DIR ]
drwxr-x---
2025-11-08 11:17
sql
[ DIR ]
drwxr-x---
2025-11-08 11:17
vendor
[ DIR ]
drwxr-x---
2025-11-08 11:17
COPYING
31.71
KB
-rwxr-x---
2023-04-04 16:13
ChangeLog.md
3.14
KB
-rwxr-x---
2023-04-04 16:13
README.md
640
B
-rwxr-x---
2023-04-04 16:13
composer.json
61
B
-rwxr-x---
2023-04-04 16:13
modulebuilder.txt
194
B
-rwxr-x---
2023-04-04 16:13
stancer_thirdparty.php
18.02
KB
-rwxr-x---
2023-04-04 16:13
stancerindex.php
11.05
KB
-rwxr-x---
2023-04-04 16:13
Save
Rename
<?php /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> * Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com> * Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr> * Copyright (C) 2022-2023 Eric Seigne <eric.seigne@cap-rel.fr> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ /** * \file stancer/stancer_thirdparty.php * \ingroup stancer * \brief Home page of stancer top menu */ // Load Dolibarr environment $res = 0; // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; } // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME $tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; } if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) { $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; } // Try main.inc.php using relative path if (!$res && file_exists("../main.inc.php")) { $res = @include "../main.inc.php"; } if (!$res && file_exists("../../main.inc.php")) { $res = @include "../../main.inc.php"; } if (!$res && file_exists("../../../main.inc.php")) { $res = @include "../../../main.inc.php"; } if (!$res) { die("Include of main fails"); } dol_include_once('/stancer/lib/stancer.lib.php'); // Load translation files required by the page $langs->loadLangs(array("stancer@stancer")); $action = GETPOST('action', 'aZ09'); $max = 5; $now = dol_now(); // Security check - Protection if external user $socid = GETPOST('socid', 'int'); if (isset($user->socid) && $user->socid > 0) { $action = ''; $socid = $user->socid; } $societe = new Societe($db); $socresult = $societe->fetch($socid); // Security check (enable the most restrictive one) //if ($user->socid > 0) accessforbidden(); //if ($user->socid > 0) $socid = $user->socid; //if (!isModEnabled('stancer')) { // accessforbidden('Module not enabled'); //} //if (! $user->hasRight('stancer', 'myobject', 'read')) { // accessforbidden(); //} //restrictedArea($user, 'stancer', 0, 'stancer_myobject', 'myobject', '', 'rowid'); //if (empty($user->admin)) { // accessforbidden('Must be admin'); //} if (empty($action) && empty($objid)) { $action = 'view'; } // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. $permissiontoaccess = $user->rights->stancer->read; /* * Actions */ // None // Set url to go back after a create successfull $backtopage = dol_buildpath('/stancer/stancer_thirdparty.php', 1).'?socid='.$socid; include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; /* * View */ $form = new Form($db); $formfile = new FormFile($db); llxHeader("", $langs->trans("StancerArea")); $head = societe_prepare_head($societe); //print load_fiche_titre($langs->trans("StancerArea"), '', 'stancer.png@stancer'); dol_fiche_head($head, 'tabStancer', $langs->trans("ThirdParty"), -1, 'company'); print '<div class="fichecenter">'; if ($action == "add") { stancerAddCustomerIfNeeded($socid); } if ($action == "addsepa") { $data = [ 'iban' => GETPOST('iban', 'alpha'), 'bic' => GETPOST('bic', 'alpha'), 'mandate' => GETPOST('mandate', 'alpha'), 'date_mandate' => GETPOST('date_mandate', 'alpha') ]; stancerAddSEPAIfNeeded($socid, $data); } /* BEGIN MODULEBUILDER DRAFT MYOBJECT */ // Draft MyObject if (isModEnabled('stancer') && $user->rights->stancer->read) { $langs->loadLangs(array("stancer@stancer")); print "<h2>" . $langs->trans("StancerAccount") . "</h2>"; $companypaymentmode = new CompanyPaymentModeStancer($db); $res =$companypaymentmode->fetch(0, '', '', '', " AND label = 'stancer-card' AND stancer_account IS NOT NULL AND fk_soc = ".((int) $socid)); $stancerAccountOk = false; // print json_encode($companypaymentmode); if ($res > 0) { $stancerAccountOk = true; print "<ul>\n"; print " <li>" . $langs->trans("Name") . ": " . $companypaymentmode->proprio . "</li>\n"; print " <li>" . $langs->trans("DateCreation") . ": " . dol_print_date($companypaymentmode->datec) . "</li>\n"; print " <li>" . $langs->trans("StancerAccountID") . ": <a href=https://manage.stancer.com/fr/details-du-clients?id=" . trim($companypaymentmode->stancer_account, '"') . " target='_blank'>" . trim($companypaymentmode->stancer_account, '"') . "</a></li>\n"; // print " <li>" . $companypaymentmode-> . "</li>\n"; // print " <li>" . $companypaymentmode-> . "</li>\n"; // print " <li><a href='https://payment.stancer.com/" . stancer_get_public_key() . "/" . $pid . "15?lang=fr'>PayLink</a></li>\n"; print "</ul>\n"; } else { //Verifications de base: il faut un num de tel format +... ou une adresse mail $error = 0; $message = array(); if (substr($societe->phone, 0, 1) != '+') { $error++; } if (empty($societe->email)) { $error++; } if ($error > 1) { print "<p>" . $langs->trans("StancerCompanyMailOrPhone") . "</p>"; } else { print '<form name="addstancer" id="addstancer" action="'.$_SERVER["PHP_SELF"].'?socid='.$socid.'" method="POST">'; print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="action" value="add">'; print '<input class="button button-save" type="submit" value="' . $langs->trans("CreateAccountOnStancer") . '">'; print '</form>'; } } if ($stancerAccountOk) { print "<h2>" . $langs->trans("StancerSEPA") . "</h2>"; $companypaymentmode = new CompanyPaymentModeStancer($db); $res =$companypaymentmode->fetch(0, '', '', '', " AND type = 'ban' AND label = 'stancer-sepa' AND fk_soc = ".((int) $socid)); // if ($res) { // print "<ul>\n"; // // print " <li>" . $companypaymentmode->label . "</li>\n"; // print " <li>" . $langs->trans("StancerSEPAID") . ": <a href=https://manage.stancer.com/fr/details-du-clients?id=" . trim($companypaymentmode->stancer_account, '"') . " target='_blank'>" . trim($companypaymentmode->stancer_account, '"') . "</a></li>\n"; // // print " <li>" . $companypaymentmode-> . "</li>\n"; // // print " <li>" . $companypaymentmode-> . "</li>\n"; // // print " <li><a href='https://payment.stancer.com/" . stancer_get_public_key() . "/" . $pid . "15?lang=fr'>PayLink</a></li>\n"; // print "</ul>\n"; // } else { $rib_list = $societe->get_all_rib(); // print json_encode($rib_list); if (is_array($rib_list)) { print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you don't need reserved height for your table print '<table class="liste centpercent">'; print '<tr class="liste_titre">'; print_liste_field_titre("LabelRIB"); print_liste_field_titre("Bank"); print_liste_field_titre("IBAN"); print_liste_field_titre("BIC"); if (!empty($conf->prelevement->enabled)) { print_liste_field_titre("RUM"); print_liste_field_titre("DateRUM"); print_liste_field_titre("WithdrawMode"); } print_liste_field_titre('', '', '', '', '', '', '', '', 'center '); print "</tr>\n"; foreach ($rib_list as $rib) { $companypaymentmode = new CompanyPaymentModeStancer($db); $resStancer = $companypaymentmode->fetch(0, '', 0, '', " AND type = 'ban' AND label = 'stancer-sepa' AND iban_prefix = '".$rib->iban."'"); //petite verif, s'il manque le bic *et* que c'est un stancer on peut actualiser l'information if ($rib->label == 'stancer-sepa' && empty($rib->bic) && $resStancer) { $sepa = new Stancer\Sepa($companypaymentmode->stancer_object_ref); $bic = $sepa->getBic(); if (!empty($bic)) { $rib->bic = $bic; $companypaymentmode->bic = $bic; $companypaymentmode->update($user); } } print '<tr class="oddeven">'; // Label print '<td>'.$rib->label.'</td>'; // Bank name print '<td>'.$rib->bank.'</td>'; // IBAN print '<td>'.$rib->iban.'</td>'; // BIC print '<td>'.$rib->bic.'</td>'; if (!empty($conf->prelevement->enabled)) { // RUM //print '<td>'.$prelevement->buildRumNumber($object->code_client, $rib->datec, $rib->id).'</td>'; print '<td>'.$rib->rum.'</td>'; print '<td>'.dol_print_date($rib->date_rum, 'day').'</td>'; // FRSTRECUR print '<td>'.$rib->frstrecur.'</td>'; } //stancer print '<td class="center">'; // Stancer - vérifier si un compte n'existe pas déjà if ($resStancer) { //juste le lien vers le compte stancer print "<a href=https://manage.stancer.com/fr/details-du-clients?id=" . trim($companypaymentmode->stancer_account, '"') . " target='_blank'>" . $langs->trans("StancerSEPAID") . "</a>"; } else { print '<form name="addstancersepa" id="addstancersepa" action="'.$_SERVER["PHP_SELF"].'?socid='.$socid.'" method="POST">'; print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="action" value="addsepa">'; print '<input type="hidden" name="iban" value="'.$rib->iban.'">'; print '<input type="hidden" name="bic" value="'.$rib->bic.'">'; print '<input type="hidden" name="mandate" value="'.$rib->rum.'">'; print '<input type="hidden" name="date_mandate" value="'.$rib->date_rum.'">'; $forname = 'builddocrib'.$rib->id; // Button $genbutton = '<input class="button buttongen" id="'.$forname.'_generatebutton" name="'.$forname.'_generatebutton"'; $genbutton .= ' type="submit" value="'.$langs->trans("CreateSEPAOnStancer").'"'; $genbutton .= '>'; print $genbutton; print '</form>'; } print '</td>'; // Edit/Delete - eric plus tard // print '<td class="right nowraponall">'; // if ($permissiontoaddupdatepaymentinformation) { // print '<a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?socid='.$object->id.'&id='.$rib->id.'&action=edit">'; // print img_picto($langs->trans("Modify"), 'edit'); // print '</a>'; // print '<a class="marginleftonly" href="'.$_SERVER["PHP_SELF"].'?socid='.$object->id.'&id='.$rib->id.'&action=delete&token='.newToken().'">'; // print img_picto($langs->trans("Delete"), 'delete'); // print '</a>'; // } // print '</td>'; print '</tr>'; } print '</table>'; //aucun rib, le client peut le faire tout seul... if (count($rib_list) == 0) { print '<p>'. $langs->trans("NoBANRecord") .'.<br />'. $langs->trans("StancerLinkFoCustomerIBAN") . sancerShowOnlineIBANLinkForCustomer($societe->id, $societe->name) . '</p>'; if (isset($conf->global->STANCER_MANDATE_AUTO_UPTOSIGN)) { print '<p>'.$langs->transnoentitiesnoconv("NiceUptoSignIsEnabled").'</p>'; if (dol_include_once('/uptosign/class/uptosignCore.class.php')) { $uptosignCore = new uptosignCore(['db'=>$db]); //sepamandate object does not exists, so we use "contract" as document type to find who can sign $list_of_potential_signers = $uptosignCore->whoCanSign($societe->id, 'contrat', 'CustomerSign'); if (count($list_of_potential_signers) == 0) { print '<div class="warning"><span class="fa fa-warning"> </span> <span class="clear"> ' . $langs->trans("StancerUptoSignNoSigner") . '</span></div>'; } elseif (count($list_of_potential_signers) > 1) { print '<div class="warning"><span class="fa fa-warning"> </span> <span class="clear"> ' . $langs->trans("StancerUptoSignNotOnlyOneSigner") . '</span></div>'; } } } else { print '<p>'. $langs->transnoentitiesnoconv("YouCanAccelSignWithUptoSign", "<a href='https://www.dolistore.com/fr/modules/1656-uptosign---signature---lectronique-eidas.html'>", "</a>"). '</p>'; } } print '</div>'; // } } } // print $sql; // $resql = $db->query($sql); // if ($resql) { // $total = 0; // $num = $db->num_rows($resql); // print '<table class="noborder centpercent">'; // print '<tr class="liste_titre">'; // print '<th colspan="3">'.$langs->trans("StancerAccount").($num ? '<span class="badge marginleftonlyshort">'.$num.'</span>' : '').'</th></tr>'; // $var = true; // if ($num > 0) { // $i = 0; // while ($i < $num) { // $obj = $db->fetch_object($resql); // print '<tr class="oddeven"><td class="nowrap">'; // print json_encode($obj); // // print $obj->ref; // print '</td>'; // print '<td class="nowrap">'; // print '</td>'; // $i++; // } // if ($total>0) { // print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td colspan="2" class="right">'.price($total)."</td></tr>"; // } // } else { // print '<form name="addstancer" id="addstancer" action="'.$_SERVER["PHP_SELF"].'?socid='.$socid.'" method="POST">'; // print '<input type="hidden" name="token" value="'.newToken().'">'; // print '<input type="hidden" name="action" value="add">'; // print '<tr class="oddeven"><td colspan="3">'.$langs->trans("NoAccount").'<br />'; // print '<input class="button button-save" type="submit" value="' . $langs->trans("CreateAccountOnStancer") . '">'; // print '</td></tr>'; // } // print "</table><br>"; // $db->free($resql); // } else { // dol_print_error($db); // } } /*END MODULEBUILDER DRAFT MYOBJECT */ //Liste des liens actifs // print "<p>Montant : <input type='text' name='amount' value='50'></p>"; // print "<p>TAG : <input type='text' name='tag' value=''></p>"; // print "<p>Description : <input type='text' name='description' value=''></p>"; // $liste = ['paym_MN5qekP8UBzlEN8ohPS8MF1z','paym_twkgSkw6OgFj0xsKHSqVgYXx','paym_OVWc9bpCZY1MIP9rqELRG4su']; // $object = new Facture($db); // $object->fetch(1259); // $tag = (empty($parameters['tag']) ? GETPOST("ref", 'alpha') : $parameters['tag']); // if (empty($tag)) { // $tag = stancerMakeTAG($object); // } // $args = base64_encode('tag='.$tag.'&source='.$source.'&ref='.$object->ref.'&securekey='.$securekey); // $urlretour = DOL_MAIN_URL_ROOT.'/custom/stancer/public/paymentback.php?s='.$args; // print "<p>url retour is $urlretour</p>"; // // exit; // foreach ($liste as $l) { // print "update paiement $l ...<br />"; // $payment = new Stancer\Payment($l); // // $payment->setAmount(5000); // if ($payment->isNotSuccess()) { // // $payment->setDescription("Complément facture ref FA2302-1003"); // // $payment->setOrderId("INV=1259.CUS=519"); // // $payment->setReturnUrl($urlretour); // $payment->setAuth(true); // // $payment->setStatus(Stancer\Payment\Status::CANCELED); // $res = $payment->send(); // } // print json_encode($res); // } // print json_encode($payment); // $customer = new Stancer\Customer('cust_tUDFhV7gBJDR6K8D2xn7E3oa'); // $payment = new Stancer\Payment(); // $payment->setAmount(5000); // $payment->setCurrency('eur'); // $payment->setCustomer($customer); // $payment->setDescription('Paiement partiel Facture FA2302-1003/2'); // $res = $payment->send(); // print json_encode($res); // $url = "https://payment.stancer.com/" . stancer_get_public_key() . "/" . $res . "?lang=fr"; // print "<p>Lien de paiement : " .$url. "</p>"; print "<h2>" . $langs->trans("Divers") . "</h2>"; print '</div><div class="fichetwothirdright">'; $NBMAX = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT; /* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT // Last modified myobject if (isModEnabled('stancer') && $user->rights->stancer->read) { $sql = "SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms"; $sql.= " FROM ".MAIN_DB_PREFIX."stancer_myobject as s"; //if (! $user->rights->societe->client->voir && ! $socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= " WHERE s.entity IN (".getEntity($myobjectstatic->element).")"; //if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id); //if ($socid) $sql.= " AND s.rowid = $socid"; $sql .= " ORDER BY s.tms DESC"; $sql .= $db->plimit($max, 0); $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); $i = 0; print '<table class="noborder centpercent">'; print '<tr class="liste_titre">'; print '<th colspan="2">'; print $langs->trans("BoxTitleLatestModifiedMyObjects", $max); print '</th>'; print '<th class="right">'.$langs->trans("DateModificationShort").'</th>'; print '</tr>'; if ($num) { while ($i < $num) { $objp = $db->fetch_object($resql); $myobjectstatic->id=$objp->rowid; $myobjectstatic->ref=$objp->ref; $myobjectstatic->label=$objp->label; $myobjectstatic->status = $objp->status; print '<tr class="oddeven">'; print '<td class="nowrap">'.$myobjectstatic->getNomUrl(1).'</td>'; print '<td class="right nowrap">'; print "</td>"; print '<td class="right nowrap">'.dol_print_date($db->jdate($objp->tms), 'day')."</td>"; print '</tr>'; $i++; } $db->free($resql); } else { print '<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans("None").'</td></tr>'; } print "</table><br>"; } } */ print '</div>'; // End of page llxFooter(); $db->close();