Ejemplo n.º 1
0
        public void IsZeroTest()
        {
            ExcoMoney result = new ExcoMoney();

            Assert.IsFalse(moneyCA.IsZero());
            Assert.IsFalse(moneyUS.IsZero());
            Assert.IsFalse(moneyCP.IsZero());
            Assert.IsTrue(result.IsZero());
        }
Ejemplo n.º 2
0
        public void OperatorPlusTest()
        {
            ExcoMoney result = new ExcoMoney();

            result = moneyCA + moneyCP + moneyUS;
            Assert.AreEqual(moneyCA.amountCA + moneyCP.amountCA + moneyUS.amountCA, result.amountCA);
            Assert.AreEqual(moneyCA.amountUS + moneyCP.amountUS + moneyUS.amountUS, result.amountUS);
            Assert.AreEqual(moneyCA.amountCP + moneyCP.amountCP + moneyUS.amountCP, result.amountCP);
        }
Ejemplo n.º 3
0
 // default constructor
 public ExcoCategory()
 {
     // initialize
     for (int i = 0; i < 12; i++)
     {
         actualThisYear[i]      = new ExcoMoney();
         actualRatioThisYear[i] = 0.0;
         budgetThisYear[i]      = new ExcoMoney();
         budgetRatioThisYear[i] = 0.0;
         actualLastYear[i]      = new ExcoMoney();
         actualRatioLastYear[i] = 0.0;
     }
 }
Ejemplo n.º 4
0
 // default constructor
 public ExcoGroup(string sGroupName)
 {
     this.sGroupName = sGroupName;
     for (int i = 0; i < 12; i++)
     {
         actualThisYear[i]      = new ExcoMoney();
         actualRatioThisYear[i] = 0.0;
         budgetThisYear[i]      = new ExcoMoney();
         budgetRatioThisYear[i] = 0.0;
         actualLastYear[i]      = new ExcoMoney();
         actualRatioLastYear[i] = 0.0;
     }
 }
Ejemplo n.º 5
0
        public void GetInfo(ExcoCalendar calendar)
        {
            // fiscal period
            string fp = calendar.GetFiscalMonth().ToString("D2");
            // fiscal year
            string fy = calendar.GetFiscalYear().ToString("D2");

            if (name.Length > 0)
            {
                ExcoODBC solarsoft = ExcoODBC.Instance;
                solarsoft.Open(Database.CMSDAT);
                string query   = "select coalesce(sum(aj4tt" + fp + "), 0.0), coalesce(sum(aj4cb" + fp + "), 0.0), coalesce(sum(";
                int    iPeriod = Convert.ToInt32(fp);
                while (iPeriod > 0)
                {
                    query += "aj4tt" + iPeriod.ToString("D2") + "+aj4ob" + iPeriod.ToString("D2");;
                    iPeriod--;
                    if (iPeriod > 0)
                    {
                        query += "+";
                    }
                    else
                    {
                        query += "), 0.0), coalesce(sum(";
                    }
                }
                iPeriod = Convert.ToInt32(fp);
                while (iPeriod > 0)
                {
                    query += "aj4cb" + iPeriod.ToString("D2");
                    iPeriod--;
                    if (iPeriod > 0)
                    {
                        query += "+";
                    }
                    else
                    {
                        query += "), 0.0) from cmsdat.glmt left join cmsdat.mast on aj4comp=" + plant + " and azcomp=aj4comp and azgl#1=aj4gl#1 and aj4gl#2=azgl#2 and aj4ccyy=20" + fy + " where azgrop like '" + groupID + "%'";
                    }
                }
                OdbcDataReader reader = solarsoft.RunQuery(query);
                if (reader.Read())
                {
                    tpActual  = new ExcoMoney(calendar, Convert.ToDouble(reader[0]), currency);
                    tpBudget  = new ExcoMoney(calendar, Convert.ToDouble(reader[1]), currency);
                    ytdActual = new ExcoMoney(calendar, Convert.ToDouble(reader[2]), currency);
                    ytdBudget = new ExcoMoney(calendar, Convert.ToDouble(reader[3]), currency);
                }
                reader.Close();
            }
        }
Ejemplo n.º 6
0
        private void GetAccountsDataFiscalPlants()
        {
            // this year
            ExcoODBC solarsoft = ExcoODBC.Instance;

            solarsoft.Open(Database.CMSDAT);
            string query = "select sum(coalesce(aj4tt01,0.0)) as actual01, sum(coalesce(aj4tt02,0.0)) as actual02, sum(coalesce(aj4tt03,0.0)) as actual03, sum(coalesce(aj4tt04,0.0)) as actual04, sum(coalesce(aj4tt05,0.0)) as actual05, sum(coalesce(aj4tt06,0.0)) as actual06, sum(coalesce(aj4tt07,0.0)) as actual07, sum(coalesce(aj4tt08,0.0)) as actual08, sum(coalesce(aj4tt09,0.0)) as actual09, sum(coalesce(aj4tt10,0.0)) as actual10, sum(coalesce(aj4tt11,0.0)) as actual11, sum(coalesce(aj4tt12,0.0)) as actual12, sum(coalesce(aj4cb01,0.0)) as budget01, sum(coalesce(aj4cb02,0.0)) as budget02, sum(coalesce(aj4cb03,0.0)) as budget03, sum(coalesce(aj4cb04,0.0)) as budget04, sum(coalesce(aj4cb05,0.0)) as budget05, sum(coalesce(aj4cb06,0.0)) as budget06, sum(coalesce(aj4cb07,0.0)) as budget07, sum(coalesce(aj4cb08,0.0)) as budget08, sum(coalesce(aj4cb09,0.0)) as budget09, sum(coalesce(aj4cb10,0.0)) as budget10, sum(coalesce(aj4cb11,0.0)) as budget11, sum(coalesce(aj4cb12,0.0)) as budget12 from cmsdat.glmt where aj4comp=" + plantID + " and aj4gl#1=" + accountList[0].glNo1 + " and (";

            for (int i = 0; i < accountList.Count; i++)
            {
                query += "aj4gl#2=" + accountList[i].glNo2;
                if (i < accountList.Count - 1)
                {
                    query += " or ";
                }
            }
            query += ") and aj4ccyy=20";
            OdbcDataReader reader = solarsoft.RunQuery(query + calendar.GetFiscalYear());

            if (reader.Read() && !reader.IsDBNull(0))
            {
                for (int i = 1; i <= 12; i++)
                {
                    ExcoCalendar tempCalendar = new ExcoCalendar(calendar.GetFiscalYear(), i, true, plantID);
                    actualThisYearList[i] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
                    budgetThisYearList[i] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["budget" + i.ToString("D2")]) * -1.0, currency);
                }
            }
            reader.Close();
            // last year
            reader = solarsoft.RunQuery(query + calendar.GetFiscalYear() + "- 1");
            if (reader.Read() && !reader.IsDBNull(0))
            {
                for (int i = 1; i <= 12; i++)
                {
                    ExcoCalendar tempCalendar = new ExcoCalendar(calendar.GetFiscalYear() - 1, i, true, plantID);
                    actualLastYearList[i] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
                }
            }
            reader.Close();
        }
Ejemplo n.º 7
0
        public void Run(int plantID)
        {
            switch (plantID)
            {
            case 1:
                plant = new Plant(plantID, "CA");
                break;

            case 3:
            case 5:
                plant = new Plant(plantID, "US");
                break;

            case 4:
                plant = new Plant(plantID, "CP");
                break;

            default:
                throw new Exception("Invalid plant ID: " + plantID.ToString());
            }
            ExcoCalendar calendar = new ExcoCalendar(DateTime.Today.Year - 2000, DateTime.Today.Month, false, plantID);
            // get customer, currency, territory, plant and year/period
            ExcoODBC database = ExcoODBC.Instance;

            database.Open(Database.CMSDAT);
            string         query  = "select dhinv#, dhbcs#, dhscs#, dhcurr, dhterr, dharyr, dharpr, dhord# from cmsdat.oih where dhpost='Y' and dharyr>=" + (calendar.GetFiscalYear() - 2).ToString() + " and dhplnt=" + plantID.ToString();
            OdbcDataReader reader = database.RunQuery(query);

            while (reader.Read())
            {
                int          invNum        = Convert.ToInt32(reader["dhinv#"]);
                int          soNum         = Convert.ToInt32(reader["dhord#"]);
                string       billTo        = reader["dhbcs#"].ToString().Trim();
                string       shipTo        = reader["dhscs#"].ToString().Trim();
                string       currency      = reader["dhcurr"].ToString().Trim();
                string       territory     = reader["dhterr"].ToString().Trim();
                int          invoiceYear   = Convert.ToInt32(reader["dharyr"]);
                int          invoicePeriod = Convert.ToInt32(reader["dharpr"]);
                ExcoCustomer customer;
                if (customerBillToMap.ContainsKey(billTo))
                {
                    customer = customerBillToMap[billTo];
                }
                else if (customerShipToMap.ContainsKey(billTo))
                {
                    customer = customerShipToMap[billTo];
                }
                else if (customerBillToMap.ContainsKey(shipTo))
                {
                    customer = customerBillToMap[shipTo];
                }
                else if (customerShipToMap.ContainsKey(shipTo))
                {
                    customer = customerShipToMap[shipTo];
                }
                else
                {
                    throw new Exception("Unknown customer: " + billTo + " " + shipTo + " invoice#:" + invNum.ToString());
                }
                Invoice invoice = new Invoice();
                invoice.orderNum   = soNum;
                invoice.invoiceNum = invNum;
                invoice.customer   = customer;
                invoice.currency   = currency;
                invoice.territory  = territory;
                invoice.plant      = plantID;
                invoice.calendar   = new ExcoCalendar(invoiceYear, invoicePeriod, true, plantID);
                invoiceMap.Add(invNum, invoice);
            }
            reader.Close();
            // get sales
            query  = "select diinv#, sum(dipric*diqtsp) as sale from cmsdat.oid where diglcd='SAL' group by diinv#";
            reader = database.RunQuery(query);
            while (reader.Read())
            {
                int invNum = Convert.ToInt32(reader[0]);
                if (invoiceMap.ContainsKey(invNum))
                {
                    invoiceMap[invNum].sale += Convert.ToDouble(reader
                                                                [1]);
                }
            }
            reader.Close();
            // get discount
            query  = "select flinv#, coalesce(sum(fldext), 0.0) from cmsdat.ois where fldisc like 'D%' or fldisc like 'M%' group by flinv#";
            reader = database.RunQuery(query);
            while (reader.Read())
            {
                int invNum = Convert.ToInt32(reader[0]);
                if (invoiceMap.ContainsKey(invNum))
                {
                    invoiceMap[invNum].discount += Convert.ToDouble(reader
                                                                    [1]);
                }
            }
            reader.Close();
            // get fast track
            query  = "select flinv#, coalesce(sum(fldext), 0.0) from cmsdat.ois where fldisc like 'F%' group by flinv#";
            reader = database.RunQuery(query);
            while (reader.Read())
            {
                int invNum = Convert.ToInt32(reader[0]);
                if (invoiceMap.ContainsKey(invNum))
                {
                    invoiceMap[invNum].fastTrack += Convert.ToDouble(reader[1]);
                }
            }
            reader.Close();
            // get steel surcharge
            query  = "select flinv#, coalesce(sum(fldext), 0.0) from cmsdat.ois where fldisc like 'S%' or fldisc like 'P%' group by flinv#";
            reader = database.RunQuery(query);
            while (reader.Read())
            {
                int invNum = Convert.ToInt32(reader[0]);
                if (invoiceMap.ContainsKey(invNum))
                {
                    invoiceMap[invNum].surcharge += Convert.ToDouble(reader[1]);
                }
            }
            reader.Close();
            // get credit
            query  = "select dhinv#, coalesce(dipric*(max(diqtso,diqtsp)), 0.0) from cmsdat.oih, cmsdat.oid where dhincr='C' and dhpost='Y' and dhinv#=diinv# and diglcd='SAL'";
            reader = database.RunQuery(query);
            while (reader.Read())
            {
                int invNum = Convert.ToInt32(reader[0]);
                if (invoiceMap.ContainsKey(invNum))
                {
                    invoiceMap[invNum].credit += Convert.ToDouble(reader[1]);
                }
            }
            reader.Close();
            // get budgets
            database.Open(Database.DECADE_MARKHAM);
            switch (plantID)
            {
            case 1:
                query = "select CustomerID, Currency, Period01, Period02, Period03, Period04, Period05, Period06, Period07, Period08, Period09, Period10, Period11, Period12 from tiger.dbo.Markham_Budget where Year=20" + fiscalYear.ToString();
                break;

            case 4:
                query = "select CustomerID, Currency, Period01, Period02, Period03, Period04, Period05, Period06, Period07, Period08, Period09, Period10, Period11, Period12 from tiger.dbo.Colombia_Budget where Year=20" + fiscalYear.ToString();
                break;

            case 3:
                query = "select CustomerID, Currency, Period01, Period02, Period03, Period04, Period05, Period06, Period07, Period08, Period09, Period10, Period11, Period12 from tiger.dbo.Michigan_Budget where Year=20" + fiscalYear.ToString();
                break;

            case 5:
                query = "select CustomerID, Currency, Period01, Period02, Period03, Period04, Period05, Period06, Period07, Period08, Period09, Period10, Period11, Period12 from tiger.dbo.Texas_Budget where Year=20" + fiscalYear.ToString();
                break;
            }
            reader = database.RunQuery(query);
            while (reader.Read())
            {
                string           currency   = reader[1].ToString();
                List <ExcoMoney> budgetList = new List <ExcoMoney>();
                for (int i = 0; i < 12; i++)
                {
                    ExcoMoney budget = new ExcoMoney(new ExcoCalendar(fiscalYear, i + 1, true, 1), Convert.ToDouble(reader[i + 2]), currency);
                    budgetList.Add(budget);
                }
                budgetMap.Add(reader[0].ToString().Trim(), budgetList);
            }
            reader.Close();
            // get parts
            database.Open(Database.CMSDAT);
            query  = "select diord#, dimajr, didesc, dipart from cmsdat.oid where distkl='" + plantID.ToString("D3") + "PRD'";
            reader = database.RunQuery(query);
            while (reader.Read())
            {
                int    soNum = Convert.ToInt32(reader["diord#"]);
                string part  = reader["dipart"].ToString().Trim();
                string desc  = reader["didesc"].ToString().Trim();
                string type  = reader["dimajr"].ToString().Trim();
                if (desc.Contains("NCR ") || part.Contains("NCR "))
                {
                    type = "NCR";
                }
                if (partMap.ContainsKey(soNum))
                {
                    partMap[soNum].Add(type);
                }
                else
                {
                    List <string> typeList = new List <string>();
                    typeList.Add(type);
                    partMap.Add(soNum, typeList);
                }
            }
            reader.Close();
            // build plant data structure
            foreach (ExcoCustomer customer in customerBillToMap.Values)
            {
                plant.AddCustomer(customer, invoiceMap, fiscalYear, doesIncludeSurcharge, budgetMap, partMap);
            }
            plant.GetSurcharge();
            plant.CountParts();
        }
Ejemplo n.º 8
0
        public void GetData(Dictionary <int, Invoice> invoiceMap, int fiscalYear, bool doesIncludeSurcharge, Dictionary <string, List <ExcoMoney> > budgetMap, Dictionary <int, List <string> > partsMap)
        {
            // get actual invoice amount
            foreach (Invoice invoice in invoiceMap.Values)
            {
                if (invoice.plant == plantID)
                {
                    if (invoice.customer.ShipToID.Contains(excoCustomer.ShipToID) || invoice.customer.ShipToID.Contains(excoCustomer.BillToID) || invoice.customer.ShipToID.Contains(excoCustomer.SillyID) || invoice.customer.BillToID.Contains(excoCustomer.ShipToID) || invoice.customer.BillToID.Contains(excoCustomer.BillToID) || invoice.customer.BillToID.Contains(excoCustomer.SillyID) || invoice.customer.SillyID.Contains(excoCustomer.ShipToID) || invoice.customer.SillyID.Contains(excoCustomer.BillToID) || invoice.customer.SillyID.Contains(excoCustomer.SillyID))
                    {
                        int month = invoice.calendar.GetFiscalMonth();
                        if (4 != plantID)
                        {
                            // build actual list this year
                            if (invoice.calendar.GetFiscalYear() == fiscalYear)
                            {
                                actualList[month]    += invoice.GetAmount(doesIncludeSurcharge);
                                actualTotal          += invoice.GetAmount(doesIncludeSurcharge);
                                surchargeList[month] += new ExcoMoney(invoice.calendar, invoice.surcharge, invoice.currency);
                                // count parts
                                if (partsMap.ContainsKey(invoice.orderNum))
                                {
                                    foreach (string part in partsMap[invoice.orderNum])
                                    {
                                        if (0 == part.CompareTo("NCR"))
                                        {
                                            ncrList[month]++;
                                            break;
                                        }
                                        else if (part.Contains("HD") || part.Contains("HU"))
                                        {
                                            hollowList[month]++;
                                            break;
                                        }
                                        else if (part.Contains("BA") || part.Contains("SD") || part.Contains("BO") || part.Contains("FD") || part.Contains("RI") || part.Contains("SO") || part.Contains("BK"))
                                        {
                                            solidList[month]++;
                                            break;
                                        }
                                    }
                                }
                            }
                            // build actual list last year
                            else if (invoice.calendar.GetFiscalYear() == fiscalYear - 1)
                            {
                                actualListLastYear[month] += invoice.GetAmount(doesIncludeSurcharge);
                                actualTotalLastYear       += invoice.GetAmount(doesIncludeSurcharge);
                            }
                        }
                        else
                        {
                            // build actual list this year
                            if (invoice.calendar.GetFiscalYear() == fiscalYear && invoice.calendar.GetFiscalMonth() < 10)
                            {
                                actualList[month + 3]    += invoice.GetAmount(doesIncludeSurcharge);
                                surchargeList[month + 3] += new ExcoMoney(invoice.calendar, invoice.surcharge, invoice.currency);
                                actualTotal += invoice.GetAmount(doesIncludeSurcharge);
                                // count parts
                                if (partsMap.ContainsKey(invoice.orderNum))
                                {
                                    foreach (string part in partsMap[invoice.orderNum])
                                    {
                                        if (0 == part.CompareTo("NCR"))
                                        {
                                            ncrList[month]++;
                                        }
                                        else if (part.Contains("HD") || part.Contains("HU"))
                                        {
                                            hollowList[month]++;
                                        }
                                        else if (part.Contains("BA") || part.Contains("SD") || part.Contains("BO") || part.Contains("FD") || part.Contains("RI")) //|| part.Contains("SO") || part.Contains("BK"))
                                        {
                                            solidList[month]++;
                                        }
                                    }
                                }
                            }
                            else if (invoice.calendar.GetFiscalYear() == fiscalYear - 1 && invoice.calendar.GetFiscalMonth() > 9)
                            {
                                actualList[month - 9]    += invoice.GetAmount(doesIncludeSurcharge);
                                surchargeList[month - 9] += new ExcoMoney(invoice.calendar, invoice.surcharge, invoice.currency);
                                actualTotal += invoice.GetAmount(doesIncludeSurcharge);
                                // count parts
                                if (partsMap.ContainsKey(invoice.orderNum))
                                {
                                    foreach (string part in partsMap[invoice.orderNum])
                                    {
                                        if (0 == part.CompareTo("NCR"))
                                        {
                                            ncrList[month - 9]++;
                                        }
                                        else if (part.Contains("HD") || part.Contains("HU"))
                                        {
                                            hollowList[month - 9]++;
                                        }
                                        else if (part.Contains("BA") || part.Contains("SD") || part.Contains("BO") || part.Contains("FD") || part.Contains("RI")) //|| part.Contains("SO") || part.Contains("BK"))
                                        {
                                            solidList[month - 9]++;
                                        }
                                    }
                                }
                            }
                            // build actual list last year
                            else if (invoice.calendar.GetFiscalYear() == fiscalYear - 1 && invoice.calendar.GetFiscalMonth() < 10)
                            {
                                actualListLastYear[month + 3] += invoice.GetAmount(doesIncludeSurcharge);
                                actualTotalLastYear           += invoice.GetAmount(doesIncludeSurcharge);
                            }
                            else if (invoice.calendar.GetFiscalYear() == fiscalYear - 2 && invoice.calendar.GetFiscalMonth() > 9)
                            {
                                actualListLastYear[month - 9] += invoice.GetAmount(doesIncludeSurcharge);
                                actualTotalLastYear           += invoice.GetAmount(doesIncludeSurcharge);
                            }
                        }
                    }
                }
            }

            for (int i = 0; i < 12; i++)
            {
                // get budget data this year
                ExcoCalendar calendar = new ExcoCalendar(fiscalYear, i + 1, true, plantID);
                ExcoMoney    budget   = new ExcoMoney();
                if (budgetMap.ContainsKey(excoCustomer.ShipToID))
                {
                    budget = budgetMap[excoCustomer.ShipToID][i];
                }
                else if (budgetMap.ContainsKey(excoCustomer.BillToID))
                {
                    budget = budgetMap[excoCustomer.BillToID][i];
                }
                else if (budgetMap.ContainsKey(excoCustomer.SillyID))
                {
                    budget = budgetMap[excoCustomer.SillyID][i];
                }
                budgetTotal      += budget;
                budgetList[i + 1] = budget;
            }
        }
Ejemplo n.º 9
0
        private void GetAccountsDataCalendarColombiaPlants()
        {
            // calendar period
            int cp = calendar.GetCalendarMonth();
            int cy = calendar.GetCalendarYear();
            //ExcoCalendar ttt = new ExcoCalendar(calendar.GetCalendarYear(), calendar.GetCalendarMonth(), true, 1);
            //int cp = ttt.GetCalendarMonth();
            //int cy = ttt.GetCalendarYear();
            bool test = false;
            // this year
            ExcoODBC solarsoft = ExcoODBC.Instance;

            solarsoft.Open(Database.CMSDAT);
            //if (cp > 9)
            //{
            string query = "select sum(coalesce(aj4tt10+aj4ob10,0.0)) as actual10, sum(coalesce(aj4tt11+aj4ob11,0.0)) as actual11, sum(coalesce(aj4tt12+aj4ob12,0.0)) as actual12, sum(coalesce(aj4cb10,0.0)) as budget10, sum(coalesce(aj4cb11,0.0)) as budget11, sum(coalesce(aj4cb12,0.0)) as budget12 from cmsdat.glmt where aj4comp=" + plantID + " and ((";

            for (int i = 0; i < accountList.Count; i++)
            {
                if (accountList[i].glNo2.Contains("206010"))
                {
                    test = true;
                }
                query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
                if (i < accountList.Count - 1)
                {
                    query += " or (";
                }
            }
            query += ") and aj4ccyy=20";
            OdbcDataReader reader = solarsoft.RunQuery(query + (cy - 1));

            //string g = (query) + (cy - 1);
            //Console.Write(g);
            if (reader.Read() && !reader.IsDBNull(0))
            {
                for (int i = 10; i <= 12; i++)
                {
                    //if (test)
                    //     Console.Write("!!");
                    ExcoCalendar tempCalendar = new ExcoCalendar(cy - 1, i, true, plantID);
                    actualThisYearList[i - 9] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
                    budgetThisYearList[i - 9] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["budget" + i.ToString("D2")]) * -1.0, currency);
                    string gd  = Convert.ToDouble(reader["actual" + i.ToString("D2")]).ToString();
                    string ggd = Convert.ToDouble(reader["actual" + i.ToString("D2")]).ToString();
                    //string pp = gd + ggd;
                    //Console.Write(pp);
                }
            }
            reader.Close();
            query = "select sum(coalesce(aj4tt01+aj4ob01,0.0)) as actual01, sum(coalesce(aj4tt02+aj4ob02,0.0)) as actual02, sum(coalesce(aj4tt03+aj4ob03,0.0)) as actual03, sum(coalesce(aj4tt04+aj4ob04,0.0)) as actual04, sum(coalesce(aj4tt05+aj4ob05,0.0)) as actual05, sum(coalesce(aj4tt06+aj4ob06,0.0)) as actual06, sum(coalesce(aj4tt07+aj4ob07,0.0)) as actual07, sum(coalesce(aj4tt08+aj4ob08,0.0)) as actual08, sum(coalesce(aj4tt09+aj4ob09,0.0)) as actual09, sum(coalesce(aj4cb01,0.0)) as budget01, sum(coalesce(aj4cb02,0.0)) as budget02, sum(coalesce(aj4cb03,0.0)) as budget03, sum(coalesce(aj4cb04,0.0)) as budget04, sum(coalesce(aj4cb05,0.0)) as budget05, sum(coalesce(aj4cb06,0.0)) as budget06, sum(coalesce(aj4cb07,0.0)) as budget07, sum(coalesce(aj4cb08,0.0)) as budget08, sum(coalesce(aj4cb09,0.0)) as budget09 from cmsdat.glmt where aj4comp=" + plantID + " and ((";
            for (int i = 0; i < accountList.Count; i++)
            {
                query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
                if (i < accountList.Count - 1)
                {
                    query += " or (";
                }
            }
            query += ") and aj4ccyy=20";
            reader = solarsoft.RunQuery(query + cy);
            if (reader.Read() && !reader.IsDBNull(0))
            {
                for (int i = 1; i <= 9; i++)
                {
                    ExcoCalendar tempCalendar = new ExcoCalendar(cy, i, true, plantID);
                    actualThisYearList[i + 3] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
                    budgetThisYearList[i + 3] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["budget" + i.ToString("D2")]) * -1.0, currency);
                }
            }
            reader.Close();
            // last year
            query = "select sum(coalesce(aj4tt10+aj4ob10,0.0)) as actual10, sum(coalesce(aj4tt11+aj4ob11,0.0)) as actual11, sum(coalesce(aj4tt12+aj4ob12,0.0)) as actual12 from cmsdat.glmt where aj4comp=" + plantID + " and ((";
            for (int i = 0; i < accountList.Count; i++)
            {
                query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
                if (i < accountList.Count - 1)
                {
                    query += " or (";
                }
            }
            query += ") and aj4ccyy=20";
            reader = solarsoft.RunQuery(query + (cy - 2));
            if (reader.Read() && !reader.IsDBNull(0))
            {
                for (int i = 10; i <= 12; i++)
                {
                    ExcoCalendar tempCalendar = new ExcoCalendar(cy - 2, i, true, plantID);
                    actualLastYearList[i - 9] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
                }
            }
            reader.Close();
            query = "select sum(coalesce(aj4tt01+aj4ob01,0.0)) as actual01, sum(coalesce(aj4tt02+aj4ob02,0.0)) as actual02, sum(coalesce(aj4tt03+aj4ob03,0.0)) as actual03, sum(coalesce(aj4tt04+aj4ob04,0.0)) as actual04, sum(coalesce(aj4tt05+aj4ob05,0.0)) as actual05, sum(coalesce(aj4tt06+aj4ob06,0.0)) as actual06, sum(coalesce(aj4tt07+aj4ob07,0.0)) as actual07, sum(coalesce(aj4tt08+aj4ob08,0.0)) as actual08, sum(coalesce(aj4tt09+aj4ob09,0.0)) as actual09 from cmsdat.glmt where aj4comp=" + plantID + " and ((";
            for (int i = 0; i < accountList.Count; i++)
            {
                query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
                if (i < accountList.Count - 1)
                {
                    query += " or (";
                }
            }
            query += ") and aj4ccyy=20";
            reader = solarsoft.RunQuery(query + (cy - 1));
            if (reader.Read() && !reader.IsDBNull(0))
            {
                for (int i = 1; i <= 9; i++)
                {
                    ExcoCalendar tempCalendar = new ExcoCalendar(cy - 1, i, true, plantID);
                    actualLastYearList[i + 3] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
                }
            }
            reader.Close();

            /* }
             * else
             * {
             *   string query = "select sum(coalesce(aj4tt10+aj4ob10,0.0)) as actual10, sum(coalesce(aj4tt11+aj4ob11,0.0)) as actual11, sum(coalesce(aj4tt12+aj4ob12,0.0)) as actual12, sum(coalesce(aj4cb10,0.0)) as budget10, sum(coalesce(aj4cb11,0.0)) as budget11, sum(coalesce(aj4cb12,0.0)) as budget12 from cmsdat.glmt where aj4comp=" + plantID + " and ((";
             *   for (int i = 0; i < accountList.Count; i++)
             *   {
             *       query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
             *       if (i < accountList.Count - 1)
             *       {
             *           query += " or (";
             *       }
             *   }
             *   query += ") and aj4ccyy=20";
             *   OdbcDataReader reader = solarsoft.RunQuery(query + cy);
             *   if (reader.Read() && !reader.IsDBNull(0))
             *   {
             *       for (int i = 10; i <= 12; i++)
             *       {
             *           ExcoCalendar tempCalendar = new ExcoCalendar(cy, i, true, plantID);
             *           actualThisYearList[i - 9] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
             *           budgetThisYearList[i - 9] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["budget" + i.ToString("D2")]) * -1.0, currency);
             *       }
             *   }
             *   reader.Close();
             *   query = "select sum(coalesce(aj4tt01+aj4ob01,0.0)) as actual01, sum(coalesce(aj4tt02+aj4ob02,0.0)) as actual02, sum(coalesce(aj4tt03+aj4ob03,0.0)) as actual03, sum(coalesce(aj4tt04+aj4ob04,0.0)) as actual04, sum(coalesce(aj4tt05+aj4ob05,0.0)) as actual05, sum(coalesce(aj4tt06+aj4ob06,0.0)) as actual06, sum(coalesce(aj4tt07+aj4ob07,0.0)) as actual07, sum(coalesce(aj4tt08+aj4ob08,0.0)) as actual08, sum(coalesce(aj4tt09+aj4ob09,0.0)) as actual09, sum(coalesce(aj4cb01,0.0)) as budget01, sum(coalesce(aj4cb02,0.0)) as budget02, sum(coalesce(aj4cb03,0.0)) as budget03, sum(coalesce(aj4cb04,0.0)) as budget04, sum(coalesce(aj4cb05,0.0)) as budget05, sum(coalesce(aj4cb06,0.0)) as budget06, sum(coalesce(aj4cb07,0.0)) as budget07, sum(coalesce(aj4cb08,0.0)) as budget08, sum(coalesce(aj4cb09,0.0)) as budget09 from cmsdat.glmt where aj4comp=" + plantID + " and ((";
             *   for (int i = 0; i < accountList.Count; i++)
             *   {
             *       query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
             *       if (i < accountList.Count - 1)
             *       {
             *           query += " or (";
             *       }
             *   }
             *   query += ") and aj4ccyy=20";
             *   reader = solarsoft.RunQuery(query + (cy + 1));
             *   if (reader.Read() && !reader.IsDBNull(0))
             *   {
             *       for (int i = 1; i <= 9; i++)
             *       {
             *           ExcoCalendar tempCalendar = new ExcoCalendar(cy + 1, i, true, plantID);
             *           actualThisYearList[i + 3] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
             *           budgetThisYearList[i + 3] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["budget" + i.ToString("D2")]) * -1.0, currency);
             *       }
             *   }
             *   reader.Close();
             *   // last year
             *   query = "select sum(coalesce(aj4tt10+aj4ob10,0.0)) as actual10, sum(coalesce(aj4tt11+aj4ob11,0.0)) as actual11, sum(coalesce(aj4tt12+aj4ob12,0.0)) as actual12 from cmsdat.glmt where aj4comp=" + plantID + " and ((";
             *   for (int i = 0; i < accountList.Count; i++)
             *   {
             *       query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
             *       if (i < accountList.Count - 1)
             *       {
             *           query += " or (";
             *       }
             *   }
             *   query += ") and aj4ccyy=20";
             *   reader = solarsoft.RunQuery(query + (cy - 1));
             *   if (reader.Read() && !reader.IsDBNull(0))
             *   {
             *       for (int i = 10; i <= 12; i++)
             *       {
             *           ExcoCalendar tempCalendar = new ExcoCalendar(cy - 1, i, true, plantID);
             *           actualLastYearList[i - 9] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
             *       }
             *   }
             *   reader.Close();
             *   query = "select sum(coalesce(aj4tt01+aj4ob01,0.0)) as actual01, sum(coalesce(aj4tt02+aj4ob02,0.0)) as actual02, sum(coalesce(aj4tt03+aj4ob03,0.0)) as actual03, sum(coalesce(aj4tt04+aj4ob04,0.0)) as actual04, sum(coalesce(aj4tt05+aj4ob05,0.0)) as actual05, sum(coalesce(aj4tt06+aj4ob06,0.0)) as actual06, sum(coalesce(aj4tt07+aj4ob07,0.0)) as actual07, sum(coalesce(aj4tt08+aj4ob08,0.0)) as actual08, sum(coalesce(aj4tt09+aj4ob09,0.0)) as actual09 from cmsdat.glmt where aj4comp=" + plantID + " and ((";
             *   for (int i = 0; i < accountList.Count; i++)
             *   {
             *       query += "aj4gl#1=" + accountList[i].glNo1 + " and aj4gl#2=" + accountList[i].glNo2 + ")";
             *       if (i < accountList.Count - 1)
             *       {
             *           query += " or (";
             *       }
             *   }
             *   query += ") and aj4ccyy=20";
             *   reader = solarsoft.RunQuery(query + cy);
             *   if (reader.Read() && !reader.IsDBNull(0))
             *   {
             *       for (int i = 1; i <= 9; i++)
             *       {
             *           ExcoCalendar tempCalendar = new ExcoCalendar(cy, i, true, plantID);
             *           actualLastYearList[i + 3] = new ExcoMoney(tempCalendar.GetNextCalendarMonth(), Convert.ToDouble(reader["actual" + i.ToString("D2")]) * -1.0, currency);
             *       }
             *   }
             *   reader.Close();
             * }*/
        }
Ejemplo n.º 10
0
        public void GetInfo(ExcoCalendar calendar, string groupID)
        {
            // fiscal period
            string fp = calendar.GetFiscalMonth().ToString("D2");
            // fiscal year
            string fy = calendar.GetFiscalYear().ToString("D2");
            // last period
            string lp = (calendar.GetFiscalMonth() - 1).ToString("D2");

            // get data
            ExcoODBC solarsoft = ExcoODBC.Instance;

            solarsoft.Open(Database.CMSDAT);
            if (lp != "00")
            {
                string query   = "select coalesce(sum(aj4tt" + fp + "), 0.0) as tpActual, coalesce(sum(aj4cb" + fp + "), 0.0) as tpBudget, coalesce(sum(aj4tt" + lp + "), 0.0) as lpActual, coalesce(sum(";
                int    iPeriod = Convert.ToInt32(fp);
                while (iPeriod > 0)
                {
                    query += "aj4tt" + iPeriod.ToString("D2");
                    iPeriod--;
                    if (iPeriod > 0)
                    {
                        query += "+";
                    }
                    else
                    {
                        query += "), 0.0) as ytdActual, coalesce(sum(";
                    }
                }
                iPeriod = Convert.ToInt32(fp);
                while (iPeriod > 0)
                {
                    query += "aj4cb" + iPeriod.ToString("D2");
                    iPeriod--;
                    if (iPeriod > 0)
                    {
                        query += "+";
                    }
                    else
                    {
                        query += "), 0.0) as ytdBudget from cmsdat.glmt left join cmsdat.mast on aj4comp=1 and aj4gl#1=100 and azcomp=aj4comp and azgl#1=aj4gl#1 and aj4gl#2=azgl#2 and aj4ccyy=20" + fy + " where azgrop like '" + id + "%'";
                    }
                }
                OdbcDataReader reader = solarsoft.RunQuery(query);
                if (reader.Read())
                {
                    tpActual  = new ExcoMoney(calendar, Convert.ToDouble(reader["tpActual"]), currency);
                    lpActual  = new ExcoMoney(calendar, Convert.ToDouble(reader["lpActual"]), currency);
                    tpBudget  = new ExcoMoney(calendar, Convert.ToDouble(reader["tpBudget"]), currency);
                    ytdActual = new ExcoMoney(calendar, Convert.ToDouble(reader["ytdActual"]), currency);
                    ytdBudget = new ExcoMoney(calendar, Convert.ToDouble(reader["ytdBudget"]), currency);
                }
                reader.Close();
            }
            else
            {
                string query   = "select coalesce(sum(aj4tt" + fp + "), 0.0) as tpActual, coalesce(sum(aj4cb" + fp + "), 0.0) as tpBudget, coalesce(sum(";
                int    iPeriod = Convert.ToInt32(fp);
                while (iPeriod > 0)
                {
                    query += "aj4tt" + iPeriod.ToString("D2");
                    iPeriod--;
                    if (iPeriod > 0)
                    {
                        query += "+";
                    }
                    else
                    {
                        query += "), 0.0) as ytdActual, coalesce(sum(";
                    }
                }
                iPeriod = Convert.ToInt32(fp);
                while (iPeriod > 0)
                {
                    query += "aj4cb" + iPeriod.ToString("D2");
                    iPeriod--;
                    if (iPeriod > 0)
                    {
                        query += "+";
                    }
                    else
                    {
                        query += "), 0.0) as ytdBudget from cmsdat.glmt left join cmsdat.mast on aj4comp=1 and aj4gl#1=100 and azcomp=aj4comp and azgl#1=aj4gl#1 and aj4gl#2=azgl#2 and aj4ccyy=20" + fy + " where azgrop like '" + id + "%'";
                    }
                }
                OdbcDataReader reader = solarsoft.RunQuery(query);
                if (reader.Read())
                {
                    tpActual = new ExcoMoney(calendar, Convert.ToDouble(reader["tpActual"]), currency);
                    //lpActual = new ExcoMoney(calendar, Convert.ToDouble(reader["lpActual"]), currency);
                    tpBudget  = new ExcoMoney(calendar, Convert.ToDouble(reader["tpBudget"]), currency);
                    ytdActual = new ExcoMoney(calendar, Convert.ToDouble(reader["ytdActual"]), currency);
                    ytdBudget = new ExcoMoney(calendar, Convert.ToDouble(reader["ytdBudget"]), currency);
                }
                reader.Close();

                //get last fiscal year period data
                lp    = "12";
                fy    = (calendar.GetFiscalYear() - 1).ToString("D2");
                query = "select coalesce(sum(aj4tt" + lp + "), 0.0) as lpActual from cmsdat.glmt left join cmsdat.mast on aj4comp=1 and aj4gl#1=100 and azcomp=aj4comp and azgl#1=aj4gl#1 and aj4gl#2=azgl#2 and aj4ccyy=20" + fy + " where azgrop like '" + id + "%'";

                reader = solarsoft.RunQuery(query);
                if (reader.Read())
                {
                    lpActual = new ExcoMoney(calendar, Convert.ToDouble(reader["lpActual"]), currency);
                }
                reader.Close();
            }
        }
Ejemplo n.º 11
0
 public void MyTestInitialize()
 {
     moneyCA = new ExcoMoney(calendarCA, 1.0, "CA");
     moneyUS = new ExcoMoney(calendarUS, 2.0, "US");
     moneyCP = new ExcoMoney(calendarCP, 3.3, "CP");
 }