Example #1
0
 public function getPostParams()
 {
     $params = array();
     $params['OrderId'] = $this->details->invoiceID->get();
     $params['TimeStamp'] = time() * 1000;
     // !miliseconds
     $params['CpiReturnUrl'] = $this->returnUrl;
     $params['CpiReturnUrl'] = $this->notifyUrl;
     $params['CpiDirectResultUrl'] = $this->notifyUrl;
     $params['StorefrontId'] = $this->getConfigValue('client');
     $params['OrderDesc'] = 'Order ' . $params['OrderId'];
     $amount = $this->details->amount->get();
     $currency = $this->details->currency->get();
     //switch($currency) // by number of digits after decimal seperator
     //{
     // case '':
     // $amount = $amount * 1000;
     //default:
     $amount = $amount * 100;
     //}
     $params['PurchaseAmount'] = $amount;
     $params['PurchaseCurrency'] = self::currencyToNumeric3($currency);
     $params['TransactionType'] = $this->getConfigValue('capture_automatically') ? 'Capture' : 'Auth';
     $user = $this->details->getOrder()->userID->get();
     // $params['UserId'] = $user->getID();
     $params['Mode'] = $this->getConfigValue('test') ? 'T' : 'P';
     $params['MerchantData'] = '';
     $params['BillingFirstName'] = $this->details->firstName->get();
     $params['BillingLastName'] = $this->details->lastName->get();
     $params['ShopperEmail'] = $user->email->get();
     $params['BillingAddress1'] = $this->details->address->get();
     $params['BillingAddress2'] = '';
     $params['BillingCity'] = $this->details->city->get();
     $country = ISO3166::getCountry($this->details->country->get());
     //$params['BillingCounty'] = $country['Name'];
     $params['BillingPostal'] = $this->details->postalCode->get();
     $params['BillingCountry'] = $country['Numeric3'];
     $params['ShippingFirstName'] = $this->details->shippingFirstName->get();
     $params['ShippingLastName'] = $this->details->shippingLastName->get();
     $params['ShippingAddress1'] = $this->details->shippingAddress->get();
     $params['ShippingAddress2'] = '';
     $params['ShippingCity'] = $this->details->shippingCity->get();
     $country = ISO3166::getCountry($this->details->shippingCountry->get());
     //$params['ShippingCounty'] = $country['Name'];
     $params['ShippingPostal'] = $this->details->shippingPostalCode->get();
     $params['ShippingCountry'] = $country['Numeric3'];
     $params['OrderHash'] = generateHash(array_values($params), $this->getConfigValue('key'));
     //$this->debug('getPostParams()', $params);
     return $params;
 }
Example #2
0
 function popup($ibanField, $bicField)
 {
     $F = new HTMLForm("ibanCalc", array("land", "kontonummer", "bankleitzahl", "ibanField", "bicField"));
     $F->getTable()->setColWidth(1, 120);
     $I = new IBAN();
     $l = array();
     foreach ($I->Countries() as $c) {
         $IC = new IBANCountry($c);
         if (!$IC->IsSEPA()) {
             continue;
         }
         $l[$c] = ISO3166::getCountryToCode($c) . " ({$c})";
     }
     asort($l);
     $F->setType("land", "select", "DE", $l);
     $F->setType("ibanField", "hidden");
     $F->setType("bicField", "hidden");
     $F->setValue("ibanField", $ibanField);
     $F->setValue("bicField", $bicField);
     $F->setSaveRMEPCR("Berechnen", "", "IBANCalc", "-1", "calc", "function(t){ \$j('#ibanCalcResult').html(t.responseText); }");
     echo $F . "<div id=\"ibanCalcResult\"></div>";
 }
Example #3
0
 /**
  * @testdox Iterating over $instance->listBy() should behave as expected.
  */
 public function testListBy()
 {
     $iso3166 = new ISO3166();
     try {
         foreach ($iso3166->listBy('foo') as $key => $value) {
             // void
         }
     } catch (\Exception $e) {
         $this->assertInstanceOf('DomainException', $e);
         $this->assertRegExp('{Invalid value for \\$indexBy, got "\\w++", expected one of:(?: \\w++,?)+}', $e->getMessage());
     } finally {
         $this->assertTrue(isset($e));
     }
     $i = 0;
     foreach ($iso3166->listBy(ISO3166::KEY_ALPHA3) as $key => $value) {
         ++$i;
     }
     $this->assertEquals(count($iso3166->getAll()), $i, 'Compare iterated count to count(getAll()).');
 }
Example #4
0
 function handleOrder()
 {
     $values = $_SESSION["ticketDataAddress"];
     $F = new Factory("Adresse");
     $values["land"] = ISO3166::getCountryToCode($values["land"]);
     $F->fill($values);
     $exists = $F->exists(true);
     if (!$exists) {
         $AdresseID = $F->store(false, false);
         $K = new Kunden();
         $Kappendix = $K->createKundeToAdresse($AdresseID, false, true);
     } else {
         $AdresseID = $exists->getID();
         $Kappendix = Kappendix::getKappendixToAdresse($AdresseID);
     }
     if ($_SESSION["ticketDataPayment"]["via"] == "debit") {
         $Kappendix->changeA("KappendixKontonummer", $_SESSION["ticketDataPayment"]["debitKontonummer"]);
         $Kappendix->changeA("KappendixBLZ", $_SESSION["ticketDataPayment"]["debitBlz"]);
         $Kappendix->changeA("KappendixKontoinhaber", $_SESSION["ticketDataPayment"]["debitInhaber"]);
         $Kappendix->changeA("KappendixEinzugsermaechtigung", "1");
         $Kappendix->changeA("KappendixEinzugsermaechtigungAltZBTB", "5");
         $Kappendix->changeA("KappendixSameKontoinhaber", "0");
     }
     if (!$exists) {
         $Kappendix->newMe(false);
     } else {
         $Kappendix->saveMe();
     }
     $zahlungsart = 6;
     if ($_SESSION["ticketDataPayment"]["via"] == "debit") {
         $zahlungsart = 1;
     }
     if ($_SESSION["ticketDataPayment"]["via"] == "transfer") {
         $zahlungsart = 5;
     }
     if ($_SESSION["ticketDataPayment"]["via"] == "paypal") {
         $zahlungsart = 7;
     }
     $orderIDs = array();
     foreach ($_SESSION["ticketDataSelection"] as $SeminarID => $anzahl) {
         if ($anzahl == 0) {
             continue;
         }
         $F = new Factory("STeilnehmer");
         $F->sA("STeilnehmerSeminarID", $SeminarID);
         $F->sA("STeilnehmerAdresseID", $AdresseID);
         $F->sA("STeilnehmerAngemeldetAm", time());
         $F->sA("STeilnehmerErwachsene", $anzahl);
         $F->sA("STeilnehmerZahlungsart", $zahlungsart);
         $STeilnehmerID = $F->store();
         $Tickets = array();
         foreach ($_SESSION["ticketDataTickets"] as $k => $v) {
             $ex = explode("_", $k);
             if (count($ex) != 3) {
                 continue;
             }
             if ($ex[1] != $SeminarID) {
                 continue;
             }
             if (!isset($Tickets[$ex[2]])) {
                 $Tickets[$ex[2]] = array();
             }
             $Tickets[$ex[2]][$ex[0]] = $v;
         }
         foreach ($Tickets as $ticket) {
             $F = new Factory("STeilnehmerTicket");
             $F->sA("STeilnehmerTicketSeminarID", $SeminarID);
             $F->sA("STeilnehmerTicketSTeilnehmerID", $STeilnehmerID);
             $F->sA("STeilnehmerTicketVorname", $ticket["Vorname"]);
             $F->sA("STeilnehmerTicketNachname", $ticket["Nachname"]);
             $F->sA("STeilnehmerTicketPosition", $ticket["Position"]);
             $F->sA("STeilnehmerTicketUnternehmen", $ticket["Unternehmen"]);
             $F->sA("STeilnehmerTicketEMail", $ticket["Email"]);
             if ($this->fromPOS) {
                 $F->sA("STeilnehmerTicketFirstSeen", time());
             }
             $F->store();
         }
         $S = new Seminar($SeminarID);
         $S->createRechnungen($STeilnehmerID);
         foreach ($S->createdGRLBMs as $GRLBM) {
             $Auftrag = new Auftrag($GRLBM->A("AuftragID"));
             $Auftrag->sendViaEmail($GRLBM->getID(), "", "", "", false);
             $B = new Bestellung(-1);
             $orderIDs[] = $B->createFromInvoice($GRLBM->A("AuftragID"), $GRLBM, "MMDB/Seminare/STeilnehmer", $STeilnehmerID);
         }
     }
     $_SESSION["ticketStep"] = 6;
     $_SESSION["ticketDataOrderIDs"] = $orderIDs;
 }
Example #5
0
 public function getFormattedAddress($withAnrede = false, $language = "de_DE")
 {
     /*$r = "";
     
     		switch(ISO3166::getCodeToCountry($this->A("land"))){
     			case "GB":
     				if($this->A->firma != "") $r .= $this->A->firma."\n";
     
     				if($this->A->nachname != "") $r .= ($this->A("position") != "" ? $this->A("position").", " : "").($withAnrede ? Util::formatAnrede($language, $this, true)." " : "").$this->A->vorname.($this->A->vorname != "" ? " " : "").$this->A->nachname."\n";
     				if($this->A("zusatz1") != "") $r .= $this->A("zusatz1")."\n";
     				$r .= $this->A->nr." ".$this->A->strasse."\n";
     				$r .= ($this->A("ort") != "" ? trim($this->A("ort"))."\n" : "").($this->A("plz") != "" ? $this->A("plz")."\n" : "").($this->A->land != "" ? $this->A->land : "");
     			break;
     
     			default:
     				if($this->A("firma") != "") $r .= $this->A("firma")."\n";
     				if($this->A("nachname") != "") $r .= ($withAnrede ? Util::formatAnrede($language, $this, true)." " : "").$this->A("vorname").($this->A("vorname") != "" ? " " : "").$this->A("nachname")."\n";
     				$r .= "".$this->A("strasse")." ".$this->A("nr")."\n";
     				$r .= trim($this->A("plz")." ".$this->A("ort")).($this->A("land") != "" ? "\n".$this->A("land") : "");
     			break;
     		}*/
     if ($withAnrede) {
         if ($this->A("vorname") != "") {
             $this->changeA("vorname", Util::formatAnrede($language, $this, true) . " " . $this->A("vorname"));
         } else {
             $this->changeA("nachname", Util::formatAnrede($language, $this, true) . " " . $this->A("nachname"));
         }
     }
     $format = Util::getCountryAddressFormat(ISO3166::getCodeToCountry($this->A("land")));
     preg_match_all("/\\{([a-zA-Z1-9]*)\\}/", $format, $matches);
     foreach ($matches[1] as $var) {
         $format = str_replace("{" . $var . "}", $this->A($var) == null ? "" : $this->A($var) . " ", $format);
     }
     $ex = explode("\n", $format);
     foreach ($ex as $n => $l) {
         $nl = trim($l);
         if ($nl == "") {
             unset($ex[$n]);
         } else {
             $ex[$n] = $nl;
         }
     }
     return trim(implode("\n", $ex));
 }
Example #6
0
 function getHTML($id)
 {
     $forReload = "";
     $displayMode = null;
     $AuftragID = -1;
     $bps = $this->getMyBPSData();
     if ($bps != -1 and isset($bps["AuftragID"])) {
         $AuftragID = $bps["AuftragID"];
     }
     if ($bps != -1 and isset($bps["displayMode"])) {
         $displayMode = $bps["displayMode"];
     }
     $_SESSION["BPS"]->unsetACProperty("AuftragID");
     $_SESSION["BPS"]->unsetACProperty("displayMode");
     #if($this->A == null AND $id != -1) $this->loadMe();
     $this->loadMeOrEmpty();
     if ($id * 1 == -1) {
         $this->A = $this->newAttributes();
         $this->A->AuftragID = $AuftragID;
         if ($displayMode != null) {
             $this->A->type = $displayMode;
         }
         //Has to stay or lieferAdresse will also overwrite a normal Auftrags-Adresse
         if (Session::isPluginLoaded("mAdressBuch")) {
             $AB = BPS::getProperty("AdressenGUI", "AdressBuch", null);
             if ($AB) {
                 $this->A->type = "AB{$AB}";
             }
         }
         $id = $this->newMe(true, false);
         $this->forceReload();
         try {
             $K = new Kunden();
             if ($displayMode == null and $this->A("type") == "default") {
                 //Or else a lieferAdresse will get a Kundennummer
                 $K->createKundeToAdresse($id, false);
             }
         } catch (ClassNotFoundException $e) {
         }
         $forReload = "<script type=\"text/javascript\">lastLoadedLeft = {$id}; lastLoadedLeftPlugin = 'Adresse';</script>";
     }
     $OptTab = new HTMLSideTable("right");
     if (Session::isPluginLoaded("Kunden") and $this->A->AuftragID == -1) {
         $B = new Button("Kundendaten", "kunden");
         $B->loadFrame("contentLeft", "Kunde", "-1", "0", "KundeGUI;AdresseID:{$this->getID()};action:Kappendix");
         $OptTab->addRow($B);
     }
     if ($_SESSION["applications"]->getActiveApplication() == "open3A") {
         if ($displayMode != null) {
             $OptTab->setTableStyle("width:160px;margin:0px;margin-left:-170px;float:left;");
         }
         if (($id == -1 or $forReload != "") and Session::isPluginLoaded("mImport")) {
             $OTBV = new Button("Schnell-\nImport", "import");
             #$OTBV->rmePCR("importAdresse", "", "getFastImportWindow", "", "Popup.display('Adresse importieren:',transport);");
             $OTBV->onclick("Import.openSchnellImportAdresse('Adresse importieren:');");
             $OTBV->id("ButtonAdresseSchnellImport");
             $OptTab->addRow($OTBV);
         }
         if ($id != -1 and Session::isPluginLoaded("Kundenpreise") and $this->A->AuftragID == -1 and $this->A->type == "default") {
             $ButtonKundenpreise = new Button("Kundenpreise", "package");
             $ButtonKundenpreise->onclick("contentManager.loadFrame('contentLeft','Kunde', -1, 0, 'KundeGUI;AdresseID:{$this->ID};action:Kundenpreise');");
             $OptTab->addRow($ButtonKundenpreise);
         }
         if ($this->A->AuftragID == -1 and (Session::isPluginLoaded("mAnsprechpartner") or Session::isPluginLoaded("mOSM"))) {
             $OptTab->addRow("");
             $OptTab->addCellStyle(1, "height:30px;");
         }
         if ($id != -1 and Session::isPluginLoaded("mAnsprechpartner") and $this->A->AuftragID == -1) {
             $OptTab->addRow(Ansprechpartner::getButton("Adresse", $this->getID()));
         }
         if ($id != -1 and Session::isPluginLoaded("mOSM") and $this->A("AuftragID") == -1) {
             $OptTab->addRow(OpenLayers::getButton("Adresse", $this->getID()));
         }
     }
     if (Session::isPluginLoaded("mklickTel") and $this->A->AuftragID == -1) {
         $OptTab->addRow(klickTel::getButton($this->getID()));
     }
     $this->loadMeOrEmpty();
     $gui = $this->gui;
     $gui->insertSpaceAbove("tel", "Kontakt");
     $gui->insertSpaceAbove("strasse", "Adresse");
     $gui->insertSpaceAbove("homepage", "Sonstiges");
     $gui->setFormID("AdresseForm");
     $fields = array("firma", "position", "anrede", "vorname", "nachname", "AdresseSpracheID", "strasse", "bezirk", "zusatz1", "ort", "land", "tel", "fax", "mobil", "email", "homepage", "gebRem", "gebRemMail", "AuftragID", "KategorieID", "type", "geb", "bemerkung");
     if (Session::isPluginLoaded("mLDAP")) {
         $fields[] = "exportToLDAP";
     }
     $gui->setShowAttributes($fields);
     $gui->setLabel("bemerkung", "Notizen");
     if (Session::isPluginLoaded("mSprache")) {
         $gui->setLabel("AdresseSpracheID", "Sprache");
         $gui->setLabelDescription("AdresseSpracheID", "und Währung");
         #$ACS = anyC::get("Sprache");
         #$S = array();
         #while($SLW = $ACS->getNextEntry())
         #	$S[$SLW->getID()] = $SLW->A("SpracheSprache")." "." ".$SLW->A("SpracheWaehrung");
         $gui->selectWithCollection("AdresseSpracheID", new mSprache(), "SpracheName");
         #$gui->setType("AdresseSpracheID", "select");
         #$gui->setOptions("AdresseSpracheID", array_keys($S), array_values($S));
         #$gui->insertSpaceAbove("firma");
     } else {
         $gui->setType("AdresseSpracheID", "hidden");
     }
     #$gui->setAttributes($this->A);
     $gui->setObject($this);
     $gui->setName("Adresse");
     $gui->setOptions("anrede", array_keys(self::getAnreden()), array_values(self::getAnreden()));
     $gui->setType("anrede", "select");
     $gui->setType("geb", "hidden");
     $gui->setType("gebRemMail", "hidden");
     $gui->setType("gebRem", "hidden");
     $gui->setType("exportToLDAP", "checkbox");
     $gui->insertSpaceAbove("exportToLDAP");
     $gui->setFieldDescription("exportToLDAP", "Soll die Adresse auf einen LDAP-Server exportiert werden?");
     $gui->setType("AuftragID", "hidden");
     $gui->setType("type", "hidden");
     #$gui->setLabel("geb","Jahrestag");
     $gui->setLabel("ort", "PLZ/Ort");
     $gui->setLabel("strasse", "Straße/Hausnr.");
     $gui->setLabel("tel", "Telefon");
     $gui->setLabel("email", "E-Mail");
     $gui->setLabel("exportToLDAP", "LDAP-Export?");
     $gui->setParser("strasse", "AdresseGUI::parserStrasse", array($this->A("nr")));
     $gui->setParser("ort", "AdresseGUI::parserOrt", array($this->A("plz")));
     #$gui->useAutoCompletion("plz", (Session::isPluginLoaded("Postleitzahlen") ? "Postleitzahlen" : "Adressen"));
     if (Session::isPluginLoaded("mStammdaten") or Applications::activeApplication() == "MMDB") {
         /*if($this->A("land") == ""){
         			$S = Stammdaten::getActiveStammdaten();
         			if($S->A("land") == "D") $S->changeA("land","DE");
         			$this->changeA("land", ISO3166::getCountryToCode($S->A("land")));
         		}*/
         $gui->setType("land", "select");
         $countries = ISO3166::getCountries();
         $labels = array_merge(array("" => "keine Angabe"), $countries);
         $values = array_merge(array("" => ""), $countries);
         $gui->setOptions("land", array_values($values), array_values($labels));
         if ($this->A("land") != ISO3166::getCountryToCode("GB") and $this->A("land") != ISO3166::getCountryToCode("US") and $this->A("land") != ISO3166::getCountryToCode("CH")) {
             $gui->setLineStyle("zusatz1", "display:none;");
             $gui->setLineStyle("position", "display:none;");
         }
         if ($this->A("land") != ISO3166::getCountryToCode("DK") and $this->A("land") != ISO3166::getCountryToCode("ES")) {
             $gui->setLineStyle("bezirk", "display:none;");
         }
         $gui->setLabel("zusatz1", "Zusatz 1");
         $gui->setInputJSEvent("land", "onchange", "contentManager.toggleFormFields((this.value == '" . ISO3166::getCountryToCode("GB") . "' || this.value == '" . ISO3166::getCountryToCode("US") . "' || this.value == '" . ISO3166::getCountryToCode("CH") . "') ? 'show' : 'hide', ['zusatz1', 'position']); contentManager.toggleFormFields((this.value == '" . ISO3166::getCountryToCode("DK") . "' || this.value == '" . ISO3166::getCountryToCode("ES") . "') ? 'show' : 'hide', ['bezirk']);");
     }
     if (Session::isPluginLoaded("mGemeinschaft")) {
         $gui->activateFeature("addCustomButton", $this, "tel", Gemeinschaft::getCallButton($this->A("tel")));
         $gui->activateFeature("addCustomButton", $this, "mobil", Gemeinschaft::getCallButton($this->A("mobil"), "mobile"));
     }
     $kat = new Kategorien();
     $kat->addAssocV3("type", "=", $displayMode != "" ? $displayMode : "1");
     $keys = $kat->getArrayWithKeys();
     $keys[] = "0";
     $values = $kat->getArrayWithValues();
     $values[] = "bitte auswählen";
     $gui->setOptions("KategorieID", $keys, $values);
     $gui->setType("bemerkung", "textarea");
     $gui->setLabel("KategorieID", "Kategorie");
     if ($AuftragID == -1) {
         $gui->setType("KategorieID", "select");
     } else {
         $gui->setType("KategorieID", "hidden");
         $gui->setType("bemerkung", "hidden");
         $gui->setType("tel", "hidden");
         $gui->setType("fax", "hidden");
         $gui->insertSpaceAbove("email");
         $gui->setType("homepage", "hidden");
         $gui->setType("exportToLDAP", "hidden");
         $gui->setType("mobil", "hidden");
     }
     switch ($displayMode) {
         case "auftragsAdresse":
             $gui->setJSEvent("onSave", "function() {\n\t\t\t\t\tcontentManager.loadFrame('contentLeft','Auftrag',{$this->A->AuftragID});\n\t\t\t\t\tcontentManager.loadFrame('contentRight','Auftraege');\n\t\t\t\t}");
             break;
         case "lieferAdresse":
             $this->A->type = "lieferAdresse";
             $gui->setJSEvent("onSave", "function() {\n\t\t\t\t\tcontentManager.loadFrame('contentRight','Auftraege');\n\t\t\t\t\tcontentManager.loadFrame('subframe','GRLBM',{$this->A->AuftragID});\n\t\t\t\t}");
             break;
     }
     Aspect::joinPoint("buttons", $this, __METHOD__, $OptTab);
     $gui->setStandardSaveButton($this, "Adressen");
     $gui->customize($this->customizer);
     return $forReload . $OptTab . $gui->getEditHTML();
 }