Exemplo n.º 1
0
        public static TS_OR_HEADER ConvertExAliaAddr2Header(ExVAliasAddr addr, string seq, string dueDate, string orderType, string shipCompFlag, string customerPONO, string orderNote, bool isSpecialShip, string appUser, bool IsAltAddr = false)
        {
            TS_OR_HEADER header = new TS_OR_HEADER();

            header.ORDER_REQ_NO     = string.IsNullOrEmpty(seq)?0:decimal.Parse(seq); //sequence
            header.SHIPFROM_SEQ     = IsAltAddr ? 1 : 0;                              // 0 or 1
            header.TO_SYSTEM        = addr.SysID;
            header.ALIAS_NAME       = addr.AliasName;
            header.CUSTOMER_NO      = addr.CustomerNo;
            header.BILL_TO_LOCATION = (decimal)addr.Bill2Location;
            header.SHIP_TO_LOCATION = (decimal)addr.Ship2Location;
            header.DEST_LOCATION    = addr.DestLocation;
            header.DUE_DATE         = DateTime.Parse(dueDate);
            header.ORDER_TYPE       = orderType;
            header.CUSTOMER_PO_NO   = customerPONO;
            header.SPL_IND          = ValueConvert.BoolToNY(isSpecialShip);
            header.SHIPCOMP_FLAG    = shipCompFlag;
            header.ORDER_STATUS     = OrderStatusEnum.S.ToString(); //draft ind
            header.CREATION_DATE    = DateTime.Now;
            header.CREATED_BY       = appUser;                      //appuser get from local arg
            header.RECORD_DATE      = DateTime.Now;
            header.UPDATED_BY       = appUser;
            header.ORDER_NOTES      = orderNote;

            return(header);
        }
Exemplo n.º 2
0
        public ExVAliasAddr GetSpecifyAliasAddrDFLT(string aliasName, string sysID, string cusNo, decimal bill2Location, decimal ship2Location)
        {
            V_ALIAS_ADDR_DFLT addrDFLT = dal.GetSpecifyAliasAddrDFLT(aliasName, sysID, cusNo, (int)bill2Location, (int)ship2Location);
            ClassConvertTable cct      = new ClassConvertTable();
            ExVAliasAddr      ex       = new ExVAliasAddr();

            ClassConvert.ConvertAction(addrDFLT, ex, cct.AliasAddrDFLTConvert);
            return(ex);
        }
Exemplo n.º 3
0
        public ExVAliasAddr GetSpecifyAliasAddrSPL(string aliasName, string sysID, string cusNo, decimal bill2Location, decimal ship2Location, decimal destLocation)
        {
            V_ALIAS_ADDR_SPL  addrSPL = dal.GetSpecifyAliasAddrSPL(aliasName, sysID, cusNo, (int)bill2Location, (long)ship2Location, (long)destLocation);
            ClassConvertTable cct     = new ClassConvertTable();
            ExVAliasAddr      ex      = new ExVAliasAddr();

            ClassConvert.ConvertAction(addrSPL, ex, cct.AliasAddrSPLConvert);
            return(ex);
        }
Exemplo n.º 4
0
        public List <ExVAliasAddr> GetStrictAliasAddrDFLT(string shipName, string addr, string aliasName)
        {
            List <V_ALIAS_ADDR_DFLT> list   = dal.GetStrictAliasAddrDFLT(shipName, addr, aliasName);
            List <ExVAliasAddr>      exList = new List <ExVAliasAddr>();

            ClassConvertTable cct = new ClassConvertTable();

            foreach (var item in list)
            {
                ExVAliasAddr ex = new ExVAliasAddr();
                ClassConvert.ConvertAction(item, ex, cct.AliasAddrDFLTConvert);
                exList.Add(ex);
            }

            return(exList);
        }
Exemplo n.º 5
0
        public List <ExVAliasAddr> GetAliasAddrSPL(string localDestName, string addr, string destName, long?destLocation, string aliasName)
        {
            List <V_ALIAS_ADDR_SPL> list   = dal.GetAliasAddrSPL(localDestName, addr, destName, destLocation, aliasName);
            List <ExVAliasAddr>     exList = new List <ExVAliasAddr>();

            ClassConvertTable cct = new ClassConvertTable();

            foreach (var item in list)
            {
                ExVAliasAddr ex = new ExVAliasAddr();
                ClassConvert.ConvertAction(item, ex, cct.AliasAddrSPLConvert);
                exList.Add(ex);
            }

            return(exList);
        }
Exemplo n.º 6
0
        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));
            }
        }