/// <summary>
        /// Refer br10 - srs material management v1.0.1
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public bool CheckTotalQuantity(MaterialPostReceptionInputItem item)
        {
            var reception =
                _unitOfWork.ReceptionRepository.Get(
                    i =>
                    i.F30_PrcOrdNo.Trim().Equals(item.P_O_No.Trim()) &&
                    i.F30_PrtDvrNo.Trim().Equals(item.PartialDelivery.Trim()));

            var total = item.Quantity1 + item.Quantity2 + item.Quantity3 + item.Quantity4 + item.Quantity5 +
                        reception.F30_StoragedAmount;

            if (total > reception.F30_ExpectAmount)
            {
                return(false);
            }
            return(true);
        }
        public ResponseResult SavePostReception(MaterialPostReceptionInputItem model)
        {
            //find tx30 record
            var reception =
                _unitOfWork.ReceptionRepository.Get(
                    r =>
                    r.F30_PrcOrdNo.Trim().Equals(model.P_O_No.Trim()) &&
                    r.F30_PrtDvrNo.Trim().Equals(model.PartialDelivery.Trim()));

            // not found
            if (reception == null)
            {
                return(new ResponseResult(false, Constants.Messages.Material_MSG001));
            }
            // material_code must be same
            //if (reception.F30_MaterialCode.Trim() != model.F33_MaterialCode.Trim())
            //    return new ResponseResult(false, Constants.Messages.Material_MSG001);

            //update tx30
            var amount = model.Quantity1 + model.Quantity2 + model.Quantity3 + model.Quantity4 + model.Quantity5;

            reception.F30_StoragedAmount += amount;
            reception.F30_UpdateDate      = DateTime.Now;
            reception.F30_UpdateCount    += 1;
            _unitOfWork.ReceptionRepository.Update(reception);

            // update tx32
            var materialShelf = _unitOfWork.MaterialShelfRepository.Get(
                m => m.F32_PalletNo.Trim().Equals(model.F33_PalletNo.Trim()) && (m.F32_PrcOrdNo.Trim() == null));

            if (materialShelf != null)
            {
                //Mapper.Map(model, entity);
                materialShelf.F32_PrcOrdNo     = model.P_O_No;
                materialShelf.F32_PrtDvrNo     = model.PartialDelivery;
                materialShelf.F32_UpdateDate   = DateTime.Now;
                materialShelf.F32_UpdateCount += 1;
                _unitOfWork.MaterialShelfRepository.Update(materialShelf);
            }

            //Change database
            _unitOfWork.Commit();
            return(new ResponseResult(true));
        }