easy_pay_u_latam 0.1.15 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>