#! /usr/bin/env python
#
# Support module generated by PAGE version 4.5
# In conjunction with Tcl version 8.6
#    Sep 10, 2015 05:40:31 PM

import sys

#Pipe to call ruby
from subprocess import Popen, PIPE, STDOUT, check_output

#path to Python SDK
sys.path = ['..\lib'] + sys.path
print sys.path

# from todopagoconnector import TodoPagoConnector


try:
    from Tkinter import *
except ImportError:
    from tkinter import *

try:
    import ttk
    py3 = 0
except ImportError:
    import tkinter.ttk as ttk
    py3 = 1

def set_Tk_var():
    # These are Tk variables used passed to Tkinter and must be
    # defined before the widgets using them are created.
    
    #Configuration
    global configAuthorizationWSDL, configEndpoint, configAuthorization, configOperationsWSDL, configPaymentMethodsWSDL

    configAuthorizationWSDL = StringVar()
    configEndpoint = StringVar()
    configAuthorization = StringVar()
    

    #SendAuthorizeRequest
    global sarSession, sarSecurity, sarEncodingMethod, sarMerchant, sarOperationId, sarCurrencyCode, sarAmount, sarURL_OK, sarURL_ERROR, sarEmailCliente, sarAnswer

    sarSession = StringVar()
    sarSecurity = StringVar()
    sarEncodingMethod = StringVar()
    sarMerchant = StringVar()
    sarOperationId = StringVar()
    sarCurrencyCode = StringVar()
    sarAmount = StringVar()
    sarURL_OK = StringVar()
    sarURL_ERROR = StringVar()
    sarEmailCliente = StringVar()
    sarAnswer = StringVar()
    
    
    #GetAuthorizeAnswer
    global gaaSecurity, gaaMerchant, gaaRequestKey, gaaAnswerKey, gaaAnswer
    
    gaaSecurity = StringVar()
    gaaMerchant = StringVar()
    gaaRequestKey = StringVar()
    gaaAnswerKey = StringVar()
    gaaAnswer = StringVar()

    #GetStatus
    global gsMerchant, gsOperationId, gsAnswer
    
    gsMerchant = StringVar()
    gsOperationId = StringVar()
    gsAnswer = StringVar()

    #Fraud Control
    global CSBTCITY, CSBTEMAIL, CSBTFIRSTNAME, CSBTPOSTALCODE, CSBTSTREET1, CSBTIPADDRESS, CSPTGRANDTOTALAMOUNT, CSMDD6, CSMDD8, CSMDD10, CSBTCOUNTRY, CSBTPHONENUMBER, CSBTLASTNAME, CSBTSTATE, CSBTCUSTOMERID, CSBTSTREET2, CSPTCURRENCY, CSMDD7, CSMDD9, CSMDD11
    CSBTCITY = StringVar()
    CSBTEMAIL = StringVar()
    CSBTFIRSTNAME = StringVar()
    CSBTPOSTALCODE = StringVar()
    CSBTSTREET1 = StringVar()
    CSBTIPADDRESS = StringVar()
    CSPTGRANDTOTALAMOUNT = StringVar()
    CSMDD6 = StringVar()
    CSMDD8 = StringVar()
    CSMDD10 = StringVar()
    CSBTCOUNTRY = StringVar()
    CSBTPHONENUMBER = StringVar()
    CSBTLASTNAME = StringVar()
    CSBTSTATE = StringVar()
    CSBTSTREET2 = StringVar()
    CSBTCUSTOMERID = StringVar()
    CSPTCURRENCY = StringVar()
    CSMDD7 = StringVar()
    CSMDD9 = StringVar()
    CSMDD11 = StringVar()


    global isRetail
    isRetail = StringVar()

    #Freud Control Retail
    global CSSTCITY, CSSTEMAIL, CSSTFIRSTNAME, CSSTPOSTALCODE, CSSTSTREET1, CSSTCOUNTRY, CSSTPHONENUMBER, CSSTLASTNAME, CSSTSTATE, CSSTSTREET2, CSITPRODUCTCODE, CSITPRODUCTNAME, CSITTOTALAMOUNT, CSITUNITPRICE, CSITPRODUCTDESCRIPTION, CSITPRODUCTSKU, CSITQUANTITY, CSMDD12, CSMDD14, CSMDD16, CSMDD13, CSMDD15

    CSSTCITY = StringVar()
    CSSTEMAIL = StringVar()
    CSSTFIRSTNAME = StringVar()
    CSSTPOSTALCODE = StringVar()
    CSSTSTREET1 = StringVar()
    CSSTCOUNTRY = StringVar()
    CSSTPHONENUMBER = StringVar()
    CSSTLASTNAME = StringVar()
    CSSTSTATE = StringVar()
    CSSTSTREET2 = StringVar()
    CSITPRODUCTCODE = StringVar()
    CSITPRODUCTNAME = StringVar()
    CSITTOTALAMOUNT = StringVar()
    CSITUNITPRICE = StringVar()
    CSITPRODUCTDESCRIPTION = StringVar()
    CSITPRODUCTSKU = StringVar()
    CSITQUANTITY = StringVar()
    CSMDD12 = StringVar()
    CSMDD14 = StringVar()
    CSMDD16 = StringVar()
    CSMDD13 = StringVar()
    CSMDD15 = StringVar()

def InitConfigurationValues():
    #Configuration
    configAuthorizationWSDL.set('https://developers.todopago.com.ar/services/t/1.1/Authorize?wsdl')
    configEndpoint.set('https://developers.todopago.com.ar/')
    configAuthorization.set('PRISMA f3d8b72c94ab4a06be2ef7c95490f7d3')

def InitSendAuthorizeRequestValues():
    #SendAuthorizeRequest
    sarSession.set('ABCDEF-1234-12221-FDE1-00000200')
    sarSecurity.set('1234567890ABCDEF1234567890ABCDEF')
    sarEncodingMethod.set('XML')
    sarMerchant.set('2153')
    sarOperationId.set('8000')
    sarCurrencyCode.set('032')
    sarAmount.set('1.00')
    sarURL_OK.set('http://someurl.com/ok')
    sarURL_ERROR.set('http://someurl.com/error')
    sarEmailCliente.set('some@someurl.com')
    sarAnswer.set('result after connection')

def InitFraudControlValues():
    #fraud control
    CSBTCITY.set('Villa General Belgrano')
    CSBTEMAIL.set('some@someurl.com')
    CSBTFIRSTNAME.set('Cosme')
    CSBTPOSTALCODE.set('1010')
    CSBTSTREET1.set('Some 10')
    CSBTIPADDRESS.set('192.0.0.4')
    CSPTGRANDTOTALAMOUNT.set('10.01')
    CSMDD6.set('')
    CSMDD8.set('')
    CSMDD10.set('')
    CSBTCOUNTRY.set('AR')
    CSBTPHONENUMBER.set('541160913988')
    CSBTLASTNAME.set('Fulanito')
    CSBTSTATE.set('B')
    CSBTSTREET2.set('')
    CSBTCUSTOMERID.set('453458')
    CSPTCURRENCY.set('ARS')
    CSMDD7.set('')
    CSMDD9.set('')
    CSMDD11.set('')
    
    #Retail (Fraud Control)
    #isRetail.set(value)
    CSSTCITY.set('Villa General Belgrano')
    CSSTEMAIL.set('some@someurl.com')
    CSSTFIRSTNAME.set('Cosme')
    CSSTPOSTALCODE.set('1010')
    CSSTSTREET1.set('Some 10')
    CSSTCOUNTRY.set('AR')
    CSSTPHONENUMBER.set('541160913988')
    CSSTLASTNAME.set('Fulanito')
    CSSTSTATE.set('B')
    CSSTSTREET2.set('')
    CSITPRODUCTCODE.set('electronic_good')
    CSITPRODUCTNAME.set('Python Test')
    CSITTOTALAMOUNT.set('10.01')
    CSITUNITPRICE.set('10.01')
    CSITPRODUCTDESCRIPTION.set('Python SDK Test Purchase')
    CSITPRODUCTSKU.set('SKU1234')
    CSITQUANTITY.set('1')
    CSMDD12.set('')
    CSMDD14.set('')
    CSMDD16.set('')
    CSMDD13.set('')
    CSMDD15.set('')

def InitGetAuthorizeAnswerValues():
    #GetAuthorize Answer
    gaaSecurity.set('1234567890ABCDEF1234567890ABCDEF')
    gaaMerchant.set('2153')
    gaaRequestKey.set('710268a7-7688-c8bf-68c9-430107e6b9da')
    gaaAnswerKey.set('693ca9cc-c940-06a4-8d96-1ab0d66f3ee6')
    gaaAnswer.set('GetAthorizedAnswer Result')
    
def InitGetStatusValues():
    #getStatus
    gsMerchant.set('2153')
    gsOperationId.set('02')
    gsAnswer.set('GetStatus Result')
    
    
def InitSampleValues():
    InitConfigurationValues()
    InitSendAuthorizeRequestValues()
    InitFraudControlValues()
    InitGetAuthorizeAnswerValues()
    InitGetStatusValues()
    
def GetAuthorizeAnswerCommand():
    print('--------------------------GAA--------------------------')
    method = 'gaa.js'
    out = check_output(['node',  method, configAuthorization.get(), configAuthorizationWSDL.get(), configEndpoint.get(), gaaSecurity.get(), gaaMerchant.get(), gaaRequestKey.get(), gaaAnswerKey.get()])
    print out
    gaaAnswer.set(out)
    
def SendAuthorizeRequestCommand():
    print('--------------------------SAR--------------------------')
    method = 'sar.js'
    out = check_output(['node',  method, configAuthorization.get(), configAuthorizationWSDL.get(), configEndpoint.get(), sarMerchant.get(), sarEncodingMethod.get(), sarSecurity.get(), sarURL_OK.get(), sarURL_ERROR.get(), sarEmailCliente.get(), sarSession.get(), sarMerchant.get(), sarOperationId.get(), sarCurrencyCode.get(), sarAmount.get(), CSBTCITY.get(), CSBTEMAIL.get(), CSBTFIRSTNAME.get(), CSBTPOSTALCODE.get(), CSBTSTREET1.get(), CSBTIPADDRESS.get(), CSPTGRANDTOTALAMOUNT.get(), CSMDD6.get(), CSMDD8.get(), CSMDD10.get(), CSBTCOUNTRY.get(), CSBTPHONENUMBER.get(), CSBTLASTNAME.get(), CSBTSTATE.get(), CSBTSTREET2.get(), CSBTCUSTOMERID.get(), CSPTCURRENCY.get(), CSMDD7.get(), CSMDD9.get(), CSMDD11.get(), CSSTCITY.get(), CSSTEMAIL.get(), CSSTFIRSTNAME.get(), CSSTPOSTALCODE.get(), CSSTSTREET1.get(), CSSTCOUNTRY.get(), CSSTPHONENUMBER.get(), CSSTLASTNAME.get(), CSSTSTATE.get(), CSSTSTREET2.get(), CSITPRODUCTCODE.get(), CSITPRODUCTNAME.get(), CSITTOTALAMOUNT.get(), CSITUNITPRICE.get(), CSITPRODUCTDESCRIPTION.get(), CSITPRODUCTSKU.get(), CSITQUANTITY.get(), CSMDD12.get(), CSMDD14.get(), CSMDD16.get(), CSMDD13.get(), CSMDD15.get()])
    print out
    sarAnswer.set(out)

def getStatusCommand():
    print('--------------------------GS--------------------------')
    method = 'gs.js'
    out = check_output(['node',  method, configAuthorization.get(), configAuthorizationWSDL.get(), configEndpoint.get(), gsMerchant.get(), gsOperationId.get()])
    print out
    gsAnswer.set(out)
    
     
def init(top, gui, arg=None):
    global w, top_level, root
    w = gui
    top_level = top
    root = top
    
    #Declare a Global tpc = TodoPagoConnector
    

def destroy_window():
    # Function which closes the window.
    global top_level
    top_level.destroy()
    top_level = None


