Esempio n. 1
0
        public void CompareConvertYieldFromBushelToTonsPerAcre()
        {
            //Oats
            var actual   = _agriRepository.ConvertYieldFromBushelToTonsPerAcre(68, 1);
            var expected = _staticExtRepo.ConvertYieldFromBushelToTonsPerAcre(68, 1);

            Assert.IsTrue(actual >= 0);
            Assert.AreEqual(actual, actual);
        }
Esempio n. 2
0
        public IActionResult CropDetails(string fldName, int?id)
        {
            var cvm = new CropDetailsViewModel
            {
                fieldName    = fldName,
                title        = id == null ? "Add" : "Edit",
                btnText      = id == null ? "Calculate" : "Return",
                id           = id,
                stdCrude     = true,
                stdYield     = true,
                nCredit      = "0",
                nCreditLabel = _sd.GetUserPrompt("ncreditlabel")
            };

            if (id != null)
            {
                var cp = _ud.GetFieldCrop(fldName, id.Value);

                cvm.fieldName = fldName;
                cvm.id        = id;
                cvm.reqN      = cp.reqN.ToString("G29");
                cvm.reqP2o5   = cp.reqP2o5.ToString("G29");
                cvm.reqK2o    = cp.reqK2o.ToString("G29");
                cvm.remN      = cp.remN.ToString("G29");
                cvm.remP2o5   = cp.remP2o5.ToString("G29");
                cvm.remK2o    = cp.remK2o.ToString("G29");

                cvm.crude              = cp.crudeProtien.ToString().Replace(".0", "");
                cvm.selCropOption      = cp.cropId;
                cvm.selPrevOption      = cp.prevCropId.ToString();
                cvm.coverCropHarvested = cp.coverCropHarvested;
                cvm.nCredit            = cvm.selPrevOption != "0" ? _sd.GetPrevCropType(Convert.ToInt32(cvm.selPrevOption)).NitrogenCreditImperial.ToString() : "0";
                //E07US18
                cvm.showHarvestUnitsDDL = false;

                if (!cp.yieldHarvestUnit.HasValue)
                {   // retrofit old version of data
                    cp.yieldHarvestUnit    = _sd.GetHarvestYieldDefaultDisplayUnit();
                    cvm.selHarvestUnits    = cp.yieldHarvestUnit.ToString();
                    cp.yieldByHarvestUnit  = cp.yield; // retrofit old version of data
                    cvm.yield              = cp.yield.ToString();
                    cvm.yieldByHarvestUnit = cp.yieldByHarvestUnit.ToString("#.##");
                }
                else
                {
                    cvm.selHarvestUnits    = cp.yieldHarvestUnit.ToString();
                    cvm.yieldByHarvestUnit = cp.yieldByHarvestUnit.ToString("#.##");
                    cvm.yield = cp.yield.ToString("#.##");
                }

                decimal?defaultYield = _calculateCropRequirementRemoval.GetDefaultYieldByCropId(_ud.FarmDetails(), Convert.ToInt16(cvm.selCropOption), cp.yieldHarvestUnit != _sd.GetHarvestYieldDefaultUnit());
                cvm.stdYield = true;
                if (defaultYield.HasValue)
                {   // E07US18
                    if (cvm.yieldByHarvestUnit != defaultYield.Value.ToString("#.##"))
                    {
                        cvm.stdYield = false;
                    }
                }

                if (!string.IsNullOrEmpty(cp.cropOther))
                {
                    cvm.manEntry = true;
                    var yld = _sd.GetYieldById(1);
                    cvm.cropDesc     = cp.cropOther;
                    cvm.yieldUnit    = "(" + yld.YieldDesc + ")";
                    cvm.selTypOption = _settings.OtherCropId;
                }
                else
                {
                    var crop = _sd.GetCrop(Convert.ToInt32(cp.cropId));
                    var yld  = _sd.GetYieldById(crop.YieldCd);
                    cvm.yieldUnit    = "(" + yld.YieldDesc + ")";
                    cvm.selTypOption = crop.CropTypeId.ToString();
                    //E07US18
                    cvm.showHarvestUnitsDDL = _sd.IsCropGrainsAndOilseeds(Convert.ToInt16(crop.CropTypeId));

                    CropType crpTyp = _sd.GetCropType(Convert.ToInt32(cvm.selTypOption));
                    if (crpTyp.ModifyNitrogen)
                    {
                        cvm.modNitrogen = true;

                        // check for standard
                        var yield = cvm.showHarvestUnitsDDL && (cp.yieldHarvestUnit != _sd.GetHarvestYieldDefaultUnit()) ?
                                    _sd.ConvertYieldFromBushelToTonsPerAcre(Convert.ToInt16(cvm.selCropOption), Convert.ToDecimal(cvm.yieldByHarvestUnit)) :
                                    Convert.ToDecimal(cvm.yieldByHarvestUnit);

                        var cropRequirementRemoval = _calculateCropRequirementRemoval
                                                     .GetCropRequirementRemoval(Convert.ToInt16(cvm.selCropOption),
                                                                                yield,
                                                                                string.IsNullOrEmpty(cvm.crude) ? default(decimal?) : Convert.ToDecimal(cvm.crude),
                                                                                cvm.coverCropHarvested,
                                                                                !string.IsNullOrEmpty(cvm.nCredit) ? Convert.ToInt16(cvm.nCredit) : 0,
                                                                                _ud.FarmDetails().FarmRegion.Value,
                                                                                _ud.GetFieldDetails(fldName));

                        cvm.stdNAmt = cropRequirementRemoval.N_Requirement.ToString();

                        cvm.stdN = (cvm.reqN == cropRequirementRemoval.N_Requirement.ToString()) ? true : false;
                    }
                }

                CropDetailsSetup(ref cvm);

                if (!cvm.manEntry)
                {
                    if (cvm.showCrude)
                    {
                        if (cvm.crude.Replace(".0", "") != _calculateCropRequirementRemoval.GetCrudeProtienByCropId(Convert.ToInt16(cvm.selCropOption)).ToString("#.#"))
                        {
                            cvm.stdCrude = false;
                        }
                    }
                }
            }
            else
            {
                CropDetailsReset(ref cvm);

                CropDetailsSetup(ref cvm);
            }

            return(PartialView(cvm));
        }