Beispiel #1
0
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            string _ErrorStr = "Connection not openned";

            OrderTbl _OrderTbl = new OrderTbl();

            OrderHeaderData _OrderHeaderData = Get_dvOrderHeaderData(false);
            OrderTblData    _OrderData       = new OrderTblData();

            // first summary data
            _OrderData.CustomerId      = _OrderHeaderData.CustomerID;
            _OrderData.OrderDate       = _OrderHeaderData.OrderDate;
            _OrderData.RoastDate       = _OrderHeaderData.RoastDate;
            _OrderData.RequiredByDate  = _OrderHeaderData.RequiredByDate;
            _OrderData.ToBeDeliveredBy = Convert.ToInt32(_OrderHeaderData.ToBeDeliveredBy);
            _OrderData.PurchaseOrder   = _OrderHeaderData.PurchaseOrder;
            _OrderData.Confirmed       = _OrderHeaderData.Confirmed;
            _OrderData.InvoiceDone     = _OrderHeaderData.InvoiceDone;
            _OrderData.Done            = _OrderHeaderData.Done;
            _OrderData.PurchaseOrder   = _OrderHeaderData.PurchaseOrder;
            _OrderData.Notes           = _OrderHeaderData.Notes;

            // Now line data
            TrackerTools _TT = new TrackerTools();

            _OrderData.ItemTypeID      = Convert.ToInt32(ddlNewItemDesc.SelectedValue);
            _OrderData.ItemTypeID      = _TT.ChangeItemIfGroupToNextItemInGroup(_OrderData.CustomerId, _OrderData.ItemTypeID, _OrderData.RequiredByDate);
            _OrderData.QuantityOrdered = Convert.ToDouble(tbxNewQuantityOrdered.Text);
            _OrderData.PackagingID     = Convert.ToInt32(ddlNewPackaging.SelectedValue);

            _ErrorStr       = _OrderTbl.InsertNewOrderLine(_OrderData);
            ltrlStatus.Text = (String.IsNullOrWhiteSpace(_ErrorStr) ? "Item Added" : "Error adding item: " + _ErrorStr);
            HideNewOrderItemPanel();
        }
Beispiel #2
0
        protected bool AddNewOrderLine(int pNewItemID, double pNewQuantityOrdered, int pNewPackagingID)
        {
            string _ErrorStr = "";

            OrderTblData _OrderData = new OrderTblData();
            OrderTbl     _OrderTbl  = new OrderTbl();

            _OrderData.CustomerId      = Convert.ToInt64(ddlContacts.SelectedValue);
            _OrderData.OrderDate       = Convert.ToDateTime(tbxOrderDate.Text).Date;
            _OrderData.RoastDate       = Convert.ToDateTime(tbxRoastDate.Text).Date;
            _OrderData.RequiredByDate  = Convert.ToDateTime(tbxRequiredByDate.Text).Date;
            _OrderData.ToBeDeliveredBy = Convert.ToInt32(ddlToBeDeliveredBy.SelectedValue);
            _OrderData.PurchaseOrder   = tbxPurchaseOrder.Text;
            _OrderData.Confirmed       = Convert.ToBoolean(cbxConfirmed.Checked);
            _OrderData.InvoiceDone     = cbxInvoiceDone.Checked;
            _OrderData.Done            = Convert.ToBoolean(cbxDone.Checked);
            _OrderData.Notes           = tbxNotes.Text;
            // Now line data
            Session[OrderHeaderData.CONST_BOUNDOLDDELIVERYDATE] = _OrderData.RequiredByDate.Date;
            TrackerTools _TT = new TrackerTools();

            _OrderData.ItemTypeID      = _TT.ChangeItemIfGroupToNextItemInGroup(_OrderData.CustomerId, pNewItemID, _OrderData.RequiredByDate);
            _OrderData.QuantityOrdered = pNewQuantityOrdered;
            _OrderData.PackagingID     = pNewPackagingID;

            _ErrorStr = _OrderTbl.InsertNewOrderLine(_OrderData);

            BindRowQueryParameters();

            return(String.IsNullOrEmpty(_ErrorStr));
        }
        public bool MapOrderTblToOrderViewModel(OrderTbl order, StoreTbl store, UserAdmin sender, UserAdmin recipient, UserAdmin customer, IEnumerable <OrderDetailTbl> orderDetail)
        {
            try
            {
                if (order == null)
                {
                    return(false);
                }
                this.Id              = order.Id;
                this.TotalWeight     = order.TotalWeight;
                this.Store           = store == null ? StringProvider.NOTFOUND :  store.Name;
                this.CustomerConfirm = customer == null ? "" : customer.FullName;
                this.NumberOfDOCS    = orderDetail.Count();
                this.Notes           = order.Notes;
                this.Shipment        = order.Shipment;

                this.SenderName  = sender == null ? StringProvider.NOTFOUND : sender.FullName;
                this.PhoneSender = sender == null ? StringProvider.NOTFOUND : sender.Phone;

                this.RecipientName    = recipient == null ? StringProvider.NOTFOUND : recipient.FullName;
                this.RecipientPhone   = recipient == null ? StringProvider.NOTFOUND : recipient.Phone;
                this.RecipientAddress = recipient == null ? StringProvider.NOTFOUND : recipient.Address;

                this.Status     = order.Status;
                this.CreateDate = TimestampStaicClass.ConvertToDatetime(order.CreateDate);
                this.ModifyDate = TimestampStaicClass.ConvertToDatetime(order.ModifyDate);
                this.PickupDate = TimestampStaicClass.ConvertToDatetime(order.PickupDate);
                return(true);
            } catch (Exception e)
            {
                return(false);
            }
        }
Beispiel #4
0
        public async Task <IActionResult> PutOrderTbl([FromRoute] int id, [FromBody] OrderTbl orderTbl)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != orderTbl.Id)
            {
                return(BadRequest());
            }

            _context.Entry(orderTbl).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrderTblExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Beispiel #5
0
        // PUT api/Order/5
        public IHttpActionResult PutOrderTbl(int id, OrderTbl ordertbl)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != ordertbl.OrderId)
            {
                return(BadRequest());
            }

            db.Entry(ordertbl).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrderTblExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #6
0
        public void DeleteOrderItem(string pOrderID)
        {
            OrderTbl _Order    = new OrderTbl();
            string   _ErrorStr = _Order.DeleteOrderById(Convert.ToInt64(pOrderID));

            ltrlStatus.Text = (_ErrorStr.Length == 0) ? "Item deleted" : _ErrorStr;
        }
Beispiel #7
0
        private string UnDoneOrderItem(string pOrderID)
        {
            long _OrderID = Convert.ToInt64(pOrderID);

            OrderTbl _Order = new OrderTbl();

            return(_Order.UpdateSetDoneByID(false, _OrderID));
        }
        public ActionResult Dispatch(Int64 id)
        {
            OrderTbl rec = entity.OrderTbls.Find(id);

            ViewBag.OrderID   = rec.OrderID;
            ViewBag.OrderDate = rec.OrderDate;
            ViewBag.UserName  = rec.UserTbl.UserName;
            ViewBag.AgencyID  = new SelectList(entity.DispatchAgencyTbls.ToList(), "DispatchAgencyID", "DispatchAgencyName");
            return(View());
        }
Beispiel #9
0
        public IHttpActionResult GetOrderTbl(int id)
        {
            OrderTbl ordertbl = db.OrderTbls.Find(id);

            if (ordertbl == null)
            {
                return(NotFound());
            }

            return(Ok(ordertbl));
        }
Beispiel #10
0
        protected void MarkItemAsInvoiced()
        {
            OrderTbl _Orders         = new OrderTbl();
            long     _CustomerId     = (long)Session[OrderHeaderData.CONST_BOUNDCUSTOMERID];
            DateTime _RequiredByDate = ((DateTime)Session[OrderHeaderData.CONST_BOUNDDELIVERYDATE]).Date;
            string   _Notes          = (string)Session[OrderHeaderData.CONST_BOUNDNOTES];

            _Orders.UpdateSetInvoiced(true, _CustomerId, _RequiredByDate, _Notes);
/*      odsOrderSummary.Update();*/
            pnlOrderHeader.Update();
        }
Beispiel #11
0
        public IHttpActionResult PostOrderTbl(OrderTbl ordertbl)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.OrderTbls.Add(ordertbl);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = ordertbl.OrderId }, ordertbl));
        }
Beispiel #12
0
        public IHttpActionResult DeleteOrderTbl(int id)
        {
            OrderTbl ordertbl = db.OrderTbls.Find(id);

            if (ordertbl == null)
            {
                return(NotFound());
            }

            db.OrderTbls.Remove(ordertbl);
            db.SaveChanges();

            return(Ok(ordertbl));
        }
        public string Post([FromBody] OrderTbl ord)
        {
            string retMessage;

            try
            {
                //  _hubContext.Clients.All.BroadcastMessage(ord.Id,ord.OrderTime,ord.Quantity,ord.SubTotal,ord.TotalPrice,ord.PaymentType,ord.MenueId,ord.CustomerId);
                retMessage = "Success";
            }
            catch (Exception e)
            {
                retMessage = e.ToString();
            }
            return(retMessage);
        }
Beispiel #14
0
        public IEnumerable <OrderTbl> GetyourOrder()
        {
            OrderTbl order = new OrderTbl();
            //     _context.OrderTbl.Include(e => e.Menue.Id).ToList();
            //    _context.OrderTbl.Include(e => e.Customer.Id).ToList();

            IQueryable <OrderTbl> orders = null;

            orders = from b in _context.OrderTbl
                     join std in _context.MenueTbl on b.MenueId equals std.Id
                     join cmp in _context.CustomerTbl on b.CustomerId equals cmp.Id
                     where b.CustomerId == Global.UserID
                     //join ctg in _context.CategoryTbl on b.CategoryId equals ctg.Id
                     orderby b.OrderTime descending


                     select new OrderTbl
            {
                Id          = b.Id,
                OrderTime   = b.OrderTime,
                Quantity    = b.Quantity,
                TotalPrice  = b.TotalPrice,
                PaymentType = b.PaymentType,
                Subtotal    = b.Subtotal,
                Menue       = new MenueTbl()
                {
                    Id   = std.Id,
                    Name = std.Name,
                },
                Customer = new CustomerTbl()
                {
                    Id        = cmp.Id,
                    Name      = cmp.Name,
                    ContactNo = cmp.ContactNo,
                    Address   = cmp.Address
                },
                //Category = new CategoryTbl()
                //{
                //    Id = ctg.Id,
                //    Name = ctg.Name
                //}
            }
            ;

            return(orders.ToList());
            // return _context.OrderTbl;
        }
Beispiel #15
0
        public async Task <IActionResult> PostOrderTbl([FromBody] OrderTbl orderTbl)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (orderTbl.PaymentType == "1")
            {
                orderTbl.PaymentType = "Cash On Delivery";
            }
            if (orderTbl.PaymentType == "2")
            {
                orderTbl.PaymentType = "Bkash";
            }
            orderTbl.OrderTime  = DateTime.Now;
            orderTbl.CustomerId = Global.UserID;

            //orderTbl.CustomerId = TempData["userid"] as string;
            _context.OrderTbl.Add(orderTbl);

            NotificationTbl notification = new NotificationTbl();

            notification.Message = "New Order placed by " + Global.UserName + " at " + orderTbl.OrderTime.Value.ToString("yyyy-MM-dd hh:mm:ss tt");
            Global.Counter++;
            _context.NotificationTbl.Add(notification);


            await _context.SaveChangesAsync();

            // return CreatedAtAction("GetOrderTbl", new { id = orderTbl.Id }, orderTbl);

            // signalR notification
            string retMessage;

            try
            {
                await _hubContext.Clients.All.BroadcastMessage(orderTbl.Id, orderTbl.Quantity, orderTbl.Subtotal, orderTbl.TotalPrice, orderTbl.PaymentType, orderTbl.CustomerId, orderTbl.MenueId, orderTbl.OrderTime);

                retMessage = "Success";
            }
            catch (Exception e)
            {
                retMessage = e.ToString();
            }
            // return retMessage;
            return(CreatedAtAction("GetOrderTbl", new { id = orderTbl.Id }, orderTbl));
        }
Beispiel #16
0
        private bool LogARepair(RepairsTbl pRepair, bool pCalcOrderData)
        {
            bool _Success = false;
            // create a new order for delivery [RoastDate]
            OrderCls _OrderData      = new OrderCls();
            DateTime _RequiredByDate = DateTime.Now.Date.AddDays(7);

            // add the default data to order
            _OrderData.HeaderData.CustomerID = pRepair.CustomerID;
            _OrderData.HeaderData.Notes      = "Collect/Swop out Machine for Service";

            List <OrderDetailData> orderDetailDatas = new List <OrderDetailData>();
            OrderDetailData        orderDetailData  = new OrderDetailData();

            orderDetailData.ItemTypeID      = ItemTypeTbl.CONST_SERVICEITEMID;
            orderDetailData.QuantityOrdered = 1;


            // Calculate the Data from the customer details
            if (pCalcOrderData)
            {
                TrackerTools _TT = new TrackerTools();
                _OrderData.HeaderData.RoastDate = _TT.GetNextRoastDateByCustomerID(pRepair.CustomerID, ref _RequiredByDate);
                TrackerTools.ContactPreferedItems _ContactPreferedItems = _TT.RetrieveCustomerPrefs(pRepair.CustomerID);

                _OrderData.HeaderData.OrderDate      = DateTime.Now.Date;
                _OrderData.HeaderData.RequiredByDate = _RequiredByDate;
                if (_ContactPreferedItems.RequiresPurchOrder)
                {
                    _OrderData.HeaderData.PurchaseOrder = TrackerTools.CONST_POREQUIRED;
                }
                _OrderData.HeaderData.ToBeDeliveredBy = _ContactPreferedItems.DeliveryByID;
            }
            else
            {
                _OrderData.HeaderData.RoastDate      = _OrderData.HeaderData.OrderDate = DateTime.Now.Date;
                _OrderData.HeaderData.RequiredByDate = _RequiredByDate;
            }
            // save the data to the orders
            OrderTbl _Order = new OrderTbl();

            _Order.InsertNewOrderLine(_OrderData);
            pRepair.RelatedOrderID = _Order.GetLastOrderAdded(_OrderData.HeaderData.CustomerID, _OrderData.HeaderData.OrderDate, ItemTypeTbl.CONST_SERVICEITEMID);

            return(_Success);
        }
        public void CreateOrder(OrderCreateModel data)
        {
            OrderTbl order = new OrderTbl();

            order.SenderId    = data.SenderId;
            order.RecipientId = data.RecipientId;
            order.StoreId     = data.StoreId;
            order.Notes       = data.Note;
            order.TotalWeight = data.TotalWeight ?? 0;
            order.Status      = "New";
            order.Shipment    = data.Shipment;
            order.CreateDate  = TimestampStaicClass.ConvertTotimestamp(DateTime.UtcNow);
            order.ModifyDate  = TimestampStaicClass.ConvertTotimestamp(DateTime.UtcNow);
            order.Id          = Guid.NewGuid().ToString();

            orderRepo.Create(order);

            var listOrderdetail = new List <OrderDetailTbl>();

            if (data.listOrdertail != null)
            {
                foreach (var item in data.listOrdertail)
                {
                    var orderdetail = new OrderDetailTbl();
                    orderdetail.createDate        = TimestampStaicClass.ConvertTotimestamp(DateTime.UtcNow);
                    orderdetail.modifyDate        = TimestampStaicClass.ConvertTotimestamp(DateTime.UtcNow);
                    orderdetail.status            = "New";
                    orderdetail.description       = item.description;
                    orderdetail.productCategoryId = item.productCategoryId;
                    orderdetail.id          = Guid.NewGuid().ToString();
                    orderdetail.orderId     = order.Id;
                    orderdetail.price       = item.price;
                    orderdetail.productCode = item.productCode;
                    orderdetail.quality     = item.quality;
                    orderdetail.weight      = item.weight;
                    listOrderdetail.Add(orderdetail);
                }
            }

            orderDetailRepo.CreateMulti(listOrderdetail);
        }
        public async Task <ActionResult <OrderTbl> > PostOrderTbl(OrderTbl orderTbl)
        {
            _context.OrderTbl.Add(orderTbl);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (OrderTblExists(orderTbl.Oid))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetOrderTbl", new { id = orderTbl.Oid }, orderTbl));
        }
        public ActionResult PlaceOrder(int id)
        {
            Int64 userid   = Convert.ToInt64(Session["UserID"]);
            var   usercart = entity.CartTbls.Where(p => p.UserID == userid);
            //Store in ordertbl
            decimal? amount = usercart.Sum(p => p.Price * p.Qty);
            OrderTbl order  = new OrderTbl();

            order.OrderDate   = DateTime.Now;
            order.UserID      = userid;
            order.PaymentMode = id;
            entity.OrderTbls.Add(order);
            entity.SaveChanges();


            //order details
            foreach (var temp in usercart)
            {
                OrderDetTbl ordet = new OrderDetTbl();
                ordet.OrderID   = order.OrderID;
                ordet.Price     = temp.Price;
                ordet.Qty       = temp.Qty;
                ordet.ProductID = temp.ProductID;
                entity.OrderDetTbls.Add(ordet);
            }
            entity.SaveChanges();

            var newusercart = entity.CartTbls.Where(p => p.UserID == userid);

            foreach (var temp in newusercart)
            {
                entity.CartTbls.Remove(temp);
            }
            entity.SaveChanges();

            ViewBag.OrderID = order.OrderID;
            ViewBag.Amount  = amount;
            return(View());
        }
Beispiel #20
0
        protected void gvOrderLines_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            bool _UpdateGrids = false;

            if (e.CommandName == "MoveOneDayOn")
            {
                _UpdateGrids = true;
                int      index            = Convert.ToInt32(e.CommandArgument);
                Label    _OrderLabel      = (Label)gvOrderLines.Rows[index].FindControl("lblOrderID");
                string   _DeliveryDateStr = dvOrderHeaderGetLabelValue("lblRequiredByDate");
                DateTime _DeliveryDate    = Convert.ToDateTime(_DeliveryDateStr).Date;

                if (_DeliveryDate.DayOfWeek < DayOfWeek.Friday)
                {
                    _DeliveryDate = _DeliveryDate.AddDays(1);
                }
                else
                {
                    int _daysUntilMonday = ((int)DayOfWeek.Monday - (int)_DeliveryDate.DayOfWeek + 7) % 7;
                    _DeliveryDate = _DeliveryDate.AddDays(_daysUntilMonday);
                }

                OrderTbl _OrderTbl = new OrderTbl();
                _OrderTbl.UpdateOrderDeliveryDate(_DeliveryDate, Convert.ToInt64(_OrderLabel.Text));
            }
            else if (e.CommandName == "DeleteOrder")
            {
                _UpdateGrids = true;
                DeleteOrderItem(e.CommandArgument.ToString());
            }
            if (_UpdateGrids)
            {
                dvOrderHeader.DataBind();
                pnlOrderHeader.Update();
                gvOrderLines.DataBind();
                upnlOrderLines.Update();
            }
        }
        public ActionResult Details(Int64 id)
        {
            OrderTbl ord = entity.OrderTbls.Find(id);

            return(View(ord));
        }
Beispiel #22
0
        public bool HandleAndUpdateRepairStatusChange(RepairsTbl pRepair)
        {
            // send email and handle status change
            bool _Success = true;

            switch (pRepair.RepairStatusID)
            {
            case CONST_REPAIRSTATUS_LOGGED:
            {
                _Success = LogARepair(pRepair, true);
                break;
            }

            case CONST_REPAIRSTATUS_COLLECTED:
            {
                if (pRepair.RelatedOrderID.Equals(0))
                {
                    _Success = LogARepair(pRepair, true);
                }
                else
                {
                    OrderTbl _Order = new OrderTbl();
                    _Order.UpdateIncDeliveryDateBy7(pRepair.RelatedOrderID);
                }
                break;
            }

            case CONST_REPAIRSTATUS_WORKSHOP:
            {
                if (pRepair.RelatedOrderID.Equals(0))
                {
                    _Success = LogARepair(pRepair, false);
                }
                else
                {
                    OrderTbl _Order = new OrderTbl();
                    _Order.UpdateIncDeliveryDateBy7(pRepair.RelatedOrderID);
                }
                if (!String.IsNullOrEmpty(pRepair.MachineSerialNumber))
                {
                    // if we have no serial number in the current Customer Tbl then update
                    CustomersTbl _Customers = new CustomersTbl();
                    _Customers.SetEquipDetailsIfEmpty(pRepair.MachineTypeID, pRepair.MachineSerialNumber, pRepair.CustomerID);
                }
                break;
            }

            case CONST_REPAIRSTATUS_READY:
            {
                if (pRepair.RelatedOrderID > 0)
                {
                    OrderTbl _Order = new OrderTbl();
                    NextRoastDateByCityTbl _NextDates = new NextRoastDateByCityTbl();
                    _Order.UpdateOrderDeliveryDate(_NextDates.GetNextDeliveryDate(pRepair.CustomerID), pRepair.RelatedOrderID);
                }

                break;
            }

            case CONST_REPAIRSTATUS_DONE:
            {
                if (pRepair.RelatedOrderID > 0)
                {
                    OrderTbl _Order = new OrderTbl();
                    _Order.UpdateSetDoneByID(true, pRepair.RelatedOrderID);
                    // ??? should we do this since it interupts with the Preiction Calculations
                }
                break;
            }

            default:
            {
                break;
            }
            }
            _Success = String.IsNullOrEmpty(UpdateRepair(pRepair));

            _Success = _Success && SendStatusChangeEmail(pRepair);

            return(_Success);
        }
        bool SendReminder(SendCheckEmailTextsData pEmailTextData, ContactToRemindWithItems pContact, string pOrderType)
#endif
        {
            const string CONST_SERVERURL          = "http://tracker.quaffee.co.za/QonT/";
            const string CONST_HTMLBREAK          = "<br /><br />";
            const string CONST_ADDORDERURL        = "Internal: Order Ref <a href='" + CONST_SERVERURL + "{0}'>here</a>.";
            const string CONST_DISABLECUSTOMERURL = "If you would prefer to be disabled then click <a href='" + CONST_SERVERURL + "DisableClient.aspx?CoID={0}'>disable me</a>";

            bool _ReminderSent = false;
            bool _HasAutoFulfilElements = false, _HasReoccuringElements = false, _HadError = false;
            SentRemindersLogTbl _ReminderLog = new SentRemindersLogTbl();

            #region CreateAndPopulateUsageSummaryTable

            string _EmailBodyTable = UsageSummaryTableHeader(pContact);
            string _OrderType      = (String.IsNullOrEmpty(pOrderType)) ? "a reminder only" : pOrderType;
            // send a reminder
            // build up Table
            _EmailBodyTable += String.Format(CONST_SUMMARYTABLEHEADER, "Company/Contact", pContact.CompanyName);
            _EmailBodyTable += String.Format(CONST_SUMMARYTABLBODYROW2COL, "Next estimate prep date", String.Format("{0:d MMM, ddd}", pContact.NextPrepDate));
            _EmailBodyTable += String.Format(CONST_SUMMARYTABLBODYALTROW2COL, "Next estimate dispatch date", String.Format("{0:d MMM, ddd}", pContact.NextDeliveryDate));
            _EmailBodyTable += String.Format(CONST_SUMMARYTABLBODYALTROW2COL, "Type", _OrderType);
            if (pContact.ItemsContactRequires.Count > 0)
            {
                _EmailBodyTable += String.Format(CONST_SUMMARYTABLBODYROW3COL, "<b>List of Items</b>");

                for (int j = 0; j < pContact.ItemsContactRequires.Count; j++)
                {
                    _EmailBodyTable += CONST_SUMMARYTABLEBODYROWSTART + AddLastOrderTableRow(pContact.ItemsContactRequires[j], (j % 2 == 0)) + CONST_SUMMARYTABLEBODYROWEND;
                }
            }
            _EmailBodyTable += CONST_SUMMARYTABLEBODYEND;
            #endregion
            // add to orders if it is a autofulful or
            #region AddOrderLines
            if (!String.IsNullOrWhiteSpace(pOrderType))
            {
                OrderTblData _OrderData = new OrderTblData();

                _HasAutoFulfilElements     = true;
                _OrderData.CustomerId      = pContact.CustomerID;
                _OrderData.OrderDate       = DateTime.Now.Date;
                _OrderData.RoastDate       = pContact.NextPrepDate.Date;
                _OrderData.RequiredByDate  = pContact.NextDeliveryDate.Date;
                _OrderData.ToBeDeliveredBy = (pContact.PreferedAgentID < 0) ? TrackerTools.CONST_DEFAULT_DELIVERYBYID : pContact.PreferedAgentID; // the prefered person is the delivery agent
                _OrderData.Confirmed       = false;                                                                                               // we have not confirmed the order, it is a reoccuring or auto order
                _OrderData.InvoiceDone     = false;                                                                                               // we have not confirmed the order, it is a reoccuring or auto order
                _OrderData.PurchaseOrder   = string.Empty;                                                                                        // we have not confirmed the order, it is a reoccuring or auto order
                _OrderData.Notes           = pOrderType;

                ReoccuringOrderDAL _Reoccur   = new ReoccuringOrderDAL(); // to set the last date
                OrderTbl           _OrderTbl  = new OrderTbl();
                string             _InsertErr = String.Empty;
                int j = 0;
                // insert each itm that is Reoccuing or auto
                while ((j < pContact.ItemsContactRequires.Count) && String.IsNullOrEmpty(_InsertErr))
                {
                    _OrderData.ItemTypeID      = pContact.ItemsContactRequires[j].ItemID;
                    _OrderData.QuantityOrdered = pContact.ItemsContactRequires[j].ItemQty;
                    _OrderData.PackagingID     = pContact.ItemsContactRequires[j].ItemPackagID;
                    _OrderData.PrepTypeID      = pContact.ItemsContactRequires[j].ItemPrepID;
                    _InsertErr = _OrderTbl.InsertNewOrderLine(_OrderData);

                    // mark a reoccuring item as done with the current prep date
                    if (pContact.ItemsContactRequires[j].ReoccurOrder)
                    {
                        _Reoccur.SetReoccuringOrdersLastDate(pContact.NextPrepDate, pContact.ItemsContactRequires[j].ReoccurID);
                        _HasReoccuringElements = true;
                    }

                    j++;
                }
                // add a record into the log to say it was sent
                _HadError = !String.IsNullOrEmpty(_InsertErr);
                if (_HadError)
                {
                    showMessageBox _MsgBox = new showMessageBox(this.Page, "Error Inserting order for :" + pContact.CompanyName, _InsertErr);
                }
                else
                {
                    pEmailTextData.Footer += CONST_HTMLBREAK + "Items added to orders.";
                }
            }
            else /// we are not autoadding so lets append a "LastOrder Equiv to the message"
            {
                string _AddOrder = String.Format("Pages/NewOrderDetail.aspx?Z&{0}={1}", NewOrderDetail.CONST_URL_REQUEST_CUSTOMERID, pContact.CustomerID);
                for (int j = 0; j < pContact.ItemsContactRequires.Count; j++)
                {
                    _AddOrder += String.Format("&SKU{0}={1}&SKUQty{2}={3}", j + 1, GetItemSKU(pContact.ItemsContactRequires[j].ItemID), j + 1,
                                               pContact.ItemsContactRequires[j].ItemQty);
                }

                pEmailTextData.Footer += CONST_HTMLBREAK + String.Format(CONST_ADDORDERURL, _AddOrder);

                pEmailTextData.Footer += CONST_HTMLBREAK + String.Format(CONST_DISABLECUSTOMERURL, pContact.CustomerID);
            }
            #endregion

#if _DEBUG
            pContact.EmailAddress    = "*****@*****.**";
            pContact.AltEmailAddress = "";
#endif

            #region SendEmail

            string _FromEmail = ConfigurationManager.AppSettings[EmailCls.CONST_APPSETTING_FROMEMAILKEY];
            string _Greetings = String.Empty;

            EmailCls _Email = new EmailCls();
            _Email.SetEmailFrom(_FromEmail);
            _Email.SetEmailSubject(tbxEmailSubject.Text);

            if (pContact.EmailAddress.Contains("@"))
            {
                _Email.SetEmailTo(pContact.EmailAddress, true);
                _Greetings = String.IsNullOrWhiteSpace(pContact.ContactFirstName) ? "<p>Hi Coffee Lover,</p>" : "<p>Hi " + pContact.ContactFirstName + ",</p>";

                _Email.MsgBody = _Greetings + "<p>" + pEmailTextData.Header + "</p><p>" + pEmailTextData.Body + "</p><br />" +
                                 _EmailBodyTable + "<br /><br />" + pEmailTextData.Footer;

#if _DEBUG
                _ReminderSent = true;
                //if ((pReminderCount < 5) || (!String.IsNullOrWhiteSpace(pOrderType)))
                //  _ReminderSent = _Email.SendEmail();
                //else
                //  _ReminderSent = true;
#else
                _ReminderSent = _Email.SendEmail();
#endif
            }
            if (pContact.AltEmailAddress.Contains("@"))
            {
                _Email.SetEmailTo(pContact.AltEmailAddress, true);
                _Greetings     = String.IsNullOrWhiteSpace(pContact.ContactAltFirstName) ? "<p>Hi Coffee Lover,</p>" : "<p>Hi " + pContact.ContactAltFirstName + ",</p>";
                _Email.MsgBody = _Greetings + "<p>" + pEmailTextData.Header + "</p><p>" + pEmailTextData.Body + "</p><br />" +
                                 _EmailBodyTable + CONST_HTMLBREAK + pEmailTextData.Footer;

#if _DEBUG
                _ReminderSent = true;
#else
                _ReminderSent = (_ReminderSent) || (_Email.SendEmail());
#endif
            }

            #endregion

            /// cipy values across and add to database
            _ReminderLog.CustomerID        = pContact.CustomerID;
            _ReminderLog.DateSentReminder  = System.DateTime.Now.Date;
            _ReminderLog.NextPrepDate      = pContact.NextCoffee.Date; // use the coffee date
            _ReminderLog.ReminderSent      = _ReminderSent;
            _ReminderLog.HadAutoFulfilItem = _HasAutoFulfilElements;
            _ReminderLog.HadReoccurItems   = _HasReoccuringElements;

            _ReminderLog.InsertLogItem(_ReminderLog);

            return(_ReminderSent);
        }
Beispiel #24
0
        public MessageResult InsertNewOrder(List <DetailOrdersDTO> doLst, OrdersDTO o)
        {
            MessageResult mr     = new MessageResult();
            var           check1 = db.Borrowers.Find(o.BorrowerID);
            var           check2 = db.Librarians.Find(o.LibrarianID);

            if (check1 != null)
            {
                if (check2 != null && o.LibrarianID == CurrentSession.sessionId)
                {
                    var  books = db.Books.ToList();
                    bool flag  = true;
                    List <DetailOrdersDTO> errorDetailOrders = new List <DetailOrdersDTO>();
                    foreach (var i in doLst)
                    {
                        foreach (var j in books)
                        {
                            if (i.BookId == j.bookID)
                            {
                                if (i.QuantityBorrowed > j.quantity)
                                {
                                    flag = false;
                                    errorDetailOrders.Add(i);
                                }
                            }
                        }
                    }
                    if (flag)
                    {
                        OrderTbl od = new OrderTbl();
                        if (o != null)
                        {
                            od.orderID      = CreateOrderId();
                            od.dateBorrowed = o.DateBorrowed;
                            od.borrowerID   = o.BorrowerID;
                            od.returnDate   = o.ReturnDate;
                            od.status       = o.Status;
                            od.librarianID  = o.LibrarianID;
                            db.OrderTbls.Add(od);
                            db.SaveChanges();
                        }
                        var temp = db.OrderTbls.Find(od.orderID);
                        if (temp != null)
                        {
                            DetailOrderDAO.Instance.InsertDetailOrder(doLst, od.orderID);
                            mr.isSuccess = true;
                        }
                        else
                        {
                            mr.isSuccess     = false;
                            mr.returnMessage = "Something's wrong. Fail to create order. ";
                        }
                    }
                    else
                    {
                        mr.isSuccess = false;
                        string mess = "";
                        foreach (var k in errorDetailOrders)
                        {
                            mess += k.BookId.ToString() + " ";
                        }
                        mr.returnMessage = "Some Books were out of stock. Here are these of BookIDs: " + mess;
                    }
                }
                else
                {
                    mr.isSuccess     = false;
                    mr.returnMessage = "[Danger] Invalid Session.";
                }
            }
            else
            {
                mr.isSuccess     = false;
                mr.returnMessage = "Something's wrong. Borrower ID: '" + o.BorrowerID + "' is not existed. ";
            }

            return(mr);
        }