Exemplo n.º 1
0
        public JsonResult GetOrderDetails(int id)
        {
            OrderDetailBO      objOrderDetailBO = new OrderDetailBO();
            List <OrderDetail> lstOrderdetails  = objOrderDetailBO.GetOrderDetails(id);

            return(Json(lstOrderdetails, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        private void PopulateShipmentKey(DateTime ShipmentDate)
        {
            List <ReturnWeeklySummaryViewBO> lstWeeklySummary = new List <ReturnWeeklySummaryViewBO>();
            List <ReturnWeeklySummaryViewBO> lst = new List <ReturnWeeklySummaryViewBO>();

            lst = OrderDetailBO.GetWeekSummary(ShipmentDate, true);

            List <int> lstshipmentID = (new InvoiceBO()).SearchObjects().Where(o => o.WeeklyProductionCapacity == WeekID).Select(o => o.ShipTo).ToList();

            List <int> lstShipTo = lst.Select(o => (int)o.DistributorClientAddress).ToList();

            List <int> lstShipmentKeyID = lstShipTo.Except(lstshipmentID).ToList();

            if (this.QueryID == 0)
            {
                if (lst.Count > 0)
                {
                    if (lstShipmentKeyID.Count > 0)
                    {
                        foreach (int ShipmentKey in lstShipmentKeyID)
                        {
                            lstWeeklySummary.AddRange(lst.Where(o => o.DistributorClientAddress == ShipmentKey).ToList());
                        }
                    }
                    else
                    {
                        lstWeeklySummary = lst;
                    }
                }
                else
                {
                    this.spanShipmentError.InnerText = "No shipments for this Week";
                    this.spanShipmentError.Visible   = true;
                }
            }
            else
            {
                List <InvoiceBO> lstshipments = (new InvoiceBO()).SearchObjects().Where(o => o.WeeklyProductionCapacity == WeekID).ToList();

                foreach (InvoiceBO item in lstshipments.Where(o => o.ID == this.QueryID))
                {
                    lstWeeklySummary.AddRange(lst.Where(o => o.DistributorClientAddress == item.ShipTo && o.ShipmentModeID == item.ShipmentMode).ToList());
                }
            }

            if (lstWeeklySummary.Count > 0)
            {
                this.RadComboShipmentKey.Items.Clear();

                this.RadComboShipmentKey.DataSource = lstWeeklySummary;
                this.RadComboShipmentKey.DataBind();
            }
            else
            {
                //this.spanShipmentError.Visible = true;
            }
        }
        private OrderDetailBO OrderDetailBOCreate()
        {
            OrderDetailBO orderDetail = new OrderDetailBO()
            {
                OrderId   = 45,   //to check
                ProductId = 1002, //to check
                Quantity  = 2
            };

            return(orderDetail);
        }
Exemplo n.º 4
0
        protected void linkOrderQty_Click(object sender, EventArgs e)
        {
            if (this.IsNotRefresh)
            {
                OrderDetailBO objClientOrderDetail = new OrderDetailBO();
                objClientOrderDetail.ID = int.Parse(((HtmlAnchor)(sender)).Attributes["qid"].ToString());
                objClientOrderDetail.GetObject();

                this.rptSizeQty.DataSource = objClientOrderDetail.OrderDetailQtysWhereThisIsOrderDetail;
                this.rptSizeQty.DataBind();

                ViewState["IsPopulate"] = true;
            }
        }
Exemplo n.º 5
0
        private void PopulateCartonData()
        {
            List <PackingListBO> lstPackingLists = GetPolyBagData();

            if (lstPackingLists.Any())
            {
                OrderDetailBO objOrderDetail = new OrderDetailBO();
                objOrderDetail.ID = lstPackingLists[0].OrderDetail;
                objOrderDetail.GetObject();

                /* OrderBO objOrder = new OrderBO();
                 * objOrder.ID = objOrderDetail.Order;
                 * objOrder.GetObject();
                 *
                 * DistributorClientAddressBO objAddress = new DistributorClientAddressBO();
                 * objAddress.ID = (int)objOrder.DespatchToExistingClient;
                 * objAddress.GetObject();*/

                InvoiceOrderBO objInvoiceOrder = new InvoiceOrderBO();
                objInvoiceOrder.OrderDetail = objOrderDetail.ID;

                //string state = (string.IsNullOrEmpty(objAddress.State)) ? string.Empty : objAddress.State;

                this.litAddress.Text = objInvoiceOrder.SearchObjects().Select(o => o.objInvoice.InvoiceNo).SingleOrDefault();

                this.dvScanCarton.Attributes.Add("style", "display:block;");
                this.dvScanPolyBag.Attributes.Add("style", "display:none;");

                this.dvDataContent.Attributes.Add("style", "display:block;");
                this.h3Carton.Attributes.Add("class", "text-info");

                rptCarton.DataSource = lstPackingLists;
                rptCarton.DataBind();

                if ((isCompleted == true) && (noRecords == lstPackingLists.Count))
                {
                    // when carton completed
                    this.h3PolyBags.Attributes.Add("class", "text-success");
                    this.litPolyBags.Text = "Filling Carton is completed. There are <span class=\"badge badge-success\">" + noPolybags.ToString() + "</span> polybags in the Carton.";
                }
            }
            else
            {
                this.dvScanCarton.Attributes.Add("style", "display:none;");
                this.dvScanPolyBag.Attributes.Add("style", "display:block;");
                this.h3PolyBags.Attributes.Add("class", "text-error");
                this.litPolyBags.Text = "Scanned polybag details can not find in the System.";
            }
        }
Exemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (this.QueryID > 0)
                {
                    OrderBO objOrder = new OrderBO();
                    objOrder.ID = this.QueryID;
                    objOrder.GetObject();

                    OrderDetailBO objOrderDetail = new OrderDetailBO();
                    objOrderDetail.Order = objOrder.ID;
                    List <OrderDetailBO> lstOrderDetails = objOrderDetail.SearchObjects();
                    objOrderDetail = lstOrderDetails.First();

                    this.lblDistributor.Text     = objOrder.objDistributor.Name;
                    this.lblJobName.Text         = objOrder.objClient.Name;
                    this.lblClient.Text          = objOrder.objClient.objClient.Name;
                    this.lblDespatchAddress.Text = objOrder.objDespatchToAddress.CompanyName + "  " + objOrder.objDespatchToAddress.Address + "  "
                                                   + objOrder.objDespatchToAddress.PostCode + "  " + objOrder.objDespatchToAddress.Suburb + "  "
                                                   + objOrder.objDespatchToAddress.PostCode + "  " + objOrder.objDespatchToAddress.State + "  "
                                                   + objOrder.objDespatchToAddress.objCountry.ShortName;;

                    this.lblBillingAddress.Text = objOrder.objBillingAddress.CompanyName + "  " + objOrder.objBillingAddress.Address + "  "
                                                  + objOrder.objBillingAddress.PostCode + "  " + objOrder.objBillingAddress.Suburb + "  "
                                                  + objOrder.objBillingAddress.PostCode + "  " + objOrder.objBillingAddress.State + "  "
                                                  + objOrder.objBillingAddress.objCountry.ShortName;
                    int processingPeriod = 5;
                    int.TryParse(IndicoPage.GetSetting("OPP"), out processingPeriod);
                    lblDateRequiredinCustomersHand.Text = IndicoPage.GetNextWeekday(DayOfWeek.Monday).AddDays(7 * (processingPeriod - 1)).ToString("dd MMMM yyyy");


                    int.TryParse(IndicoPage.GetSetting("OPP"), out processingPeriod);
                    lblShipmentDate.Text = IndicoPage.GetNextWeekday(DayOfWeek.Monday).AddDays(7 * (processingPeriod - 1) - 2).ToString("dd MMMM yyyy");

                    this.lblShipmentTerm.Text = objOrderDetail.objPaymentMethod.Name;
                    this.lblShipmentMode.Text = objOrderDetail.objShipmentMode.Name;

                    this.rptOrderDetails.DataSource = lstOrderDetails;
                    this.rptOrderDetails.DataBind();
                }
            }
        }
Exemplo n.º 7
0
        private void PopulateDataGrid()
        {
            {
                if (this.WeekEndDate != new DateTime(1100, 1, 1))
                {
                    List <ReturnWeeklyAddressDetailsBO> lstWeeklyAddressDetils = new List <ReturnWeeklyAddressDetailsBO>();

                    lstWeeklyAddressDetils = OrderDetailBO.GetOrderDetailsAddressDetails(this.WeekEndDate, (CompanyName != null) ? CompanyName : string.Empty, this.ShipemtMode);

                    List <IGrouping <int, ReturnWeeklyAddressDetailsBO> > lstAddressOrderDetails = lstWeeklyAddressDetils.GroupBy(o => (int)o.ShipTo).ToList();

                    if (lstAddressOrderDetails.Count > 0)
                    {
                        this.rptShipmentOrders.DataSource = lstAddressOrderDetails;
                        this.rptShipmentOrders.DataBind();
                    }
                }
            }
        }
Exemplo n.º 8
0
        protected void rptOrderDetails_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            RepeaterItem item = e.Item;

            if (item.ItemIndex > -1 && item.DataItem is OrderDetailBO)
            {
                OrderDetailBO objOrderDetail = (OrderDetailBO)item.DataItem;

                CheckBox chkOrderDetail  = (CheckBox)item.FindControl("chkOrderDetail");
                Label    lblVisualLayout = (Label)item.FindControl("lblVisualLayout");
                lblVisualLayout.Text = objOrderDetail.objVisualLayout.NamePrefix + " / " + objOrderDetail.objPattern.Number + " " + objOrderDetail.objPattern.NickName + " / " + objOrderDetail.objFabricCode.Code + " " + objOrderDetail.objFabricCode.Name;


                HtmlAnchor         ancVLImage   = (HtmlAnchor)item.FindControl("ancVLImage");
                HtmlGenericControl ivlimageView = (HtmlGenericControl)item.FindControl("ivlimageView");

                ancVLImage.HRef = IndicoPage.GetVLImagePath((int)objOrderDetail.VisualLayout);

                if (!string.IsNullOrEmpty(ancVLImage.HRef))
                {
                    ancVLImage.Attributes.Add("class", "btn-link preview");
                    ivlimageView.Attributes.Add("class", "icon-eye-open");

                    List <float> lstVLImageDimensions = (new ImageProcess()).GetResizedImageDimension(960, 720, 420, 360);
                    if (lstVLImageDimensions.Count > 0)
                    {
                        ancVLImage.Attributes.Add("height", lstVLImageDimensions[0].ToString());
                        ancVLImage.Attributes.Add("width", lstVLImageDimensions[1].ToString());
                    }
                }
                else
                {
                    ancVLImage.Title = "Visual Layout Image Not Available";
                    ivlimageView.Attributes.Add("class", "icon-eye-close");
                }

                HiddenField ODID = (HiddenField)item.FindControl("hdnODID");
                ODID.Value = objOrderDetail.ID.ToString();
            }
        }
        private void PopulateDataGrid()
        {
            {
                // Hide Controls
                this.dvDataContent.Visible  = false;
                this.dvEmptyContent.Visible = false;

                // Search text

                // Populate Items

                if (this.WeekEndDate != new DateTime(1100, 1, 1))
                {
                    List <ReturnWeeklySummaryViewBO> lstWeeklySummary = new List <ReturnWeeklySummaryViewBO>();


                    lstWeeklySummary = OrderDetailBO.GetWeekSummary(this.WeekEndDate, false);


                    if (lstWeeklySummary.Count > 0)
                    {
                        this.RadGridWeeklySummary.AllowPaging = (lstWeeklySummary.Count > this.RadGridWeeklySummary.PageSize);
                        this.RadGridWeeklySummary.DataSource  = lstWeeklySummary;
                        this.RadGridWeeklySummary.DataBind();

                        Session["SummaryDetailsView"] = lstWeeklySummary;

                        this.dvDataContent.Visible = true;
                        //this.litGrandTotal.Text = total.ToString();
                    }
                    else
                    {
                        this.dvEmptyContent.Visible = true;
                    }


                    this.RadGridWeeklySummary.Visible = (lstWeeklySummary.Count > 0);
                }
            }
        }
        public void CRUDTest()
        {
            //Old BO
            OrderDetailBO orderDetailBO = OrderDetailBOCreate();

            //SAVE
            OrderDetailDTO OrderDetailDTO = OrderDetailService.SaveOrderDetail(orderDetailBO);

            OrderDetail OrderDetailToCheck = DbContext.OrderDetail.Where(x => x.Id == OrderDetailDTO.Id && x.Active == true).FirstOrDefault();
            var         date = DateTime.Now;

            //Check object's fields on SAVE
            Assert.True(OrderDetailToCheck.Id == OrderDetailDTO.Id);
            Assert.True(OrderDetailToCheck.OrderId == OrderDetailDTO.OrderId);
            Assert.True(OrderDetailToCheck.ProductId == OrderDetailDTO.ProductId);
            Assert.True(OrderDetailToCheck.Quantity == OrderDetailDTO.Quantity);
            Assert.True(OrderDetailToCheck.CreatedOn.Date == date.Date);
            Assert.True(OrderDetailToCheck.ModifiedOn.Date == date.Date);

            //New BO
            orderDetailBO.Id       = OrderDetailDTO.Id;
            orderDetailBO.Quantity = 3;
            //EDIT
            OrderDetailService.EditOrderDetail(orderDetailBO);

            OrderDetailToCheck = DbContext.OrderDetail.Where(x => x.Id == orderDetailBO.Id && x.Active == true).FirstOrDefault();
            //Check object's fields on EDIT
            Assert.True(OrderDetailToCheck.Id == orderDetailBO.Id);
            Assert.True(OrderDetailToCheck.OrderId == orderDetailBO.OrderId);
            Assert.True(OrderDetailToCheck.ProductId == orderDetailBO.ProductId);
            Assert.True(OrderDetailToCheck.Quantity == orderDetailBO.Quantity);
            Assert.True(OrderDetailToCheck.CreatedOn == OrderDetailDTO.CreatedOn);
            Assert.True(OrderDetailToCheck.ModifiedOn > OrderDetailDTO.ModifiedOn);
            Assert.True(OrderDetailToCheck.DeletedOn == OrderDetailDTO.DeletedOn);
            Assert.True(OrderDetailToCheck.CreatedBy == OrderDetailDTO.CreatedBy);
            //Assert.True(OrderDetailToCheck.ModifiedBy == OrderDetailDTO.ModifiedBy); who modifies the entity is not always the same who created it
            Assert.True(OrderDetailToCheck.DeletedBy == OrderDetailDTO.DeletedBy);

            //DELETE by Id
            OrderDetailService.Delete(OrderDetailDTO.Id);

            OrderDetailToCheck = DbContext.OrderDetail.Where(x => x.Id == OrderDetailDTO.Id && x.Active == false).FirstOrDefault();
            //Check if entity is not null
            Assert.True(OrderDetailToCheck != null);
            //Check if the deleted date is modified on DELETE
            Assert.True(OrderDetailToCheck.DeletedOn > OrderDetailDTO.DeletedOn);

            //Restore "Old BO" and save the Entity
            orderDetailBO  = OrderDetailBOCreate();
            OrderDetailDTO = OrderDetailService.SaveOrderDetail(orderDetailBO);

            //GET BY ID
            OrderDetailDTO = OrderDetailService.GetById(OrderDetailDTO.Id);

            OrderDetailToCheck = DbContext.OrderDetail.Where(x => x.Id == OrderDetailDTO.Id && x.Active == true).FirstOrDefault();
            //Check object's fields on GET BY ID
            Assert.True(OrderDetailDTO.Id == OrderDetailToCheck.Id);
            Assert.True(OrderDetailDTO.OrderId == OrderDetailToCheck.OrderId);
            Assert.True(OrderDetailDTO.ProductId == OrderDetailToCheck.ProductId);
            Assert.True(OrderDetailDTO.Quantity == OrderDetailToCheck.Quantity);
            Assert.True(OrderDetailDTO.CreatedOn == OrderDetailToCheck.CreatedOn);
            Assert.True(OrderDetailDTO.ModifiedOn == OrderDetailToCheck.ModifiedOn);
            Assert.True(OrderDetailDTO.DeletedOn == OrderDetailToCheck.DeletedOn);
            Assert.True(OrderDetailDTO.CreatedBy == OrderDetailToCheck.CreatedBy);
            Assert.True(OrderDetailDTO.ModifiedBy == OrderDetailToCheck.ModifiedBy);
            Assert.True(OrderDetailDTO.DeletedBy == OrderDetailToCheck.DeletedBy);

            //DELETE by Entity
            OrderDetailService.Delete(OrderDetailDTO);

            OrderDetailToCheck = DbContext.OrderDetail.Where(x => x.Id == OrderDetailDTO.Id && x.Active == false).FirstOrDefault();
            //Check if entity is not null
            Assert.True(OrderDetailToCheck != null);
            //Check if the deleted date is modified on DELETE
            Assert.True(OrderDetailToCheck.DeletedOn > OrderDetailDTO.DeletedOn);


            //LIST
            var list = OrderDetailService.GetOrderDetailList();
        }
Exemplo n.º 11
0
        private void ChangeOrderDetails(int orderdetail, int invoiceorder)
        {
            try
            {
                if (orderdetail > 0)
                {
                    InvoiceOrderBO objInvoiceOrder = new InvoiceOrderBO(this.ObjContext);
                    objInvoiceOrder.ID = invoiceorder;
                    objInvoiceOrder.GetObject();

                    DateTime nextmonday = objInvoiceOrder.objOrderDetail.SheduledDate.AddDays(7 - objInvoiceOrder.objOrderDetail.SheduledDate.DayOfWeek == DayOfWeek.Monday ? 7 : (int)objInvoiceOrder.objOrderDetail.SheduledDate.DayOfWeek);

                    using (TransactionScope ts = new TransactionScope())
                    {
                        PackingListBO objPList = new PackingListBO();
                        objPList.OrderDetail = orderdetail;

                        List <PackingListBO> lstPackingLists = objPList.SearchObjects();

                        foreach (PackingListBO objpl in lstPackingLists)
                        {
                            PackingListSizeQtyBO objPlsq = new PackingListSizeQtyBO();
                            objPlsq.PackingList = objpl.ID;
                            List <PackingListSizeQtyBO> lstPackingListSizeQty = objPlsq.SearchObjects();

                            // delete the PackingListSizeQtyBO details
                            foreach (PackingListSizeQtyBO objplsqi in lstPackingListSizeQty)
                            {
                                PackingListSizeQtyBO objPackingListSizeQtyItem = new PackingListSizeQtyBO(this.ObjContext);
                                objPackingListSizeQtyItem.ID = objplsqi.ID;
                                objPackingListSizeQtyItem.GetObject();

                                objPackingListSizeQtyItem.Delete();
                            }

                            //this.ObjContext.SaveChanges();

                            PackingListCartonItemBO objPLCI = new PackingListCartonItemBO();
                            objPLCI.PackingList = objpl.ID;
                            List <PackingListCartonItemBO> lstPackingListCartonItems = objPLCI.SearchObjects();

                            // delete the PackingListCartonItemBO details
                            foreach (PackingListCartonItemBO objplci in lstPackingListCartonItems)
                            {
                                PackingListCartonItemBO objPackingListCartonItem = new PackingListCartonItemBO(this.ObjContext);
                                objPackingListCartonItem.ID = objplci.ID;
                                objPackingListCartonItem.GetObject();

                                objPackingListCartonItem.Delete();
                            }

                            //this.ObjContext.SaveChanges();

                            // delete the PackingListBO details

                            PackingListBO objPackingList = new PackingListBO(this.ObjContext);
                            objPackingList.ID = objpl.ID;
                            objPackingList.GetObject();

                            objPackingList.Delete();
                        }

                        //Creating new packing list record for next week
                        List <WeeklyProductionCapacityBO> lstwpc = (new WeeklyProductionCapacityBO()).SearchObjects().Where(o => o.WeekendDate >= nextmonday && o.WeekendDate <= nextmonday.AddDays(7)).ToList();

                        PackingListBO objp = new PackingListBO();
                        objp.WeeklyProductionCapacity = lstwpc[0].ID;

                        List <PackingListBO> lst = objp.SearchObjects();

                        if (lst.Count > 0)
                        {
                            PackingListBO objNewPl = new PackingListBO(this.ObjContext);
                            objNewPl.Carton      = 1;
                            objNewPl.CartonNo    = 0;
                            objNewPl.CreatedDate = objNewPl.ModifiedDate = DateTime.Now;
                            objNewPl.Creator     = objNewPl.Modifier = this.LoggedUser.ID;
                            objNewPl.OrderDetail = orderdetail;
                            objNewPl.WeeklyProductionCapacity = lstwpc[0].ID;
                            objNewPl.PackingQty = 0;

                            this.ObjContext.SaveChanges();

                            int Newplid = objNewPl.ID;

                            OrderDetailQtyBO objOrderDetailqty = new OrderDetailQtyBO();
                            objOrderDetailqty.OrderDetail = orderdetail;

                            List <OrderDetailQtyBO> lstOrderDetailsQty = objOrderDetailqty.SearchObjects();

                            foreach (OrderDetailQtyBO objOdq in lstOrderDetailsQty)
                            {
                                if (objOdq.Qty > 0)
                                {
                                    PackingListSizeQtyBO objPackingListSizeQty = new PackingListSizeQtyBO(this.ObjContext);
                                    objPackingListSizeQty.PackingList = Newplid;
                                    objPackingListSizeQty.Size        = objOdq.Size;
                                }
                            }
                        }
                        //this.ObjContext.SaveChanges();

                        //change the shipment date, scheduled date
                        OrderDetailBO objOrderDetail = new OrderDetailBO(this.ObjContext);
                        objOrderDetail.ID = orderdetail;
                        objOrderDetail.GetObject();

                        objOrderDetail.SheduledDate = nextmonday;
                        objOrderDetail.ShipmentDate = nextmonday;

                        this.ObjContext.SaveChanges();

                        ts.Complete();
                    }
                }
            }
            catch (Exception ex)
            {
                IndicoLogging.log.Error("Error occured while deleting or adding packing list details and changing the shipment date and scheduled date from the AddEditInvoce.aspx", ex);
            }
        }
Exemplo n.º 12
0
        private void ProcessForm()
        {
            //NNM
            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    #region Create InvoiceHeader

                    InvoiceBO objInvoice = new InvoiceBO(this.ObjContext);
                    if (QueryID > 0)
                    {
                        objInvoice.ID = this.QueryID;
                        objInvoice.GetObject();
                    }
                    else
                    {
                        objInvoice.Creator     = this.LoggedUser.ID;
                        objInvoice.CreatedDate = DateTime.Now;
                    }
                    objInvoice.InvoiceNo   = this.txtInvoiceNo.Text;
                    objInvoice.InvoiceDate = Convert.ToDateTime(this.txtInvoiceDate.Text);
                    objInvoice.ShipTo      = this.DistributorClientAddress;
                    objInvoice.AWBNo       = this.txtAwbNo.Text;
                    objInvoice.WeeklyProductionCapacity = int.Parse(this.RadComboWeek.SelectedValue);
                    objInvoice.ShipmentMode             = this.ShipmentModeID;
                    objInvoice.IndimanInvoiceNo         = (this.LoggedUserRoleName == UserRole.IndimanAdministrator) ? this.txtIndimanInvoiceNo.Text : string.Empty;
                    objInvoice.IsBillTo = this.chkIsBillTo.Checked;
                    objInvoice.BillTo   = (this.chkIsBillTo.Checked) ? int.Parse(this.ddlBillTo.SelectedValue) : 22;
                    objInvoice.Bank     = int.Parse(this.ddlBank.SelectedValue);

                    if (this.LoggedUserRoleName == UserRole.IndimanAdministrator)
                    {
                        objInvoice.IndimanInvoiceDate = Convert.ToDateTime(this.txtIndimanInvoiceDate.Text);
                    }

                    objInvoice.Modifier     = this.LoggedUser.ID;
                    objInvoice.ModifiedDate = DateTime.Now;

                    this.ObjContext.SaveChanges();

                    ViewState["InvoiceId"] = objInvoice.ID;

                    #endregion

                    #region InvoiceOrderDetail

                    foreach (GridDataItem item in RadInvoice.Items)
                    {
                        TextBox txtRate     = (TextBox)item.FindControl("txtRate");
                        int     id          = int.Parse(((System.Web.UI.WebControls.WebControl)(txtRate)).Attributes["invoiceorder"].ToString());
                        int     orderdetail = int.Parse(((System.Web.UI.WebControls.WebControl)(txtRate)).Attributes["orderdetail"].ToString());

                        TextBox txtIndimanRate = (TextBox)item.FindControl("txtIndimanRate");

                        InvoiceOrderBO objInvoiceOrder = new InvoiceOrderBO(this.ObjContext);
                        if (id > 0)
                        {
                            objInvoiceOrder.ID = id;
                            objInvoiceOrder.GetObject();
                        }

                        objInvoiceOrder.Invoice      = int.Parse(ViewState["InvoiceId"].ToString());
                        objInvoiceOrder.OrderDetail  = orderdetail;
                        objInvoiceOrder.FactoryPrice = Convert.ToDecimal(txtRate.Text);
                        objInvoiceOrder.IndimanPrice = (this.LoggedUserRoleName == UserRole.IndimanAdministrator) ? Convert.ToDecimal(txtIndimanRate.Text) : Convert.ToDecimal("0");
                    }
                    this.ObjContext.SaveChanges();

                    #endregion

                    #region Change Order Detail Status

                    List <int> lstOrders = new List <int>();
                    int        orderid   = 0;

                    if (this.ddlStatus.SelectedItem.Text == "Shipped")
                    {
                        foreach (GridDataItem item in RadInvoice.Items)
                        {
                            TextBox txtRate     = (TextBox)item.FindControl("txtRate");
                            int     orderdetail = int.Parse(((System.Web.UI.WebControls.WebControl)(txtRate)).Attributes["orderdetail"].ToString());

                            OrderDetailBO objOrderDetail = new OrderDetailBO(this.ObjContext);
                            objOrderDetail.ID = orderdetail;
                            objOrderDetail.GetObject();

                            if (objOrderDetail.Order != orderid)
                            {
                                lstOrders.Add(objOrderDetail.Order);
                                orderid = objOrderDetail.Order;
                            }

                            objOrderDetail.Status = 16;
                        }

                        this.ObjContext.SaveChanges();
                    }

                    #endregion

                    #region Change Order Status

                    if (lstOrders.Count > 0)
                    {
                        foreach (int order in lstOrders)
                        {
                            OrderBO objOrder = new OrderBO(this.ObjContext);
                            objOrder.ID = order;
                            objOrder.GetObject();

                            objOrder.Status = 21;
                        }

                        this.ObjContext.SaveChanges();
                    }

                    #endregion

                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                // Log the error
                IndicoLogging.log.Error("Error occured while Adding or Updating Invoicing", ex);
            }
        }