示例#1
0
        public async Task <IHttpActionResult> PostDataMerchandise(MdMerchandiseVm.Search dataSearch)
        {
            var result = new TransferObj <MdMerchandiseVm.DtoAndPromotion>();
            //Tạm thời khóa mã đơn vị
            var _unitCode       = _serviceUser.GetCurrentUnitCode();
            var _parentUnitCode = _serviceUser.GetParentUnitCode();
            var _codeWareHouse  = _unitCode + "-K2";

            //trường hợp bán mã cân
            if (dataSearch.MaVatTu.Length > 9 && dataSearch.MaVatTu.Substring(0, 2).Equals("20"))
            {
                try
                {
                    var data = ProcedureCollection.GetBalanceCode(new ERPContext(), dataSearch.MaVatTu);
                    if (data != null && data.Count() == 1)
                    {
                        var    items           = data.ToList();
                        string codeMerchandise = items[0].MaVatTu;
                        result.Data = _serviceRetails.GetDataPromotionByMerchandise(items[0]);
                        //check tồn mã hàng này
                        var xntItem = ProcedureCollection.GetCostOfGoodsSoldByMerchandise(_unitCode, _codeWareHouse,
                                                                                          items[0].MaVatTu);
                        if (xntItem != null)
                        {
                            result.Data.TonCuoiKySl = xntItem.ClosingQuantity == 0 ? 0 : xntItem.ClosingQuantity;
                            result.Data.GiaVon      = xntItem.CostOfCapital == 0 ? 0 : xntItem.CostOfCapital;
                            if (result.Data.TonCuoiKySl <= 0)
                            {
                                result.Data.IsBanAm = true;
                            }
                        }
                        //end check tồn
                        result.Status = true;
                    }
                    else
                    {
                        result.Status  = false;
                        result.Message = "Không tìm thấy sản phẩm này trong danh sách hàng hóa ";
                    }
                }
                catch (Exception ex)
                {
                    return(NotFound());
                }
            }
            //trường hợp bán mã hàng
            else
            {
                try
                {
                    var data = ProcedureCollection.GetMerchandiseAndPromotion(new BTS.API.ENTITY.ERPContext(),
                                                                              dataSearch.MaVatTu, _parentUnitCode);
                    if (data != null && data.Count() == 1)
                    {
                        var    items           = data.ToList();
                        string codeMerchandise = items[0].MaVatTu;
                        result.Data = _serviceRetails.GetDataPromotionByMerchandise(items[0]);
                        //check tồn mã hàng này
                        var xntItem = ProcedureCollection.GetCostOfGoodsSoldByMerchandise(_unitCode, _codeWareHouse, items[0].MaVatTu);
                        if (xntItem != null)
                        {
                            result.Data.TonCuoiKySl = xntItem.ClosingQuantity == 0 ? 0 : xntItem.ClosingQuantity;
                            result.Data.GiaVon      = xntItem.CostOfCapital == 0 ? 0 : xntItem.CostOfCapital;
                            if (result.Data.TonCuoiKySl <= 0)
                            {
                                result.Data.IsBanAm = true;
                            }
                        }
                        // end check tồn
                        result.Status = true;
                    }
                    else
                    {
                        result.Status  = false;
                        result.Message = "Không tìm thấy sản phẩm này !";
                    }
                }
                catch (Exception ex)
                {
                    result.Status = false;
                    result.Data   = new MdMerchandiseVm.DtoAndPromotion();
                    return(Ok(result));
                }
            }
            //}
            return(Ok(result));
        }