Exemple #1
0
        public OrderStatus GenerateOrderStatus(int _orderID, OrderStatus.OrderStatusesEnum _orderStatus)
        {
            OrderStatus result = new OrderStatus(_orderStatus, DateTime.Now, _orderID);

            SaveOrderStatusForOrder(result);
            return(result);
        }
        public List <string> FurtherOrderStatus(Order _order, OrderStatus.OrderStatusesEnum _orderStatus)
        {
            List <string> result = new List <string>();

            if (_orderStatus == OrderStatus.OrderStatusesEnum.WaitingForDC)
            {
                result.Add("Bestelling: <strong>" + _order.ID + "</strong> succesvol naar DC doorgestuurd: <br />");
                int iteration = 0;
                foreach (OrderLine _ol in _order.Products)
                {
                    int ActualAmount = new ProductRepository().UpdateAmountInStock(_ol.Product, _ol.Amount * -1);
                    if (ActualAmount != (_ol.Amount * -1))
                    {
                        if (iteration == 0)
                        {
                            result.Add("Sommige producten zijn meer besteld dan er op voorraad zijn. De bestelde hoeveelheden van de volgende producten zijn aangepast: <br />");
                        }
                        new OrderLineRepository().EditOrderedAmount(_order.ID, _ol.Product.ID, Math.Abs(ActualAmount));
                        result.Add("<strong>" + Regex.Replace(_ol.Product.Name, @"(?!^)(?:[A-Z](?:[a-z]+|(?:[A-Z\d](?![a-z]))*)|\d+)", " $0") + "</strong> - Origineel besteld: <strong>" + _ol.Amount + "</strong> Aangepast naar: <strong>" + Math.Abs(ActualAmount) + "</strong><br />");
                        iteration++;
                    }
                }
            }
            else if (_orderStatus == OrderStatus.OrderStatusesEnum.Rejected)
            {
                result.Add("Bestelling: " + _order.ID + " succesvol geweigerd. Melding gestuurd naar: " + _order.Customer.Name);
                foreach (OrderLine _ol in _order.Products)
                {
                    new ProductRepository().UpdateAmountInStock(_ol.Product, _ol.Amount);
                }
            }

            Orderctx.FurtherOrderStatus(_order.ID, _orderStatus);
            return(result);
        }
Exemple #3
0
        public void FurtherOrderStatus(int _orderID, OrderStatus.OrderStatusesEnum _orderStatus)
        {
            string query = "INSERT INTO [OrderStatus](Status, DateTime, OrderID) VALUES (@Status, @DateTime, @OrderID)";
            List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("@Status", _orderStatus),
                new KeyValuePair <string, object>("@DateTime", DateTime.Now),
                new KeyValuePair <string, object>("@OrderID", _orderID)
            };

            SQL_CRUD_Methods.SQLInsertBoolReturn(query, parameters);
        }
        public void FurtherOrderStatus(int _orderID, OrderStatus.OrderStatusesEnum _orderStatus, string _DCMSG)
        {
            string notificationMsg         = "";
            var    identity                = (ClaimsIdentity)User.Identity;
            int    notificationRecipientID = 0;

            try
            {
                IOrderRepository OrderRepo = new OrderRepository();
                Order            Order     = OrderRepo.GetOrderByID(_orderID);
                if (Order.Products.Count > 0)
                {
                    if (Order.Statuses.FindIndex(x => x.RegisteredStatus == _orderStatus) == -1)
                    {
                        foreach (string str in OrderRepo.FurtherOrderStatus(Order, _orderStatus))
                        {
                            notificationMsg += str;
                        }
                    }
                    if (_orderStatus == OrderStatus.OrderStatusesEnum.WaitingForDC)
                    {
                        UpdateOrderOverviewTroughSignalR();
                        var          body = System.IO.File.ReadAllText(Server.MapPath(@"~\Content\EmailTemplate.cshtml"));
                        Mail         mail = new Mail("*****@*****.**", "Nieuwe Bestelling: " + Order.ID + " van: " + Order.Customer.Name, string.Format(body, Order.Customer.ID, DateTime.Now.ToString("dd/MM/yyyy")));
                        MemoryStream strm = new MemoryStream(((ViewAsPdf)GetPDFPackingSlip(Order)).BuildFile(ControllerContext));
                        System.Net.Mail.Attachment pdfatt = new System.Net.Mail.Attachment(strm, "Bestelling: " + Order.ID + ".pdf", "application/pdf");
                        if (Convert.ToInt16(identity.Claims.Last().Value) != Order.Customer.ID)
                        {
                            notificationRecipientID = Convert.ToInt16(identity.Claims.Last().Value);
                        }
                        else
                        {
                            notificationRecipientID = Order.Customer.ID;
                            SendMessageTroughSignalR(8, Order.Customer.Name + " Heeft een nieuwe bestelling doorgevoerd");
                        }
                        SendMessageTroughSignalR(notificationRecipientID, notificationMsg);
                        mail.AddAttachment(pdfatt);
                        mail.SendMail();
                    }
                    else if (_orderStatus == OrderStatus.OrderStatusesEnum.Processing)
                    {
                        UpdateOrderOverviewTroughSignalR();
                        SendMessageTroughSignalR(Convert.ToInt16(identity.Claims.Last().Value), string.Format("Bestelling: {0} in behandeling genomen", _orderID));
                    }
                    else if (_orderStatus == OrderStatus.OrderStatusesEnum.Delivered)
                    {
                        UpdateOrderOverviewTroughSignalR();
                        SendMessageTroughSignalR(Convert.ToInt16(identity.Claims.Last().Value), string.Format("Bestelling: {0} succesvol verwerkt", _orderID));
                    }
                    else if (_orderStatus == OrderStatus.OrderStatusesEnum.Rejected)
                    {
                        UpdateOrderOverviewTroughSignalR();
                        SendMessageTroughSignalR(Order.Customer.ID, string.Format("Distributie Centrum heeft uw bestelling: {0} geweigerd. Melding van DC: {1}", _orderID, _DCMSG));
                        SendMessageTroughSignalR(Convert.ToInt16(identity.Claims.Last().Value), notificationMsg);
                    }
                }
                else
                {
                    SendMessageTroughSignalR(Convert.ToInt16(identity.Claims.Last().Value), "Geen Producten in bestelling");
                }
            }
            catch
            {
                SendMessageTroughSignalR(Convert.ToInt16(identity.Claims.Last().Value), "Er ging iets fout tijdens het verwerken van de bestelling!");
            }
        }