43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/NLPermanentGrassGrazed.h"
75 a_field->SetMDates(0, 0, g_date->DayInYear(10, 10));
76 a_field->SetMDates(1, 0, g_date->DayInYear(30, 10));
78 a_field->SetMConstants(0, 1);
88 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
89 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
91 g_msg->Warn(WARN_BUG,
"NLPermanentGrassGrazed::Do(): ",
"Harvest too late for the next crop to start!!!");
93 g_msg->Warn(
"Next Crop ", (
double)almassnum);
99 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
100 if (g_date->Date() < d1) {
102 printf(
"Poly: %d\n", a_field->GetPoly());
103 g_msg->Warn(WARN_BUG,
"NLPermanentGrassGrazed::Do(): ",
"Crop start attempt between 1st Jan & 1st July");
105 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
107 g_msg->Warn(
"Next Crop ", (
double)almassnum);
112 if (g_date->Date() > d1) {
114 g_msg->Warn(WARN_BUG,
"NLPermanentGrassGrazed::Do(): ",
"Crop start attempt after last possible start date");
116 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
118 g_msg->Warn(
"Next Crop ", (
double)almassnum);
132 d1 = g_date->OldDays() + g_date->DayInYear(1, 3);
133 if (g_date->Date() >= d1) d1 += 365;
146 if (!a_farm->
FP_NPK(a_field, 0.0, g_date->DayInYear(30, 3) - g_date->DayInYear())) {
157 if (a_farm->DoIt_prob(0.90)) {
158 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(30, 3) - g_date->DayInYear())) {
163 if (a_farm->DoIt_prob(0.50)) {
176 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(10, 5) - g_date->DayInYear())) {
181 if (a_farm->IsStockFarmer())
193 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
200 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
207 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
209 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(20, 5) - g_date->DayInYear())) {
217 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
219 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(20, 5) - g_date->DayInYear())) {
234 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(15, 6) - g_date->DayInYear())) {
239 if (a_farm->IsStockFarmer())
248 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
255 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
262 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
264 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(25, 6) - g_date->DayInYear())) {
272 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
274 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(25, 6) - g_date->DayInYear())) {
289 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(25, 7) - g_date->DayInYear())) {
294 if (a_farm->IsStockFarmer())
303 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
310 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
317 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
319 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(5, 8) - g_date->DayInYear())) {
327 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
329 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(5, 8) - g_date->DayInYear())) {
344 if (!a_farm->CutToSilage(a_field, 0.0, g_date->DayInYear(31, 8) - g_date->DayInYear())) {
349 if (a_farm->IsStockFarmer())
358 if (!a_farm->FA_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
365 if (!a_farm->FP_Slurry(a_field, 0.0, (
NL_PGG_CUT_DATE + 4) - g_date->DayInYear())) {
372 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
374 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(10, 9) - g_date->DayInYear())) {
382 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
384 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(10, 9) - g_date->DayInYear())) {
399 if (a_ev->
m_lock || a_farm->DoIt_prob(0.40))
401 if (!a_farm->CutToSilage(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
407 if (a_farm->IsStockFarmer())
416 if (a_field->GetMConstants(0) == 0) {
417 if (!a_farm->FA_NPK(a_field, 0.0, -1)) {
418 g_msg->Warn(WARN_BUG,
"NLPermanentGrassGrazed::Do(): failure in 'NPK application' execution",
"");
423 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
425 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(30, 11) - g_date->DayInYear())) {
434 if (a_field->GetMConstants(0) == 0) {
435 if (!a_farm->FA_NPK(a_field, 0.0, -1)) {
436 g_msg->Warn(WARN_BUG,
"NLPermanentGrassGrazed::Do(): failure in 'NPK application' execution",
"");
441 if (a_ev->
m_lock || a_farm->DoIt_prob(0.90))
443 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(30, 11) - g_date->DayInYear())) {
452 if (!a_farm->CattleOut(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
461 if (!a_farm->CattleIsOut(a_field, 0.0, g_date->DayInYear(31, 8) - g_date->DayInYear(), g_date->DayInYear(31, 8))) {
465 if (a_farm->IsStockFarmer())
472 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(5, 9) - g_date->DayInYear())) {
479 if (!a_farm->FP_Slurry(a_field, 0.0, g_date->DayInYear(5, 9) - g_date->DayInYear())) {
486 if (!a_farm->CutToSilage(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
490 if (a_farm->IsStockFarmer())
497 if (a_ev->
m_lock || a_farm->DoIt_prob(0.40))
505 if (!a_farm->Water(a_field, 0.0, g_date->DayInYear(31, 8) - g_date->DayInYear())) {
515 g_msg->Warn(WARN_BUG,
"NLPermanentGrassGrazed::Do(): "
516 "Unknown event type! ",
"");