/// <summary>
        /// Adds a new WorkOrder to the database
        /// </summary>
        /// <param name="workOrderDTO"></param>
        /// <returns>The added WorkOrder</returns>
        public WorkOrderDTO Create(WorkOrderDTO workOrderDTO)
        {
            var workOrder = AutoMapper.Mapper.Map <WorkOrder>(workOrderDTO);

            workOrder.CreatedByUserId = _currentUserId;
            workOrder.ClientId        = (int)_clientUserService.GetUserClientId(workOrder.CreatedByUserId);
            workOrder.CreatedDate     = DateTime.UtcNow;
            workOrder.Status          = Status.Active;

            _unitOfWork.WorkOrders.Add(workOrder);
            // Have to call this here to get the new WorkOrderId
            _unitOfWork.SaveChanges();

            // History
            var workOrderHistory = AutoMapper.Mapper.Map <WorkOrderHistory>(workOrder);

            workOrderHistory.WorkOrderId      = workOrder.Id;
            workOrderHistory.ModifiedByUserId = _currentUserId;
            workOrderHistory.ModifiedDate     = workOrder.CreatedDate;
            workOrderHistory.Status           = Status.Active;

            _unitOfWork.WorkOrdersHistory.Add(workOrderHistory);

            _unitOfWork.SaveChanges();

            return(workOrderDTO);
        }
예제 #2
0
        public ActionResult Edit(WorkOrderDTO workOrderDTO)
        {
            if (ModelState.IsValid)
            {
                //workOrderDTO.Customer = _customerService.Get(workOrderDTO.CustomerId);
                //workOrderDTO.AssignedToUser = MyHelper.UserManager.FindById(workOrderDTO.AssignedToUserId);
                //workOrderDTO.Product = _productService.Get(workOrderDTO.ProductId);
                //workOrderDTO.Location = _customerLocationService.Get(workOrderDTO.LocationId);

                var savedWorkOrderDTO = _workOrderService.Update(workOrderDTO.Id, workOrderDTO);
                if (savedWorkOrderDTO == null)
                {
                    return(HttpNotFound());
                }

                return(RedirectToAction("Index"));
            }

            ViewBag.UserList     = _mainService.GetUserDropdownItems();
            ViewBag.CustomerList = _mainService.GetCustomerDropdownItems();
            ViewBag.LocationList = _mainService.GetLocationDropdownItems(workOrderDTO.CustomerId);
            ViewBag.ProductList  = _mainService.GetProductDropdownItems();

            return(View(workOrderDTO));
        }
예제 #3
0
 public WorkOrderResponse()
 {
     WorkOrder      = new WorkOrderDTO();
     ImageMap       = new List <WorkOrderImageMapDTO>();
     WorkOrderList  = new List <WorkOrderInventoryMapDTO>();
     NotInInventory = new List <NotInInventoryDTO>();
     Arrangements   = new List <GetArrangementResponse>();
 }
예제 #4
0
 public AddWorkOrderRequest()
 {
     WorkOrder             = new WorkOrderDTO();
     ImageMap              = new List <WorkOrderImageMapDTO>();
     WorkOrderInventoryMap = new List <WorkOrderInventoryMapDTO>();
     NotInInventory        = new List <NotInInventoryDTO>();
     Arrangements          = new List <AddArrangementRequest>();
 }
예제 #5
0
        private void FormLoad(object sender, EventArgs e)
        {
            this.InitGrid();
            this.model = dal.Get(guid);
            this.UIDataBinding();
            this.ReflashUI();

            this.GetFTPFileList(model.WOCode);
        }
        /// <summary>
        /// Updates a WorkOrder
        /// </summary>
        /// <param name="id"></param>
        /// <param name="workOrderDTO"></param>
        /// <returns>The saved WorkOrderDTO</returns>
        public WorkOrderDTO Update(int id, WorkOrderDTO workOrderDTO)
        {
            try
            {
                // get the existing workOrder
                var workOrder = _unitOfWork.WorkOrders.Get(id);

                if (workOrder == null)
                {
                    return(null);
                }

                // merge the DTO

                //    AutoMapper.Mapper.Map(workOrderDTO, workOrder);

                workOrder.CustomerId       = workOrderDTO.CustomerId;
                workOrder.LocationId       = workOrderDTO.LocationId;
                workOrder.ProductId        = workOrderDTO.ProductId;
                workOrder.Quantity         = workOrderDTO.Quantity;
                workOrder.Notes            = workOrderDTO.Notes;
                workOrder.DueDate          = workOrderDTO.DueDate;
                workOrder.AssignedToUserId = workOrderDTO.AssignedToUserId;
                workOrder.CreatedByUserId  = _currentUserId;
                _unitOfWork.WorkOrders.Update(workOrder);
                _unitOfWork.SaveChanges();

                // History
                var workOrderHistory = AutoMapper.Mapper.Map <WorkOrderHistory>(workOrder);
                workOrderHistory.WorkOrderId      = id;
                workOrderHistory.ModifiedByUserId = HttpContext.Current.User.Identity.GetUserId();
                workOrderHistory.ModifiedDate     = DateTime.UtcNow;
                workOrderHistory.Status           = workOrder.Status;

                _unitOfWork.WorkOrdersHistory.Add(workOrderHistory);
                _unitOfWork.SaveChanges();

                return(workOrderDTO);
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(null);
            }
        }
예제 #7
0
        public int InsertWorkOrder(WorkOrderDTO data)
        {
            int          workorderId = 0;
            WorkOrderDTO user        = new WorkOrderDTO();

            if (_user == null)
            {
                _user = new UserService();
            }
            workorderId = _user.InsertWorkOrder(data);
            return(workorderId);
        }
예제 #8
0
        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            if (e.FocusedRowHandle > -1)
            {
                this.currentIndex = e.FocusedRowHandle;
                string guid = gridView1.GetFocusedRowCellValue("guid").ToString();
                this.model = dal.Get(guid);

                this.gridControl3.DataSource = model.WorkOrderRouter;
                this.gridControl2.DataSource = model.WorkOrderDetail;

                //this.GetFTPFileList(model.WOCode);
            }
        }
예제 #9
0
        public ActionResult Create(WorkOrderDTO workOrderDTO)
        {
            if (ModelState.IsValid)
            {
                _workOrderService.Create(workOrderDTO);

                return(RedirectToAction("Index"));
            }

            ViewBag.UserList     = _mainService.GetUserDropdownItems();
            ViewBag.CustomerList = _mainService.GetCustomerDropdownItems();
            ViewBag.LocationList = new Dictionary <int, string>();
            ViewBag.ProductList  = _mainService.GetProductDropdownItems();

            return(View(workOrderDTO));
        }
예제 #10
0
        private void btnEditDetail_Click(object sender, EventArgs e)
        {
            #region 修改子件

            if (dal.ExistRef(model.Guid))
            {
                throw new Exception("已经生成流转卡,不能修改!");
            }

            FmWODetails frm = new FmWODetails(model.Guid);
            if (frm.ShowDialog() == DialogResult.OK)
            {
                this.model = dal.Get(model.Guid);
                gridControl2.DataSource = dal.GetDetail(model.Guid);
            }
            #endregion
        }
예제 #11
0
        public int InsertWorkOrder(WorkOrderDTO data)
        {
            int workOrderId = 0;

            SqlParameter[] sqlParams = new SqlParameter[11];
            sqlParams[0]  = new SqlParameter("CompletedDate", data.CompletedDate);
            sqlParams[1]  = new SqlParameter("ContractorID", data.ContractorID);
            sqlParams[2]  = new SqlParameter("DeadLineDate", data.DeadLineDate);
            sqlParams[3]  = new SqlParameter("DepartmentID", data.DepartmentID);
            sqlParams[4]  = new SqlParameter("DispatchedDate", data.DispatchedDate);
            sqlParams[5]  = new SqlParameter("DispatchTo", data.DispatchTo);
            sqlParams[6]  = new SqlParameter("PriorityID", data.PriorityID);
            sqlParams[7]  = new SqlParameter("ProblemDescription", data.ProblemDescription);
            sqlParams[8]  = new SqlParameter("ReceivedDate", data.ReceivedDate);
            sqlParams[9]  = new SqlParameter("SiteID", data.SiteID);
            sqlParams[10] = new SqlParameter("WorkOrderStatus", ActivityStatusEnum.Unscheduled);
            object objResult = SqlClientRMXProd.ExecuteScalar("udsp_InsertWorkOrder", sqlParams);

            if ((objResult != null) && (Int32.TryParse(objResult.ToString(), out workOrderId)))
            {
                return(workOrderId);
            }
            return(workOrderId);
        }
예제 #12
0
        public bool AddWorkOrder(bool displayAlert = true)
        {
            bool result = false;

            AddWorkOrderRequest addWorkOrderRequest = new AddWorkOrderRequest();

            WorkOrderDTO dto = new WorkOrderDTO()
            {
                WorkOrderId         = currentWorkOrderId,
                Seller              = ((KeyValuePair <long, string>) this.Seller.SelectedItem).Value,
                Buyer               = this.Buyer.Text,
                CreateDate          = DateTime.Now,
                DeliveryDate        = this.DeliveryDate.Date,
                Comments            = this.Comments.Text,
                IsSiteService       = this.DeliveryType.SelectedIndex == 2 ? true : false,
                IsDelivery          = this.DeliveryType.SelectedIndex == 0 ? false : true,
                DeliveryType        = this.DeliveryType.SelectedIndex,
                Paid                = false,
                IsCancelled         = false,
                CustomerId          = customerId,
                SellerId            = ((KeyValuePair <long, string>) this.Seller.SelectedItem).Key,
                DeliverTo           = DeliverTo.Text,
                DeliveryRecipientId = deliveryRecipientId,
                OrderType           = OrderType.SelectedIndex,
                DeliveryUserId      = this.DeliveryPerson.SelectedItem != null ? ((KeyValuePair <long, string>) this.DeliveryPerson.SelectedItem).Key : 0
            };

            addWorkOrderRequest.NotInInventory = notInInventory;

            List <WorkOrderInventoryMapDTO> workOrderInventoryMap = new List <WorkOrderInventoryMapDTO>();


            foreach (WorkOrderInventoryItemDTO woii in workOrderInventoryList)
            {
                WorkOrderViewModel wovm = null;
                if (((ObservableCollection <WorkOrderViewModel>)InventoryItemsListView.ItemsSource).Where(a => a.InventoryId == woii.InventoryId).Any())
                {
                    wovm = ((ObservableCollection <WorkOrderViewModel>)InventoryItemsListView.ItemsSource).Where(a => a.InventoryId == woii.InventoryId).First();
                }

                workOrderInventoryMap.Add(new WorkOrderInventoryMapDTO()
                {
                    WorkOrderId   = currentWorkOrderId,
                    InventoryId   = woii.InventoryId,
                    InventoryName = woii.InventoryName,
                    //Quantity = woii.Quantity,
                    Quantity = wovm != null ? wovm.Quantity : 1,
                    GroupId  = woii.GroupId,
                    Size     = woii.Size,
                });
            }

            addWorkOrderRequest.WorkOrder             = dto;
            addWorkOrderRequest.WorkOrderInventoryMap = workOrderInventoryMap.Where(a => a.GroupId == 0).ToList();

            foreach (NotInInventoryDTO notIn in notInInventory)
            {
                WorkOrderViewModel wovm = null;

                if (((ObservableCollection <WorkOrderViewModel>)InventoryItemsListView.ItemsSource).Where(a => a.NotInInventoryId == notIn.NotInInventoryId).Any())
                {
                    wovm = ((ObservableCollection <WorkOrderViewModel>)InventoryItemsListView.ItemsSource).Where(a => a.NotInInventoryId == notIn.NotInInventoryId).First();
                }

                if (wovm != null)
                {
                    notIn.NotInInventoryQuantity = wovm.Quantity;
                }
            }

            addWorkOrderRequest.NotInInventory = notInInventory;

            addWorkOrderRequest.Arrangements = arrangementList;

            currentWorkOrderId = ((App)App.Current).AddWorkOrder(addWorkOrderRequest);

            if (currentWorkOrderId > 0)
            {
                result = true;

                //add any images
                List <EOImgData> imageData = ((App)App.Current).GetImageData();

                if (imageData.Count > 0)
                {
                    foreach (EOImgData img in imageData)
                    {
                        AddWorkOrderImageRequest request = new AddWorkOrderImageRequest()
                        {
                            WorkOrderId = currentWorkOrderId,
                            ImageId     = img.ImageId,
                            Image       = img.imgData
                        };

                        ((App)App.Current).AddWorkOrderImage(request);
                    }
                }

                Save.IsEnabled    = false;
                Payment.IsEnabled = true;

                if (displayAlert)
                {
                    DisplayAlert("Success", "WorkOrder Saved!", "OK");
                }
            }
            else
            {
                if (displayAlert)
                {
                    DisplayAlert("Error", "There was an error saving this work order.", "Ok");
                }
            }

            return(result);
        }
예제 #13
0
        public void AddWorkOrder()
        {
            try
            {
                AddWorkOrderRequest addWorkOrderRequest = new AddWorkOrderRequest();

                WorkOrderDTO dto = new WorkOrderDTO()
                {
                    Seller     = this.SellerTextBox.Text,
                    Buyer      = this.BuyerTextBox.Text,
                    CreateDate = DateTime.Now,
                    Comments   = this.CommentsTextBox.Text
                };

                foreach (WorkOrderInventoryItemDTO woii in workOrderInventoryList)
                {
                    workOrderInventoryMap.Add(new WorkOrderInventoryMapDTO()
                    {
                        InventoryId   = woii.InventoryId,
                        InventoryName = woii.InventoryName,
                        Quantity      = woii.Quantity
                    });
                }

                addWorkOrderRequest.WorkOrder             = dto;
                addWorkOrderRequest.WorkOrderInventoryMap = workOrderInventoryMap;

                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri("http://localhost:9000/");
                //client.DefaultRequestHeaders.Add("appkey", "myapp_key");
                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                client.DefaultRequestHeaders.Add("EO-Header", wnd.User + " : " + wnd.Pwd);

                string jsonData = JsonConvert.SerializeObject(addWorkOrderRequest);
                var    content  = new StringContent(jsonData, Encoding.UTF8, "application/json");
                HttpResponseMessage httpResponse = client.PostAsync("api/Login/AddWorkOrder", content).Result;
                if (httpResponse.IsSuccessStatusCode)
                {
                    Stream       streamData = httpResponse.Content.ReadAsStreamAsync().Result;
                    StreamReader strReader  = new StreamReader(streamData);
                    string       strData    = strReader.ReadToEnd();
                    strReader.Close();
                    ApiResponse apiResponse = JsonConvert.DeserializeObject <ApiResponse>(strData);

                    if (apiResponse.Messages.Count > 0)
                    {
                        StringBuilder sb = new StringBuilder();
                        foreach (KeyValuePair <string, List <string> > messages in apiResponse.Messages)
                        {
                            foreach (string msg in messages.Value)
                            {
                                sb.AppendLine(msg);
                            }
                        }

                        MessageBox.Show(sb.ToString());
                    }
                    else
                    {
                        this.WorkOrderInventoryListView.ItemsSource = null;
                    }
                }
                else
                {
                    MessageBox.Show("Error adding Work Order");
                }
            }
            catch (Exception ex)
            {
            }
        }
        public void AddWorkOrder()
        {
            AddWorkOrderRequest addWorkOrderRequest = new AddWorkOrderRequest();

            WorkOrderDTO dto = new WorkOrderDTO()
            {
                WorkOrderId    = currentSiteServiceId,
                SellerId       = ((KeyValuePair <long, string>) this.CreatedBy.SelectedItem).Key,
                Seller         = ((KeyValuePair <long, string>) this.CreatedBy.SelectedItem).Value,
                Buyer          = this.Customer.Text,
                DeliveredBy    = ((KeyValuePair <long, string>)ServicedBy.SelectedItem).Value,
                CustomerId     = customerId,
                CreateDate     = DateTime.Now,
                Comments       = this.Comments.Text,
                DeliveryUserId = ((KeyValuePair <long, string>) this.ServicedBy.SelectedItem).Key,
                IsSiteService  = true,
                DeliveryDate   = DeliveryDate.Date
            };

            List <WorkOrderInventoryMapDTO> workOrderInventoryMap = new List <WorkOrderInventoryMapDTO>();

            foreach (WorkOrderInventoryItemDTO woii in siteServiceInventoryList)
            {
                workOrderInventoryMap.Add(new WorkOrderInventoryMapDTO()
                {
                    WorkOrderId   = currentSiteServiceId,
                    InventoryId   = woii.InventoryId,
                    InventoryName = woii.InventoryName,
                    Quantity      = woii.Quantity
                });
            }

            List <EOImageSource> imgSource = TabParent.GetImages();

            foreach (EOImageSource img in imgSource)
            {
                addWorkOrderRequest.ImageMap.Add(new WorkOrderImageMapDTO()
                {
                    WorkOrderId = currentSiteServiceId,
                    ImageId     = img.ImageId,
                    ImageData   = img.Image
                });
            }

            addWorkOrderRequest.WorkOrder             = dto;
            addWorkOrderRequest.WorkOrderInventoryMap = workOrderInventoryMap;

            long newWorkOrderId = ((App)App.Current).AddWorkOrder(addWorkOrderRequest);

            if (newWorkOrderId > 0)
            {
                //imageData.Clear();
                //((App)App.Current).ClearImageData();
                //this.siteServiceInventoryList.Clear();
                //this.SiteServiceInventoryItemsListView.ItemsSource = null;
                if (!workOrder.WorkOrder.Paid)
                {
                    Pay.IsEnabled = true;
                }
            }
            else
            {
                //DisplayAlert(?)
            }
        }
예제 #15
0
        public WorkOrderRequest()
        {
            WorkOrder = new WorkOrderDTO();

            InventoryIdList = new List <long>();
        }