using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlTypes;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using PTMedicalInsurance.Common;
using PTMedicalInsurance.Helper;
using Newtonsoft.Json.Linq;
using PTMedicalInsurance.Forms;
using PTMedicalInsurance.Variables;
using PTMedicalInsurance.Business;

namespace PTMedicalInsurance.Forms
{
    public partial class ChooseCard : Form
    {
        public string cardType;
        public string businessType;
        public string ID,PatName,CBD;
        public int sL_CardType;

        //设置业务实例
        InvokeHelper invoker = new InvokeHelper();
        private HisIrisServices hIS = new HisIrisServices();

        public ChooseCard()
        {
            InitializeComponent();

            this.StartPosition = FormStartPosition.CenterParent;
        }

        private void btOk_Click(object sender, EventArgs e)
        {
            cardType = "0" + (rbgCardType.SelectedIndex +1).ToString();
            businessType = "01" + cbBusinessType.Text.Substring(0,3);

            Global.pat.OtherProv = rbgOtherProv.SelectedIndex;

            if ((rbgOtherProv.SelectedIndex == 1)&&(cbCBD.Text=="")&&(rbgCardType.SelectedIndex==1)) 
            {
                MessageBox.Show("身份证异地结算,请选择统筹区！");
                return;
            }
            // 身份证
            if (rbgCardType.SelectedIndex == 1)
            {
                if (tbID.Text == "")
                {
                    ID = "";
                    MessageBox.Show("身份证结算，需要输入身份证号");
                    return;
                }
                else
                {
                    ID = tbID.Text;
                }                

                PatName = tbName.Text;
            }

            //社保卡
            if (rbgCardType.SelectedIndex == 2)
            {
                if (cbCardType.Text == "")
                {
                    MessageBox.Show("读社保卡时需要选择卡类型!");
                    return;
                }
                sL_CardType = int.Parse(cbCardType.Text.Trim().Substring(0, 1));     //卡类型                
            }
            CBD = "";
            if (cbCBD.Text != "")
            {
                Global.pat.insuplc_admdvs = Global.pat.card.SearchAdmCode;
                CBD = cbCBD.Text;
            }


            DialogResult = DialogResult.OK;
        }

        private void ChooseCard_Load(object sender, EventArgs e)
        {
            rbgCardType.SelectedIndex = 2;      //身份证
            cbBusinessType.SelectedIndex = 0;   //社保卡

            rbgOtherProv.SelectedIndex = 0;     //本地

            if (Global.inf.interfaceDr == 12)//安徽省基线版-瑶海
            {
                rbgOtherProv.SelectedIndex = 1;
            }
            
            if (Global.inf.interfaceDr == 15)//安徽省基线版-蜀山老院
            {
                rbgOtherProv.SelectedIndex = 1;
            }            

        }

        private void rbgCardType_ValueChanged(object sender, int index, string text)
        {
            if (rbgCardType.SelectedIndex == 0)
            {
                cbBusinessType.Enabled = true;
            }
            else
            {
                cbBusinessType.Enabled = false;
            }
            if (rbgCardType.SelectedIndex == 1)
            {
                hIS.GetHisPatBaseInfo(out string errMsg);
                tbID.Text = Global.pat.certNO;
            }
                
            if (rbgCardType.SelectedIndex == 2)
            {
                cbCardType.SelectedIndex = 0;
                cbCardLevel.SelectedIndex = 2;
                cbCardType.Enabled = true;
                tbPassword.Enabled = true;
                //tbPassword.Text = "";
            }
            else
            {
                cbCardType.Enabled = false;
                tbPassword.Enabled = false;
            }

            if (rbgCardType.SelectedIndex != 1)
            {
                tbID.Text = "";
            }
        }

        private void btCancle_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
        }

        private void uiButton1_Click(object sender, EventArgs e)
        {
            string sInput = "", errorMsg="";

            JObject joData = new JObject();
            joData.Add("", "");

            JObject joInput = new JObject();
            joInput.Add("data", joData);

            InvokeHelper invoker = new InvokeHelper();
            // 重庆为1163?
            sInput = JsonHelper.setCenterInpar("1193", "");
            JObject joRtn =invoker.invokeCenterService("1193", sInput);
            if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
            {
                MessageBox.Show("修改卡密码失败：" + errorMsg);
            }
            else
            {
                MessageBox.Show("修改卡密码成功！");
            }
        }

        private void SearchAdmdvs()
        {
            JObject joAdmdvsInfo = new JObject();
            SearchAdmdvs Adm = new SearchAdmdvs();

            try
            {
                Global.pat.card.SearchAdmKey = cbCBD.Text;
                Adm.StartPosition = FormStartPosition.CenterParent;

                if (Adm.ShowDialog() == DialogResult.OK)
                {
                    cbCBD.Text = Global.pat.card.SearchAdmName;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("异常：" + ex.Message);
                return;
            }
        }

        private void tbID_TextChanged(object sender, EventArgs e)
        {

        }

        private void rbgOtherProv_ValueChanged(object sender, int index, string text)
        {

        }

        private void cbCBD_DoEnter(object sender, EventArgs e)
        {
            SearchAdmdvs();
        }
    }
}
