public ActionResult BatchCheckOrderLines(OrderLineBatchCheckArg arg) { try { List <OrderLineItem> olList = new List <OrderLineItem>(); OrderLineCheckArg olArg = new OrderLineCheckArg { primarySysID = arg.primarySysID, primaryWareHouse = arg.primaryWareHouse, altSysID = arg.altSysID, altWareHosue = arg.altWareHosue, customerNo = arg.customerNo }; foreach (var item in arg.olItemList) { olArg.olItem = item; CheckOrderLineItemAction(olArg); olList.Add(olArg.olItem); } return(Json(olList)); } catch (Exception ex) { //log Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Content(ex.Message)); } }
public ActionResult CheckOrderLineItem(OrderLineCheckArg olArg) { try { string msg = CheckOrderLineItemAction(olArg); if (string.IsNullOrEmpty(msg)) { return(Json(olArg.olItem)); } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Content(msg)); } } catch (Exception ee) { Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(Content(ee.Message)); } }
public ActionResult InitOrder(decimal orderSeq) { //if (Session[CHubConstValues.SessionUser] == null) // return RedirectToAction("Login", "Account"); using (CHubEntities db = new CHubEntities()) { string appUser = Session[CHubConstValues.SessionUser].ToString(); ExVAliasAddr priAddr = null; ExVAliasAddr AltAddr = null; List <OrderLineItem> olReslut = new List <OrderLineItem>(); bool isSaved = false; bool splInd = true; string poNum = ""; string dueDate = ""; string note = ""; V_ALIAS_ADDR_DFLT_BLL dfltBLL = new V_ALIAS_ADDR_DFLT_BLL(db); V_ALIAS_ADDR_SPL_BLL splBLL = new V_ALIAS_ADDR_SPL_BLL(db); TS_OR_HEADER_BLL hBLL = new TS_OR_HEADER_BLL(db); List <TS_OR_HEADER> hList = hBLL.GetHeadersBySeq(orderSeq); if (hList != null && hList.Count > 0) { isSaved = true; //Get primary addr and Alt addr foreach (var item in hList) { //special ship if (item.SPL_IND == CHubConstValues.IndY) { splInd = true; if (item.SHIPFROM_SEQ == 0) { poNum = item.CUSTOMER_PO_NO; dueDate = item.DUE_DATE.ToString("yyyy-MM-dd"); note = item.ORDER_NOTES; priAddr = splBLL.GetSpecifyAliasAddrSPL(item.ALIAS_NAME, item.TO_SYSTEM, item.CUSTOMER_NO, item.BILL_TO_LOCATION, item.SHIP_TO_LOCATION, item.DEST_LOCATION); } if (item.SHIPFROM_SEQ == 1) { AltAddr = splBLL.GetSpecifyAliasAddrSPL(item.ALIAS_NAME, item.TO_SYSTEM, item.CUSTOMER_NO, item.BILL_TO_LOCATION, item.SHIP_TO_LOCATION, item.DEST_LOCATION); } } else { splInd = false; if (item.SHIPFROM_SEQ == 0) { poNum = item.CUSTOMER_PO_NO; dueDate = item.DUE_DATE.ToString("yyyy-MM-dd"); note = item.ORDER_NOTES; priAddr = dfltBLL.GetSpecifyAliasAddrDFLT(item.ALIAS_NAME, item.TO_SYSTEM, item.CUSTOMER_NO, item.BILL_TO_LOCATION, item.SHIP_TO_LOCATION); } if (item.SHIPFROM_SEQ == 1) { AltAddr = dfltBLL.GetSpecifyAliasAddrDFLT(item.ALIAS_NAME, item.TO_SYSTEM, item.CUSTOMER_NO, item.BILL_TO_LOCATION, item.SHIP_TO_LOCATION); } } } TS_OR_DETAIL_BLL dBLL = new TS_OR_DETAIL_BLL(db); List <TS_OR_DETAIL> dList = dBLL.GetDetailsBySeq(orderSeq); //change detail ot orderLine OrderLineCheckArg arg = new OrderLineCheckArg(); arg.primarySysID = priAddr.SysID; arg.primaryWareHouse = priAddr.WareHouse; arg.customerNo = priAddr.CustomerNo; if (AltAddr != null) { arg.altSysID = AltAddr.SysID; arg.altWareHosue = AltAddr.WareHouse; } foreach (var item in dList) { arg.olItem = new OrderLineItem(); arg.olItem.CustomerPartNo = item.CUSTOMER_PART_NO; arg.olItem.Qty = item.BUY_QTY; arg.olItem.OrderLineNo = item.ORDER_LINE_NO; CheckOrderLineItemAction(arg); olReslut.Add(arg.olItem); } } else { TS_OR_HEADER_STAGE_BLL hsBLL = new TS_OR_HEADER_STAGE_BLL(db); List <TS_OR_HEADER_STAGE> hsList = hsBLL.GetHeaderStageBySeq(orderSeq); if (hsList != null && hsList.Count > 0) { isSaved = false; //Get primary addr and Alt addr stage foreach (var item in hsList) { //special ship if (item.SPL_IND == CHubConstValues.IndY) { splInd = true; if (item.SHIPFROM_SEQ == 0) { poNum = item.CUSTOMER_PO_NO; dueDate = item.DUE_DATE.ToString("yyyy-MM-dd"); note = item.ORDER_NOTES; priAddr = splBLL.GetSpecifyAliasAddrSPL(item.ALIAS_NAME, item.TO_SYSTEM, item.CUSTOMER_NO, item.BILL_TO_LOCATION, item.SHIP_TO_LOCATION, item.DEST_LOCATION); } } else { splInd = false; if (item.SHIPFROM_SEQ == 0) { poNum = item.CUSTOMER_PO_NO; dueDate = item.DUE_DATE.ToString("yyyy-MM-dd"); note = item.ORDER_NOTES; priAddr = dfltBLL.GetSpecifyAliasAddrDFLT(item.ALIAS_NAME, item.TO_SYSTEM, item.CUSTOMER_NO, item.BILL_TO_LOCATION, item.SHIP_TO_LOCATION); } } } TS_OR_DETAIL_STAGE_BLL dsBLL = new TS_OR_DETAIL_STAGE_BLL(db); List <TS_OR_DETAIL_STAGE> dsList = dsBLL.GetDetailsStageByOrderSeq(orderSeq); //change detail ot orderLine OrderLineCheckArg arg = new OrderLineCheckArg(); arg.primarySysID = priAddr.SysID; arg.primaryWareHouse = priAddr.WareHouse; arg.customerNo = priAddr.CustomerNo; arg.altSysID = null; arg.altWareHosue = null; foreach (var item in dsList) { arg.olItem = new OrderLineItem(); arg.olItem.CustomerPartNo = item.CUSTOMER_PART_NO; arg.olItem.Qty = item.BUY_QTY; arg.olItem.OrderLineNo = item.ORDER_LINE_NO; CheckOrderLineItemAction(arg); olReslut.Add(arg.olItem); } } else { this.Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Content("Wrong Order Seq")); } } var obj = new { priAddr = priAddr, altAddr = AltAddr, orderLines = olReslut, isSaved = isSaved, splInd = splInd, poNum = poNum, dueDate = dueDate, note = note }; return(Json(obj)); } }
public string CheckOrderLineItemAction(OrderLineCheckArg olArg) { //reset olArg.olItem.PartNo = string.Empty; olArg.olItem.AltAVLCheckColor = string.Empty; olArg.olItem.PriAVLCheckColor = string.Empty; olArg.olItem.PartNoPlaceHolder = string.Empty; olArg.olItem.PriAVLCheck = null; olArg.olItem.AltAVLCheck = null; olArg.olItem.DescCN = string.Empty; olArg.olItem.Description = string.Empty; olArg.olItem.ItemBackColor = string.Empty; olArg.olItem.WarningMsg = string.Empty; olArg.olItem.WarningColor = string.Empty; olArg.olItem.LastCheckNo = olArg.olItem.CustomerPartNo; olArg.olItem.LastQty = olArg.olItem.Qty; string msg = string.Empty; olArg.olItem.PartNo = GetPartNoFromCustPartNo(olArg.olItem.CustomerPartNo, olArg.customerNo); olArg.olItem.PartNoPlaceHolder = string.Empty; if (string.IsNullOrEmpty(olArg.olItem.PartNo)) { olArg.olItem.PartNoPlaceHolder = "Can't find Part NO"; olArg.olItem.ItemBackColor = CHubConstValues.ErrorColor; return(null); } else { CHubEntities db = new CHubEntities(); G_PART_DESCRIPTION_BLL pDescBLL = new G_PART_DESCRIPTION_BLL(db); //Get description G_PART_DESCRIPTION pDesc = pDescBLL.GetPartDescription(olArg.olItem.PartNo); olArg.olItem.Description = pDesc.DESCRIPTION; olArg.olItem.DescCN = pDesc.DESC_CN; //check inactive status if (pDesc.PART_STATUS == PartStatusEnum.I.ToString()) { olArg.olItem.WarningMsg = string.Format("SSC:{0},", pDesc.CURRENT_SALES_STATUS_CODE); //olArg.olItem.WarningColor = CHubConstValues.WarningColor; } string usingSysID = olArg.primarySysID; //Do AVL check if (olArg.olItem.Qty > 0) { if (string.IsNullOrEmpty(olArg.primarySysID) || string.IsNullOrEmpty(olArg.primaryWareHouse)) { msg = "No Primary SysID and WareHouse information"; } G_NETAVL_BLL netBLL = new G_NETAVL_BLL(db); //Primary AVL check decimal priNet = netBLL.GetSpecifyNETAVL(olArg.primarySysID, olArg.olItem.PartNo, olArg.primaryWareHouse); if (priNet == 0) { olArg.olItem.PriAVLCheckColor = CHubConstValues.NoStockColor; } else if (priNet >= olArg.olItem.Qty) { olArg.olItem.PriAVLCheckColor = CHubConstValues.SatisfyStockColor; } else { olArg.olItem.PriAVLCheckColor = CHubConstValues.PartialStockColor; } olArg.olItem.PriAVLCheck = priNet; //if primary is no enough do Alt AVL check if (priNet < olArg.olItem.Qty) { if (!(string.IsNullOrEmpty(olArg.altSysID) || string.IsNullOrEmpty(olArg.altWareHosue))) { decimal altNet = netBLL.GetSpecifyNETAVL(olArg.altSysID, olArg.olItem.PartNo, olArg.altWareHosue); if (altNet == 0) { olArg.olItem.AltAVLCheckColor = CHubConstValues.NoStockColor; } else if (altNet >= olArg.olItem.Qty) { olArg.olItem.AltAVLCheckColor = CHubConstValues.SatisfyStockColor; usingSysID = olArg.altSysID; } else { olArg.olItem.AltAVLCheckColor = CHubConstValues.PartialStockColor; } olArg.olItem.AltAVLCheck = altNet; } } } //Do G_OESALES_CATALOG_VALIDATION G_OESALES_CATALOG_VALIDATION oeSaleValidation = new G_OESALES_CATALOG_VALIDATION(usingSysID, olArg.olItem.PartNo, olArg.olItem.Qty); olArg.olItem.WarningMsg += oeSaleValidation.ValidationAction(); if (!string.IsNullOrEmpty(olArg.olItem.WarningMsg)) { olArg.olItem.WarningColor = CHubConstValues.WarningColor; } } return(msg); }