Ejemplo n.º 1
0
        private void Cal_ClaimShares_ADRS_pos(Dictionary <int, BD_Dividend> dic)
        {
            this.statusInfo.status = "Calculate ClaimShares_ADR positions";

            foreach (BD_Dividend dvd in dic.Values)
            {
                DTCPositionModelNumber_Mapping dm = DTC_model_master.GetMapping_modelNum(dvd.DTCPosition_ModelNumber);
                if (dm == null)
                {
                    continue;
                }

                dm.Create_headers();
                List <DTC_Position_Headers> exempt_headerList     = dm.Get_headersList("Exempt", null);
                List <DTC_Position_Headers> favorable_headerList  = dm.Get_headersList("Favorable", null);
                List <DTC_Position_Headers> chargeBack_headerList = dm.Get_headersList("CHARGEBACK", "'NON-DISCLOSED");

                foreach (BD_DTC_Position bdp in dvd.bdp_dic.Values)
                {
                    bdp.ExemptPosition     = bdp.GetSum_by_list(exempt_headerList);
                    bdp.FavorablePosition  = bdp.GetSum_by_list(favorable_headerList);
                    bdp.ChargeBackPosition = bdp.GetSum_by_list(chargeBack_headerList);

                    bdp.RemainingTotalADRS = bdp.Total_RecDate_Position - bdp.ClaimShares_ADRS_SUM;

                    ++this.statusInfo.recordNum;
                }
            }
        }
Ejemplo n.º 2
0
        public DTCPositionModelNumber_Mapping Get_DTCpos_model()
        {
            DTCPositionModelNumber_Mapping posMod = DTC_model_master.GetMapping_modelNum(this.DTCPosition_ModelNumber.Value);

            if (posMod != null)
            {
                posMod.Create_headers();
            }
            return(posMod);
        }
Ejemplo n.º 3
0
        /*--------------------------------------------------------------------------------------------------------------------------*/

        public void Calculate(int custodianID)
        {
            this.dvdCust = new DividendCustodian(custodianID);
            if (!this.dvdCust.Init_from_DB())
            {
                return;
            }

            Dividend dvd = new Dividend(this.dvdCust.DividendIndex.Value);

            if (!dvd.Init_from_DB(DividendTable_option.Dividend_Control_Approved))
            {
                return;
            }

            this.dvdCus_dic_all           = dvd.Get_dvdCust_dic(null);
            this.dvdCus_dic_custodianType = dvd.Get_dvdCust_dic("Custodian");

            //Get WithHolding Rate Set
            DTCPositionModelNumber_Mapping posMod = dvd.Get_DTCpos_model();

            if (posMod == null)
            {
                return;
            }

            Dictionary <decimal, List <DTC_Position_Headers> > whr_map = posMod.Get_WHRcol_mapping();
            HashSet <decimal> WHrate_hs = new HashSet <decimal>();

            foreach (decimal whr in whr_map.Keys)
            {
                WHrate_hs.Add(whr);
            }

            this.Cal_initAttr_eventInfo(dvd);              //Init name attributes
            this.Cal_initAttr_collections(WHrate_hs, dvd); //Init all levels based on WithHolding Rate

            //Special 4 Countries
            HashSet <string> country_hs = new HashSet <string>(StringComparer.OrdinalIgnoreCase);

            country_hs.Add("Finland"); country_hs.Add("Ireland");
            country_hs.Add("Norway"); country_hs.Add("France");

            if (country_hs.Contains(dvd.Country.Value))
            {
                this.Calculate_special_from_DTCposition(whr_map, dvd);
            }
            else
            {
                this.Calculate_commen_from_Detail(WHrate_hs, dvd);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Insert DTC Position using dataSet read from DES document
        /// </summary>
        public void Insert_DTC_position(DataSet ds, bool createNew_flag = true)
        {
            if (ds == null || ds.Tables.Count < 1)
            {
                return;
            }
            if (createNew_flag)
            {
                this.Delete_DTC_position();
            }

            DataTable dt = ds.Tables[0];

            HashSet <string> colName_hs = new HashSet <string>();

            foreach (DataColumn col in dt.Columns)
            {
                colName_hs.Add(col.ColumnName);
            }

            DTCPositionModelNumber_Mapping posMod = this.Get_DTCpos_model();

            if (posMod == null)
            {
                return;
            }
            Dictionary <int, List <string> > mapping = posMod.Get_colHeader_mapping(colName_hs);

            Bulk_DBcmd buk_ins = new Bulk_DBcmd();

            foreach (DataRow row in dt.Rows)
            {
                Position dtcPos = new Position();
                dtcPos.DividendIndex = this.DividendIndex;

                dtcPos.DTC_Number = row["DTC Participant No."].ToString();
                if (string.IsNullOrEmpty(dtcPos.DTC_Number))
                {
                    continue;
                }

                dtcPos.Company_Name = row["DTC Participant Name"].ToString();

                decimal tempDecimal = -1;
                if (decimal.TryParse(row["R/D Position"].ToString(), out tempDecimal))
                {
                    dtcPos.Total_RecDate_Position = tempDecimal;
                }

                foreach (KeyValuePair <int, List <string> > pair in mapping)
                {
                    List <string> lst = pair.Value;
                    if (lst.Count > 0)
                    {
                        dtcPos.RatePositions.Set_rateValue(pair.Key, row[lst[0]].ToString());
                    }
                    if (lst.Count > 1)
                    {
                        dtcPos.Rate_Chargebacks.Set_rateValue(pair.Key, row[lst[1]].ToString());
                    }
                }

                buk_ins.Add_DBcmd(dtcPos.Get_DBinsert());
            }

            int count = buk_ins.SaveToDB(Utility.Get_DRWIN_hDB());
        }