[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue-contrib] r278 - hotline/forms
From: |
reinhard |
Subject: |
[gnue-contrib] r278 - hotline/forms |
Date: |
Wed, 20 Jun 2007 05:12:25 -0500 (CDT) |
Author: reinhard
Date: 2007-06-20 05:12:24 -0500 (Wed, 20 Jun 2007)
New Revision: 278
Modified:
hotline/forms/hotline.gfd
Log:
Added feature to call customer/contact with ekiga.
Modified: hotline/forms/hotline.gfd
===================================================================
--- hotline/forms/hotline.gfd 2007-06-04 15:40:35 UTC (rev 277)
+++ hotline/forms/hotline.gfd 2007-06-20 10:12:24 UTC (rev 278)
@@ -85,77 +85,6 @@
setFocus (blkAuswahl.fldKunde)
</trigger>
- <trigger name="kunde_pruefen" type="NAMED">
- # Dieser Trigger versucht, eine Kundennummer für den aktuellen Wert des
- # Feldes Kunde zu finden
- import datetime
- value = blkAuswahl.fldKunde.get ()
- selected = False
- selTicket = True
- updGrund = True
-
- if value is not None:
- # Kundennummer eingegeben?
- dtsKunde.simpleQuery ({'hotline_nummer': value})
- if not blkKunde.isEmpty () and dtsKunde.count () == 1:
- selected = True
- else:
- # Matchcode eingegeben?
- value += "%"
- dtsKunde.simpleQuery ({'hotline_matchcode': value})
- if blkKunde.isEmpty ():
- abort ("Keine Kunden fuer '%s' gefunden." % blkAuswahl.fldKunde)
-
- # Matchcode eindeutig?
- if dtsKunde.count () == 1:
- selected = True
- else:
- res = dtsOpenTickets.createResultSet(query = True)
- if res.getRecordCount():
- params = {}
- activateDialog('selectTicket', params, True)
- if params['prm_ticket'] is not None:
- dtsKunde.simpleQuery({'gnue_id': params['prm_kunde']})
- dtsTicket.simpleQuery({'gnue_id': params['prm_ticket']})
-
- selected = True
- selTicket = False
- updGrund = False
-
- # Nicht eindeutiger Matchcode oder leere Eingabe
- if not selected:
- params = {'prm_matchcode': blkAuswahl.fldKunde.value}
- activateDialog('selectKunde', params, True)
- if params['prm_nummer'] is None:
- # Leeres Resultset erzeugen, damit die Anzeige gelöscht wird
- dtsKunde.simpleQuery ({'gnue_id': None})
- return
- # Auswahl aktivieren
- dtsKunde.simpleQuery ({'hotline_nummer': params['prm_nummer']})
-
- # Kundennummer ins Auswahlfeld setzen
- blkAuswahl.fldKunde.set (blkKunde.fldHotlineNummer)
-
- # Focus auf den Kontakt
- setFocus (blkTicket.fldKontaktName)
-
- # Gibt's für diesen Kunden offene Tickets?
- if selTicket and blkKunde.fldOffene.value:
- # Ja: Auswahldialog öffnen
- params = {'prm_kunde': blkKunde.fldKundeId.value}
- activateDialog('selectTicket', params, 1)
- if params['prm_ticket'] is not None:
- dtsTicket.simpleQuery({'gnue_id': params['prm_ticket']})
- updGrund = False
-
- blkAuswahl.fldStart.set (datetime.datetime.now ())
-
- # FIXME: Das gehört in die Initialisierung der hotline_ticket Klasse
- if updGrund and blkKunde.fldVertrag.get ():
- wvgrund = blkParameter.fldWartungsvertrag.get ()
- blkTicket.fldHotlineGrund.set (wvgrund)
- </trigger>
-
<trigger name="save_all" type="NAMED">
if not blkLeistung.isPending ():
showMessage ('Leistung ist bereits gespeichert oder nicht geaendert!?')
@@ -238,21 +167,29 @@
<layout xmlns:s="GNUe:Layout:Sizer">
<page name="Hotline">
<vbox>
- <entry name="inpMitarbeiter" label="Mitarbeiter:" block="blkAuswahl"
field="fldMitarbeiter"/>
- <hbox label="Kunde">
- <vbox s:stretch="1">
- <entry name="inpKunde" label="Kunde:" block="blkAuswahl"
field="fldKunde"/>
- <entry name="inpName1" label="Name-1:" block="blkKunde"
field="fldHotlineName1"/>
- <entry name="inpOrt" label="Ort:" block="blkKunde"
field="fldHotlineOrt"/>
- <entry name="inpTelefon" label="Telefon:" block="blkKunde"
field="fldTelefon"/>
+ <vbox>
+ <entry name="inpMitarbeiter" label="Mitarbeiter:" block="blkAuswahl"
field="fldMitarbeiter"/>
+ </vbox>
+ <hbox label="Kunde" block="blkKunde">
+ <vbox>
+ <hbox label="Kunde:" block="blkAuswahl">
+ <entry name="inpKunde" field="fldKunde"/>
+ <button name="btnKunde" label="Suchen"
action="act_kunde_pruefen"/>
+ </hbox>
+ <entry name="inpName1" label="Name-1:" field="fldHotlineName1"/>
+ <entry name="inpOrt" label="Ort:" field="fldHotlineOrt"/>
+ <hbox label="Telefon:">
+ <entry name="inpTelefon" field="fldTelefon"/>
+ <button name="btnKundeAnrufen" label="Anrufen"
action="act_kunde_anrufen" navigable="N"/>
+ </hbox>
</vbox>
- <button name="btnKunde" label="Suchen" s:stretch="0">
- <trigger type="ON-ACTION" src="kunde_pruefen"/>
- </button>
</hbox>
<vbox label="Kontakt">
<entry name="inpKontakt" label="Kontakt:" block="blkTicket"
field="fldKontaktName"/>
- <entry name="inpKTel" label="Telefon:" block="blkKontakt"
field="fldKontaktTelefon"/>
+ <hbox label="Telefon:">
+ <entry name="inpKTel" block="blkKontakt"
field="fldKontaktTelefon"/>
+ <button name="btnKontaktAnrufen" label="Anrufen"
action="act_kontakt_anrufen" navigable="N"/>
+ </hbox>
<entry name="inpMail" label="E-Mail:" block="blkKontakt"
field="fldKontaktEmail"/>
<entry name="inpProdukt" label="Produkt:" block="blkTicket"
field="fldProdukt"/>
<entry name="inpProblem" label="Problem:" block="blkTicket"
field="fldHotlineText"/>
@@ -282,7 +219,98 @@
</page>
</layout>
+ <action name="act_kunde_pruefen">
+ # Dieser Trigger versucht, eine Kundennummer für den aktuellen Wert des
+ # Feldes Kunde zu finden
+ import datetime
+ value = blkAuswahl.fldKunde.get ()
+ selected = False
+ selTicket = True
+ updGrund = True
+ if value is not None:
+ # Kundennummer eingegeben?
+ dtsKunde.simpleQuery ({'hotline_nummer': value})
+ if not blkKunde.isEmpty () and dtsKunde.count () == 1:
+ selected = True
+ else:
+ # Matchcode eingegeben?
+ value += "%"
+ dtsKunde.simpleQuery ({'hotline_matchcode': value})
+ if blkKunde.isEmpty ():
+ abort ("Keine Kunden fuer '%s' gefunden." % blkAuswahl.fldKunde)
+
+ # Matchcode eindeutig?
+ if dtsKunde.count () == 1:
+ selected = True
+ else:
+ res = dtsOpenTickets.createResultSet(query = True)
+ if res.getRecordCount():
+ params = {}
+ activateDialog('selectTicket', params, True)
+ if params['prm_ticket'] is not None:
+ dtsKunde.simpleQuery({'gnue_id': params['prm_kunde']})
+ dtsTicket.simpleQuery({'gnue_id': params['prm_ticket']})
+
+ selected = True
+ selTicket = False
+ updGrund = False
+
+ # Nicht eindeutiger Matchcode oder leere Eingabe
+ if not selected:
+ params = {'prm_matchcode': blkAuswahl.fldKunde.value}
+ activateDialog('selectKunde', params, True)
+ if params['prm_nummer'] is None:
+ # Leeres Resultset erzeugen, damit die Anzeige gelöscht wird
+ dtsKunde.simpleQuery ({'gnue_id': None})
+ return
+ # Auswahl aktivieren
+ dtsKunde.simpleQuery ({'hotline_nummer': params['prm_nummer']})
+
+ # Kundennummer ins Auswahlfeld setzen
+ blkAuswahl.fldKunde.set (blkKunde.fldHotlineNummer)
+
+ # Focus auf den Kontakt
+ setFocus (blkTicket.fldKontaktName)
+
+ # Gibt's für diesen Kunden offene Tickets?
+ if selTicket and blkKunde.fldOffene.value:
+ # Ja: Auswahldialog öffnen
+ params = {'prm_kunde': blkKunde.fldKundeId.value}
+ activateDialog('selectTicket', params, 1)
+ if params['prm_ticket'] is not None:
+ dtsTicket.simpleQuery({'gnue_id': params['prm_ticket']})
+ updGrund = False
+
+ blkAuswahl.fldStart.set (datetime.datetime.now ())
+
+ # FIXME: Das gehört in die Initialisierung der hotline_ticket Klasse
+ if updGrund and blkKunde.fldVertrag.get ():
+ wvgrund = blkParameter.fldWartungsvertrag.get ()
+ blkTicket.fldHotlineGrund.set (wvgrund)
+ </action>
+
+ <action name="act_kunde_anrufen">
+ import os
+ number = ''.join([c for c in blkKunde.fldTelefon.value if c in
'0123456789'])
+ if number.startswith('00'):
+ number = number[2:]
+ elif number.startswith('0'):
+ number = '43' + number[1:]
+ os.system("ekiga -c sip:address@hidden" % number)
+ </action>
+
+ <action name="act_kontakt_anrufen">
+ import os
+ number = ''.join([c for c in blkKontakt.fldKontaktTelefon.value if c in
'0123456789'])
+ if number.startswith('00'):
+ number = number[2:]
+ elif number.startswith('0'):
+ number = '43' + number[1:]
+ os.system("ekiga -c sip:address@hidden" % number)
+ </action>
+
+
<!-- ================================================================= -->
<!-- Dialog zur Auswahl eines Kunden -->
<!-- ================================================================= -->
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue-contrib] r278 - hotline/forms,
reinhard <=