package ir.almahdi.sandogh_bsa_aza.idpay;


import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;

import ir.almahdi.sandogh_bsa_aza.Class.MySingleton;
import ir.almahdi.sandogh_bsa_aza.Global_var;
import ir.almahdi.sandogh_bsa_aza.R;
import ir.almahdi.sandogh_bsa_aza.Utility;
import ir.almahdi.sandogh_bsa_aza.karbar_activity;

@SuppressLint("Registered")
    public class Main2Activity extends AppCompatActivity {
        private Button btnpay;
        private TextView p;
        private TextView text;
        private EditText tel_ozv;
        private Button btn_check_orderid_idpay ,btn_home,btn_exit;
        public static String trans="0",id_tarakozh_idpay="-";
        @SuppressLint({"SetTextI18n", "Assert"})
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_zarinpal);
            btn_exit=findViewById(R.id.btn_exit);
            btn_home=findViewById(R.id.btn_goto_home);
            btn_exit.setVisibility(View.INVISIBLE);
            btn_home.setVisibility(View.INVISIBLE);
            btn_check_orderid_idpay=findViewById(R.id.btn_check_orderid_idpay);
            btnpay= findViewById(R.id.btn_main_purchase);
            btnpay.setVisibility(View.VISIBLE);
            tel_ozv = findViewById(R.id.et_tel_ozv);
            p= findViewById(R.id.mabl_sum);
            text= findViewById(R.id.txtresult);
            //تعریف پاسخ توابع ثبت و بروزرسانی


          // مقدار دهی مبلغ کل پرداختی در تکسویو درگاه
            //p.setText(String.valueOf(Global_var.sum_pas_vam_list_select_ozv));
           // p.setText("10000");
            p.setText(String.valueOf(Global_var.splitDigits(Integer.parseInt(Global_var.sum_pas_vam_list_select_ozv.toString()))));
            btnpay.setOnClickListener(arg0 -> {

                if(Global_var.sum_pas_vam_list_select_ozv>=1000 && tel_ozv.getText().length()>10){

                    Intent i=new Intent(Main2Activity.this,idpay.class);
                    i.putExtra("price", Global_var.sum_pas_vam_list_select_ozv.toString());
                    i.putExtra("id_ozviat",Global_var.gid_ozviat);
                    i.putExtra("tel_ozv",tel_ozv.getText().toString());
                    startActivity(i);

                    // String id_order= String.format("%s-%s-%s", "جهت بررسی شماره تراکنش :", idpay.tozihat,"بر روی دکمه دریافت صحت تراکنش ضربه بزنید");
                  //  text.setText("جهت بررسی شماره تراکنش :"+ Global_var.order_id_idpay+"بر روی دکمه دریافت صحت تراکنش ضربه بزنید");
                    //  text.setText(id_order);


                }else if (Global_var.sum_pas_vam_list_select_ozv<1000){

                    Toast.makeText(getApplicationContext(), "مبلغ قابل پرداخت حداقل 1000 ریال میباشد ", Toast.LENGTH_LONG).show();

                }else {

                    Toast.makeText(getApplicationContext(), "تلفن همراه خود را وارد نمایید ", Toast.LENGTH_LONG).show();
                    }



            });

        //بازگشت به صفحه اصلی
            btn_home.setOnClickListener(v -> {

                Global_var.sum_ozv_sabadpar=0;
                Global_var.numLoad_Vamozv=0;
                for (byte i=0;i<10;i++){
                    Global_var.gkol_id_ozviat[i]="empty";
                }
                btn_check_orderid_idpay.setVisibility(View.INVISIBLE);

                Global_var.num_array_gkol_id_ozviat=0;
                Global_var.sum_vams_list_select_ozv= 0L;
                Global_var.sum_pas_list_select_ozv=0L;
                Global_var.sum_pas_vam_list_select_ozv=0L;
//                Intent intent = new Intent(this, Display_sabad_ozv.class);
//                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//                intent.putExtra("Exit me", true);
//                startActivity(intent);
                finish();
                startActivity(new Intent(getApplicationContext(), karbar_activity.class));

            });
//            //بستن برنامه
            btn_exit.setOnClickListener(v -> {
                btn_exit.setVisibility(View.INVISIBLE);
                btn_home.setVisibility(View.INVISIBLE);
                btnpay.setVisibility(View.VISIBLE);
                btn_check_orderid_idpay.setVisibility(View.INVISIBLE);
                Global_var.sum_ozv_sabadpar=0;
         Global_var.numLoad_Vamozv=0;
        for (byte i=0;i<10;i++){
           Global_var.gkol_id_ozviat[i]="empty";
        }
        btnpay.setVisibility(View.VISIBLE);
         btn_check_orderid_idpay.setVisibility(View.INVISIBLE);

       Global_var.num_array_gkol_id_ozviat=0;
       Global_var.sum_vams_list_select_ozv= 0L;
       Global_var.sum_pas_list_select_ozv=0L;
       Global_var.sum_pas_vam_list_select_ozv=0L;
                onBackPressed();
//                Intent intent = new Intent(this, Display_sabad_ozv.class);
//                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//                intent.putExtra("Exit me", true);
//                startActivity(intent);
//                finish();
                //startActivity(new Intent(getApplicationContext(), karbar_activity.class));

           });
// متغیرهای ثبت وام های اعضا
            AtomicReference<String> id_pa_vam = new AtomicReference<>() ;
            AtomicReference<String> id_fish_daf= new AtomicReference<>();
//            String tarikh_dary_h_ozv;
//            String shomare_ghest_vam;
//            String id_fish_daf;
            AtomicReference<Long> mablagh_gh_vam_nob= new AtomicReference<>();
            AtomicReference<Long>mande_vam_dar= new AtomicReference<>();


            btn_check_orderid_idpay.setOnClickListener(v -> {
                String id_dar_hozv_vam,id_dar_ghest_vam = null;
                     if (trans.equals("ok_sabt_id")){
                         String s1= "   کدتراکنش شمادر آی دی پی :\n";
                         String s2= "   \nبا موفقیت ثبت شد !";
                        text.setText(s1+id_tarakozh_idpay+s2);
                         text.setBackgroundColor(Color.parseColor("#FFAED581"));
                        //btn_check_orderid_idpay.setEnabled(false);
                          btn_home.setVisibility(View.VISIBLE);
                         btn_exit.setVisibility(View.VISIBLE);
                         //  ثبت حق عضویت اعضا سبد
                         for (byte i=0;i<Global_var.gkol_id_ozviat.length;i++) {
                            if(!(Global_var.gkol_id_ozviat[i].equals("empty"))){
                               // Toast.makeText(getApplicationContext(), Global_var.gkol_id_ozviat[i]+"id ozviat....", Toast.LENGTH_LONG).show();

                                id_dar_hozv_vam=Global_var.gkol_id_ozviat[i]+Global_var.gtarikh_day.substring(0,4);
                                Toast.makeText(getApplicationContext(), id_dar_hozv_vam, Toast.LENGTH_LONG).show();
                               sabt_hagh_ozviat_aza_sabad(id_dar_hozv_vam.substring(4),Global_var.gkol_id_ozviat[i]);
//ثبت تراکنش ها
                            }

                        }//ثبت حق عضویت اعضا سبد

                         //  ثبت وام اعضا داخل سبد
                         for (byte i=0;i<Global_var.sabad_pardakht.size();i++) {
                             if(Global_var.sabad_pardakht.get(i).getMablagh_gh_vam_nob()>0){
                                 id_dar_ghest_vam=Global_var.sabad_pardakht.get(i).getId_par_vam_nbt()+Global_var.gtarikh_day.substring(0,4);

                                 Toast.makeText(getApplicationContext(), Global_var.sabad_pardakht.get(i).getId_par_vam_nbt(), Toast.LENGTH_LONG).show();
                                 assert false;
                                 id_pa_vam.set(Global_var.sabad_pardakht.get(i).getId_par_vam_nbt());
                                 mablagh_gh_vam_nob.set(Global_var.sabad_pardakht.get(i).getMablagh_gh_vam_nob());
                                 id_fish_daf.set( Global_var.order_id_idpay);
                                 mande_vam_dar.set(Global_var.sabad_pardakht.get(i).getMande_vam());
                                 Long mablagh_gh_vam=mablagh_gh_vam_nob.get();
                                 Long mande_vam_d=mande_vam_dar.get();

                                 sabt_vam_aza_sabad(id_dar_ghest_vam.substring(7), id_pa_vam.get(),mablagh_gh_vam,
                                         id_fish_daf,mande_vam_d);
                                 ////پایان ثبت وام اعضا داخل سبد


                             }
                         }
                         //
                        //sabt_tarakonesh_ozv();
                    }

                      if (trans.equals("no")) {
                        text.setText("خطا در انجام تراکنش رخ داده است ");
                          btn_check_orderid_idpay.setEnabled(false);
                          btn_home.setVisibility(View.VISIBLE);
                          btn_exit.setVisibility(View.VISIBLE);

                         }


            });

        }



    private void sabt_vam_aza_sabad(String id_dar_hozv_vam, String id_pa_vam,
                                    Long mablagh_gh_vam,
                                    AtomicReference<String> id_fish_daf,
                                    Long mande_vam_dar) {


            final String url = "http://sandogh-bs.makkh.ir/sabt_vam_aza/add_upd_vam.php";

            Response.Listener<String> listener = response -> {
                try {
                    //Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();

                    if(response.equals("insokupdok")) {
                        Toast.makeText(getApplicationContext(), Global_var.gmab_hagh_ozv.toString()+"مبلغ حق عضویت به موجودی افزوده شد", Toast.LENGTH_LONG).show();
                        Global_var.Gpasokh_upd_tbaza=response;
                    }
                    else{Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
                //   Toast.makeText(getApplicationContext(), Global_var.gname_ozv +" "+ Global_var.glastname_ozv, Toast.LENGTH_LONG).show();


            };
            Response.ErrorListener errorListener = new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getApplicationContext(), "خطا در اتصال به سرور یا اینترنت", Toast.LENGTH_SHORT).show();
                }
            };

            StringRequest request = new StringRequest(Request.Method.POST, url, listener, errorListener) {
                @Override
                protected Map<String, String> getParams() {
                    Map<String,String> Data=new HashMap<>();
                    Data.put("id_pa_vam",id_pa_vam);
                    Data.put("id_dary_vam","dgv"+ id_dar_hozv_vam);
                    Data.put("mablagh_gh_vam_nob",String.valueOf(mablagh_gh_vam));
                    Data.put("tarikh_dary_h_ozv",Utility.getCurrentShamsidate());
                    Data.put("shomare_ghest_vam","");
                    Data.put("id_fish_daf", java.lang.String.valueOf(id_fish_daf) );
                    Data.put("mande_vam_dar",String.valueOf(mande_vam_dar) );


                    return Data;
                }
            };

            MySingleton.getInstance(getApplicationContext()).addToRequestQueue(request);

        }



    private void sabt_hagh_ozviat_aza_sabad(String id_darhozv, String idozviat) {

            final ProgressDialog pDialog;
            pDialog = new ProgressDialog(this);
            pDialog.setMessage("در حال ارسال اطلاعات...");
            pDialog.setCancelable(false);
            pDialog.show();
            final String url = "http://sandogh-bs.makkh.ir/sabt_hagh_ozviat/update_mojodi_ozv.php";

            Response.Listener<String> listener = response -> {
                try {
                      //Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();

                    if(response.equals("insokupdok")) {
                        Global_var.Gpasokh_ins_tbhozv="insokupdok";
                        Toast.makeText(getApplicationContext(), idozviat+"sabt shod....", Toast.LENGTH_LONG).show();
                    }
                    else{Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
                //   Toast.makeText(getApplicationContext(), Global_var.gname_ozv +" "+ Global_var.glastname_ozv, Toast.LENGTH_LONG).show();
                pDialog.dismiss();


            };
            Response.ErrorListener errorListener = new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getApplicationContext(), "خطا در اتصال به سرور یا اینترنت", Toast.LENGTH_SHORT).show();

                    pDialog.dismiss();
                }
            };

            StringRequest request = new StringRequest(Request.Method.POST, url, listener, errorListener) {
                @Override

                protected Map<String, String> getParams() {
                    Map<String,String> Data=new HashMap<>();
                    Data.put("id_ozviat",idozviat);
                    Data.put("id_dary_h_ozv","dho"+ id_darhozv);
                    Data.put("mablagh_h_ozv",String.valueOf(Global_var.gmab_hagh_ozv) );
                    Data.put("tarikh_dary_h_ozv",Utility.getCurrentShamsidate());
                    Data.put("tozihat",id_tarakozh_idpay);
                    return Data;
                }
            };

            MySingleton.getInstance(getApplicationContext()).addToRequestQueue(request);

        }


    //
public void onBackPressed()
{
    finishAffinity(); // Close all activites
    System.exit(0);
}

    @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
            if(trans.equals("100")){
                text.setText("جهت بررسی شماره تراکنش :"+ Global_var.order_id_idpay+"بر روی دکمه دریافت بررسی صحت تراکنش ضربه بزنید");
                get_ok_orderid_idpay(Global_var.order_id_idpay);
                //p.setVisibility(View.INVISIBLE);
                btn_check_orderid_idpay.setVisibility(View.VISIBLE);
                btn_exit.setVisibility(View.INVISIBLE);
                btn_home.setVisibility(View.INVISIBLE);
                btnpay.setVisibility(View.INVISIBLE);
            }
        if(trans.equals("no")){
           // p.setVisibility(View.VISIBLE);
            btnpay.setVisibility(View.VISIBLE);
            btn_check_orderid_idpay.setVisibility(View.INVISIBLE);
            text.setText("اتصال به درگاه نا موفق بود دوباره تلاش بفرمایید");
        }
        }

    private void  get_ok_orderid_idpay(String order_id_idpay){
        final ProgressDialog pDialog;
        pDialog = new ProgressDialog(this);
        pDialog.setMessage("در حال ارسال اطلاعات...");
        pDialog.setCancelable(false);
        pDialog.show();
        final String url = "http://makkh.ir/idpay/send_id_tarakonesh_idpay.php";

        Response.Listener<String> listener = response -> {
                try {
                   //Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
                    JSONObject jsonObject = new JSONObject(response);
                    Toast.makeText(getApplicationContext(), jsonObject.getString("id_tarakozh_idpay"), Toast.LENGTH_LONG).show();

                    if(jsonObject.getString("id_tarakozh_idpay").length()>10) {
                       trans="ok_sabt_id";
                       id_tarakozh_idpay = jsonObject.getString("track_id");
                      }
                    else{trans=("no");}
                // Toast.makeText(getApplicationContext(), response.getString("lastname_ozv"), Toast.LENGTH_LONG).show();

                } catch (Exception e) {
                    e.printStackTrace();
                }
                //   Toast.makeText(getApplicationContext(), Global_var.gname_ozv +" "+ Global_var.glastname_ozv, Toast.LENGTH_LONG).show();
            pDialog.dismiss();


        };
        Response.ErrorListener errorListener = new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(), "خطا در اتصال به سرور یا اینترنت", Toast.LENGTH_SHORT).show();
                trans="ok_sabt_id";

                pDialog.dismiss();
            }
        };

        StringRequest request = new StringRequest(Request.Method.POST, url, listener, errorListener) {
            @Override

            protected Map<String, String> getParams() {
                Map<String,String> Data=new HashMap<>();
                Data.put("order_id_idpay",order_id_idpay);
                return Data;
            }
        };

        MySingleton.getInstance(getApplicationContext()).addToRequestQueue(request);

    }


}




