Example #1
0
        public static MileageRate CreateMileageRate(string dataAreaId,
                                                    string expenseCategory,
                                                    global::System.DateTimeOffset fromDate,
                                                    decimal quantity,
                                                    string vehicleType,
                                                    decimal rate,
                                                    global::System.DateTimeOffset toDate)
        {
            MileageRate mileageRate = new MileageRate();

            mileageRate.dataAreaId      = dataAreaId;
            mileageRate.ExpenseCategory = expenseCategory;
            mileageRate.FromDate        = fromDate;
            mileageRate.Quantity        = quantity;
            mileageRate.VehicleType     = vehicleType;
            mileageRate.Rate            = rate;
            mileageRate.ToDate          = toDate;
            return(mileageRate);
        }
Example #2
0
        private static void WalkItemOtherChargeRet(XmlNode ItemOtherChargeRet)
        {
            if (ItemOtherChargeRet == null) return;

            MileageRate mr = null;
            RotoTrackDb db = new RotoTrackDb();

            string ListID = ItemOtherChargeRet.SelectSingleNode("./ListID").InnerText;
            string Name = ItemOtherChargeRet.SelectSingleNode("./FullName").InnerText;

            if (Name.StartsWith("MILE"))
            {
                if (db.MileageRates.Any(f => f.QBListId == ListID))
                {
                    mr = db.MileageRates.First(f => f.QBListId == ListID);
                }
                else
                {
                    mr = new MileageRate();
                    db.MileageRates.Add(mr);
                }
                mr.QBListId = ListID;
                mr.Name = Name;

                string IsActive = "false";
                if (ItemOtherChargeRet.SelectSingleNode("./IsActive") != null)
                {
                    IsActive = ItemOtherChargeRet.SelectSingleNode("./IsActive").InnerText;
                }
                mr.IsActive = (IsActive == "true") ? true : false;

                XmlNodeList ORSalesPurchaseChildren = ItemOtherChargeRet.SelectNodes("./*");
                for (int i = 0; i < ORSalesPurchaseChildren.Count; i++)
                {
                    XmlNode Child = ORSalesPurchaseChildren.Item(i);

                    if (Child.Name == "SalesAndPurchase")
                    {
                        if (Child.SelectSingleNode("./SalesDesc") != null)
                        {
                            string SalesDesc = Child.SelectSingleNode("./SalesDesc").InnerText;
                            mr.Description = SalesDesc;
                        }
                        if (Child.SelectSingleNode("./SalesPrice") != null)
                        {
                            string SalesPrice = Child.SelectSingleNode("./SalesPrice").InnerText;
                            try
                            {
                                mr.Rate = Convert.ToDecimal(SalesPrice);
                            }
                            catch (Exception)
                            {
                                mr.Rate = 0;
                            }
                        }
                    }
                }

                if (mr != null)
                {
                    db.SaveChanges();
                }
            }
        }
        public static XmlDocument BuildAddRq(ServiceEntry se, ServiceDetail sd)
        {
            try
            {
                XmlDocument doc    = XmlUtils.MakeRequestDocument();
                XmlElement  parent = XmlUtils.MakeRequestParentElement(doc);

                RotoTrackDb db  = new RotoTrackDb();
                UserProfile u   = db.UserProfiles.Find(sd.TechnicianId);
                Vehicle     v   = db.Vehicles.Find(sd.VehicleId);
                DSR         dsr = db.DSRs.Include("WorkOrder").First(f => f.Id == se.DSRId);
                Customer    c   = db.Customers.Find(dsr.WorkOrder.CustomerId);
                MileageRate mr  = db.MileageRates.Find(sd.MileageRateId);
                Area        a   = db.Areas.Find(u.AreaId);

                XmlElement Rq = doc.CreateElement("VehicleMileageAddRq");
                parent.AppendChild(Rq);

                XmlElement RqType = doc.CreateElement("VehicleMileageAdd");
                Rq.AppendChild(RqType);

                XmlElement VehicleRef = doc.CreateElement("VehicleRef");
                RqType.AppendChild(VehicleRef);
                VehicleRef.AppendChild(XmlUtils.MakeSimpleElem(doc, "ListID", v.QBListId));

                XmlElement CustomerRef = doc.CreateElement("CustomerRef");
                RqType.AppendChild(CustomerRef);
                CustomerRef.AppendChild(XmlUtils.MakeSimpleElem(doc, "ListID", dsr.WorkOrder.QBListId));

                XmlElement ItemRef = doc.CreateElement("ItemRef");
                RqType.AppendChild(ItemRef);
                ItemRef.AppendChild(XmlUtils.MakeSimpleElem(doc, "ListID", mr.QBListId));

                XmlElement ClassRef = doc.CreateElement("ClassRef");
                RqType.AppendChild(ClassRef);
                ClassRef.AppendChild(XmlUtils.MakeSimpleElem(doc, "ListID", a.QBListId));

                RqType.AppendChild(XmlUtils.MakeSimpleElem(doc, "TripStartDate", se.DateWorked.ToString("yyyy-MM-dd")));
                RqType.AppendChild(XmlUtils.MakeSimpleElem(doc, "TripEndDate", se.DateWorked.ToString("yyyy-MM-dd")));
                RqType.AppendChild(XmlUtils.MakeSimpleElem(doc, "TotalMiles", se.Mileage.ToString()));
                string fullName = "";
                if (!string.IsNullOrEmpty(u.FirstName))
                {
                    fullName += u.FirstName;
                }
                if (!string.IsNullOrEmpty(u.LastName))
                {
                    fullName += (" " + u.LastName);
                }
                fullName += " guid=";
                fullName += se.GUID;
                RqType.AppendChild(XmlUtils.MakeSimpleElem(doc, "Notes", fullName));
                RqType.AppendChild(XmlUtils.MakeSimpleElem(doc, "BillableStatus", "Billable"));

                return(doc);
            }
            catch (Exception e)
            {
                string evLogTxt = "";
                evLogTxt = "Error building vehicle mileage add request! " + e.Message + "\r\n";
                Logging.RototrackErrorLog("QBMigrationTool: " + RototrackConfig.GetBuildType() + ": " + evLogTxt);
                return(null);
            }
        }