示例#1
0
        public async Task <ActionResult> List(ShipmentOrdersQueryRequest request)
        {
            if (!Request.IsAjaxRequest())
            {
                return(View());
            }

            var manager = new ShipmentManager(User);

            var paging = await manager.GetShipmentOrdersAsync(request.Start, request.Take, request.GetOrderListQueryFilter());

            var orders = paging.List.Select(u =>
            {
                var shipmentOrderViewModel          = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(u);
                shipmentOrderViewModel.Created      = u.Created.ToString(SaleManagentConstants.UI.DateStringFormat);
                shipmentOrderViewModel.DeliveryDate = u.DeliveryDate.ToString(SaleManagentConstants.UI.DateStringFormat);
                shipmentOrderViewModel.AuditDate    = u.AuditDate.HasValue ? u.AuditDate.Value.ToString(SaleManagentConstants.UI.DateStringFormat) : "";
                shipmentOrderViewModel.TotalAmount  = Math.Round(shipmentOrderViewModel.TotalAmount, 2);
                return(shipmentOrderViewModel);
            });

            return(Json(true, string.Empty, new
            {
                paging.Total,
                List = orders,
            }));
        }
示例#2
0
        private void AllocateButton_Click(object sender, EventArgs e)
        {
            if (getSelectedShipmentIds().Count > 0)
            {
                if (AssignUnassignButton.Text == "Assign")
                {
                    ShipmentAllocator shpAllocator = new ShipmentAllocator(podDbConn);
                    shpAllocator.PopulateEmployees();

                    DialogResult shpAllocatorReturn = shpAllocator.ShowDialog();
                    long         employeeId         = shpAllocator.SelectedContact;

                    if (shpAllocatorReturn == DialogResult.OK && (employeeId != 0))
                    {
                        ShipmentManager shpMgr    = new ShipmentManager(_companyCode, _userCode);
                        string          strErrors = "";
                        shpMgr.assignShipments(getSelectedShipmentIds(), employeeId, false, strErrors);
                    }

                    //remove all that were selected
                    removeSelectedShipmentIds();
                }
                else if (AssignUnassignButton.Text == "Un-Assign")
                {
                    ShipmentManager shpMgr = new ShipmentManager(_companyCode, _userCode);
                    shpMgr.unassignShipments(podDbConn, getSelectedShipmentIds());

                    //remove all that were selected
                    removeSelectedShipmentIds();
                }
            }
            return;
        }
示例#3
0
        public async Task <JsonResult> CreatedRecord([NamedModelBinder(typeof(CommaSeparatedModelBinder), "orderIds")] string[] orderIds)
        {
            var manager = new ShipmentManager(User);

            foreach (var id in orderIds)
            {
                var shipmentOrder = await manager.GetShipmentOrderAsync(id);

                if (shipmentOrder.AuditStatus == ShipmentOrderAduitStatus.Pass)
                {
                    return(Json(false, $"{id}出货单已经通过审核,不能再次审核"));
                }

                shipmentOrder.AuditStatus = ShipmentOrderAduitStatus.Pass;
                shipmentOrder.AuditorName = User.Name;
                shipmentOrder.AuditDate   = DateTime.Now;
                var result = await manager.AuditShipmentOrder(shipmentOrder);

                if (result.Succeeded)
                {
                    var orderInfoId = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id);
                    await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipment, orderInfoId);
                }
            }
            return(Json(true));
        }
示例#4
0
        public async Task <JsonResult> CancelAudit(string id)
        {
            var manager       = new ShipmentManager(User);
            var shipmentOrder = await manager.GetShipmentOrderAsync(id);

            if (shipmentOrder == null)
            {
                return(Json(false, "出货单不存在"));
            }

            if (shipmentOrder.AuditStatus != ShipmentOrderAduitStatus.Pass)
            {
                return(Json(false, "出货单不是已审核状态"));
            }

            shipmentOrder.AuditStatus = ShipmentOrderAduitStatus.New;
            shipmentOrder.AuditorName = User.Name;
            shipmentOrder.AuditDate   = DateTime.Now;
            var result = await manager.AuditShipmentOrder(shipmentOrder);

            if (result.Succeeded)
            {
                var orderIds = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id);
                await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipmenting, orderIds);
                await new OrderOperationLogManager(User).AddLogAsync(OrderStatus.Shipmenting, orderIds);

                await new ReconciliationManager(User).DeleteReconciliationAsync(shipmentOrder.Id);
            }
            return(Json(result));
        }
        public async Task <FileStreamResult> OrderSetStoneStatisticsExport(SetStoneReportQuery reportQuery)
        {
            var manager = new ShipmentManager(User);
            var orderSetStoneStatistics = await manager.GetOrderSetStoneStatisticsAsync(reportQuery);

            var titles = new string[] { "序号", "配石名称", "重量(ct)", "数量", "副石额" };
            var result = Dickson.Web.Helper.ExcelHelp.Export(titles, "配石报表", ws =>
            {
                var row   = 2;
                int index = 1;
                foreach (var orderSetStoneStatistic in orderSetStoneStatistics)
                {
                    ws.Cells[row, 1].Value = index;
                    ws.Cells[row, 2].Value = orderSetStoneStatistic.SetStoneName;
                    ws.Cells[row, 3].Value = orderSetStoneStatistic.Weight;
                    ws.Cells[row, 4].Value = orderSetStoneStatistic.Number;
                    ws.Cells[row, 5].Value = orderSetStoneStatistic.SetStoneAmount;
                    row++;
                    index++;
                }
                ;
            });

            return(result);
        }
        private async Task <InvokedResult> UpdateShipmentOrderTotalAmount(string shipmentOrderId, double difference)
        {
            var manager = new ShipmentManager(User);
            var result  = await manager.UpdateTotalAmountAsync(shipmentOrderId, difference);

            return(result);
        }
示例#7
0
        public async Task <JsonResult> Create(ShipmentOrderViewModel shipmentOrderViewModel)
        {
            var shipmentOrder = new ShipmentOrder();

            shipmentOrder = Mapper.Map <ShipmentOrderViewModel, ShipmentOrder>(shipmentOrderViewModel);

            var usermanager = new UserManager();
            var customer    = usermanager.FindByIdByCache(shipmentOrder.CustomerId);

            shipmentOrder.CustomerName = customer.Name;

            var serialNumberManager = new SerialNumberManager(User);

            shipmentOrder.Id = SaleManagentConstants.Misc.ShipmentOrderPrefix + await serialNumberManager.NextSNAsync(SaleManagentConstants.SerialNames.ShipmentOrder);

            shipmentOrder.CompanyId = User.CompanyId;
            shipmentOrder.ShipmentOrderInfos.Each(r => r.ShipmentOrderId = shipmentOrder.Id);
            var shipmentManager = new ShipmentManager(User);
            var result          = await shipmentManager.CreateAsync(shipmentOrder);

            if (result.Succeeded)
            {
                var orderIds = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id);
                await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipmenting, orderIds);
                await new OrderOperationLogManager(User).AddLogAsync(OrderStatus.Shipmenting, orderIds);
            }
            return(Json(result.Succeeded, "", result.Data));
        }
示例#8
0
 public ActionResult ShipmentList()
 {
     using (ShipmentManager dm = new ShipmentManager())
     {
         var models = dm.GetShipmentList();
         return(View(models));
     }
 }
示例#9
0
 public ActionResult SaveShipment(List <ShipmentModel> shipments)
 {
     using (ShipmentManager dm = new ShipmentManager())
     {
         foreach (var shipment in shipments)
         {
             dm.SaveShipment(shipment);
         }
     }
     return(Json("", JsonRequestBehavior.AllowGet));
 }
示例#10
0
        public async Task <ActionResult> OrderSetStoneStatistics(SetStoneReportQuery reportQuery)
        {
            if (!Request.IsAjaxRequest())
            {
                return(View(reportQuery));
            }

            var manager = new ShipmentManager(User);
            var list    = await manager.GetOrderSetStoneStatisticsAsync(reportQuery);

            return(Json(true, string.Empty, list));
        }
示例#11
0
        public async Task <JsonResult> Edit(ShipmentOrderViewModel shipmentOrderViewModel)
        {
            var shipmentOrder = new ShipmentOrder();

            var shipmentManager = new ShipmentManager(User);

            shipmentOrder = await shipmentManager.GetShipmentOrderAsync(shipmentOrderViewModel.Id);

            shipmentOrder = Mapper.Map <ShipmentOrderViewModel, ShipmentOrder>(shipmentOrderViewModel);
            shipmentOrder.ShipmentOrderInfos.Each(r => r.ShipmentOrderId = shipmentOrder.Id);

            var result = await shipmentManager.UpdateAsync(shipmentOrder);

            return(Json(result.Succeeded, "", result.Data));
        }
示例#12
0
        public async Task <ActionResult> ShipmentOrderDetail(string orderId)
        {
            var manager       = new ShipmentManager(User);
            var shipmentOrder = await manager.GetShipmentOrderByOrderIdAsync(orderId);

            var isWeChat = OwinContext.GetBrowser().IsWeChat;

            if (!isWeChat)
            {
                return(RedirectToAction("Detail", "shipment", new { id = shipmentOrder.Id, Area = "" }));
            }

            var shipmentOrderViewModel = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(shipmentOrder);

            return(View(shipmentOrderViewModel));
        }
示例#13
0
        private async Task <IEnumerable <ShipmentOrderInfoViewModel> > GetShipmentOrderInfoViewModels(ShipmentReportQuery reportQuery)
        {
            var manager = new ShipmentManager(User);

            var stopwatch          = Stopwatch.StartNew();
            var shipmentOrderInfos = await manager.GetShipmentOrderInfosAsync(reportQuery.GetShipmentOrderInfosQueryFilter());

            stopwatch.Stop();
            var shipmentOrderInfoViewModels = shipmentOrderInfos.Select(f =>
            {
                var shipmentOrderInfoViewModel          = Mapper.Map <ShipmentOrderInfo, ShipmentOrderInfoViewModel>(f);
                shipmentOrderInfoViewModel.CustomerName = f.Order.Customer.Name;
                shipmentOrderInfoViewModel.Hhz          = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2);
                shipmentOrderInfoViewModel.IsShipOnTime = f.Order.DeliveryDate.HasValue && f.ShipmentOrder.DeliveryDate < f.Order.DeliveryDate.Value ? "正常" : "逾期";
                shipmentOrderInfoViewModel.DeliveryDate = f.ShipmentOrder.DeliveryDate.ToShortDateString();
                return(shipmentOrderInfoViewModel);
            }).ToList();

            var stopwatch2 = Stopwatch.StartNew();

            if (shipmentOrderInfoViewModels.Any())
            {
                var total = new ShipmentOrderInfoViewModel
                {
                    Number                   = shipmentOrderInfoViewModels.Sum(r => r.Number),
                    GoldWeight               = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldWeight), 2),
                    Hhz                      = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Hhz), 2),
                    GoldAmount               = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldAmount), 2),
                    SideStoneNumber          = shipmentOrderInfoViewModels.Sum(r => r.SideStoneNumber),
                    SideStoneWeight          = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneWeight), 2),
                    TotalSetStoneWorkingCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalSetStoneWorkingCost), 2),
                    SideStoneTotalAmount     = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneTotalAmount), 2),
                    BasicCost                = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.BasicCost), 2),
                    OutputWaxCost            = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OutputWaxCost), 2),
                    RiskFee                  = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.RiskFee), 2),
                    OtherCost                = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OtherCost), 2),
                    TotalAmount              = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalAmount), 2),
                    Weight                   = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Weight), 2),
                    IsShipOnTime             = $"正常{shipmentOrderInfoViewModels.Count(r => r.IsShipOnTime == "正常")},逾期{shipmentOrderInfoViewModels.Count(r => r.IsShipOnTime == "逾期")}",
                };
                shipmentOrderInfoViewModels.Add(total);
            }
            stopwatch2.Stop();
            LoggerHelper.Logger.LogInformation($"获取数据耗时{stopwatch.ElapsedMilliseconds}毫秒,统计数据耗时{stopwatch2.ElapsedMilliseconds}毫秒");
            return(shipmentOrderInfoViewModels);
        }
示例#14
0
        public async Task <ActionResult> Detail(string id)
        {
            var manager       = new ShipmentManager(User);
            var shipmentOrder = await manager.GetShipmentOrderAsync(id);


            var discountRateManager = new DiscountRateManager();
            var discountRate        = await discountRateManager.GetCustomerDiscountRateAsync(shipmentOrder.CustomerId);

            var shipmentOrderViewModel = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(shipmentOrder);

            shipmentOrderViewModel.SideStoneRate   = (double)discountRate.SideStone / 100;
            shipmentOrderViewModel.StoneSetterRate = (double)discountRate.StoneSetter / 100;

            shipmentOrderViewModel.ShipmentOrderInfos.Each(f => f.Hhz = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2));

            shipmentOrderViewModel.TotalArrearage =
                await new ReconciliationManager(User).GetTotalSurplusArrearageAsync(shipmentOrder.CustomerId);
            return(View(shipmentOrderViewModel));
        }
示例#15
0
        public async Task <ActionResult> Edit(string id)
        {
            var manager       = new ShipmentManager(User);
            var shipmentOrder = await manager.GetShipmentOrderAsync(id);

            var shipmentOrderViewModel = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(shipmentOrder);

            var discountRateManager = new DiscountRateManager();
            var discountRate        = await discountRateManager.GetCustomerDiscountRateAsync(shipmentOrder.CustomerId);

            shipmentOrderViewModel.SideStoneRate = (double)discountRate.SideStone / 100;
            shipmentOrderViewModel.ShipmentOrderInfos.Each(f =>
            {
                f.Hhz        = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2);
                f.GoldAmount = f.GoldPrice * f.Hhz;
                f.TotalSetStoneWorkingCost = f.OrderSetStoneInfos.Sum(r => r.SetStoneWorkingCost) * ((double)discountRate.StoneSetter / 100);
                f.SideStoneNumber          = f.OrderSetStoneInfos.Sum(r => r.Number);
                f.SideStoneTotalAmount     = f.OrderSetStoneInfos.Sum(r => r.TotalAmount) * ((double)discountRate.SideStone / 100);
                f.SideStoneWeight          = f.OrderSetStoneInfos.Sum(r => r.Weight);
            }
                                                           );
            return(View("create", shipmentOrderViewModel));
        }
示例#16
0
        private async Task <IEnumerable <ShipmentOrderInfoViewModel> > GetShipmentOrderInfoViewModels(ShipmentReportQuery reportQuery)
        {
            var manager = new ShipmentManager(User);

            var shipmentOrderInfos = await manager.GetShipmentOrderInfosAsync(reportQuery.GetShipmentOrderInfosQueryFilter());

            var shipmentOrderInfoViewModels = shipmentOrderInfos.Select(f =>
            {
                var shipmentOrderInfoViewModel = Mapper.Map <ShipmentOrderInfo, ShipmentOrderInfoViewModel>(f);
                shipmentOrderInfoViewModel.Hhz = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2);
                return(shipmentOrderInfoViewModel);
            }).ToList();

            if (shipmentOrderInfoViewModels.Any())
            {
                var total = new ShipmentOrderInfoViewModel
                {
                    Id                       = "总计",
                    Number                   = shipmentOrderInfoViewModels.Sum(r => r.Number),
                    GoldWeight               = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldWeight), 2),
                    Hhz                      = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Hhz), 2),
                    GoldAmount               = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldAmount), 2),
                    SideStoneNumber          = shipmentOrderInfoViewModels.Sum(r => r.SideStoneNumber),
                    SideStoneWeight          = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneWeight), 2),
                    TotalSetStoneWorkingCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalSetStoneWorkingCost), 2),
                    SideStoneTotalAmount     = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneTotalAmount), 2),
                    BasicCost                = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.BasicCost), 2),
                    OutputWaxCost            = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OutputWaxCost), 2),
                    RiskFee                  = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.RiskFee), 2),
                    OtherCost                = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OtherCost), 2),
                    TotalAmount              = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalAmount), 2),
                    Weight                   = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Weight), 2),
                };
                shipmentOrderInfoViewModels.Add(total);
            }
            return(shipmentOrderInfoViewModels);
        }
示例#17
0
        public async Task <JsonResult> Audit(string id)
        {
            var manager       = new ShipmentManager(User);
            var shipmentOrder = await manager.GetShipmentOrderAsync(id);

            if (shipmentOrder.AuditStatus == ShipmentOrderAduitStatus.Pass)
            {
                return(Json(false, "出货单已经通过审核,不能再次审核"));
            }

            shipmentOrder.AuditStatus = ShipmentOrderAduitStatus.Pass;
            shipmentOrder.AuditorName = User.Name;
            shipmentOrder.AuditDate   = DateTime.Now;
            var result = await manager.AuditShipmentOrder(shipmentOrder);

            if (result.Succeeded)
            {
                var orderIds = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id);
                await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipment, orderIds);
                await new OrderOperationLogManager(User).AddLogAsync(OrderStatus.Shipment, orderIds);
                var reconciliation = new Reconciliation
                {
                    Amount       = shipmentOrder.TotalAmount,
                    CompanyId    = User.CompanyId,
                    Created      = DateTime.Now,
                    CreatorId    = User.Id,
                    CustomerId   = shipmentOrder.CustomerId,
                    CustomerName = shipmentOrder.CustomerName,
                    Type         = ReconciliationType.Arrearage,
                    Remark       = $"{id}出货"
                };
                await new ReconciliationManager(User).CreateAsync(reconciliation);
                await SendShipmentOrderMsg(shipmentOrder);
            }
            return(Json(result));
        }
示例#18
0
 // POST: api/Shipments
 public Shipment Post([FromBody] Shipment newShipment)
 {
     return(ShipmentManager.NewShipment(newShipment));
 }
示例#19
0
 private void SendButton_Click(object sender, System.EventArgs e)
 {
     PODManager.ShipmentManager shpMgr = new ShipmentManager(_companyCode, _userCode);
     //bool bRetVal = shpMgr.sendShipmentAssignments(podDbConn);
     bool bRetVal = shpMgr.sendShipmentAssignments();
 }
示例#20
0
        private void PopulateShipmentGrid(ShipmentManager.ASSIGNMENT_STATUS shipmentAsignmentStatus)
        {
            try
            {
                podDbConn.Open();
                PODManager.ShipmentManager shpMgr = new ShipmentManager(_companyCode, _userCode);
                shpMgr.DBConnection = podDbConn;

                Dictionary <long, Shipment> shpments = new Dictionary <long, Shipment>();

                shpments = shpMgr.getShipmentsByStatus(shipmentAsignmentStatus);
                if (shpments.Count > 0)
                {
                    System.Console.WriteLine("shipment from DB by status = " + shpments[21].toXML(true).InnerXml);
                }

                Shipment shp21 = shpMgr.getShipmentByID(21);
                System.Console.WriteLine("shipment from DB by ID = " + shp21.toXML(true).InnerXml);


                Dictionary <long, Shipment> shpments2 = shpMgr.getShipmentsByStatusTest();
                System.Console.WriteLine("Test shipment = " + shpments2[1001].toXML(true).InnerXml);

                Dictionary <long, Contact> employees = shpMgr.getEmployeesForAssignment();

                if (employees.Count > 0)
                {
                    System.Console.WriteLine("Employee from DB, Full Name = " + employees[82].FullName
                                             + ", Phone Number = " + employees[82].PhoneNumber);
                }

                if (podDbConn.State == ConnectionState.Open)
                {
                    podDbConn.Close();
                }


                // Test Assignments
                List <ShipmentVersion> shipmentVersions = new List <ShipmentVersion>(5);
                ShipmentVersion        shpVrsn1         = new ShipmentVersion(5, 21);
                ShipmentVersion        shpVrsn2         = new ShipmentVersion(6, 23);
                ShipmentVersion        shpVrsn3         = new ShipmentVersion(7, 24);

                shipmentVersions.Add(shpVrsn1);
                shipmentVersions.Add(shpVrsn2);
                shipmentVersions.Add(shpVrsn3);

                Contact empForAssignment = new Contact(5, 82, Contact.CONTACT_TYPE.EMPLOYEE);

                String strRetErrors         = "";
                bool   bAssignmentSucceeded = shpMgr.assignShipments(shipmentVersions, empForAssignment, false, strRetErrors);


                DataTable  UndeliverredShipmentsTable = new DataTable("UnDeliveredShipments");
                DataColumn colShipmentId           = new DataColumn("Shipment ID", typeof(long));
                DataColumn colShipmentSrc          = new DataColumn("Shipment Source", typeof(String));
                DataColumn colShipmentSrcRef       = new DataColumn("Shipment Ref", typeof(String));
                DataColumn colShipmentIsDeliverred = new DataColumn("Deliver To", typeof(String));


                UndeliverredShipmentsTable.Columns.Add(colShipmentId);
                UndeliverredShipmentsTable.Columns.Add(colShipmentSrc);
                UndeliverredShipmentsTable.Columns.Add(colShipmentSrcRef);
                UndeliverredShipmentsTable.Columns.Add(colShipmentIsDeliverred);

                if (shipmentAsignmentStatus == ShipmentManager.ASSIGNMENT_STATUS.ASSIGNED)
                {
                    DataColumn colShipmentAllocatedTo = new DataColumn("Allocated To", typeof(String));
                    UndeliverredShipmentsTable.Columns.Add(colShipmentAllocatedTo);
                }

                Dictionary <long, Shipment> .Enumerator shipEnum = shpments.GetEnumerator();
                while (shipEnum.MoveNext())
                {
                    PODBusinessObjects.Shipment currShipment = shipEnum.Current.Value;
                    DataRow currRow = UndeliverredShipmentsTable.NewRow();
                    currRow[0] = currShipment.ShipmentId;
                    currRow[1] = currShipment.ShipmentSrc;
                    currRow[2] = currShipment.ShipmentRef;
                    currRow[3] = currShipment.DeliverToAddress;
                    if (shipmentAsignmentStatus == ShipmentManager.ASSIGNMENT_STATUS.ASSIGNED)
                    {
                        currRow[4] = currShipment.getAssignedTo();
                    }

                    UndeliverredShipmentsTable.Rows.Add(currRow);
                }

                ShipmentDataGridView.DataSource = UndeliverredShipmentsTable;
            }
            catch (SqlException sqlExp)
            {
                System.Console.WriteLine("Exception : " + sqlExp.ToString());
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("Exception : " + ex.ToString());
            }

            finally
            {
                podDbConn.Close();
            }
        }