예제 #1
0
    //Inserta los amparos del certificado
    //Devuelve numero de amparos insertados
    public static string InsertarAmparos(List <string[]> matriz, string cer_Id, string ter_Id, int par_Id, int div)
    {
        string respuestaF = "CC: " + ter_Id + ";";
        DAOAdministrarCertificado objAdministrarCertificado = new DAOAdministrarCertificado();

        //Variables a insertar en la tabla NewExtraPrima
        double ext_ValorAsegurado = 0;
        double ext_ValorPrima     = 0;

        //Variables de los amparos
        int    amp_Id;
        string amp_Nombre;
        double ampcer_ValorAsegurado;
        double ampcer_Tasa;
        double ampcer_Prima;
        string temp;
        double ampcer_TasaCalculada;

        for (int i = 0; i < matriz.Count; i++)
        {
            amp_Id                = ConversionCodigoAmparo(matriz[i][1].ToString());
            amp_Nombre            = matriz[i][2];
            ampcer_ValorAsegurado = (matriz[i][3] == string.Empty) ? 0 : double.Parse(matriz[i][3].ToString());
            if (matriz[i][4].ToString() == string.Empty)
            {
                temp = "0";
            }
            else
            {
                if (matriz[i][4][0] == ',' || matriz[i][4][0] == '.')
                {
                    temp = "0" + matriz[i][4].ToString();
                }
                else
                {
                    temp = matriz[i][4].ToString();
                }
            }
            ampcer_Tasa          = double.Parse(temp.Replace(",", "."));
            ampcer_Prima         = (matriz[i][5] == string.Empty) ? 0 : double.Parse(matriz[i][5].ToString());
            ampcer_Prima         = ampcer_Prima / div;
            ampcer_TasaCalculada = Math.Round(ampcer_Prima * 1000000 / ampcer_ValorAsegurado, 0);

            //Consulta  Amparos del certificado
            DataTable dtAmparo         = new DataTable();
            DataTable dtAmparoAnterior = new DataTable();
            dtAmparo = objAdministrarCertificado.sp_ConsultarAmparos(cer_Id, ter_Id, par_Id.ToString(), amp_Id);
            if (dtAmparo.Rows.Count > 0)
            {
                respuestaF = respuestaF + "/NO/" + amp_Nombre + ";";
            }
            else
            {
                dtAmparoAnterior = objAdministrarCertificado.sp_ConsultarAmparos(cer_IdAnterior, ter_Id, par_Id.ToString(), amp_Id);
                if (dtAmparoAnterior.Rows.Count != 0)
                {
                    ampcer_Tasa = (ampcer_ValorAsegurado <= 0)? double.Parse(dtAmparoAnterior.Rows[0]["ampcer_Tasa"].ToString()) : ampcer_TasaCalculada;
                }
                objAdministrarCertificado.sp_InsertarAmparosCertificado(cer_Id, ter_Id, par_Id.ToString(), amp_Nombre, ampcer_ValorAsegurado, ampcer_Prima, ampcer_Tasa, amp_Id);
                respuestaF = respuestaF + "/SI/" + amp_Nombre + ";";
            }

            if (amp_Id == 1)
            {
                ext_ValorAsegurado = ampcer_ValorAsegurado;
            }
            else
            {
                if (par_Id > 2 && amp_Id == 5)
                {
                    ext_ValorAsegurado = ampcer_ValorAsegurado;
                }
            }
            ext_ValorPrima += ampcer_Prima;
        }
        //Consulta extra prima
        AdministrarCertificados objAdministrarCertificados = new AdministrarCertificados();

        objAdministrarCertificados.CrearExtraPrima(int.Parse(cer_Id), int.Parse(cer_Id), ext_ValorAsegurado, 0, ext_ValorPrima, par_Id);

        return(respuestaF);
    }