home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / ArgentCompta / Bankperfect / bp.exe / Scripts / Rib / rib.py < prev   
Text File  |  2005-10-25  |  3KB  |  75 lines

  1. import BP
  2.  
  3. def key(banque, agence, compte):
  4.   try:
  5.     s = ""
  6.     l = "12345678912324567892345678"
  7.     for c in compte.upper():
  8.       if c.isalpha(): s += l[ord(c) - 65]
  9.       else: s += c
  10.  
  11.     i = (8 * long(banque)) % 97 + 194 - (15 * long(agence)) % 97 - (3 * long(s)) % 97
  12.     i = i % 97
  13.     if i == 0: i = 97
  14.     if i < 10: return "0%d" %i
  15.     return "%d" %i
  16.   except:
  17.     return ""
  18.  
  19. i = BP.AccountCurrent()
  20. bank = BP.AccountBankName[i]
  21. bic = BP.AccountBIC[i]
  22. iban = BP.AccountIBAN[i]
  23. logo = BP.AccountBankLogo[i]
  24. guic = BP.AccountBranchName[i]
  25. adr = BP.AccountBranchAddress[i]
  26. n1, n2 = BP.AccountBranchNumber[i].split(" ")
  27. n3 = BP.AccountNumber[i]
  28.  
  29. f = CreateComponent("TForm", None)
  30. f.Font.Name = "Tahoma"
  31. f.SetProps(Position="poMainFormCenter", Width=400, Height=180, Caption="Impression de RIB", BorderStyle="bsSingle", BorderIcons=["biSystemMenu"])
  32. CreateComponent("TLabel", f).SetProps(Parent=f, Left=30, Top=30, Caption="Nom du titulaire du compte :")
  33. CreateComponent("TLabel", f).SetProps(Parent=f, Left=30, Top=60, Caption="ClΘ RIB :")
  34. E1 = CreateComponent("TEdit", f)
  35. E1.SetProps(Parent=f, Left=180, Top=25, Width=180)
  36. E2 = CreateComponent("TEdit", f)
  37. E2.SetProps(Parent=f, Left=180, Top=55, Width=180, Text=key(n1, n2, n3))
  38. CreateComponent("TButton", f).SetProps(Parent=f, Left=100, Top=100, Width=90, Height=25, Caption="OK", ModalResult=1, Default=1)
  39. CreateComponent("TButton", f).SetProps(Parent=f, Left=200, Top=100, Width=90, Height=25, Caption="Annuler", ModalResult=2, Cancel=1)
  40. f.ShowModal()
  41.  
  42. pdf = """FontName Helvetica-Bold
  43. %s
  44. TextOut 700;%d;RelevΘ d'IdentitΘ Bancaire
  45. FontName Helvetica
  46. TextOut 200;%d;Banque
  47. TextOut 700;%d;:  %s
  48. TextOut 200;%d;Guichet
  49. TextOut 700;%d;:  %s
  50. TextOut 200;%d;N░ de compte
  51. TextOut 700;%d;:  %s
  52. TextOut 200;%d;ClΘ RIB
  53. TextOut 700;%d;:  %s
  54. TextOut 200;%d;Nom du titulaire
  55. TextOut 700;%d;:  %s
  56. TextOut 200;%d;Domiciliation
  57. TextOut 700;%d;:  %s
  58. TextOut 200;%d;N░ IBAN (international)
  59. TextOut 700;%d;:  %s
  60. TextOut 200;%d;Bank Identification Code
  61. TextOut 700;%d;:  %s
  62. """
  63.  
  64.  
  65. def printRIB(Y):
  66.   if logo == "": s = ""
  67.   else: s = "DrawImage 300;200;200;%d;%s" %(Y, logo.replace("\\", "\\\\"))
  68.   return pdf %(s, Y+80, Y+300, Y+300, n1, Y+350, Y+350, n2, Y+400, Y+400, n3, Y+450, Y+450, E2.Text, Y+500, Y+500, E1.Text, Y+550, Y+550, "%s, %s" %(bank, adr), Y+600, Y+600, iban, Y+650, Y+650, bic)
  69.  
  70. if f.ModalResult == 1:
  71.   line = "DrawLine 100;%d;2000;%d\n"
  72.   path = BP.BankPerfectExePath() + 'bankperfect_rib.pdf'
  73.   code = "Create Reτu;%s;2100;2970\nFontSize 40\n%s%s%s%s%s" %(path.replace("\\", "\\\\"), printRIB(200), line %(1000,1000), printRIB(1100), line %(1900,1900), printRIB(2000))
  74.   BP.GetURL("pdf:%s" %code)
  75.   BP.ShellExecute("open", path, "", 1)