Пример #1
0
        public string CloseResWkbk()
        {
            foreach (Excel.Workbook Wkbk in Globals.ThisAddIn.Application.Workbooks)
            {
                if (Wkbk.Name.ToString().Split('_').Count() > 1 &&
                    Wkbk.Name.ToString().Substring(0, 4) == "GAAP")
                {
                    Wkbk.Close(false);
                    return(Wkbk.Name);
                }
            }

            return("");
        }
Пример #2
0
        private void UploadButton_Click(object sender, EventArgs e)
        {
            //main: open files, fill datatable, upload to SQL tmp database
            DataTable myData         = (DataTable)this.FileDropDataGridView.DataSource;
            Boolean   ResExist       = false;
            Boolean   MEExist        = false;
            Boolean   ClaimListExist = false;

            if (UniqueAsAt(myData) > 1)
            {
                MessageBox.Show(this, "Error: AsAt should be the same for each file.");
                return;
            }

            //load the version control userform with all versions for that asat choosen
            frmUploader_VersionControl testDialog = new frmUploader_VersionControl();

            testDialog.StartPosition = FormStartPosition.CenterScreen;
            testDialog.GetVersion(myData.Rows[0][1].ToString());
            testDialog.TopMost = true;

            if (testDialog.ShowDialog(this) == DialogResult.OK)
            {
                //process start
                this.toolStripStatusLabel1.Text = "Uploading";

                //open new excel application to accomendate all the spreadsheets
                //*********************************************************************************************************
                Excel.Application myApp = new Excel.Application();
                myApp.Visible = false;

                //Excel.Application myApp = Globals.ThisAddIn.Application;

                //*********************************************************************************************************

                //set up the major event file
                Excel.Workbook MEWkbk = null;

                //set up the Claimsband file
                Excel.Workbook CBWkbk = null;

                //set up a reserving file
                Excel.Workbook ResWkbk = null;

                //set up a ClaimsList file
                Excel.Workbook ClaimsListWkbk = null;

                for (int i = 0; i < myData.Rows.Count; i++)
                {
                    string openWkbkStatus = OpenWkbk(myData.Rows[i][0].ToString(), myApp);

                    if (myData.Rows[i][2].ToString() == "MajorEvent File")
                    {
                        MEWkbk = myApp.Workbooks[myData.Rows[i][0].ToString().Split('\\').Last()];
                    }

                    if (myData.Rows[i][2].ToString() == "ClaimsBand File")
                    {
                        CBWkbk = myApp.Workbooks[myData.Rows[i][0].ToString().Split('\\').Last()];
                    }

                    if (myData.Rows[i][2].ToString() == "Reserving File")
                    {
                        ResWkbk = myApp.Workbooks[myData.Rows[i][0].ToString().Split('\\').Last()];
                    }

                    if (myData.Rows[i][2].ToString() == "ClaimsList File")
                    {
                        ClaimsListWkbk = myApp.Workbooks[myData.Rows[i][0].ToString().Split('\\').Last()];
                    }

                    //progressbar
                    this.toolStripProgressBar1.Value = 40 * (i + 1) / (myData.Rows.Count);
                }

                //progressbar
                this.toolStripProgressBar1.Value = 40;

                //recalculate before populate datatable
                myApp.Calculate();

                //progressbar
                this.toolStripProgressBar1.Value = 50;

                //set up datatable to collect data from excel files
                DataTable ResData        = new DataTable();
                DataTable MEData         = new DataTable();
                DataTable CBData         = new DataTable();
                DataTable ClaimsListData = new DataTable();

                // Reserving files
                if (ResWkbk != null)
                {
                    ResExist = true;

                    //get the parameters for tab name, starting rows, starting columns...
                    DataTable parData = SQLResModule.GetWkbkParameterFromSQL();

                    //set up FX rates from reservering files
                    SQLResModule.SetFXRate(myApp);

                    //populate reserving datatable
                    ResData = SQLResModule.ReservingFileData(parData, myApp);

                    //Add AsAt Column
                    DataColumn AsAtCol = new DataColumn("AsAt");
                    AsAtCol.DefaultValue = myData.Rows[0][1].ToString();
                    ResData.Columns.Add(AsAtCol);
                    AsAtCol.SetOrdinal(0);

                    //Add Version Column
                    DataColumn VersionCol = new DataColumn("Version");
                    VersionCol.DefaultValue = testDialog.Version.ToString();
                    ResData.Columns.Add(VersionCol);
                    VersionCol.SetOrdinal(1);

                    //upload raw data to SQL
                    uploadToSQL(ResData, "tmp_Reservingfiles_InputData");
                }

                //prograss bar
                this.toolStripProgressBar1.Value = 60;

                //Major Event Data
                DataTable MEuploadData = new DataTable();

                if (MEWkbk != null)
                {
                    MEExist = true;

                    try
                    {
                        Excel.Worksheet mySheet = MEWkbk.Worksheets["ME FlatFile"];
                        Excel.Range     myRange = mySheet.UsedRange;

                        object[,] XlData = myRange.Value2;

                        MEData.Columns.Add("Event", System.Type.GetType("System.String"));
                        MEData.Columns.Add("Cedant", System.Type.GetType("System.String"));
                        MEData.Columns.Add("UWRef", System.Type.GetType("System.String"));
                        MEData.Columns.Add("UWY", System.Type.GetType("System.Int32"));
                        MEData.Columns.Add("DataType", System.Type.GetType("System.String"));
                        MEData.Columns.Add("SBFClass", System.Type.GetType("System.String"));
                        MEData.Columns.Add("ClaimType", System.Type.GetType("System.String"));
                        MEData.Columns.Add("RIType", System.Type.GetType("System.String"));
                        MEData.Columns.Add("Currency", System.Type.GetType("System.String"));
                        MEData.Columns.Add("Value", System.Type.GetType("System.Double"));
                        MEData.Columns.Add("TextValue", System.Type.GetType("System.String"));

                        var nColumn = myRange.Columns.Count;
                        var nRow    = myRange.Rows.Count;

                        for (int row = 2; row <= nRow; row++)
                        {
                            DataRow XlDataRow = MEData.NewRow();

                            XlDataRow["Event"]     = XlData[row, 2]?.ToString();
                            XlDataRow["Cedant"]    = XlData[row, 3]?.ToString();
                            XlDataRow["UWRef"]     = XlData[row, 4]?.ToString();
                            XlDataRow["UWY"]       = Convert.ToInt32(XlData[row, 5]?.ToString());
                            XlDataRow["DataType"]  = XlData[row, 6]?.ToString();
                            XlDataRow["SBFClass"]  = XlData[row, 7]?.ToString();
                            XlDataRow["ClaimType"] = XlData[row, 8]?.ToString();
                            XlDataRow["RIType"]    = XlData[row, 9]?.ToString();
                            XlDataRow["Currency"]  = XlData[row, 10]?.ToString();
                            XlDataRow["Value"]     = Convert.ToDouble(XlData[row, 11]?.ToString());
                            XlDataRow["TextValue"] = XlData[row, 12]?.ToString();

                            MEData.Rows.Add(XlDataRow);
                        }

                        //Add AsAt Column
                        DataColumn AsAtCol = new DataColumn("AsAt");
                        AsAtCol.DefaultValue = myData.Rows[0][1].ToString();
                        MEData.Columns.Add(AsAtCol);
                        AsAtCol.SetOrdinal(0);

                        //Add Version Column
                        DataColumn VersionCol = new DataColumn("Version");
                        VersionCol.DefaultValue = testDialog.Version.ToString();
                        MEData.Columns.Add(VersionCol);
                        VersionCol.SetOrdinal(1);

                        SQLModule.UploadMEToSQL(MEData, "tmp_ME_InputData");

                        SQLModule.MESQLStoredProcedure("sp_tmp_ME_PaidOS", testDialog.Version.ToString(), myData.Rows[0][1].ToString());
                    }
                    catch
                    {
                    }
                }

                //prograss bar
                this.toolStripProgressBar1.Value = 70;

                //Claim Band part

                /*
                 * if (CBWkbk != null)
                 * {
                 *  CBData.Columns.Add("AsAt", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("Event", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("Cedant", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("UWRef", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("UWY", System.Type.GetType("System.Int32"));
                 *  CBData.Columns.Add("DataType", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("SBFClass", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("ClaimType", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("RIType", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("Currency", System.Type.GetType("System.String"));
                 *  CBData.Columns.Add("Value", System.Type.GetType("System.Double"));
                 *  CBData.Columns.Add("TextValue", System.Type.GetType("System.String"));
                 *
                 *  try
                 *  {
                 *      foreach (Excel.Worksheet tmpSheet in CBWkbk.Worksheets)
                 *      {
                 *          switch (tmpSheet.Name.ToString())
                 *          {
                 *              case "Ultimates":
                 *              case "Gross Premiums":
                 *                  ExtractClaimsBandData(tmpSheet, CBData, false, false);
                 *                  break;
                 *
                 *              case "Gross Claims":
                 *                  ExtractClaimsBandData(tmpSheet, CBData, true, false);
                 *                  break;
                 *
                 *              case "RI Premiums":
                 *                  ExtractClaimsBandData(tmpSheet, CBData, false, true);
                 *                  break;
                 *
                 *              case "RI Claims":
                 *                  ExtractClaimsBandData(tmpSheet, CBData, true, true);
                 *                  break;
                 *
                 *              default:
                 *                  break;
                 *          }
                 *      }
                 *
                 *  }
                 *  catch (Exception ex)
                 *  {
                 *      MessageBox.Show(ex.ToString());
                 *  }
                 *
                 *  AccessModule.UploadDataToAccess(CBData, @"U:\Reserving\Claims Band\Claims Band.accdb", @"ClaimsBand_FlatFile", true);
                 * }
                 */


                //ClaimsList part
                if (ClaimsListWkbk != null)
                {
                    ClaimListExist = true;

                    ClaimsListData.Columns.Add("SBFClass", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("UWRef", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Bureau Claim Assured", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Risk Code", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("UWY", System.Type.GetType("System.Int32"));
                    ClaimsListData.Columns.Add("Claim Ref", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Claim Status", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("EventCode", System.Type.GetType("System.Int32"));
                    ClaimsListData.Columns.Add("Date of Loss", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Date Last Movement", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Movement - Date Entered", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Reference", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Loss Title", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Current Narrative", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Currency", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Trust Fund Code", System.Type.GetType("System.String"));
                    ClaimsListData.Columns.Add("Paid Claims", System.Type.GetType("System.Double"));
                    ClaimsListData.Columns.Add("OS Claims", System.Type.GetType("System.Double"));

                    Excel.Range myClaimListRange = ClaimsListWkbk.Sheets["Eclipse Data"].UsedRange;

                    object[,] ClaimsListSheetData = myClaimListRange.Value2;

                    var nClaimListColumn = myClaimListRange.Columns.Count;
                    var nClaimListRow    = myClaimListRange.Rows.Count;


                    for (int row = 2; row <= nClaimListRow - 6; row++)
                    {
                        if (ClaimsListSheetData[row, 1]?.ToString() != "" &&
                            ClaimsListSheetData[row, 1]?.ToString() != "Totals")
                        {
                            DataRow newRow = ClaimsListData.NewRow();

                            newRow["SBFClass"]             = ClaimsListSheetData[row, 1]?.ToString();
                            newRow["UWRef"]                = ClaimsListSheetData[row, 3]?.ToString();
                            newRow["Bureau Claim Assured"] = ClaimsListSheetData[row, 4]?.ToString();
                            newRow["Risk Code"]            = ClaimsListSheetData[row, 5]?.ToString();
                            newRow["UWY"]          = Convert.ToInt32(ClaimsListSheetData[row, 6]?.ToString());
                            newRow["Claim Ref"]    = ClaimsListSheetData[row, 7]?.ToString();
                            newRow["Claim Status"] = ClaimsListSheetData[row, 8]?.ToString();
                            newRow["EventCode"]    = Convert.ToInt32(ClaimsListSheetData[row, 9]?.ToString());
                            if (ClaimsListSheetData[row, 10]?.ToString() != "")
                            {
                                if (Convert.ToDouble(ClaimsListSheetData[row, 10]?.ToString()) > 0)
                                {
                                    DateTime DateLossTo = DateTime.FromOADate(Convert.ToDouble(ClaimsListSheetData[row, 10]?.ToString()));
                                    newRow["Date of Loss"] = DateLossTo;
                                }
                            }
                            if (ClaimsListSheetData[row, 12]?.ToString() != "")
                            {
                                DateTime DateLossTo = DateTime.FromOADate(Convert.ToDouble(ClaimsListSheetData[row, 12]?.ToString()));
                                newRow["Date Last Movement"] = DateLossTo;
                            }
                            if (ClaimsListSheetData[row, 13]?.ToString() != "")
                            {
                                DateTime DateLossTo = DateTime.FromOADate(Convert.ToDouble(ClaimsListSheetData[row, 13]?.ToString()));
                                newRow["Movement - Date Entered"] = DateLossTo;
                            }
                            newRow["Reference"]         = ClaimsListSheetData[row, 14]?.ToString();
                            newRow["Loss Title"]        = ClaimsListSheetData[row, 15]?.ToString();
                            newRow["Current Narrative"] = ClaimsListSheetData[row, 16]?.ToString();
                            newRow["Currency"]          = ClaimsListSheetData[row, 17]?.ToString();
                            newRow["Trust Fund Code"]   = ClaimsListSheetData[row, 18]?.ToString();
                            newRow["Paid Claims"]       = Convert.ToDouble(ClaimsListSheetData[row, 19]?.ToString())
                                                          + Convert.ToDouble(ClaimsListSheetData[row, 20]?.ToString());
                            newRow["OS Claims"] = Convert.ToDouble(ClaimsListSheetData[row, 21]?.ToString())
                                                  + Convert.ToDouble(ClaimsListSheetData[row, 22]?.ToString());

                            ClaimsListData.Rows.Add(newRow);
                        }
                    }

                    ClaimListToSQL(ClaimsListData);

                    //call stored procedure in SQL
                    using (SqlConnection connectionSQL = new SqlConnection(@"Database=ADS;Server=CREREPSQL03;Integrated Security=True;connect timeout=30"))
                    {
                        connectionSQL.Open();

                        SqlCommand storedProcedureComm = new SqlCommand("sp_ClaimList_0_RunAll", connectionSQL);
                        storedProcedureComm.CommandType = CommandType.StoredProcedure;
                        try
                        {
                            storedProcedureComm.ExecuteNonQuery();
                        }
                        catch
                        {
                            MessageBox.Show("A problem with sp_ClaimList_0_RunAll.");
                        }

                        connectionSQL.Close();
                    }
                }

                //prograss bar
                this.toolStripProgressBar1.Value = 80;


                //upload various table into imp_tmp_UploadData
                using (SqlConnection connectionSQL = new SqlConnection(@"Database=ADS;Server=CREREPSQL03;Integrated Security=True;connect timeout=30"))
                {
                    connectionSQL.Open();

                    SqlCommand storedProcedureComm = new SqlCommand("sp_tmp_upd_3_uploadData", connectionSQL);
                    storedProcedureComm.CommandType = CommandType.StoredProcedure;
                    try
                    {
                        storedProcedureComm.Parameters.Add("@ResExist", SqlDbType.Bit).Value = ResExist;
                        storedProcedureComm.Parameters.Add("@MEExist", SqlDbType.Bit).Value  = MEExist;
                        storedProcedureComm.Parameters.Add("@CLExist", SqlDbType.Bit).Value  = ClaimListExist;
                        storedProcedureComm.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(this, ex.ToString() + @"A problem with sp_tmp_upd_3_uploadData.");
                    }

                    connectionSQL.Close();
                }

                this.toolStripProgressBar1.Value = 90;


                //close all excel spreadsheets
                foreach (Excel.Workbook Wkbk in myApp.Workbooks)
                {
                    Wkbk.Close(false);
                }


                //quite the excel application without saving

                //**********************************************************************************************
                myApp.Quit();
                //**********************************************************************************************


                //prograss bar
                this.toolStripProgressBar1.Value = 100;

                this.Activate();
                this.toolStripStatusLabel1.Text = "Upload success";
            }

            //clear up
            testDialog.Dispose();
        }