#Region Companion
Sub GetBA As Object
Dim jo As JavaObject
Dim cls As String = Me
cls = cls.SubString("class ".Length)
jo.InitializeStatic(cls)
Return jo.GetField("processBA")
End Sub
Sub StartActivityForResult(CompanionIntent As Intent)
Dim jo As JavaObject = GetBA
Companion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "Companion", Null)
jo.RunMethod("startActivityForResult", Array As Object(Companion, CompanionIntent))
End Sub
Sub Companion_Event(MethodName As String, Args() As Object) As Object
Dim ResultCode As Int
Dim ResultIntent As Intent
ResultCode = Args(0)
ResultIntent = Args(1)
Return Null
End Sub
Sub IsCompanionAvailible As Boolean
If IsIQPDCompanionApplicationInstalled = True AND IsPayexCompanionServiceInstalled = True Then
ISMP.IsAvailible = True
Return True
Else
ISMP.IsAvailible = False
Return False
End If
End Sub
Sub IsIQPDCompanionApplicationInstalled As Boolean
Dim InstalledPackages As PackageManager
InstalledPackages.GetInstalledPackages()
Dim Packages As List
Packages = InstalledPackages.GetInstalledPackages
For i = 0 To Packages.Size - 1
If Packages.Get(i) = "se.iqpd.checkout.companion" Then Return True
Next
Return False
End Sub
Sub IsPayexCompanionServiceInstalled As Boolean
Dim InstalledPackages As PackageManager
InstalledPackages.GetInstalledPackages()
Dim Packages As List
Packages = InstalledPackages.GetInstalledPackages
For i = 0 To Packages.Size - 1
If Packages.Get(i) = "com.ingenico.pclservice" Then Return True
Next
Return False
End Sub
Sub ISMPCompanionDoPurchase
If IsCompanionAvailible = False Then
Return
End If
If IsNumber(SubTotal_Double-SubTotal_Discount_Double) = False Then Return
If CodeSnippets.IsNegative(SubTotal_Double-SubTotal_Discount_Double) = True Then Return
Dim ISMP_Intent As Intent
Dim InstalledPackages As PackageManager
ISMP_Intent = InstalledPackages.GetApplicationIntent("se.iqpd.checkout.companion")
ISMP_Intent.PutExtra("JobId","31271")
ISMP_Intent.PutExtra("TransactionType","Purchase")
ISMP_Intent.PutExtra("Amount",NumberFormat2(SubTotal_Double-SubTotal_Discount_Double,1,2,2,False))
StartActivityForResult(ISMP_Intent)
End Sub
Sub ISMPCompanionDoCashback
If IsCompanionAvailible = False Then
Return
End If
If IsNumber(SubTotal_Double-SubTotal_Discount_Double) = False Then Return
If IsNumber(SubTotal_Cashback_Double) = False Then Return
If CodeSnippets.IsNegative(SubTotal_Double-SubTotal_Discount_Double) = True Then Return
If CodeSnippets.IsNegative(SubTotal_Cashback_Double) = True Then Return
Dim ISMP_Intent As Intent
Dim InstalledPackages As PackageManager
ISMP_Intent = InstalledPackages.GetApplicationIntent("se.iqpd.checkout.companion")
ISMP_Intent.PutExtra("JobId","0")
ISMP_Intent.PutExtra("TransactionType","Cashback")
ISMP_Intent.PutExtra("Amount",NumberFormat2(SubTotal_Double-SubTotal_Discount_Double,1,2,2,False))
ISMP_Intent.PutExtra("ExtraAmount",NumberFormat2(SubTotal_Cashback_Double,1,2,2,False))
StartActivityForResult(ISMP_Intent)
End Sub
Sub ISMPCompanionDoRefund
If IsCompanionAvailible = False Then
Return
End If
If IsNumber(CodeSnippets.ConvertToPositive(SubTotal_Double)) = False Then Return
Dim ISMP_Intent As Intent
Dim InstalledPackages As PackageManager
ISMP_Intent = InstalledPackages.GetApplicationIntent("se.iqpd.checkout.companion")
ISMP_Intent.PutExtra("JobId","0")
ISMP_Intent.PutExtra("TransactionType","Refund")
ISMP_Intent.PutExtra("Amount",CodeSnippets.ConvertToPositive(SubTotal_Double))
StartActivityForResult(ISMP_Intent)
End Sub
Sub ISMPCompanionDoReversal
If IsCompanionAvailible = False Then
Return
End If
Dim ISMP_Intent As Intent
Dim InstalledPackages As PackageManager
ISMP_Intent = InstalledPackages.GetApplicationIntent("se.iqpd.checkout.companion")
ISMP_Intent.PutExtra("JobId","0")
ISMP_Intent.PutExtra("TransactionType","Reversal")
StartActivityForResult(ISMP_Intent)
End Sub
#End Region