43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/PLBeans.h"
85 a_field->SetMDates(0, 0, g_date->DayInYear(30, 9));
86 a_field->SetMDates(1, 0, g_date->DayInYear(30, 9));
87 a_field->SetMDates(0, 1, 0);
88 a_field->SetMDates(1, 1, g_date->DayInYear(5, 10));
92 a_field->SetMConstants(0, 1);
102 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
103 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
105 g_msg->Warn(WARN_BUG,
"PLBeans::Do(): ",
"Harvest too late for the next crop to start!!!");
107 g_msg->Warn(
"Next Crop ", (
double)almassnum);
110 for (
int i = 0; i < noDates; i++) {
111 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
112 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
114 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
115 a_field->SetMConstants(i, 0);
116 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
124 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
125 if (g_date->Date() < d1) {
127 printf(
"Poly: %d\n", a_field->GetPoly());
128 g_msg->Warn(WARN_BUG,
"PLBeans::Do(): ",
"Crop start attempt between 1st Jan & 1st July");
130 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
132 g_msg->Warn(
"Next Crop ", (
double)almassnum);
136 if (g_date->Date() > d1) {
138 g_msg->Warn(WARN_BUG,
"PLBeans::Do(): ",
"Crop start attempt after last possible start date");
139 g_msg->Warn(WARN_BUG,
"Previous Crop ",
"");
140 a_field->GetOwner()->GetPreviousCrop(a_field->GetRotIndex());
142 g_msg->Warn(
"Next Crop ", (
double)almassnum);
157 d1 = g_date->OldDays() + g_date->DayInYear(20, 7);
174 if (!a_farm->
FP_Slurry(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
191 if (a_ev->
m_lock || a_farm->DoIt(40))
193 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
208 if (a_ev->
m_lock || a_farm->DoIt(50))
210 if (!a_farm->StubblePlough(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
226 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
233 if (a_ev->
m_lock || a_farm->DoIt(40))
235 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->Date() + 7 - g_date->DayInYear())) {
240 d1 = g_date->Date() + 1;
241 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 9)) {
242 d1 = g_date->OldDays() + g_date->DayInYear(10, 9);
244 if (a_farm->IsStockFarmer())
251 if (!a_farm->StubbleHarrowing(a_field, 0.0, g_date->DayInYear(10, 11) - g_date->DayInYear())) {
255 d1 = g_date->Date() + 1;
256 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 9)) {
257 d1 = g_date->OldDays() + g_date->DayInYear(10, 9);
259 if (a_farm->IsStockFarmer())
268 if ((a_ev->
m_lock || a_farm->DoIt(static_cast<int>((5.0 / 95.0) * 100))) && (
PL_BNS_FERTI_P1 ==
false))
270 if (!a_farm->FP_Slurry(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
280 if ((a_ev->
m_lock || a_farm->DoIt(static_cast<int>((40.0 / 60.0) * 100))) && (
PL_BNS_FERTI_S1 ==
false))
282 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
290 if (a_ev->
m_lock || a_farm->DoIt(80))
292 if (!a_farm->FP_PK(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
300 if (a_ev->
m_lock || a_farm->DoIt(80))
302 if (!a_farm->FA_PK(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
310 if (!a_farm->WinterPlough(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
317 if (a_ev->
m_lock || a_farm->DoIt(90))
319 if (!a_farm->SpringHarrow(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
324 d1 = g_date->Date() + 1;
325 if (d1 < g_date->OldDays() + g_date->DayInYear(20, 4)) {
326 d1 = g_date->OldDays() + g_date->DayInYear(20, 4);
328 if (a_farm->IsStockFarmer())
335 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 5) - g_date->DayInYear())) {
342 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 5) - g_date->DayInYear())) {
349 if (!a_farm->HeavyCultivatorAggregate(a_field, 0.0, g_date->DayInYear(30, 5) - g_date->DayInYear())) {
356 if (a_ev->
m_lock || a_farm->DoIt(80))
358 if (!a_farm->PreseedingCultivator(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
366 if (!a_farm->SpringSow(a_field, 0.0, g_date->DayInYear(15, 6) - g_date->DayInYear())) {
374 if (a_farm->IsStockFarmer())
382 if (a_ev->
m_lock || a_farm->DoIt(40))
384 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
392 if (a_ev->
m_lock || a_farm->DoIt(40))
394 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
403 if (a_ev->
m_lock || a_farm->DoIt(80))
405 if (!a_farm->FP_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(10, 7) - g_date->DayInYear())) {
413 if (a_ev->
m_lock || a_farm->DoIt(80))
415 if (!a_farm->FA_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(10, 7) - g_date->DayInYear())) {
423 if (a_field->GetGreenBiomass() <= 0)
425 if (a_ev->
m_lock || a_farm->DoIt(50))
427 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->Date() + 5 - g_date->DayInYear())) {
448 if (a_field->GetGreenBiomass() <= 0) {
453 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(30, 6) - g_date->DayInYear())) {
463 if (a_field->GetGreenBiomass() <= 0) {
468 if (!a_farm->RowCultivation(a_field, 0.0, g_date->DayInYear(25, 6) - g_date->DayInYear())) {
477 if (!a_farm->RowCultivation(a_field, 0.0, g_date->DayInYear(15, 7) - g_date->DayInYear())) {
486 if (!a_farm->RowCultivation(a_field, 0.0, g_date->DayInYear(5, 8) - g_date->DayInYear())) {
495 if (a_ev->
m_lock || a_farm->DoIt(80))
497 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(5, 8) - g_date->DayInYear())) {
505 if (a_ev->
m_lock || a_farm->DoIt(40))
507 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(20, 8) - g_date->DayInYear())) {
512 d1 = g_date->Date() + 14;
513 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 8)) {
514 d1 = g_date->OldDays() + g_date->DayInYear(1, 8);
520 if (a_field->GetGreenBiomass() <= 0) {
524 if (a_ev->
m_lock || a_farm->DoIt(50))
530 if (!a_farm->InsecticideTreat(a_field, 0.0, g_date->DayInYear(30, 6) - g_date->DayInYear())) {
545 if (!a_farm->Harvest(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
549 if (a_farm->IsStockFarmer())
556 if (a_ev->
m_lock || a_farm->DoIt(25))
558 if (a_field->GetMConstants(1) == 0) {
559 if (!a_farm->FP_Calcium(a_field, 0.0, -1)) {
560 g_msg->Warn(WARN_BUG,
"PLBeans::Do(): failure in 'FP_Calcium' execution",
"");
565 if (!a_farm->FP_Calcium(a_field, 0.0, a_field->GetMDates(1, 1) - g_date->DayInYear())) {
576 if (a_ev->
m_lock || a_farm->DoIt(25))
578 if (a_field->GetMConstants(1) == 0) {
579 if (!a_farm->FA_Calcium(a_field, 0.0, -1)) {
580 g_msg->Warn(WARN_BUG,
"PLBeans::Do(): failure in 'FA_Calcium' execution",
"");
585 if (!a_farm->FA_Calcium(a_field, 0.0, a_field->GetMDates(1, 1) - g_date->DayInYear())) {
596 g_msg->Warn(WARN_BUG,
"PLBeans::Do(): "
597 "Unknown event type! ",
"");