Przemysław Sztylka - ViCnet pisze:
> Ja ze swojej strony jestem bardzo zainteresowany tego typu funkcjonalnością.
> Wiem też że żaden rozsądny
> developer ( a przecież wszyscy tacy są :) ) nie podejmie się pracy nie
> wiedząc za ile pracuje i co ma stworzyć.
>
> Tak więc proponuje abyśmy My zainteresowani tym modułem napisali jakiej
> funkcjonalności od niego oczekujemy a Panowie
> developerzy spróbują go wycenić.
>
> No to z mojej strony na początek:
> - Ewidencja wszelkiego sprzętu w obiegu z możliwością przypisania do grupy (
> a może i do kilku grup )
> - wskazane pola takie jak : grupa, nazwa, typ, producent, nr
> seryjny(nie może się powtarzać), gwarancja do, dostawca, jednostka (szt.,
> mb.), stan magazynowy itp.
> - pozycje w magazynie musiałyby dzielić się na takie z numerem
> seryjnym których na stanie może być tylko jedna jednostka( np. zestaw
> kliencki ) i na takie których może być więcej
> jednostek (np. zasilacze, kabel utp, rj-ki :) itp. )
> - no i skoro mówimy o magazynie to powinna być możliwość
> przyjmowania i wydawania towarów od i do kontrahentów/klientów ( świetnie by
> było jakby przyjęcie towaru tworzyło jednocześnie operacje
> zobowiązania, a z wydania można by było zrobić fakturę)
> - dodałbym do tego możliwość tworzenia zestawień wydań i przyjęć
> towarów w funkcji czasu ( np. aby prześledzić drogę urządzenia klienckiego)
> - możliwość wydruku różnego typu raportów ( zestawienie wartości
> magazynu, stanów magazynowych z możliwością ustawiania różnych filtrów)
>
> To na razie tyle ode mnie, jak mi się coś jeszcze urodzi to napiszę.
>
Dokładnie to jest to czego potrzebuję. Można jeszcze dodać pole (ew.
pole uwag) gdzie będzie miejsce na numer dokumentu - gwarancji, żeby
łatwiej było odszukać gwarancję w segregatorze. Numeracja własna.
Również się dorzucę ile będzie trzeba.
Pozdrawiam
glaca
!DSPAM:4a67155166861804284693!
Nie wiem czy już znacie ten bug, w razie czego piszę (może tylko u mnie
tak jest).
W daemonie, w module payments, %months zamieniany jest na nazwę miesiąca.
Niestety jeśli miesiącem jest grudzień, a miesiące mamy w języku
polskim, to ciąg tytułem (&description) urwie się przed literką ń w
słowie grudzień.
Podejrzewam, że str_replace nie łyka polskich znaczków, ale nie wiem w
którym miejscu i dlaczego. Możliwe, że jakaś funkcja C działa nie tak
jak oczekiwał autor.
Pozdrawiam,
Konrad
P.S. Jak wy to debugujecie? :P
!DSPAM:4942ac04103786258220944!
Witam
Zauważyłem, że na koncie klienta można dodać kilka taryf i powiązać z
odpowiednimi komputerami. No ale w praktyce to nie działa, skrypt
generuje regułki kojarząc komputery z każdą taryfą.
Chciałbym np tak ustawić:
Klient ma 4 komputery:
2 komputery mają 2MB
2 komputery mają 512 kb
No i czy da się to zrobić??
Mam jeszcze pytanie o upgrade
Mam wersje LMS 'a 1.9.4 i gdybym chciał zrobić upgrade do wersji 11.x to
czy muszę kompilować na nowo deamona i wgrywać skrypty lms_* czy
wystarczy aktualizacja samego GUI, który zaktualizuje bazę?
--
Z poważaniem
Dariusz Raczkowski
www.atrium-pc.pl
gg: 11995886
!DSPAM:4961ff1f51389813612796!
Witam,
Mam problem z generowaniem faktur.
Zaznaczam do druku wszystkie z miesiąca a w pliku jest tylko 197 pierwszych.
Może macie pomysł jak rozwiązać ten problem.
pozdr
julek27
ps. dzięki za uwagę o nowej wiadomości :)
!DSPAM:490d56da176915315134984!
W lms.class.php
siedzi funkcja GetCustomerNames() o takiej zawartosci:
function GetCustomerNames() { return
$this->DB->GetAllByKey('SELECT id, '.
$this->DB->Concat('UPPER(lastname)',"' '",'name').' AS
customername FROM customersview WHERE status > 1
AND deleted = 0 ORDER BY customername asc', 'id'); }
przy 13.000 klientow wejscie w edycje komputera potrafi zamulic nawet na 15-30
sekund. Z czego samo zapytanie wykonuje sie w szczytach do 17 sekund!
Z jakiegos (dla mnie na pierwszy rzut oka bezsensownego powodu - bo to jest
select, a nie insert czy update) zapytanie wykonuje sie na widoku, a nie na
tabeli.
Prosta zmiana z:
FROM customersview
na:
FROM customers
powoduje wykonanie zapytania w max 2 sek (95% przypadkow ponizej) a
wyswietlenie calej strony do 5 sekund.
Wiec moze by ktos to w kodzie poprawil bo usuniecie 4 literek daje w efekcie
600% przyspieszenie tej funkcji....
--
Pozdrawiam
Jarosław Czarniak
Jarsat s.c.
Kruczkowskiego 13F
80-288, Gdańsk
jczarniak (at) jarsat (dot) pl
tel. 0 58 736 50 01
NIP 583-25-65-608; REGON 191681902;
!DSPAM:4a6ef80b283887480988918!
Witam!!
Przekopiowałem plik jak w temacie jako plik sql.conf w katalogu
konfiguracyjnym radiusa, zmieniłem nazwę sql sql_pppoe na samo sql i po
odpaleniu radius -X i próbie logowania po PPPOE do MT dostaje to:
----------------------------------------
radius -X
including....
(...)
Module: Linked to module rlm_sql
Module: Instantiating sql
sql {
driver = "rlm_sql_mysql"
server = "localhost"
port = ""
login = "lms"
password = "..."
radius_db = "lms"
read_groups = yes
sqltrace = no
sqltracefile = "/usr/local/radius/var/log/radius/sqltrace.sql"
readclients = yes
deletestalesessions = yes
num_sql_socks = 15
lifetime = 0
max_queries = 0
sql_user_name = "%{User-Name}"
default_user_profile = ""
nas_query = "SELECT nodes.id, inet_ntoa(ipaddr) as nasname,
shortname, (SELECT nastypes.name FROM nastypes WHERE
nastypes.id=netdevices.nastype) AS type, secret FROM
nodes, netdevices Where nas=1 AND nodes.netdev=netdevices.id"
authorize_check_query = "SELECT id, lower(name) as UserName ,
'User-Password' as Attribute , passwd as Value, ':=' as op FROM nodes
WHERE name = '%{User-Name}'
UNION SELECT id, lower(name) as UserName ,
'Simultaneous-Use' as Attribute, '1' as Value, ':=' as op FROM nodes
WHERE name = '%{User-Name}'
UNION SELECT 0 AS id, '%{User-Name}' AS
UserName, 'Max-Octets' AS Attribute,
CONCAT(ROUND(COALESCE(x.dlimit, y.dlimit))) AS Value, ':=' AS
op FROM (SELECT n.id, MIN(n.name) AS name,
SUM(t.dlimit/o.cnt) AS dlimit FROM
nodeassignments na JOIN assignments a ON
(na.assignmentid = a.id) JOIN tariffs t ON
(a.tariffid = t.id) JOIN nodes n ON
(na.nodeid = n.id) JOIN (SELECT
assignmentid, COUNT(*) AS cnt FROM
nodeassignments GROUP BY assignmentid) o ON (o.assignmentid =
na.assignmentid) WHERE (a.datefrom <=
unix_timestamp() OR a.datefrom = 0) AND (a.dateto > unix_timestamp() OR
a.dateto = 0) AND a.suspended = 0 AND n.name =
'%{User-Name}' GROUP BY
n.id ) x RIGHT
JOIN (SELECT SUM(t.dlimit)/o.cnt AS
dlimit FROM assignments
a JOIN tariffs t ON (a.tariffid =
t.id) JOIN nodes n ON (a.customerid =
n.ownerid) JOIN (SELECT COUNT(*) AS cnt,
ownerid FROM nodes WHERE NOT EXISTS(SELECT
1 FROM nodeassignments, assignments a WHERE assignmentid = a.id AND
nodeid = nodes.id AND a.suspended = 0 AND (a.dateto > unix_timestamp()
OR a.dateto = 0)) GROUP BY ownerid) o ON
(o.ownerid = n.ownerid) WHERE (a.datefrom
<= unix_timestamp() OR a.datefrom = 0) AND (a.dateto > unix_timestamp()
OR a.dateto = 0) AND a.suspended =?0 AND t.dlimit !=
'0' AND NOT EXISTS (SELECT 1 FROM
nodeassignments WHERE assignmentid = a.id)?AND n.name =
'%{User-Name}' GROUP BY
n.id ) y ON (1=1);"
authorize_reply_query = "SELECT id, lower(name) as UserName ,
'Framed-IP-Address' as Attribute, inet_ntoa(ipaddr) as Value, '==' as op
FROM nodes WHERE name = '%{User-Name}'
UNION SELECT 0 AS id, '%{User-Name}' AS
UserName, 'Mikrotik-Rate-Limit' AS
Attribute, CONCAT(ROUND(COALESCE(x.upceil,
y.upceil, z.upceil)),'k','/', ROUND(COALESCE(x.downceil, y.downceil,
z.downceil)),'k') AS Value, '==' AS op FROM
(SELECT n.id, MIN(n.name) AS name, SUM(t.downceil/o.cnt) AS downceil,
SUM(t.upceil/o.cnt) AS upceil FROM
nodeassignments na JOIN assignments a ON
(na.assignmentid = a.id) JOIN tariffs t ON
(a.tariffid = t.id) JOIN nodes n ON (na.nodeid =
n.id) JOIN (SELECT assignmentid, COUNT(*)
AS cnt FROM nodeassignments GROUP BY
assignmentid) o ON (o.assignmentid =
na.assignmentid) WHERE (a.datefrom <=
unix_timestamp() OR a.datefrom = 0) AND (a.dateto > unix_timestamp() OR
a.dateto = 0) AND a.suspended = 0 AND n.name =
'%{User-Name}' GROUP BY
n.id ) x RIGHT
JOIN (SELECT SUM(t.downceil)/o.cnt AS
downceil, SUM(t.upceil)/o.cnt AS
upceil FROM assignments
a JOIN tariffs t ON (a.tariffid =
t.id) JOIN nodes n ON (a.customerid =
n.ownerid) JOIN (SELECT COUNT(*) AS cnt,
ownerid FROM nodes WHERE NOT
EXISTS(SELECT 1 FROM nodeassignments, assignments a WHERE assignmentid =
a.id AND nodeid = nodes.id AND a.suspended = 0 AND (a.dateto >
unix_timestamp() OR a.dateto = 0)) GROUP BY
ownerid) o ON (o.ownerid = n.ownerid) WHERE
(a.datefrom <= unix_timestamp() OR a.datefrom = 0) AND (a.dateto >
unix_timestamp() OR a.dateto = 0) AND a.suspended
=?0 AND NOT EXISTS (SELECT 1 FROM
nodeassignments WHERE assignmentid = a.id)?AND n.name =
'%{User-Name}' GROUP BY
n.id ) y ON (1=1) RIGHT JOIN
(SELECT n.id, n.name, 64 AS downceil, 64 AS
upceil FROM nodes n WHERE n.name =
'%{User-Name}' ) z ON
(1=1) UNION
SELECT id, UserName, Attribute, Value,
op FROM
radreply WHERE Username =
'%{SQL-User-Name}' ORDER BY id;"
authorize_group_check_query = ""
authorize_group_reply_query = ""
accounting_onoff_query = ""
accounting_update_query = ""
accounting_update_query_alt = ""
accounting_start_query = ""
accounting_start_query_alt = ""
accounting_stop_query = ""
accounting_stop_query_alt = ""
connect_failure_retry_delay = 60
simul_count_query = ""
simul_verify_query = ""
postauth_query = ""
safe-characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /"
}
-------------------------------------------------------------
przy próbie logowania pppoe dostaje to:
-------------------------------------------------------------
rad_recv: Access-Request packet from host 192.168.0.2 port 1025, id=138,
length=187
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 120
NAS-Port-Type = Ethernet
User-Name = "mobilek"
Calling-Station-Id = "AA:AA:AA:AA:AA:AA"
Called-Station-Id = "service1"
NAS-Port-Id = "bridge1"
MS-CHAP-Challenge = 0xcd737fd1d6f73f2cedf0de9db2772a8a
MS-CHAP2-Response =
0x0100ca5764acebb82a306b55e08d3d8d3f4100000000000000005d08f1b178a355ea9b53271ba47a25479edf3047c3d79530
NAS-Identifier = "router"
NAS-IP-Address = 192.168.0.2
+- entering group authorize {...}
++[preprocess] returns ok
[auth_log] expand:
/usr/local/radius/var/log/radius/radacct/%{Client-IP-Address}/auth-detail-%Y%m%d
-> /usr/local/radius/var/log/radius/radacct/192.168.0.2/auth-detail-20090731
[auth_log]
/usr/local/radius/var/log/radius/radacct/%{Client-IP-Address}/auth-detail-%Y%m%d
expands to
/usr/local/radius/var/log/radius/radacct/192.168.0.2/auth-detail-20090731
[auth_log] expand: %t -> Fri Jul 31 18:11:58 2009
++[auth_log] returns ok
[mschap] Found MS-CHAP attributes. Setting 'Auth-Type = mschap'
++[mschap] returns ok
[sql] expand: %{User-Name} -> mobilek
[sql] sql_set_user escaped user --> 'mobilek'
rlm_sql (sql): Reserving sql socket id: 13
[sql] expand: SELECT id, lower(name) as UserName , 'User-Password' as
Attribute , passwd as Value, ':=' as op FROM nodes WHERE name =
'%{User-Name}' UNION SELECT id,
lower(name) as UserName , 'Simultaneous-Use' as Attribute, '1' as Value,
':=' as op FROM nodes WHERE name = '%{User-Name}'
UNION SELECT 0 AS id, '%{User-Name}' AS
UserName, 'Max-Octets' AS Attribute,
CONCAT(ROUND(COALESCE(x.dlimit, y.dlimit))) AS Value, ':=' AS
op FROM (SELECT n.id, MIN(n.name) AS name,
SUM(t.dlimit/o.cnt) AS dlimit FROM
nodeassignments na JOIN assignments a ON
(na.assignmentid = a.id) JOIN tariffs t ON
(a.tariffid = t.id) JOIN nodes n ON
(na.nodeid = n.id) JOIN (SELECT
assignmentid, COUNT(*) AS cnt FROM
nodeassignments GROUP BY assignmentid) o ON (o.assignmentid =
na.assignmentid) WHERE (a.datefrom <= un
rlm_sql_mysql: MYSQL check_error: 1300 received
rlm_sql_getvpdata: database query error
[sql] SQL query error; rejecting user
rlm_sql (sql): Released sql socket id: 13
++[sql] returns fail
Using Post-Auth-Type Reject
+- entering group REJECT {...}
[attr_filter.access_reject] expand: %{User-Name} -> mobilek
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 0 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
rad_recv: Access-Request packet from host 192.168.0.2 port 1025, id=138,
length=187
Waiting to send Access-Reject to client 192.168.0.2 port 1025 - ID: 138
Waking up in 0.6 seconds.
rad_recv: Access-Request packet from host 192.168.0.2 port 1025, id=138,
length=187
Waiting to send Access-Reject to client 192.168.0.2 port 1025 - ID: 138
Waking up in 0.3 seconds.
Sending delayed reject for request 0
Sending Access-Reject of id 138 to 192.168.0.2 port 1025
Waking up in 4.9 seconds.
Cleaning up request 0 ID 138 with timestamp +400
jednak kiedy w pliku z zapytaniami(sql.conf/sql_radius.conf) w sekcji
skrócę i zostawie zapytania takie:
sql {
...
authorize_check_query = "SELECT id, lower(name) as UserName,
'User-Password' as Attribute , passwd as Value, ':=' as op FROM nodes
WHERE name = '%{User-Name}';"
authorize_reply_query = "SELECT id, lower(name) as UserName ,
'Framed-IP-Address' as Attribute, inet_ntoa(ipaddr) as Value, '==' as op
FROM nodes WHERE name = '%{User-Name}';"
...
}
to user normalnie sie loguje dostaje IP i wszystko cyka
wie ktoś może w którym miejscu jest nie tak w zapytaniach czy moze cos w
konfigu coś trzeba poprawić?
POzdrawiam
Marcin S.
!DSPAM:4a7327e4250044073210324!
Jak rozwiążać za pomocą modułu tc w demonie generowanie reguł QoS-a
ustawiających prędkość x2 w godzinach nocnych dla wszystkich oprócz
grupy klientów którzy należą do danej grupy (np niepłacący) ?
Za pomoc z góry dziękuję
Krzysztof
!DSPAM:4a6f5c9828989813612796!
> -----Original Message-----
> From: lms-bounces(a)lists.lms.org.pl [mailto:lms-
> Witam,
>
> Ja ze swojej strony jestem bardzo zainteresowany tego typu
> funkcjonalnością.
> Wiem też że żaden rozsądny
> developer ( a przecież wszyscy tacy są :) ) nie podejmie się pracy nie
> wiedząc za ile pracuje i co ma stworzyć.
>
> Tak więc proponuje abyśmy My zainteresowani tym modułem napisali jakiej
> funkcjonalności od niego oczekujemy a Panowie
> developerzy spróbują go wycenić.
>
> No to z mojej strony na początek:
> - Ewidencja wszelkiego sprzętu w obiegu z możliwością przypisania do
> grupy (
> a może i do kilku grup )
> - wskazane pola takie jak : grupa, nazwa, typ, producent, nr
> seryjny(nie może się powtarzać), gwarancja do, dostawca, jednostka
> (szt.,
> mb.), stan magazynowy itp.
> - pozycje w magazynie musiałyby dzielić się na takie z numerem
> seryjnym których na stanie może być tylko jedna jednostka( np. zestaw
> kliencki ) i na takie których może być więcej
> jednostek (np. zasilacze, kabel utp, rj-ki :) itp. )
> - no i skoro mówimy o magazynie to powinna być możliwość
> przyjmowania i wydawania towarów od i do kontrahentów/klientów (
> świetnie by
> było jakby przyjęcie towaru tworzyło jednocześnie operacje
> zobowiązania, a z wydania można by było zrobić fakturę)
> - dodałbym do tego możliwość tworzenia zestawień wydań i przyjęć
> towarów w funkcji czasu ( np. aby prześledzić drogę urządzenia
> klienckiego)
> - możliwość wydruku różnego typu raportów ( zestawienie wartości
> magazynu, stanów magazynowych z możliwością ustawiania różnych filtrów)
>
> To na razie tyle ode mnie, jak mi się coś jeszcze urodzi to napiszę.
>
> Ile to może nas kosztować?? :)
Witam
Nie chce być zle zrozumiany ale te wszystkie funkcje ma bardzo tani program
SubiektGT
Może pomysle o sprzęgnięciu tych programow
Pozdrawiam
Michal Szymoniak
www.mp-serwis.pl
!DSPAM:4a674ca4110748045311664!
Przemysław Sztylka - ViCnet pisze:
> Witam,
>
> Jestem w stanie samodzielnie zlecić i zapłacić za wykonanie takiej
> funkcjonalności w LMS-ie.
>
> Tych developerów którzy chcą się tego podjąć proszę o kontakt.
>
[..]
A ile by wzieli Ci developerzy ??
--
Arti
!DSPAM:4a657389278881703090906!