easy_pay_u_latam 0.1.15 → 0.1.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +15 -0
  3. data/app/assets/javascripts/easy_pay_u_latam/application.js +2 -0
  4. data/app/assets/javascripts/easy_pay_u_latam/subscriptions/angular-card.js +222 -0
  5. data/app/assets/javascripts/easy_pay_u_latam/subscriptions/application.js +8 -0
  6. data/app/assets/javascripts/easy_pay_u_latam/subscriptions/card.js +2533 -0
  7. data/app/assets/javascripts/easy_pay_u_latam/subscriptions/controllers/Main.js +158 -0
  8. data/app/assets/javascripts/easy_pay_u_latam/subscriptions/controllers/Subscriptions.js +368 -0
  9. data/app/assets/javascripts/easy_pay_u_latam/subscriptions/country-picker.min.js +1 -0
  10. data/app/assets/stylesheets/easy_pay_u_latam/styles.css +4 -0
  11. data/app/assets/stylesheets/easy_pay_u_latam/subscriptions/application.scss +1 -0
  12. data/app/assets/stylesheets/easy_pay_u_latam/subscriptions/card.css +1 -0
  13. data/app/controllers/easy_pay_u_latam/api/v1/pay_u_cards_controller.rb +80 -0
  14. data/app/controllers/easy_pay_u_latam/api/v1/pay_u_clients_controller.rb +18 -0
  15. data/app/controllers/easy_pay_u_latam/api/v1/pay_u_subscriptions_controller.rb +56 -0
  16. data/app/views/easy_pay_u_latam/pay_u_payments/_dashboard.html.erb +15 -0
  17. data/app/views/easy_pay_u_latam/pay_u_payments/cards/_form.html.erb +81 -0
  18. data/app/views/easy_pay_u_latam/pay_u_payments/cards/_list.html.erb +54 -0
  19. data/app/views/easy_pay_u_latam/pay_u_payments/plans/_list.html.erb +30 -0
  20. data/app/views/easy_pay_u_latam/pay_u_payments/subscriptions/_actual.html.erb +54 -0
  21. data/app/views/easy_pay_u_latam/pay_u_payments/{index.html.erb → subscriptions/_form.html.erb} +0 -0
  22. data/app/views/easy_pay_u_latam/pay_u_payments/subscriptions/_list.html.erb +49 -0
  23. data/app/views/easy_pay_u_latam/pay_u_payments/subscriptions/_none.html.erb +0 -0
  24. data/app/views/easy_pay_u_latam/pay_u_payments/subscriptions/_show.html.erb +0 -0
  25. data/config/routes.rb +5 -0
  26. data/lib/easy_pay_u_latam.rb +6 -0
  27. data/lib/easy_pay_u_latam/r_api.rb +47 -0
  28. data/lib/easy_pay_u_latam/r_api/card.rb +102 -0
  29. data/lib/easy_pay_u_latam/r_api/client.rb +28 -0
  30. data/lib/easy_pay_u_latam/r_api/invoice.rb +53 -0
  31. data/lib/easy_pay_u_latam/r_api/invoice_service.rb +48 -0
  32. data/lib/easy_pay_u_latam/r_api/plan.rb +71 -0
  33. data/lib/easy_pay_u_latam/r_api/request.rb +133 -0
  34. data/lib/easy_pay_u_latam/r_api/subscription.rb +41 -0
  35. data/lib/easy_pay_u_latam/r_api/subscription_interceptor.rb +51 -0
  36. data/lib/easy_pay_u_latam/r_api/subscription_service.rb +208 -0
  37. data/lib/easy_pay_u_latam/version.rb +1 -1
  38. metadata +83 -30
@@ -0,0 +1 @@
1
+ "use strict";angular.module("puigcerber.countryPicker",[]).provider("pvpCountries",function a(){var n=[{name:"Afghanistan",alpha2:"AF",alpha3:"AFG",numeric:"004"},{name:"Åland Islands",alpha2:"AX",alpha3:"ALA",numeric:"248"},{name:"Albania",alpha2:"AL",alpha3:"ALB",numeric:"008"},{name:"Algeria",alpha2:"DZ",alpha3:"DZA",numeric:"012"},{name:"American Samoa",alpha2:"AS",alpha3:"ASM",numeric:"016"},{name:"Andorra",alpha2:"AD",alpha3:"AND",numeric:"020"},{name:"Angola",alpha2:"AO",alpha3:"AGO",numeric:"024"},{name:"Anguilla",alpha2:"AI",alpha3:"AIA",numeric:"660"},{name:"Antarctica",alpha2:"AQ",alpha3:"ATA",numeric:"010"},{name:"Antigua and Barbuda",alpha2:"AG",alpha3:"ATG",numeric:"028"},{name:"Argentina",alpha2:"AR",alpha3:"ARG",numeric:"032"},{name:"Armenia",alpha2:"AM",alpha3:"ARM",numeric:"051"},{name:"Aruba",alpha2:"AW",alpha3:"ABW",numeric:"533"},{name:"Australia",alpha2:"AU",alpha3:"AUS",numeric:"036"},{name:"Austria",alpha2:"AT",alpha3:"AUT",numeric:"040"},{name:"Azerbaijan",alpha2:"AZ",alpha3:"AZE",numeric:"031"},{name:"Bahamas (the)",alpha2:"BS",alpha3:"BHS",numeric:"044"},{name:"Bahrain",alpha2:"BH",alpha3:"BHR",numeric:"048"},{name:"Bangladesh",alpha2:"BD",alpha3:"BGD",numeric:"050"},{name:"Barbados",alpha2:"BB",alpha3:"BRB",numeric:"052"},{name:"Belarus",alpha2:"BY",alpha3:"BLR",numeric:"112"},{name:"Belgium",alpha2:"BE",alpha3:"BEL",numeric:"056"},{name:"Belize",alpha2:"BZ",alpha3:"BLZ",numeric:"084"},{name:"Benin",alpha2:"BJ",alpha3:"BEN",numeric:"204"},{name:"Bermuda",alpha2:"BM",alpha3:"BMU",numeric:"060"},{name:"Bhutan",alpha2:"BT",alpha3:"BTN",numeric:"064"},{name:"Bolivia (Plurinational State of)",alpha2:"BO",alpha3:"BOL",numeric:"068"},{name:"Bonaire, Sint Eustatius and Saba",alpha2:"BQ",alpha3:"BES",numeric:"535"},{name:"Bosnia and Herzegovina",alpha2:"BA",alpha3:"BIH",numeric:"070"},{name:"Botswana",alpha2:"BW",alpha3:"BWA",numeric:"072"},{name:"Bouvet Island",alpha2:"BV",alpha3:"BVT",numeric:"074"},{name:"Brazil",alpha2:"BR",alpha3:"BRA",numeric:"076"},{name:"British Indian Ocean Territory (the)",alpha2:"IO",alpha3:"IOT",numeric:"086"},{name:"Brunei Darussalam",alpha2:"BN",alpha3:"BRN",numeric:"096"},{name:"Bulgaria",alpha2:"BG",alpha3:"BGR",numeric:"100"},{name:"Burkina Faso",alpha2:"BF",alpha3:"BFA",numeric:"854"},{name:"Burundi",alpha2:"BI",alpha3:"BDI",numeric:"108"},{name:"Cabo Verde",alpha2:"CV",alpha3:"CPV",numeric:"132"},{name:"Cambodia",alpha2:"KH",alpha3:"KHM",numeric:"116"},{name:"Cameroon",alpha2:"CM",alpha3:"CMR",numeric:"120"},{name:"Canada",alpha2:"CA",alpha3:"CAN",numeric:"124"},{name:"Cayman Islands (the)",alpha2:"KY",alpha3:"CYM",numeric:"136"},{name:"Central African Republic (the)",alpha2:"CF",alpha3:"CAF",numeric:"140"},{name:"Chad",alpha2:"TD",alpha3:"TCD",numeric:"148"},{name:"Chile",alpha2:"CL",alpha3:"CHL",numeric:"152"},{name:"China",alpha2:"CN",alpha3:"CHN",numeric:"156"},{name:"Christmas Island",alpha2:"CX",alpha3:"CXR",numeric:"162"},{name:"Cocos (Keeling) Islands (the)",alpha2:"CC",alpha3:"CCK",numeric:"166"},{name:"Colombia",alpha2:"CO",alpha3:"COL",numeric:"170"},{name:"Comoros (the)",alpha2:"KM",alpha3:"COM",numeric:"174"},{name:"Congo (the)",alpha2:"CG",alpha3:"COG",numeric:"178"},{name:"Congo (the Democratic Republic of the)",alpha2:"CD",alpha3:"COD",numeric:"180"},{name:"Cook Islands (the)",alpha2:"CK",alpha3:"COK",numeric:"184"},{name:"Costa Rica",alpha2:"CR",alpha3:"CRI",numeric:"188"},{name:"Côte d'Ivoire",alpha2:"CI",alpha3:"CIV",numeric:"384"},{name:"Croatia",alpha2:"HR",alpha3:"HRV",numeric:"191"},{name:"Cuba",alpha2:"CU",alpha3:"CUB",numeric:"192"},{name:"Curaçao",alpha2:"CW",alpha3:"CUW",numeric:"531"},{name:"Cyprus",alpha2:"CY",alpha3:"CYP",numeric:"196"},{name:"Czech Republic (the)",alpha2:"CZ",alpha3:"CZE",numeric:"203"},{name:"Denmark",alpha2:"DK",alpha3:"DNK",numeric:"208"},{name:"Djibouti",alpha2:"DJ",alpha3:"DJI",numeric:"262"},{name:"Dominica",alpha2:"DM",alpha3:"DMA",numeric:"212"},{name:"Dominican Republic (the)",alpha2:"DO",alpha3:"DOM",numeric:"214"},{name:"Ecuador",alpha2:"EC",alpha3:"ECU",numeric:"218"},{name:"Egypt",alpha2:"EG",alpha3:"EGY",numeric:"818"},{name:"El Salvador",alpha2:"SV",alpha3:"SLV",numeric:"222"},{name:"Equatorial Guinea",alpha2:"GQ",alpha3:"GNQ",numeric:"226"},{name:"Eritrea",alpha2:"ER",alpha3:"ERI",numeric:"232"},{name:"Estonia",alpha2:"EE",alpha3:"EST",numeric:"233"},{name:"Eswatini",alpha2:"SZ",alpha3:"SWZ",numeric:"748"},{name:"Ethiopia",alpha2:"ET",alpha3:"ETH",numeric:"231"},{name:"Falkland Islands (the) [Malvinas]",alpha2:"FK",alpha3:"FLK",numeric:"238"},{name:"Faroe Islands (the)",alpha2:"FO",alpha3:"FRO",numeric:"234"},{name:"Fiji",alpha2:"FJ",alpha3:"FJI",numeric:"242"},{name:"Finland",alpha2:"FI",alpha3:"FIN",numeric:"246"},{name:"France",alpha2:"FR",alpha3:"FRA",numeric:"250"},{name:"French Guiana",alpha2:"GF",alpha3:"GUF",numeric:"254"},{name:"French Polynesia",alpha2:"PF",alpha3:"PYF",numeric:"258"},{name:"French Southern Territories (the)",alpha2:"TF",alpha3:"ATF",numeric:"260"},{name:"Gabon",alpha2:"GA",alpha3:"GAB",numeric:"266"},{name:"Gambia (the)",alpha2:"GM",alpha3:"GMB",numeric:"270"},{name:"Georgia",alpha2:"GE",alpha3:"GEO",numeric:"268"},{name:"Germany",alpha2:"DE",alpha3:"DEU",numeric:"276"},{name:"Ghana",alpha2:"GH",alpha3:"GHA",numeric:"288"},{name:"Gibraltar",alpha2:"GI",alpha3:"GIB",numeric:"292"},{name:"Greece",alpha2:"GR",alpha3:"GRC",numeric:"300"},{name:"Greenland",alpha2:"GL",alpha3:"GRL",numeric:"304"},{name:"Grenada",alpha2:"GD",alpha3:"GRD",numeric:"308"},{name:"Guadeloupe",alpha2:"GP",alpha3:"GLP",numeric:"312"},{name:"Guam",alpha2:"GU",alpha3:"GUM",numeric:"316"},{name:"Guatemala",alpha2:"GT",alpha3:"GTM",numeric:"320"},{name:"Guernsey",alpha2:"GG",alpha3:"GGY",numeric:"831"},{name:"Guinea",alpha2:"GN",alpha3:"GIN",numeric:"324"},{name:"Guinea-Bissau",alpha2:"GW",alpha3:"GNB",numeric:"624"},{name:"Guyana",alpha2:"GY",alpha3:"GUY",numeric:"328"},{name:"Haiti",alpha2:"HT",alpha3:"HTI",numeric:"332"},{name:"Heard Island and McDonald Islands",alpha2:"HM",alpha3:"HMD",numeric:"334"},{name:"Holy See (the)",alpha2:"VA",alpha3:"VAT",numeric:"336"},{name:"Honduras",alpha2:"HN",alpha3:"HND",numeric:"340"},{name:"Hong Kong",alpha2:"HK",alpha3:"HKG",numeric:"344"},{name:"Hungary",alpha2:"HU",alpha3:"HUN",numeric:"348"},{name:"Iceland",alpha2:"IS",alpha3:"ISL",numeric:"352"},{name:"India",alpha2:"IN",alpha3:"IND",numeric:"356"},{name:"Indonesia",alpha2:"ID",alpha3:"IDN",numeric:"360"},{name:"Iran (Islamic Republic of)",alpha2:"IR",alpha3:"IRN",numeric:"364"},{name:"Iraq",alpha2:"IQ",alpha3:"IRQ",numeric:"368"},{name:"Ireland",alpha2:"IE",alpha3:"IRL",numeric:"372"},{name:"Isle of Man",alpha2:"IM",alpha3:"IMN",numeric:"833"},{name:"Israel",alpha2:"IL",alpha3:"ISR",numeric:"376"},{name:"Italy",alpha2:"IT",alpha3:"ITA",numeric:"380"},{name:"Jamaica",alpha2:"JM",alpha3:"JAM",numeric:"388"},{name:"Japan",alpha2:"JP",alpha3:"JPN",numeric:"392"},{name:"Jersey",alpha2:"JE",alpha3:"JEY",numeric:"832"},{name:"Jordan",alpha2:"JO",alpha3:"JOR",numeric:"400"},{name:"Kazakhstan",alpha2:"KZ",alpha3:"KAZ",numeric:"398"},{name:"Kenya",alpha2:"KE",alpha3:"KEN",numeric:"404"},{name:"Kiribati",alpha2:"KI",alpha3:"KIR",numeric:"296"},{name:"Korea (the Democratic People's Republic of)",alpha2:"KP",alpha3:"PRK",numeric:"408"},{name:"Korea (the Republic of)",alpha2:"KR",alpha3:"KOR",numeric:"410"},{name:"Kuwait",alpha2:"KW",alpha3:"KWT",numeric:"414"},{name:"Kyrgyzstan",alpha2:"KG",alpha3:"KGZ",numeric:"417"},{name:"Lao People's Democratic Republic (the)",alpha2:"LA",alpha3:"LAO",numeric:"418"},{name:"Latvia",alpha2:"LV",alpha3:"LVA",numeric:"428"},{name:"Lebanon",alpha2:"LB",alpha3:"LBN",numeric:"422"},{name:"Lesotho",alpha2:"LS",alpha3:"LSO",numeric:"426"},{name:"Liberia",alpha2:"LR",alpha3:"LBR",numeric:"430"},{name:"Libya",alpha2:"LY",alpha3:"LBY",numeric:"434"},{name:"Liechtenstein",alpha2:"LI",alpha3:"LIE",numeric:"438"},{name:"Lithuania",alpha2:"LT",alpha3:"LTU",numeric:"440"},{name:"Luxembourg",alpha2:"LU",alpha3:"LUX",numeric:"442"},{name:"Macao",alpha2:"MO",alpha3:"MAC",numeric:"446"},{name:"Macedonia (the former Yugoslav Republic of)",alpha2:"MK",alpha3:"MKD",numeric:"807"},{name:"Madagascar",alpha2:"MG",alpha3:"MDG",numeric:"450"},{name:"Malawi",alpha2:"MW",alpha3:"MWI",numeric:"454"},{name:"Malaysia",alpha2:"MY",alpha3:"MYS",numeric:"458"},{name:"Maldives",alpha2:"MV",alpha3:"MDV",numeric:"462"},{name:"Mali",alpha2:"ML",alpha3:"MLI",numeric:"466"},{name:"Malta",alpha2:"MT",alpha3:"MLT",numeric:"470"},{name:"Marshall Islands (the)",alpha2:"MH",alpha3:"MHL",numeric:"584"},{name:"Martinique",alpha2:"MQ",alpha3:"MTQ",numeric:"474"},{name:"Mauritania",alpha2:"MR",alpha3:"MRT",numeric:"478"},{name:"Mauritius",alpha2:"MU",alpha3:"MUS",numeric:"480"},{name:"Mayotte",alpha2:"YT",alpha3:"MYT",numeric:"175"},{name:"Mexico",alpha2:"MX",alpha3:"MEX",numeric:"484"},{name:"Micronesia (Federated States of)",alpha2:"FM",alpha3:"FSM",numeric:"583"},{name:"Moldova (the Republic of)",alpha2:"MD",alpha3:"MDA",numeric:"498"},{name:"Monaco",alpha2:"MC",alpha3:"MCO",numeric:"492"},{name:"Mongolia",alpha2:"MN",alpha3:"MNG",numeric:"496"},{name:"Montenegro",alpha2:"ME",alpha3:"MNE",numeric:"499"},{name:"Montserrat",alpha2:"MS",alpha3:"MSR",numeric:"500"},{name:"Morocco",alpha2:"MA",alpha3:"MAR",numeric:"504"},{name:"Mozambique",alpha2:"MZ",alpha3:"MOZ",numeric:"508"},{name:"Myanmar",alpha2:"MM",alpha3:"MMR",numeric:"104"},{name:"Namibia",alpha2:"NA",alpha3:"NAM",numeric:"516"},{name:"Nauru",alpha2:"NR",alpha3:"NRU",numeric:"520"},{name:"Nepal",alpha2:"NP",alpha3:"NPL",numeric:"524"},{name:"Netherlands (the)",alpha2:"NL",alpha3:"NLD",numeric:"528"},{name:"New Caledonia",alpha2:"NC",alpha3:"NCL",numeric:"540"},{name:"New Zealand",alpha2:"NZ",alpha3:"NZL",numeric:"554"},{name:"Nicaragua",alpha2:"NI",alpha3:"NIC",numeric:"558"},{name:"Niger (the)",alpha2:"NE",alpha3:"NER",numeric:"562"},{name:"Nigeria",alpha2:"NG",alpha3:"NGA",numeric:"566"},{name:"Niue",alpha2:"NU",alpha3:"NIU",numeric:"570"},{name:"Norfolk Island",alpha2:"NF",alpha3:"NFK",numeric:"574"},{name:"Northern Mariana Islands (the)",alpha2:"MP",alpha3:"MNP",numeric:"580"},{name:"Norway",alpha2:"NO",alpha3:"NOR",numeric:"578"},{name:"Oman",alpha2:"OM",alpha3:"OMN",numeric:"512"},{name:"Pakistan",alpha2:"PK",alpha3:"PAK",numeric:"586"},{name:"Palau",alpha2:"PW",alpha3:"PLW",numeric:"585"},{name:"Palestine, State of",alpha2:"PS",alpha3:"PSE",numeric:"275"},{name:"Panama",alpha2:"PA",alpha3:"PAN",numeric:"591"},{name:"Papua New Guinea",alpha2:"PG",alpha3:"PNG",numeric:"598"},{name:"Paraguay",alpha2:"PY",alpha3:"PRY",numeric:"600"},{name:"Peru",alpha2:"PE",alpha3:"PER",numeric:"604"},{name:"Philippines (the)",alpha2:"PH",alpha3:"PHL",numeric:"608"},{name:"Pitcairn",alpha2:"PN",alpha3:"PCN",numeric:"612"},{name:"Poland",alpha2:"PL",alpha3:"POL",numeric:"616"},{name:"Portugal",alpha2:"PT",alpha3:"PRT",numeric:"620"},{name:"Puerto Rico",alpha2:"PR",alpha3:"PRI",numeric:"630"},{name:"Qatar",alpha2:"QA",alpha3:"QAT",numeric:"634"},{name:"Réunion",alpha2:"RE",alpha3:"REU",numeric:"638"},{name:"Romania",alpha2:"RO",alpha3:"ROU",numeric:"642"},{name:"Russian Federation (the)",alpha2:"RU",alpha3:"RUS",numeric:"643"},{name:"Rwanda",alpha2:"RW",alpha3:"RWA",numeric:"646"},{name:"Saint Barthélemy",alpha2:"BL",alpha3:"BLM",numeric:"652"},{name:"Saint Helena, Ascension and Tristan da Cunha",alpha2:"SH",alpha3:"SHN",numeric:"654"},{name:"Saint Kitts and Nevis",alpha2:"KN",alpha3:"KNA",numeric:"659"},{name:"Saint Lucia",alpha2:"LC",alpha3:"LCA",numeric:"662"},{name:"Saint Martin (French part)",alpha2:"MF",alpha3:"MAF",numeric:"663"},{name:"Saint Pierre and Miquelon",alpha2:"PM",alpha3:"SPM",numeric:"666"},{name:"Saint Vincent and the Grenadines",alpha2:"VC",alpha3:"VCT",numeric:"670"},{name:"Samoa",alpha2:"WS",alpha3:"WSM",numeric:"882"},{name:"San Marino",alpha2:"SM",alpha3:"SMR",numeric:"674"},{name:"Sao Tome and Principe",alpha2:"ST",alpha3:"STP",numeric:"678"},{name:"Saudi Arabia",alpha2:"SA",alpha3:"SAU",numeric:"682"},{name:"Senegal",alpha2:"SN",alpha3:"SEN",numeric:"686"},{name:"Serbia",alpha2:"RS",alpha3:"SRB",numeric:"688"},{name:"Seychelles",alpha2:"SC",alpha3:"SYC",numeric:"690"},{name:"Sierra Leone",alpha2:"SL",alpha3:"SLE",numeric:"694"},{name:"Singapore",alpha2:"SG",alpha3:"SGP",numeric:"702"},{name:"Sint Maarten (Dutch part)",alpha2:"SX",alpha3:"SXM",numeric:"534"},{name:"Slovakia",alpha2:"SK",alpha3:"SVK",numeric:"703"},{name:"Slovenia",alpha2:"SI",alpha3:"SVN",numeric:"705"},{name:"Solomon Islands",alpha2:"SB",alpha3:"SLB",numeric:"090"},{name:"Somalia",alpha2:"SO",alpha3:"SOM",numeric:"706"},{name:"South Africa",alpha2:"ZA",alpha3:"ZAF",numeric:"710"},{name:"South Georgia and the South Sandwich Islands",alpha2:"GS",alpha3:"SGS",numeric:"239"},{name:"South Sudan ",alpha2:"SS",alpha3:"SSD",numeric:"728"},{name:"Spain",alpha2:"ES",alpha3:"ESP",numeric:"724"},{name:"Sri Lanka",alpha2:"LK",alpha3:"LKA",numeric:"144"},{name:"Sudan (the)",alpha2:"SD",alpha3:"SDN",numeric:"729"},{name:"Suriname",alpha2:"SR",alpha3:"SUR",numeric:"740"},{name:"Svalbard and Jan Mayen",alpha2:"SJ",alpha3:"SJM",numeric:"744"},{name:"Sweden",alpha2:"SE",alpha3:"SWE",numeric:"752"},{name:"Switzerland",alpha2:"CH",alpha3:"CHE",numeric:"756"},{name:"Syrian Arab Republic",alpha2:"SY",alpha3:"SYR",numeric:"760"},{name:"Taiwan (Province of China)",alpha2:"TW",alpha3:"TWN",numeric:"158"},{name:"Tajikistan",alpha2:"TJ",alpha3:"TJK",numeric:"762"},{name:"Tanzania, United Republic of",alpha2:"TZ",alpha3:"TZA",numeric:"834"},{name:"Thailand",alpha2:"TH",alpha3:"THA",numeric:"764"},{name:"Timor-Leste",alpha2:"TL",alpha3:"TLS",numeric:"626"},{name:"Togo",alpha2:"TG",alpha3:"TGO",numeric:"768"},{name:"Tokelau",alpha2:"TK",alpha3:"TKL",numeric:"772"},{name:"Tonga",alpha2:"TO",alpha3:"TON",numeric:"776"},{name:"Trinidad and Tobago",alpha2:"TT",alpha3:"TTO",numeric:"780"},{name:"Tunisia",alpha2:"TN",alpha3:"TUN",numeric:"788"},{name:"Turkey",alpha2:"TR",alpha3:"TUR",numeric:"792"},{name:"Turkmenistan",alpha2:"TM",alpha3:"TKM",numeric:"795"},{name:"Turks and Caicos Islands (the)",alpha2:"TC",alpha3:"TCA",numeric:"796"},{name:"Tuvalu",alpha2:"TV",alpha3:"TUV",numeric:"798"},{name:"Uganda",alpha2:"UG",alpha3:"UGA",numeric:"800"},{name:"Ukraine",alpha2:"UA",alpha3:"UKR",numeric:"804"},{name:"United Arab Emirates (the)",alpha2:"AE",alpha3:"ARE",numeric:"784"},{name:"United Kingdom of Great Britain and Northern Ireland (the)",alpha2:"GB",alpha3:"GBR",numeric:"826"},{name:"United States Minor Outlying Islands (the)",alpha2:"UM",alpha3:"UMI",numeric:"581"},{name:"United States of America (the)",alpha2:"US",alpha3:"USA",numeric:"840"},{name:"Uruguay",alpha2:"UY",alpha3:"URY",numeric:"858"},{name:"Uzbekistan",alpha2:"UZ",alpha3:"UZB",numeric:"860"},{name:"Vanuatu",alpha2:"VU",alpha3:"VUT",numeric:"548"},{name:"Venezuela (Bolivarian Republic of)",alpha2:"VE",alpha3:"VEN",numeric:"862"},{name:"Vietnam",alpha2:"VN",alpha3:"VNM",numeric:"704"},{name:"Virgin Islands (British)",alpha2:"VG",alpha3:"VGB",numeric:"092"},{name:"Virgin Islands (U.S.)",alpha2:"VI",alpha3:"VIR",numeric:"850"},{name:"Wallis and Futuna",alpha2:"WF",alpha3:"WLF",numeric:"876"},{name:"Western Sahara",alpha2:"EH",alpha3:"ESH",numeric:"732"},{name:"Yemen",alpha2:"YE",alpha3:"YEM",numeric:"887"},{name:"Zambia",alpha2:"ZM",alpha3:"ZMB",numeric:"894"},{name:"Zimbabwe",alpha2:"ZW",alpha3:"ZWE",numeric:"716"}];return{setCountries:function(a){n=a},$get:function(){return{getCountries:function(){return n}}}}}).directive("pvpCountryPicker",["$compile",function(a){var n=1;return{priority:n,terminal:true,controller:["$scope","pvpCountries",function(a,n){a.countries=n.getCountries()}],compile:function(e,l){if(!l.pvpCountryPicker){l.pvpCountryPicker="alpha2"}var h="country."+l.pvpCountryPicker+" as country.name for country in countries";l.$set("ngOptions",h);return function e(l,h){a(h,null,n)(l)}},restrict:"A"}}]);
@@ -2,3 +2,7 @@
2
2
  background: none;
3
3
  border: none;
4
4
  }
5
+
6
+ .border-green{
7
+ border: 2px forestgreen solid;
8
+ }
@@ -0,0 +1 @@
1
+ @import "easy_pay_u_latam/subscriptions/card";
@@ -0,0 +1 @@
1
+ .jp-card.jp-card-safari.jp-card-identified .jp-card-front:before,.jp-card.jp-card-safari.jp-card-identified .jp-card-back:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}.jp-card.jp-card-ie-10.jp-card-flipped,.jp-card.jp-card-ie-11.jp-card-flipped{-webkit-transform:0deg;-moz-transform:0deg;-ms-transform:0deg;-o-transform:0deg;transform:0deg}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-front,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-front{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back:after{left:18%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-cvc,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-cvc{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg);left:5%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny{left:84%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny:after{left:-480%;-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card.jp-card-ie-10.jp-card-amex .jp-card-back,.jp-card.jp-card-ie-11.jp-card-amex .jp-card-back{display:none}.jp-card-logo{height:36px;width:60px;font-style:italic}.jp-card-logo,.jp-card-logo:before,.jp-card-logo:after{box-sizing:border-box}.jp-card-logo.jp-card-amex{text-transform:uppercase;font-size:4px;font-weight:bold;color:white;background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);border:1px solid #EEE}.jp-card-logo.jp-card-amex:before,.jp-card-logo.jp-card-amex:after{width:28px;display:block;position:absolute;left:16px}.jp-card-logo.jp-card-amex:before{height:28px;content:"american";top:3px;text-align:left;padding-left:2px;padding-top:11px;background:#267AC3}.jp-card-logo.jp-card-amex:after{content:"express";bottom:11px;text-align:right;padding-right:2px}.jp-card.jp-card-amex.jp-card-flipped{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:before,.jp-card.jp-card-amex.jp-card-identified .jp-card-back:before{background-color:#108168}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-logo.jp-card-amex{opacity:1}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-cvc{visibility:visible}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:after{opacity:1}.jp-card-logo.jp-card-discover{background:#f60;color:#111;text-transform:uppercase;font-style:normal;font-weight:bold;font-size:10px;text-align:center;overflow:hidden;z-index:1;padding-top:9px;letter-spacing:.03em;border:1px solid #EEE}.jp-card-logo.jp-card-discover:before,.jp-card-logo.jp-card-discover:after{content:" ";display:block;position:absolute}.jp-card-logo.jp-card-discover:before{background:white;width:200px;height:200px;border-radius:200px;bottom:-5%;right:-80%;z-index:-1}.jp-card-logo.jp-card-discover:after{width:8px;height:8px;border-radius:4px;top:10px;left:27px;background-color:#f60;background-image:-webkit-radial-gradient(#f60,#fff);background-image:radial-gradient( #f60,#fff);content:"network";font-size:4px;line-height:24px;text-indent:-7px}.jp-card .jp-card-front .jp-card-logo.jp-card-discover{right:12%;top:18%}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:before,.jp-card.jp-card-discover.jp-card-identified .jp-card-back:before{background-color:#86B8CF}.jp-card.jp-card-discover.jp-card-identified .jp-card-logo.jp-card-discover{opacity:1}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:after{-webkit-transition:400ms;-moz-transition:400ms;transition:400ms;content:" ";display:block;background-color:#f60;background-image:-webkit-linear-gradient(#f60,#ffa366,#f60);background-image:linear-gradient(#f60,#ffa366,#f60);height:50px;width:50px;border-radius:25px;position:absolute;left:100%;top:15%;margin-left:-25px;box-shadow:inset 1px 1px 3px 1px rgba(0,0,0,0.5)}.jp-card-logo.jp-card-visa{text-transform:uppercase;color:white;text-align:center;font-weight:bold;font-size:24px;line-height:18px;margin-top:5px}.jp-card-logo.jp-card-visa:before,.jp-card-logo.jp-card-visa:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visa:before{position:absolute;left:-4px;width:0;height:0;border-style:solid;border-width:0 12px 6px 0;border-color:transparent #ffffff transparent transparent}.jp-card.jp-card-visa.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visa.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visa.jp-card-identified .jp-card-logo.jp-card-visa{opacity:1;box-shadow:none}.jp-card-logo.jp-card-visaelectron{background:white;text-transform:uppercase;color:#1A1876;text-align:center;font-weight:bold;font-size:15px;line-height:18px}.jp-card-logo.jp-card-visaelectron:before,.jp-card-logo.jp-card-visaelectron:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visaelectron:before{background:#1A1876}.jp-card-logo.jp-card-visaelectron:after{background:#E79800}.jp-card-logo.jp-card-visaelectron .elec{float:right;font-family:arial;font-size:9px;margin-right:1px;margin-top:-5px;text-transform:none}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-logo.jp-card-visaelectron{opacity:1}.jp-card-logo.jp-card-mastercard{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:9px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-mastercard:before,.jp-card-logo.jp-card-mastercard:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-mastercard:before{left:0;background:#EB001B;z-index:-1;opacity:0.9}.jp-card-logo.jp-card-mastercard:after{right:0;background:#FF5F00;z-index:-2}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front .jp-card-logo.jp-card-mastercard,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back .jp-card-logo.jp-card-mastercard{box-shadow:none}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front:before,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back:before{background-color:#0061A8}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-logo.jp-card-mastercard{opacity:1}.jp-card-logo.jp-card-maestro{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:14px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-maestro:before,.jp-card-logo.jp-card-maestro:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-maestro:before{left:0;background:#EB001B;z-index:-2}.jp-card-logo.jp-card-maestro:after{right:0;background:#00A2E5;z-index:-1;opacity:0.8}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front .jp-card-logo.jp-card-maestro,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back .jp-card-logo.jp-card-maestro{box-shadow:none}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front:before,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back:before{background-color:#0B2C5F}.jp-card.jp-card-maestro.jp-card-identified .jp-card-logo.jp-card-maestro{opacity:1}.jp-card-logo.jp-card-dankort{width:60px;height:36px;padding:3px;border-radius:8px;border:#000 1px solid;background-color:#fff}.jp-card-logo.jp-card-dankort .dk{position:relative;width:100%;height:100%;overflow:hidden}.jp-card-logo.jp-card-dankort .dk:before{background-color:#ED1C24;content:'';position:absolute;width:100%;height:100%;display:block;border-radius:6px}.jp-card-logo.jp-card-dankort .dk:after{content:'';position:absolute;top:50%;margin-top:-7.7px;right:0;width:0;height:0;border-style:solid;border-width:7px 7px 10px 0;border-color:transparent #ED1C24 transparent transparent;z-index:1}.jp-card-logo.jp-card-dankort .d,.jp-card-logo.jp-card-dankort .k{position:absolute;top:50%;width:50%;display:block;height:15.4px;margin-top:-7.7px;background:white}.jp-card-logo.jp-card-dankort .d{left:0;border-radius:0 8px 10px 0}.jp-card-logo.jp-card-dankort .d:before{content:'';position:absolute;top:50%;left:50%;display:block;background:#ED1C24;border-radius:2px 4px 6px 0px;height:5px;width:7px;margin:-3px 0 0 -4px}.jp-card-logo.jp-card-dankort .k{right:0}.jp-card-logo.jp-card-dankort .k:before,.jp-card-logo.jp-card-dankort .k:after{content:'';position:absolute;right:50%;width:0;height:0;border-style:solid;margin-right:-1px}.jp-card-logo.jp-card-dankort .k:before{top:0;border-width:8px 5px 0 0;border-color:#ED1C24 transparent transparent transparent}.jp-card-logo.jp-card-dankort .k:after{bottom:0;border-width:0 5px 8px 0;border-color:transparent transparent #ED1C24 transparent}.jp-card.jp-card-dankort.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dankort.jp-card-identified .jp-card-back:before{background-color:#0055C7}.jp-card.jp-card-dankort.jp-card-identified .jp-card-logo.jp-card-dankort{opacity:1}.jp-card-logo.jp-card-elo{height:50px;width:50px;border-radius:100%;background:black;color:white;text-align:center;text-transform:lowercase;font-size:21px;font-style:normal;letter-spacing:1px;font-weight:bold;padding-top:13px}.jp-card-logo.jp-card-elo .e,.jp-card-logo.jp-card-elo .l,.jp-card-logo.jp-card-elo .o{display:inline-block;position:relative}.jp-card-logo.jp-card-elo .e{-webkit-transform:rotate(-15deg);-moz-transform:rotate(-15deg);-ms-transform:rotate(-15deg);-o-transform:rotate(-15deg);transform:rotate(-15deg)}.jp-card-logo.jp-card-elo .o{position:relative;display:inline-block;width:12px;height:12px;right:0;top:7px;border-radius:100%;background-image:-webkit-linear-gradient( #ff0 50%,red 50%);background-image:linear-gradient( #ff0 50%,red 50%);-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);text-indent:-9999px}.jp-card-logo.jp-card-elo .o:before{content:"";position:absolute;width:49%;height:49%;background:black;border-radius:100%;text-indent:-99999px;top:25%;left:25%}.jp-card.jp-card-elo.jp-card-identified .jp-card-front:before,.jp-card.jp-card-elo.jp-card-identified .jp-card-back:before{background-color:#6F6969}.jp-card.jp-card-elo.jp-card-identified .jp-card-logo.jp-card-elo{opacity:1}.jp-card-logo.jp-card-jcb{border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px;background-color:white;font-style:normal;color:white;width:50px;padding:2px 0 0 2px}.jp-card-logo.jp-card-jcb>div{width:15px;margin-right:1px;display:inline-block;text-align:center;text-shadow:1px 1px rgba(0,0,0,0.6);border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px}.jp-card-logo.jp-card-jcb>div:before,.jp-card-logo.jp-card-jcb>div:after{content:" ";display:block;height:8px}.jp-card-logo.jp-card-jcb>div.j{background-color:#000063;background-image:-webkit-linear-gradient(left, #000063,#008cff);background-image:linear-gradient(to right,#000063,#008cff)}.jp-card-logo.jp-card-jcb>div.c{background-color:#630000;background-image:-webkit-linear-gradient(left, #630000,#ff008d);background-image:linear-gradient(to right,#630000,#ff008d)}.jp-card-logo.jp-card-jcb>div.b{background-color:#006300;background-image:-webkit-linear-gradient(left, #006300,lime);background-image:linear-gradient(to right,#006300,lime)}.jp-card.jp-card-jcb.jp-card-identified .jp-card-front:before,.jp-card.jp-card-jcb.jp-card-identified .jp-card-back:before{background-color:#CB8000}.jp-card.jp-card-jcb.jp-card-identified .jp-card-logo.jp-card-jcb{opacity:1;box-shadow:none}.jp-card-logo.jp-card-dinersclub{font-family:serif;height:40px;width:100px;color:white;font-size:17px;font-style:normal;letter-spacing:1px}.jp-card-logo.jp-card-dinersclub::before,.jp-card-logo.jp-card-dinersclub::after{display:block;position:relative}.jp-card-logo.jp-card-dinersclub::before{content:'Diners Club'}.jp-card-logo.jp-card-dinersclub::after{content:'International';text-transform:uppercase;font-size:0.6em}.jp-card.jp-card-dinersclub .jp-card-front .jp-card-logo{box-shadow:none !important}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-back:before{background-color:#999}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-logo.jp-card-dinersclub{opacity:1}.jp-card-container{-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px;width:350px;max-width:100%;height:200px;margin:auto;z-index:1;position:relative}.jp-card{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1;position:relative;width:100%;height:100%;min-width:315px;border-radius:10px;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear}.jp-card>*,.jp-card>*:before,.jp-card>*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}.jp-card.jp-card-flipped{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-front,.jp-card .jp-card-back{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;border-radius:10px;background:#DDD}.jp-card .jp-card-front:before,.jp-card .jp-card-back:before{content:" ";display:block;position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;border-radius:10px;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease}.jp-card .jp-card-front:after,.jp-card .jp-card-back:after{content:" ";display:block}.jp-card .jp-card-front .jp-card-display,.jp-card .jp-card-back .jp-card-display{color:#fff;font-weight:normal;opacity:0.5;-webkit-transition:opacity 400ms linear;-moz-transition:opacity 400ms linear;transition:opacity 400ms linear}.jp-card .jp-card-front .jp-card-display.jp-card-focused,.jp-card .jp-card-back .jp-card-display.jp-card-focused{opacity:1;font-weight:700}.jp-card .jp-card-front .jp-card-cvc,.jp-card .jp-card-back .jp-card-cvc{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:14px}.jp-card .jp-card-front .jp-card-shiny,.jp-card .jp-card-back .jp-card-shiny{width:50px;height:35px;border-radius:5px;background:#CCC;position:relative}.jp-card .jp-card-front .jp-card-shiny:before,.jp-card .jp-card-back .jp-card-shiny:before{content:" ";display:block;width:70%;height:60%;border-top-right-radius:5px;border-bottom-right-radius:5px;background:#d9d9d9;position:absolute;top:20%}.jp-card .jp-card-front .jp-card-logo{position:absolute;opacity:0;right:5%;top:8%;-webkit-transition:400ms;-moz-transition:400ms;transition:400ms}.jp-card .jp-card-front .jp-card-lower{width:80%;position:absolute;left:10%;bottom:30px}@media only screen and (max-width: 480px){.jp-card .jp-card-front .jp-card-lower{width:90%;left:5%}}.jp-card .jp-card-front .jp-card-lower .jp-card-cvc{visibility:hidden;float:right;position:relative;bottom:5px}.jp-card .jp-card-front .jp-card-lower .jp-card-number{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:24px;clear:both;margin-bottom:30px}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;letter-spacing:0em;position:relative;float:right;width:25%}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before,.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:7px;white-space:pre;display:block;opacity:.5}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before{content:attr(data-before);margin-bottom:2px;font-size:7px;text-transform:uppercase}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after{position:absolute;content:attr(data-after);text-align:right;right:100%;margin-right:5px;margin-top:2px;bottom:0}.jp-card .jp-card-front .jp-card-lower .jp-card-name{text-transform:uppercase;font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:20px;max-height:45px;position:absolute;bottom:0;width:190px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:horizontal;overflow:hidden;text-overflow:ellipsis}.jp-card .jp-card-back{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-back .jp-card-bar{background-color:#444;background-image:-webkit-linear-gradient(#444,#333);background-image:linear-gradient(#444,#333);width:100%;height:20%;position:absolute;top:10%}.jp-card .jp-card-back:after{content:" ";display:block;background-color:#fff;background-image:-webkit-linear-gradient(#fff,#fff);background-image:linear-gradient(#fff,#fff);width:80%;height:16%;position:absolute;top:40%;left:2%}.jp-card .jp-card-back .jp-card-cvc{position:absolute;top:40%;left:85%;-webkit-transition-delay:600ms;-moz-transition-delay:600ms;transition-delay:600ms}.jp-card .jp-card-back .jp-card-shiny{position:absolute;top:66%;left:2%}.jp-card .jp-card-back .jp-card-shiny:after{content:"This card has been issued by Jesse Pollak and is licensed for anyone to use anywhere for free. It comes with no warranty. For support issues, please visit: github.com/jessepollak/card.";position:absolute;left:120%;top:5%;color:white;font-size:7px;width:230px;opacity:.5}.jp-card.jp-card-identified{box-shadow:0 0 20px rgba(0,0,0,0.3)}.jp-card.jp-card-identified .jp-card-front,.jp-card.jp-card-identified .jp-card-back{background-color:#000;background-color:rgba(0,0,0,0.5)}.jp-card.jp-card-identified .jp-card-front:before,.jp-card.jp-card-identified .jp-card-back:before{-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease;background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);opacity:1}.jp-card.jp-card-identified .jp-card-front .jp-card-logo,.jp-card.jp-card-identified .jp-card-back .jp-card-logo{box-shadow:0 0 0 2px rgba(255,255,255,0.3)}.jp-card.jp-card-identified.no-radial-gradient .jp-card-front:before,.jp-card.jp-card-identified.no-radial-gradient .jp-card-back:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}
@@ -0,0 +1,80 @@
1
+ module EasyPayULatam
2
+ class Api::V1::PayUCardsController < ApiController
3
+
4
+ acts_as_token_authentication_handler_for User
5
+
6
+ def index
7
+ client = RApi::Client.new current_user.pay_u_costumer_id
8
+ cards = RApi::Card.new client
9
+ unless cards.response["creditCardList"].blank?
10
+ if cards.response["creditCardList"].count == 1
11
+ if current_user.payu_default_card = cards.response["creditCardList"][0]["token"]
12
+ current_user.update_attribute :payu_default_card, cards.response["creditCardList"][0]["token"]
13
+ end
14
+ end
15
+ render status: 200, json: {cards: cards.response["creditCardList"]}
16
+ else
17
+ render status: 200, json: {cards: []}
18
+ end
19
+ end
20
+
21
+ def create
22
+ client = RApi::Client.new current_user.pay_u_costumer_id
23
+ cards = RApi::Card.new client
24
+ cards.params = params[:card].as_json
25
+ cards.params["number"] = cards.params["number"].gsub(" ","")
26
+ cards.params["expMonth"] = cards.params["expiry"].split(" / ")[0]
27
+ cards.params["expYear"] = cards.params["expiry"].split(" / ")[1]
28
+ cards.params.delete "expiry"
29
+ cards.params.delete "cvc"
30
+ response = cards.create!
31
+
32
+ unless cards.response.blank?
33
+ render status: 200, json: {message: "ok"}
34
+ else
35
+ msg = cards.error["errorList"].blank? ? cards.error["description"] : cards.error["errorList"].to_sentence
36
+ render status: 411, json: {message: msg }
37
+ end
38
+ end
39
+
40
+ def update
41
+ client = RApi::Client.new current_user.pay_u_costumer_id
42
+ current_user.update_attribute :payu_default_card, params[:id]
43
+ #validat si tiene subscripciones y actualizar subscricion
44
+
45
+ subs = RApi::Subscription.new client
46
+ unless subs.response.blank?
47
+ unless subs.response["creditCardList"].empty?
48
+ res = subs.update({"creditCardToken": params[:id]})
49
+
50
+ unless subs.response.blank?
51
+ render status: 200, json: {message: "ok"}
52
+ else
53
+ msg = subs.error["errorList"].blank? ? subs.error["description"] : subs.error["errorList"].to_sentence
54
+ render status: 411, json: {message: msg }
55
+ end
56
+ else
57
+ render status: 200, json: {message: "ok"}
58
+ end
59
+ else
60
+ render status: 200, json: {message: "ok"}
61
+ end
62
+ end
63
+
64
+ def destroy
65
+ client = RApi::Client.new current_user.pay_u_costumer_id
66
+ cards = RApi::Card.new client
67
+ unless cards.response.blank?
68
+ unless cards.response["creditCardList"].empty?
69
+ res = cards.delete params[:id]
70
+
71
+ render status: 200, json: {message: res["description"]}
72
+ else
73
+ render status: 411, json: {message: "No tienes tarjetas para borrar"}
74
+ end
75
+ else
76
+ render status: 411, json: {message: "No tienes tarjetas para borrar"}
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,18 @@
1
+ module EasyPayULatam
2
+ class Api::V1::PayUClientsController < ApiController
3
+
4
+ acts_as_token_authentication_handler_for User
5
+
6
+ def create
7
+ client = RApi::Client.new current_user.pay_u_costumer_id
8
+ is_new = false
9
+ if client.response.nil?
10
+ is_new = true
11
+ client.params = { 'fullName' => current_user.name, 'email' => current_user.email }
12
+ res = client.create!
13
+ current_user.update_attribute :pay_u_costumer_id, res["id"]
14
+ end
15
+ render status: 200, json: {is_new: is_new}
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,56 @@
1
+ module EasyPayULatam
2
+ class Api::V1::PayUSubscriptionsController < ApiController
3
+
4
+ acts_as_token_authentication_handler_for User
5
+
6
+ def index
7
+ client = RApi::Client.new current_user.pay_u_costumer_id
8
+ subs = RApi::Subscription.new client
9
+
10
+ unless subs.response["recurringBillList"].blank?
11
+ render status: 200, json: {subscriptions: subs.response["recurringBillList"].last(30)}
12
+ else
13
+ render status: 200, json: {subscriptions: []}
14
+ end
15
+ end
16
+
17
+ def create
18
+ client = RApi::Client.new current_user.pay_u_costumer_id
19
+ subs = RApi::Subscription.new client
20
+ subs.params = params[:subscription].as_json
21
+ subs.params["customer"]["id"] = current_user.pay_u_costumer_id
22
+ subs.params["customer"]["creditCards"][0]["token"] = current_user.payu_default_card
23
+ response = subs.create!
24
+ binding.pry
25
+ unless subs.response.blank?
26
+ render status: 200, json: {message: "ok"}
27
+ else
28
+ msg = subs.error["errorList"].blank? ? subs.error["description"] : subs.error["errorList"].to_sentence
29
+ render status: 411, json: {message: msg }
30
+ end
31
+ end
32
+
33
+ def update
34
+ # client = RApi::Client.new current_user.pay_u_costumer_id
35
+ # current_user.update_attribute :payu_default_card, params[:id]
36
+ # #validat si tiene subscripciones y actualizar subscricion
37
+ render status: 200, json: {message: "ok, done nothing"}
38
+ end
39
+
40
+ def destroy
41
+ client = RApi::Client.new current_user.pay_u_costumer_id
42
+ subs = RApi::Subscription.new client
43
+ unless subs.response.blank?
44
+ unless subs.response["creditCardList"].empty?
45
+ res = subs.delete params[:id]
46
+
47
+ render status: 200, json: {message: res["description"]}
48
+ else
49
+ render status: 411, json: {message: "No tienes subscripciones para cancelar"}
50
+ end
51
+ else
52
+ render status: 411, json: {message: "No tienes subscripciones para cancelar"}
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,15 @@
1
+ <%= stylesheet_link_tag "easy_pay_u_latam/subscriptions/application", media: "all" %>
2
+ <%= javascript_include_tag "easy_pay_u_latam/subscriptions/application" %>
3
+ <div id="easy_pay_u_latam">
4
+ <div ng-controller="SubscriptionsController as ssCtrl" ng-init="ssCtrl.init('<%= current_user.email %>', '<%= current_user.authentication_token %>', <%= Plan.actives.select(:id, :name, :value_month, :description, :payu_plan_code, :payu_plan_id).to_json%>)">
5
+ <%= render "easy_pay_u_latam/pay_u_payments/subscriptions/none" %>
6
+ <%= render "easy_pay_u_latam/pay_u_payments/plans/list" %>
7
+ <%= render "easy_pay_u_latam/pay_u_payments/subscriptions/actual" %>
8
+ <%= render "easy_pay_u_latam/pay_u_payments/cards/list" %>
9
+ <%= render "easy_pay_u_latam/pay_u_payments/subscriptions/list" %>
10
+ <%= render "easy_pay_u_latam/pay_u_payments/subscriptions/form" %>
11
+ </div>
12
+ </div>
13
+ <script>
14
+ EasyPayULatam.init();
15
+ </script>
@@ -0,0 +1,81 @@
1
+ <!-- <div class="row"> -->
2
+ <div class="col-md-4 col-md-offset-6">
3
+ <div class="btn-group-vertical" style="margin-bottom: 10px;">
4
+ <button type="button" class="btn btn-block secundary-btn pull-right" style="font-size: 16px; margin-right: 15px" data-toggle="modal" data-target="#new-credit-card-modal">
5
+ <span>Nueva tarjeta</span>
6
+ </button>
7
+ </div>
8
+ </div>
9
+ <!-- </div> -->
10
+
11
+ <div class="modal fade" id="new-credit-card-modal" tabindex="-1" role="dialog" aria-labelledby="new-credit-card-modalLabel">
12
+ <div class="modal-dialog" role="document">
13
+ <div class="modal-content">
14
+ <div class="modal-header">
15
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
16
+ <h4 class="modal-title" id="new-credit-card-modalLabel">Formulario de tarjeta de crédito</h4>
17
+ </div>
18
+ <div class="modal-body">
19
+ <div id="card-container" style="margin-top: 40px; margin-bottom: 80px;"></div>
20
+ <form action="#" name="cardForm" data-card data-width="500" data-card-container="#card-container" data-placeholders="ssCtrl.cardPlaceholders" data-options="ssCtrl.cardOptions" data-messages="ssCtrl.cardMessages">
21
+
22
+ <div class="row" style="margin-top: 20px; padding-left: 40px; padding-right: 40px;">
23
+ <div class="col-md-6">
24
+ <input class="form-control input-lg" placeholder="Nombre" type="text" name="CardName" card-name data-ng-model="ssCtrl.card.name" ng-required="true"/>
25
+ </div>
26
+ <div class="col-md-6">
27
+ <input class="form-control input-lg" placeholder="Documento" type="text" name="Document" data-ng-model="ssCtrl.card.document" ng-required="true"/>
28
+ </div>
29
+ </div>
30
+ <div class="row" style="margin-top: 20px; padding-left: 40px; padding-right: 40px;">
31
+ <div class="col-md-4">
32
+ <input class="form-control input-lg" placeholder="Número de tarjeta" type="text" name="CardNumber" card-number data-ng-model="ssCtrl.card.number" ng-required="true"/>
33
+ </div>
34
+ <div class="col-md-4">
35
+ <input class="form-control input-lg" placeholder="MM / YYYY" type="text" name="CardExpiry" card-expiry data-ng-model="ssCtrl.card.expiry" ng-required="true"/>
36
+ </div>
37
+ <div class="col-md-4">
38
+ <input class="form-control input-lg" placeholder="CVC" type="text" name="CardCvc" card-cvc data-ng-model="ssCtrl.card.cvc" ng-required="true"/>
39
+ </div>
40
+ </div>
41
+ <div class="row" style="margin-top: 20px; padding-left: 40px; padding-right: 40px;">
42
+ <div class="col-md-4">
43
+ <select class="form-control input-lg" name="CardCountry" ng-model="ssCtrl.card.address.country" pvp-country-picker ng-required="true"></select>
44
+ </div>
45
+ <div class="col-md-4">
46
+ <input class="form-control input-lg" placeholder="Estado/Departamento" type="text" name="CardState" data-ng-model="ssCtrl.card.address.state" ng-required="true"/>
47
+ </div>
48
+ <div class="col-md-4">
49
+ <input class="form-control input-lg" placeholder="Ciudad" type="text" name="CardCity" data-ng-model="ssCtrl.card.address.city" ng-required="true"/>
50
+ </div>
51
+ </div>
52
+ <div class="row" style="margin-top: 20px; padding-left: 40px; padding-right: 40px;">
53
+ <div class="col-md-4">
54
+ <input class="form-control input-lg" placeholder="Dirección" type="text" name="CardAddress" data-ng-model="ssCtrl.card.address.line1" ng-required="true"/>
55
+ </div>
56
+ <div class="col-md-4">
57
+ <input class="form-control input-lg" placeholder="Teléfono" type="text" name="CardPhone" data-ng-model="ssCtrl.card.address.phone" ng-required="true"/>
58
+ </div>
59
+ <div class="col-md-4">
60
+ <button type="button" class="btn btn-primary btn-lg btn-block" ng-click="ssCtrl.ClearCard()">
61
+ Limpiar
62
+ </button>
63
+ </div>
64
+ </div>
65
+
66
+ </form>
67
+ </div>
68
+ <div class="modal-footer">
69
+ <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
70
+ <button type="button" class="btn btn-primary" ng-click="ssCtrl.CreateCards()" ng-disabled="cardForm.$invalid || ssCtrl.card_loading == true">
71
+ <span ng-show="ssCtrl.card_loading == false">
72
+ Guardar
73
+ </span>
74
+ <span ng-hide="ssCtrl.card_loading == false">
75
+ <i class="fas fa-circle-notch fa-spin vertical-middle"></i>
76
+ </span>
77
+ </button>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </div>
@@ -0,0 +1,54 @@
1
+ <div class="my-profile-info-text" ng-init="ssCtrl.user_default_card = '<%= current_user.payu_default_card %>'">
2
+ <h2 class="h4">
3
+ <i class="fas fa-credit-card icon-full-blue"></i> Medios de pago
4
+ </h2>
5
+ <br/>
6
+ <div class="row">
7
+ <div class="col-md-4 col-md-offset-8">
8
+ <%= render "easy_pay_u_latam/pay_u_payments/cards/form" %>
9
+ </div>
10
+ <div class="col-md-12">
11
+ <div class="alert alert-warning" ng-if="ssCtrl.cards.length == 0">
12
+ <strong>Información: </strong> No tienes medio de pagos creados, da click en <b>Nueva tarjeta</b> para crearlos.
13
+ </div>
14
+ <table class="table" ng-if="ssCtrl.cards.length > 0">
15
+ <tr>
16
+ <th>
17
+ Número de tajeta
18
+ </th>
19
+ <th>
20
+ Nombre
21
+ </th>
22
+ <th class="text-center">
23
+ Tipo
24
+ </th>
25
+ <th class="text-center">
26
+ Acciones
27
+ </th>
28
+ </tr>
29
+ <tr ng-repeat="card in ssCtrl.cards">
30
+ <td>
31
+ {{card.number}}
32
+ <span class="label label-primary" ng-if="card.token == ssCtrl.user_default_card">Primaria</span>
33
+ </td>
34
+ <td>
35
+ {{card.name}}
36
+ </td>
37
+ <td class="text-center">
38
+ {{card.type}}
39
+ </td>
40
+ <td class="text-center">
41
+ <button type="button" class="text-btn pull-right" ng-click="ssCtrl.DeleteCard(card)">
42
+ <i class="far fa-trash-alt"></i>
43
+ Eliminar
44
+ </button>
45
+ <button type="button" class="text-btn pull-right" ng-click="ssCtrl.MarkAsPrimaryCard(card)" ng-if="card.token != ssCtrl.user_default_card">
46
+ <i class="far fa-star"></i>
47
+ Marcar como primaria
48
+ </button>
49
+ </td>
50
+ </tr>
51
+ </table>
52
+ </div>
53
+ </div>
54
+ </div>
@@ -0,0 +1,30 @@
1
+ <div class="my-profile-info-text" ng-show="ssCtrl.selected_plan == null">
2
+ <h2 class="h4">
3
+ <i class="fas fa-medal icon-full-blue"></i> Planes
4
+ </h2>
5
+ <br/>
6
+ <div class="row">
7
+ <div class="col-md-6 col-sm-6 col-xs-12" ng-class="{'border-green': plan.id == ssCtrl.selected_plan.id}" ng-repeat="plan in ssCtrl.plans">
8
+ <section class="box-price">
9
+ <div class="header-price">
10
+ <h3>{{plan.name}}</h3>
11
+ </div>
12
+ <div class="content-price">
13
+ <h2 class="text-center">
14
+ {{plan.value_month | myCurrency}}
15
+ </h2><br/>
16
+ <ul style="margin-top: 28px" ng-bind-html="plan.description">
17
+ </ul>
18
+ <button type="button" class="btn-blue text-center" ng-click="ssCtrl.SelectPlan(plan)">
19
+ <span ng-hide="ssCtrl.actual_plan.id == plan.id">
20
+ Seleccionar plan
21
+ </span>
22
+ <span ng-show="ssCtrl.actual_plan.id == plan.id">
23
+ Plan Actual
24
+ </span>
25
+ </button>
26
+ </div>
27
+ </section>
28
+ </div>
29
+ </div>
30
+ </div>
@@ -0,0 +1,54 @@
1
+ <div class="my-profile-info-text">
2
+ <h2 class="h4">
3
+ <i class="fas fa-medal icon-full-blue"></i> Membresía y facturación
4
+ </h2>
5
+ <br/>
6
+ <div class="row">
7
+ <div class="col-md-8">
8
+ <p class="h6">
9
+ Plan actual:
10
+ <span ng-if="ssCtrl.subscription_loading == false">
11
+ {{ssCtrl.actual_plan.name}}
12
+ </span>
13
+ <span ng-if="ssCtrl.subscription_loading == true">
14
+ <i class="fas fa-circle-notch fa-spin vertical-middle"></i>
15
+ </span>
16
+ </p>
17
+ <p class="h6">
18
+ Fecha de inicio:
19
+ </p>
20
+ <p class="h6">
21
+ Fecha de corte:
22
+ </p>
23
+ <p class="h6">
24
+ Medio de pago: **** **** **** 7289
25
+ </p>
26
+ <p class="h6" ng-if="ssCtrl.selected_plan != null">
27
+ <span class="label label-info" style="font-size: 14px;">
28
+ Nuevo plan seleccionado: {{ssCtrl.selected_plan.name}}
29
+ </span>
30
+ <br>
31
+ <br>
32
+ <button type="button" class="btn secundary-btn" style="font-size: 16px; margin-right: 15px" ng-click="ssCtrl.SelectPlan(ssCtrl.selected_plan)">
33
+ <span>Pagar</span>
34
+ </button>
35
+ </p>
36
+ </div>
37
+ <div class="col-md-4">
38
+ <div class="btn-group-vertical">
39
+ <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px" ng-click="ssCtrl.ChangePlan();">
40
+ <span>Cambiar plan</span>
41
+ </button>
42
+ <!-- <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px">
43
+ <span>Actualizar información de pagos</span>
44
+ </button>
45
+ <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px">
46
+ <span>Detalles de facturación</span>
47
+ </button> -->
48
+ <button type="button" class="btn secundary-btn pull-right" style="font-size: 16px; margin-right: 15px" ng-if="ssCtrl.actual_plan != null" ng-click="ssCtrl.DeleteSubscription();">
49
+ <span>Cancelar membresía</span>
50
+ </button>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
@@ -0,0 +1,49 @@
1
+ <div class="my-profile-info-text">
2
+ <h2 class="h4">
3
+ <i class="fas fa-credit-card icon-full-blue"></i> Histórico de facturación
4
+ </h2>
5
+ <br/>
6
+ <div class="row">
7
+ <div class="col-md-12">
8
+ <div class="alert alert-warning" ng-if="ssCtrl.subscriptions.length == 0">
9
+ <strong>Información: </strong> Aún no tienes facturas para mostrar.
10
+ </div>
11
+ <table class="table" ng-if="ssCtrl.subscriptions.length > 0">
12
+ <tr>
13
+ <th>
14
+ Orden Id
15
+ </th>
16
+ <th class="text-center">
17
+ Estado
18
+ </th>
19
+ <th class="text-right">
20
+ Precio
21
+ </th>
22
+ <th class="text-center">
23
+ Moneda
24
+ </th>
25
+ <th class="text-center">
26
+ Fecha de cobro
27
+ </th>
28
+ </tr>
29
+ <tr ng-repeat="sub in ssCtrl.subscriptions">
30
+ <td>
31
+ {{sub.orderId}} {{sub.subscriptionId}}
32
+ </td>
33
+ <td class="text-center">
34
+ {{sub.state}}
35
+ </td>
36
+ <td class="text-right">
37
+ {{sub.amount | myCurrency}}
38
+ </td>
39
+ <td class="text-center">
40
+ {{sub.currency}}
41
+ </td>
42
+ <td class="text-center">
43
+ {{ssCtrl.IntToDate(sub.dateCharge)}}
44
+ </td>
45
+ </tr>
46
+ </table>
47
+ </div>
48
+ </div>
49
+ </div>