Advertisement
realreef

Untitled

Apr 26th, 2019
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 33.86 KB | None | 0 0
  1. package webauto;
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.PrintStream;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.PreparedStatement;
  10. import java.sql.ResultSet;
  11. import java.sql.Statement;
  12. import java.text.DateFormat;
  13. import java.text.NumberFormat;
  14. import java.text.SimpleDateFormat;
  15. import java.util.Calendar;
  16. import java.util.Iterator;
  17. import java.util.List;
  18. import java.util.Properties;
  19. import java.util.Random;
  20. import java.util.Scanner;
  21. import org.openqa.selenium.By;
  22. import org.openqa.selenium.Dimension;
  23. import org.openqa.selenium.JavascriptExecutor;
  24. import org.openqa.selenium.WebDriver;
  25. import org.openqa.selenium.WebDriver.Options;
  26. import org.openqa.selenium.WebDriver.Window;
  27. import org.openqa.selenium.WebElement;
  28. import org.openqa.selenium.chrome.ChromeDriver;
  29. import org.openqa.selenium.support.ui.ExpectedCondition;
  30. import org.openqa.selenium.support.ui.Select;
  31. import org.openqa.selenium.support.ui.WebDriverWait;
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. public class WebAuto
  43. {
  44.   public WebAuto() {}
  45.  
  46.   private static WebDriver driver = null;
  47.   private static Connection conmysql = null;
  48.   private static final DateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
  49.  
  50.  
  51.   private static void logdata(String s) { System.out.println(s); }
  52.  
  53.   public static void waitForPageLoaded() {
  54.     ExpectedCondition<Boolean> expectation = new ExpectedCondition()
  55.     {
  56.       public Boolean apply(WebDriver driver) {
  57.         return Boolean.valueOf(((JavascriptExecutor)driver).executeScript("return document.readyState", new Object[0]).toString().equals("complete"));
  58.       }
  59.     };
  60.     try {
  61.       Thread.sleep(1000L);
  62.       WebDriverWait wait = new WebDriverWait(driver, 30L);
  63.       wait.until(expectation);
  64.     } catch (Throwable error) {
  65.       logdata(error.getMessage());
  66.     }
  67.   }
  68.  
  69.  
  70.  
  71.   public static void main(String[] args)
  72.   {
  73.     String DB_HOST = "";
  74.     String DB_USER = "";
  75.     String DB_PASS = "";
  76.     String DB_PORT = "";
  77.     String DB_NAME = "";
  78.     String ID_TERMINAL = "";
  79.     String DIGIPOS_USER = "";
  80.     String DIGIPOS_PASS = "";
  81.     String DIGIPOS_PIN = "";
  82.     String DIGIPOS_PAKET = "";
  83.     String DIGIPOS_PRODUK = "";
  84.     Integer DIGIPOS_MAX_PRICE = Integer.valueOf(0);
  85.     String JENIS_TRANSAKSI = "";
  86.     Properties prop = new Properties();
  87.     InputStream input = null;
  88.     Integer AUTO_SUKSES = Integer.valueOf(1);
  89.     Integer MAX_LOS = Integer.valueOf(60);
  90.     Integer REFRESH_WEB = Integer.valueOf(120);
  91.    
  92.     Integer HARGA_INT = Integer.valueOf(0);
  93.     String PAKET_BULK = "";
  94.     float hargabeli = 0.0F;
  95.    
  96.     try
  97.     {
  98.       input = new FileInputStream("digipos.properties");
  99.       prop.load(input);
  100.       DB_HOST = prop.getProperty("db.host");
  101.       DB_NAME = prop.getProperty("db.name");
  102.       DB_USER = prop.getProperty("db.user");
  103.       DB_PASS = prop.getProperty("db.pass");
  104.       DB_PORT = prop.getProperty("db.port");
  105.       DIGIPOS_USER = prop.getProperty("digipos.user");
  106.       DIGIPOS_PASS = prop.getProperty("digipos.pass");
  107.       DIGIPOS_PIN = prop.getProperty("digipos.pin");
  108.       ID_TERMINAL = prop.getProperty("idterminal");
  109.       AUTO_SUKSES = Integer.valueOf(Integer.parseInt(prop.getProperty("autosukses")));
  110.       MAX_LOS = Integer.valueOf(Integer.parseInt(prop.getProperty("maxlos")));
  111.       try
  112.       {
  113.         Class.forName("com.mysql.jdbc.Driver");
  114.         conmysql = DriverManager.getConnection("jdbc:mysql://" + DB_HOST + ":" + DB_PORT + "/" + DB_NAME, DB_USER, DB_PASS);
  115.         Statement stmt = conmysql.createStatement();
  116.         ResultSet localResultSet1 = stmt.executeQuery("select * from masterreseller");
  117.  
  118.       }
  119.       catch (Exception e)
  120.       {
  121.  
  122.         System.out.println(e);
  123.         System.out.println("Cek Configurasi database username atau password");
  124.         System.exit(0);
  125.       }
  126.     }
  127.     catch (IOException e)
  128.     {
  129.       e.printStackTrace();
  130.       System.exit(0);
  131.     }
  132.    
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.     System.out.println("Starting WebBrowser....");
  140.     String os = System.getProperty("os.name").toLowerCase();
  141.     System.out.println(os);
  142.     if (os.contains("mac"))
  143.     {
  144.       System.setProperty("webdriver.gecko.drive", System.getProperty("user.dir") + "/chromedriver");
  145.     } else {
  146.       System.setProperty("webdriver.gecko.drive", System.getProperty("user.dir") + "\\geckodriver.exe");
  147.     }
  148.    
  149.     driver = new ChromeDriver();
  150.     driver.manage().window().setSize(new Dimension(400, 800));
  151.     driver.get("https://digipos.telkomsel.com/outapp/");
  152.    
  153.     System.out.println("wait pageloading...");
  154.     waitForPageLoaded();
  155.     System.out.println("wait ok");
  156.    
  157.     if (isReqireLogin()) {
  158.       System.err.println("Silahkan Login...");
  159.     } else {
  160.       System.err.println("Not Requere Login");
  161.     }
  162.    
  163.  
  164.     driver.findElement(By.id("u")).sendKeys(new CharSequence[] { DIGIPOS_USER });
  165.     driver.findElement(By.id("p")).sendKeys(new CharSequence[] { DIGIPOS_PASS });
  166.     driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[1]/button")).click();
  167.    
  168.  
  169.  
  170.     System.out.println("Enter your OTP: ");
  171.     Scanner scannerOtp = new Scanner(System.in);
  172.     String _otp = scannerOtp.nextLine();
  173.     System.out.println("Your OTP is " + _otp);
  174.     driver.findElement(By.name("pinOtp")).sendKeys(new CharSequence[] { _otp });
  175.     driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div/div/button[2]")).click();
  176.     waitForPageLoaded();
  177.    
  178.  
  179.     System.out.println("wait pageloading...");
  180.     waitForPageLoaded();
  181.     System.out.println("wait ok");
  182.     String _msisdnx = getMSISDN();
  183.    
  184.  
  185.     waitForPageLoaded();
  186.     driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div/div/div[2]/div/div/div/div[1]/a[3]")).click();
  187.     waitForPageLoaded();
  188.    
  189.     try
  190.     {
  191.       for (;;)
  192.       {
  193.         REFRESH_WEB = Integer.valueOf(REFRESH_WEB.intValue() - 1);
  194.         Statement stmt = conmysql.createStatement();
  195.         ResultSet trxbin = stmt.executeQuery("select * from transaksibin where idterminal=" + ID_TERMINAL + " limit 1");
  196.        
  197.         while (trxbin.next()) {
  198.           REFRESH_WEB = Integer.valueOf(120);
  199.           String _idproduk = trxbin.getString("IDPRODUK");
  200.           JENIS_TRANSAKSI = trxbin.getString("JENISTRANSAKSI");
  201.           String _idtrxbin = trxbin.getString("idtransaksi");
  202.           String _tujuan = trxbin.getString("Tujuan");
  203.           String _kodeinbox = trxbin.getString("KodeInboxCenter");
  204.           String _idprodukterminal = "";
  205.           String _product = "";
  206.           Statement stmtx = conmysql.createStatement();
  207.           String sql = "select idprodukterminal,formatkeluar,hargabeli from produkterminal where idproduk=" + _idproduk + " and idterminal=" + ID_TERMINAL;
  208.           ResultSet ProdukTerminal = stmtx.executeQuery(sql);
  209.           while (ProdukTerminal.next())
  210.           {
  211.             hargabeli = ProdukTerminal.getFloat("hargabeli");
  212.             _product = ProdukTerminal.getString("formatkeluar");
  213.            
  214.             DIGIPOS_PAKET = _product.split("#")[0];
  215.            
  216.             if ((DIGIPOS_PAKET.equals("AP_BULK")) || (DIGIPOS_PAKET.equals("HVC")))
  217.             {
  218.               PAKET_BULK = _product.split("#")[1];
  219.               DIGIPOS_PRODUK = _product.split("#")[2];
  220.               DIGIPOS_MAX_PRICE = Integer.valueOf(Integer.parseInt(_product.split("#")[3]));
  221.             }
  222.             else {
  223.               DIGIPOS_PRODUK = _product.split("#")[1];
  224.               DIGIPOS_MAX_PRICE = Integer.valueOf(Integer.parseInt(_product.split("#")[2]));
  225.             }
  226.            
  227.  
  228.             _idprodukterminal = ProdukTerminal.getString("idprodukterminal");
  229.            
  230.             Statement s = conmysql.createStatement();
  231.             s.execute("update transaksi set statustransaksi=9,keterangan='Prosesing Digipos',hargabeli=" + String.valueOf(hargabeli) + " where idtransaksi=" + _idtrxbin);
  232.             s.close();
  233.           }
  234.          
  235.           ProdukTerminal.close();
  236.           ProdukTerminal = null;
  237.           System.out.println("Trx:" + _idtrxbin + " MSISDN:" + _tujuan + " Paket:" + DIGIPOS_PAKET + " Code:" + DIGIPOS_PRODUK);
  238.          
  239.  
  240.           String sqloutbox = "insert into outboxoperator (idprodukterminal,idinboxcenterasal,tanggal,jam,nohp,tujuan,isi,statussms,flagpesansender,idtransaksi,nomorbalasan,suaramenunggujawaban,idterminal,namaterminal,idreseller,nopengirim,idtransaksiclient,kodeproduk,nominal,tujuantrx,jumlahunit,hargajualreseller,saldoawal,saldoakhir) value(?,?,current_date(),current_time(),?,?,?,9,1,?,'','0',?,?,?,?,?,?,?,?,?,?,?,?) ";
  241.          
  242.  
  243.  
  244.  
  245.           PreparedStatement preparedStatement = conmysql.prepareStatement(sqloutbox);
  246.           preparedStatement.setString(1, _idprodukterminal);
  247.           preparedStatement.setString(2, _kodeinbox);
  248.           preparedStatement.setString(3, "");
  249.           preparedStatement.setString(4, "");
  250.           preparedStatement.setString(5, _product);
  251.           preparedStatement.setString(6, _idtrxbin);
  252.           preparedStatement.setString(7, ID_TERMINAL);
  253.           preparedStatement.setString(8, "namaterminal");
  254.           preparedStatement.setString(9, trxbin.getString("idreseller"));
  255.           preparedStatement.setString(10, trxbin.getString("nopengirim"));
  256.           preparedStatement.setString(11, trxbin.getString("IdTransaksiClient"));
  257.           preparedStatement.setString(12, trxbin.getString("KodeProduk"));
  258.           preparedStatement.setInt(13, 0);
  259.           preparedStatement.setString(14, _tujuan);
  260.           preparedStatement.setString(15, trxbin.getString("JumlahUnit"));
  261.           preparedStatement.setString(16, trxbin.getString("hargajualreseller"));
  262.           preparedStatement.setString(17, trxbin.getString("saldoawal"));
  263.           preparedStatement.setString(18, trxbin.getString("saldoakhir"));
  264.           preparedStatement.execute();
  265.           preparedStatement.close();
  266.          
  267.           try
  268.           {
  269.             driver.findElement(By.name("MSISDN")).sendKeys(new CharSequence[] { _tujuan });
  270.             driver.findElement(By.xpath("//input[2]")).click();
  271.            
  272.             waitForPageLoaded();
  273.             waitForPageLoaded();
  274.            
  275.  
  276.  
  277.             String masaAktif = driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[2]/input[3]")).getAttribute("value");
  278.             masaAktif = masaAktif.replace(" hari", "");
  279.             System.out.println("MasaAktif:" + masaAktif);
  280.            
  281.             if (Integer.parseInt(masaAktif) > MAX_LOS.intValue())
  282.             {
  283.  
  284.  
  285.               System.out.println("select paket");
  286.               Select dropdownjenispaketx = new Select(driver.findElement(By.id("25")));
  287.               dropdownjenispaketx.selectByValue(DIGIPOS_PAKET);
  288.               System.out.println("Done select paket");
  289.               waitForPageLoaded();
  290.               waitForPageLoaded();
  291.               waitForPageLoaded();
  292.               Select select;
  293.               if ((DIGIPOS_PAKET.equals("AP_BULK")) || (DIGIPOS_PAKET.equals("HVC")))
  294.               {
  295.                 if (Integer.valueOf(masaAktif).intValue() < 60) {}
  296.                
  297.  
  298.  
  299.                 List<WebElement> elements = driver.findElements(By.xpath("//select[@id='25']"));
  300.                 Integer i = Integer.valueOf(1);
  301.                 Integer localInteger1; for (Iterator localIterator = elements.iterator(); localIterator.hasNext();
  302.                    
  303.  
  304.  
  305.  
  306.                     localInteger1 = i = Integer.valueOf(i.intValue() + 1))
  307.                 {
  308.                   WebElement option = (WebElement)localIterator.next();
  309.                   if (i.intValue() > 1) {
  310.                     select = new Select(option);
  311.                     select.selectByValue(PAKET_BULK);
  312.                   }
  313.                   select = i;
  314.                 }
  315.               }
  316.              
  317.               waitForPageLoaded();
  318.              
  319.               System.out.println("select produk");
  320.              
  321.  
  322.               Select dropdownPaketData = new Select(driver.findElement(By.id("26")));
  323.               try {
  324.                 dropdownPaketData.selectByVisibleText(DIGIPOS_PRODUK);
  325.               } catch (Exception e) {
  326.                 dropdownPaketData.selectByVisibleText(_product.split("#")[4]);
  327.               }
  328.              
  329.  
  330.               System.out.println("Done select produk");
  331.               waitForPageLoaded();
  332.              
  333.               String namaproduk = driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[3]/input[1]")).getAttribute("value");
  334.               namaproduk = namaproduk.replace("u0026", " ");
  335.              
  336.               String stexts = driver.findElement(By.xpath("html/body/div[1]/div/div[1]/div[3]/input[2]")).getAttribute("value");
  337.               HARGA_INT = Integer.valueOf(stexts);
  338.               System.out.println("NamaProduk:" + namaproduk + " Harga:" + stexts);
  339.              
  340.  
  341.               if (JENIS_TRANSAKSI.equals("5"))
  342.               {
  343.                 sukseskantrx(_idtrxbin, namaproduk, "");
  344.                
  345.                 float hargatagihan = Float.valueOf(stexts).floatValue() + GetMarginFloat(_idproduk, trxbin.getString("PatokanHargaJual")).intValue();
  346.                 String _pesanbalasan = _tujuan + " " + '\n' + '\r' + trxbin.getString("KodeProduk") + " " + '\n' + '\r' + namaproduk + " " + '\n' + '\r' + "Harga:" + String.valueOf(hargatagihan);
  347.                
  348.  
  349.                 String sqltagihan = "insert into tagihanppob (idpelanggan,jumlahtagihan,charge,tanggal,jmltag) value (?,?,?,current_date(),1)";
  350.                 PreparedStatement pstagihan = conmysql.prepareStatement(sqltagihan);
  351.                 pstagihan.setString(1, _tujuan);
  352.                 pstagihan.setFloat(2, hargatagihan);
  353.                 pstagihan.setFloat(3, hargatagihan - hargabeli);
  354.                 pstagihan.execute();
  355.                 pstagihan.close();
  356.                
  357.  
  358.                 String sqlsender = "insert into sender (idinboxcenterasal,tanggal,jam,tujuan,isi,statussms,idtransaksi,idreseller,namareseller,idtransaksiclient,kodeproduk,tujuantrx,statustrx,sn,jenissender) value (?,current_date(),current_time(),?,?,0,?,?,?,?,?,?,1,'',1)";
  359.                
  360.  
  361.  
  362.                 PreparedStatement pssender = conmysql.prepareStatement(sqlsender);
  363.                 pssender.setString(1, _kodeinbox);
  364.                 pssender.setString(2, trxbin.getString("NoPengirim"));
  365.                 pssender.setString(3, _pesanbalasan);
  366.                 pssender.setString(4, _idtrxbin);
  367.                 pssender.setString(5, trxbin.getString("idreseller"));
  368.                 pssender.setString(6, trxbin.getString("namareseller"));
  369.                 pssender.setString(7, trxbin.getString("IdTransaksiClient"));
  370.                 pssender.setString(8, trxbin.getString("KodeProduk"));
  371.                 pssender.setString(9, _tujuan);
  372.                 pssender.execute();
  373.                 pssender.close();
  374.                
  375.                 reloadpage_activasi_paket();
  376.  
  377.  
  378.               }
  379.               else if (DIGIPOS_MAX_PRICE.intValue() >= HARGA_INT.intValue())
  380.               {
  381.                 driver.findElement(By.name("PINRS")).sendKeys(new CharSequence[] { DIGIPOS_PIN });
  382.                 waitForPageLoaded();
  383.                 clickKirim();
  384.                 waitForPageLoaded();
  385.                 clickOK();
  386.                
  387.                 if (AUTO_SUKSES.equals(Integer.valueOf(1)))
  388.                 {
  389.                   String snx = generateSN();
  390.                  
  391.  
  392.                   Integer newPrice = Integer.valueOf(trxbin.getInt("HargaJualReseller"));
  393.                   Integer hargajualtrx = Integer.valueOf(trxbin.getInt("HARGAJUAL"));
  394.                   if (hargajualtrx.intValue() < HARGA_INT.intValue())
  395.                   {
  396.                     System.out.println("[Harga Digipos Lebih Mahal dari harga jual]");
  397.                     Integer _margin = GetMargin(_idproduk, trxbin.getString("PatokanHargaJual"));
  398.                     if (_margin.intValue() > 0)
  399.                     {
  400.                       Integer _haruspotong = Integer.valueOf(HARGA_INT.intValue() + _margin.intValue() - newPrice.intValue());
  401.                       System.out.println("Saldo Agen Akan dipotong:" + Integer.valueOf(_haruspotong.intValue()));
  402.                       newPrice = Integer.valueOf(HARGA_INT.intValue() + _margin.intValue());
  403.                       setHrgjual_trx(_idtrxbin, HARGA_INT, newPrice, Integer.valueOf(newPrice.intValue() + getSelisih(trxbin.getString("idreseller")).intValue()));
  404.                       potongsaldo(trxbin.getString("idreseller"), "selisih kenaikan harga:" + trxbin.getString("KodeProduk"), _haruspotong);
  405.                     }
  406.                     else {
  407.                       System.out.println("[Set Margin 0, saldo agen tidak dipotong]");
  408.                     }
  409.                   }
  410.                  
  411.  
  412.  
  413.  
  414.                   sukseskantrx(_idtrxbin, namaproduk, namaproduk);
  415.                   String _pesanbalasan = getBalasan("1");
  416.                   _pesanbalasan = _pesanbalasan.replace("<Tujuan>", _tujuan);
  417.                   _pesanbalasan = _pesanbalasan.replace("<Harga>", formatAngka(newPrice));
  418.                   _pesanbalasan = _pesanbalasan.replace("<Harga>", formatAngka(newPrice));
  419.                   _pesanbalasan = _pesanbalasan.replace("<Harga>", formatAngka(newPrice));
  420.                  
  421.                   _pesanbalasan = _pesanbalasan.replace("<SalAwal>", trxbin.getString("saldoawal"));
  422.                   _pesanbalasan = _pesanbalasan.replace("<Waktu>", GetWaktu());
  423.                   _pesanbalasan = _pesanbalasan.replace("<Info>", "");
  424.                   _pesanbalasan = _pesanbalasan.replace("<SN>", namaproduk);
  425.                   _pesanbalasan = _pesanbalasan.replace("<Produk>", trxbin.getString("KodeProduk"));
  426.                   _pesanbalasan = _pesanbalasan.replace("<Saldo>", getSaldo(trxbin.getString("idreseller")));
  427.                  
  428.                   String _trxclient = trxbin.getString("IdTransaksiClient");
  429.                   if (_trxclient.equals("")) {
  430.                     _pesanbalasan = _pesanbalasan.replace("<ReffClient>", "");
  431.                   } else {
  432.                     _pesanbalasan = _pesanbalasan.replace("<ReffClient>", _trxclient);
  433.                   }
  434.                  
  435.                   String sqlsender = "insert into sender (idinboxcenterasal,tanggal,jam,tujuan,isi,statussms,idtransaksi,idreseller,namareseller,idtransaksiclient,kodeproduk,tujuantrx,statustrx,sn,jenissender) value (?,current_date(),current_time(),?,?,0,?,?,?,?,?,?,1,'',1)";
  436.                  
  437.  
  438.  
  439.                   PreparedStatement pssender = conmysql.prepareStatement(sqlsender);
  440.                   pssender.setString(1, _kodeinbox);
  441.                   pssender.setString(2, trxbin.getString("NoPengirim"));
  442.                   pssender.setString(3, _pesanbalasan);
  443.                   pssender.setString(4, _idtrxbin);
  444.                   pssender.setString(5, trxbin.getString("idreseller"));
  445.                   pssender.setString(6, trxbin.getString("namareseller"));
  446.                   pssender.setString(7, trxbin.getString("IdTransaksiClient"));
  447.                   pssender.setString(8, trxbin.getString("KodeProduk"));
  448.                   pssender.setString(9, _tujuan);
  449.                   pssender.execute();
  450.                   pssender.close();
  451.                 }
  452.                
  453.                 waitForPageLoaded();
  454.  
  455.               }
  456.               else
  457.               {
  458.  
  459.                 gagalkantrx(_idtrxbin);
  460.                 String _pesanbalasan = getBalasan("10");
  461.                 _pesanbalasan = _pesanbalasan.replace("<Tujuan>", _tujuan);
  462.                 _pesanbalasan = _pesanbalasan.replace("<Waktu>", GetWaktu());
  463.                 _pesanbalasan = _pesanbalasan.replace("<Info>", "");
  464.                 _pesanbalasan = _pesanbalasan.replace("<Produk>", trxbin.getString("KodeProduk"));
  465.                 _pesanbalasan = _pesanbalasan.replace("<Saldo>", getSaldo(trxbin.getString("idreseller")));
  466.                
  467.                 String _trxclient = trxbin.getString("IdTransaksiClient");
  468.                 if (_trxclient.equals("")) {
  469.                   _pesanbalasan = _pesanbalasan.replace("<ReffClient>", "");
  470.                 } else {
  471.                   _pesanbalasan = _pesanbalasan.replace("<ReffClient>", _trxclient);
  472.                 }
  473.                
  474.  
  475.  
  476.                 String sqlsender = "insert into sender (idinboxcenterasal,tanggal,jam,tujuan,isi,statussms,idtransaksi,idreseller,namareseller,idtransaksiclient,kodeproduk,tujuantrx,statustrx,sn,jenissender) value (?,current_date(),current_time(),?,?,0,?,?,?,?,?,?,2,'',1)";
  477.                
  478.  
  479.  
  480.                 PreparedStatement pssender = conmysql.prepareStatement(sqlsender);
  481.                 pssender.setString(1, _kodeinbox);
  482.                 pssender.setString(2, trxbin.getString("NoPengirim"));
  483.                 pssender.setString(3, _pesanbalasan);
  484.                 pssender.setString(4, _idtrxbin);
  485.                 pssender.setString(5, trxbin.getString("idreseller"));
  486.                 pssender.setString(6, trxbin.getString("namareseller"));
  487.                 pssender.setString(7, trxbin.getString("IdTransaksiClient"));
  488.                 pssender.setString(8, trxbin.getString("KodeProduk"));
  489.                 pssender.setString(9, _tujuan);
  490.                 pssender.execute();
  491.                 pssender.close();
  492.                
  493.  
  494.                 driver.get("https://digipos.telkomsel.com/outapp/aktivasipaket");
  495.                 waitForPageLoaded();
  496.  
  497.  
  498.               }
  499.              
  500.  
  501.  
  502.             }
  503.             else
  504.             {
  505.  
  506.  
  507.               System.out.println("[LOS Melebihi batas]");
  508.               Statement s = conmysql.createStatement();
  509.               s.execute("update transaksi set statustransaksi=8,keterangan='LOS dibawah nilai yg di tentukan' where idtransaksi=" + _idtrxbin);
  510.               s.close();
  511.               Statement sx = conmysql.createStatement();
  512.               sx.execute("update outboxoperator set statussms=8 where idtransaksi=" + _idtrxbin);
  513.               sx.close();
  514.             }
  515.           }
  516.           catch (Exception e) {
  517.             e.printStackTrace();
  518.            
  519.             System.err.println("Error_Trx:" + e.getMessage());
  520.             System.out.println("INVALID KODE PRODUK");
  521.             Statement s = conmysql.createStatement();
  522.             s.execute("update transaksi set statustransaksi=8,keterangan='Error invalid kode produk' where idtransaksi=" + _idtrxbin);
  523.             s.close();
  524.            
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.             driver.get("https://digipos.telkomsel.com/outapp/aktivasipaket");
  565.             waitForPageLoaded();
  566.           }
  567.         }
  568.        
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.         trxbin.close();
  576.         trxbin = null;
  577.         stmt.close();
  578.         stmt = null;
  579.        
  580.  
  581.         Thread.sleep(300L);
  582.        
  583.         if (REFRESH_WEB.intValue() < 0) {
  584.           System.out.println("Refresh webpage...");
  585.           driver.get("https://digipos.telkomsel.com/outapp/aktivasipaket");
  586.           waitForPageLoaded();
  587.           REFRESH_WEB = Integer.valueOf(120);
  588.         }
  589.       }
  590.     } catch (Exception e) {
  591.       e.printStackTrace();
  592.     }
  593.   }
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.   public static Integer GetMarginFloat(String _idproduk, String _patokanhargajual)
  602.   {
  603.     Integer _margin = Integer.valueOf(0);
  604.    
  605.     try
  606.     {
  607.       Statement stmty = conmysql.createStatement();
  608.       String sqlxx = "select margin from detailkelompokharga where idkelompokharga=" + _patokanhargajual + " and idproduk=" + _idproduk;
  609.       ResultSet rssaldo = stmty.executeQuery(sqlxx);
  610.      
  611.       while (rssaldo.next()) {
  612.         _margin = Integer.valueOf(rssaldo.getInt("margin"));
  613.       }
  614.      
  615.       rssaldo.close();
  616.       stmty.close();
  617.     } catch (Exception e) {
  618.       e.printStackTrace();
  619.       System.err.println("Error_GetSaldo:" + e.getMessage());
  620.     }
  621.    
  622.     return _margin;
  623.   }
  624.  
  625.   public static void setHrgjual_trx(String _idtrx, Integer hargabeli, Integer hargajual, Integer hargajualreseller)
  626.   {
  627.     try {
  628.       Statement s = conmysql.createStatement();
  629.       s.execute("update transaksi set hargabeli=" + hargabeli + ",hargajual=" + hargajual + ",hargajualreseller=" + hargajualreseller + " where idtransaksi=" + _idtrx);
  630.       s.close();
  631.     } catch (Exception e) {
  632.       e.printStackTrace();
  633.     }
  634.   }
  635.  
  636.   public static Integer getSelisih(String _idrs) {
  637.     Integer _selisih = Integer.valueOf(0);
  638.     try
  639.     {
  640.       Statement stmty = conmysql.createStatement();
  641.       ResultSet rsx = stmty.executeQuery("select idupline,tambahanhargapribadi from masterreseller where idreseller='" + _idrs + "'");
  642.       if (rsx.next()) {
  643.         _selisih = Integer.valueOf(rsx.getInt("tambahanhargapribadi"));
  644.       }
  645.     } catch (Exception e) {
  646.       e.printStackTrace();
  647.     }
  648.    
  649.  
  650.     return _selisih;
  651.   }
  652.  
  653.   public static Integer AmbilSelisihUpline(String _idrs, String _idproduk) {
  654.     Integer _selisih = Integer.valueOf(0);
  655.     String _idupline = "";
  656.     String _paramIdupline = "";
  657.     String _paramBeforeIdupline = "";
  658.     Integer _keluar = Integer.valueOf(0);
  659.     try {
  660.       Statement stmty = conmysql.createStatement();
  661.       ResultSet rsup = stmty.executeQuery("select idupline from masterreseller where idreseller='" + _idrs + "'");
  662.       _paramIdupline = _idrs;
  663.      
  664.       if (rsup.next()) {
  665.         _idupline = rsup.getString("idupline");
  666.        
  667.         if (!_idupline.equals("-"))
  668.         {
  669.           while (_keluar.equals(Integer.valueOf(0)))
  670.           {
  671.             ResultSet rsx = stmty.executeQuery("select idupline,tambahanhargapribadi from masterreseller where idreseller='" + _paramIdupline + "'");
  672.             if (rsx.next())
  673.             {
  674.               if (rsup.getString("idupline").equals("-"))
  675.               {
  676.                 _keluar = Integer.valueOf(1);
  677.                 _selisih = Integer.valueOf(rsup.getInt("tambahanhargapribadi"));
  678.               }
  679.               else
  680.               {
  681.                 _paramBeforeIdupline = _paramIdupline;
  682.                 _paramIdupline = rsup.getString("idupline");
  683.                
  684.  
  685.                 ResultSet rsxx = stmty.executeQuery("select markup from markupperproduk where idreseller='" + _paramBeforeIdupline + "' and idproduk=" + _idproduk);
  686.                 if (rsx.next()) {
  687.                   _selisih = Integer.valueOf(_selisih.intValue() + rsup.getInt("markup"));
  688.                 } else {
  689.                   _selisih = Integer.valueOf(_selisih.intValue() + getSelisih(_paramBeforeIdupline).intValue());
  690.                 }
  691.               }
  692.             }
  693.             else {
  694.               _keluar = Integer.valueOf(1);
  695.             }
  696.            
  697.             Thread.sleep(100L);
  698.           }
  699.         }
  700.       }
  701.     }
  702.     catch (Exception e) {
  703.       e.printStackTrace();
  704.     }
  705.    
  706.     return _selisih;
  707.   }
  708.  
  709.   public static void potongsaldo(String _idreseller, String _keterangan, Integer jumlah) {
  710.     try {
  711.       Statement s = conmysql.createStatement();
  712.       s.execute("select tambahhistorireseller('" + _idreseller + "','" + _keterangan + "'," + jumlah + ")");
  713.       s.close();
  714.     } catch (Exception e) {
  715.       e.printStackTrace();
  716.     }
  717.   }
  718.  
  719.   public static Integer GetMargin(String _idproduk, String _patokanhargajual) {
  720.     Integer _margin = Integer.valueOf(0);
  721.    
  722.     try
  723.     {
  724.       Statement stmty = conmysql.createStatement();
  725.       String sqlxx = "select margin from detailkelompokharga where idkelompokharga=" + _patokanhargajual + " and idproduk=" + _idproduk;
  726.       ResultSet rssaldo = stmty.executeQuery(sqlxx);
  727.      
  728.       while (rssaldo.next()) {
  729.         _margin = Integer.valueOf(rssaldo.getInt("margin"));
  730.       }
  731.      
  732.       rssaldo.close();
  733.       stmty.close();
  734.     } catch (Exception e) {
  735.       e.printStackTrace();
  736.       System.err.println("Error_GetSaldo:" + e.getMessage());
  737.     }
  738.    
  739.     return _margin;
  740.   }
  741.  
  742.   public static String formatAngka(Integer bilangan1) {
  743.     NumberFormat numberFormat = NumberFormat.getInstance();
  744.     numberFormat.setMinimumIntegerDigits(0);
  745.     numberFormat.setGroupingUsed(true);
  746.     return numberFormat.format(bilangan1);
  747.   }
  748.  
  749.   public static String GetWaktu() { DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
  750.     Calendar cal = Calendar.getInstance();
  751.     return dateFormat.format(cal.getTime());
  752.   }
  753.  
  754.   public static String generateSN() {
  755.     Random rand = new Random();
  756.     int n = rand.nextInt(500) + 1;
  757.     Calendar cal = Calendar.getInstance();
  758.     return sdf.format(cal.getTime()) + rightPadZeros(String.valueOf(n), 4);
  759.   }
  760.  
  761.   public static String rightPadZeros(String str, int num) {
  762.     return String.format("%1$-" + num + "s", new Object[] { str }).replace(' ', '0');
  763.   }
  764.  
  765.   public static String fixedLengthString(String string, int length) { return String.format("%1$" + length + "s", new Object[] { string }); }
  766.  
  767.   public static void gagalkantrx(String _idtrxbin) {
  768.     try {
  769.       Statement s = conmysql.createStatement();
  770.       s.execute("update transaksi set statustransaksi=2,keterangan='invalid kode produk' where idtransaksi=" + _idtrxbin);
  771.       s.execute("update outboxoperator set statussms=2 where idtransaksi=" + _idtrxbin);
  772.       s.close();
  773.     }
  774.     catch (Exception localException) {}
  775.   }
  776.  
  777.   public static void sukseskantrx(String _idtrxbin, String msg, String sn) {
  778.     try {
  779.       Statement s = conmysql.createStatement();
  780.       s.execute("update transaksi set statustransaksi=1,keterangan='" + msg + "',sn='" + sn + "' where idtransaksi=" + _idtrxbin);
  781.       s.execute("update outboxoperator set statussms=1 where idtransaksi=" + _idtrxbin);
  782.       s.close();
  783.     }
  784.     catch (Exception localException) {}
  785.   }
  786.  
  787.   public static void reloadpage_activasi_paket() {
  788.     driver.get("https://digipos.telkomsel.com/outapp/aktivasipaket");
  789.     waitForPageLoaded();
  790.   }
  791.  
  792.   public static String getSaldo(String idreseller) {
  793.     String _saldo = "";
  794.    
  795.     try
  796.     {
  797.       Statement stmty = conmysql.createStatement();
  798.       String sqlxx = "select saldo from masterreseller where idreseller='" + idreseller + "'";
  799.       ResultSet rssaldo = stmty.executeQuery(sqlxx);
  800.      
  801.       while (rssaldo.next()) {
  802.         _saldo = formatAngka(Integer.valueOf(rssaldo.getInt("saldo")));
  803.       }
  804.      
  805.       rssaldo.close();
  806.       stmty.close();
  807.     } catch (Exception e) {
  808.       e.printStackTrace();
  809.       System.err.println("Error_GetSaldo:" + e.getMessage());
  810.     }
  811.    
  812.  
  813.     return _saldo;
  814.   }
  815.  
  816.   public static String getBalasan(String Idbalasan) {
  817.     String balasan = "";
  818.    
  819.     try
  820.     {
  821.       Statement stmtx = conmysql.createStatement();
  822.       String sqlx = "select Format from smsbalasan where idsmsbalasan=" + Idbalasan;
  823.       ResultSet smsbalasan = stmtx.executeQuery(sqlx);
  824.      
  825.       while (smsbalasan.next()) {
  826.         balasan = smsbalasan.getString("Format");
  827.       }
  828.      
  829.       smsbalasan.close();
  830.       stmtx.close();
  831.     } catch (Exception e) {
  832.       e.printStackTrace();
  833.       System.err.println("Error_getBalasan:" + e.getMessage());
  834.     }
  835.    
  836.  
  837.     return balasan;
  838.   }
  839.  
  840.   public static String getKodeSuplier(String _idproduk, String _idterminal, String _idtrx) {
  841.     String kodepSuplier = "";
  842.     try {
  843.       Statement stmt = conmysql.createStatement();
  844.       String sql = "select formatkeluar,hargabeli from produkterminal where idproduk=" + _idproduk + " and idterminal=" + _idterminal;
  845.       System.out.println(sql);
  846.      
  847.       ResultSet ProdukTerminal = stmt.executeQuery(sql);
  848.       while (ProdukTerminal.next())
  849.       {
  850.         float hargabeli = ProdukTerminal.getFloat("hargabeli");
  851.         kodepSuplier = ProdukTerminal.getString("formatkeluar");
  852.        
  853.         Statement s = conmysql.createStatement();
  854.         s.execute("update transaksi set statustransaksi=9,keterangan='Prosesing Digipos',hargabeli=" + String.valueOf(hargabeli) + " where idtransaksi=" + _idtrx);
  855.         s.close();
  856.       }
  857.      
  858.       ProdukTerminal.close();
  859.     }
  860.     catch (Exception e)
  861.     {
  862.       e.printStackTrace();
  863.       System.err.println("Error_getKodeSuplier:" + e.getMessage());
  864.     }
  865.    
  866.     return kodepSuplier;
  867.   }
  868.  
  869.  
  870.  
  871.   public static void closeMYSQL()
  872.   {
  873.     try
  874.     {
  875.       conmysql.close();
  876.     } catch (Exception e) {
  877.       e.printStackTrace();
  878.     }
  879.   }
  880.  
  881.   public static void inputOTP(String _otp) {
  882.     driver.findElement(By.name("pinOtp")).sendKeys(new CharSequence[] { _otp });
  883.     driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div/div/button[2]")).click();
  884.     waitForPageLoaded();
  885.   }
  886.  
  887.  
  888.   public static boolean isReqireLogin() { return driver.findElement(By.id("u")).isDisplayed(); }
  889.  
  890.   public static void clickback() {
  891.     driver.findElement(By.className("IconHome")).click();
  892.     waitForPageLoaded();
  893.   }
  894.  
  895.   public static void clickOK() { driver.findElement(By.xpath("/html/body/div[3]/div[2]/div/div/div/button")).click();
  896.     waitForPageLoaded();
  897.   }
  898.  
  899.   public static void clickKirim() { driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[3]/div[3]/button")).click();
  900.     waitForPageLoaded();
  901.   }
  902.  
  903.   public static String getMSISDN() {
  904.     System.out.println("Press Enter to Continue....");
  905.     Scanner scannerinput = new Scanner(System.in);
  906.     String _inputan = scannerinput.nextLine();
  907.     return _inputan;
  908.   }
  909.  
  910.   public static String getProductPackage() {
  911.     System.out.println("Enter Product Package: ");
  912.     Scanner scannerinput = new Scanner(System.in);
  913.     String _inputan = scannerinput.nextLine();
  914.     System.out.println("Your Package is " + _inputan);
  915.     return _inputan;
  916.   }
  917.  
  918.   public static String getPin() { System.out.println("Enter Your PIN: ");
  919.     Scanner scannerinput = new Scanner(System.in);
  920.     String _inputan = scannerinput.nextLine();
  921.     System.out.println("Your PIN is " + _inputan);
  922.     return _inputan;
  923.   }
  924. }
  925.  
  926.  
  927.  Twitter   Facebook   Stumbleupon   LinkedIn
  928. Select a decompiler
  929.   JDCore (very fast)
  930.   CFR (very good and well-supported decompiler for Java 7, 8, 9 and 10)
  931.   Jadx, fast and with Android support
  932.   Procyon
  933.   Fernflower
  934.   JAD (very fast, but outdated)
  935. Privacy Policy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement