/// <summary> /// This generates picklist for everything in the receivepallet entry. /// </summary> /// <param name="receiveDoc"></param> /// <param name="receivePallet"></param> /// <param name="order"></param> /// <param name="picklist"></param> /// <returns></returns> public PickListDetail CreatePicklistDetailWithOrder(ReceiveDoc receiveDoc, ReceivePallet receivePallet, Order order, PickList picklist) { double? cost = null; decimal pack = receivePallet.Balance / receiveDoc.QtyPerPack; OrderService orderService = new OrderService(); orderService.CreateOrderDetail(receiveDoc, order, pack); if (!receiveDoc.IsColumnNull("Cost")) { cost = receiveDoc.Cost; } PickListDetail pickListDetail = PickListDetail.GeneratePickListDetail(pack, cost, receiveDoc.ID, receiveDoc.ManufacturerId, receivePallet.ID, receiveDoc.QtyPerPack, receiveDoc.StoreID, receiveDoc.UnitID, receiveDoc.ItemID, picklist.ID, receivePallet.PalletID, receiveDoc.ExpDate.ToString(), receiveDoc.BatchNo); ReceivePallet.ReserveQty(pack, receivePallet.ID); return(pickListDetail); }
private int SaveOrder() { int warehouseID; var order = GenerateOrder(); PickList pickList = PickList.GeneratePickList(order.ID); int picklistId = pickList.ID; if (TransferTypeID != Transfer.Constants.HUB_TO_HUB) { warehouseID = GenerateTransfer(order.ID); } // Log this.LogActivity("Transfer", order.ID); int LineNo = 0; // This is a kind of initializing the data table. DataView dv = orderGrid.DataSource as DataView; foreach (DataRowView r in dv) { if (r["ApprovedPacks"] != null && r["ApprovedPacks"] != DBNull.Value && r["ApprovedPacks"].ToString() != "") { if (Convert.ToDecimal(r["ApprovedPacks"]) != 0) { LineNo = LineNo + 1; int itemId = Convert.ToInt32(r["ItemID"]); int unitId = Convert.ToInt32(r["UnitID"]); decimal pack = Convert.ToDecimal(r["ApprovedPacks"]); int qtyPerPack = Convert.ToInt32(r["QtyPerPack"]); int activityId = Convert.ToInt32(lkFromActivity.EditValue); int manufacturerId = Convert.ToInt32(Convert.ToInt32(r["ManufacturerID"])); int receivePalletId = Convert.ToInt32(r["ReceivingLocationID"]); int palletLocationId = Convert.ToInt32(r["LocationID"]); double? unitPrice; string batchNumber = r["BatchNo"].ToString(); string expireDate = ""; int receiveDocId = Convert.ToInt32(r["ReceiveDocID"]); if ((r["UnitPrice"] != DBNull.Value)) { unitPrice = Convert.ToDouble(r["UnitPrice"]); } else { unitPrice = null; } if (r["ExpDate"] != DBNull.Value) { expireDate = r["ExpDate"].ToString(); } OrderDetail ord = OrderDetail.GenerateOrderDetail(unitId, activityId, pack, order.ID, qtyPerPack, itemId); PalletLocation palletLocation = new PalletLocation(); palletLocation.LoadByPrimaryKey(palletLocationId); int palletID = palletLocation.PalletID; PickListDetail pkDetail = PickListDetail.GeneratePickListDetail(pack, unitPrice, receiveDocId, manufacturerId, receivePalletId, qtyPerPack, activityId, unitId, itemId, picklistId, palletID, expireDate, batchNumber); ReceivePallet.ReserveQty(pack, receivePalletId); //To Print The Picklist //Then reserve Items Item item = new Item(); item.LoadByPrimaryKey(itemId); DataRow drvpl = dvPickList.NewRow(); drvpl["FullItemName"] = item.FullItemName; drvpl["StockCode"] = item.StockCode; drvpl["BatchNo"] = batchNumber; if (expireDate != "") { drvpl["ExpDate"] = Convert.ToDateTime(expireDate).ToString("MMM/yyyy"); } else { drvpl["ExpDate"] = DBNull.Value; } drvpl["LineNum"] = LineNo + 1; var manufacturer = new Manufacturer(); manufacturer.LoadByPrimaryKey(manufacturerId); drvpl["ManufacturerName"] = manufacturer.Name; drvpl["Pack"] = pack; drvpl["UnitPrice"] = unitPrice; var unit = new ItemUnit(); unit.LoadByPrimaryKey(unitId); drvpl["Unit"] = unit.Text; drvpl["QtyInSKU"] = pack; if (unitPrice != null) { drvpl["CalculatedCost"] = pack * Convert.ToDecimal(unitPrice); } palletLocation.LoadByPrimaryKey(pkDetail.PalletLocationID); drvpl["PalletLocation"] = palletLocation.Label; drvpl["WarehouseName"] = palletLocation.WarehouseName; drvpl["PhysicalStoreName"] = palletLocation.PhysicalStoreName; var activity = new Activity(); activity.LoadByPrimaryKey(pkDetail.StoreID); drvpl["ActivityConcat"] = activity.FullActivityName; drvpl["AccountName"] = activity.AccountName; dvPickList.Rows.Add(drvpl); } } } if (LineNo == 0) { throw new System.ArgumentException("Please review your list,you haven't approved any Quantity"); } string receivingUnit; Transfer transfer = new Transfer(); transfer.LoadByOrderID(order.ID); if (TransferTypeID == Transfer.Constants.ACCOUNT_TO_ACCOUNT) { var fromActivity = new Activity(); fromActivity.LoadByPrimaryKey(transfer.FromStoreID); var toActivity = new Activity(); toActivity.LoadByPrimaryKey(transfer.ToStoreID); receivingUnit = String.Format("Account to Account from {0} to {1}", fromActivity.FullActivityName, toActivity.FullActivityName); } else if (TransferTypeID == Transfer.Constants.STORE_TO_STORE) { var toStore = new PhysicalStore(); toStore.LoadByPrimaryKey(transfer.ToPhysicalStoreID); receivingUnit = string.Format("Store to Store transfer to: {0}", toStore.WarehouseName); } else { receivingUnit = lkForHub.Text; } var plr = HCMIS.Desktop.Reports.WorkflowReportFactory.CreatePicklistReport(order, receivingUnit, dvPickList.DefaultView); plr.PrintDialog(); XtraMessageBox.Show("Picklist Prepared!", "Successful", MessageBoxButtons.OK, MessageBoxIcon.Information); return(order.ID); }