diff --git a/ChangeLog b/ChangeLog index d93f5199c40..ff5a4cc8f93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -51,7 +51,7 @@ For users: - New: [ task #1204 ] add Numering contrat module free (like leopard in product module). - New: [ task #712 ] Add warning when creating invoice from proposal or order, when there is already one invoice. - New: Enable supplier price log table. -- New: [ task #1204 ] add a External reference to contract. +- New: [ task #1204 ] add a supplier reference to contract. - New: [ task #1218 ] Can drag and drop an event from calendar to change its day. - New: Optimize size of image static resources. - New: Add hourly and daily amount on user card. Add weekly working hours and salary on user card. @@ -59,7 +59,9 @@ For users: - New: Add option MAIN_GENERATE_INVOICES_WITH_PICTURE to show picture onto PDF like MAIN_GENERATE_PROPOSALS_WITH_PICTURE dir for proposals. - New: Add more search field in list of cheque deposits. +- New: Add feature to order to invoice on supplier part - Upgrade phpexcel lib to 1.7.8 +- New : Use of MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR to use disk cache for big excel export - Fix: [ bug #1487 ] PAYMENT_DELETE trigger does not intercept trigger action - Fix: [ bug #1470, #1472, #1473] User trigger problem - Fix: [ bug #1489, #1491 ] Intervention trigger problem diff --git a/composer.json b/composer.json index 4463efcfc74..f0de86ce7ea 100644 --- a/composer.json +++ b/composer.json @@ -24,6 +24,8 @@ "ext-mcrypt": "*", "ext-openssl": "*", "ext-mbstring": "*", - "ext-soap": "*" + "ext-soap": "*", + "ext-zip": "*", + "ext-xml": "*" } } diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 1c9de056acc..60b90a9cf31 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -460,7 +460,7 @@ if ($action == 'add' && $user->rights->adherent->creer) $object->email = $email; $object->login = $login; $object->pass = $pass; - $object->naiss = $birthdate; + $object->birth = $birthdate; $object->photo = $photo; $object->typeid = $typeid; //$object->note = $comment; @@ -883,7 +883,7 @@ else // Birthday print "".$langs->trans("Birthday")."\n"; - $form->select_date(($object->naiss ? $object->naiss : -1),'naiss','','',1,'formsoc'); + $form->select_date(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc'); print "\n"; // Profil public diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index bd43ed134af..a057e7cba93 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -1090,7 +1090,7 @@ class Adherent extends CommonObject $this->ref = $obj->rowid; $this->id = $obj->rowid; $this->ref_ext = $obj->ref_ext; - $this->civility_id = $obj->civility; + $this->civility_id = $obj->civility_id; $this->firstname = $obj->firstname; $this->lastname = $obj->lastname; $this->login = $obj->login; diff --git a/htdocs/cashdesk/css/style.css b/htdocs/cashdesk/css/style.css index 578d8fed6a2..c71dd9b78bc 100644 --- a/htdocs/cashdesk/css/style.css +++ b/htdocs/cashdesk/css/style.css @@ -215,11 +215,6 @@ p.titre { border: 1px solid #6d3f6d; } -.bouton_login input { - background: #fff; - border: 1px solid #6d3f6d; -} - .principal { float: left; margin: 0 15px; @@ -331,29 +326,6 @@ p.titre { } /* -------------- Boutons --------------------- */ -.bouton_ajout_article,.bouton_mode_reglement,.bouton_validation { - border: 1px solid #999; - background: #f7f7f7; - -background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(80,80,80,.3)) ); -} - -.bouton_ajout_article:hover,.bouton_mode_reglement:hover,.bouton_validation:hover -{ - background: #cccccc; -background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(80,80,80,.3) 100%); -background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(80,80,80,.3)) ); -} - .bouton_ajout_article { margin-top: 10px; width: 100%; diff --git a/htdocs/cashdesk/index.php b/htdocs/cashdesk/index.php index 8ea6063a5e4..a2eb40f2932 100644 --- a/htdocs/cashdesk/index.php +++ b/htdocs/cashdesk/index.php @@ -152,7 +152,7 @@ print "\n";
-
trans("Connection"); ?> />
+
trans("Connection"); ?> />
diff --git a/htdocs/cashdesk/tpl/facturation1.tpl.php b/htdocs/cashdesk/tpl/facturation1.tpl.php index 27c153b3799..1a009fcead0 100644 --- a/htdocs/cashdesk/tpl/facturation1.tpl.php +++ b/htdocs/cashdesk/tpl/facturation1.tpl.php @@ -144,7 +144,7 @@ $langs->load("cashdesk"); - " /> + " /> @@ -179,7 +179,7 @@ $langs->load("cashdesk"); $langs->load("errors"); print ''; } - else print ''; + else print ''; print ''; print ''; if (empty($_SESSION['CASHDESK_ID_BANKACCOUNT_CHEQUE']) || $_SESSION['CASHDESK_ID_BANKACCOUNT_CHEQUE'] < 0) @@ -187,7 +187,7 @@ $langs->load("cashdesk"); $langs->load("errors"); print ''; } - else print ''; + else print ''; print ''; print ''; if (empty($_SESSION['CASHDESK_ID_BANKACCOUNT_CB']) || $_SESSION['CASHDESK_ID_BANKACCOUNT_CB'] < 0) @@ -195,7 +195,7 @@ $langs->load("cashdesk"); $langs->load("errors"); print ''; } - else print ''; + else print ''; print ''; ?> @@ -203,14 +203,11 @@ $langs->load("cashdesk"); diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index e92dacc5dc9..2b59b6cf622 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -68,7 +68,7 @@ $result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions| if ($user->societe_id && $socid) $result = restrictedArea($user,'societe',$socid); $error=GETPOST("error"); -$donotclearsession=0; +$donotclearsession=GETPOST('donotclearsession')?GETPOST('donotclearsession'):0; $cactioncomm = new CActionComm($db); $object = new ActionComm($db); @@ -89,14 +89,16 @@ $hookmanager->initHooks(array('actioncard')); */ // Remove user to assigned list -if (! empty($_POST['removedassigned'])) +if (GETPOST('removedassigned') || GETPOST('removedassigned') == '0') { - $idtoremove=$_POST['removedassigned']; + $idtoremove=GETPOST('removedassigned'); + if (! empty($_SESSION['assignedtouser'])) $tmpassigneduserids=dol_json_decode($_SESSION['assignedtouser'],1); else $tmpassigneduserids=array(); + foreach ($tmpassigneduserids as $key => $val) { - if ($val['id'] == $idtoremove) unset($tmpassigneduserids[$key]); + if ($val['id'] == $idtoremove || $val['id'] == -1) unset($tmpassigneduserids[$key]); } //var_dump($_POST['removedassigned']);exit; $_SESSION['assignedtouser']=dol_json_encode($tmpassigneduserids); @@ -357,23 +359,23 @@ if ($action == 'update') $datep=dol_mktime($fulldayevent?'00':$aphour, $fulldayevent?'00':$apmin, 0, $_POST["apmonth"], $_POST["apday"], $_POST["apyear"]); $datef=dol_mktime($fulldayevent?'23':$p2hour, $fulldayevent?'59':$p2min, $fulldayevent?'59':'0', $_POST["p2month"], $_POST["p2day"], $_POST["p2year"]); - $object->fk_action = dol_getIdFromCode($db, $_POST["actioncode"], 'c_actioncomm'); - $object->label = $_POST["label"]; + $object->fk_action = dol_getIdFromCode($db, GETPOST("actioncode"), 'c_actioncomm'); + $object->label = GETPOST("label"); $object->datep = $datep; $object->datef = $datef; $object->percentage = $percentage; - $object->priority = $_POST["priority"]; - $object->fulldayevent= $_POST["fullday"]?1:0; + $object->priority = GETPOST("priority"); + $object->fulldayevent= GETPOST("fullday")?1:0; $object->location = GETPOST('location'); - $object->socid = $_POST["socid"]; - $object->contactid = $_POST["contactid"]; + $object->socid = GETPOST("socid"); + $object->contactid = GETPOST("contactid",'int'); //$object->societe->id = $_POST["socid"]; // deprecated //$object->contact->id = $_POST["contactid"]; // deprecated - $object->fk_project = $_POST["projectid"]; - $object->note = $_POST["note"]; - $object->pnote = $_POST["note"]; - $object->fk_element = $_POST["fk_element"]; - $object->elementtype = $_POST["elementtype"]; + $object->fk_project = GETPOST("projectid",'int'); + $object->note = GETPOST("note"); + $object->pnote = GETPOST("note"); + $object->fk_element = GETPOST("fk_element"); + $object->elementtype = GETPOST("elementtype"); if (! $datef && $percentage == 100) { @@ -394,7 +396,7 @@ if ($action == 'update') $tmplist1=dol_json_decode($_SESSION['assignedtouser'], true); $tmplist2=array(); foreach($tmplist1 as $key => $val) { - if ($val['id'] && $val['id'] != $assignedtouser) $listofuserid[$val['id']]=$val; + if ($val['id'] > 0 && $val['id'] != $assignedtouser) $listofuserid[$val['id']]=$val; } } @@ -603,6 +605,7 @@ if ($action == 'create') print ''; print ''; print ''; + print ''; if ($backtopage) print ''; if (GETPOST("actioncode") == 'AC_RDV') print_fiche_titre($langs->trans("AddActionRendezVous")); @@ -610,7 +613,7 @@ if ($action == 'create') print '
- " onclick="javascript: verifClic('DIF');" /> + " onclick="javascript: verifClic('DIF');" /> trans("DateEcheance").' :'; print $form->select_date(-1,'txtDatePaiement'); ?> -
'; - // Type d'action actifs + // Type of event if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) { print ''; - // Type + // Type of event if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) { print ''; } + else print ''; // Title print 'global->AGENDA_USE_EVENT_TYPE)?' class="fieldrequired"':'').'>'.$langs->trans("Title").''; @@ -1225,7 +1229,7 @@ if ($id > 0) // Link to agenda views print '
'; - print ''; + print ''; print ''; print ''; print ''; @@ -1234,7 +1238,7 @@ if ($id > 0) //print ''; print img_picto($langs->trans("ViewCal"),'object_calendar','class="hideonsmartphone"').' '; print ''."\n"; - print '
'; + print ''; print ''; print ''; print ''; @@ -1243,7 +1247,7 @@ if ($id > 0) //print ''; print img_picto($langs->trans("ViewCal"),'object_calendarweek','class="hideonsmartphone"').' '; print ''."\n"; - print '
'; + print ''; print ''; print ''; print ''; @@ -1252,7 +1256,7 @@ if ($id > 0) //print ''; print img_picto($langs->trans("ViewCal"),'object_calendarday','class="hideonsmartphone"').' '; print ''."\n"; - print '
'; + print ''; print ''; print ''; print ''; diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index fc75488ee3d..692ce2058d3 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -95,14 +95,16 @@ class ActionComm extends CommonObject */ function __construct($db) { + global $langs; + $this->db = $db; //$this->author = new stdClass(); //$this->usermod = new stdClass(); //$this->usertodo = new stdClass(); //$this->userdone = new stdClass(); - $this->societe = new stdClass(); - $this->contact = new stdClass(); + $this->societe = new stdClass(); // deprecated + $this->contact = new stdClass(); // deprecated } /** @@ -415,7 +417,9 @@ class ActionComm extends CommonObject while ($obj = $this->db->fetch_object($resql2)) { $this->userassigned[$obj->fk_element]=array('id'=>$obj->fk_element, 'mandatory'=>$obj->mandatory, 'answer_status'=>$obj->answer_status, 'transparency'=>$obj->transparency); + if (empty($this->userownerid)) $this->userownerid=$obj->fk_element; // If not defined (should not happened, we fix this) } + return 1; } else @@ -524,6 +528,11 @@ class ActionComm extends CommonObject return -1; } + $socid=($this->socid?$this->socid:((isset($this->societe->id) && $this->societe->id > 0) ? $this->societe->id : 0)); + $contactid=($this->contactid?$this->contactid:((isset($this->contact->id) && $this->contact->id > 0) ? $this->contact->id : 0)); + $userownerid=($this->userownerid?$this->userownerid:((isset($this->usertodo->id) && $this->usertodo->id > 0) ? $this->usertodo->id : 0)); + $userdoneid=($this->userdoneid?$this->userdoneid:((isset($this->userdone->id) && $this->userdone->id > 0) ? $this->userdone->id : 0)); + $this->db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm "; @@ -534,16 +543,16 @@ class ActionComm extends CommonObject $sql.= ", datep2 = ".(strval($this->datef)!='' ? "'".$this->db->idate($this->datef)."'" : 'null'); $sql.= ", durationp = ".(isset($this->durationp) && $this->durationp >= 0 && $this->durationp != ''?"'".$this->durationp."'":"null"); // deprecated $sql.= ", note = ".($this->note ? "'".$this->db->escape($this->note)."'":"null"); - $sql.= ", fk_soc =". ($this->societe->id > 0 ? "'".$this->societe->id."'":"null"); + $sql.= ", fk_soc =". ($this->socid > 0 ? "'".$this->socid."'":"null"); $sql.= ", fk_project =". ($this->fk_project > 0 ? "'".$this->fk_project."'":"null"); - $sql.= ", fk_contact =". ($this->contact->id > 0 ? "'".$this->contact->id."'":"null"); + $sql.= ", fk_contact =". ($contactid > 0 ? "'".$this->contactid."'":"null"); $sql.= ", priority = '".$this->priority."'"; $sql.= ", fulldayevent = '".$this->fulldayevent."'"; $sql.= ", location = ".($this->location ? "'".$this->db->escape($this->location)."'":"null"); $sql.= ", transparency = '".$this->transparency."'"; $sql.= ", fk_user_mod = '".$user->id."'"; - $sql.= ", fk_user_action=".($this->usertodo->id > 0 ? "'".$this->usertodo->id."'":"null"); - $sql.= ", fk_user_done=".($this->userdone->id > 0 ? "'".$this->userdone->id."'":"null"); + $sql.= ", fk_user_action=".($userownerid > 0 ? "'".$userownerid."'":"null"); + $sql.= ", fk_user_done=".($userdoneid > 0 ? "'".$userdoneid."'":"null"); if (! empty($this->fk_element)) $sql.= ", fk_element=".($this->fk_element?$this->fk_element:"null"); if (! empty($this->elementtype)) $sql.= ", elementtype=".($this->elementtype?"'".$this->elementtype."'":"null"); $sql.= " WHERE id=".$this->id; diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index ad3bfddd2ef..f20fe750d33 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -320,7 +320,7 @@ $sql.= ' a.datea2,'; $sql.= ' a.percent,'; $sql.= ' a.fk_user_author,a.fk_user_action,a.fk_user_done,'; $sql.= ' a.transparency, a.priority, a.fulldayevent, a.location,'; -$sql.= ' a.fk_soc, a.fk_contact,'; +$sql.= ' a.fk_soc, a.fk_contact, a.fk_element, a.elementtype,'; $sql.= ' ca.code, ca.color'; $sql.= ' FROM '.MAIN_DB_PREFIX.'c_actioncomm as ca, '.MAIN_DB_PREFIX."actioncomm as a"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON a.fk_soc = sc.fk_soc"; @@ -415,6 +415,9 @@ if ($resql) //$event->societe->id=$obj->fk_soc; // deprecated //$event->contact->id=$obj->fk_contact; // deprecated + $event->fk_element=$obj->fk_element; + $event->elementtype=$obj->elementtype; + // Defined date_start_in_calendar and date_end_in_calendar property // They are date start and end of action but modified to not be outside calendar view. if ($event->percentage <= 0) @@ -598,8 +601,13 @@ else } // Load array of colors by type -// TODO $colorsbytype=array(); +$sql="SELECT code, color FROM ".MAIN_DB_PREFIX."c_actioncomm"; +$resql=$db->query($sql); +while ($obj = $db->fetch_object($resql)) +{ + $colorsbytype[$obj->code]=$obj->color; +} // Loop on each user to show calendar $todayarray=dol_getdate($now,'fast'); @@ -704,14 +712,15 @@ $db->close(); * @param int $showinfo Add extended information (used by day view) * @param int $minheight Minimum height for each event. 60px by default. * @param boolean $showheader Show header + * @param array $colorsbytype Array with colors by type * @return void */ -function show_day_events2($username, $day, $month, $year, $monthshown, $style, &$eventarray, $maxprint=0, $maxnbofchar=16, $newparam='', $showinfo=0, $minheight=60, $showheader=false) +function show_day_events2($username, $day, $month, $year, $monthshown, $style, &$eventarray, $maxprint=0, $maxnbofchar=16, $newparam='', $showinfo=0, $minheight=60, $showheader=false, $colorsbytype=array()) { global $db; - global $user, $conf, $langs; + global $user, $conf, $langs, $hookmanager, $action; global $filter, $filtera, $filtert, $filterd, $status, $actioncode; // Filters used into search form - global $theme_datacolor; + global $theme_datacolor; // Array with a list of different we can use (come from theme) global $cachethirdparties, $cachecontacts, $colorindexused; global $begin_h, $end_h; @@ -743,6 +752,10 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & if (! in_array($username->id,$keysofuserassigned)) continue; // We discard record if event is from another user than user we want to show //if ($username->id != $event->userownerid) continue; // We discard record if event is from another user than user we want to show + $parameters=array(); + $reshook=$hookmanager->executeHooks('formatEvent',$parameters,$event,$action); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + $ponct=($event->date_start_in_calendar == $event->date_end_in_calendar); // Define $color (Hex string like '0088FF') and $cssclass of event @@ -750,12 +763,13 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & if (in_array($user->id, $keysofuserassigned)) { $nummytasks++; $cssclass='family_mytasks'; - $color=$event->type_color; + if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) $color=$event->type_color; } else if ($event->type_code == 'ICALEVENT') { $numical++; - if (! empty($event->icalname)) { + if (! empty($event->icalname)) + { if (! isset($numicals[dol_string_nospecial($event->icalname)])) { $numicals[dol_string_nospecial($event->icalname)] = 0; } @@ -772,7 +786,9 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & else { $numother++; $cssclass='family_other'; + if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) $color=$event->type_color; } + if ($color < 0) // Color was not forced. Set color according to color index. { // Define color index if not yet defined @@ -858,8 +874,8 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & $cases2[$h][$event->id]['string']=$event->label; $cases1[$h][$event->id]['typecode']=$event->type_code; $cases2[$h][$event->id]['typecode']=$event->type_code; - $cases1[$h][$event->id]['color']='009900'; - $cases2[$h][$event->id]['color']='009900'; + $cases1[$h][$event->id]['color']=$color; + $cases2[$h][$event->id]['color']=$color; } } $i++; diff --git a/htdocs/compta/hrm.php b/htdocs/compta/hrm.php index c0b2afd38c8..dae4ce9aa7d 100644 --- a/htdocs/compta/hrm.php +++ b/htdocs/compta/hrm.php @@ -38,6 +38,8 @@ $langs->load('users'); $langs->load('holidays'); $langs->load('trips'); +$socid=GETPOST("socid"); + // Protection if external user if ($user->societe_id > 0) accessforbidden(); @@ -117,7 +119,7 @@ if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAI $sql.= " WHERE u.rowid = d.fk_user"; $sql.= " AND d.entity = ".$conf->entity; if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND d.fk_soc = s. rowid AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; -if (!empty($socid)) $sql.= " AND d.fk_soc = ".$socid; // FIXME $socid is not defined +if (!empty($socid)) $sql.= " AND d.fk_soc = ".$socid; $sql.= $db->order("d.tms","DESC"); $sql.= $db->plimit($max, 0); diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php index 12fac084d55..19054bfd7c9 100644 --- a/htdocs/compta/resultat/clientfourn.php +++ b/htdocs/compta/resultat/clientfourn.php @@ -547,128 +547,135 @@ if ($mysoc->tva_assuj == 'franchise') // Non assujeti * Salaries */ -print '
'; -$sql = "SELECT u.rowid, u.firstname, u.lastname, p.fk_user, p.label as nom, date_format(p.datep,'%Y-%m') as dm, sum(p.amount) as amount"; -$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p"; -$sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid=p.fk_user"; -$sql.= " WHERE p.entity = ".$conf->entity; -if (! empty($date_start) && ! empty($date_end)) - $sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'"; - -$sql.= " GROUP BY u.rowid, u.firstname, u.lastname, p.fk_user, p.label, dm"; -$sql.= " ORDER BY u.firstname"; - -dol_syslog("get payment salaries"); -$result=$db->query($sql); -$subtotal_ht = 0; -$subtotal_ttc = 0; -if ($result) +if ($conf->salaries->enabled) { - $num = $db->num_rows($result); - $var=true; - $i = 0; - if ($num) - { - while ($i < $num) - { - $obj = $db->fetch_object($result); + print ''; + $sql = "SELECT u.rowid, u.firstname, u.lastname, p.fk_user, p.label as nom, date_format(p.datep,'%Y-%m') as dm, sum(p.amount) as amount"; + $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p"; + $sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid=p.fk_user"; + $sql.= " WHERE p.entity = ".$conf->entity; + if (! empty($date_start) && ! empty($date_end)) + $sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'"; - $total_ht -= $obj->amount; - $total_ttc -= $obj->amount; - $subtotal_ht += $obj->amount; - $subtotal_ttc += $obj->amount; + $sql.= " GROUP BY u.rowid, u.firstname, u.lastname, p.fk_user, p.label, dm"; + $sql.= " ORDER BY u.firstname"; - $var = !$var; - print ""; + dol_syslog("get payment salaries"); + $result=$db->query($sql); + $subtotal_ht = 0; + $subtotal_ttc = 0; + if ($result) + { + $num = $db->num_rows($result); + $var=true; + $i = 0; + if ($num) + { + while ($i < $num) + { + $obj = $db->fetch_object($result); - print "\n"; + $total_ht -= $obj->amount; + $total_ttc -= $obj->amount; + $subtotal_ht += $obj->amount; + $subtotal_ttc += $obj->amount; - if ($modecompta == 'CREANCES-DETTES') print ''; - print ''; - print ''; - $i++; - } - } - else - { - $var = !$var; - print ""; - print ''; - print ''; - } + $var = !$var; + print ""; + + print "\n"; + + if ($modecompta == 'CREANCES-DETTES') print ''; + print ''; + print ''; + $i++; + } + } + else + { + $var = !$var; + print ""; + print ''; + print ''; + } + } + else + { + dol_print_error($db); + } + print ''; + if ($modecompta == 'CREANCES-DETTES') + print ''; + print ''; + print ''; } -else -{ - dol_print_error($db); -} -print ''; -if ($modecompta == 'CREANCES-DETTES') - print ''; -print ''; -print ''; + /* - * Dunning -*/ + * Donation + */ -print ''; -$sql = "SELECT p.societe as nom, p.firstname, p.lastname, date_format(p.datedon,'%Y-%m') as dm, sum(p.amount) as amount"; -$sql.= " FROM ".MAIN_DB_PREFIX."don as p"; -$sql.= " WHERE p.entity = ".$conf->entity; -$sql.= " AND fk_statut=2"; -if (! empty($date_start) && ! empty($date_end)) - $sql.= " AND p.datedon >= '".$db->idate($date_start)."' AND p.datedon <= '".$db->idate($date_end)."'"; -$sql.= " GROUP BY p.societe, p.firstname, p.lastname"; -$sql.= " ORDER BY p.societe, p.firstname, p.lastname"; - -dol_syslog("get dunning"); -$result=$db->query($sql); -$subtotal_ht = 0; -$subtotal_ttc = 0; -if ($result) +if ($conf->donation->enabled) { - $num = $db->num_rows($result); - $var=true; - $i = 0; - if ($num) + print ''; + $sql = "SELECT p.societe as nom, p.firstname, p.lastname, date_format(p.datedon,'%Y-%m') as dm, sum(p.amount) as amount"; + $sql.= " FROM ".MAIN_DB_PREFIX."don as p"; + $sql.= " WHERE p.entity = ".$conf->entity; + $sql.= " AND fk_statut=2"; + if (! empty($date_start) && ! empty($date_end)) + $sql.= " AND p.datedon >= '".$db->idate($date_start)."' AND p.datedon <= '".$db->idate($date_end)."'"; + $sql.= " GROUP BY p.societe, p.firstname, p.lastname, dm"; + $sql.= " ORDER BY p.societe, p.firstname, p.lastname, dm"; + + dol_syslog("get dunning"); + $result=$db->query($sql); + $subtotal_ht = 0; + $subtotal_ttc = 0; + if ($result) { - while ($i < $num) + $num = $db->num_rows($result); + $var=true; + $i = 0; + if ($num) { - $obj = $db->fetch_object($result); + while ($i < $num) + { + $obj = $db->fetch_object($result); - $total_ht += $obj->amount; - $total_ttc += $obj->amount; - $subtotal_ht += $obj->amount; - $subtotal_ttc += $obj->amount; + $total_ht += $obj->amount; + $total_ttc += $obj->amount; + $subtotal_ht += $obj->amount; + $subtotal_ttc += $obj->amount; + $var = !$var; + print ""; + + print "\n"; + + if ($modecompta == 'CREANCES-DETTES') print ''; + print ''; + print ''; + $i++; + } + } + else + { $var = !$var; print ""; - - print "\n"; - - if ($modecompta == 'CREANCES-DETTES') print ''; - print ''; + print ''; print ''; - $i++; } } else { - $var = !$var; - print ""; - print ''; - print ''; + dol_print_error($db); } + print ''; + if ($modecompta == 'CREANCES-DETTES') + print ''; + print ''; + print ''; } -else -{ - dol_print_error($db); -} -print ''; -if ($modecompta == 'CREANCES-DETTES') - print ''; -print ''; -print ''; /* * VAT diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 11eb366e98c..c65e9601e53 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -39,6 +39,7 @@ $contactid = GETPOST('id','int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'contact', $contactid,''); +$search_firstlast_only=GETPOST("search_firstlast_only"); $search_lastname=GETPOST("search_lastname"); $search_firstname=GETPOST("search_firstname"); $search_societe=GETPOST("search_societe"); @@ -51,8 +52,8 @@ $search_fax=GETPOST("search_fax"); $search_email=GETPOST("search_email"); $search_skype=GETPOST("search_skype"); $search_priv=GETPOST("search_priv"); -$search_categ = GETPOST("search_categ",'int'); -$search_status = GETPOST("search_status",'int'); +$search_categ=GETPOST("search_categ",'int'); +$search_statu=GETPOST("search_status",'int'); if ($search_status=='') $search_status=1; // always display activ customer first @@ -74,7 +75,12 @@ $offset = $limit * $page; $langs->load("companies"); $titre = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("ListOfContacts") : $langs->trans("ListOfContactsAddresses")); -if ($type == "c" || $type=="p") +if ($type == "p") +{ + $titre.=' ('.$langs->trans("ThirdPartyProspects").')'; + $urlfiche="card.php"; +} +if ($type == "c") { $titre.=' ('.$langs->trans("ThirdPartyCustomers").')'; $urlfiche="card.php"; @@ -92,6 +98,7 @@ else if ($type == "o") if (GETPOST('button_removefilter')) { + $search_firstlast_only=""; $search_lastname=""; $search_firstname=""; $search_societe=""; @@ -154,6 +161,9 @@ else if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$search_categ; if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL"; +if ($search_firstlast_only) { + $sql .= natural_search(array('p.lastname','p.firstname'), $search_firstlast_only); +} if ($search_lastname) { // filter on lastname $sql .= natural_search('p.lastname', $search_lastname); } @@ -213,7 +223,7 @@ else if ($type == "p") // filtre sur type } if ($sall) { - $sql .= natural_search(array('p.lastname', 'p.firstname', 'p.email'), $sall); + $sql .= natural_search(array('p.lastname', 'p.firstname', 'p.email', 's.nom'), $sall); } if (! empty($socid)) { @@ -277,9 +287,12 @@ if ($result) if ($sall) { - print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname")." ".$langs->trans("or")." ".$langs->trans("EMail")."): ".$sall; + print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("ThirdParty")." ".$langs->trans("or")." ".$langs->trans("EMail")."): ".$sall; } - + if ($search_firstlast_only) + { + print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname")."): ".$search_firstlast_only; + } print '
'.$langs->trans("Type").''; @@ -862,13 +865,14 @@ if ($id > 0) // Ref print '
'.$langs->trans("Ref").''.$object->id.'
'.$langs->trans("Type").''; $formactions->select_type_actions(GETPOST("actioncode")?GETPOST("actioncode"):$object->type_code, "actioncode","systemauto"); print '
'.$langs->trans("Salaries").'
'.$langs->trans("Salaries").'
 ".$langs->trans("Salaries")." fk_user."\">".$obj->firstname." ".$obj->lastname."'.price(-$obj->amount).''.price(-$obj->amount).'
 '.$langs->trans("None").'
 ".$langs->trans("Salaries")." fk_user."\">".$obj->firstname." ".$obj->lastname."'.price(-$obj->amount).''.price(-$obj->amount).'
 '.$langs->trans("None").'
'.price(-$subtotal_ht).''.price(-$subtotal_ttc).'
'.price(-$subtotal_ht).''.price(-$subtotal_ttc).'
'.$langs->trans("Donation").'
'.$langs->trans("Donation").'
 ".$langs->trans("Donation")." nom."&search_name=".$obj->firstname." ".$obj->lastname."\">".$obj->nom. " ".$obj->firstname." ".$obj->lastname."'.price($obj->amount).''.price($obj->amount).'
 ".$langs->trans("Donation")." nom."&search_name=".$obj->firstname." ".$obj->lastname."\">".$obj->nom. " ".$obj->firstname." ".$obj->lastname."'.price($obj->amount).''.price($obj->amount).''.$langs->trans("None").'
 '.$langs->trans("None").'
'.price($subtotal_ht).''.price($subtotal_ttc).'
'.price($subtotal_ht).''.price($subtotal_ttc).'
'; // Ligne des titres diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index c4596c96a76..8dbf4d35fa4 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -29,18 +29,18 @@ */ require ("../main.inc.php"); -require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/contract.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/contrat/class/contrat.class.php'; -require_once DOL_DOCUMENT_ROOT . '/core/modules/contract/modules_contract.php'; -require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/contract.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/modules/contract/modules_contract.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php'; -if (! empty($conf->produit->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; -if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT . '/comm/propal/class/propal.class.php'; +if (! empty($conf->produit->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; if (! empty($conf->projet->enabled)) { - require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; - require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php'; + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; @@ -215,7 +215,7 @@ if ($action == 'add' && $user->rights->contrat->creer) $object->fk_project = GETPOST('projectid','int'); $object->remise_percent = GETPOST('remise_percent','alpha'); $object->ref = GETPOST('ref','alpha'); - $object->ref_customer = GETPOST('ref_customer','alpha'); + $object->ref_supplier = GETPOST('ref_supplier','alpha'); // If creation from another object of another module (Example: origin=propal, originid=1) if ($_POST['origin'] && $_POST['originid']) @@ -718,13 +718,17 @@ else if ($action == 'confirm_move' && $confirm == 'yes' && $user->rights->contra $action = 'edit_extras'; setEventMessage($object->error,'errors'); } -} elseif ($action=='setref_customer') { - $object->ref_customer=GETPOST('ref_customer','alpha'); +} elseif ($action=='setref_supplier') { + $result = $object->fetch($id); + if ($result < 0) { + setEventMessage($object->errors,'errors'); + } + $object->ref_supplier=GETPOST('ref_supplier','alpha'); $result = $object->update($user); if ($result < 0) { setEventMessage($object->errors,'errors'); - $action='editref_customer'; + $action='editref_supplier'; } else { header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); exit; @@ -934,7 +938,7 @@ if ($action == 'create') // Ref Int print ''; - print ''; + print ''; // Customer print ''; @@ -1131,9 +1135,9 @@ else print ''; print ''; print ''; @@ -1812,8 +1816,8 @@ else /* * Linked object block - */ - $somethingshown = $object->showLinkedObjectBlock(); + */ + $somethingshown=$object->showLinkedObjectBlock(); print '
'; diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index 0ddb1618f34..20f325658f6 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -46,7 +46,7 @@ class Contrat extends CommonObject var $id; var $ref; var $ref_ext; - var $ref_customer; + var $ref_supplier; var $socid; var $societe; // Objet societe var $statut=0; // 0=Draft, @@ -403,7 +403,7 @@ class Contrat extends CommonObject $sql.= " fk_projet,"; $sql.= " fk_commercial_signature, fk_commercial_suivi,"; $sql.= " note_private, note_public, model_pdf, extraparams"; - $sql.= " ,ref_customer"; + $sql.= " ,ref_supplier"; $sql.= " ,ref_ext"; $sql.= " FROM ".MAIN_DB_PREFIX."contrat"; if ($ref) @@ -423,7 +423,7 @@ class Contrat extends CommonObject { $this->id = $result["rowid"]; $this->ref = (!isset($result["ref"]) || !$result["ref"]) ? $result["rowid"] : $result["ref"]; - $this->ref_customer = $result["ref_customer"]; + $this->ref_supplier = $result["ref_supplier"]; $this->ref_ext = $result["ref_ext"]; $this->statut = $result["statut"]; $this->mise_en_service = $this->db->jdate($result["datemise"]); @@ -726,7 +726,7 @@ class Contrat extends CommonObject // Insert contract $sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat (datec, fk_soc, fk_user_author, date_contrat,"; $sql.= " fk_commercial_signature, fk_commercial_suivi, fk_projet,"; - $sql.= " ref, entity, note_private, note_public, ref_customer, ref_ext)"; + $sql.= " ref, entity, note_private, note_public, ref_supplier, ref_ext)"; $sql.= " VALUES ('".$this->db->idate($now)."',".$this->socid.",".$user->id; $sql.= ", '".$this->db->idate($this->date_contrat)."'"; $sql.= ",".($this->commercial_signature_id>0?$this->commercial_signature_id:"NULL"); @@ -736,7 +736,7 @@ class Contrat extends CommonObject $sql.= ", ".$conf->entity; $sql.= ", ".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL"); $sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL"); - $sql.= ", ".(!empty($this->ref_customer)?("'".$this->db->escape($this->ref_customer)."'"):"NULL"); + $sql.= ", ".(!empty($this->ref_supplier)?("'".$this->db->escape($this->ref_supplier)."'"):"NULL"); $sql.= ", ".(!empty($this->ref_ext)?("'".$this->db->escape($this->ref_ext)."'"):"NULL"); $sql.= ")"; $resql=$this->db->query($sql); @@ -988,7 +988,7 @@ class Contrat extends CommonObject // Clean parameters if (isset($this->ref)) $this->ref=trim($this->ref); - if (isset($this->ref_customer)) $this->ref_customer=trim($this->ref_customer); + if (isset($this->ref_supplier)) $this->ref_supplier=trim($this->ref_supplier); if (isset($this->ref_ext)) $this->ref_ext=trim($this->ref_ext); if (isset($this->entity)) $this->entity=trim($this->entity); if (isset($this->statut)) $this->statut=trim($this->statut); @@ -1012,7 +1012,7 @@ class Contrat extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET"; $sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").","; - $sql.= " ref_customer=".(isset($this->ref_customer)?"'".$this->db->escape($this->ref_customer)."'":"null").","; + $sql.= " ref_supplier=".(isset($this->ref_supplier)?"'".$this->db->escape($this->ref_supplier)."'":"null").","; $sql.= " ref_ext=".(isset($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null").","; $sql.= " entity=".$conf->entity.","; $sql.= " date_contrat=".(dol_strlen($this->date_contrat)!=0 ? "'".$this->db->idate($this->date_contrat)."'" : 'null').","; diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index 7970e80603c..5f9c2099107 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -42,7 +42,7 @@ $offset = $limit * $page ; $search_nom=GETPOST('search_nom'); $search_contract=GETPOST('search_contract'); -$search_ref_customer=GETPOST('search_ref_customer','alpha'); +$search_ref_supplier=GETPOST('search_ref_supplier','alpha'); $sall=GETPOST('sall'); $statut=GETPOST('statut')?GETPOST('statut'):1; $socid=GETPOST('socid'); @@ -75,7 +75,7 @@ $sql.= ' SUM('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NOT NULL AND $sql.= ' SUM('.$db->ifsql("cd.statut=5",1,0).') as nb_closed,'; $sql.= " c.rowid as cid, c.ref, c.datec, c.date_contrat, c.statut,"; $sql.= " s.nom, s.rowid as socid"; -$sql.= " ,c.ref_customer"; +$sql.= " ,c.ref_supplier"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ", ".MAIN_DB_PREFIX."contrat as c"; @@ -90,8 +90,8 @@ if ($search_nom) { if ($search_contract) { $sql .= natural_search(array('c.rowid', 'c.ref'), $search_contract); } -if (!empty($search_ref_customer)) { - $sql .= natural_search(array('c.ref_customer'), $search_ref_customer); +if (!empty($search_ref_supplier)) { + $sql .= natural_search(array('c.ref_supplier'), $search_ref_supplier); } if ($sall) { $sql .= natural_search(array('s.nom', 'cd.label', 'cd.description'), $sall); @@ -114,9 +114,9 @@ if ($resql) print '
'; $param='&search_contract='.$search_contract; $param.='&search_nom='.$search_nom; - $param.='&search_ref_customer='.$search_ref_customer; + $param.='&search_ref_supplier='.$search_ref_supplier; print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid","","$param",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefCustomer"), $_SERVER["PHP_SELF"], "c.ref_customer","","$param",'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("RefCustomer"), $_SERVER["PHP_SELF"], "c.ref_supplier","","$param",'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom","","$param",'',$sortfield,$sortorder); //print_liste_field_titre($langs->trans("DateCreation"), $_SERVER["PHP_SELF"], "c.datec","","$param",'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateContract"), $_SERVER["PHP_SELF"], "c.date_contrat","","$param",'align="center"',$sortfield,$sortorder); @@ -134,7 +134,7 @@ if ($resql) print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; //print ''; print ''; diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php index c402353e8d7..babddd9a2fe 100644 --- a/htdocs/core/class/hookmanager.class.php +++ b/htdocs/core/class/hookmanager.class.php @@ -114,8 +114,8 @@ class HookManager * * @param string $method Name of method hooked ('doActions', 'printSearchForm', 'showInputField', ...) * @param array $parameters Array of parameters - * @param Object $object Object to use hooks on - * @param string $action Action code on calling page ('create', 'edit', 'view', 'add', 'update', 'delete'...) + * @param Object $object Object to use hooks on + * @param string $action Action code on calling page ('create', 'edit', 'view', 'add', 'update', 'delete'...) * @return mixed For doActions,formObjectOptions,pdf_xxx: Return 0 if we want to keep standard actions, >0 if if want to stop standard actions, <0 means KO. * For printSearchForm,printLeftBlock,printTopRightMenu,formAddObjectLine,...: Return HTML string. TODO Deprecated. Must always return an int and things to print into ->resprints. * Can also return some values into an array ->results. @@ -144,7 +144,8 @@ class HookManager 'moveUploadedFile', 'pdf_writelinedesc', 'paymentsupplierinvoices', - 'printSearchForm' + 'printSearchForm', + 'formatEvent' ) )) $hooktype='addreplace'; diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index c8cccefda7f..87dfcf1367b 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -100,7 +100,7 @@ function dol_hash($chain,$type=0) * @param string $features Features to check (it must be module name. Examples: 'societe', 'contact', 'produit&service', 'produit|service', ...) * @param int $objectid Object ID if we want to check a particular record (optional) is linked to a owned thirdparty (optional). * @param string $dbtablename 'TableName&SharedElement' with Tablename is table where object is stored. SharedElement is an optional key to define where to check entity. Not used if objectid is null (optional) - * @param string $feature2 Feature to check, second level of permission (optional) + * @param string $feature2 Feature to check, second level of permission (optional). Can be or check with 'level1|level2'. * @param string $dbt_keyfield Field name for socid foreign key if not fk_soc. Not used if objectid is null (optional) * @param string $dbt_select Field name for select if not rowid. Not used if objectid is null (optional) * @param Canvas $objcanvas Object canvas @@ -140,7 +140,7 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature // Check read permission from module $readok=1; $nbko=0; - foreach ($featuresarray as $feature) + foreach ($featuresarray as $feature) // first we check nb of test ko { if (! empty($user->societe_id) && ! empty($conf->global->MAIN_MODULES_FOR_EXTERNAL) && ! in_array($feature,$listofmodules)) // If limits on modules for external users, module must be into list of modules for external users { @@ -174,11 +174,17 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature } else if (! empty($feature2)) // This should be used for future changes { + $tmpreadok=1; foreach($feature2 as $subfeature) { - if (! empty($subfeature) && empty($user->rights->$feature->$subfeature->lire) && empty($user->rights->$feature->$subfeature->read)) { $readok=0; $nbko++; } - else if (empty($subfeature) && empty($user->rights->$feature->lire) && empty($user->rights->$feature->read)) { $readok=0; $nbko++; } - else { $readok=1; break; } // Break is to bypass second test if the first is ok + if (! empty($subfeature) && empty($user->rights->$feature->$subfeature->lire) && empty($user->rights->$feature->$subfeature->read)) { $tmpreadok=0; } + else if (empty($subfeature) && empty($user->rights->$feature->lire) && empty($user->rights->$feature->read)) { $tmpreadok=0; } + else { $tmpreadok=1; break; } // Break is to bypass second test if the first is ok + } + if (! $tmpreadok) // We found a test on feature that is ko + { + $readok=0; // All tests are ko (we manage here the and, the or will be managed later using $nbko). + $nbko++; } } else if (! empty($feature) && ($feature!='user' && $feature!='usergroup')) // This is for old permissions diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index bea92481d12..86e74cfcc5f 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -624,7 +624,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu } // Contacts - $newmenu->add("/contact/list.php?leftmenu=contacts", (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")), 0, $user->rights->societe->contact->lire, '', $mainmenu, 'contacts'); + $newmenu->add("/societe/index.php?leftmenu=thirdparties", (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("ThirdParty") : $langs->trans("ContactsAddresses")), 0, $user->rights->societe->contact->lire, '', $mainmenu, 'contacts'); $newmenu->add("/contact/card.php?leftmenu=contacts&action=create", (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("NewContact") : $langs->trans("NewContactAddress")), 1, $user->rights->societe->contact->creer); $newmenu->add("/contact/list.php?leftmenu=contacts", $langs->trans("List"), 1, $user->rights->societe->contact->lire); if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire); @@ -790,6 +790,15 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (! empty($conf->facture->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=-3", $langs->trans("MenuOrdersToBill2"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); // if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire); } + + // Supplier Orders + if (! empty($conf->fournisseur->enabled)) + { + $langs->load("supplier"); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders&search_status=5", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); + // if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire); + } + // Donations if (! empty($conf->don->enabled)) diff --git a/htdocs/core/modules/export/export_excel.modules.php b/htdocs/core/modules/export/export_excel.modules.php index bab287ff3b6..87923b4cb9c 100644 --- a/htdocs/core/modules/export/export_excel.modules.php +++ b/htdocs/core/modules/export/export_excel.modules.php @@ -190,6 +190,14 @@ class ExportExcel extends ModeleExports return -1; } } + + if (!empty($conf->global->MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR)) { + $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_discISAM; + $cacheSettings = array ( + 'dir' => $conf->global->MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR + ); + PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); + } $this->workbook = new PHPExcel(); $this->workbook->getProperties()->setCreator($user->getFullName($outputlangs).' - Dolibarr '.DOL_VERSION); diff --git a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php index bb9f1d155ff..76c082fa70d 100644 --- a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php +++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php @@ -100,8 +100,8 @@ class pdf_typhon extends ModelePDFDeliveryOrder $this->posxcomm=112; //$this->posxtva=112; //$this->posxup=126; - $this->posxqty=174; - $this->posxremainingqty=165; + $this->posxqty=165; + $this->posxremainingqty=185; //$this->posxdiscount=162; //$this->postotalht=174; if ($this->page_largeur < 210) // To work with US executive format diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 5a2053f85ff..a23fc59a2d0 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -198,7 +198,7 @@ class modProduct extends DolibarrModules $this->export_entities_array[$r][$fieldname]='product'; } } - // End add axtra fields + // End add extra fields $this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p'; @@ -210,15 +210,14 @@ class modProduct extends DolibarrModules { // Exports product multiprice $r++; - //$this->export_code[$r]=$this->rights_class.'_'.$key; // FIXME $key is not defined - $this->export_code[$r]=$this->rights_class; + $this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_label[$r]="ProductsMultiPrice"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("produit","export")); $this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref", - 'pr.price_base_type'=>"PriceBase",'pr.price_level'=>"PriceLevel", - 'pr.price'=>"HT",'pr.price_ttc'=>"TTC", - 'pr.price_min'=>"MinPriceHT",'pr.price_min_ttc'=>"MinPriceTTC", - 'pr.tva_tx'=>'VATRate', + 'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel", + 'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC", + 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", + 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation'); //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Number",'p.surface'=>"Number",'p.volume'=>"Number",'p.weight'=>"Number",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Number",'p.price_ttc'=>"Number",'p.tva_tx'=>'Number','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); $this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product", @@ -305,11 +304,11 @@ class modProduct extends DolibarrModules $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('pr'=>MAIN_DB_PREFIX.'product_price'); $this->import_tables_creator_array[$r]=array('pr'=>'fk_user_author'); // Fields to store import user id - $this->import_fields_array[$r]=array('pr.fk_product'=>"Id*", - 'pr.price_base_type'=>"PriceBase",'pr.price_level'=>"PriceLevel", - 'pr.price'=>"HT",'pr.price_ttc'=>"TTC", - 'pr.price_min'=>"MinPriceHT",'pr.price_min_ttc'=>"MinPriceTTC", - 'pr.tva_tx'=>'VATRate', + $this->import_fields_array[$r]=array('pr.fk_product'=>"ProductRowid*", + 'pr.price_base_type'=>"PriceLevelPriceBase",'pr.price_level'=>"PriceLevel", + 'pr.price'=>"PriceLevelUnitPriceHT",'pr.price_ttc'=>"PriceLevelUnitPriceTTC", + 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", + 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation*'); $this->import_regex_array[$r]=array('pr.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$'); $this->import_examplevalues_array[$r]=array('pr.fk_product'=>"1", @@ -333,7 +332,6 @@ class modProduct extends DolibarrModules */ function init($options='') { - // Permissions $this->remove($options); $sql = array(); diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php index 363fcaf6467..839d50709c7 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -60,7 +60,7 @@ class modService extends DolibarrModules $this->picto='service'; // Data directories to create when module is enabled - $this->dirs = array("/produit/temp"); + $this->dirs = array("/product/temp"); // Dependancies $this->depends = array(); @@ -147,7 +147,7 @@ class modService extends DolibarrModules if (! empty($conf->stock->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r],array('p.stock'=>'service')); if (! empty($conf->barcode->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r],array('p.barcode'=>'service')); // Add extra fields - $sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product'"; + $sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product'"; $resql=$this->db->query($sql); if ($resql) // This can fail when class is used on old database (during migration for example) { @@ -155,8 +155,28 @@ class modService extends DolibarrModules { $fieldname='extra.'.$obj->name; $fieldlabel=ucfirst($obj->label); - $this->export_fields_array[$r][$fieldname]=$fieldlabel; - $this->export_entities_array[$r][$fieldname]='product'; + $typeFilter="Text"; + switch($obj->type) + { + case 'int': + case 'double': + case 'price': + $typeFilter="Numeric"; + break; + case 'date': + case 'datetime': + $typeFilter="Date"; + break; + case 'boolean': + $typeFilter="Boolean"; + break; + case 'sellist': + $typeFilter="List:".$obj->param; + break; + } + $this->export_fields_array[$r][$fieldname]=$fieldlabel; + $this->export_TypeFields_array[$r][$fieldname]=$typeFilter; + $this->export_entities_array[$r][$fieldname]='product'; } } // End add extra fields @@ -164,7 +184,8 @@ class modService extends DolibarrModules $this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object'; - $this->export_sql_end[$r] .=' WHERE p.fk_product_type = 1 AND p.entity IN ('.getEntity("product", 1).')'; + if (! empty($conf->fournisseur->enabled)) $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc'; + $this->export_sql_end[$r] .=' WHERE p.fk_product_type = 1 AND p.entity IN ('.getEntity("product", 1).')'; if (empty($conf->product->enabled)) // We enable next import templates only if module product not already enabled (to avoid duplicate entries) @@ -186,7 +207,7 @@ class modService extends DolibarrModules $this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product", 'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product", 'pr.price_ttc'=>"product", - 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", + 'pr.price_min'=>"product",'pr.price_min_ttc'=>"product", 'pr.tva_tx'=>'product', 'pr.date_price'=>"product"); $this->export_sql_start[$r]='SELECT DISTINCT '; @@ -208,10 +229,10 @@ class modService extends DolibarrModules $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('p'=>MAIN_DB_PREFIX.'product','extra'=>MAIN_DB_PREFIX.'product_extrafields'); $this->import_tables_creator_array[$r]=array('p'=>'fk_user_author'); // Fields to store import user id - $this->import_fields_array[$r]=array('p.ref'=>"Ref*",'p.label'=>"Label*",'p.description'=>"Description",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.duration'=>"Duration",'p.customcode'=>'CustomCode','p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell*",'p.tobuy'=>"OnBuy*",'p.fk_product_type'=>"Type*",'p.finished'=>'Nature','p.datec'=>'DateCreation*'); + $this->import_fields_array[$r]=array('p.ref'=>"Ref*",'p.label'=>"Label*",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.duration'=>"Duration",'p.customcode'=>'CustomCode','p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell*",'p.tobuy'=>"OnBuy*",'p.fk_product_type'=>"Type*",'p.finished'=>'Nature','p.datec'=>'DateCreation*'); if (! empty($conf->barcode->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.barcode'=>'BarCode')); // Add extra fields - $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product'"; + $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product' AND entity = ".$conf->entity; $resql=$this->db->query($sql); if ($resql) // This can fail when class is used on old database (during migration for example) { @@ -225,7 +246,7 @@ class modService extends DolibarrModules // End add extra fields $this->import_fieldshidden_array[$r]=array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'product'); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent) $this->import_regex_array[$r]=array('p.ref'=>'[^ ]','p.tosell'=>'^[0|1]$','p.tobuy'=>'^[0|1]$','p.fk_product_type'=>'^[0|1]$','p.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$'); - $this->import_examplevalues_array[$r]=array('p.ref'=>"PR123456",'p.label'=>"My product",'p.description'=>"This is a description example for record",'p.note'=>"Some note",'p.price'=>"100",'p.price_ttc'=>"110",'p.tva_tx'=>'10','p.tosell'=>"0 or 1",'p.tobuy'=>"0 or 1",'p.fk_product_type'=>"0 for product/1 for service",'p.finished'=>'','p.duration'=>"1y",'p.datec'=>'2008-12-31'); + $this->import_examplevalues_array[$r]=array('p.ref'=>"PREF123456",'p.label'=>"My product",'p.description'=>"This is a description example for record",'p.note'=>"Some note",'p.price'=>"100",'p.price_ttc'=>"110",'p.tva_tx'=>'10','p.tosell'=>"0 or 1",'p.tobuy'=>"0 or 1",'p.fk_product_type'=>"0 for product/1 for service",'p.finished'=>'','p.duration'=>"1y",'p.datec'=>'2008-12-31'); if (empty($conf->product->enabled)) // We enable next import templates only if module product not already enabled (to avoid duplicate entries) @@ -297,7 +318,6 @@ class modService extends DolibarrModules */ function init($options='') { - // Permissions et valeurs par defaut $this->remove($options); $sql = array(); diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index dd50e24c8e6..c4f9ff2b206 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -47,6 +47,8 @@ $(document).ready(function () {
+
+ @@ -197,7 +199,7 @@ if (isset($conf->file->main_authentication) && preg_match('/openid/',$conf->file -
+ google->enabled) && ! empty($conf->global->MAIN_GOOGLE_AD_CLI } ?> + +
+ diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index 7331a81ead0..61c0bbe6cfc 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -43,7 +43,10 @@ $(document).ready(function () { +
+
+ @@ -132,7 +135,7 @@ if (! empty($hookmanager->resArray['options'])) { -
+
-
- diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index ade0014708d..e9083b77e21 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -7,6 +7,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2013 Marcos García * Copyright (C) 2014 Cedric GROSS + * Copyright (C) 2014 Francis Appels * * 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 @@ -1433,6 +1434,18 @@ else if ($id || $ref) $entrepot = new Entrepot($db); $entrepot->fetch($lines[$i]->entrepot_id); print $entrepot->getNomUrl(1); + } + else if (count($lines[$i]->details_entrepot) > 1) + { + $detail = ''; + foreach ($lines[$i]->details_entrepot as $detail_entrepot) { + if ($detail_entrepot->entrepot_id > 0) { + $entrepot = new Entrepot($db); + $entrepot->fetch($detail_entrepot->entrepot_id); + $detail.= $langs->trans("DetailWarehouseFormat",$entrepot->libelle,$detail_entrepot->qty_shipped).'
'; + } + } + print $form->textwithtooltip($langs->trans("DetailWarehouseNumber"),$detail); } print ''; } @@ -1440,6 +1453,7 @@ else if ($id || $ref) // Batch number managment if (! empty($conf->productbatch->enabled)) { if (isset($lines[$i]->detail_batch) ) { + $flagBatch = true; print '
'.$langs->trans('RefCustomer').'
'; - print $form->editfieldkey("RefCustomer",'ref_customer',$object->ref_customer,$object,$user->rights->contrat->creer); + print $form->editfieldkey("RefCustomer",'ref_supplier',$object->ref_supplier,$object,$user->rights->contrat->creer); print ''; - print $form->editfieldval("RefCustomer",'ref_customer',$object->ref_customer,$object,$user->rights->contrat->creer); + print $form->editfieldval("RefCustomer",'ref_supplier',$object->ref_supplier,$object,$user->rights->contrat->creer); print '
'; - print ''; + print ''; print ''; print ''; @@ -156,7 +156,7 @@ if ($resql) print img_object($langs->trans("ShowContract"),"contract").' '.(isset($obj->ref) ? $obj->ref : $obj->cid) .''; if ($obj->nb_late) print img_warning($langs->trans("Late")); print ''.$obj->ref_customer.''.$obj->ref_supplier.''.img_object($langs->trans("ShowCompany"),"company").' '.$obj->nom.''.dol_print_date($obj->datec).''.dol_print_date($db->jdate($obj->date_contrat)).' '; $detail = ''; foreach ($lines[$i]->detail_batch as $dbatch) { @@ -1526,10 +1540,17 @@ else if ($id || $ref) print ''.$langs->trans($label).''; } } - + if ($user->rights->expedition->supprimer) { - print ''.$langs->trans("Delete").''; + if (empty($conf->productbatch->enabled) || (!empty($conf->productbatch->enabled) && !$conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !isset($flagBatch)) + { + print ''.$langs->trans("Delete").''; + } + else + { + print ''.$langs->trans('Delete').''; + } } print ''; diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index d929dd067ef..019ef22f769 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -7,6 +7,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2014 Cedric GROSS * Copyright (C) 2014 Marcos García + * Copyright (C) 2014 Francis Appels * * 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 @@ -1068,7 +1069,7 @@ class Expedition extends CommonObject $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = cd.fk_product"; $sql.= " WHERE ed.fk_expedition = ".$this->id; $sql.= " AND ed.fk_origin_line = cd.rowid"; - $sql.= " ORDER BY cd.rang"; + $sql.= " ORDER BY cd.rang, ed.fk_origin_line"; dol_syslog(get_class($this)."::fetch_lines", LOG_DEBUG); $resql = $this->db->query($sql); @@ -1078,6 +1079,8 @@ class Expedition extends CommonObject $num = $this->db->num_rows($resql); $i = 0; + $lineindex = 0; + $originline = 0; $this->total_ht = 0; $this->total_tva = 0; @@ -1087,13 +1090,25 @@ class Expedition extends CommonObject while ($i < $num) { - $line = new ExpeditionLigne($this->db); - $obj = $this->db->fetch_object($resql); - + $obj = $this->db->fetch_object($resql); + + if ($originline == $obj->fk_origin_line) { + $line->entrepot_id = 0; // entrepod_id in details_entrepot + $line->qty_shipped += $obj->qty_shipped; + } else { + $line = new ExpeditionLigne($this->db); + $line->entrepot_id = $obj->fk_entrepot; + $line->qty_shipped = $obj->qty_shipped; + } + + $detail_entrepot = new stdClass; + $detail_entrepot->entrepot_id = $obj->fk_entrepot; + $detail_entrepot->qty_shipped = $obj->qty_shipped; + $line->details_entrepot[] = $detail_entrepot; + $line->line_id = $obj->line_id; $line->fk_origin_line = $obj->fk_origin_line; $line->origin_line_id = $obj->fk_origin_line; // TODO deprecated - $line->entrepot_id = $obj->fk_entrepot; $line->fk_product = $obj->fk_product; $line->fk_product_type = $obj->fk_product_type; $line->ref = $obj->product_ref; // TODO deprecated @@ -1103,7 +1118,6 @@ class Expedition extends CommonObject $line->label = $obj->custom_label; $line->description = $obj->description; $line->qty_asked = $obj->qty_asked; - $line->qty_shipped = $obj->qty_shipped; $line->weight = $obj->weight; $line->weight_units = $obj->weight_units; $line->length = $obj->length; @@ -1116,7 +1130,7 @@ class Expedition extends CommonObject // For invoicing $tabprice = calcul_price_total($obj->qty_shipped, $obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, 0, 'HT', $obj->info_bits, $obj->fk_product_type); // We force type to 0 $line->desc = $obj->description; // We need ->desc because some code into CommonObject use desc (property defined for other elements) - $line->qty = $obj->qty_shipped; + $line->qty = $line->qty_shipped; $line->total_ht = $tabprice[0]; $line->total_localtax1 = $tabprice[9]; $line->total_localtax2 = $tabprice[10]; @@ -1141,11 +1155,25 @@ class Expedition extends CommonObject * May be conf is not well initialized for dark reason */ require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionbatch.class.php'; - $line->detail_batch=ExpeditionLigneBatch::FetchAll($this->db,$obj->line_id); + if ($originline != $obj->fk_origin_line) { + $line->detail_batch = ExpeditionLigneBatch::FetchAll($this->db,$obj->line_id); + } else { + $line->detail_batch = array_merge($line->detail_batch,ExpeditionLigneBatch::FetchAll($this->db,$obj->line_id)); + } + } + if ($originline != $obj->fk_origin_line) { + $this->lines[$lineindex] = $line; + $lineindex++; + } else { + $line->total_ht += $tabprice[0]; + $line->total_localtax1 += $tabprice[9]; + $line->total_localtax2 += $tabprice[10]; + $line->total_ttc += $tabprice[2]; + $line->total_tva += $tabprice[1]; } - $this->lines[$i] = $line; $i++; + $originline = $obj->fk_origin_line; } $this->db->free($resql); return 1; diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index cbfa35f4c11..840151b6001 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -304,6 +304,28 @@ if ($object->fetch($id)) if ($user->rights->fournisseur->commande->lire) { + + + // TODO move to DAO class + // Check if there are supplier orders billable + $sql2 = 'SELECT s.nom, s.rowid as socid, s.client, c.rowid, c.ref, c.total_ht, c.ref_supplier,'; + $sql2.= ' c.date_valid, c.date_commande, c.date_livraison, c.fk_statut'; + $sql2.= ' FROM '.MAIN_DB_PREFIX.'societe as s'; + $sql2.= ', '.MAIN_DB_PREFIX.'commande_fournisseur as c'; + $sql2.= ' WHERE c.fk_soc = s.rowid'; + $sql2.= ' AND s.rowid = '.$object->id; + // Show orders with status validated, shipping started and delivered (well any order we can bill) + $sql2.= " AND c.fk_statut IN (5)"; + // Find order that are not already invoiced + $sql2 .= " AND c.rowid NOT IN (SELECT fk_source FROM " . MAIN_DB_PREFIX . "element_element WHERE targettype='invoice_supplier')"; + $resql2=$db->query($sql2); + if ($resql2) { + $orders2invoice = $db->num_rows($resql2); + $db->free($resql2); + } else { + setEventMessage($db->lasterror(),'errors'); + } + // TODO move to DAO class $sql = "SELECT p.rowid,p.ref, p.date_commande as dc, p.fk_statut"; $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p "; @@ -436,60 +458,66 @@ if ($object->fetch($id)) if (empty($reshook)) { - print '
'; - - if ($user->rights->fournisseur->commande->creer) - { - $langs->load("orders"); - print ''.$langs->trans("AddOrder").''; - } - - if ($user->rights->fournisseur->facture->creer) - { - $langs->load("bills"); - print ''.$langs->trans("AddBill").''; - } - - // Add action - if (! empty($conf->agenda->enabled) && ! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) - { - if ($user->rights->agenda->myactions->create) - { - print ''.$langs->trans("AddAction").''; - } - else - { - print ''.$langs->trans("AddAction").''; - } - } - - print '
'; - print '
'; - - if (! empty($conf->global->MAIN_REPEATCONTACTONEACHTAB)) - { - print '
'; - // List of contacts - show_contacts($conf,$langs,$db,$object,$_SERVER["PHP_SELF"].'?socid='.$object->id); - } - - // Addresses list - if (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) && ! empty($conf->global->MAIN_REPEATADDRESSONEACHTAB)) - { - $result=show_addresses($conf,$langs,$db,$object,$_SERVER["PHP_SELF"].'?socid='.$object->id); - } - - if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) - { - print load_fiche_titre($langs->trans("ActionsOnCompany"),'',''); - - // List of todo actions - show_actions_todo($conf,$langs,$db,$object); - - // List of done actions - show_actions_done($conf,$langs,$db,$object); - } + print '
'; + + if ($user->rights->fournisseur->commande->creer) + { + $langs->load("orders"); + print ''.$langs->trans("AddOrder").''; } + + if ($user->rights->fournisseur->facture->creer) + { + $langs->load("bills"); + print ''.$langs->trans("AddBill").''; + } + + if ($user->rights->fournisseur->facture->creer) + { + if (! empty($orders2invoice) && $orders2invoice > 0) print ''; + else print ''; + } + + // Add action + if (! empty($conf->agenda->enabled) && ! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) + { + if ($user->rights->agenda->myactions->create) + { + print ''.$langs->trans("AddAction").''; + } + else + { + print ''.$langs->trans("AddAction").''; + } + } + + print '
'; + print '
'; + + if (! empty($conf->global->MAIN_REPEATCONTACTONEACHTAB)) + { + print '
'; + // List of contacts + show_contacts($conf,$langs,$db,$object,$_SERVER["PHP_SELF"].'?socid='.$object->id); + } + + // Addresses list + if (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) && ! empty($conf->global->MAIN_REPEATADDRESSONEACHTAB)) + { + $result=show_addresses($conf,$langs,$db,$object,$_SERVER["PHP_SELF"].'?socid='.$object->id); + } + + if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) + { + print load_fiche_titre($langs->trans("ActionsOnCompany"),'',''); + + // List of todo actions + show_actions_todo($conf,$langs,$db,$object); + + // List of done actions + show_actions_done($conf,$langs,$db,$object); + } +} } else { diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 37f2384b4b1..44a2dcbf725 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -51,6 +51,8 @@ $socid = GETPOST('socid','int'); $sortorder = GETPOST('sortorder','alpha'); $sortfield = GETPOST('sortfield','alpha'); +$viewstatut=GETPOST('viewstatut'); + // Security check $orderid = GETPOST('orderid'); if ($user->societe_id) $socid=$user->societe_id; @@ -255,6 +257,8 @@ if ($resql) } print "
\n"; print "\n"; + + print '
'.img_help(1,'').' '.$langs->trans("ToBillSeveralOrderSelectCustomer", $langs->transnoentitiesnoconv("CreateInvoiceForThisCustomer")).'
'; $db->free($resql); } diff --git a/htdocs/fourn/commande/orderstoinvoice.php b/htdocs/fourn/commande/orderstoinvoice.php new file mode 100644 index 00000000000..6c5ce8aa11c --- /dev/null +++ b/htdocs/fourn/commande/orderstoinvoice.php @@ -0,0 +1,594 @@ + + * Copyright (C) 2004-2013 Laurent Destailleur + * Copyright (C) 2005 Marc Barilley / Ocebo + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2012 Andreu Bisquerra Gaya + * Copyright (C) 2012 David Rodriguez Martinez + * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2014 Florian Henry + * + * 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 . + */ + +/** + * \file htdocs/fourn/commande/orderstoinvoice.php + * \ingroup commande + * \brief Page to invoice multiple supplier orders + */ +require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture.class.php'; +require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.commande.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/modules/supplier_invoice/modules_facturefournisseur.php'; +if (! empty($conf->projet->enabled)) { + require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php'; +} + +$langs->load('orders'); +$langs->load('deliveries'); +$langs->load('companies'); + +if (! $user->rights->facture->creer) + accessforbidden(); + +$id = (GETPOST('id') ? GETPOST('id', 'int') : GETPOST("facid")); // For backward compatibility +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$sref = GETPOST('sref'); +$sref_client = GETPOST('sref_client'); +$sall = GETPOST('sall'); +$socid = GETPOST('socid', 'int'); +$selected = GETPOST('orders_to_invoice'); +$sortfield = GETPOST("sortfield", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); +$viewstatut = GETPOST('viewstatut'); + +if (! $sortfield) + $sortfield = 'c.rowid'; +if (! $sortorder) + $sortorder = 'DESC'; + +$now = dol_now(); +$date_start = dol_mktime(0, 0, 0, $_REQUEST["date_startmonth"], $_REQUEST["date_startday"], $_REQUEST["date_startyear"]); // Date for local PHP server +$date_end = dol_mktime(23, 59, 59, $_REQUEST["date_endmonth"], $_REQUEST["date_endday"], $_REQUEST["date_endyear"]); +$date_starty = dol_mktime(0, 0, 0, $_REQUEST["date_start_delymonth"], $_REQUEST["date_start_delyday"], $_REQUEST["date_start_delyyear"]); // Date for local PHP server +$date_endy = dol_mktime(23, 59, 59, $_REQUEST["date_end_delymonth"], $_REQUEST["date_end_delyday"], $_REQUEST["date_end_delyyear"]); + +if ($action == 'create') { + if (is_array($selected) == false) { + $mesgs = array ( + '
' . $langs->trans('Error_OrderNotChecked') . '
' + ); + } else { + $origin = GETPOST('origin'); + $originid = GETPOST('originid'); + } +} + +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +include_once DOL_DOCUMENT_ROOT . '/core/class/hookmanager.class.php'; +$hookmanager = new HookManager($db); +$hookmanager->initHooks(array('orderstoinvoicesupplier')); + +/* + * Actions + */ + +if (($action == 'create' || $action == 'add') && empty($mesgs)) { + + require_once DOL_DOCUMENT_ROOT . '/core/lib/fourn.lib.php'; + if (! empty($conf->projet->enabled)) + require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; + + $langs->load('bills'); + $langs->load('products'); + $langs->load('main'); + if (isset($_GET['orders_to_invoice'])) { + $orders_id = $_GET['orders_to_invoice']; + $n = count($orders_id); + $i = 0; + + $originid = $orders_id[0]; + $_GET['originid'] = $orders_id[0]; + } + if (isset($_POST['orders_to_invoice'])) { + $orders_id = $_POST['orders_to_invoice']; + $nn = count($orders_id); + $ii = 0; + + $originid = $orders_id[0]; + $_POST['originid'] = $orders_id[0]; + } + + $projectid = GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : 0; + $lineid = GETPOST('lineid', 'int'); + $userid = GETPOST('userid', 'int'); + $search_ref = GETPOST('sf_ref') ? GETPOST('sf_ref') : GETPOST('search_ref'); + + // Security check + if ($user->societe_id) + $socid = $user->societe_id; + $result = restrictedArea($user, 'fournisseur', $id, 'facture_fourn', 'facture'); + + $usehm = $conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE; + $object = new FactureFournisseur($db); + + // Insert new invoice in database + if ($action == 'add' && $user->rights->fournisseur->facture->creer) { + $object->socid = GETPOST('socid'); + $db->begin(); + $error = 0; + + // Standard or deposit or proforma invoice + $datefacture = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); + if (empty($datefacture)) { + $datefacture = dol_mktime(date("h"), date("M"), 0, date("m"), date("d"), date("Y")); + } + if (! $error) { + $object->ref = $_POST['ref']; + $object->ref_supplier = $_POST['ref_supplier']; + $object->socid = $_POST['socid']; + $object->libelle = $_POST['libelle']; + $object->date = $datefacture; + $object->date_echeance = $datedue; + $object->note_public = GETPOST('note_public'); + $object->note_private = GETPOST('note_private'); + $object->cond_reglement_id = GETPOST('cond_reglement_id'); + $object->mode_reglement_id = GETPOST('mode_reglement_id'); + $projectid = GETPOST('projectid'); + if ($projectid > 0) + $object->fk_project = $projectid; + + // Auto calculation of date due if not filled by user + if (empty($object->date_echeance)) + $object->date_echeance = $object->calculate_date_lim_reglement(); + + if ($_POST['origin'] && $_POST['originid']) { + $object->origin = $_POST['origin']; + $object->origin_id = $orders_id[$ii]; + $object->linked_objects = $orders_id; + $id = $object->create($user); + + if ($id > 0) { + foreach ( $orders_id as $origin => $origin_id ) { + $origin_id = (! empty($origin_id) ? $origin_id : $object->origin_id); + $db->begin(); + $sql = "INSERT INTO " . MAIN_DB_PREFIX . "element_element ("; + $sql .= "fk_source"; + $sql .= ", sourcetype"; + $sql .= ", fk_target"; + $sql .= ", targettype"; + $sql .= ") VALUES ("; + $sql .= $origin_id; + $sql .= ", '" . $object->origin . "'"; + $sql .= ", " . $id; + $sql .= ", '" . $object->element . "'"; + $sql .= ")"; + + if ($db->query($sql)) { + $db->commit(); + } else { + $db->rollback(); + } + } + + while ( $ii < $nn ) { + $objectsrc = new CommandeFournisseur($db); + dol_syslog("Try to find source object origin=" . $object->origin . " originid=" . $object->origin_id . " to add lines"); + $result = $objectsrc->fetch($orders_id[$ii]); + if ($result > 0) { + $lines = $objectsrc->lines; + if (empty($lines) && method_exists($objectsrc, 'fetch_lines')) { + $objectsrc->fetch_lines(); + $lines = $objectsrc->lines; + } + $fk_parent_line = 0; + $num = count($lines); + for($i = 0; $i < $num; $i ++) { + $desc = ($lines[$i]->desc ? $lines[$i]->desc : $lines[$i]->libelle); + + $desc = ($lines[$i]->desc ? $lines[$i]->desc : $lines[$i]->libelle); + $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0); + + // Dates + // TODO mutualiser + $date_start = $lines[$i]->date_debut_prevue; + if ($lines[$i]->date_debut_reel) + $date_start = $lines[$i]->date_debut_reel; + if ($lines[$i]->date_start) + $date_start = $lines[$i]->date_start; + $date_end = $lines[$i]->date_fin_prevue; + if ($lines[$i]->date_fin_reel) + $date_end = $lines[$i]->date_fin_reel; + if ($lines[$i]->date_end) + $date_end = $lines[$i]->date_end; + + // Reset fk_parent_line for no child products and special product + if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) { + $fk_parent_line = 0; + } + // FIXME Missing $lines[$i]->ref_supplier and $lines[$i]->label into addline and updateline methods. They are filled when coming from order for example. + $result = $object->addline($desc, $lines[$i]->subprice, $lines[$i]->tva_tx, $lines[$i]->localtax1_tx, $lines[$i]->localtax2_tx, $lines[$i]->qty, $lines[$i]->fk_product, $lines[$i]->remise_percent, $date_start, $date_end, 0, $lines[$i]->info_bits, 'HT', $product_type); + + if ($result > 0) { + $lineid = $result; + } else { + $lineid = 0; + $error ++; + break; + } + // Defined the new fk_parent_line + if ($result > 0 && $lines[$i]->product_type == 9) { + $fk_parent_line = $result; + } + } + } else { + $mesgs[] = $objectsrc->error; + $error ++; + } + $ii ++; + } + } else { + $mesgs[] = $object->error; + $error ++; + } + } + } + + // End of object creation, we show it + if ($id > 0 && ! $error) { + $db->commit(); + header('Location: ' . DOL_URL_ROOT . '/fourn/facture/fiche.php?facid=' . $id); + exit(); + } else { + $db->rollback(); + $action = 'create'; + $_GET["origin"] = $_POST["origin"]; + $_GET["originid"] = $_POST["originid"]; + $mesgs[] = '
' . $object->error . '
'; + } + } +} + +/* + * View + */ + +$html = new Form($db); +$htmlother = new FormOther($db); +$formfile = new FormFile($db); +$companystatic = new Societe($db); + +// Mode creation +if ($action == 'create' && empty($mesgs)) { + + llxHeader(); + print_fiche_titre($langs->trans('NewBill')); + + $soc = new Societe($db); + if ($socid) + $res = $soc->fetch($socid); + if ($res) { + $cond_reglement_id = $soc->cond_reglement_id; + $mode_reglement_id = $soc->mode_reglement_id; + } + $dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? - 1 : ''; + + print '
'; + print ''; + print ''; + print '' . "\n"; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + // Ref + print ''; + + // Ref supplier + print ''; + print ''; + + // Third party + print ''; + print '' . "\n"; + + // Date invoice + print ''; + // Payment term + print ''; + // Payment mode + print ''; + // Project + if (! empty($conf->projet->enabled)) { + $formproject = new FormProjets($db); + + $langs->load('projects'); + print ''; + } + + $objectsrc = new CommandeFournisseur($db); + $listoforders = array (); + foreach ( $selected as $sel ) { + $result = $objectsrc->fetch($sel); + if ($result > 0) { + $listoforders[] = $objectsrc->ref; + } + } + + // Other attributes + $parameters = array ( + 'objectsrc' => $objectsrc, + 'idsrc' => $listoforders, + 'colspan' => ' colspan="3"' + ); + $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + + // Modele PDF + print ''; + print '"; + + // Public note + print ''; + print ''; + print ''; + // Private note + if (empty($user->societe_id)) { + print ''; + print ''; + print ''; + } + + print '
' . $langs->trans('Ref') . '' . $langs->trans('Draft') . '
' . $langs->trans('RefSupplier') . '
' . $langs->trans('Customer') . ''; + print $soc->getNomUrl(1); + print ''; + print '
' . $langs->trans('Date') . ''; + $html->select_date('', '', '', '', '', "add", 1, 1); + print '
' . $langs->trans('PaymentConditionsShort') . ''; + $html->select_conditions_paiements(isset($_POST['cond_reglement_id']) ? $_POST['cond_reglement_id'] : $cond_reglement_id, 'cond_reglement_id'); + print '
' . $langs->trans('PaymentMode') . ''; + $html->select_types_paiements(isset($_POST['mode_reglement_id']) ? $_POST['mode_reglement_id'] : $mode_reglement_id, 'mode_reglement_id'); + print '
' . $langs->trans('Project') . ''; + $formproject->select_projects($soc->id, $projectid, 'projectid'); + print '
' . $langs->trans('Model') . ''; + $liste = ModelePDFSuppliersInvoices::liste_modeles($db); + print $html->selectarray('model', $liste, $conf->global->INVOICE_SUPPLIER_ADDON_PDF); + print "
' . $langs->trans('NotePublic') . ''; + print '
' . $langs->trans('NotePrivate') . ''; + print '
'; + + while ( $i < $n ) { + print ''; + + $i ++; + } + + // Button "Create Draft" + print '
'; + print "
\n"; + + print ''; + print "\n"; +} + +// Mode liste +if (($action != 'create' && $action != 'add') || ! empty($mesgs)) { + llxHeader(); + ?> + +rights->societe->client->voir && ! $socid) + $sql .= ", " . MAIN_DB_PREFIX . "societe_commerciaux as sc"; + $sql .= ' WHERE c.entity = ' . $conf->entity; + $sql .= ' AND c.fk_soc = s.rowid'; + + // Show orders with status validated, shipping started and delivered (well any order we can bill) + $sql .= " AND c.fk_statut IN (5)"; + + // Find order that are not already invoiced + $sql .= " AND c.rowid NOT IN (SELECT fk_source FROM " . MAIN_DB_PREFIX . "element_element WHERE targettype='invoice_supplier')"; + + if ($socid) + $sql .= ' AND s.rowid = ' . $socid; + if (! $user->rights->societe->client->voir && ! $socid) + $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " . $user->id; + if ($sref) { + $sql .= " AND c.ref LIKE '%" . $db->escape($sref) . "%'"; + } + if ($sall) { + $sql .= " AND (c.ref LIKE '%" . $db->escape($sall) . "%' OR c.note LIKE '%" . $db->escape($sall) . "%')"; + } + + // Date filter + if ($date_start && $date_end) + $sql .= " AND c.date_commande >= '" . $db->idate($date_start) . "' AND c.date_commande <= '" . $db->idate($date_end) . "'"; + if ($date_starty && $date_endy) + $sql .= " AND c.date_livraison >= '" . $db->idate($date_starty) . "' AND c.date_livraison <= '" . $db->idate($date_endy) . "'"; + + if (! empty($sref_client)) { + $sql .= ' AND c.ref_supplier LIKE \'%' . $db->escape($sref_client) . '%\''; + } + $sql .= ' ORDER BY ' . $sortfield . ' ' . $sortorder; + dol_syslog('fourn/commande/ordertoinvoice.php sql=' . $sql); + $resql = $db->query($sql); + + if ($resql) { + if ($socid) { + $soc = new Societe($db); + $soc->fetch($socid); + } + $title = $langs->trans('ListOfSupplierOrders'); + $title .= ' - ' . $langs->trans('StatusOrderReceivedAllShort'); + $num = $db->num_rows($resql); + print_fiche_titre($title); + $i = 0; + $period = $html->select_date($date_start, 'date_start', 0, 0, 1, '', 1, 0, 1) . ' - ' . $html->select_date($date_end, 'date_end', 0, 0, 1, '', 1, 0, 1); + $periodely = $html->select_date($date_starty, 'date_start_dely', 0, 0, 1, '', 1, 0, 1) . ' - ' . $html->select_date($date_endy, 'date_end_dely', 0, 0, 1, '', 1, 0, 1); + + if (! empty($socid)) { + // Company + $companystatic->id = $socid; + $companystatic->nom = $soc->nom; + print '

' . $companystatic->getNomUrl(1, 'customer') . '

'; + } + + print ''; + print ''; + print_liste_field_titre($langs->trans('Ref'), 'orderstoinvoice.php', 'c.ref', '', '&socid=' . $socid, '', $sortfield, $sortorder); + print_liste_field_titre($langs->trans('RefSupplier'), 'orderstoinvoice.php', 'c.ref_supplier', '', '&socid=' . $socid, '', $sortfield, $sortorder); + print_liste_field_titre($langs->trans('OrderDate'), 'orderstoinvoice.php', 'c.date_commande', '', '&socid=' . $socid, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans('DeliveryDate'), 'orderstoinvoice.php', 'c.date_livraison', '', '&socid=' . $socid, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans('Status'), '', '', '', '', 'align="right"'); + print_liste_field_titre($langs->trans('GenerateBill'), '', '', '', '', 'align="center"'); + print ''; + + // Lignes des champs de filtre + print ''; + print ''; + print ''; + print ''; + // print ''; + + // DATE DELIVERY + print ''; + + // SEARCH BUTTON + print ''; + + print ''; + print ''; + + print ''; + $var = True; + $generic_commande = new CommandeFournisseur($db); + + while ( $i < $num ) { + $objp = $db->fetch_object($resql); + $var = ! $var; + print ''; + print ''; + + print ''; + + // Order date + print ''; + + // Delivery date + print ''; + + // Statut + print ''; + + // Checkbox + print ''; + + print ''; + + $total = $total + $objp->price; + $subtotal = $subtotal + $objp->price; + $i ++; + } + print '
'; + // REF + print ''; + print ''; + print ''; + print ''; + + // DATE ORDER + print ''; + print $period; + print ''; + print $periodely; + print ''; + print ''; + + // ALL/NONE + print ''; + if ($conf->use_javascript_ajax) + print '' . $langs->trans("All") . ' / ' . $langs->trans("None") . ''; + print '
'; + + $generic_commande->id = $objp->rowid; + $generic_commande->ref = $objp->ref; + + print ''; + print ''; + + print '
'; + print $generic_commande->getNomUrl(1, $objp->fk_statut); + print ''; + $filename = dol_sanitizeFileName($objp->ref); + $filedir = $conf->fournisseur->commande->dir_output . '/' . dol_sanitizeFileName($objp->ref); + $urlsource = $_SERVER['PHP_SELF'] . '?id=' . $objp->rowid; + print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); + print '
'; + print '
' . $objp->ref_supplier . ''; + print dol_print_date($db->jdate($objp->date_commande), 'day'); + print ''; + print dol_print_date($db->jdate($objp->date_livraison), 'day'); + print '' . $generic_commande->LibStatut($objp->fk_statut, 5) . ''; + print ''; + print '
'; + + /* + * Boutons actions + */ + print '
'; + print '
'; + print ''; + print ''; + print '
'; + // print ''.$langs->trans("GoBack").''; + print ''; + print '
'; + print ''; + $db->free($resql); + } else { + print dol_print_error($db); + } +} + +dol_htmloutput_mesg($mesg, $mesgs); + +llxFooter(); +$db->close(); diff --git a/htdocs/install/default.css b/htdocs/install/default.css index 7ba1a9b136b..6be69acd912 100644 --- a/htdocs/install/default.css +++ b/htdocs/install/default.css @@ -180,7 +180,7 @@ margin-top: 10px; font-size:16px; font-weight: normal; color: #4965B3; -text-shadow: 2px 1px 2px #c0c0c0; +text-shadow: 1px 1px 1px #c0c0c0; } tr.bg1 { diff --git a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql index e04653c8256..804a45549c8 100644 --- a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql +++ b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql @@ -47,9 +47,9 @@ ALTER TABLE llx_user ADD COLUMN fk_user_modif integer AFTER fk_user_creat; -- Add module accounting Expert ALTER TABLE llx_bookkeeping RENAME TO llx_accounting_bookkeeping; -- To update old user of module Accounting Expert - -CREATE TABLE llx_accounting_bookkeeping + +CREATE TABLE llx_accounting_bookkeeping ( rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, doc_date date NOT NULL, @@ -74,12 +74,12 @@ ALTER TABLE llx_c_paiement ADD COLUMN accountancy_code varchar(32) DEFAULT NULL ALTER TABLE llx_bank_account ADD COLUMN accountancy_journal varchar(3) DEFAULT NULL AFTER account_number; ALTER TABLE llx_accountingaccount add column entity integer DEFAULT 1 NOT NULL AFTER rowid; -ALTER TABLE llx_accountingaccount add column datec datetime NOT NULL AFTER entity; +ALTER TABLE llx_accountingaccount add column datec datetime AFTER entity; ALTER TABLE llx_accountingaccount add column tms timestamp AFTER datec; ALTER TABLE llx_accountingaccount add column fk_user_author integer DEFAULT NULL AFTER label; ALTER TABLE llx_accountingaccount add column fk_user_modif integer DEFAULT NULL AFTER fk_user_author; --- Qual +-- Qual UPDATE llx_const SET name = 'ACCOUNTING_MODE' WHERE name = 'COMPTA_MODE'; UPDATE llx_const SET name = 'ACCOUNTING_ACCOUNT_CUSTOMER' WHERE name = 'COMPTA_ACCOUNT_CUSTOMER'; UPDATE llx_const SET name = 'ACCOUNTING_ACCOUNT_SUPPLIER' WHERE name = 'COMPTA_ACCOUNT_SUPPLIER'; @@ -204,7 +204,7 @@ create table llx_accounting_fiscalyear )ENGINE=innodb; ALTER TABLE llx_contrat ADD COLUMN ref_ext varchar(30) after ref; -ALTER TABLE llx_contrat ADD COLUMN ref_customer varchar(30) after ref_ext; +ALTER TABLE llx_contrat ADD COLUMN ref_supplier varchar(30) after ref_ext; ALTER TABLE llx_propal ADD COLUMN fk_shipping_method integer AFTER date_livraison; ALTER TABLE llx_commande ADD COLUMN fk_shipping_method integer AFTER date_livraison; diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang index 876edebae30..dc64c7dc846 100644 --- a/htdocs/langs/de_DE/banks.lang +++ b/htdocs/langs/de_DE/banks.lang @@ -133,7 +133,7 @@ CashBudget=Bargeldbestand PlannedTransactions=Geplante Transaktionen Graph=Grafiken ExportDataset_banque_1=Bankbewegungen und Kontoauszug -ExportDataset_banque_2=Deposit slip +ExportDataset_banque_2=Einzahlungsbeleg TransactionOnTheOtherAccount=Transaktion auf dem anderem Konto TransactionWithOtherAccount=Konto Transaktion PaymentNumberUpdateSucceeded=Zahlungsnummer erfolgreich aktualisiert diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index bccbd86b0cd..6f566b36e0f 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -85,7 +85,7 @@ ClassifyPaid=Als 'bezahlt' markieren ClassifyPaidPartially=Als 'teilweise bezahlt' markieren ClassifyCanceled=Als 'storniert' markieren ClassifyClosed=Als 'geschlossen' markieren -ClassifyUnBilled=Classify 'Unbilled' +ClassifyUnBilled=Als "nicht verrechnet" markieren CreateBill=Erstelle Rechnung AddBill=Rechnung/Gutschrift erstellen AddToDraftInvoices=Zu Rechnungsentwurf hinzufügen @@ -198,8 +198,8 @@ Rest=Ausstehend AmountExpected=Höhe der Forderung ExcessReceived=Erhaltener Überschuss EscompteOffered=Rabatt angeboten (Skonto) -SendBillRef=Submission of invoice %s -SendReminderBillRef=Submission of invoice %s (reminder) +SendBillRef=Einreichung der Rechnung %s +SendReminderBillRef=Einreichung von Rechnung %s (Erinnerung) StandingOrders=Daueraufträge StandingOrder=Dauerauftrag NoDraftBills=Keine Rechnungsentwürfe @@ -398,7 +398,7 @@ ToMakePayment=Bezahlen ToMakePaymentBack=Rückzahlung ListOfYourUnpaidInvoices=Liste aller unbezahlten Rechnungen NoteListOfYourUnpaidInvoices=Bitte beachten: Diese Liste enthält nur Rechnungen an Partner, bei denen Sie als Vertreter angegeben sind. -RevenueStamp=Revenue stamp +RevenueStamp=Steuermarke YouMustCreateInvoiceFromThird=Diese Option steht nur zur Verfügung, wenn eine Rechnung vom Reiter "Kunde" eines Partners aus erstellt wird PDFCrabeDescription=Rechnungs-Modell Crabe. Eine vollständige Rechnung (Empfohlene Vorlage) TerreNumRefModelDesc1=Liefert eine Nummer mit dem Format %syymm-nnnn für Standard-Rechnungen und %syymm-nnnn für Gutschriften, wobei yy=Jahr, mm=Monat und nnnn eine lückenlose Folge ohne Überlauf auf 0 ist diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang index 13ff957914d..9312970a60c 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -93,7 +93,7 @@ LocalTax1ES=RE LocalTax2ES=IRPF TypeLocaltax1ES=RE Type TypeLocaltax2ES=IRPF Type -TypeES=Type +TypeES=Typ ThirdPartyEMail=%s WrongCustomerCode=Kunden-Code ungültig WrongSupplierCode=Lieferanten-Code ungültig diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index 53d8dba6d00..4d19a00c89e 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -19,7 +19,7 @@ AmountToBeCharged=Zu zahlender Gesamtbetrag: AccountsGeneral=Konten Account=Konto Accounts=Konten -Accountparent=Account parent +Accountparent=Kontohalter Accountsparent=Accounts parent BillsForSuppliers=Lieferantenrechnungen Income=Einnahmen @@ -182,7 +182,7 @@ Pcg_version=Pcg version Pcg_type=Pcg type Pcg_subtype=Pcg subtype InvoiceLinesToDispatch=Invoice lines to dispatch -InvoiceDispatched=Dispatched invoices +InvoiceDispatched=Versandte Rechnungen AccountancyDashboard=Accountancy summary ByProductsAndServices=Nach Produkten und Services RefExt=Externe Referenz @@ -196,11 +196,11 @@ CalculationRuleDescSupplier=Wählen Sie die geeignete Methode, um zum gleichen E TurnoverPerProductInCommitmentAccountingNotRelevant=Turnover report per product, when using a cash accountancy mode is not relevant. This report is only available when using engagement accountancy mode (see setup of accountancy module). CalculationMode=Berechnungsmodus AccountancyJournal=Accountancy code journal -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Standard-Aufwandskonto, um Produkte zu kaufen -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standard-Erlöskonto, um Produkte zu verkaufen -ACCOUNTING_SERVICE_BUY_ACCOUNT=Standard-Aufwandskonto, um Services zu kaufen -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard-Erlöskonto, um Services zu verkaufen -ACCOUNTING_VAT_ACCOUNT=Standard-Erlöskonto, um MwSt zu einzuziehen -ACCOUNTING_VAT_BUY_ACCOUNT=Standard-Aufwandskonto, um MwSt zu bezahlen -ACCOUNTING_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties -ACCOUNTING_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties +COMPTA_PRODUCT_BUY_ACCOUNT=Standard-Aufwandskonto, um Produkte zu kaufen +COMPTA_PRODUCT_SOLD_ACCOUNT=Standard-Erlöskonto, um Produkte zu verkaufen +COMPTA_SERVICE_BUY_ACCOUNT=Standard-Aufwandskonto, um Services zu kaufen +COMPTA_SERVICE_SOLD_ACCOUNT=Standard-Erlöskonto, um Services zu verkaufen +COMPTA_VAT_ACCOUNT=Standard-Erlöskonto, um MwSt zu einzuziehen +COMPTA_VAT_BUY_ACCOUNT=Standard-Aufwandskonto, um MwSt zu bezahlen +COMPTA_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties +COMPTA_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties diff --git a/htdocs/langs/de_DE/contracts.lang b/htdocs/langs/de_DE/contracts.lang index 17d09551e73..1e4e9eb8888 100644 --- a/htdocs/langs/de_DE/contracts.lang +++ b/htdocs/langs/de_DE/contracts.lang @@ -88,9 +88,9 @@ NoExpiredServices=Keine abgelaufen aktiven Dienste ListOfServicesToExpireWithDuration=Liste der Leistungen die in %s Tagen ablaufen ListOfServicesToExpireWithDurationNeg=Liste der Services die seit mehr als %s Tagen abgelaufen sind ListOfServicesToExpire=Liste der Services die ablaufen -NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative. -StandardContractsTemplate=Standard contracts template -ContactNameAndSignature=For %s, name and signature: +NoteListOfYourExpiredServices=Diese Liste enthält nur Dienstleistungen an Partner, bei denen Sie als Vertreter Angegeben sind. +StandardContractsTemplate=Standard Vertragsschablone +ContactNameAndSignature=Für %s, Name und Unterschrift ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Vertragsunterzeichnung durch Vertreter diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index 68595d0d901..60ae84a7a05 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - errors # No errors -NoErrorCommitIsDone=No error, we commit +NoErrorCommitIsDone=Kein Fehler, wir führen fort # Errors Error=Fehler Errors=Fehler -ErrorButCommitIsDone=Errors found but we validate despite this +ErrorButCommitIsDone=Fehler aufgetreten, Freigabe erfolgt dennoch ErrorBadEMail=E-Mail %s ist nicht korrekt ErrorBadUrl=URL %s ist nicht korrekt ErrorLoginAlreadyExists=Login %s existiert bereits. @@ -63,7 +63,7 @@ ErrorSizeTooLongForVarcharType=Die Größe überschreitet das Maximum für den T ErrorNoValueForSelectType=Bitte Wert für Auswahlliste eingeben ErrorNoValueForCheckBoxType=Bitte Wert für Checkbox-Liste eingeben ErrorNoValueForRadioType=Bitte Wert für Radiobutton-Liste eingeben -ErrorBadFormatValueList=The list value cannot have more than one come : %s, but need at least one: llave,valores +ErrorBadFormatValueList=Die Liste darf nicht mehr als ein %s enthalten, muss aber mindestens eines aus "llave,valores" beinhalten ErrorFieldCanNotContainSpecialCharacters=Das Feld %s darf keine Sonderzeichen enthalten. ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf weder Sonderzeichen noch Großbuchstaben enthalten. ErrorNoAccountancyModuleLoaded=Kein Buchhaltungsmodul aktiviert @@ -134,8 +134,10 @@ ErrorOpenIDSetupNotComplete=Sie haben im Dolibarr Konfigurationsfile eingestellt ErrorWarehouseMustDiffers=Quell- und Ziel-Lager müssen unterschiedlich sein ErrorBadFormat=Falsches Format! ErrorPaymentDateLowerThanInvoiceDate=Zahlungsdatum (%s) darf nicht vor Rechnungsdatum (%s) liegen für Rechnung %s. -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any thirdparty. Link member to an existing third party or create a new thirdparty before creating subscription with invoice. +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fehler: Dieses Mitglied ist noch nicht mit einem Partner verbunden. Verknüpfen Sie das Mitglied zuerst mit einem vorhandenen Partner oder legen Sie einen neuen an, bevor Sie ein Abonnement mit Rechnung erstellen. ErrorThereIsSomeDeliveries=Fehler: Lieferung(en) zu dieser Sendung vorhanden. Löschen nicht möglich. +ErrorCantDeletePaymentReconciliated=Eine Zahlung, deren Bank-Transaktion schon abgeglichen wurde, kann nicht gelöscht werden +ErrorCantDeletePaymentSharedWithPayedInvoice=Eine Zahlung, die zu mindestens einer als bezahlt markierten Rechnung gehört, kann nicht entfernt werden # Warnings WarningMandatorySetupNotComplete=Zwingend notwendige Parameter sind noch nicht definiert @@ -149,8 +151,8 @@ WarningsOnXLines=Warnhinweise in %s Quellzeilen WarningNoDocumentModelActivated=Für das Erstellen von Dokumenten ist keine Vorlage gewählt. Eine Vorlage wird standardmäßig ausgewählt, bis Sie die Moduleinstellungen angepasst haben. WarningLockFileDoesNotExists=Warnung, wenn Setup abgeschlossen ist, müssen Sie die Installations- und Migration-Tools deaktivieren. Dazu fügen Sie die Datei install.lock dem Verzeichnis %s hinzu. Das fehlend dieser Datei stelle eine Sicherheitslücke dar. WarningUntilDirRemoved=Diese Warnung bleibt so lange bestehen, bis die Sicherheitslücke geschlossen wurde (nur für Administratoren sichtbar). -WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. +WarningCloseAlways=Achtung: es wird auch dann geschlossen, wenn der Betrag zwischen Quelle und Ziel unterschiedlich ist. Aktivieren Sie dieses Feature mit Bedacht. WarningUsingThisBoxSlowDown=Warnung: Der Einsatz dieser Box verlangsamt sämtliche Seiten mit dieser Box spürbar. WarningClickToDialUserSetupNotComplete=Die ClickToDial-Informationen für Ihren Benutzer sind nicht vollständig (siehe Registerkarte ClickToDial auf Ihrer Benutzerkarte). -WarningNotRelevant=Irrelevant operation for this dataset -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. +WarningNotRelevant=Operation für dieses Daten-Set nicht relevant +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Funktion deaktiviert, wenn die Bildschirm-Ausgabe für Blinde oder Text-Browser optimiert ist. diff --git a/htdocs/langs/de_DE/help.lang b/htdocs/langs/de_DE/help.lang index b2c338165c3..1ab43a1a734 100644 --- a/htdocs/langs/de_DE/help.lang +++ b/htdocs/langs/de_DE/help.lang @@ -25,4 +25,4 @@ LinkToGoldMember=Sie können einen, vom System für Ihre Sprache (%s) automatisc PossibleLanguages=Unterstützte Sprachen MakeADonation=Unterstützen Sie das Projekt über eine Spende SubscribeToFoundation=Helfen auch Sie dem Dolibarr Projekt und unterstützen uns mit einer Abo-Spende. -# SeeOfficalSupport=For official Dolibarr support in your language:
%s +SeeOfficalSupport=Für offizielle Dolibarr Unterstützung in Ihrer Sprache: br>%s diff --git a/htdocs/langs/de_DE/holiday.lang b/htdocs/langs/de_DE/holiday.lang index 820bace2c78..5384a3403ac 100644 --- a/htdocs/langs/de_DE/holiday.lang +++ b/htdocs/langs/de_DE/holiday.lang @@ -1,40 +1,40 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Mitarbeiter -Holidays=Ferien -CPTitreMenu=Ferien +Holidays=Urlaub +CPTitreMenu=Urlaub MenuReportMonth=Monatsauszug -MenuAddCP=Ferienantrag -NotActiveModCP=Sie müssen das Ferien-Modul aktivieren um diese Seite zu sehen. +MenuAddCP=Urlaubsantrag +NotActiveModCP=Sie müssen das Urlaubs-Modul aktivieren um diese Seite zu sehen. NotConfigModCP=Sie müssen das Ferien-Modul konfigurieren um diese Seite zu sehen. Dazu klicken Sie hier . -NoCPforUser=You don't have a demand for holidays. -AddCP=Ferienantrag -Employe=Angestellter -DateDebCP=Ferienbeginn -DateFinCP=Ferienende +NoCPforUser=Sie haben keinen Anspruch auf Urlaub +AddCP=Urlaubsantrag +Employe=Mitarbeiter +DateDebCP=Urlaubsbeginn +DateFinCP=Urlaubsende DateCreateCP=Erstellungsdatum DraftCP=Entwurf ToReviewCP=Wartet auf Genehmigung ApprovedCP=Genehmigt -CancelCP=Storno +CancelCP=Zurückgezogen RefuseCP=Abgelehnt ValidatorCP=genehmigt durch -ListeCP=Ferienliste +ListeCP=Urlaubsliste ReviewedByCP=Wird geprüft von DescCP=Beschreibung -SendRequestCP=Ferienantrag stellen -DelayToRequestCP=Anträge für Ferien müssen mindestens %s Tage im voraus gestellt werden. -MenuConfCP=Edit balance of holidays -UpdateAllCP=Ferien aktualisieren -SoldeCPUser=Feriensaldo ist %s Tage. +SendRequestCP=Urlaubsantrag erstellen +DelayToRequestCP=Urlaubsanträge müssen mindestens %s Tage im voraus gestellt werden. +MenuConfCP=Bearbeiten Sie die Urlaubsliste +UpdateAllCP=Urlaub aktualisieren +SoldeCPUser=Urlaubssaldo ist %s Tage. ErrorEndDateCP=Sie müssen ein End-Datum wählen, dass nach dem Start-Datum liegt. ErrorSQLCreateCP=Ein SQL Fehler trat auf bei der Eerstellung von: ErrorIDFicheCP=Ein Fehler trat auf, der Antrag auf Ferien existiert nicht. ReturnCP=Zurück zur vorherigen Seite -ErrorUserViewCP=Sie sind nicht berechtigt diese Ferien-Anträge zu lesen. -InfosCP=Information of the demand of holidays +ErrorUserViewCP=Sie sind nicht berechtigt diese Urlaubsanträge zu lesen. +InfosCP=Information über den Urlaubsantrag InfosWorkflowCP=Information Workflow RequestByCP=Beantragt von -TitreRequestCP=Sheet of holidays +TitreRequestCP=Urlaubstabelle NbUseDaysCP=Anzahl Ferientage bezogen EditCP=Bearbeiten DeleteCP=Lösche Gruppe @@ -47,15 +47,15 @@ TitleDeleteCP=Antrag auf Ferien löschen ConfirmDeleteCP=Löschung dieses Ferienantrags bestätigen? ErrorCantDeleteCP=Fehler, Sie haben nicht die Berechtigung diesen Ferien-Antrag zu löschen. CantCreateCP=Sie haben nicht die Berechtigung Ferien zu beantragen. -InvalidValidatorCP=You must choose an approbator to your holiday request. +InvalidValidatorCP=Sie müssen einen Vorgesetzten haben der Ihre Urlaubsanfrage genehmigt. UpdateButtonCP=Aktualisieren -CantUpdate=You cannot update this request of holidays. +CantUpdate=Sie können diesen Urlaubsantrag nicht aktualisieren NoDateDebut=Sie müssen ein Startdatum wählen. NoDateFin=Sie müssen ein Enddatum wählen. ErrorDureeCP=Ihr Antrag auf Ferien enthält keine Werktage. -TitleValidCP=Approve the request holidays +TitleValidCP=Urlaubsantrag genehmigen ConfirmValidCP=Möchten Sie diesen Ferienantrag wirklich genehmigen? -DateValidCP=Date approved +DateValidCP=Datum genehmigt TitleToValidCP=Ferienantrag senden ConfirmToValidCP=Möchten Sie diesen Ferienantrag wirklich senden? TitleRefuseCP=Ferienantrag ablehnen @@ -65,14 +65,14 @@ TitleCancelCP=Ferienantrag abbrechen ConfirmCancelCP=Möchten Sie diesen Ferienantrag wirklich abbrechen? DetailRefusCP=Ablehnungsgrund DateRefusCP=Datum der Ablehnung -DateCancelCP=Date of cancellation +DateCancelCP=Datum der Absage DefineEventUserCP=Assign an exceptional leave for a user addEventToUserCP=Assign leave MotifCP=Grund UserCP=Benutzer ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. -MenuLogCP=View logs of holidays +MenuLogCP=Urlaubsliste ansehen LogCP=Liste von neuen Ferieneinträgen ActionByCP=Ausgeführt von UserUpdateCP=Für den Benutzer @@ -85,7 +85,7 @@ FirstDayOfHoliday=Erster Ferientag LastDayOfHoliday=Letzter Ferientag HolidaysMonthlyUpdate=Monatliches Update ManualUpdate=Manuelles Update -HolidaysCancelation=Holidays cancelation +HolidaysCancelation=Urlaubsstornierung ## Configuration du Module ## ConfCP=Konfiguration des Ferienmoduls @@ -125,7 +125,7 @@ TitleUpdateEventCP=Edit or delete a exceptional leave DeleteEventOptionCP=Lösche Gruppe UpdateEventOptionCP=Aktualisieren ErrorMailNotSend=Ein Fehler ist beim EMail-Senden aufgetreten: -NoCPforMonth=No leave this month. +NoCPforMonth=Kein Urlaub diesen Monat nbJours=Anzahl der Tage TitleAdminCP=Konfiguration der Ferien #Messages diff --git a/htdocs/langs/de_DE/interventions.lang b/htdocs/langs/de_DE/interventions.lang index 62f5943aea2..a4fbef99236 100644 --- a/htdocs/langs/de_DE/interventions.lang +++ b/htdocs/langs/de_DE/interventions.lang @@ -25,9 +25,11 @@ NameAndSignatureOfExternalContact=Name und Unterschrift des Kunden: DocumentModelStandard=Standard-Dokumentvorlage für Eingriffe InterventionCardsAndInterventionLines=Eingriffe und Eingriffszeilen ClassifyBilled=Eingegordnet "Angekündigt" +ClassifyUnBilled=als "nicht verrechnet" markieren StatusInterInvoiced=Angekündigt RelatedInterventions=Verbundene Eingriffe ShowIntervention=Zeige Eingriffe +SendInterventionRef=Einreichung von Eingriffen %s ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Eingriffsnachverfolgung durch Vertreter TypeContact_fichinter_internal_INTERVENING=Eingriff läuft @@ -39,4 +41,4 @@ ArcticNumRefModelError=Fehler beim aktivieren PacificNumRefModelDesc1=Liefere Nummer im Format %syymm-nnnn zurück, wobei yy das Jahr, mm das Monat und nnnn eine Zahlensequenz ohne Nullwert oder Leerzeichen ist PacificNumRefModelError=Eine Interventionskarte beginnend mit $syymm existiert bereits und ist nicht mir dieser Numerierungssequenz kompatibel. Bitte löschen oder umbenennen. PrintProductsOnFichinter=Drucke Produkte auf Eingriffskarte -# PrintProductsOnFichinterDetails=forinterventions generated from orders +PrintProductsOnFichinterDetails=forinterventions generated from orders diff --git a/htdocs/langs/de_DE/link.lang b/htdocs/langs/de_DE/link.lang index 8b1efb75ef3..759caca0876 100644 --- a/htdocs/langs/de_DE/link.lang +++ b/htdocs/langs/de_DE/link.lang @@ -1,8 +1,8 @@ -LinkANewFile=Link a new file/document -LinkedFiles=Linked files and documents -NoLinkFound=No registered links -LinkComplete=The file has been linked successfully -ErrorFileNotLinked=The file could not be linked -LinkRemoved=The link %s has been removed -ErrorFailedToDeleteLink= Failed to remove link '%s' -ErrorFailedToUpdateLink= Failed to update link '%s' +LinkANewFile=Verknüpfen Sie ein neues Dokument/Datei +LinkedFiles=Verknüpfte Dateien und Dokumente +NoLinkFound=Keine eingetragenen Verknüpfungen +LinkComplete=Die Datei wurde erfolgreich verknüpft +ErrorFileNotLinked=Die Datei konnte nicht Verknüpft werden +LinkRemoved=Die Verknüpfung %s wurde entfernt +ErrorFailedToDeleteLink= Fehler beim Löschen des Links '%s' +ErrorFailedToUpdateLink= Fehler beim Aktualisieren der Verknüpfung '%s' diff --git a/htdocs/langs/de_DE/mailmanspip.lang b/htdocs/langs/de_DE/mailmanspip.lang index 8d117d47e23..443e785f10a 100644 --- a/htdocs/langs/de_DE/mailmanspip.lang +++ b/htdocs/langs/de_DE/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Konfiguration Mailman und SPIP Modul -# MailmanTitle=Mailman mailing list system -# TestSubscribe=To test subscription to Mailman lists -# TestUnSubscribe=To test unsubscribe from Mailman lists -# MailmanCreationSuccess=Subscription test was executed succesfully -# MailmanDeletionSuccess=Unsubscription test was executed succesfully -# SynchroMailManEnabled=A Mailman update will be performed -# SynchroSpipEnabled=A Spip update will be performed -# DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password -# DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions -# DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions -# DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) +MailmanTitle=Mailman mailing list system +TestSubscribe=To test subscription to Mailman lists +TestUnSubscribe=To test unsubscribe from Mailman lists +MailmanCreationSuccess=Subscription test was executed succesfully +MailmanDeletionSuccess=Unsubscription test was executed succesfully +SynchroMailManEnabled=A Mailman update will be performed +SynchroSpipEnabled=A Spip update will be performed +DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password +DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions +DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions +DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) SPIPTitle=SPIP Content Management System DescADHERENT_SPIP_SERVEUR=SPIP-Server DescADHERENT_SPIP_DB=SPIP-Datenbankname DescADHERENT_SPIP_USER=SPIP-Datenbankkennung DescADHERENT_SPIP_PASS=SPIP-Datenbankpasswort -# AddIntoSpip=Add into SPIP -# AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? -# AddIntoSpipError=Failed to add the user in SPIP -# DeleteIntoSpip=Remove from SPIP -# DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP? -# DeleteIntoSpipError=Failed to suppress the user from SPIP -# SPIPConnectionFailed=Failed to connect to SPIP -# SuccessToAddToMailmanList=Add of %s to mailman list %s or SPIP database done -# SuccessToRemoveToMailmanList=Removal of %s from mailman list %s or SPIP database done +AddIntoSpip=Add into SPIP +AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? +AddIntoSpipError=Failed to add the user in SPIP +DeleteIntoSpip=Von SPIP entfernen +DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP? +DeleteIntoSpipError=Failed to suppress the user from SPIP +SPIPConnectionFailed=Failed to connect to SPIP +SuccessToAddToMailmanList=Add of %s to mailman list %s or SPIP database done +SuccessToRemoveToMailmanList=Removal of %s from mailman list %s or SPIP database done diff --git a/htdocs/langs/de_DE/margins.lang b/htdocs/langs/de_DE/margins.lang index 773da6f8764..58dcdc96f80 100644 --- a/htdocs/langs/de_DE/margins.lang +++ b/htdocs/langs/de_DE/margins.lang @@ -5,9 +5,9 @@ Margins=Gewinnspannen TotalMargin=Gesamt-Spanne MarginOnProducts=Gewinnspanne / Produkte MarginOnServices=Gewinnspanne / Services -MarginRate=Margin rate +MarginRate=Gewinnspannen-Rate MarkRate=Mark rate -DisplayMarginRates=Display margin rates +DisplayMarginRates=Zeige Gewinnspannen-Raten an DisplayMarkRates=Display mark rates InputPrice=Eingabe Preis margin=Profit margins management diff --git a/htdocs/langs/de_DE/orders.lang b/htdocs/langs/de_DE/orders.lang index fda7c03a005..8d4ea51c343 100644 --- a/htdocs/langs/de_DE/orders.lang +++ b/htdocs/langs/de_DE/orders.lang @@ -55,7 +55,7 @@ DraftOrWaitingShipped=Entwurf oder bestätigt, noch nicht versandt MenuOrdersToBill=Bestellverrechnung MenuOrdersToBill2=Zu verrechnende Bestellungen SearchOrder=Suche Bestellung -# SearchACustomerOrder=Search a customer order +SearchACustomerOrder=Kundenauftrag suchen ShipProduct=Produkt versenden Discount=Rabatt CreateOrder=Erzeuge Bestellung @@ -101,7 +101,6 @@ RelatedOrders=Verknüpfte Bestellungen OnProcessOrders=Bestellungen in Bearbeitung RefOrder=Bestell-Nr. RefCustomerOrder=Kunden-Bestellung-Nr. -CustomerOrder=Kundenbestellung RefCustomerOrderShort=Kunden-BestellNr. SendOrderByMail=Bestellung per Post versenden ActionsOnOrder=Maßnahmen zu dieser Bestellung @@ -132,8 +131,6 @@ Error_COMMANDE_ADDON_NotDefined=Konstante COMMANDE_ADDON nicht definiert Error_FailedToLoad_COMMANDE_SUPPLIER_ADDON_File=Fehler beim Laden der Moduldatei '%s' Error_FailedToLoad_COMMANDE_ADDON_File=Fehler beim Laden der Moduldatei '%s' Error_OrderNotChecked=Keine zu verrechnende Bestellungen ausgewählt - - # Sources OrderSource0=Angebot OrderSource1=Internet @@ -144,7 +141,6 @@ OrderSource5=Vertrieb OrderSource6=Andere QtyOrdered=Bestellmenge AddDeliveryCostLine=Fügen Sie eine Versandkostenzeile zur Erfassung des Bestellgewichts ein - # Documents models PDFEinsteinDescription=Eine vollständige Bestellvorlage (Logo, uwm.) PDFEdisonDescription=Eine einfache Bestellungsvorlage @@ -155,14 +151,13 @@ OrderByFax=Fax OrderByEMail=E-Mail OrderByWWW=Online OrderByPhone=Telefon - -# CreateInvoiceForThisCustomer=Bill orders -# NoOrdersToInvoice=No orders billable +CreateInvoiceForThisCustomer=Bill orders +NoOrdersToInvoice=Keine Bestellungen Rechnungsfähig CloseProcessedOrdersAutomatically=Markiere alle ausgewählten Bestellungen als "verarbeitet". MenuOrdersToBill2=Zu verrechnende Bestellungen -# OrderCreation=Order creation +OrderCreation=Erstellen einer Bestellung Ordered=Bestellt OrderCreated=Ihre Bestellungen wurden erstellt OrderFail=Ein Fehler trat beim Erstellen der Bestellungen auf CreateOrders=Erzeuge Bestellungen -# ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s". +ToBillSeveralOrderSelectCustomer=Um eine Rechnung für verschiedene Bestellungen zu erstellen, klicken Sie erst auf Kunde und dann wählen Sie "%s". diff --git a/htdocs/langs/de_DE/paypal.lang b/htdocs/langs/de_DE/paypal.lang index 4664f3ea94c..0ee356b52f7 100644 --- a/htdocs/langs/de_DE/paypal.lang +++ b/htdocs/langs/de_DE/paypal.lang @@ -20,6 +20,6 @@ YouAreCurrentlyInSandboxMode=Sie befinden sich im "Sandbox"-Modus NewPaypalPaymentReceived=Neue PayPal-Zahlung erhalten NewPaypalPaymentFailed=Neue Paypal-Zahlung probiert, aber fehlgeschlagen PAYPAL_PAYONLINE_SENDEMAIL=Status-Email nach einer Zahlung (erfolgreich oder nicht) -ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ReturnURLAfterPayment=Rückkehr-URL nach Zahlung +ValidationOfPaypalPaymentFailed=Validierung der Paypal-Zahlung gescheitert +PaypalConfirmPaymentPageWasCalledButFailed=Zahlungsbestätigungsseite für Paypal wurde von Paypal aufgerufen, aber Bestätigung fehlgeschlagen diff --git a/htdocs/langs/de_DE/products.lang b/htdocs/langs/de_DE/products.lang index 1284d010bc2..3d82f643187 100644 --- a/htdocs/langs/de_DE/products.lang +++ b/htdocs/langs/de_DE/products.lang @@ -1,46 +1,46 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Produktreferenz ProductLabel=Produkt-Beschriftung -ProductServiceCard=Produkt-/Services-Karte +ProductServiceCard=Produkt-/Dienstleistungs-Karte Products=Produkte -Services=Services +Services=Dienstleistungen Product=Produkt -Service=Service -ProductId=Produkt/Service ID +Service=Dienstleistung +ProductId=Produkt/Dienstleistungs ID Create=Erstelle Reference=Referenz NewProduct=Neues Produkt -NewService=Neuer Service +NewService=Neue Dienstleistung ProductCode=Produkt-Code -ServiceCode=Service-Code +ServiceCode=Dienstleistungs-Code ProductVatMassChange=MwSt-Massenänderung -ProductVatMassChangeDesc=Mit dieser Seite kann ein Steuersatz für Produkte oder Services von einem Wert auf einen anderen geändert werden. Achtung: Diese Änderung erfolgt über die gesamte Datenbank! +ProductVatMassChangeDesc=Mit dieser Seite kann ein Steuersatz für Produkte oder Dienstleistungen von einem Wert auf einen anderen geändert werden. Achtung: Diese Änderung erfolgt über die gesamte Datenbank! MassBarcodeInit=Mass barcode init MassBarcodeInitDesc=Hier können Objekte mit einem Barcode initialisiert werden, die noch keinen haben. Stellen Sie vor Benutzung sicher, dass die Einstellungen des Barcode-Moduls vollständig sind! ProductAccountancyBuyCode=Buchhaltung - Aufwandskonto ProductAccountancySellCode=Buchhaltung - Erlöskonto -ProductOrService=Produkt oder Service -ProductsAndServices=Produkte und Services -ProductsOrServices=Produkte oder Services -ProductsAndServicesOnSell=Verfügbare Produkte und Services -ProductsAndServicesNotOnSell=Aufgelassene Produkte und Services -ProductsAndServicesStatistics=Produkt- und Service-Statistik +ProductOrService=Produkt oder Dienstleistung +ProductsAndServices=Produkte und Dienstleistungen +ProductsOrServices=Produkte oder Dienstleistungen +ProductsAndServicesOnSell=Verfügbare Produkte und Dienstleistungen +ProductsAndServicesNotOnSell=Aufgelassene Produkte und Dienstleistungen +ProductsAndServicesStatistics=Produkt- und Dienstleistungs-Statistik ProductsStatistics=Produktstatistik ProductsOnSell=Verfügbare Produkte ProductsNotOnSell=Aufgelassene Produkte ProductsOnSellAndOnBuy=Produkte weder für Ein- noch Verkauf -ServicesOnSell=Verfügbare Services -ServicesNotOnSell=Aufgelassene Services -ServicesOnSellAndOnBuy=Services weder für Ein- noch Verkauf +ServicesOnSell=Verfügbare Dienstleistungen +ServicesNotOnSell=Aufgelassene Dienstleistungen +ServicesOnSellAndOnBuy=Dienstleistungen weder für Ein- noch Verkauf InternalRef=Interne Referenz -LastRecorded=Zuletzt erfasste, verfügbare Produkte/Services -LastRecordedProductsAndServices=%s zuletzt erfasste Produkte/Services -LastModifiedProductsAndServices=%s zuletzt bearbeitete Produkte/Services +LastRecorded=Zuletzt erfasste, verfügbare Produkte/Dienstleistungen +LastRecordedProductsAndServices=%s zuletzt erfasste Produkte/Dienstleistungen +LastModifiedProductsAndServices=%s zuletzt bearbeitete Produkte/Dienstleistungen LastRecordedProducts=%s zuletzt erfasste Produkte -LastRecordedServices=%s zuletzt erfasste Services +LastRecordedServices=%s zuletzt erfasste Dienstleistungen LastProducts=Neueste Produkte CardProduct0=Produkt-Karte -CardProduct1=Service-Karte +CardProduct1=Dienstleistungs-Karte CardContract=Auftrags-Karte Warehouse=Warenlager Warehouses=Warenlager @@ -74,25 +74,25 @@ NewPrice=Neuer Preis MinPrice=Mindestverkaufspreis MinPriceHT=Mindest-Verkaufspreis (ohne MwSt.) MinPriceTTC=Mindest-Verkaufspreis (inkl. MwSt.) -CantBeLessThanMinPrice=Der Verkaufspreis darf den Mindestpreis für dieses Produkt (%s ohne MwSt.) nicht unterschreiten. Diese Meldung kann auch angezeigt, wenn Sie einen zu hohen Rabatt geben. +CantBeLessThanMinPrice=Der Verkaufspreis darf den Mindestpreis für dieses Produkt (%s ohne MwSt.) nicht unterschreiten. Diese Meldung kann auch angezeigt werden, wenn Sie einen zu hohen Rabatt geben. ContractStatus=Vertragsstatus ContractStatusClosed=Geschlossen ContractStatusRunning=In Arbeit ContractStatusExpired=Abgelaufen ContractStatusOnHold=Nicht in Arbeit -ContractStatusToRun=To get running +ContractStatusToRun=zu bearbeiten ContractNotRunning=Dieser Vertrag wird nicht bearbeitet ErrorProductAlreadyExists=Ein Produkt mit Artikel Nr. %s existiert bereits. ErrorProductBadRefOrLabel=Für Artikel Nr. oder Bezeichnung wurde ein ungültiger Wert eingegeben. -ErrorProductClone=Beim Duplizieren des Produkts oder Service ist ein Problem aufgetreten -ErrorPriceCantBeLowerThanMinPrice=Error Price Can't Be Lower Than Minimum Price. +ErrorProductClone=Beim Duplizieren des Produkts oder der Dienstleistung ist ein Problem aufgetreten +ErrorPriceCantBeLowerThanMinPrice=Fehler - Preis darf nicht unter dem Minimalpreis liegen. Suppliers=Lieferanten SupplierRef=Lieferanten-Artikelnummer ShowProduct=Produkt anzeigen -ShowService=Zeige Service -ProductsAndServicesArea=Produkt-und Services-Übersicht +ShowService=Dienstleistung anzeigen +ProductsAndServicesArea=Produkt-und Dienstleistungs-Übersicht ProductsArea=Produktübersicht -ServicesArea=Services-Übersicht +ServicesArea=Dienstleistungs-Übersicht AddToMyProposals=Zu meinen Angebote hinzufügen AddToOtherProposals=Zu Angeboten Anderer hinzufügen AddToMyBills=Zu meinen Rechnungen hinzufügen @@ -113,9 +113,9 @@ SetDefaultBarcodeType=Wählen Sie den standardmäßigen Barcode-Typ BarcodeValue=Barcode-Wert NoteNotVisibleOnBill=Anmerkung (nicht sichtbar auf Rechnungen, Angeboten,...) CreateCopy=Kopie erstellen -ServiceLimitedDuration=Ist die Leistungserbringung eines Service zeitlich beschränkt: -MultiPricesAbility=Mehrere Preisstufen pro Produkt/Service -MultiPricesNumPrices=Preisnummer +ServiceLimitedDuration=Ist die Erringung einer Dienstleistung zeitlich beschränkt: +MultiPricesAbility=Mehrere Preisstufen pro Produkt/Dienstleistung +MultiPricesNumPrices=Anzahl Preise MultiPriceLevelsName=Preiskategorien AssociatedProductsAbility=Untergeordnete Produkte aktivieren AssociatedProducts=Unterprodukte @@ -159,14 +159,14 @@ DiscountQtyMin=Standard-Rabatt für die Menge NoPriceDefinedForThisSupplier=Einkaufskonditionen für diesen Hersteller noch nicht definiert NoSupplierPriceDefinedForThisProduct=Einkaufskonditionen für dieses Produkt noch nicht definiert RecordedProducts=Erfasste Produkte -RecordedServices=Erfasste Services +RecordedServices=Erfasste Dienstleistungen RecordedProductsAndServices=Erfasste Produkte/Leistungen PredefinedProductsToSell=Vordefinierte Verkaufs-Produkte -PredefinedServicesToSell=Vordefinierte Services zum Verkauf -PredefinedProductsAndServicesToSell=Vordefinierte Verkaufs-Produkte/-Services +PredefinedServicesToSell=Vordefinierte Dienstleistungen zum Verkauf +PredefinedProductsAndServicesToSell=Vordefinierte Verkaufs-Produkte/-Dienstleistungen PredefinedProductsToPurchase=Vordefinierte Einkaufs-Produkte -PredefinedServicesToPurchase=Vordefinierte Services zum Einkauf -PredefinedProductsAndServicesToPurchase=Vordefinierte Einkaufs-Produkte/-Services +PredefinedServicesToPurchase=Vordefinierte Dienstleistungen zum Einkauf +PredefinedProductsAndServicesToPurchase=Vordefinierte Einkaufs-Produkte/-Dienstleistungen GenerateThumb=Erzeuge Vorschaubild ProductCanvasAbility=Verwende spezielle "canvas" Add-Ons ServiceNb=Leistung #%s @@ -176,31 +176,31 @@ ListServiceByPopularity=Liste der Leistungen nach Beliebtheit Finished=Eigenproduktion RowMaterial=Rohmaterial CloneProduct=Produkt/Leistung duplizieren -ConfirmCloneProduct=Möchten Sie %s wirklich duplizieren? +ConfirmCloneProduct=Möchten Sie die Leistung %s wirklich duplizieren? CloneContentProduct=Allgemeine Informationen des Produkts/Leistungen duplizieren ClonePricesProduct=Allgemeine Informationen und Preise duplizieren -CloneCompositionProduct=Unterprodukt/-Service duplizieren +CloneCompositionProduct=Unterprodukt/-Dienstleistung duplizieren ProductIsUsed=Produkt in Verwendung NewRefForClone=Artikel-Nr. des neuen Produkts/Leistungen CustomerPrices=Kundenpreise SuppliersPrices=Lieferantenpreise -SuppliersPricesOfProductsOrServices=Lieferanten-Preise (für Produkte oder Services) +SuppliersPricesOfProductsOrServices=Lieferanten-Preise (für Produkte oder Dienstleistungen) CustomCode=Interner Code CountryOrigin=Urspungsland HiddenIntoCombo=In ausgewählten Listen nicht anzeigen Nature=Art ProductCodeModel=Vorlage für Produktreferenz -ServiceCodeModel=Vorlage für Service-Referenz +ServiceCodeModel=Vorlage für Dienstleistungs-Referenz AddThisProductCard=Produktkarte erstellen HelpAddThisProductCard=Dies gibt ihnen die Möglichkeit, ein Produkt zu erstellen oder zu duplizieren wenn es noch nicht existiert. -AddThisServiceCard=Service-Karte erstellen -HelpAddThisServiceCard=Dies gibt ihnen die Möglichkeit, einen Service zu erstellen oder zu duplizieren wenn er noch nicht existiert. +AddThisServiceCard=Dienstleistungs-Karte erstellen +HelpAddThisServiceCard=Dies gibt ihnen die Möglichkeit, eine Dienstleistung zu erstellen oder zu duplizieren wenn sie noch nicht existiert. CurrentProductPrice=Aktueller Preis -AlwaysUseNewPrice=Immer aktuellen Preis des Produkts/Service nutzen +AlwaysUseNewPrice=Immer aktuellen Preis des Produkts/Dienstleistung nutzen AlwaysUseFixedPrice=Festen Preis nutzen PriceByQuantity=Preis nach Menge PriceByQuantityRange=Bereich der Menge -ProductsDashboard=Produkt-und Services-Zusammenfassung +ProductsDashboard=Produkt- und Dienstleistungs-Zusammenfassung UpdateOriginalProductLabel=Ursprüngliches Label verändern HelpUpdateOriginalProductLabel=Gibt die Möglichkeit, den Namen des Produkts zu bearbeiten ### composition fabrication @@ -214,7 +214,7 @@ CostPmpHT=Net total VWAP ProductUsedForBuild=Automatisch für Produktion verbraucht ProductBuilded=Produktion fertiggestellt ProductsMultiPrice=Produkt Multi-Preis -ProductsOrServiceMultiPrice=Kunden-Preise (für Produkte oder Services, Multi-Preise) +ProductsOrServiceMultiPrice=Kunden-Preise (für Produkte oder Dienstleistungen, Multi-Preise) ProductSellByQuarterHT=Products turnover quarterly VWAP ServiceSellByQuarterHT=Services turnover quarterly VWAP Quarter1=1. Quartal @@ -234,11 +234,11 @@ DefinitionOfBarCodeForThirdpartyNotComplete=Barcode-Typ oder -Wert bei Partner BarCodeDataForProduct=Barcode-Information von Produkt %s: BarCodeDataForThirdparty=Barcode-Information von Partner %s: ResetBarcodeForAllRecords=Define barcode value for all records (this will also reset barcode value already defined with new values) -PriceByCustomer=Price by customer -PriceCatalogue=Unique price per product/service +PriceByCustomer=Preis des Kunden +PriceCatalogue=Einzigartiger Preis pro Produkt/Dienstleistung PricingRule=Preisregeln AddCustomerPrice=Add price by customers ForceUpdateChildPriceSoc=Lege den gleichen Preis für Kunden-Tochtergesellschaften fest PriceByCustomerLog=Price by customer log -MinimumPriceLimit=Minimum price can't be lower that %s -MinimumRecommendedPrice=Minimum recommended price is : %s +MinimumPriceLimit=Minimaler Preis kann nicht kleiner als %s sein +MinimumRecommendedPrice=Minimaler empfohlener Preis: %s diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang index 009c36d1a7c..907b21ce10c 100644 --- a/htdocs/langs/de_DE/projects.lang +++ b/htdocs/langs/de_DE/projects.lang @@ -124,7 +124,7 @@ AddElement=Mit Element verknüpfen DocumentModelBaleine=Eine vollständige Projektberichtsvorlage (Logo, uwm.) PlannedWorkload = Geplante Auslastung WorkloadOccupation= Beeinflussung der Auslastung -ProjectReferers=Refering objects -SearchAProject=Search a project +ProjectReferers=Bezugnahmen +SearchAProject=Suchen Sie ein Projekt ProjectMustBeValidatedFirst=Project must be validated first ProjectDraft=Draft projects diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang index 0fbf941d777..dd29ee21783 100644 --- a/htdocs/langs/de_DE/propal.lang +++ b/htdocs/langs/de_DE/propal.lang @@ -98,5 +98,5 @@ TypeContact_propal_external_CUSTOMER=Partnerkontakt für Angebot DocModelAzurDescription=Eine vollständige Angebotsvorlage (Logo, uwm.) DocModelJauneDescription=Angebotsvorlage DefaultModelPropalCreate=Erstellung Standardvorlage -# DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) -# DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) +DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) +DefaultModelPropalClosed=Standard Schablone wenn sie ein Geschäftsangebot schließen wollen. (ohne Rechnung) diff --git a/htdocs/langs/de_DE/salaries.lang b/htdocs/langs/de_DE/salaries.lang index 8748f77ee64..b1477807c4e 100644 --- a/htdocs/langs/de_DE/salaries.lang +++ b/htdocs/langs/de_DE/salaries.lang @@ -1,4 +1,6 @@ # Dolibarr language file - Source file is en_US - users +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Buchhaltungscode für Bezahlung der Gehälter +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge Salary=Lohn Salaries=Löhne Employee=Angestellter @@ -6,3 +8,5 @@ NewSalaryPayment=Neue Lohnzahlung SalaryPayment=Lohnzahlung SalariesPayments=Lohnzahlungen ShowSalaryPayment=Zeige Lohnzahlung +THM=Durchschnittlicher Stundenpreis +TJM=Durchschnittlicher Tagespreis diff --git a/htdocs/langs/de_DE/stocks.lang b/htdocs/langs/de_DE/stocks.lang index 02cdb4098ed..2b7376cb62e 100644 --- a/htdocs/langs/de_DE/stocks.lang +++ b/htdocs/langs/de_DE/stocks.lang @@ -88,7 +88,7 @@ PersonalStock=Persönlicher Warenbestand %s ThisWarehouseIsPersonalStock=Dieses Lager bezeichnet den persönlichen Bestand von %s %s SelectWarehouseForStockDecrease=Wählen Sie das Lager für die Entnahme SelectWarehouseForStockIncrease=Wählen Sie das Lager für den Wareneingang -NoStockAction=No stock action +NoStockAction=Keine Vorratsänderung LastWaitingSupplierOrders=Bestellungen warten auf Wareneingang DesiredStock=gewünschter Lagerbestand StockToBuy=zu bestellen @@ -109,10 +109,10 @@ WarehouseForStockIncrease=Das Lager %s wird für Wareneingang verwendet ForThisWarehouse=Für dieses Lager ReplenishmentStatusDesc=Dies ist eine Liste aller Produkte, deren Lagerbestand unter dem Sollbestand liegt (bzw. unter der Alarmschwelle, wenn die Auswahlbox "Nur Alarm" gewählt ist) , die Ihnen Vorschläge für Lieferantenbestellungen liefert, um die Differenzen auszugleichen. ReplenishmentOrdersDesc=Dies ist die Liste aller offenen Lieferantenbestellungen -Replenishments=Replenishments +Replenishments=Nachschub NbOfProductBeforePeriod=Menge des Produkts %s im Lager vor der gewählten Periode (< %s) NbOfProductAfterPeriod=Menge des Produkts %s im Lager nach der gewählten Periode (> %s) -MassMovement=Mass movement +MassMovement=Massenbewegung MassStockMovement=Massen-Umlagerung SelectProductInAndOutWareHouse=Wählen Sie ein Produkt, eine Menge, ein Quellen- und ein Ziel-Lager und klicken Sie dann auf "%s". Sobald Sie dies für alle erforderlichen Bewegungen getan haben, klicken Sie auf "%s". RecordMovement=Record transfert diff --git a/htdocs/langs/de_DE/users.lang b/htdocs/langs/de_DE/users.lang index 221b0f125b6..94507c0c572 100644 --- a/htdocs/langs/de_DE/users.lang +++ b/htdocs/langs/de_DE/users.lang @@ -114,8 +114,9 @@ YourRole=Ihre Rolle YourQuotaOfUsersIsReached=Ihr Kontingent aktiver Benutzer ist erreicht NbOfUsers=Anzahl der Benutzer DontDowngradeSuperAdmin=Nur ein SuperAdmin kann einen SuperAdmin downgraden -HierarchicalResponsible=In der Hierarchie verantwortlich +HierarchicalResponsible=Aufseher HierarchicView=Hierarchische Ansicht UseTypeFieldToChange=Nutzen sie das Feld "Typ" zum ändern OpenIDURL=OpenID URL LoginUsingOpenID=Verwende OpenID für Anmeldung +WeeklyHours=Wochenstunden diff --git a/htdocs/langs/de_DE/withdrawals.lang b/htdocs/langs/de_DE/withdrawals.lang index fef59beb67f..139f35c1085 100644 --- a/htdocs/langs/de_DE/withdrawals.lang +++ b/htdocs/langs/de_DE/withdrawals.lang @@ -56,7 +56,7 @@ StatusCredited=Eingelöst StatusRefused=Abgelehnt StatusMotif0=Nicht spezifiziert StatusMotif1=Unzureichende Deckung -StatusMotif2=Request contested +StatusMotif2=Anfrage bestritten StatusMotif3=Kein Abbuchungsauftrag StatusMotif4=Kundenanfrage StatusMotif5=nicht nutzbare Kontodaten diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 1b2ea17215b..06c350039a3 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -397,7 +397,7 @@ YouMustCreateContactFirst=You must create emails contacts for third party first ListSuppliersShort=List of suppliers ListProspectsShort=List of prospects ListCustomersShort=List of customers -ThirdPartiesArea=Third parties area +ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Last %s modified third parties UniqueThirdParties=Total of unique third parties InActivity=Open @@ -410,3 +410,5 @@ OutstandingBillReached=Reached max. for outstanding bill MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for supplier code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0. LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) +SearchThirdparty=Search thirdparty +SearchContact=Search contact \ No newline at end of file diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 75bc4a29f5a..3e1ecea0be4 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -85,13 +85,13 @@ ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent ? -DoNotShowMyTasksOnly=See also tasks not allocated to me -ShowMyTasksOnly=View only tasks allocated to me +DoNotShowMyTasksOnly=See also tasks not assigned to me +ShowMyTasksOnly=View only tasks assigned to me TaskRessourceLinks=Ressources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not allocated to you +TaskIsNotAffectedToYou=Task not assigned to you ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang index 170f5984c4d..2ae43f39766 100644 --- a/htdocs/langs/en_US/sendings.lang +++ b/htdocs/langs/en_US/sendings.lang @@ -72,3 +72,7 @@ DocumentModelTyphon=More complete document model for delivery receipts (logo...) Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constant EXPEDITION_ADDON_NUMBER not defined SumOfProductVolumes=Sum of product volumes SumOfProductWeights=Sum of product weights + +# warehouse details +DetailWarehouseNumber= Warehouse details +DetailWarehouseFormat= W:%s (Qty : %d) diff --git a/htdocs/langs/en_US/suppliers.lang b/htdocs/langs/en_US/suppliers.lang index fdc0787646a..50502c15c7e 100644 --- a/htdocs/langs/en_US/suppliers.lang +++ b/htdocs/langs/en_US/suppliers.lang @@ -40,3 +40,5 @@ AddSupplierInvoice=Create supplier invoice ListOfSupplierProductForSupplier=List of products and prices for supplier %s NoneOrBatchFileNeverRan=None or batch %s not ran recently SentToSuppliers=Sent to suppliers +ListOfSupplierOrders=List of supplier orders +MenuOrdersSupplierToBill=Supplier orders to invoice \ No newline at end of file diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index 352b3902096..939a3fde7d5 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -1,33 +1,33 @@ -# Dolibarr language file - fr_FR - Accountancy +# Dolibarr language file - en_US - Accounting Expert CHARSET=UTF-8 Accounting=Comptabilité -Globalparameters=Paramètres globaux +Globalparameters=Paramètres globals Chartofaccounts=Plan comptable -Fiscalyear=Exercices fiscaux +Fiscalyear=Années fiscales Menuaccount=Comptes comptables -Menuthirdpartyaccount=Comptes tiers +Menuthirdpartyaccount=Comptes de tiers MenuTools=Outils ConfigAccountingExpert=Configuration du module comptabilité expert Journaux=Journaux -JournalFinancial=Journaux de trésorerie +JournalFinancial=Journaux financiers Exports=Exports Modelcsv=Modèle d'export -Selectmodelcsv=Sélectionnez un modèle d'export -Modelcsv_normal=Export classique +Selectmodelcsv=Sélectionner un modèle d'export +Modelcsv_normal=Export standard Modelcsv_CEGID=Export vers CEGID Expert -BackToChartofaccounts=Retour plan comptable -Back=Retour +BackToChartofaccounts=Return chart of accounts +Back=Return Definechartofaccounts=Définir un plan comptable -Selectchartofaccounts=Sélectionnez un plan comptable +Selectchartofaccounts=Sélectionner un plan comptable Validate=Valider Addanaccount=Ajouter un compte comptable AccountAccounting=Compte comptable Ventilation=Ventilation -ToDispatch=A effectuer -Dispatched=Effectuée +ToDispatch=A ventiler +Dispatched=Ventilés CustomersVentilation=Ventilation clients SuppliersVentilation=Ventilation fournisseurs @@ -36,123 +36,123 @@ Reports=Rapports ByCustomerInvoice=Par factures clients ByMonth=Par mois NewAccount=Nouveau compte comptable -Update=Mettre à jour +Update=Modifier List=Liste Create=Créer -UpdateAccount=Modification d'un compte -UpdateMvts=Modification d'un mouvement -WriteBookKeeping=Comptabiliser les écritures dans le grand livre -Bookkeeping=Grand livre -AccountBalanceByMonth=Balance mensuelle +UpdateAccount=Modification de compte comptable +UpdateMvts=Modification de mouvements +WriteBookKeeping=Record accounts in general ledger +Bookkeeping=General ledger +AccountBalanceByMonth=Solde par mois AccountingVentilation=Ventilation comptable -AccountingVentilationSupplier=Ventilation comptable fournisseur -AccountingVentilationCustomer=Ventilation comptable client +AccountingVentilationSupplier=Ventilation comptable client +AccountingVentilationCustomer=Ventilation comptable fournisseur Line=Ligne -CAHTF=Total achat fournisseur HT -InvoiceLines=Lignes de facture à ventiler -InvoiceLinesDone=Lignes de facture ventilées -IntoAccount=Dans le compte comptable +CAHTF=Total achats fournisseur HT +InvoiceLines=Lignes de factures à ventiler +InvoiceLinesDone=Lignes de factures ventilées +IntoAccount=In the accounting account -Ventilate=Ventiler -VentilationAuto=Ventilation automatique +Ventilate=Ventilate +VentilationAuto=Automatic ventilation -Processing=Traitement en cours -EndProcessing=Fin de traitement -AnyLineVentilate=Aucune ligne à ventiler +Processing=Processing +EndProcessing=The end of processing +AnyLineVentilate=Any lines to ventilate SelectedLines=Lignes sélectionnées -Lineofinvoice=Ligne de facture -VentilatedinAccount=Ventilée avec succès dans le compte comptable -NotVentilatedinAccount=Non ventilée dans le compte comptable +Lineofinvoice=Line of invoice +VentilatedinAccount=Ventilated successfully in the accounting account +NotVentilatedinAccount=Not ventilated in the accounting account -ACCOUNTING_SEPARATORCSV=Séparateur CSV +ACCOUNTINGEX_SEPARATORCSV=Séparateur de champ -ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'éléments à ventiler affichés par page (maximum conseillé : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Commencer le tri des pages de ventilation "A ventiler" par les éléments les plus récents -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Commencer le tri des pages de ventilation "Ventilées" par les éléments les plus récents +ACCOUNTINGEX_LIMIT_LIST_VENTILATION=Number of elements to be ventilated shown by page (maximum recommended : 50) +ACCOUNTINGEX_LIST_SORT_VENTILATION_TODO=Begin the sorting of the pages of ventilation "Has to ventilate" by the most recent elements +ACCOUNTINGEX_LIST_SORT_VENTILATION_DONE=Begin the sorting of the pages of ventilation "Ventilated" by the most recent elements -AccountLength=Longueur des comptes comptables affichés dans Dolibarr -AccountLengthDesc=Fonction permettant de simuler une longueur de compte comptable en remplaçant les espaces par le chiffre zéro. Cette fonction touche uniquement à l'affichage, elle ne modifie pas les comptes comptables enregistrés dans Dolibarr. Pour l'export, cette fonction est nécessaire pour être compatible avec certains logiciels. -ACCOUNTING_LENGTH_GACCOUNT=Longueur des comptes généraux -ACCOUNTING_LENGTH_AACCOUNT=Longueur des comptes tiers +AccountLength=Length of the accounting accounts shown in Dolibarr +AccountLengthDesc=Function allowing to feign a length of accounting account by replacing spaces by the zero figure. This function touches only the display, it does not modify the accounting accounts registered in Dolibarr. For the export, this function is necessary to be compatible with certain software. +ACCOUNTINGEX_LENGTH_GACCOUNT=Length of the general accounts +ACCOUNTINGEX_LENGTH_AACCOUNT=Length of the third party accounts -ACCOUNTING_SELL_JOURNAL=Journal des Ventes -ACCOUNTING_PURCHASE_JOURNAL=Journal des Achats -ACCOUNTING_BANK_JOURNAL=Journal de Banque -ACCOUNTING_CASH_JOURNAL=Journal de Caisse -ACCOUNTING_MISCELLANEOUS_JOURNAL=Journal des Opérations Diverses -ACCOUNTING_SOCIAL_JOURNAL=Journal Social +ACCOUNTINGEX_SELL_JOURNAL=Journal des ventes +ACCOUNTINGEX_PURCHASE_JOURNAL=Journal des achats +ACCOUNTINGEX_BANK_JOURNAL=Journal de banque +ACCOUNTINGEX_CASH_JOURNAL=Journal de compte caisse +ACCOUNTINGEX_MISCELLANEOUS_JOURNAL=Journal divers +ACCOUNTINGEX_SOCIAL_JOURNAL=Social journal -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte de transfert espèce -ACCOUNTING_ACCOUNT_SUSPENSE=Compte d'attente +ACCOUNTINGEX_ACCOUNT_TRANSFER_CASH=Compte de transfert +ACCOUNTINGEX_ACCOUNT_SUSPENSE=Compte d'attente -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Compte comptable par défaut pour les produits achetés (si non défini dans la fiche produit) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Compte comptable par défaut pour les produits vendus (si non défini dans la fiche produit) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Compte comptable par défaut pour les services achetés (si non défini dans la fiche service) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Compte comptable par défaut pour les services vendus (si non défini dans la fiche service) +COMPTA_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (if not defined in the product sheet) +COMPTA_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (if not defined in the product sheet) +COMPTA_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (if not defined in the service sheet) +COMPTA_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (if not defined in the service sheet) -Doctype=Type de document +Doctype=Type de documents Docdate=Date -Docref=Référence +Docref=Reference Numerocompte=Compte Code_tiers=Tiers -Labelcompte=Libellé compte +Labelcompte=Label account Debit=Débit Credit=Crédit Amount=Montant Sens=Sens Codejournal=Journal -DelBookKeeping=Supprimer les écritures du grand livre +DelBookKeeping=Delete the records of the general ledger SellsJournal=Journal des ventes PurchasesJournal=Journal des achats DescSellsJournal=Journal des ventes DescPurchasesJournal=Journal des achats -BankJournal=Journal de banque -DescBankJournal=Journal de banque comprenant tous les types de règlements autres que espèce -CashJournal=Journal de caisse -DescCashJournal=Journal de caisse comprenant le type de règlement "espèce" +BankJournal=Bank journal +DescBankJournal=Bank journal including all the types of payments other than cash +CashJournal=Cash journal +DescCashJournal=Cash journal including the type of payment cash -CashPayment=Règlement espèce +CashPayment=Cash Payment -SupplierInvoicePayment=Règlement de facture fournisseur -CustomerInvoicePayment=Règlement de facture client +SupplierInvoicePayment=Payment of invoice supplier +CustomerInvoicePayment=Payment of invoice customer -ThirdPartyAccount=Compte tiers +ThirdPartyAccount=Thirdparty account -NewAccountingMvt=Nouveau mouvement -NumMvts=Numéro de mouvement -ListeMvts=Liste du mouvement -ErrorDebitCredit=Debit et Credit ne peuvent avoir une valeur en même temps +NewAccountingMvt=New movement +NumMvts=Number of movement +ListeMvts=Liste des mouvements +ErrorDebitCredit=Debit and Credit cannot have a value at the same time -ReportThirdParty=Liste compte tiers -DescThirdPartyReport=Consultez ici la liste des tiers clients et fournisseurs et leurs codes comptables +ReportThirdParty=List thirdparty account +DescThirdPartyReport=Consult here the list of the thirdparty customers and the suppliers and their accounting accounts -ListAccounts=Liste des comptes comptables +ListAccounts=List of the accounting accounts Pcgversion=Version du plan Pcgtype=Classe de compte -Pcgsubtype=Sous classe de compte -Accountparent=Racine du compte -Active=État +Pcgsubtype=Under class of account +Accountparent=Racine des comptes +Active=Relevé -NewFiscalYear=Nouvel exercice fiscal +NewFiscalYear=Nouvelle année fiscale -DescVentilCustomer=Consultez ici la ventilation comptable annuelle de vos factures clients -TotalVente=Total chiffre affaires HT -TotalMarge=Total marge commerciale -DescVentilDoneCustomer=Consultez ici la liste des lignes de factures clients et leur compte comptable -DescVentilTodoCustomer=Ventilez vos lignes de facture client avec un compte comptable -ChangeAccount=Changer le compte comptable pour les lignes sélectionnées par le compte : +DescVentilCustomer=Consult here the annual accounting ventilation of your invoices customers +TotalVente=Total turnover HT +TotalMarge=Total sales margin +DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their accounting account +DescVentilTodoCustomer=Ventilate your lines of customer invoice with an accounting account +ChangeAccount=Change the accounting account for lines selected by the account: Vide=- -DescVentilSupplier=Consultez ici la ventilation comptable annuelle de vos factures fournisseurs -DescVentilTodoSupplier=Ventilez vos lignes de facture fournisseur avec un compte comptable -DescVentilDoneSupplier=Consultez ici la liste des lignes de factures fournisseur et leur compte comptable +DescVentilSupplier=Consult here the annual accounting ventilation of your invoices suppliers +DescVentilTodoSupplier=Ventilate your lines of invoice supplier with an accounting account +DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier and their accounting account -ValidateHistory=Valider Automatiquement +ValidateHistory=Validate Automatically -ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas supprimer ce compte comptable car il est utilisé +ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé -FicheVentilation=Fiche ventilation +FicheVentilation=Ventilation card diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index d8f1e3b0c16..ffb38e3976d 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -45,8 +45,8 @@ ErrorModuleRequireDolibarrVersion=Erreur, ce module requiert une version %s ou s ErrorDecimalLargerThanAreForbidden=Erreur, les précisions supérieures à %s ne sont pas prises en charge. DictionarySetup=Dictionnaires Dictionary=Dictionnaires -Chartofaccounts=Chart of accounts -Fiscalyear=Fiscal years +Chartofaccounts=Plan comptable +Fiscalyear=Année fiscale ErrorReservedTypeSystemSystemAuto=Erreur, les valeurs 'system' et 'systemauto' sont réservées. Vous pouvez utiliser la valeur 'user' pour ajouter vos propres enregistrements ErrorCodeCantContainZero=Erreur, le code ne peut contenir la valeur 0 DisableJavascript=Désactive les fonctions Javascript et Ajax (Recommandé pour les personnes aveugles ou navigateurs text). @@ -586,6 +586,9 @@ Permission92=Créer/modifier les charges et la TVA Permission93=Supprimer les charges et la TVA Permission94=Exporter les charges Permission95=Consulter CA, bilans et résultats +Permission96=Paramétrer la ventilation +Permission97=Lire les lignes de factures +Permission98=Ventiler les lignes de factures Permission101=Consulter les expéditions Permission102=Créer/modifier les expéditions Permission104=Valider les expéditions diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang index 5811bf3d940..a94bd8fff72 100644 --- a/htdocs/langs/fr_FR/orders.lang +++ b/htdocs/langs/fr_FR/orders.lang @@ -55,7 +55,7 @@ DraftOrWaitingShipped=Brouillon ou validée pas encore expédiée MenuOrdersToBill=Commandes délivrées MenuOrdersToBill2=Commandes à facturer SearchOrder=Rechercher une commande -SearchACustomerOrder=Rechercher code client +SearchACustomerOrder=Rechercher une commande client ShipProduct=Expédier produit Discount=Remise CreateOrder=Créer Commande @@ -101,7 +101,6 @@ RelatedOrders=Commandes rattachées OnProcessOrders=Commandes en cours de traitement RefOrder=Réf. commande RefCustomerOrder=Réf. commande client -CustomerOrder=Commande client RefCustomerOrderShort=Réf. com. client SendOrderByMail=Envoyer commande par mail ActionsOnOrder=Événements sur la commande @@ -132,8 +131,6 @@ Error_COMMANDE_ADDON_NotDefined=Constante COMMANDE_ADDON non définie Error_FailedToLoad_COMMANDE_SUPPLIER_ADDON_File=Échec chargement du fichier module '%s' Error_FailedToLoad_COMMANDE_ADDON_File=Échec chargement du fichier module '%s' Error_OrderNotChecked=Pas de commandes à facturer sélectionnées - - # Sources OrderSource0=Proposition commerciale OrderSource1=Internet @@ -144,7 +141,6 @@ OrderSource5=Commercial OrderSource6=Magasin QtyOrdered=Qté commandée AddDeliveryCostLine=Ajouter une ligne de frais port indiquant le poids de la commande - # Documents models PDFEinsteinDescription=Modèle de commande complet (logo…) PDFEdisonDescription=Modèle de commande simple @@ -155,7 +151,6 @@ OrderByFax=Fax OrderByEMail=Email OrderByWWW=En ligne OrderByPhone=Téléphone - CreateInvoiceForThisCustomer=Facturer commandes NoOrdersToInvoice=Pas de commandes facturables CloseProcessedOrdersAutomatically=Classer automatiquement à "Traitées" les commandes sélectionnées. diff --git a/htdocs/langs/fr_FR/suppliers.lang b/htdocs/langs/fr_FR/suppliers.lang index 8e0f3475db4..f558b0779ea 100644 --- a/htdocs/langs/fr_FR/suppliers.lang +++ b/htdocs/langs/fr_FR/suppliers.lang @@ -40,3 +40,5 @@ AddSupplierInvoice=Créer facture fournisseur ListOfSupplierProductForSupplier=Liste des produits et prix du fournisseurs %s NoneOrBatchFileNeverRan=Aucun ou traitement par lot %s non exécuté récemment SentToSuppliers=Envoyés aux fournisseurs +ListOfSupplierOrders=Liste des commandes fournisseur +MenuOrdersSupplierToBill=Commandes fournisseur à facturer \ No newline at end of file diff --git a/htdocs/langs/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang index c2ee988b96e..521638dc632 100644 --- a/htdocs/langs/hr_HR/bills.lang +++ b/htdocs/langs/hr_HR/bills.lang @@ -85,7 +85,7 @@ ClassifyPaid=Označi kao plaćeno ClassifyPaidPartially=Označi kao djelomično plaćeno ClassifyCanceled=Označi kao napušteno ClassifyClosed=Označi kao zatvoreno -ClassifyUnBilled=Classify 'Unbilled' +ClassifyUnBilled=Klasificirati 'nefakturirano' CreateBill=Izradi račun AddBill=Dodaj račun ili bonifikaciju AddToDraftInvoices=Dodati u skice računa @@ -163,7 +163,7 @@ ConfirmClassifyPaidPartiallyReasonBadCustomer=Loš kupac ConfirmClassifyPaidPartiallyReasonProductReturned=Proizvod djelomično vraćen ConfirmClassifyPaidPartiallyReasonOther=Iznos otpisan iz drugih razloga ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction») -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note. +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=U nekim zemljama, taj izbor može biti moguć samo ako vaš račun sadrži ispravne bilješke. ConfirmClassifyPaidPartiallyReasonAvoirDesc=Koristi ovaj izbor ako ni jedan drugi nije odgovarajući ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Loš kupac je kupac koji odbija platit svoj dug. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ovaj izbor se koristi kada plaćanje nije kompletno zato jer je neki od proizvoda vraćen. @@ -198,8 +198,8 @@ Rest=U toku AmountExpected=Utvrđen iznos ExcessReceived=Previše primljeno EscompteOffered=Ponuđen je popust (za plaćanje prije dospijeća) -SendBillRef=Submission of invoice %s -SendReminderBillRef=Submission of invoice %s (reminder) +SendBillRef=Podnošenje računa %s +SendReminderBillRef=Podnošenje Računa %s (podsjetnik) StandingOrders=Otvorene narudžbe StandingOrder=Otvorene narudžbe NoDraftBills=Nema skica računa @@ -232,7 +232,7 @@ Repeatables=Predložak ChangeIntoRepeatableInvoice=Pretvori u predložak CreateRepeatableInvoice=Izradi predložak računa CreateFromRepeatableInvoice=Izradi iz predloška računa -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines +CustomersInvoicesAndInvoiceLines=Računi klijenata i redovi računa CustomersInvoicesAndPayments=Računi i plaćanja kupca ExportDataset_invoice_1=Računi kupca i popis računa ExportDataset_invoice_2=Računi i plaćanja kupca @@ -369,7 +369,7 @@ LawApplicationPart4=njihove cijene. LimitedLiabilityCompanyCapital=SARL with Capital of UseLine=Primjeni UseDiscount=Iskoriti popust -UseCredit=Use credit +UseCredit=Koristite kredit UseCreditNoteInInvoicePayment=Reduce amount to pay with this credit MenuChequeDeposits=Checks deposits MenuCheques=Čekovi diff --git a/htdocs/langs/hr_HR/boxes.lang b/htdocs/langs/hr_HR/boxes.lang index 0596d677c46..d67c219ddc9 100644 --- a/htdocs/langs/hr_HR/boxes.lang +++ b/htdocs/langs/hr_HR/boxes.lang @@ -1,91 +1,91 @@ # Dolibarr language file - Source file is en_US - boxes -# BoxLastRssInfos=Rss information -# BoxLastProducts=Last %s products/services -# BoxProductsAlertStock=Products in stock alert -# BoxLastProductsInContract=Last %s contracted products/services -# BoxLastSupplierBills=Last supplier's invoices -# BoxLastCustomerBills=Last customer's invoices -# BoxOldestUnpaidCustomerBills=Oldest unpaid customer's invoices -# BoxOldestUnpaidSupplierBills=Oldest unpaid supplier's invoices -# BoxLastProposals=Last commercial proposals -# BoxLastProspects=Last modified prospects -# BoxLastCustomers=Last modified customers -# BoxLastSuppliers=Last modified suppliers -# BoxLastCustomerOrders=Last customer orders -# BoxLastBooks=Last books -# BoxLastActions=Last actions -# BoxLastContracts=Last contracts -# BoxLastContacts=Last contacts/addresses -# BoxLastMembers=Last members -# BoxFicheInter=Last interventions -# BoxCurrentAccounts=Opened accounts balance -# BoxSalesTurnover=Sales turnover -# BoxTotalUnpaidCustomerBills=Total unpaid customer's invoices -# BoxTotalUnpaidSuppliersBills=Total unpaid supplier's invoices -# BoxTitleLastBooks=Last %s recorded books -# BoxTitleNbOfCustomers=Number of clients -# BoxTitleLastRssInfos=Last %s news from %s -# BoxTitleLastProducts=Last %s modified products/services -# BoxTitleProductsAlertStock=Products in stock alert -# BoxTitleLastCustomerOrders=Last %s modified customer orders -# BoxTitleLastSuppliers=Last %s recorded suppliers -# BoxTitleLastCustomers=Last %s recorded customers -# BoxTitleLastModifiedSuppliers=Last %s modified suppliers -# BoxTitleLastModifiedCustomers=Last %s modified customers -# BoxTitleLastCustomersOrProspects=Last %s modified customers or prospects -# BoxTitleLastPropals=Last %s recorded proposals -# BoxTitleLastCustomerBills=Last %s customer's invoices -# BoxTitleLastSupplierBills=Last %s supplier's invoices -# BoxTitleLastProspects=Last %s recorded prospects -# BoxTitleLastModifiedProspects=Last %s modified prospects -# BoxTitleLastProductsInContract=Last %s products/services in a contract -# BoxTitleLastModifiedMembers=Last %s modified members -# BoxTitleLastFicheInter=Last %s modified intervention -# BoxTitleOldestUnpaidCustomerBills=Oldest %s unpaid customer's invoices -# BoxTitleOldestUnpaidSupplierBills=Oldest %s unpaid supplier's invoices -# BoxTitleCurrentAccounts=Opened account's balances -# BoxTitleSalesTurnover=Sales turnover -# BoxTitleTotalUnpaidCustomerBills=Unpaid customer's invoices -# BoxTitleTotalUnpaidSuppliersBills=Unpaid supplier's invoices -# BoxTitleLastModifiedContacts=Last %s modified contacts/addresses -# BoxMyLastBookmarks=My last %s bookmarks -# BoxOldestExpiredServices=Oldest active expired services -# BoxLastExpiredServices=Last %s oldest contacts with active expired services -# BoxTitleLastActionsToDo=Last %s actions to do -# BoxTitleLastContracts=Last %s contracts -# BoxTitleLastModifiedDonations=Last %s modified donations -# BoxTitleLastModifiedExpenses=Last %s modified expenses -# BoxGlobalActivity=Global activity (invoices, proposals, orders) -# FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Last successfull refresh date: %s -# LastRefreshDate=Last refresh date -# NoRecordedBookmarks=No bookmarks defined. -# ClickToAdd=Click here to add. -# NoRecordedCustomers=No recorded customers -# NoRecordedContacts=No recorded contacts -# NoActionsToDo=No actions to do -# NoRecordedOrders=No recorded customer's orders -# NoRecordedProposals=No recorded proposals -# NoRecordedInvoices=No recorded customer's invoices -# NoUnpaidCustomerBills=No unpaid customer's invoices -# NoRecordedSupplierInvoices=No recorded supplier's invoices -# NoUnpaidSupplierBills=No unpaid supplier's invoices -# NoModifiedSupplierBills=No recorded supplier's invoices -# NoRecordedProducts=No recorded products/services -# NoRecordedProspects=No recorded prospects -# NoContractedProducts=No products/services contracted -# NoRecordedContracts=No recorded contracts -# NoRecordedInterventions=No recorded interventions -# BoxLatestSupplierOrders=Latest supplier orders -# BoxTitleLatestSupplierOrders=%s latest supplier orders -# NoSupplierOrder=No recorded supplier order -# BoxCustomersInvoicesPerMonth=Customer invoices per month -# BoxSuppliersInvoicesPerMonth=Supplier invoices per month -# BoxCustomersOrdersPerMonth=Customer orders per month -# BoxSuppliersOrdersPerMonth=Supplier orders per month -# BoxProposalsPerMonth=Proposals per month -# NoTooLowStockProducts=No product under the low stock limit -# BoxProductDistribution=Products/Services distribution -# BoxProductDistributionFor=Distribution of %s for %s -# ForCustomersInvoices=Customers invoices -# ForCustomersOrders=Customers orders -# ForProposals=Proposals +BoxLastRssInfos=RSS Informacije +BoxLastProducts=Zadnjih %s proizvoda / usluga +BoxProductsAlertStock=Proizvodi u skaldištu - uzbuna +BoxLastProductsInContract=Zadnjih %s ugovorenih proizvoda / usluga +BoxLastSupplierBills=Posljednji računi od dobavljača +BoxLastCustomerBills=Posljednji računi od kupaca +BoxOldestUnpaidCustomerBills=Najstariji neplaćeni računi kupaca +BoxOldestUnpaidSupplierBills=Najstariji neplaćeni računi dobavljača +BoxLastProposals=Najnovije ponude +BoxLastProspects=Posljednji izmijenjeni potencijalni kupci +BoxLastCustomers=Posljednji izmijenjeni kupci +BoxLastSuppliers=Posljednji izmijenjeni dobavljači +BoxLastCustomerOrders=Najnovije narudžbe kupaca +BoxLastBooks=Najnovije knjige +BoxLastActions=Najnovije aktivnosti +BoxLastContracts=Najnoviji ugovori +BoxLastContacts=Najnoviji kontakti / Adrese +BoxLastMembers=Najnoviji članovi +BoxFicheInter=Najnovije intervencije +BoxCurrentAccounts=Stanje otvorenih računa +BoxSalesTurnover=Promet +BoxTotalUnpaidCustomerBills=Ukupni neplaćeni računi kupaca +BoxTotalUnpaidSuppliersBills=Ukupni neplaćeni računi dobavljača +BoxTitleLastBooks=Posljednjih %s spremljenih knjige +BoxTitleNbOfCustomers=Broj klijenata +BoxTitleLastRssInfos=Posljednjih %s vijesti iz %s +BoxTitleLastProducts=Posljednjih %s izmijenjenih proizvoda / usluga +BoxTitleProductsAlertStock=Proizvodi u skladištu - uzbuna +BoxTitleLastCustomerOrders=Posljdnjih %s izmijenjenih narudžba kupaca +BoxTitleLastSuppliers=Prošlogodišnjih %s spremljenih dobavljača +BoxTitleLastCustomers=Posljednjih %s spremljenih kupaca +BoxTitleLastModifiedSuppliers=Posljednjih %s izmijenjenih dobavljača +BoxTitleLastModifiedCustomers=Posljednjih %s izmijenjenih kupaca +BoxTitleLastCustomersOrProspects=Posljednjih %s izmijenjenih kupaca ili potencijalnih kupaca +BoxTitleLastPropals=Posljednjih %s spremljenih ponuda +BoxTitleLastCustomerBills=Posljednjih %s računi kupaca +BoxTitleLastSupplierBills=Posljednjih %s računi dobavljača +BoxTitleLastProspects=Posljednjih %s spremljenih potencijalnih kupaca +BoxTitleLastModifiedProspects=Posljednjih %s izmijenjenih potencijalnih kupaca +BoxTitleLastProductsInContract=Posljednjih %s proizvoda / usluga u ugovorima +BoxTitleLastModifiedMembers=Prošlogodišnji% s modificirani članovi +BoxTitleLastFicheInter=Prošlogodišnji% s modificirani intervencija +BoxTitleOldestUnpaidCustomerBills=Najstariji% s neplaćene račune kupca +BoxTitleOldestUnpaidSupplierBills=Najstariji% s neplaćene račune dobavljača +BoxTitleCurrentAccounts=Stanja otvorila korisničkog računa +BoxTitleSalesTurnover=Promet +BoxTitleTotalUnpaidCustomerBills=Neplaćeni računi kupca +BoxTitleTotalUnpaidSuppliersBills=Neplaćeni računi dobavljača +BoxTitleLastModifiedContacts=Prošlogodišnji% s modificirani kontakti / Adrese +BoxMyLastBookmarks=Moja posljednja% s oznake +BoxOldestExpiredServices=Najstariji aktivni istekli usluge +BoxLastExpiredServices=Prošlogodišnji% s Najstariji kontakti s aktivnim istekao usluge +BoxTitleLastActionsToDo=Prošlogodišnji% s akcije učiniti +BoxTitleLastContracts=Prošlogodišnji% s ugovorima +BoxTitleLastModifiedDonations=Prošlogodišnji% s modificirani donacije +BoxTitleLastModifiedExpenses=Prošlogodišnji% s modificirani rashodi +BoxGlobalActivity=Globalna aktivnost (računi, prijedlozi, nalozi) +FailedToRefreshDataInfoNotUpToDate=Nisam uspio osvježiti RSS tok. Zadnja uspješna datum osvježavanja:% s +LastRefreshDate=Posljednji dan osvježavanja +NoRecordedBookmarks=Nema oznaka definirana. +ClickToAdd=Kliknite ovdje za dodavanje. +NoRecordedCustomers=Nema snimljene kupci +NoRecordedContacts=Nema snimljene kontakti +NoActionsToDo=Nema akcije učiniti +NoRecordedOrders=Nema zabilježenih kupca narudžbe +NoRecordedProposals=Nema snimljene prijedlozi +NoRecordedInvoices=Nema zabilježenih kupca račune +NoUnpaidCustomerBills=Ne neplaćene račune kupca +NoRecordedSupplierInvoices=Nema zabilježenih dobavljača računi +NoUnpaidSupplierBills=Ne neplaćene račune dobavljača +NoModifiedSupplierBills=Nema zabilježenih dobavljača računi +NoRecordedProducts=Nema zabilježenih proizvodi / usluge +NoRecordedProspects=Nema snimljene perspektive +NoContractedProducts=Nema proizvoda / usluge ugovorene +NoRecordedContracts=Nema snimljene ugovori +NoRecordedInterventions=Nema zabilježenih intervencija +BoxLatestSupplierOrders=Najnoviji dobavljač narudžbe +BoxTitleLatestSupplierOrders=% s najnovijim narudžbe dobavljačima +NoSupplierOrder=Ne bilježi dobavljač bi +BoxCustomersInvoicesPerMonth=Korisnički računi mjesečno +BoxSuppliersInvoicesPerMonth=Dobavljač računi mjesečno +BoxCustomersOrdersPerMonth=Korisnički nalozi mjesečno +BoxSuppliersOrdersPerMonth=Dobavljač naloga mjesečno +BoxProposalsPerMonth=Prijedlozi mjesečno +NoTooLowStockProducts=Nema proizvoda pod niskim granice dionica +BoxProductDistribution=Proizvodi / usluge distribucije +BoxProductDistributionFor=Raspodjela% s za% s +ForCustomersInvoices=Kupci računi +ForCustomersOrders=Kupci narudžbe +ForProposals=Prijedlozi diff --git a/htdocs/langs/hr_HR/companies.lang b/htdocs/langs/hr_HR/companies.lang index ffb3fc0f522..de79a067d15 100644 --- a/htdocs/langs/hr_HR/companies.lang +++ b/htdocs/langs/hr_HR/companies.lang @@ -26,7 +26,7 @@ IdCompany=Id kompanije IdContact=Id kontakta Contacts=Kontakti/Adrese ThirdPartyContacts=Kontakti treće stranke -ThirdPartyContact=Third party contact/address +ThirdPartyContact=Stranka kontakt / adresa StatusContactValidated=Status of contact/address Company=Kompanija CompanyName=Ime kompanije diff --git a/htdocs/langs/hr_HR/languages.lang b/htdocs/langs/hr_HR/languages.lang index 685db01debc..7c63d8971c4 100644 --- a/htdocs/langs/hr_HR/languages.lang +++ b/htdocs/langs/hr_HR/languages.lang @@ -10,7 +10,7 @@ Language_da_DA=Danski Language_da_DK=Danski Language_de_DE=Njemački Language_de_AT=Njemački (Austrija) -Language_de_CH=German (Switzerland) +Language_de_CH=Njemački (Švicarska) Language_el_GR=Grčki Language_en_AU=Engleski (Australija) Language_en_GB=Engleski (United Kingdom) @@ -20,7 +20,7 @@ Language_en_SA=Engleski (Saudijska Arabija) Language_en_US=Engleski (United States) Language_en_ZA=Engleski (Južna Afrika) Language_es_ES=Španjolski -Language_es_DO=Spanish (Dominican Republic) +Language_es_DO=Španjolski (Dominikanska Republika) Language_es_AR=Španjolski (Argentina) Language_es_CL=Španjolski (Čile) Language_es_HN=Španjolski (Honduras) @@ -40,7 +40,7 @@ Language_fr_NC=Francuski (Nova Kaledonija) Language_he_IL=Hebrew Language_hr_HR=Hrvatski Language_hu_HU=Mađarski -Language_id_ID=Indonesian +Language_id_ID=Indonezijski Language_is_IS=Islandski Language_it_IT=Talijanski Language_ja_JP=Japanski diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index c839e869079..16c4d2dd35b 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -3,7 +3,7 @@ Foundation=Organizācija Version=Versija VersionProgram=Programmas versija VersionLastInstall=Sākotnējā instalētā versija -VersionLastUpgrade=Jaunākajai jauninājums +VersionLastUpgrade=Pēdējo reizi versija atjaunijnāta VersionExperimental=Eksperimentāls VersionDevelopment=Attīstība VersionUnknown=Nezināms @@ -35,7 +35,7 @@ ExternalUsers=Ārējie lietotāji GlobalSetup=Globālie iestatījumi GUISetup=Attēlojums SetupArea=Iestatījumi -FormToTestFileUploadForm=Veidlapa, lai pārbaudītu failu augšupielādes (pēc uzstādīšanas) +FormToTestFileUploadForm=Forma, lai pārbaudītu failu augšupielādi (pēc uiestatītajiem parametriem) IfModuleEnabled=Piezīme: jā, ir efektīva tikai tad, ja modulis %s ir iespējots RemoveLock=Dzēst failu %s, ja tāds ir, lai varētu izmantošanu atjaunināšanas rīku. RestoreLock=Atjaunot failu %s ar lasīšanas tiesībām tikai, lai bloķētu atjaunošanas rīka izmantošanu. @@ -45,6 +45,8 @@ ErrorModuleRequireDolibarrVersion=Kļūda, šim modulim nepieciešama Dolibarr v ErrorDecimalLargerThanAreForbidden=Kļūda, precizitāte augstāka nekā %s netiek atbalstīta. DictionarySetup=Vārdnīcas iestatījumi Dictionary=Vārdnīcas +Chartofaccounts=Chart of accounts +Fiscalyear=Fiskālais gads ErrorReservedTypeSystemSystemAuto=Vērtību "sistēma" un "systemauto" veida tiek aizsargātas. Jūs varat izmantot "lietotājs", kā vērtība, lai pievienotu savu ierakstu ErrorCodeCantContainZero=Kods nevar saturēt 0 vērtību DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) @@ -354,7 +356,7 @@ HideDetailsOnPDF=Paslēpt produktu līnijas informāciju izveidotajā PDF Library=Bibliotēka UrlGenerationParameters=Parametri, lai nodrošinātu drošas saites SecurityTokenIsUnique=Izmantojiet unikālu securekey parametrs katram URL -EnterRefToBuildUrl=Ievadiet atsauce objektu %s +EnterRefToBuildUrl=Ievadiet atsauci objektam %s GetSecuredUrl=Saņemt aprēķināto URL ButtonHideUnauthorized=Slēpt pogas, lai neatļautu rīcību, nevis rāda invalīdu pogas OldVATRates=Vecā PVN likme @@ -405,7 +407,7 @@ NoRecordWithoutBarcodeDefined=No record with no barcode value defined. Module0Name=Lietotāji un grupas Module0Desc=Lietotāju un grupu vadība Module1Name=Trešās personas -Module1Desc=Uzņēmumi un kontaktinformācija vadība (klientu, perspektīvas ...) +Module1Desc=Uzņēmumu un kontaktinformācijas vadība (klientu, perspektīvu ...) Module2Name=Tirdzniecība Module2Desc=Komerciālā pārvaldība Module10Name=Grāmatvedība @@ -534,7 +536,7 @@ Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...) Module59000Name=Malas Module59000Desc=Moduli, lai pārvaldītu peļņu Module60000Name=Komisijas -Module60000Desc=Moduli, lai pārvaldītu komisijas +Module60000Desc=Modulis lai pārvaldītu komisijas Module150010Name=Batch number, eat-by date and sell-by date Module150010Desc=batch number, eat-by date and sell-by date management for product Permission11=Lasīt klientu rēķinus @@ -582,6 +584,9 @@ Permission92=Izveidot/labot sociālās iemaksas un PVN Permission93=Dzēst sociālās iemaksas un PVN Permission94=Eksportēt sociālās iemaksas Permission95=Lasīt atskaites +Permission96=Nosūtīšanas iestatīšana +Permission97=Lasīt rēķina grāmatvedību nosūtīšana +Permission98=Nosūtīšanas rēķinu grāmatvedības līnijas Permission101=Lasīt sūtījumus Permission102=Izveidot/mainīt sūtījumus Permission104=Apstiprināt sūtījumus @@ -672,7 +677,7 @@ Permission300=Lasīt svītrkodus Permission301=Izveidot / mainīt svītrkodus Permission302=Dzēst svītrkodus Permission311=Lasīt pakalpojumus -Permission312=Piešķirt pakalpojumu līgumu +Permission312=Piešķirt pakalpojumu līgumam Permission331=Lasīt grāmatzīmes Permission332=Izveidot/mainīt grāmatzīmes Permission333=Dzēst grāmatzīmes @@ -718,7 +723,7 @@ Permission1185=Apstiprināt piegādātājq pasūtījumus Permission1186=Pasūtīt piegādātāja pasūtījumus Permission1187=Saņemšanu piegādātāju pasūtījumu Permission1188=Dzēst piegādātāju pasūtījumus -Permission1201=Saņemt rezultātu eksportu +Permission1201=Saņemt eksportēšanas rezultātu Permission1202=Izveidot/Modificēt eksportu Permission1231=Lasīt piegādātāja rēķinus Permission1232=Izveidot/mainīt piegādātāja rēķinus @@ -730,11 +735,11 @@ Permission1237=Eksporta piegādātāju pasūtījumus un to detaļas Permission1251=Palaist masveida importu ārējiem datiem datu bāzē (datu ielāde) Permission1321=Eksporta klientu rēķinus, atribūti un maksājumus Permission1421=Eksporta klientu pasūtījumus un atribūti -Permission23001 = Lasīt Plānotais uzdevumu -Permission23002 = Izveidot / atjaunināt Plānotais uzdevumu +Permission23001 = Skatīt plānoto uzdevumu +Permission23002 = Izveidot/atjaunināt plānoto uzdevumu Permission23003 = Dzēst plānoto uzdevumu Permission23004 = Izpildīt plānoto uzdevumu -Permission2401=Lasīt darbības (pasākumi vai uzdevumi), kas saistīti ar viņa kontu +Permission2401=SKatīt darbības (pasākumi vai uzdevumi), kas saistīti ar kontu Permission2402=Izveidot / mainīt darbības (pasākumi vai uzdevumi), kas saistīti ar viņa kontu Permission2403=Dzēst darbības (pasākumi vai uzdevumi), kas saistīti ar viņa kontu Permission2411=Lasīt darbības (pasākumi vai uzdevumi) par citiem @@ -785,7 +790,7 @@ BackToDictionaryList=Atpakaļ uz vārdnīcu sarakstu VATReceivedOnly=Īpaša likme nav jāmaksā VATManagement=PVN Vadība VATIsUsedDesc=PVN likme pēc noklusējuma, veidojot izredzes, rēķini, rīkojumi uc sekot aktīvo standarta noteikums:
Ja pārdevējs nav pakļauta PVN, tad PVN pēc noklusējuma = 0. Beigas varu.
Ja (pārdošanas valstij = pērkot valsti), tad pēc noklusējuma PVN = PVN no produkta pārdošanas valstī. Beigas varu.
Ja pārdevējs un pircējs Eiropas Kopienā, un preces ir transporta līdzekļi (auto, kuģis, lidmašīna), noklusējuma PVN = 0 (PVN būtu jāmaksā pircējam pie customoffice savas valsts, nevis pārdevējs). Beigas varu.
Ja pārdevējs un pircējs Eiropas Kopienas un pircējs nav uzņēmums, tad PVN pēc noklusējuma = PVN no pārdotā produkta. Beigas varu.
Ja pārdevējs un pircējs Eiropas Kopienas un pircējs ir uzņēmums, tad PVN pēc noklusējuma = 0. Beigas varu.
Else ierosinātā noklusējuma PVN = 0. Beigas varu. -VATIsNotUsedDesc=Pēc noklusējuma piedāvātais PVN ir 0, ko var izmantot gadījumos, piemēram, asociācijām, cilvēki ou mazos uzņēmumus. +VATIsNotUsedDesc=Pēc noklusējuma piedāvātais PVN ir 0, ko var izmantot gadījumos, piemēram, asociācijās, idnividuālie komersanti. VATIsUsedExampleFR=Francijā, tas nozīmē, uzņēmumiem vai organizācijām, kas reāli fiskālo sistēmu (Vienkāršota reālu vai normāla īsto). Sistēma, kurā PVN ir deklarēta. VATIsNotUsedExampleFR=Francijā, tas ir asociācijas, kas nav PVN deklarētas vai uzņēmumi, organizācijas vai brīvo profesiju, kas ir izvēlējušies mikrouzņēmumu nodokļu sistēmu (PVN ar franšīzes), un tā maksā franšīzes PVN bez PVN deklarācijas. Šī izvēle būs redzams atskaites "Nav piemērojams PVN - art-293B CGI" rēķinā. ##### Local Taxes ##### @@ -1538,4 +1543,4 @@ Opened=Atvērts Closed=Slēgts Format=Formāts -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type +TypePaymentDesc=0:Klienta maksāšanas veids, 1:Piegādātāja maksāšanas veids, 2:Abi klientu un piegādātāju maksāšanas veids diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang index 399ae58ab4a..acb2aba4570 100644 --- a/htdocs/langs/lv_LV/bills.lang +++ b/htdocs/langs/lv_LV/bills.lang @@ -25,7 +25,7 @@ InvoiceReplacement=Nomaiņa rēķins InvoiceReplacementAsk=Nomaiņa rēķins par rēķinu InvoiceReplacementDesc=Replacement invoice is used to cancel and replace completely an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Kredīta piezīme -InvoiceAvoirAsk=Kredītu piezīmi, lai koriģētu rēķinu +InvoiceAvoirAsk=Kredīta piezīme, lai koriģētu rēķinu InvoiceAvoirDesc=Kredīts piezīme ir negatīvs rēķins izmantot, lai atrisinātu to, ka rēķins ir summa, kas atšķiras par summu, patiesībā maksā (jo klients maksā pārāk daudz kļūdas dēļ, vai arī nav samaksāta pilnībā, jo viņš atgriezās dažus produktus, piemēram). invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake diff --git a/htdocs/langs/lv_LV/orders.lang b/htdocs/langs/lv_LV/orders.lang index 36f2a166d77..5069f05eab4 100644 --- a/htdocs/langs/lv_LV/orders.lang +++ b/htdocs/langs/lv_LV/orders.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - orders OrdersArea=Klienti pasūtījumu sadaļa SuppliersOrdersArea=Piegādātāji pasūtījumi platība -OrderCard=Lai karte +OrderCard=Pasūtījumu kartiņa OrderId=Pasūtījuma ID Order=Rīkojums Orders=Pasūtījumi @@ -9,25 +9,25 @@ OrderLine=Lai līnija OrderFollow=Sekojiet līdzi OrderDate=Pasūtīt datumu OrderToProcess=Pasūtījums, kas jāapstrādā -NewOrder=Jauns rīkojums +NewOrder=Jauns pasūtījums ToOrder=Veicot pasūtījumu MakeOrder=Veicot pasūtījumu SupplierOrder=Piegādātājs rīkojums SuppliersOrders=Piegādātāji pasūtījumi SuppliersOrdersRunning=Pašreizējie piegādātāju pasūtījumi CustomerOrder=Klienta rīkojums -CustomersOrders=Klienta-u pasūtījumi +CustomersOrders=Klientu pasūtījumi CustomersOrdersRunning=Pašreizējie klienta/u pasūtījumi CustomersOrdersAndOrdersLines=Klientu pasūtījumus un ordeņa līnijas OrdersToValid=Klienta pasūtījumu apstiprināšanai, -OrdersToBill=Klienta rīkojumi piegādāts -OrdersInProcess=Klienta rīkojumus procesā -OrdersToProcess=Klienta rīkojumi apstrādāt +OrdersToBill=Klienta pasūtījumi piegādāti +OrdersInProcess=Klienta pasūtījumi procesā +OrdersToProcess=Klienta pasūtījumi kas jāapstrādā SuppliersOrdersToProcess=Piegādātāja rīkojumi apstrādāt StatusOrderCanceledShort=Atcelts StatusOrderDraftShort=Projekts -StatusOrderValidatedShort=Validēta -StatusOrderSentShort=Šajā procesā +StatusOrderValidatedShort=Apstiprināts +StatusOrderSentShort=Procesā StatusOrderSent=Sūtījuma procesā StatusOrderOnProcessShort=Reģistratūra StatusOrderProcessedShort=Apstrādāti @@ -40,7 +40,7 @@ StatusOrderReceivedPartiallyShort=Daļēji saņemti StatusOrderReceivedAllShort=Viss saņemts StatusOrderCanceled=Atcelts StatusOrderDraft=Projekts (ir jāapstiprina) -StatusOrderValidated=Validēta +StatusOrderValidated=Apstiprināts StatusOrderOnProcess=Gaida, lai saņemtu StatusOrderProcessed=Apstrādāts StatusOrderToBill=Piegādāts @@ -81,9 +81,9 @@ AllOrders=Visi pasūtījumi NbOfOrders=Pasūtījumu skaits OrdersStatistics=Pasūtījuma-u statistika OrdersStatisticsSuppliers=Piegādātāj pasūtījuma/u statistika -NumberOfOrdersByMonth=Pasutījumu skaits pa mēnešiem -AmountOfOrdersByMonthHT=Summa rīkojumus mēnesī (neto pēc nodokļiem) -ListOfOrders=Saraksts pasūtījumu +NumberOfOrdersByMonth=Pasūtījumu skaits pa mēnešiem +AmountOfOrdersByMonthHT=Summa pasūtījumi mēnesī (bez nodokļiem) +ListOfOrders=Pasūtījumu saraksts CloseOrder=Aizvērt kārtība ConfirmCloseOrder=Vai jūs tiešām vēlaties, lai uzstādītu šo rīkojumu deliverd? Pēc tam, kad pasūtījums tiek piegādāts, to var iestatīt, lai jāmaksā. ConfirmCloseOrderIfSending=Vai jūs tiešām vēlaties, lai aizvērtu šo pasūtījumu? Jums jāslēdz rīkojumu tikai tad, kad visi kuģniecības tiek darīts. @@ -95,7 +95,7 @@ ConfirmMakeOrder=Vai jūs tiešām vēlaties, lai apstiprinātu veicāt šo rīk GenerateBill=Izveidot rēķinu ClassifyShipped=Klasificēt piegādāts ClassifyBilled=Klasificēt rēķins -ComptaCard=Grāmatvedība karte +ComptaCard=Grāmatvedības kartiņa DraftOrders=Projekts pasūtījumi RelatedOrders=Saistītie pasūtījumi OnProcessOrders=Pasūtījumi procesā diff --git a/htdocs/langs/lv_LV/stocks.lang b/htdocs/langs/lv_LV/stocks.lang index 511331310fe..b2b6cfc6e25 100644 --- a/htdocs/langs/lv_LV/stocks.lang +++ b/htdocs/langs/lv_LV/stocks.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - stocks -WarehouseCard=Noliktava karte +WarehouseCard=Noliktava kartiņa Warehouse=Noliktava Warehouses=Noliktavas NewWarehouse=Jauns noliktavu / Noliktavas platība @@ -35,7 +35,7 @@ Unit=Vienība StockCorrection=Labot krājumus StockTransfer=Krājumu pārvietošana StockMovement=Pārvietot -StockMovements=Krājumu pārvieošanas +StockMovements=Krājumu pārvietošanas LabelMovement=Kustību nosaukums NumberOfUnit=Vienību skaits UnitPurchaseValue=Vienības iepirkuma cena @@ -73,7 +73,7 @@ MininumStockShort=Krājumu min StockUpShort=Krājumi IdWarehouse=Id noliktava DescWareHouse=Apraksts noliktava -LieuWareHouse=Lokalizācija noliktava +LieuWareHouse=Lokālā noliktava WarehousesAndProducts=Noliktavas un produkti AverageUnitPricePMPShort=Vidējais svērtais ieejas cena AverageUnitPricePMP=Vidējais svērtais ieejas cena diff --git a/htdocs/langs/ru_RU/orders.lang b/htdocs/langs/ru_RU/orders.lang index 4ff75fca9fe..c5f655e4781 100644 --- a/htdocs/langs/ru_RU/orders.lang +++ b/htdocs/langs/ru_RU/orders.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Клиенты заказы области -SuppliersOrdersArea=Поставщики заказы области -OrderCard=Заказать карту -# OrderId=Order Id +OrdersArea=Раздел заказов клиентов +SuppliersOrdersArea=Раздел заказов поставщиков +OrderCard=Карточка заказа +OrderId=Идентификатор заказа Order=Заказ -Orders=Приказы +Orders=Заказы OrderLine=Заказ линии OrderFollow=Последующие меры OrderDate=Дата заказа @@ -28,7 +28,7 @@ StatusOrderCanceledShort=Отменен StatusOrderDraftShort=Черновик StatusOrderValidatedShort=Подтвержденные StatusOrderSentShort=В процессе -# StatusOrderSent=Shipment in process +StatusOrderSent=Shipment in process StatusOrderOnProcessShort=В процессе StatusOrderProcessedShort=Обработано StatusOrderToBillShort=В законопроекте @@ -53,9 +53,9 @@ ShippingExist=Отгрузки существует DraftOrWaitingApproved=Проект или утверждены еще не заказал DraftOrWaitingShipped=Проект или подтверждены не отгружен MenuOrdersToBill=Заказы на законопроект -# MenuOrdersToBill2=Orders to bill +MenuOrdersToBill2=Orders to bill SearchOrder=Поиск тем -# SearchACustomerOrder=Search a customer order +SearchACustomerOrder=Search a customer order ShipProduct=Судно продукта Discount=Скидка CreateOrder=Создать заказ @@ -68,11 +68,11 @@ CancelOrder=Отмена порядка AddOrder=Добавить тему AddToMyOrders=Добавить в мои заказы AddToOtherOrders=Добавить в других заказов -# AddToDraftOrders=Add to draft order +AddToDraftOrders=Add to draft order ShowOrder=Показать порядок NoOpenedOrders=Нет открыл заказов NoOtherOpenedOrders=Никакие другие открыли заказов -# NoDraftOrders=No draft orders +NoDraftOrders=No draft orders OtherOrders=Другие заказы LastOrders=Последнее %s заказов LastModifiedOrders=Последнее% с измененными заказов @@ -82,7 +82,7 @@ NbOfOrders=Количество заказов OrdersStatistics=Приказы Статистика OrdersStatisticsSuppliers=Поставщик заказов статистика NumberOfOrdersByMonth=Количество заказов в месяц -# AmountOfOrdersByMonthHT=Amount of orders by month (net of tax) +AmountOfOrdersByMonthHT=Amount of orders by month (net of tax) ListOfOrders=Список заказов CloseOrder=Закрыть тему ConfirmCloseOrder=Вы уверены, что хотите, чтобы закрыть эту тему? После того, как заказ является закрытым, он может быть выставлен счет. @@ -93,7 +93,7 @@ ConfirmUnvalidateOrder=Вы уверены, что хотите, чтобы во ConfirmCancelOrder=Вы уверены, что хотите отменить этот заказ? ConfirmMakeOrder=Вы уверены, что хотите, чтобы подтвердить вы сделали этот заказ на %s? GenerateBill=Создать счет-фактуру -# ClassifyShipped=Classify delivered +ClassifyShipped=Classify delivered ClassifyBilled=Классифицировать "Billed" ComptaCard=Бухгалтерия карту DraftOrders=Проект распоряжения @@ -101,7 +101,6 @@ RelatedOrders=Похожие заказов OnProcessOrders=В процессе заказов RefOrder=Ref. заказ RefCustomerOrder=Ref. Для клиента -CustomerOrder=Для клиентов RefCustomerOrderShort=Ref. CUST. заказ SendOrderByMail=Отправить заказ по почте ActionsOnOrder=Меры по заказу @@ -131,9 +130,7 @@ Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Постоянная COMMANDE_SUPPLIER_ Error_COMMANDE_ADDON_NotDefined=Постоянная COMMANDE_ADDON не определена Error_FailedToLoad_COMMANDE_SUPPLIER_ADDON_File=Не удалось загрузить модуль файл ' %s' Error_FailedToLoad_COMMANDE_ADDON_File=Не удалось загрузить модуль файл ' %s' -# Error_OrderNotChecked=No orders to invoice selected - - +Error_OrderNotChecked=No orders to invoice selected # Sources OrderSource0=Коммерческое предложение OrderSource1=Интернет @@ -144,25 +141,23 @@ OrderSource5=Коммерческие OrderSource6=Склад QtyOrdered=Количество заказанных AddDeliveryCostLine=Добавить доставки Стоимость линии с указанием веса заказа - # Documents models PDFEinsteinDescription=Для полной модели (logo. ..) PDFEdisonDescription=Простая модель для -# PDFProformaDescription=A complete proforma invoice (logo…) +PDFProformaDescription=A complete proforma invoice (logo…) # Orders modes OrderByMail=Почта OrderByFax=Факс OrderByEMail=EMail OrderByWWW=Интернет OrderByPhone=Телефон - -# CreateInvoiceForThisCustomer=Bill orders -# NoOrdersToInvoice=No orders billable -# CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders. -# MenuOrdersToBill2=Orders to bill -# OrderCreation=Order creation -# Ordered=Ordered -# OrderCreated=Your orders have been created -# OrderFail=An error happened during your orders creation -# CreateOrders=Create orders -# ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s". +CreateInvoiceForThisCustomer=Bill orders +NoOrdersToInvoice=No orders billable +CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders. +MenuOrdersToBill2=Orders to bill +OrderCreation=Order creation +Ordered=Ordered +OrderCreated=Your orders have been created +OrderFail=An error happened during your orders creation +CreateOrders=Create orders +ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s". diff --git a/htdocs/langs/tr_TR/agenda.lang b/htdocs/langs/tr_TR/agenda.lang index f47bdc774cc..d3421d8d336 100644 --- a/htdocs/langs/tr_TR/agenda.lang +++ b/htdocs/langs/tr_TR/agenda.lang @@ -2,14 +2,14 @@ IdAgenda=Kimlik etkinliği Actions=Eylemler ActionsArea=Eylem alanı (Olaylar ve görevler) -Agenda= Gündem -Agendas= Gündemler -Calendar= Takvim -Calendars= Takvimler -LocalAgenda=Yerel takvim +Agenda=Gündem +Agendas=Gündemler +Calendar=Takvim +Calendars=Takvimler +LocalAgenda=İç takvim AffectedTo=Etkilenen DoneBy=Yapan -Event=Event +Event=Etkinlik Events=Etkinlikler EventsNb=Etkinlik sayısı MyEvents=Etkinliklerim @@ -22,7 +22,7 @@ MenuToDoActions=Tüm sonlanmayan eylemler MenuDoneActions=Tüm sonlanan eylemler MenuToDoMyActions=Sonlanmayan eylemlerim MenuDoneMyActions=Sonlanan eylemlerim -ListOfEvents=Dolibarr eylem listesi +ListOfEvents=Etkinlik listesi (iç takvim) ActionsAskedBy=Eylemi bildiren ActionsToDoBy=Eylemden etkilenen ActionsDoneBy=Eylemi yapan @@ -34,7 +34,7 @@ ViewList=Liste görünümü ViewCal=Ay görünümü ViewDay=Gün görünümü ViewWeek=Hafta görünümü -ViewPerUser=Per user view +ViewPerUser=Kullanıcı görünümü başına ViewWithPredefinedFilters= Öntanımlı süzgeçler ile görünüm AutoActions= Gündemin otomatik doldurulması AgendaAutoActionDesc= Burada Dolibarr'ın otomatik olarak gündemde oluşturmasını istediğiniz olayları tanımlayın. İşaretli bir şey yoksa (varsayılan olarak) sadece el ile girilen eylemler gündeme dahil edilecektir. @@ -51,7 +51,7 @@ OrderRefusedInDolibarr=Reddedilen teklif %s OrderBackToDraftInDolibarr=%s Siparişini taslak durumuna geri götür OrderCanceledInDolibarr=%s Siparişi iptal edildi InterventionValidatedInDolibarr=%s Müdahalesi doğrulandı -ProposalSentByEMail=%s Ticari teklifi Eposta ile gönderildi +ProposalSentByEMail=%s Teklifi Eposta ile gönderildi OrderSentByEMail=%s Müşteri siparişi Eposta ile gönderildi InvoiceSentByEMail=%s Müşteri faturası Eposta ile gönderildi SupplierOrderSentByEMail=%s Tedarikçi siparişi Eposta ile gönderildi @@ -76,15 +76,16 @@ AgendaShowBirthdayEvents=Kişilerin doğum günlerini göster AgendaHideBirthdayEvents=Kişilerin doğum günlerini gizle Busy=Meşgul ExportDataset_event1=Gündem etkinlikleri listesi -DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6) -DefaultWorkingHours=Default working hours in day (Example: 9-18) +DefaultWorkingDays=Varsayılan haftalık çalışma günleri aralığı (Örnek: 1-5, 1-6) +DefaultWorkingHours=Varsayılan günlük çalışma saatleri (Örnek: 9-18) # External Sites ical ExportCal=Takvim ver ExtSites=Dış takvimleri içeaktar -ExtSitesEnableThisTool=Show external calendars (defined into global setup) into agenda. Does not affect external calendars defined by users. +ExtSitesEnableThisTool=Gündemde dış takvimleri (genel ayarlarda tanımlanan) göster. Kullanıcılar tarafından tanımlanan dış takvimleri etkilemez. ExtSitesNbOfAgenda=Takvimlerin sayısı AgendaExtNb=Takvim sayısı %s ExtSiteUrlAgenda=.ical dosyasına erişmek için URL ExtSiteNoLabel=Tanımlama yok -WorkingTimeRange=Working time range -WorkingDaysRange=Working days range +WorkingTimeRange=Çalışma saati aralığı +WorkingDaysRange=Çalışma günleri aralığı +AddEvent=Etkinlik oluştur diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang index 49416317dac..27493dd1327 100644 --- a/htdocs/langs/tr_TR/bills.lang +++ b/htdocs/langs/tr_TR/bills.lang @@ -85,7 +85,7 @@ ClassifyPaid=‘Ödendi’ olarak sınıflandır ClassifyPaidPartially=‘Kısmen ödendi’ olarak sınıflandır ClassifyCanceled=’Terkedildi’ olarak sınıflandır ClassifyClosed=‘Kapalı’ olarak sınıflandır -ClassifyUnBilled=Classify 'Unbilled' +ClassifyUnBilled=Sınıflandırma 'Faturalanmadı' CreateBill=Fatura oluştur AddBill=Fatura ya da alacak dekontu ekle AddToDraftInvoices=Taslak fatura ekle @@ -198,8 +198,8 @@ Rest=Bekleyen AmountExpected=İstenen tutar ExcessReceived=Fazla alınan EscompteOffered=Teklif edilen indirim (vadeden önce ödemede) -SendBillRef=Submission of invoice %s -SendReminderBillRef=Submission of invoice %s (reminder) +SendBillRef=%s faturasının gönderilmesi +SendReminderBillRef=%s faturasının gönderilmesi (anımsatma) StandingOrders=Ödeme talimatları StandingOrder=Ödeme talimatı NoDraftBills=Hiç taslak fatura yok @@ -224,7 +224,7 @@ DispenseMontantLettres=Mekanografik olarak tasarlanan fatura harf sırasının d NonPercuRecuperable=Kurtarılamaz SetConditions=Ödeme koşullarını ayarla SetMode=Ödeme biçimini ayarla -Billed=Faturalandı +Billed=Faturalanmış RepeatableInvoice=Ön tanımlı fatura RepeatableInvoices=Ön tanımlı faturalar Repeatable=Ön tanımlı @@ -296,8 +296,8 @@ TotalOfTwoDiscountMustEqualsOriginal=İki yeni indirimin toplamı orijinal indir ConfirmRemoveDiscount=Bu indirimi kaldırmak istediğinizden emin misiniz? RelatedBill=İlgili fatura RelatedBills=İlgili faturalar -LatestRelatedBill=Latest related invoice -WarningBillExist=Warning, one or more invoice already exist +LatestRelatedBill=Son ilgili fatura +WarningBillExist=Uyarı, bir yada çok fatura zaten var # PaymentConditions PaymentConditionShortRECEP=Derhal diff --git a/htdocs/langs/tr_TR/boxes.lang b/htdocs/langs/tr_TR/boxes.lang index 3407f90d6dc..7a402a41cb9 100644 --- a/htdocs/langs/tr_TR/boxes.lang +++ b/htdocs/langs/tr_TR/boxes.lang @@ -7,7 +7,7 @@ BoxLastSupplierBills=Son tedarikçi faturaları BoxLastCustomerBills=Son müşteri faturaları BoxOldestUnpaidCustomerBills=En eski ödenmemiş müşteri faturaları BoxOldestUnpaidSupplierBills=En eski ödenmemiş tedarikçi faturaları -BoxLastProposals=Son ticari teklifler +BoxLastProposals=Son teklifler BoxLastProspects=Son adaylar BoxLastCustomers=Son değiştirilen müşteriler BoxLastSuppliers=Son değiştirilen tedarikçiler diff --git a/htdocs/langs/tr_TR/commercial.lang b/htdocs/langs/tr_TR/commercial.lang index 144c82d0f29..d17d38c2055 100644 --- a/htdocs/langs/tr_TR/commercial.lang +++ b/htdocs/langs/tr_TR/commercial.lang @@ -44,8 +44,8 @@ DoneActions=Tamamlanan etkinlikler DoneActionsFor=%s için tamamlanan etkinlikler ToDoActions=Tamamlanmamış etkinlikler ToDoActionsFor=%s için tamalanmamış etkinlikler -SendPropalRef=%s teklifini gönder -SendOrderRef=% siparişini gönder +SendPropalRef=%s Teklifinin sunulması +SendOrderRef=%s Teklifinin sunulması StatusNotApplicable=Uygulanamaz StatusActionToDo=Yapılacaklar StatusActionDone=Tamamla @@ -62,7 +62,7 @@ LastProspectContactDone=Görüşme yapıldı DateActionPlanned=Planlanan etkinlik tarihi DateActionDone=Etkinliğin yapıldığı tarih ActionAskedBy=Etkinliği sunan -ActionAffectedTo=Etkinlikten etkilenen +ActionAffectedTo=Etkinlik sahibi ActionDoneBy=Etkinliği yapan ActionUserAsk=Raporlayan ErrorStatusCantBeZeroIfStarted=Eğer Yapıldığı tarih alanı doluysa, etkinlik başlamıştır (veya bitmiştir), bu durumda 'Durum' alanı 0%% olamaz. diff --git a/htdocs/langs/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang index 584486a23e7..86ff28e3e8e 100644 --- a/htdocs/langs/tr_TR/companies.lang +++ b/htdocs/langs/tr_TR/companies.lang @@ -76,7 +76,7 @@ PhoneMobile=Mobil No_Email=Toplu e-posta gönderme Fax=Faks Zip=Posta Kodu -Town=Şehir +Town=ilçesi Web=Web Poste= Durumu DefaultLang=Varsayılan dili @@ -91,8 +91,8 @@ LocalTax2IsUsedES= IRPF kullanılır LocalTax2IsNotUsedES= IRPF kullanılmaz LocalTax1ES=RE LocalTax2ES=IRPF -TypeLocaltax1ES=RE Type -TypeLocaltax2ES=IRPF Type +TypeLocaltax1ES=RE Türü +TypeLocaltax2ES=IRPF Türü TypeES=Türü ThirdPartyEMail=%s WrongCustomerCode=Müşteri kodu geçersiz @@ -270,7 +270,7 @@ NoContactDefined=Bu üçüncü parti için kişi tanımlanmamış DefaultContact=Varsayılan kişi AddCompany=Firma ekle AddThirdParty=Üçüncü parti ekle -DeleteACompany=Bir firma sil +DeleteACompany=Firma sil PersonalInformations=Kişisel bilgiler AccountancyCode=Muhasebe kodu CustomerCode=Müşteri kodu @@ -302,7 +302,7 @@ ContactForProposals=Teklif yetkilisi ContactForContracts=Sözleşme yetkilisi ContactForInvoices=Fatura yetkilisi NoContactForAnyOrder=Bu kişi herhangi bir siparişin yetkilisi değildir -NoContactForAnyProposal=Bu kişi herhangi bir ticari teklifin yetkilisi değildir +NoContactForAnyProposal=Bu kişi herhangi bir teklifin yetkilisi değildir NoContactForAnyContract=Bu kişi herhangi bir sözleşmenin yetkilisi değildir NoContactForAnyInvoice=Bu kişi herhangi bir faturanın yetkilisi değildir NewContact=Yeni kişi @@ -311,7 +311,7 @@ LastContacts=Son kişiler MyContacts=Kişilerim Phones=Telefonlar Capital=Sermaye -CapitalOf=%s nin sermayesi +CapitalOf=%s firmasının sermayesi EditCompany=Firma düzenle EditDeliveryAddress=Teslimat adresi düzenle ThisUserIsNot=Bu kullanıcı bir aday, müşteri veya tedarikçi değildir @@ -386,9 +386,9 @@ SupplierCategory=Tedarikçi kategorisi JuridicalStatus200=Bağımsız DeleteFile=Dosya sil ConfirmDeleteFile=Bu dosyayı silmek istediğinizden emin misiniz? -AllocateCommercial=Bir ticari tahsis et -SelectCountry=Bir ülke seçin -SelectCompany=Bir üçüncü parti seçin +AllocateCommercial=Satış temsilcisine atanmış +SelectCountry=Bir ülke seç +SelectCompany=Bir üçüncü parti seç Organization=Kuruluş AutomaticallyGenerated=Otomatikman oluşturulur FiscalYearInformation=Mali yıla ait bilgi @@ -403,7 +403,7 @@ UniqueThirdParties=Toplam eşsiz üçüncü parti InActivity=Açık ActivityCeased=Kapalı ActivityStateFilter=Etkinlik durumu -ProductsIntoElements=Ürünleri %s 'li listele +ProductsIntoElements=Ürünleri %s te listele CurrentOutstandingBill=Geçerli bekleyen fatura OutstandingBill=Ödenmemiş fatura için ençok tutar OutstandingBillReached=En yüksek ödenmemiş fatura tutarına ulaşıldı diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 2cdba02cd1b..13c10ed06eb 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -123,7 +123,7 @@ CalcModeVATDebt=Mod %sKDV, taahhüt hesabı%s için. CalcModeVATEngagement=Mod %sKDV, gelirler-giderler%s için. CalcModeDebt=Mod %sAlacaklar-Borçlar, taahhüt hesabı%s için. CalcModeEngagement=Mod %sAlacaklar-Borçlar, kasa hesabı%s için. -CalcModeLT1= Mode %sRE on customer invoices - suppliers invoices%s +CalcModeLT1= Müşteri faturaları için mod %sRE tedrikçi faturaları için mod %s CalcModeLT1Debt=Mode %sRE on customer invoices%s CalcModeLT1Rec= Mode %sRE on suppliers invoices%s CalcModeLT2= Mode %sIRPF on customer invoices - suppliers invoices%s @@ -195,12 +195,12 @@ CalculationRuleDesc=Toplam KDV hesabı için 2 yöntem vardır:
Yöntem 1, he CalculationRuleDescSupplier=tedarikçiye göre, aynı hesaplama kuralını kullanmak üzere uygun yöntemi seçin ve tedarikçiyle aynı sonucu alın. TurnoverPerProductInCommitmentAccountingNotRelevant=Ürüne göre ciro raporu, nakit muhasebesimodu için uygun değildir. Bu rapor yalnızca, tahakkuk muhasebesi modu için uygundur (muhasebe modülü ayarlarına bakın). CalculationMode=Hesaplama modu -AccountancyJournal=Accountancy code journal -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Alınacak ürünler için varsayılan hesap kodu -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Satılacak ürünler için varsayılan hesap kodu -ACCOUNTING_SERVICE_BUY_ACCOUNT=Alınacak hizmetler için varsayılan hesap kodu -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Satılacak hizmetler için varsayılan hesap kodu -ACCOUNTING_VAT_ACCOUNT=Alınacak KDV için varsayılan hesap kodu -ACCOUNTING_VAT_BUY_ACCOUNT=Ödenecek KDV için varsayılan hesap kodu -ACCOUNTING_ACCOUNT_CUSTOMER=Müşteri üçüncü partler için varsayılan muhasebe kodu -ACCOUNTING_ACCOUNT_SUPPLIER=Tedarikçi üçüncü partler için varsayılan muhasebe kodu +AccountancyJournal=Muhasebe kodu günlüğü +COMPTA_PRODUCT_BUY_ACCOUNT=Alınacak ürünler için varsayılan hesap kodu +COMPTA_PRODUCT_SOLD_ACCOUNT=Satılacak ürünler için varsayılan hesap kodu +COMPTA_SERVICE_BUY_ACCOUNT=Alınacak hizmetler için varsayılan hesap kodu +COMPTA_SERVICE_SOLD_ACCOUNT=Satılacak hizmetler için varsayılan hesap kodu +COMPTA_VAT_ACCOUNT=Alınacak KDV için varsayılan hesap kodu +COMPTA_VAT_BUY_ACCOUNT=Ödenecek KDV için varsayılan hesap kodu +COMPTA_ACCOUNT_CUSTOMER=Müşteri üçüncü partler için varsayılan muhasebe kodu +COMPTA_ACCOUNT_SUPPLIER=Tedarikçi üçüncü partler için varsayılan muhasebe kodu diff --git a/htdocs/langs/tr_TR/dict.lang b/htdocs/langs/tr_TR/dict.lang index beb78b2a16a..5ed9a0a2d67 100644 --- a/htdocs/langs/tr_TR/dict.lang +++ b/htdocs/langs/tr_TR/dict.lang @@ -248,11 +248,11 @@ CountryBL=Saint Barthelemy CountryMF=Saint Martin ##### Civilities ##### -CivilityMME=Mrs. -CivilityMR=Mr. -CivilityMLE=Ms. +CivilityMME=Bn. +CivilityMR=Bay +CivilityMLE=Bn. CivilityMTRE=Master -CivilityDR=Doctor +CivilityDR=Doktor ##### Currencies ##### Currencyeuros=Euro CurrencyAUD=AU Doları @@ -290,6 +290,8 @@ CurrencySingXOF=CFA Frangı BCEAO CurrencyXPF=CFP Frangı CurrencySingXPF=CFP Frangı CurrencyCentSingEUR=cent +CurrencyCentINR=paisa +CurrencyCentSingINR=paise CurrencyThousandthSingTND=thousandth #### Input reasons ##### DemandReasonTypeSRC_INTE=Internet @@ -297,7 +299,7 @@ DemandReasonTypeSRC_CAMP_MAIL=Posta kampanyası DemandReasonTypeSRC_CAMP_EMAIL=Eposta kampanyası DemandReasonTypeSRC_CAMP_PHO=Telefon kampanyası DemandReasonTypeSRC_CAMP_FAX=Faks kampanyası -DemandReasonTypeSRC_COMM=Ticari görüşme +DemandReasonTypeSRC_COMM=Ticari ilgili DemandReasonTypeSRC_SHOP=İş yerinde görüşme DemandReasonTypeSRC_WOM=Başkasından duyarak DemandReasonTypeSRC_PARTNER=İş Ortağı diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang index c34c5299c29..67077b69d64 100644 --- a/htdocs/langs/tr_TR/errors.lang +++ b/htdocs/langs/tr_TR/errors.lang @@ -136,6 +136,8 @@ ErrorBadFormat=Hatalı biçim! ErrorPaymentDateLowerThanInvoiceDate=Ödeme tarihi (%s) fatura tarihinden (%s) önce bu faturada %s olamaz. ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Hata, bu üye henüz bir üçüncü partiye bağlanmamıştır. Üyeyi varolan bir üçüncü partiye bağlayın ya da faturayla abonelik oluşturmadan önce yeni bir üçüncü parti oluşturun. ErrorThereIsSomeDeliveries=Hata, bu sevkiyata bağlı bazı teslimatlar var. Silme işlemi reddedildi. +ErrorCantDeletePaymentReconciliated=Uzlaştırılmış bir banka işlemi oluşturulmuş bir ödeme silinemez +ErrorCantDeletePaymentSharedWithPayedInvoice=Ödendi durumunda olan en az bir faturayla paylaşılan bir ödeme silinemez # Warnings WarningMandatorySetupNotComplete=Zorunlu kurulum parametreleri henüz tanımlanmamış @@ -153,4 +155,4 @@ WarningCloseAlways=Uyarı, kaynak ve hedef öğeleri arasında tutar farklı da WarningUsingThisBoxSlowDown=Uyarı, bu kutuyu kullanmak kutuyu gösteren tüm sayfaları ciddi olarak yavaşlatır. WarningClickToDialUserSetupNotComplete=Kullanıcınızın ClickToDial bilgileri ayarı tamamlanmamış (kullanıcı kartınızdaki ClickToDial tabına bakın) WarningNotRelevant=Bu veri kümesi için alakasız işlem -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Bu özellik, ekran görme engelliler için ya da metin tarayıcılar için ayarlandığında devre dışı kalır. diff --git a/htdocs/langs/tr_TR/exports.lang b/htdocs/langs/tr_TR/exports.lang index 420f5082d82..e6c8d770ad0 100644 --- a/htdocs/langs/tr_TR/exports.lang +++ b/htdocs/langs/tr_TR/exports.lang @@ -125,8 +125,8 @@ BankAccountNumber=Hesap numarası BankAccountNumberKey=Anahtar SpecialCode=Özel kod ExportStringFilter=%% metinde bir ya da fazla karakterin değiştirilmesine izin verir -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : bir yıılık yıl/ay/gün süzgeçi
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : yıllar arası yıllar/aylar/günler süzgeçi
> YYYY, > YYYYMM, > YYYYMMDD : izleyen tüm yıllar için yıılar/aylar/günler süzgeçi
< YYYY, < YYYYMM, < YYYYMMDD : bütün önceki yıllar/aylar/günler süzgeçi +ExportNumericFilter='NNNNN' bir değere göre süzgeç
'NNNNN+NNNNN' bir değerler aralığı süzgeçi
'>NNNNN' düşük değerlere göre süzgeç
'>NNNNN' yüksek değerlere göre süzgeç ## filters SelectFilterFields=Süzmek istediğiniz değerleri buraya yazın. FilterableFields=Süzülebilir Champs diff --git a/htdocs/langs/tr_TR/interventions.lang b/htdocs/langs/tr_TR/interventions.lang index bbf1322546b..1f05331ba2a 100644 --- a/htdocs/langs/tr_TR/interventions.lang +++ b/htdocs/langs/tr_TR/interventions.lang @@ -24,10 +24,12 @@ NameAndSignatureOfInternalContact=Müdahilin adı ve imzası : NameAndSignatureOfExternalContact=Müşterinin adı ve imzası : DocumentModelStandard=Müdahaleler için standart belge modeli InterventionCardsAndInterventionLines=Müdahalelere ait müdahaleler ve satırları -ClassifyBilled="Faturalandırıldı" -StatusInterInvoiced=Faturalandırılmış +ClassifyBilled=Sınıflandırma "Faturalanmış" +ClassifyUnBilled=Sınıflandırma "Faturalanmadı" +StatusInterInvoiced=Faturalanmış RelatedInterventions=İlgili müdahaleler ShowIntervention=Müdahale göster +SendInterventionRef=%s müdahalesinin sunulması ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Müdahale izleme temsilcisi TypeContact_fichinter_internal_INTERVENING=Müdahalede diff --git a/htdocs/langs/tr_TR/link.lang b/htdocs/langs/tr_TR/link.lang index 8b1efb75ef3..fbc4b921387 100644 --- a/htdocs/langs/tr_TR/link.lang +++ b/htdocs/langs/tr_TR/link.lang @@ -1,8 +1,8 @@ -LinkANewFile=Link a new file/document -LinkedFiles=Linked files and documents -NoLinkFound=No registered links -LinkComplete=The file has been linked successfully +LinkANewFile=Yeni bir dosya/belge bağlantıla +LinkedFiles=Bağlantılı dosyalar ve belgeler +NoLinkFound=Kayıtlı bağlantı yok +LinkComplete=Dosya bağlantısı başarılı ErrorFileNotLinked=The file could not be linked -LinkRemoved=The link %s has been removed -ErrorFailedToDeleteLink= Failed to remove link '%s' -ErrorFailedToUpdateLink= Failed to update link '%s' +LinkRemoved=Bağlantı %s kaldırıldı +ErrorFailedToDeleteLink= Bu bağlantı kaldırılamadı '%s' +ErrorFailedToUpdateLink= Bu bağlantı güncellemesi yapılamadı '%s' diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index 5982b0f04da..622075d57f9 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -345,8 +345,8 @@ Ref=Ref. RefSupplier=Ref. tedarikçi RefPayment=Ref. ödeme CommercialProposalsShort=Teklifler -Comment=Yorum -Comments=Yorumlar +Comment=Açıklama +Comments=Açıklamalar ActionsToDo=Yapılacak eylemler ActionsDone=Biten eylemler ActionsToDoShort=Yapılacaklar @@ -645,6 +645,7 @@ OptionalFieldsSetup=Ekstra öznitelik ayarları URLPhoto=Fotoğraf/logo İnternet adresi SetLinkToThirdParty=Başka bir üçüncü parti bağlantısı CreateDraft=Taslak oluştur +SetToDraft=Taslağa geri dön ClickToEdit=Düzenlemek için tıklayın ObjectDeleted=Nesne %s silindi ByCountry=Ülkeye göre @@ -672,12 +673,12 @@ HelpCopyToClipboard=Panoya kopyalamak için Crtl+C SaveUploadedFileWithMask=Dosyayı sunucuya "%s" (aksi durumda "%s") adıyla kaydedin OriginFileName=Özgün dosya adı SetDemandReason=Kaynağı ayarlayın -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency +SetBankAccount=Banka Hesabı Tanımla +AccountCurrency=Hesap Para Birimi ViewPrivateNote=Notları izle XMoreLines=%s gizli satır(lar) PublicUrl=Genel URL -AddBox=Add box +AddBox=Kutu ekle # Week day Monday=Pazartesi diff --git a/htdocs/langs/tr_TR/orders.lang b/htdocs/langs/tr_TR/orders.lang index a982292a7a8..2085c26d3d1 100644 --- a/htdocs/langs/tr_TR/orders.lang +++ b/htdocs/langs/tr_TR/orders.lang @@ -94,7 +94,7 @@ ConfirmCancelOrder=Bu siparişi iptal etmek istediğinizden emin misiniz? ConfirmMakeOrder=Bu siparişi %s üzerine yaptığınızı onaylamak istediğinizden emin misiniz? GenerateBill=Fatura oluştur ClassifyShipped=Teslim edildi sınıflandır -ClassifyBilled=Faturalandı sınıflandır +ClassifyBilled=Faturalı olarak sınıflandır ComptaCard=Muhasebe kartı DraftOrders=Taslak sipariş RelatedOrders=İlgili siparişler @@ -137,7 +137,7 @@ OrderSource1=Internet OrderSource2=Posta kampanyası OrderSource3=Telefon kampanyası OrderSource4=Faks kampanyası -OrderSource5=Reklam +OrderSource5=Ticari OrderSource6=Mağaza QtyOrdered=Sipariş miktarı AddDeliveryCostLine=Siparişin ağırlığını belirten bir teslimat satırı ekleyin diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang index ac878191a7f..d0d2a5d3b2c 100644 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -59,12 +59,12 @@ PredefinedMailTest=Bu bir deneme postasıdır.\nİki satır enter tuşu ile ayr PredefinedMailTestHtml=Bu bir deneme postası (deneme sözcüğü koyu olmalı).
İki satır enter tuşu ile ayrılmıştır. PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nFaturanız buradadır __FACREF__\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nSize faturanız __FACREF__ için ödeme yapılmamış göründüğünü belirtmek isteriz. Anımsatma amacıyla ilgili fatura ekte sunulmuştur.\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nTeklifiniz buradadır __PROPREF__\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nTeklifiniz bilgilerinize sunulmuştur __PROPREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nSiparişiniz buradadır __ORDERREF__\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nSiparişimiz buradadır __ORDERREF__\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nFatura buradadır __FACREF__\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nSevkiyatınız bilgilerinize sunulmuştur __SHIPPINGREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nMüdahale bilgilerinize sunulmuştur __FICHINTERREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n__PERSONALIZED__\n__SIGNATURE__ DemoDesc=Dolibarr birçok fonksiyonel modülden oluşan derlitoplu bir ERP/CRM programıdır. Bu durumda tüm modülleri içeren bir demo asla hiçbir şey demek değildir. Yani, birçok demo profili vardır. ChooseYourDemoProfil=İşlemlerinize uyan demo profilini seçin... @@ -80,6 +80,16 @@ ModifiedBy=%s tarafından düzenlendi ValidatedBy=%s tarafından onaylandı CanceledBy=%s tarafından iptal edildi ClosedBy=%s tarafından kapatıldı +CreatedById=Oluşturanın kullanıcı kimliği +ModifiedById=Son değişikliği yapan kullanıcı kimliği +ValidatedById=Doğrulayanın kullanıcı kimliği +CanceledById=İptal edenin kullanıcı kimliği +ClosedById=Kapatanın kullanıcı kimliği +CreatedByLogin=Oluşturanın kullanıcı adı +ModifiedByLogin=Son değişikliği yapanın kullanıcı adı +ValidatedByLogin=Doğrulayanın kullanıcı adı +CanceledByLogin=İptal edenin kullanıcı adı +ClosedByLogin=Kapatanın kullanıcı adı FileWasRemoved=%s dosyası kaldırıldı DirWasRemoved=%s dizini kaldırıldı FeatureNotYetAvailableShort=Gelecek sürümde olacaktır diff --git a/htdocs/langs/tr_TR/products.lang b/htdocs/langs/tr_TR/products.lang index 446eee8aba2..a16fca7fd9e 100644 --- a/htdocs/langs/tr_TR/products.lang +++ b/htdocs/langs/tr_TR/products.lang @@ -80,12 +80,12 @@ ContractStatusClosed=Kapalı ContractStatusRunning=Yürürlükte ContractStatusExpired=süresi doldu ContractStatusOnHold=Yürürlükte değil -ContractStatusToRun=To get running +ContractStatusToRun=Yürülüğe alınacak ContractNotRunning=Bu sözleşme çalışmıyor ErrorProductAlreadyExists=%s Referanslı bir ürün zaten var var. ErrorProductBadRefOrLabel=Referans veya etiket için yanlış değer. ErrorProductClone=Ürün ya da hizmetin klonlanmasına çalışılırken bir sorun oluştu. -ErrorPriceCantBeLowerThanMinPrice=Error Price Can't Be Lower Than Minimum Price. +ErrorPriceCantBeLowerThanMinPrice=Hata! Fiyat Enaz Fiyattan düşük olamaz Suppliers=Tedarikçiler SupplierRef=Tedarikçi ürün ref. ShowProduct=Ürün Göster @@ -238,7 +238,7 @@ PriceByCustomer=Müşteri fiyatı PriceCatalogue=Ürün/Servis için birim fiyat PricingRule=Fiyatlandırma yetkileri AddCustomerPrice=Müşteriler için fiyat ekle -ForceUpdateChildPriceSoc=Set same price on customer subsidiaries +ForceUpdateChildPriceSoc=Müşterinin ortaklılarına aynı fiyatı uygula PriceByCustomerLog=Müşteri fiyat günlüğü -MinimumPriceLimit=Minimum price can't be lower that %s -MinimumRecommendedPrice=Minimum recommended price is : %s +MinimumPriceLimit=Enaz fiyat bundan düşük olamaz %s +MinimumRecommendedPrice=Önerilen enaz fiyat: %s diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang index 8682cdc2452..d06f3c3525b 100644 --- a/htdocs/langs/tr_TR/propal.lang +++ b/htdocs/langs/tr_TR/propal.lang @@ -37,7 +37,7 @@ PropalStatusDraft=Taslak (doğrulanması gerekir) PropalStatusValidated=Onaylı (teklif açık) PropalStatusOpened=Onaylı (teklif açık) PropalStatusClosed=Kapalı -PropalStatusSigned=İmzalanmış(faturalanması gerekiyor) +PropalStatusSigned=İmzalı(faturalanacak) PropalStatusNotSigned=İmzalanmamış (kapalı) PropalStatusBilled=Faturalanmış PropalStatusDraftShort=Taslak @@ -48,7 +48,7 @@ PropalStatusSignedShort=İmzalı PropalStatusNotSignedShort=İmzalanmamış PropalStatusBilledShort=Faturalanmış PropalsToClose=Kapatılacak teklifler -PropalsToBill=Faturalandırılacak imzalı teklifler +PropalsToBill=Faturalanacak imzalı teklifler ListOfProposals=Teklif listesi ActionsOnPropal=Tekliler için yapılan eylemler NoOpenedPropals=Açık teklif yok diff --git a/htdocs/langs/tr_TR/salaries.lang b/htdocs/langs/tr_TR/salaries.lang index 848deb6d150..61c1db446e8 100644 --- a/htdocs/langs/tr_TR/salaries.lang +++ b/htdocs/langs/tr_TR/salaries.lang @@ -1,4 +1,6 @@ # Dolibarr language file - Source file is en_US - users +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Ücret ödemeleri muhasebe kodu +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Mali yükümlülük için muhasebe kodu Salary=Ücret Salaries=Ücretler Employee=Çalışan @@ -6,3 +8,5 @@ NewSalaryPayment=Yeni ücret ödemesi SalaryPayment=Ücret ödemesi SalariesPayments=Ücret ödemeleri ShowSalaryPayment=Ücret ödemesi göster +THM=Ortalama saat ücreti +TJM=Ortalama günlük ücret diff --git a/htdocs/langs/tr_TR/sendings.lang b/htdocs/langs/tr_TR/sendings.lang index 4398ed92213..4c883321878 100644 --- a/htdocs/langs/tr_TR/sendings.lang +++ b/htdocs/langs/tr_TR/sendings.lang @@ -54,7 +54,7 @@ StatsOnShipmentsOnlyValidated=İstatistikler yalnızca doğrulanmış sevkiyatla DateDeliveryPlanned=Planlanan teslim tarihi DateReceived=Teslim alınan tarih SendShippingByEMail=Sevkiyatı EPostayla gönder -SendShippingRef=%s sevkiyatını gönder +SendShippingRef=% Nakliyatının yapılması ActionsOnShipping=Sevkiyat eylemleri LinkToTrackYourPackage=Paketinizi izleyeceğiniz bağlantı ShipmentCreationIsDoneFromOrder=Şu an için, yeni bir sevkiyatın oluşturulması sipariş kartından yapılmıştır. diff --git a/htdocs/langs/tr_TR/stocks.lang b/htdocs/langs/tr_TR/stocks.lang index 85fccc85f84..74cba2a10c6 100644 --- a/htdocs/langs/tr_TR/stocks.lang +++ b/htdocs/langs/tr_TR/stocks.lang @@ -62,8 +62,8 @@ OrderStatusNotReadyToDispatch=Sipariş henüz yoksa veya stok deposundan gönder StockDiffPhysicTeoric=Fiziksel ve teorik stok arasındaki stok farkı NoPredefinedProductToDispatch=Bu nesne için önceden tanımlanmış ürünlenyok. Yani stoktan sevk gerekli değildir. DispatchVerb=Dağıtım -StockLimitShort=Limit for alert -StockLimit=Stock limit for alert +StockLimitShort=Uyarı sınırı +StockLimit=Stok sınırı uyarısı PhysicalStock=Fiziksel stok RealStock=Gerçek Stok VirtualStock=Sanal stok diff --git a/htdocs/langs/tr_TR/trips.lang b/htdocs/langs/tr_TR/trips.lang index 8904b0aa553..bd709af9859 100644 --- a/htdocs/langs/tr_TR/trips.lang +++ b/htdocs/langs/tr_TR/trips.lang @@ -19,4 +19,4 @@ TF_TRIP=Gezi ListTripsAndExpenses=Geziler ve giderler listesi ExpensesArea=Geziler ve giderler alanı SearchATripAndExpense=Bir gezi ve gider ara -ClassifyRefunded=Classify 'Refunded' +ClassifyRefunded=Sınıflandırma 'İade edildi' diff --git a/htdocs/langs/tr_TR/users.lang b/htdocs/langs/tr_TR/users.lang index 2c38dcba787..50ee7de07b3 100644 --- a/htdocs/langs/tr_TR/users.lang +++ b/htdocs/langs/tr_TR/users.lang @@ -15,7 +15,7 @@ AvailableRights=Varolan izinler OwnedRights=Sahip olunan izinler GroupRights=Grup izinleri UserRights=Kullanıcı izinleri -UserGUISetup=Kullanıcı ekranı kurulumu +UserGUISetup=Kullanıcı ekranı ayarları DisableUser=Engelle DisableAUser=Bir kullanıcıyı engelle DeleteUser=Sil @@ -87,7 +87,7 @@ MyInformations=Verilerim ExportDataset_user_1=Dolibarr kullanıcıları ve özellikleri DomainUser=Etki alanı kullanıcısı %s Reactivate=Yeniden etkinleştir -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +CreateInternalUserDesc=Bu form firmanız/kurumunuz içinde kullanıcı oluşturmanızı sağlar. Dış kullanıcı (müşteri, tedarikçi,...) oluşturmak için üçüncü parti kişi kartlarından 'Dolibarr Kullanıcısı Oluştur' dğmesini kullan. InternalExternalDesc=Bir kullanıcı firmanızın/derneğinizin bir parçasıdır.
Birdış kullanıcı bir müşteri, tedarikçi veya bir başkasıdır.

Her iki durumda da, izinler Dolibarr’daki hakları tanımlar, aynı zamanda dış kullanıcı iç kullanıcıdan farklı bir menü yöeticisine sahiptir (Giriş->Kurulum->Görünüm’e bakın) PermissionInheritedFromAGroup=İzin hak tanındı çünkü bir kullanıcının grubundan intikal etti. Inherited=İntikal eden @@ -114,8 +114,9 @@ YourRole=Sizin rolünüz YourQuotaOfUsersIsReached=Aktif kullanıcı kotanıza ulaşıldı! NbOfUsers=Kullanıcı sayısı DontDowngradeSuperAdmin=Yalnızca bir SuperAdmin, bir SuperAdmin’inin derecesini düşürebilir -HierarchicalResponsible=Sorumlu sıradüzeni +HierarchicalResponsible=Yönetici HierarchicView=Sıradüzeni görünümü UseTypeFieldToChange=Değiştirmek için Alan türünü kullan OpenIDURL=OpenID URL LoginUsingOpenID=Giriş için OpenID kullan +WeeklyHours=Haftalık saatler diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 98e0a48aa50..b20d94164d6 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1821,7 +1821,7 @@ function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch,$htmlinput if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $ret.=' placeholder="'.$langs->trans("SearchOf").''.strip_tags($title).'"'; else $ret.=' title="'.$langs->trans("SearchOf").''.strip_tags($title).'"'; $ret.=' name="'.$htmlinputname.'" id="'.$htmlinputname.'" size="10" />'; - $ret.=''; + $ret.=''; $ret.="\n"; return $ret; } diff --git a/htdocs/product/composition/card.php b/htdocs/product/composition/card.php index efe03b0b024..8c71f29581b 100644 --- a/htdocs/product/composition/card.php +++ b/htdocs/product/composition/card.php @@ -295,7 +295,7 @@ if ($id > 0 || ! empty($ref)) } else { - print price($object->price).' '.$langs->trans($object->price_base_type); + print price($object->price).' '.$langs->trans($object->price_base_type?$object->price_base_type:'HT'); } print ''; @@ -307,7 +307,7 @@ if ($id > 0 || ! empty($ref)) } else { - print price($object->price_min).' '.$langs->trans($object->price_base_type); + print price($object->price_min).' '.$langs->trans($object->price_base_type?$object->price_base_type:'HT'); } print ''; } diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index 6482413a6a7..35835709ab8 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -51,8 +51,8 @@ $tobuy = GETPOST('tobuy', 'int'); $salert = GETPOST('salert', 'alpha'); $mode = GETPOST('mode','alpha'); -$fourn_id = GETPOST('mode','int'); // FIXME $fourn_id is not defined -$texte = ''; // FIXME $texte is not defined +$fourn_id = GETPOST('fourn_id','int'); +$texte = ''; $sortfield = GETPOST('sortfield','alpha'); $sortorder = GETPOST('sortorder','alpha'); diff --git a/htdocs/societe/index.php b/htdocs/societe/index.php index e6a251a2d78..740a6157809 100644 --- a/htdocs/societe/index.php +++ b/htdocs/societe/index.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2004-2014 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2014 Charles-Fr Benke * @@ -64,7 +64,7 @@ print '
'; print ''; print ''; print ''; -print ''; +print ''; print "'; print ''; @@ -79,9 +79,26 @@ print "'; //print ''; print ''; - print "
'.$langs->trans("Search").'
'.$langs->trans("SearchThirdparty").'
"; print ':
"; print ':

"; +/* + * Search contact + */ +$rowspan=2; +if (! empty($conf->barcode->enabled)) $rowspan++; +print '
'; +print ''; +print ''; +print ''; +print ''; +print "'; +print ''; +print "'; +//print ''; +print ''; +print "
'.$langs->trans("SearchContact").'
"; +print ':
"; +print ':

"; /* * Statistics area @@ -121,7 +138,7 @@ print ''; print ''; if (! empty($conf->use_javascript_ajax) && ((round($third['prospect'])?1:0)+(round($third['customer'])?1:0)+(round($third['supplier'])?1:0)+(round($third['other'])?1:0) >= 2)) { - print '"; + $statstring = ""; $statstring.= ''; $statstring.= ""; } if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) { - $statstring.= ""; + $statstring.= ""; $statstring.= ''; $statstring.= ""; } if (! empty($conf->fournisseur->enabled) && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS)) { - $statstring2 = ""; + $statstring2 = ""; $statstring2.= ''; $statstring2.= ""; } diff --git a/htdocs/support/default.css b/htdocs/support/default.css index d535ab0ea70..14454a19245 100644 --- a/htdocs/support/default.css +++ b/htdocs/support/default.css @@ -18,7 +18,7 @@ body { font-size:12px; font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; -background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; +background: #f9f9f9; /* background-color: #F4F4F4; */ margin: 5px 10px; } diff --git a/htdocs/support/dolibarr_logo2.png b/htdocs/support/dolibarr_logo2.png deleted file mode 100644 index 7abd0ae8494..00000000000 Binary files a/htdocs/support/dolibarr_logo2.png and /dev/null differ diff --git a/htdocs/support/headbg.jpg b/htdocs/support/headbg.jpg deleted file mode 100644 index 5491c6e4acb..00000000000 Binary files a/htdocs/support/headbg.jpg and /dev/null differ diff --git a/htdocs/theme/amarok/img/object_resource.png b/htdocs/theme/amarok/img/object_resource.png new file mode 100644 index 00000000000..8cda1f3f220 Binary files /dev/null and b/htdocs/theme/amarok/img/object_resource.png differ diff --git a/htdocs/theme/auguria/img/object_resource.png b/htdocs/theme/auguria/img/object_resource.png new file mode 100644 index 00000000000..8cda1f3f220 Binary files /dev/null and b/htdocs/theme/auguria/img/object_resource.png differ diff --git a/htdocs/theme/auguria/style.css.php b/htdocs/theme/auguria/style.css.php index 1159e40ff0a..9a47c431fc7 100644 --- a/htdocs/theme/auguria/style.css.php +++ b/htdocs/theme/auguria/style.css.php @@ -64,7 +64,7 @@ if (! empty($conf->global->MAIN_OVERWRITE_THEME_RES)) { $path='/'.$conf->global- // Define image path files and other constants $fontlist='arial,tahoma,verdana,helvetica'; //$fontlist='Verdana,Helvetica,Arial,sans-serif'; $img_liste_titre=dol_buildpath($path.'/theme/'.$theme.'/img/menus/trtitle.png',1); -$img_head=dol_buildpath($path.'/theme/'.$theme.'/img/headbg2.jpg',1); +$img_head=''; $img_button=dol_buildpath($path.'/theme/'.$theme.'/img/button_bg.png',1); $dol_hide_topmenu=$conf->dol_hide_topmenu; $dol_hide_leftmenu=$conf->dol_hide_leftmenu; @@ -108,7 +108,7 @@ body { background-color: #FFFFFF; - background: #ffffff url() 0 0 no-repeat; + background-color: #FCFCFC; color: #101010; font-size: px; @@ -184,14 +184,6 @@ legend { margin-bottom: 8px; } padding: 0px 2px 0px 2px; margin: 0px 0px 0px 0px; } -.buttonajax { - font-family: ; - border: 0px; - background-image: url(); - background-position: bottom; - padding: 0px 0px 0px 0px; - margin: 0px 0px 0px 0px; -} form { padding: 0em 0em 0em 0em; margin: 0em 0em 0em 0em; diff --git a/htdocs/theme/bureau2crea/img/object_resource.png b/htdocs/theme/bureau2crea/img/object_resource.png new file mode 100644 index 00000000000..8cda1f3f220 Binary files /dev/null and b/htdocs/theme/bureau2crea/img/object_resource.png differ diff --git a/htdocs/theme/bureau2crea/style.css.php b/htdocs/theme/bureau2crea/style.css.php index 950b2ce0001..0c7fa823f3e 100644 --- a/htdocs/theme/bureau2crea/style.css.php +++ b/htdocs/theme/bureau2crea/style.css.php @@ -209,14 +209,6 @@ legend { margin-bottom: 8px; } padding: 0px 2px 0px 2px; margin: 0px 0px 0px 0px; } -.buttonajax { - font-family: ; - border: 0px; - background-image: url(); - background-position: bottom; - padding: 0px 0px 0px 0px; - margin: 0px 0px 0px 0px; -} form { padding: 0em 0em 0em 0em; margin: 0em 0em 0em 0em; diff --git a/htdocs/theme/cameleo/img/object_resource.png b/htdocs/theme/cameleo/img/object_resource.png new file mode 100644 index 00000000000..8cda1f3f220 Binary files /dev/null and b/htdocs/theme/cameleo/img/object_resource.png differ diff --git a/htdocs/theme/cameleo/style.css.php b/htdocs/theme/cameleo/style.css.php index bfb64ab09a0..b39bb7de505 100644 --- a/htdocs/theme/cameleo/style.css.php +++ b/htdocs/theme/cameleo/style.css.php @@ -85,7 +85,7 @@ body { background-color: #FFFFFF; - /*background: #ffffff url() 0 0 no-repeat;*/ + background-color: #FCFCFC; color: #101010; font-size: px; @@ -185,14 +185,6 @@ legend { margin-bottom: 8px; } padding: 0px 2px 0px 2px; margin: 0px 0px 0px 0px; } -.buttonajax { - font-family: ; - border: 0px; - background-image: url(); - background-position: bottom; - padding: 0px 0px 0px 0px; - margin: 0px 0px 0px 0px; -} form { padding: 0em 0em 0em 0em; margin: 0em 0em 0em 0em; diff --git a/htdocs/theme/eldy/img/object_resource.png b/htdocs/theme/eldy/img/object_resource.png new file mode 100644 index 00000000000..8cda1f3f220 Binary files /dev/null and b/htdocs/theme/eldy/img/object_resource.png differ diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index 3eef3bd840e..5b0e64525f6 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -64,7 +64,7 @@ if (! empty($conf->global->MAIN_OVERWRITE_THEME_RES)) { $path='/'.$conf->global- // Define image path files and other constants $fontlist='arial,tahoma,verdana,helvetica'; //$fontlist='Verdana,Helvetica,Arial,sans-serif'; -$img_head=dol_buildpath($path.'/theme/'.$theme.'/img/headbg2.jpg',1); +$img_head=''; $img_button=dol_buildpath($path.'/theme/'.$theme.'/img/button_bg.png',1); $dol_hide_topmenu=$conf->dol_hide_topmenu; $dol_hide_leftmenu=$conf->dol_hide_leftmenu; @@ -308,46 +308,54 @@ legend { margin-bottom: 8px; } fieldset { border: 1px solid #AAAAAA !important; box-shadow: 2px 2px 3px #DDD; } -.button { +.button, sbmtConnexion { font-family: ; - background-image: url(); - background-position: bottom; - border: 1px solid #C0C0C0; - padding: 0.1em 0.7em; - margin: 0em 0.5em; - -moz-border-radius:0px 5px 0px 5px; - -webkit-border-radius:0px 5px 0px 5px; - border-radius:0px 5px 0px 5px; - -moz-box-shadow: 2px 2px 3px #DDD; - -webkit-box-shadow: 2px 2px 3px #DDD; - box-shadow: 2px 2px 3px #DDD; + border-color: #c5c5c5; + border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); + display: inline-block; + padding: 4px 14px; + margin-bottom: 0; + text-align: center; + cursor: pointer; + color: #333333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + border: 1px solid #bbbbbb; + border-bottom-color: #a2a2a2; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); } .button:focus { - font-family: ; - color: #222244; - background-image: url(); - background-position: bottom; - border: 1px solid #C0C0C0; + -moz-box-shadow: 0px 0px 6px 1px rgba(0, 0, 60, 0.2), 0px 0px 0px rgba(60,60,60,0.1); + -webkit-box-shadow: 0px 0px 6px 1px rgba(0, 0, 60, 0.2), 0px 0px 0px rgba(60,60,60,0.1); + box-shadow: 0px 0px 6px 1px rgba(0, 0, 60, 0.2), 0px 0px 0px rgba(60,60,60,0.1); } .button:hover { - background: #dee7ec; + -moz-box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.2), 0px 0px 0px rgba(60,60,60,0.1); + -webkit-box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.2), 0px 0px 0px rgba(60,60,60,0.1); + box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.2), 0px 0px 0px rgba(60,60,60,0.1); } .button:disabled { - background: #ddd; -} -.buttonajax { - font-family: ; - border: 0px; - background-image: url(); - background-position: bottom; - padding: 0.1em 0.7em; - margin: 0em 0.5em; - -moz-border-radius:0px 5px 0px 5px; - -webkit-border-radius:0px 5px 0px 5px; - border-radius:0px 5px 0px 5px; - -moz-box-shadow: 3px 3px 4px #DDD; - -webkit-box-shadow: 3px 3px 4px #DDD; - box-shadow: 3px 3px 4px #DDD; + opacity: 0.4; + filter: alpha(opacity=40); /* For IE8 and earlier */ + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + cursor: auto; } form { padding:0px; @@ -812,7 +820,10 @@ foreach($mainmenuusedarray as $val) .bodylogin { - background: #ffffff url() 0 0 no-repeat; + background: #f9f9f9; +} +.login_vertical_align { + padding: 10px; } form#login { margin-top: px; @@ -836,22 +847,17 @@ form#login { padding-top:12px; padding-bottom:12px; max-width: 540px; - border: 1px solid #C0C0C0; - background-color: #E0E0E0; - - -moz-box-shadow: 3px 3px 4px #DDD; - -webkit-box-shadow: 3px 3px 4px #DDD; - box-shadow: 3px 3px 4px #DDD; + border: 1px solid #A0A0A0; border-radius: 8px; - border:solid 1px rgba(168,168,168,.4); - border-top:solid 1px f8f8f8; - background-color: #f8f8f8; - background-image: -o-linear-gradient(top, rgba(250,250,250,.6) 0%, rgba(192,192,192,.3) 100%); - background-image: -moz-linear-gradient(top, rgba(250,250,250,.6) 0%, rgba(192,192,192,.3) 100%); - background-image: -webkit-linear-gradient(top, rgba(250,250,250,.6) 0%, rgba(192,192,192,.3) 100%); - background-image: -ms-linear-gradient(top, rgba(250,250,250,.6) 0%, rgba(192,192,192,.3) 100%); - background-image: linear-gradient(top, rgba(250,250,250,.6) 0%, rgba(192,192,192,.3) 100%); + border:solid 1px rgba(90,90,90,.4); + -moz-box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15); + -webkit-box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15); + box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15); + + background-color: #FFFFFF; + background: -webkit-gradient(linear, center top, center bottom, color-stop(0%, #fff), color-stop(100%, #f8f8f8)); + background: -moz-linear-gradient(top, #fff, #f8f8f8); } div#login_left, div#login_right { display: inline-block; @@ -983,10 +989,10 @@ div.blockvmenupair, div.blockvmenuimpair, div.blockvmenubookmarks background-position:top; background-repeat:repeat-x; - border-left: 1px solid #CCCCCC; - border-right: 1px solid #D0D0D0; - border-bottom: 1px solid #DDDDDD; - border-top: 1px solid #DDDDDD; + border-left: 1px solid #AAA; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; + border-top: 1px solid #CCC; border-radius: 5px; -moz-border-radius: 5px; -moz-box-shadow: 3px 3px 4px #DDD; @@ -1015,10 +1021,10 @@ div.blockvmenusearch background-image: linear-gradient(bottom, rgb() 90%, rgb() 100%); - border-left: 1px solid #DDDDDD; - border-right: 1px solid #CCCCCC; - border-bottom: 1px solid #CCCCCC; - border-top: 1px solid #E8E8E8; + border-left: 1px solid #AAA; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; + border-top: 1px solid #CCC; border-radius: 5px; -moz-border-radius: 5px; -moz-box-shadow: 3px 3px 4px #DDD; @@ -1026,39 +1032,6 @@ div.blockvmenusearch box-shadow: 3px 3px 4px #DDD; } -div.blockvmenubookmarksold -{ - border-right: 1px solid #555555; - border-bottom: 1px solid #555555; - font-family: ; - color: #000000; - text-align: ; - text-decoration: none; - padding-left: 5px; - padding-right: 1px; - padding-top: 3px; - padding-bottom: 3px; - margin: 6px 0px 8px 2px; - background: #E3E6E8; - - - background-image: -o-linear-gradient(bottom, rgb() 90%, rgb() 100%); - background-image: -moz-linear-gradient(bottom, rgb() 90%, rgb() 100%); - background-image: -webkit-linear-gradient(bottom, rgb() 90%, rgb() 100%); - background-image: -ms-linear-gradient(bottom, rgb() 90%, rgb() 100%); - background-image: linear-gradient(bottom, rgb() 90%, rgb() 100%); - - - border-left: 1px solid #CCCCCC; - border-right: 1px solid #BBBBBB; - border-bottom: 1px solid #BBBBBB; - border-radius: 5px; - -moz-border-radius: 5px; - -moz-box-shadow: 3px 3px 4px #DDD; - -webkit-box-shadow: 3px 3px 4px #DDD; - box-shadow: 3px 3px 4px #DDD; -} - div.blockvmenuhelp { dol_optimize_smallscreen)) { ?> @@ -1501,15 +1474,16 @@ span.tabspan { div.divButAction { margin-bottom: 1.4em; } .butAction, .butAction:link, .butAction:visited, .butAction:hover, .butAction:active, .butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active { - font-family: ; - font-weight: bold; - background: white; - border: 1px solid #8CACBB; - color: #434956; text-decoration: none; white-space: nowrap; padding: 0.4em em; margin: 0em em; + font-family: ; + + font-weight: bold; + background: white; + border: 1px solid #8CACBB; + color: #434956; -moz-border-radius:0px 5px 0px 5px; -webkit-border-radius:0px 5px 0px 5px; border-radius:0px 5px 0px 5px; @@ -1531,16 +1505,17 @@ div.divButAction { margin-bottom: 1.4em; } } .butActionRefused { - font-family: !important; + text-decoration: none !important; + white-space: nowrap !important; + cursor: not-allowed; + padding: 0.4em em; + margin: 0em em; + font-family: !important; + font-weight: bold !important; background: white !important; border: 1px solid #AAAAAA !important; color: #AAAAAA !important; - text-decoration: none !important; - white-space: nowrap !important; - cursor: not-allowed; - padding: 0.4em 0.7em; - margin: 0em 0.7em; -moz-border-radius:0px 5px 0px 5px; -webkit-border-radius:0px 5px 0px 5px; border-radius:0px 5px 0px 5px; @@ -1559,6 +1534,77 @@ span.butAction, span.butActionDelete { cursor: pointer; } +/* Preapre for bootstrap look +.butAction, .butActionDelete, .butActionRefused { + border-color: #c5c5c5; + border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); + display: inline-block; + padding: 4px 14px; + margin-bottom: 0; + line-height: 20px; + text-align: center; + vertical-align: middle; + cursor: pointer; + color: #333333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + border: 1px solid #bbbbbb; + border-bottom-color: #a2a2a2; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.butAction { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} + +.butActionDelete { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #cc6d00; + background-image: -moz-linear-gradient(top, #cc8800, #cc4400); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cc8800), to(#cc4400)); + background-image: -webkit-linear-gradient(top, #cc8800, #cc4400); + background-image: -o-linear-gradient(top, #cc8800, #cc4400); + background-image: linear-gradient(to bottom, #cc8800, #cc4400); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffcc8800', endColorstr='#ffcc4400', GradientType=0); + border-color: #cc4400 #cc4400 #802a00; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +a.butAction:link, a.butAction:visited, a.butAction:hover, a.butAction:active { + color: #FFFFFF; +} +End bootstrap */ + + /* ============================================================================== */ /* Tables */
'.$langs->trans("Statistics").'
'; + print '
'; $dataseries=array(); if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) $dataseries[]=array('label'=>$langs->trans("Prospects"),'data'=>round($third['prospect'])); if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS)) $dataseries[]=array('label'=>$langs->trans("Customers"),'data'=>round($third['customer'])); @@ -135,19 +152,19 @@ else { if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS)) { - $statstring = "
'.$langs->trans("Prospects").''.round($third['prospect']).'
'.$langs->trans("Customers").''.round($third['customer']).'
'.$langs->trans("Suppliers").''.round($third['supplier']).'