Example #1
0
        public void NotifyTenantOrderComplete(MaintenanceOrder order)
        {
            var    tenant  = GetTenantFromUnitId(order.UnitId);
            string message = $"Dear, {tenant.FirstName} {tenant.LastName} your work order titled: {order.Name} has been completed";

            TwilioNotification.TwilioMessage(tenant.PhoneNumber, message);
        }
Example #2
0
        public string UpdateOrder(string OrderID, MaintenanceOrder Order)
        {
            if (Order == null || string.IsNullOrEmpty(OrderID))
            {
                throw new IDNullException("维修记录ID不可为空!");
            }
            string sqlCommandText = ModuleConfiguration.SQL_CMD_UpdateMaintenanceOrder;

            this.dmlOperable.ExeSql(sqlCommandText, new Dictionary <string, object>()
            {
                { "@ID", long.Parse(OrderID) },
                { "@OrderRefID", Order.OrderRefID },
                { "@OrderDate", Order.OrderDate },
                { "@InstrumentID", Order.Instrument.ID },
                { "@FaultTime", Order.FaultTime },
                { "@FaultCode", Order.Fault.FaultCode },
                { "@FaultDescription", Order.Fault.FaultMessage },
                { "@WarrantyStatus", Order.WarrantyStatus },
                { "@Cost", Order.Cost },
                { "@RepairResult", Order.Result.Title },
                { "@RepairDescription", Order.Result.Body },
                { "@UserComment", Order.Comment.Title },
                { "@CommentContent", Order.Comment.Body }
            });

            return(Order.ID);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            MaintenanceOrder maintenanceOrder = db.MaintenanceOrders.Find(id);

            db.MaintenanceOrders.Remove(maintenanceOrder);
            db.SaveChanges();
            return(RedirectToAction("WorkOrders", "Manager"));
        }
 public ActionResult Edit([Bind(Include = "OrderId,UnitId,Name,Description,DueDate")] MaintenanceOrder maintenanceOrder)
 {
     if (ModelState.IsValid)
     {
         db.Entry(maintenanceOrder).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.UnitId = new SelectList(db.HousingUnits, "UnitId", "UnitId", maintenanceOrder.UnitId);
     return(View(maintenanceOrder));
 }
Example #5
0
        public ActionResult CompleteTask(MaintenanceOrder order)
        {
            var currentOrder = (from w in db.MaintenanceOrders where w.OrderId == order.OrderId select w).SingleOrDefault();

            currentOrder.IsCompleted     = order.IsCompleted;
            currentOrder.Description     = order.Description;
            db.Entry(currentOrder).State = EntityState.Modified;
            db.SaveChanges();
            NotifyTenantOrderComplete(currentOrder);
            return(RedirectToAction("WorkOrderList", "Workers"));
        }
Example #6
0
        public MaintenanceOrder GetOrder <T>(string OrderID, out T ExtraData, Func <object, T> ExtensionFunction)
        {
            MaintenanceOrder maintenanceOrder = null;

            ExtraData = default(T);

            string sqlCommandText = ModuleConfiguration.SQL_CMD_SelectMaintenanceOrderById;

            var dbResult = this.dmlOperable.ExeReader(sqlCommandText, new Dictionary <string, object>()
            {
                { "@ID", long.Parse(OrderID) }
            });

            if (dbResult != null && dbResult.Count == 1)
            {
                maintenanceOrder = new MaintenanceOrder()
                {
                    ID         = dbResult[0]["ID"].ToString(),
                    OrderRefID = (string)dbResult[0]["OrderRefID"],
                    OrderDate  = (DateTime?)dbResult[0]["OrderDate"],
                    FaultTime  = (DateTime?)dbResult[0]["FaultTime"],
                    Fault      = new Fault()
                    {
                        //FaultType = (int?)dbResult[0]["FaultType"],
                        FaultCode    = (string)dbResult[0]["FaultCode"],
                        FaultMessage = (string)dbResult[0]["FaultDescription"]
                    },
                    Instrument = new Instrument()
                    {
                        ID = dbResult[0]["InstrumentID"].ToString()
                    },
                    WarrantyStatus                 = dbResult[0]["WarrantyStatus"] == null ? 0 : (int?)dbResult[0]["WarrantyStatus"],
                    Cost                           = dbResult[0]["Cost"] != null?decimal.Parse(dbResult[0]["Cost"].ToString()) : 0,//(decimal?)dbResult[0]["Cost"],
                                            Result = new Comment()
                    {
                        Title = (string)dbResult[0]["RepairResult"],
                        Body  = (string)dbResult[0]["RepairDescription"]
                    },
                    Comment = new Comment()
                    {
                        Title = (string)dbResult[0]["UserComment"],
                        Body  = (string)dbResult[0]["CommentContent"]
                    }
                };
            }

            if (ExtensionFunction != null)
            {
                ExtraData = ExtensionFunction(maintenanceOrder);
            }

            return(maintenanceOrder);
        }
        public ActionResult TenantWorkOrderSubmission([Bind(Include = "OrderId,UnitId,Name,Description,DueDate")] MaintenanceOrder maintenanceOrder, Tenant tenant)
        {
            if (ModelState.IsValid)
            {
                //ADD TWILLIO API FUNCTIONALITY HERE??
                maintenanceOrder.HousingUnit.UnitId = tenant.HousingUnit.UnitId;
                db.MaintenanceOrders.Add(maintenanceOrder);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.UnitId = new SelectList(db.HousingUnits, "UnitId", "UnitId", maintenanceOrder.UnitId);
            return(View(maintenanceOrder));
        }
        // GET: MaintenanceOrders/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MaintenanceOrder maintenanceOrder = db.MaintenanceOrders.Find(id);

            if (maintenanceOrder == null)
            {
                return(HttpNotFound());
            }
            return(View(maintenanceOrder));
        }
Example #9
0
        public ActionResult FileReport([Bind(Include = "OrderId,UnitId,Name,Description,DueDate")] MaintenanceOrder maintenanceOrder)
        {
            if (ModelState.IsValid)
            {
                db.MaintenanceOrders.Add(maintenanceOrder);
                db.SaveChanges();
                var manangerNumber = TwilioNotification.GetManagerNumber();
                WorkOrderMessage(manangerNumber, maintenanceOrder.UnitId);
                return(RedirectToAction("TicketComplete"));
            }

            ViewBag.UnitId = new SelectList(db.HousingUnits, "UnitId", "UnitId", maintenanceOrder.UnitId);
            return(View(maintenanceOrder));
        }
        // GET: MaintenanceOrders/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MaintenanceOrder maintenanceOrder = db.MaintenanceOrders.Find(id);

            if (maintenanceOrder == null)
            {
                return(HttpNotFound());
            }
            ViewBag.UnitId = new SelectList(db.HousingUnits, "UnitId", "UnitId", maintenanceOrder.UnitId);
            return(View(maintenanceOrder));
        }
        private IQueryable <Utilizador> GetTechnicals(MaintenanceOrder order, string orderId, string technicalid)
        {
            if ((order == null) && (orderId == null || orderId == "") && (technicalid == null || technicalid == ""))
            {
                return((new List <Utilizador>()).AsQueryable());
            }

            IQueryable <Utilizador> technicals;

            if (technicalid != null && technicalid != "")
            {
                technicals = evolutionWEBContext.Utilizador.Where(u => u.NumMec == technicalid);
                return(technicals);
            }

            if (order != null)
            {
                var technicalsId = new List <int>();

                for (int i = 1; i <= 5; i++)
                {
                    var prop = order.GetType().GetProperty("IdTecnico" + i.ToString());
                    int?name = (int?)(prop.GetValue(order, null));
                    if (name != null)
                    {
                        technicalsId.Add((int)name);
                    }
                }

                technicals = evolutionWEBContext.Utilizador.Where(u => technicalsId.Contains(u.Id));
                return(technicals);
            }

            if (orderId != null && orderId != "")
            {
                var _order = evolutionWEBContext.MaintenanceOrder.FirstOrDefault(o => o.No == orderId);
                if (_order != null)
                {
                    technicals = evolutionWEBContext.Utilizador.Where(u => u.Code3 == _order.ShortcutDimension3Code);
                    return(technicals);
                }
            }
            technicals = (new List <Utilizador>()).AsQueryable();
            return(technicals);
        }
        public ActionResult AssignWorkOrder([Bind(Include = "OrderId,WorkerId")] MaintenanceOrder order)
        {
            if (ModelState.IsValid)
            {
                int OrderFixedId = order.OrderId;

                var workOrder = db.MaintenanceOrders.Where(ord => ord.OrderId == OrderFixedId).Single();

                workOrder.WorkerId = order.WorkerId;

                db.Entry(workOrder).State = EntityState.Modified;
                db.SaveChanges();
                TwilioNotification.NotifyWorkerOfReport();
                return(RedirectToAction("WorkOrders"));
            }

            return(View(order));
        }
        public async Task <ActionResult> Put([FromBody] MaintenanceOrder model)
        {
            var data = await _maintenanceOrderRepository.GetAsyncById(model.Id);

            data.Price         = model.Price;
            data.ProviderId    = model.ProviderId;
            data.ExecutionDate = model.ExecutionDate;
            data.Status        = model.Status;
            if (data == null)
            {
                return(NotFound());
            }


            await _maintenanceOrderRepository.UpdateAsync(data);

            return(NoContent());
        }
        public ActionResult AssignWorkOrder(int?id, Worker worker)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MaintenanceOrder order = db.MaintenanceOrders.Find(id);

            if (order == null)
            {
                return(HttpNotFound());
            }
            var allWorkers = db.Workers;

            //ViewBag.ZipCodeId = new SelectList(db.ZipCodes, "ZipCodeId", "ZipCodeId", employee.ZipCodeId);
            ViewBag.Workers = new SelectList(allWorkers, "WorkerID", "FirstName" /*, worker.FirstName*/);

            //ViewBag.Workers = new SelectList(db.Workers.OrderBy(w => w.WorkerId).ToList(), "Id");
            return(View(order));
        }
        public async Task <ActionResult> UpdateOrdes(int idCustomer)
        {
            DateTime todaysDate = DateTime.Now.Date;
            int      month      = todaysDate.Month - 1;
            //int month = 2;
            //int year = 2021;
            int year = todaysDate.Year;

            foreach (EMonth item in Enum.GetValues(typeof(EMonth)))
            {
                //Si coincide el mes actual con el
                if (month == item.GetHashCode())
                {
                    //Obtenemos la lista de registros que correspondan al mes enviado
                    var mCs = await _maintenanceCalendarRepository
                              .GetAsyncAll(x => x.CustomerId == idCustomer && x.Month == item,
                                           x => x.OrderBy(x => x.Machinery.NameMachinery));

                    foreach (var mC in mCs)
                    {
                        // Por cada Calendario creamos una orden de compra
                        MaintenanceOrder mO = new MaintenanceOrder()
                        {
                            CustomerId            = idCustomer,
                            ExecutionDate         = null,
                            MaintenanceCalendarId = mC.Id,
                            RequestDate           = new DateTime(year, month + 1, 1),
                            Price      = mC.Price,
                            ProviderId = mC.ProviderId,
                            Status     = EStatus.Pendiente,
                        };
                        //Buscamos regitro que coincida con MaintenanceCalendarId y en la fecha de solicitud coincida por mes y año actual
                        var oS = await _maintenanceOrderRepository.FirstOrDefaultAsync(
                            x => x.MaintenanceCalendarId == mC.Id &&
                            x.RequestDate.Month == month + 1 &&
                            x.RequestDate.Year == year);

                        if (oS == null)
                        {
                            await _maintenanceOrderRepository.CreateAsync(mO);
                        }
                    }
                }
            }
            //int monthLast = todaysDate.Month;
            foreach (EMonth item in Enum.GetValues(typeof(EMonth)))
            {
                //Si coincide el mes actual con el
                if (month + 1 == item.GetHashCode())
                {
                    //Obtenemos la lista de registros que correspondan al mes enviado
                    var mCs = await _maintenanceCalendarRepository
                              .GetAsyncAll(x => x.CustomerId == idCustomer && x.Month == item,
                                           x => x.OrderBy(x => x.Machinery.NameMachinery), "");

                    foreach (var mC in mCs)
                    {
                        // Por cada Calendario creamos una orden de compra
                        MaintenanceOrder mO = new MaintenanceOrder()
                        {
                            CustomerId            = idCustomer,
                            ExecutionDate         = null,
                            MaintenanceCalendarId = mC.Id,
                            RequestDate           = new DateTime(year, month + 2, 1),
                            Price      = mC.Price,
                            ProviderId = mC.ProviderId,
                            Status     = EStatus.Pendiente,
                        };
                        //Buscamos regitro que coincida con MaintenanceCalendarId y en la fecha de solicitud coincida por mes y año actual
                        var oS = await _maintenanceOrderRepository.FirstOrDefaultAsync(x => x.MaintenanceCalendarId == mC.Id &&
                                                                                       x.RequestDate.Month == month + 2 &&
                                                                                       x.RequestDate.Year == year);

                        if (oS == null)
                        {
                            await _maintenanceOrderRepository.CreateAsync(mO);
                        }
                    }
                }
            }
            return(NoContent());
        }