43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/PLBeet.h"
90 a_field->SetMDates(0, 0, g_date->DayInYear(30, 12));
91 a_field->SetMDates(1, 0, g_date->DayInYear(30, 12));
92 a_field->SetMDates(0, 1, 0);
93 a_field->SetMDates(1, 1, g_date->DayInYear(30, 12));
95 a_field->SetMConstants(0, 1);
105 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
106 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
108 g_msg->Warn(WARN_BUG,
"PLBeet::Do(): ",
"Harvest too late for the next crop to start!!!");
110 g_msg->Warn(
"Next Crop ", (
double)almassnum);
113 for (
int i = 0; i < noDates; i++) {
114 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
115 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
117 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
118 a_field->SetMConstants(i, 0);
119 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
127 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
128 if (g_date->Date() < d1) {
130 printf(
"Poly: %d\n", a_field->GetPoly());
131 g_msg->Warn(WARN_BUG,
"PLBeet::Do(): ",
"Crop start attempt between 1st Jan & 1st July");
133 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
135 g_msg->Warn(
"Next Crop ", (
double)almassnum);
139 if (g_date->Date() > d1) {
141 g_msg->Warn(WARN_BUG,
"PLBeet::Do(): ",
"Crop start attempt after last possible start date");
142 g_msg->Warn(WARN_BUG,
"Previous Crop ",
"");
143 a_field->GetOwner()->GetPreviousCrop(a_field->GetRotIndex());
145 g_msg->Warn(
"Next Crop ", (
double)almassnum);
160 d1 = g_date->OldDays() + g_date->DayInYear(20, 7);
177 if (!a_farm->
FP_PK(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
193 if (a_ev->
m_lock || a_farm->DoIt(25))
195 if (!a_farm->FA_PK(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
210 if (a_ev->
m_lock || a_farm->DoIt(55))
212 if (!a_farm->StubblePlough(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
228 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
235 if (a_ev->
m_lock || a_farm->DoIt(40))
237 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->Date() + 7 - g_date->DayInYear())) {
242 d1 = g_date->Date() + 1;
243 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 9)) {
244 d1 = g_date->OldDays() + g_date->DayInYear(10, 9);
246 if (a_farm->IsStockFarmer())
253 if (!a_farm->StubbleHarrowing(a_field, 0.0, g_date->DayInYear(10, 11) - g_date->DayInYear())) {
257 d1 = g_date->Date() + 1;
258 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 9)) {
259 d1 = g_date->OldDays() + g_date->DayInYear(10, 9);
261 if (a_farm->IsStockFarmer())
272 if (!a_farm->FP_PK(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
282 if ((a_ev->
m_lock || a_farm->DoIt(static_cast<int>((25.0/75.0)*100))) && (
PL_BE_FERTI_S1==
false))
284 if (!a_farm->FA_PK(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
292 if (a_ev->
m_lock || a_farm->DoIt(74))
294 if (!a_farm->FP_Slurry(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
302 if (a_ev->
m_lock || a_farm->DoIt(74))
304 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
313 if (a_ev->
m_lock || a_farm->DoIt(88))
315 if (!a_farm->WinterPlough(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
331 if (a_ev->
m_lock || a_farm->DoIt(67))
333 if (!a_farm->StubbleCultivatorHeavy(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
342 if ((a_ev->
m_lock) || a_farm->DoIt(50))
344 if (!a_farm->SpringHarrow(a_field, 0.0, g_date->DayInYear(31, 3) - g_date->DayInYear())) {
349 d1 = g_date->Date() + 1;
350 if (d1 < g_date->OldDays() + g_date->DayInYear(15, 3)) {
351 d1 = g_date->OldDays() + g_date->DayInYear(15, 3);
353 if (a_farm->IsStockFarmer())
360 if (a_ev->
m_lock || a_farm->DoIt(98))
362 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
371 if (a_ev->
m_lock || a_farm->DoIt(98))
373 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
382 if (a_ev->
m_lock || a_farm->DoIt(25))
384 if (!a_farm->FP_PK(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
393 if (a_ev->
m_lock || a_farm->DoIt(25))
395 if (!a_farm->FA_PK(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
406 if (!a_farm->HeavyCultivatorAggregate(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
411 d1 = g_date->Date() + 1;
412 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 4)) {
413 d1 = g_date->OldDays() + g_date->DayInYear(1, 4);
419 if (a_ev->
m_lock || a_farm->DoIt(90))
421 if (!a_farm->PreseedingCultivator(a_field, 0.0, g_date->DayInYear(19, 4) - g_date->DayInYear())) {
431 if (!a_farm->SpringSow(a_field, 0.0, g_date->DayInYear(20, 4) - g_date->DayInYear())) {
441 if (a_farm->IsStockFarmer())
449 if (!a_farm->PreseedingCultivatorSow(a_field, 0.0, g_date->DayInYear(20, 4) - g_date->DayInYear())) {
459 if (a_farm->IsStockFarmer())
466 if (a_field->GetGreenBiomass() <= 0)
468 if (a_ev->
m_lock || a_farm->DoIt(3))
470 if (!a_farm->SpringHarrow(a_field, 0.0, g_date->DayInYear(25, 4) - g_date->DayInYear())) {
483 if (a_ev->
m_lock || a_farm->DoIt(5))
485 if (a_field->GetGreenBiomass() <= 0) {
490 if (!a_farm->RowCultivation(a_field, 0.0, g_date->DayInYear(5, 5) - g_date->DayInYear())) {
499 if (a_ev->
m_lock || a_farm->DoIt(3))
501 if (a_field->GetGreenBiomass() <= 0) {
506 if (!a_farm->Water(a_field, 0.0, g_date->DayInYear(31, 5) - g_date->DayInYear())) {
512 d1 = g_date->Date() + 7;
513 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 6)) {
514 d1 = g_date->OldDays() + g_date->DayInYear(1, 6);
522 if (!a_farm->Water(a_field, 0.0, g_date->DayInYear(30, 6) - g_date->DayInYear())) {
527 d1 = g_date->Date() + 7;
528 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 7)) {
529 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
534 if (!a_farm->Water(a_field, 0.0, g_date->DayInYear(31, 7) - g_date->DayInYear())) {
543 if (a_field->GetGreenBiomass() <= 0) {
548 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(25, 5) - g_date->DayInYear())) {
552 d1 = g_date->Date() + 1;
553 if (d1 < g_date->OldDays() + g_date->DayInYear(20, 5)) {
554 d1 = g_date->OldDays() + g_date->DayInYear(20, 5);
561 if (a_field->GetGreenBiomass() <= 0) {
566 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(25, 5) - g_date->DayInYear())) {
570 d1 = g_date->Date() + 1;
571 if (d1 < g_date->OldDays() + g_date->DayInYear(20, 5)) {
572 d1 = g_date->OldDays() + g_date->DayInYear(20, 5);
579 if (a_ev->
m_lock || a_farm->DoIt(89))
581 if (!a_farm->FP_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
589 if (a_ev->
m_lock || a_farm->DoIt(89))
591 if (!a_farm->FA_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
601 if (a_field->GetGreenBiomass() <= 0)
603 if (a_ev->
m_lock || a_farm->DoIt(43))
605 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(25, 4) - g_date->DayInYear())) {
618 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(31, 5) - g_date->DayInYear())) {
626 if (a_ev->
m_lock || a_farm->DoIt(93))
628 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
640 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(20, 6) - g_date->DayInYear())) {
650 if (a_ev->
m_lock || a_farm->DoIt(83))
652 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(5, 8) - g_date->DayInYear())) {
660 if (a_ev->
m_lock || a_farm->DoIt(63))
662 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(25, 8) - g_date->DayInYear())) {
677 if (a_ev->
m_lock || a_farm->DoIt(58))
683 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(25, 7) - g_date->DayInYear())) {
698 if (!a_farm->Harvest(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
702 if (a_farm->IsStockFarmer())
710 if (a_ev->
m_lock || a_farm->DoIt(28))
712 if (a_field->GetMConstants(3) == 0) {
713 if (!a_farm->FP_Calcium(a_field, 0.0, -1)) {
714 g_msg->Warn(WARN_BUG,
"PLBeet::Do(): failure in 'FP_Calcium' execution",
"");
719 if (!a_farm->FP_Calcium(a_field, 0.0, a_field->GetMDates(1, 0) - g_date->DayInYear())) {
730 if (a_ev->
m_lock || a_farm->DoIt(28))
732 if (a_field->GetMConstants(3) == 0) {
733 if (!a_farm->FA_Calcium(a_field, 0.0, -1)) {
734 g_msg->Warn(WARN_BUG,
"PLBeet::Do(): failure in 'FA_Calcium' execution",
"");
739 if (!a_farm->FA_Calcium(a_field, 0.0, a_field->GetMDates(1, 0) - g_date->DayInYear())) {
750 g_msg->Warn(WARN_BUG,
"PLBeet::Do(): "
751 "Unknown event type! ",
"");