28 #include "../../Landscape/ls.h"
29 #include "../../Landscape/cropprogs/OCloverGrassSilage1.h"
47 switch ( m_ev->m_todo ) {
53 m_last_date=g_date->DayInYear(30,8);
56 m_field->SetMDates(0,0,g_date->DayInYear(27,7));
58 m_field->SetMDates(1,0,g_date->DayInYear(30,8));
62 if (m_ev->m_startday>g_date->DayInYear(1,7))
64 if (m_field->GetMDates(0,0) >=m_ev->m_startday)
66 g_msg->Warn( WARN_BUG,
"OCloverGrassSilage1::Do(): "
67 "Harvest too late for the next crop to start!!!",
"" );
71 for (
int i=0; i<noDates; i++)
73 if (m_field->GetMDates(0,i)>=m_ev->m_startday)
74 m_field->SetMDates(0,i,m_ev->m_startday-1);
75 if (m_field->GetMDates(1,i)>=m_ev->m_startday)
76 m_field->SetMDates(1,i,m_ev->m_startday-1);
83 int today=g_date->Date();
84 d1 = g_date->OldDays() + m_first_date+365;
88 g_msg->Warn( WARN_BUG,
" OCloverGrassSilage1::Do(): "
89 "Crop start attempt after last possible start date",
"" );
93 d1 = g_date->OldDays()+m_first_date;;
94 if ( ! m_ev->m_first_year ) d1+=365;
95 if ( g_date->Date() > d1 ) {
98 m_field->SetLastSownVeg( m_field->GetVegType() );
107 if ( m_ev->m_lock || m_farm->DoIt( 100 ))
109 if (!m_farm->FA_Slurry( m_field, 0.0,
110 g_date->DayInYear( 30, 4 ) - g_date->DayInYear())) {
117 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25, 5 ),
120 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 6 ),
125 if (!m_farm->CutToSilage( m_field, 0.0,
126 g_date->DayInYear( 15, 6 ) - g_date->DayInYear())) {
132 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25,5 ),
137 if ( m_ev->m_lock || m_farm->DoIt( 30 ))
139 if (!m_farm->Water( m_field, 0.0,
140 g_date->DayInYear( 15, 6 ) - g_date->DayInYear())) {
146 if ( (g_date->DayInYear()+7)<g_date->DayInYear( 25,6 ) )
147 SimpleEvent( g_date->Date() + 7,
150 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25,6 ),
158 if ( m_ev->m_lock || m_farm->DoIt( 67 ))
160 if (!m_farm->Water( m_field, 0.0,
161 g_date->DayInYear( 25, 7 ) - g_date->DayInYear())) {
173 if (!m_farm->FA_Slurry( m_field, 0.0,
185 if (!m_farm->CutToSilage( m_field, 0.0,
186 g_date->DayInYear( 30, 6 ) - g_date->DayInYear())) {
194 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 6 ),
199 if (!m_farm->FA_Slurry( m_field, 0.0,
208 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 6,7 ),
213 if (!m_farm->CutToSilage( m_field, 0.0,
214 g_date->DayInYear( 5,8 ) - g_date->DayInYear()))
221 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 6,7 ),
226 if ( m_ev->m_lock || m_farm->DoIt( 60 ))
228 if (!m_farm->FA_Slurry( m_field, 0.0,
239 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 27,7 ),
244 if ( m_ev->m_lock || m_farm->DoIt( 40 ))
246 if (!m_farm->CutToSilage( m_field, 0.0,
247 m_field->GetMDates(1,0) - g_date->DayInYear()))
258 g_msg->Warn( WARN_BUG,
"OCloverGrassGrazed1::Do(): "
259 "Unknown event type! ",
"" );