28 #include "../../Landscape/ls.h"
29 #include "../../Landscape/cropprogs/MaizeSilage.h"
53 m_field->SetMDates(0,0,g_date->DayInYear(1,9));
55 m_field->SetMDates(1,0,g_date->DayInYear(10,9));
56 m_field->SetMDates(0,1,g_date->DayInYear(15,9));
57 m_field->SetMDates(1,1,g_date->DayInYear(30,9));
73 g_msg->Warn( WARN_FILE,
"MaizeSilage::Do(): Harvest too late for the next crop to start!!! The next crop is: ", veg_type);
79 for (
int i=0; i<noDates; i++) {
93 int today=g_date->Date();
95 d1 = g_date->OldDays() + g_date->DayInYear( 1,7 );
99 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): "
100 "Crop start attempt between 1st Jan & 1st July",
"" );
109 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): "
110 "Crop start attempt after last possible start date",
"" );
117 SimpleEvent( g_date->OldDays() + g_date->DayInYear(25,4),
127 if ( g_date->Date() > d1 ) {
137 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20, 3 ) + 365,
145 g_date->DayInYear( 30, 11 ) - g_date->DayInYear())) {
154 g_date->DayInYear( 30, 11 ) - g_date->DayInYear())) {
158 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 4 ) + 365,
164 g_date->DayInYear( 25, 4 ) - g_date->DayInYear())) {
169 d1 = g_date->OldDays() + g_date->DayInYear( 1, 4 );
170 if ( g_date->Date()+1 > d1 ) {
171 d1 = g_date->Date()+1;
179 g_date->DayInYear( 30, 4 ) - g_date->DayInYear())) {
188 g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
197 g_date->DayInYear( 10, 5 ) - g_date->DayInYear())) {
202 d1 = g_date->OldDays() + g_date->DayInYear( 25, 4 );
203 if ( g_date->Date() > d1 ) {
212 g_date->DayInYear( 15, 5 ) - g_date->DayInYear())) {
222 g_date->DayInYear( 20, 5 ) - g_date->DayInYear())) {
228 d1 = g_date->OldDays() + g_date->DayInYear( 1, 5 );
236 d1 = g_date->OldDays() + g_date->DayInYear( 2, 5 );
251 Field * pf = dynamic_cast<Field*>(
m_field);
252 pf->Add_missed_herb_app();
253 if(
m_farm->
DoIt(59)) pf->Add_missed_herb_app();
264 d1 = g_date->OldDays() + g_date->DayInYear( 1, 5 );
274 g_date->DayInYear( 25, 5 ) - g_date->DayInYear())) {
279 d1 = g_date->OldDays() + g_date->DayInYear( 1, 5 );
289 g_date->DayInYear( 25, 5 ) - g_date->DayInYear())) {
295 d1 = g_date->OldDays() + g_date->DayInYear( 10, 5 );
303 d1 = g_date->OldDays() + g_date->DayInYear( 21, 5 );
304 if ( g_date->Date() + 1 > d1 ) {
305 d1 = g_date->Date() + 1;
315 g_date->DayInYear( 5, 6 ) - g_date->DayInYear())) {
320 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 7 ),
326 g_date->DayInYear( 20, 6 ) - g_date->DayInYear())) {
330 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 7 ),
337 g_date->DayInYear( 15, 7 ) - g_date->DayInYear())) {
343 d1 = g_date->OldDays() + g_date->DayInYear( 16, 7 );
344 if ( g_date->Date() + 7 > d1 ) {
345 d1 = g_date->Date() + 7;
353 g_date->DayInYear( 30, 7 ) - g_date->DayInYear())) {
359 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 9 ),
364 if (
m_field->GetMConstants(0)==0) {
366 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): failure in 'Harvest' execution",
"" );
377 d1 = g_date->OldDays() +
m_field->GetMDates(0,1);
378 if ( g_date->Date() > d1 ) {
387 if (
m_field->GetMConstants(1)==0) {
389 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): failure in 'StubbleHarrowing' execution",
"" );
400 d1=g_date->DayInYear();
405 g_msg->Warn( WARN_BUG,
"MaizeSilage::Do(): "
406 "Unknown event type! ",
"" );