New: Add experimental module Point of sale
This commit is contained in:
parent
b7e739ef92
commit
0598ee3668
@ -44,6 +44,7 @@ For users:
|
||||
access to any users except the one defined in constant.
|
||||
- New: Add an admin page of PHP sessions with a way to lock new connections
|
||||
for other users than yourself. Can also purge existing sessions.
|
||||
- New: Add experimental point of sale module.
|
||||
- Fix: "Now" link works when date popup is not used.
|
||||
- Fix: Debug seriously the email notification module.
|
||||
- Fix: Error Call to a member function trans when refusing a supplier order.
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
|
||||
* Copyright (C) 2008 Laurent Destailleur <eldy@uers.sourceforge.net>
|
||||
* Copyright (C) 2009 Regis Houssin <regis@dolibarr.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 2 of the License, or
|
||||
@ -27,48 +27,47 @@ if ( $_SESSION['uid'] <= 0 ) {
|
||||
|
||||
print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
|
||||
|
||||
print '<html>';
|
||||
print '<head>';
|
||||
print '<title>Caisse</title>';
|
||||
print '<html>'."\n";
|
||||
print '<head>'."\n";
|
||||
print '<title>'.$langs->trans("CashDesk").'</title>'."\n";
|
||||
|
||||
print '<meta name="robots" content="none" />';
|
||||
print '<meta name="robots" content="none" />'."\n";
|
||||
|
||||
print '<meta name="author" content="Jeremie Ollivier - jeremie.o@laposte.net" />';
|
||||
print '<meta name="Generator" content="Kwrite, Gimp, Inkscape" />';
|
||||
print '<meta name="author" content="Jeremie Ollivier - jeremie.o@laposte.net" />'."\n";
|
||||
print '<meta name="Generator" content="Kwrite, Gimp, Inkscape" />'."\n";
|
||||
|
||||
print '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />';
|
||||
print '<meta http-equiv="Content-Language" content="fr" />';
|
||||
print '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n";
|
||||
|
||||
print '<meta http-equiv="Content-Style-Type" content="text/css" />';
|
||||
print '<link href="style.css" rel="stylesheet" type="text/css" media="screen" />';
|
||||
print '<meta http-equiv="Content-Style-Type" content="text/css" />'."\n";
|
||||
print '<link href="style.css" rel="stylesheet" type="text/css" media="screen" />'."\n";
|
||||
|
||||
print '<!-- Import des fichiers necessaires a JsCalendar -->';
|
||||
print '<style type="text/css">';
|
||||
print '@import url(include/jscalendar/calendar-blue.css);';
|
||||
print '</style>';
|
||||
print '<script type="text/javascript" src="include/jscalendar/calendar.js"></script>';
|
||||
print '<script type="text/javascript" src="include/jscalendar/lang/calendar-fr.js"></script>';
|
||||
print '<script type="text/javascript" src="include/jscalendar/calendar-setup.js"></script>';
|
||||
print '</head>';
|
||||
print '<!-- Import des fichiers necessaires a JsCalendar -->'."\n";
|
||||
print '<style type="text/css">'."\n";
|
||||
print '@import url(include/jscalendar/calendar-blue.css);'."\n";
|
||||
print '</style>'."\n";
|
||||
print '<script type="text/javascript" src="include/jscalendar/calendar.js"></script>'."\n";
|
||||
print '<script type="text/javascript" src="include/jscalendar/lang/calendar-fr.js"></script>'."\n";
|
||||
print '<script type="text/javascript" src="include/jscalendar/calendar-setup.js"></script>'."\n";
|
||||
print '</head>'."\n";
|
||||
|
||||
print '<body>';
|
||||
print '<body>'."\n";
|
||||
|
||||
print '<div class="conteneur">';
|
||||
print '<div class="conteneur_img_gauche">';
|
||||
print '<div class="conteneur_img_droite">';
|
||||
print '<div class="conteneur">'."\n";
|
||||
print '<div class="conteneur_img_gauche">'."\n";
|
||||
print '<div class="conteneur_img_droite">'."\n";
|
||||
|
||||
print '<h1 class="entete"><span>CAISSE</span></h1>';
|
||||
print '<h1 class="entete"><span>CAISSE</span></h1>'."\n";
|
||||
|
||||
print '<div class="menu_principal">';
|
||||
print '<div class="menu_principal">'."\n";
|
||||
include('templates/menu.tpl.php');
|
||||
print '</div>';
|
||||
print '</div>'."\n";
|
||||
|
||||
print '<div class="contenu">';
|
||||
print '<div class="contenu">'."\n";
|
||||
include('affContenu.php');
|
||||
print '</div>';
|
||||
print '</div>'."\n";
|
||||
|
||||
include('affPied.php');
|
||||
|
||||
print '</div></div></div>';
|
||||
print '</body></html>';
|
||||
print '</div></div></div>'."\n";
|
||||
print '</body></html>'."\n";
|
||||
?>
|
||||
@ -80,7 +80,9 @@ class Facturation {
|
||||
// $sql = new Sql ($conf_db_host, $conf_db_user, $conf_db_pass, $conf_db_base);
|
||||
|
||||
global $sql;
|
||||
$resql=$sql->query ('SELECT taux FROM '.MAIN_DB_PREFIX.'c_tva WHERE rowid = '.$this->tva());
|
||||
$req='SELECT taux FROM '.MAIN_DB_PREFIX.'c_tva WHERE rowid = '.$this->tva();
|
||||
dol_syslog("ajoutArticle sql=".$req);
|
||||
$resql=$sql->query ();
|
||||
|
||||
$tab_tva = $sql->fetch_array($resql);
|
||||
$ret=array();
|
||||
@ -111,7 +113,7 @@ class Facturation {
|
||||
$total_ttc = ($total_ht - $montant_remise) * (($tab_tva['taux'] / 100) + 1);
|
||||
|
||||
|
||||
$sql->query('INSERT INTO '.MAIN_DB_PREFIX.'tmp_caisse (
|
||||
$req='INSERT INTO '.MAIN_DB_PREFIX.'tmp_caisse (
|
||||
fk_article,
|
||||
qte,
|
||||
fk_tva,
|
||||
@ -126,7 +128,9 @@ class Facturation {
|
||||
'.$remise_percent.',
|
||||
'.price2num($montant_remise).',
|
||||
'.price2num($total_ht).',
|
||||
'.price2num($total_ttc).')');
|
||||
'.price2num($total_ttc).')';
|
||||
dol_syslog("ajoutArticle sql=".$req);
|
||||
$sql->query($req);
|
||||
|
||||
$this->raz();
|
||||
|
||||
|
||||
@ -9,10 +9,10 @@ CREATE TABLE `llx_tmp_caisse` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`fk_article` tinyint(4) NOT NULL,
|
||||
`qte` int(11) NOT NULL,
|
||||
`fk_tva` tinyint(4) NOT NULL,
|
||||
`fk_tva` int(4) NOT NULL,
|
||||
`remise_percent` int(11) NOT NULL,
|
||||
`remise` float NOT NULL,
|
||||
`total_ht` float NOT NULL,
|
||||
`total_ttc` float NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=innodb AUTO_INCREMENT=3 ;
|
||||
) ENGINE=innodb;
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
|
||||
/* Copyright (C) 2007-2008 Jérémie Ollivier <jeremie.o@laposte.net>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -14,17 +13,14 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* ------------------- Initialisations ------------------- */
|
||||
|
||||
*/ /* ------------------- Initialisations ------------------- */
|
||||
body {
|
||||
background: #eee;
|
||||
color: #333;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
font: 0.7em Arial,Helvetica,sans-serif;
|
||||
font: 0.7em Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
p {
|
||||
@ -38,31 +34,26 @@ p {
|
||||
margin: 10px auto;
|
||||
}
|
||||
|
||||
.conteneur_img_gauche {
|
||||
background: url("images/bg_conteneur_gauche.png") top left repeat-y;
|
||||
}
|
||||
|
||||
.conteneur_img_droite {
|
||||
background: url("images/bg_conteneur_droite.png") top right repeat-y;
|
||||
}
|
||||
.conteneur_img_gauche {
|
||||
background: url("images/bg_conteneur_gauche.png") top left repeat-y;
|
||||
}
|
||||
|
||||
.conteneur_img_droite {
|
||||
background: url("images/bg_conteneur_droite.png") top right repeat-y;
|
||||
}
|
||||
|
||||
/* ------------------- En-tête ------------------- */
|
||||
|
||||
.entete {
|
||||
height: 15px;
|
||||
margin: 0;
|
||||
background: url('images/bg_entete.png') no-repeat left top;
|
||||
}
|
||||
|
||||
.entete span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.entete span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ------------------- Menu ------------------- */
|
||||
|
||||
.menu_principal {
|
||||
margin: 0 auto;
|
||||
margin-left: 15px;
|
||||
@ -74,71 +65,64 @@ p {
|
||||
background: url('images/bg_menu.png') no-repeat left top;
|
||||
}
|
||||
|
||||
.menu_bloc {
|
||||
margin-left: 20px;
|
||||
}
|
||||
.menu_bloc {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.menu {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.menu {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.menu li {
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
width: 200px;
|
||||
}
|
||||
.menu li {
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
width: 230px;
|
||||
}
|
||||
|
||||
.menu_choix1, .menu_choix2 {
|
||||
font-size: 1.4em;
|
||||
text-align: left;
|
||||
}
|
||||
.menu_choix1,.menu_choix2 {
|
||||
font-size: 1.4em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.menu_choix1 a, .menu_choix2 a {
|
||||
display: block;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
width: 100px;
|
||||
padding-left: 60px;
|
||||
height: 48px;
|
||||
background: url('images/new.png') top left no-repeat;
|
||||
}
|
||||
.menu_choix1 a,.menu_choix2 a {
|
||||
display: block;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
width: 100px;
|
||||
padding-left: 60px;
|
||||
height: 48px;
|
||||
background: url('images/new.png') top left no-repeat;
|
||||
}
|
||||
|
||||
.menu_choix1 a {
|
||||
background: url('images/new.png') top left no-repeat;
|
||||
}
|
||||
.menu_choix1 a {
|
||||
background: url('images/new.png') top left no-repeat;
|
||||
}
|
||||
|
||||
.menu_choix2 a {
|
||||
background: url('images/gescom.png') top left no-repeat;
|
||||
}
|
||||
.menu_choix2 a {
|
||||
background: url('images/gescom.png') top left no-repeat;
|
||||
}
|
||||
|
||||
.menu_choix1 a:hover, .menu_choix2 a:hover {
|
||||
color: #6d3f6d;
|
||||
}
|
||||
|
||||
|
||||
.menu_choix0 {
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.menu_choix0 a{
|
||||
width: 280px;
|
||||
display: block;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
padding-right: 25px;
|
||||
}
|
||||
|
||||
.menu_choix0 a:hover{
|
||||
color: #6d3f6d;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.menu_choix1 a:hover,.menu_choix2 a:hover {
|
||||
color: #6d3f6d;
|
||||
}
|
||||
|
||||
.menu_choix0 {
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
font-style: italic;
|
||||
width: 280px;
|
||||
display: block;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.menu_choix0 a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------- Récapitulatif des articles ------------------- */
|
||||
@ -150,58 +134,57 @@ p {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
p.titre {
|
||||
margin: 0;
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 1.4em;
|
||||
color: #5ca64d;
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
p.titre {
|
||||
margin: 0;
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 1.4em;
|
||||
color: #5ca64d;
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
|
||||
.cadre_article {
|
||||
margin: 0 auto;
|
||||
width: 180px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.cadre_article {
|
||||
margin: 0 auto;
|
||||
width: 180px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.cadre_article p {
|
||||
color: #5ca64d;
|
||||
}
|
||||
.cadre_article p {
|
||||
color: #5ca64d;
|
||||
}
|
||||
|
||||
.cadre_article p a {
|
||||
color: #333;
|
||||
font-size: 1.1em;
|
||||
text-decoration: none;
|
||||
padding-right: 25px;
|
||||
background: url('images/basket_delete.png') top right no-repeat;
|
||||
}
|
||||
.cadre_article p a {
|
||||
color: #333;
|
||||
font-size: 1.1em;
|
||||
text-decoration: none;
|
||||
padding-right: 25px;
|
||||
background: url('images/basket_delete.png') top right no-repeat;
|
||||
}
|
||||
|
||||
.cadre_article p a:hover {
|
||||
color: #6d3f6d;
|
||||
}
|
||||
.cadre_article p a:hover {
|
||||
color: #6d3f6d;
|
||||
}
|
||||
|
||||
.cadre_aucun_article {
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.cadre_prix_total {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 1.4em;
|
||||
color: #6d3f6d;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
border: 1px dotted #6d3f6d;
|
||||
}
|
||||
.cadre_aucun_article {
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.cadre_prix_total {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 1.4em;
|
||||
color: #6d3f6d;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
border: 1px dotted #6d3f6d;
|
||||
}
|
||||
|
||||
/* ------------------- Contenu ------------------- */
|
||||
.principal_login {
|
||||
@ -209,32 +192,32 @@ p {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.formulaire_login {
|
||||
text-align: center;
|
||||
}
|
||||
.formulaire_login {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.formulaire_login table {
|
||||
margin: 0 auto;
|
||||
padding-left: 60px;
|
||||
margin-bottom: 20px;
|
||||
background: url('images/login.png') bottom left no-repeat;
|
||||
}
|
||||
.formulaire_login table {
|
||||
margin: 0 auto;
|
||||
padding-left: 60px;
|
||||
margin-bottom: 20px;
|
||||
background: url('images/login.png') bottom left no-repeat;
|
||||
}
|
||||
|
||||
.formulaire_login table tr {
|
||||
height: 30px;
|
||||
}
|
||||
.formulaire_login table tr {
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.texte_login {
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
background: #fff;
|
||||
border: 1px solid #6d3f6d;
|
||||
}
|
||||
.texte_login {
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
background: #fff;
|
||||
border: 1px solid #6d3f6d;
|
||||
}
|
||||
|
||||
.bouton_login input {
|
||||
background: #fff;
|
||||
border: 1px solid #6d3f6d;
|
||||
}
|
||||
.bouton_login input {
|
||||
background: #fff;
|
||||
border: 1px solid #6d3f6d;
|
||||
}
|
||||
|
||||
.principal {
|
||||
float: left;
|
||||
@ -243,182 +226,171 @@ p {
|
||||
width: 495px;
|
||||
}
|
||||
|
||||
.titre1 {
|
||||
font-weight: bold;
|
||||
color: #ff9900;
|
||||
margin: 0;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.titre1 {
|
||||
font-weight: bold;
|
||||
color: #ff9900;
|
||||
margin: 0;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
.label1 {
|
||||
color: #333;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.label1 {
|
||||
color: #333;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.cadre_facturation {
|
||||
border: 2px solid #ddd;
|
||||
margin-bottom: 15px;
|
||||
padding: 10px 10px;
|
||||
}
|
||||
.cadre_facturation {
|
||||
border: 2px solid #ddd;
|
||||
margin-bottom: 15px;
|
||||
padding: 10px 10px;
|
||||
}
|
||||
|
||||
.principal p {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.principal p {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.lien1 {
|
||||
color: #333;
|
||||
font-size: 1.1em;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.lien1 {
|
||||
color: #333;
|
||||
font-size: 1.1em;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.lien1:hover {
|
||||
color: #6d3f6d;
|
||||
}
|
||||
.lien1:hover {
|
||||
color: #6d3f6d;
|
||||
}
|
||||
|
||||
/* Formulaires */
|
||||
.formulaire1 {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Formulaires */
|
||||
.formulaire1 {
|
||||
padding: 0;
|
||||
}
|
||||
.resultats_dhtml {
|
||||
width: 400px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.resultats_dhtml {
|
||||
width: 400px;
|
||||
position: absolute;
|
||||
}
|
||||
/* --------------------- Listes déroulantes ------------------- */
|
||||
.select_design {
|
||||
width: 370px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* --------------------- Listes déroulantes ------------------- */
|
||||
.select_design {
|
||||
width: 370px;
|
||||
overflow: auto;
|
||||
}
|
||||
.select_design select {
|
||||
border: 1px solid #6d3f6d;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.select_design select {
|
||||
border: 1px solid #6d3f6d;
|
||||
background: #fff;
|
||||
}
|
||||
.select_tva select {
|
||||
width: 60px;
|
||||
border: 1px solid #6d3f6d;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.select_tva select {
|
||||
width: 60px;
|
||||
border: 1px solid #6d3f6d;
|
||||
background: #fff;
|
||||
}
|
||||
.top_liste {
|
||||
font-style: italic;
|
||||
text-align: center;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.top_liste {
|
||||
font-style: italic;
|
||||
text-align :center;
|
||||
color: #aaa;
|
||||
}
|
||||
/* --------------- Champs texte ---------------- */
|
||||
.texte_ref,.texte1,.texte1_off,.texte2,.texte2_off,.textarea_note {
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.texte_ref,.texte1,.texte2,.textarea_note {
|
||||
background: #fff;
|
||||
border: 1px solid #6d3f6d;
|
||||
}
|
||||
|
||||
/* --------------- Champs texte ---------------- */
|
||||
.texte_ref, .texte1, .texte1_off, .texte2, .texte2_off, .textarea_note {
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
.texte1_off,.texte2_off {
|
||||
color: #000;
|
||||
border: 1px solid #eee;
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.texte_ref, .texte1, .texte2, .textarea_note {
|
||||
background: #fff;
|
||||
border: 1px solid #6d3f6d;
|
||||
}
|
||||
.texte_ref {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.texte1_off, .texte2_off {
|
||||
color: #000;
|
||||
border: 1px solid #eee;
|
||||
background: #eee;
|
||||
}
|
||||
.texte1,.texte1_off {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.texte_ref {
|
||||
width: 100px;
|
||||
}
|
||||
.texte2,.texte2_off {
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.texte1, .texte1_off {
|
||||
width: 60px;
|
||||
}
|
||||
/* ------------------- */
|
||||
.textarea_note {
|
||||
width: 300px;
|
||||
height: 150px;
|
||||
padding: 2px 2px;
|
||||
}
|
||||
|
||||
.texte2, .texte2_off {
|
||||
width: 140px;
|
||||
}
|
||||
/* -------------- Boutons --------------------- */
|
||||
.bouton_ajout_article,.bouton_mode_reglement,.bouton_validation {
|
||||
border: 1px solid #999;
|
||||
background: #f7f7ff;
|
||||
}
|
||||
|
||||
.bouton_ajout_article:hover,.bouton_mode_reglement:hover,.bouton_validation:hover
|
||||
{
|
||||
background: #e7e7ff;
|
||||
}
|
||||
|
||||
/* ------------------- */
|
||||
.textarea_note {
|
||||
width: 300px;
|
||||
height: 150px;
|
||||
padding: 2px 2px;
|
||||
}
|
||||
.bouton_ajout_article {
|
||||
margin-top: 10px;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.bouton_mode_reglement {
|
||||
width: 150px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
/* -------------- Boutons --------------------- */
|
||||
.bouton_ajout_article, .bouton_mode_reglement, .bouton_validation {
|
||||
border: 1px solid #999;
|
||||
background: #f7f7ff;
|
||||
}
|
||||
.bouton_validation { /* width: 80px; */
|
||||
margin-left: 10px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.bouton_ajout_article:hover, .bouton_mode_reglement:hover, .bouton_validation:hover {
|
||||
background: #e7e7ff;
|
||||
}
|
||||
.formulaire2 {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.bouton_ajout_article {
|
||||
margin-top: 10px;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
}
|
||||
.table_resume {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.bouton_mode_reglement {
|
||||
width: 150px;
|
||||
height: 40px;
|
||||
}
|
||||
.table_resume tr {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.bouton_validation {
|
||||
/* width: 80px; */
|
||||
margin-left: 10px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.formulaire2 {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.table_resume {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.table_resume tr {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.table_resume td {
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.resume_label, .note_label {
|
||||
width: 200px;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.note_label {
|
||||
padding-top: 20px;
|
||||
}
|
||||
.table_resume td {
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.resume_label,.note_label {
|
||||
width: 200px;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.note_label {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
/* ------------------- Pied de page ------------------- */
|
||||
|
||||
.pied {
|
||||
clear: both;
|
||||
height: 15px;
|
||||
background: url('images/bg_pied.png') no-repeat bottom left;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------- Paramètres communs (messages d'erreur, informations, etc...) ------------------- */
|
||||
|
||||
.msg_err1 {
|
||||
color: #c00;
|
||||
}
|
||||
@ -433,19 +405,19 @@ p {
|
||||
color: #c00;
|
||||
}
|
||||
|
||||
/* Titre */
|
||||
.err_titre {
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
margin-bottom: 10px;
|
||||
padding: 0;
|
||||
}
|
||||
/* Titre */
|
||||
.err_titre {
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
margin-bottom: 10px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Description */
|
||||
.err_desc {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
/* Description */
|
||||
.err_desc {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Messages d'information */
|
||||
.cadre_msg1 {
|
||||
@ -457,27 +429,26 @@ p {
|
||||
color: #070;
|
||||
}
|
||||
|
||||
/* Titre */
|
||||
.msg_titre {
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
margin-bottom: 10px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Description */
|
||||
.msg_desc {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
/* Titre */
|
||||
.msg_titre {
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
margin-bottom: 10px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Description */
|
||||
.msg_desc {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Affichage de la liste des résultats */
|
||||
.dhtml_bloc {
|
||||
margin: 0;
|
||||
padding: 3px;
|
||||
font-size: 13px;
|
||||
font-family: arial,sans-serif;
|
||||
font-family: arial, sans-serif;
|
||||
border: 1px solid #000;
|
||||
z-index: 1;
|
||||
width: 455px;
|
||||
@ -487,17 +458,14 @@ p {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.dhtml_defaut {
|
||||
list-style-type: none;
|
||||
display: block;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.dhtml_selection {
|
||||
background-color: #3366cc;
|
||||
color: white ! important;
|
||||
}
|
||||
|
||||
|
||||
.dhtml_defaut {
|
||||
list-style-type: none;
|
||||
display: block;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.dhtml_selection {
|
||||
background-color: #3366cc;
|
||||
color: white ! important;
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
/* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
|
||||
* Copyright (C) 2008 Laurent Destailleur <eldy@uers.sourceforge.net>
|
||||
* Copyright (C) 2009 Regis Houssin <regis@dolibarr.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 2 of the License, or
|
||||
@ -18,6 +18,17 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
include_once(DOL_DOCUMENT_ROOT.'/societe.class.php');
|
||||
include_once(DOL_DOCUMENT_ROOT.'/compta/bank/account.class.php');
|
||||
include_once(DOL_DOCUMENT_ROOT.'/product/stock/entrepot.class.php');
|
||||
|
||||
$company=new Societe($db);
|
||||
$company->fetch($conf->global->CASHDESK_ID_THIRDPARTY);
|
||||
$bank=new Account($db);
|
||||
$bank->fetch($conf->global->CASHDESK_ID_BANKACCOUNT);
|
||||
$warehouse=new Entrepot($db);
|
||||
$warehouse->fetch($conf->global->CASHDESK_ID_WAREHOUSE);
|
||||
|
||||
$langs->load("@cashdesk");
|
||||
|
||||
$logout='<img class="login" border="0" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/logout.png">';
|
||||
@ -25,11 +36,13 @@ $logout='<img class="login" border="0" src="'.DOL_URL_ROOT.'/theme/'.$conf->them
|
||||
print '<div class="menu_bloc">';
|
||||
print '<ul class="menu">';
|
||||
print '<li class="menu_choix1"><a href="affIndex.php?menu=facturation&id=NOUV"><span>Nouvelle vente</span></a></li>';
|
||||
|
||||
print '<li class="menu_choix2"><a href="'.eregi_replace('cashdesk','',$conf_url_racine).'"><span>Gestion commerciale</span></a></li>';
|
||||
print '<li class="menu_choix0"><a href="deconnexion.php"><span title="Cliquez pour quitter la session">Utilisateur : '.utf8_decode($_SESSION['prenom']).' '.$_SESSION['nom'].' '.$logout.'</span></a>';
|
||||
print '<a href="'.DOL_URL_ROOT.'/soc.php?socid='.$conf->global->CASHDESK_ID_THIRDPARTY.'">'.$langs->trans("CashDeskThirdParty").' : '.$conf->global->CASHDESK_ID_THIRDPARTY.'</a>';
|
||||
print '<a href="'.DOL_URL_ROOT.'/compta/bank/fiche.php?id='.$conf->global->CASHDESK_ID_BANKACCOUNT.'">'.$langs->trans("CashDeskBank").' : '.$conf->global->CASHDESK_ID_BANKACCOUNT.'</a>';
|
||||
print '<a href="'.DOL_URL_ROOT.'/product/stock/fiche.php?id='.$conf->global->CASHDESK_ID_WAREHOUSE.'">'.$langs->trans("CashDeskWarehouse").' : '.$conf->global->CASHDESK_ID_WAREHOUSE.'</a>';
|
||||
|
||||
print '<li class="menu_choix0">'.$langs->trans("User").' : '.$_SESSION['prenom'].' '.$_SESSION['nom'].' <a href="deconnexion.php">'.$logout.'</a><br>';
|
||||
print $langs->trans("CashDeskThirdParty").' : '.$company->getNomUrl(1).'<br>';
|
||||
print $langs->trans("CashDeskBank").' : '.$bank->getNomUrl(1).'<br>';
|
||||
print $langs->trans("CashDeskWarehouse").' : '.$warehouse->getNomUrl(1);
|
||||
print '</li></ul>';
|
||||
print '</div>';
|
||||
?>
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2008-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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
|
||||
@ -56,7 +56,7 @@ class modCashDesk extends DolibarrModules
|
||||
$this->description = "CashDesk module";
|
||||
|
||||
$this->revision = explode(' ','$Revision$');
|
||||
$this->version = 'development';
|
||||
$this->version = 'experimental';
|
||||
//$this->version = 'experimental'; // 'development' or 'experimental' or 'dolibarr' or version
|
||||
|
||||
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
|
||||
|
||||
@ -368,7 +368,6 @@ ConfirmCancelBillQuestion=لماذا تريدها لتصنيف هذه الفات
|
||||
ConfirmClassifyPaidPartiallyQuestion=هذه الفاتورة لم تدفع بالكامل. ما هي أسباب قريبة لك هذه الفاتورة؟
|
||||
ConfirmClassifyPaidPartiallyReasonOther=التخلي عن المبلغ لسبب آخر
|
||||
AlreadyPaid=دفعت بالفعل
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday المدفوعة (بدون مذكرات الائتمان والودائع)
|
||||
NoSupplierBillsUnpaid=لا الفواتير غير المدفوعة للموردين
|
||||
CustomerBillsUnpaid=فواتير غير مدفوعة للعملاء
|
||||
InvoicePaid=دفعت الفاتورة
|
||||
|
||||
@ -350,7 +350,6 @@ BillShortStatusConverted=Forarbejdede
|
||||
Prélèvements=Stående ordre
|
||||
Prélèvements=Stående ordrer
|
||||
ShowInvoiceDeposit=Vis depositum faktura
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday betales (uden kreditnotaer og indskud)
|
||||
SetDate=Indstil dato
|
||||
Deposit=Indbetaling
|
||||
Deposits=Indlån
|
||||
|
||||
@ -351,7 +351,6 @@ BillShortStatusConverted=Verarbeitete
|
||||
Prélèvements=Dauerauftrag
|
||||
Prélèvements=Daueraufträge
|
||||
ShowInvoiceDeposit=Show Anzahlung Rechnung
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday bezahlt (ohne Kredit-Banknoten und Einlagen)
|
||||
SetDate=Datum
|
||||
Deposit=Anzahlung
|
||||
Deposits=Einlagen
|
||||
|
||||
@ -176,7 +176,7 @@ ShowInvoiceDeposit=Show deposit invoice
|
||||
ShowPayment=Show payment
|
||||
File=File
|
||||
AlreadyPaid=Already paid
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday paid (without credit notes and deposits)
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits)
|
||||
Abandoned=Abandoned
|
||||
RemainderToPay=Remainder to pay
|
||||
RemainderToTake=Remainder to take
|
||||
|
||||
@ -346,7 +346,6 @@ BillShortStatusConverted=Jalostettu
|
||||
Prélèvements=Kestotilaus
|
||||
Prélèvements=Pysyvän tilaukset
|
||||
ShowInvoiceDeposit=Näytä tallettaa laskun
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday maksetaan (ilman hyvityslaskuja ja talletukset)
|
||||
SetDate=Aseta pvm
|
||||
Deposit=Talletuslokero
|
||||
Deposits=Talletukset
|
||||
|
||||
@ -388,7 +388,6 @@ HelpPaymentHigherThanReminderToPay=Attenzione, l'importo del pagamento di un
|
||||
BillStatusConverted=Convertito in sconto
|
||||
BillShortStatusConverted=Re
|
||||
ShowInvoiceDeposit=Visualizza deposito fattura
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday pagata (senza note di credito e dei depositi)
|
||||
SetDate=Imposta data
|
||||
Deposit=Deposito
|
||||
Deposits=Depositi
|
||||
|
||||
@ -370,7 +370,6 @@ AmountOfBills=Bedrag van de facturen
|
||||
AmountOfBillsByMonth=Bedrag van de facturen per maand
|
||||
ShowSocialContribution=Toon sociale bijdrage
|
||||
ShowInvoiceDeposit=Toon nederlegging factuur
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday betaald (zonder credit nota's en deposito's)
|
||||
Abandoned=Abandoned
|
||||
AmountExpected=Bedrag
|
||||
ExcessReceived=Overbagage ontvangen
|
||||
|
||||
@ -354,7 +354,6 @@ BillShortStatusConverted=Verwerkte
|
||||
Prélèvements=Doorlopende opdracht
|
||||
Prélèvements=Permanente opdrachten
|
||||
ShowInvoiceDeposit=Toon nederlegging factuur
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday betaald (zonder credit nota's en deposito's)
|
||||
SetDate=Ingestelde datum
|
||||
Deposit=Borgsom
|
||||
Deposits=Deposito's
|
||||
|
||||
@ -351,7 +351,6 @@ BillShortStatusConverted=Przetworzone
|
||||
Prélèvements=Zlecenie stałe
|
||||
Prélèvements=Zlecenia stałe
|
||||
ShowInvoiceDeposit=Pokaż złożeniu faktury
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday wypłacana (bez not kredytowych i depozytowych)
|
||||
SetDate=Ustaw datę
|
||||
Deposit=Depozyt
|
||||
Deposits=Depozyty
|
||||
|
||||
@ -367,7 +367,6 @@ ConsumedBy=Consumida por
|
||||
NotConsumed=Não consumiu
|
||||
HelpPaymentHigherThanReminderToPay=Atenção, o montante do pagamento de uma ou mais letras é maior do que o resto a pagar. <br> Edite sua entrada, caso contrário, confirmar e pensar sobre como criar uma nota de crédito do excesso recebido para cada overpaid facturas.
|
||||
BillShortStatusConverted=Transformados
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday paga (sem notas de crédito e depósitos)
|
||||
SetDate=Definir a data
|
||||
Deposit=Depósito
|
||||
Deposits=Depósitos
|
||||
|
||||
@ -348,7 +348,6 @@ BillShortStatusConverted=Prelucrate
|
||||
Prélèvements=Permanent pentru
|
||||
Prélèvements=Ordine de plată
|
||||
ShowInvoiceDeposit=Arata depozit factură
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday platite (fara note de credit şi depozite)
|
||||
SetDate=Setaţi data
|
||||
Deposit=Garantie
|
||||
Deposits=Depozite
|
||||
|
||||
@ -347,7 +347,6 @@ BillShortStatusConverted=Обработано
|
||||
Prélèvements=Постоянная порядка
|
||||
Prélèvements=Постоянные заказы
|
||||
ShowInvoiceDeposit=Показать депозитные счета
|
||||
AlreadyPaidNoCreditNotesNoDeposits=Alreday выплачивается (без кредитных нот и депозитам)
|
||||
SetDate=Установить дату
|
||||
Deposit=Депозиты
|
||||
Deposits=Депозиты
|
||||
|
||||
Loading…
Reference in New Issue
Block a user