Changeset 924 for trunk/calendar


Ignore:
Timestamp:
05/27/09 16:23:52 (15 years ago)
Author:
rafaelraymundo
Message:

Ticket #260 - Implementacao de impressao com data inicial e quantidade de dias a partir dessa data

Location:
trunk/calendar
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/calendar/inc/class.bocalendar.inc.php

    r923 r924  
    21692169                                        $eyear = $syear; 
    21702170                                } 
     2171                                //Tratamento do valor final (mes) da pesquisa de eventos feita em $this->so->list_events. 
     2172                                //Se $emonth nao tem valor, recebe o valor de $smonth (que recebe $params['smonth']) e soma 1. 
     2173                                //O valor $params['emonth'] indica o mes final para a pesquisa de eventos, e passou a ser 
     2174                                //informado na a impressao de eventos mensais. Mudancas feitas em class.uicalendar.inc.php,  
     2175                                //function display_month_print(); 
    21712176                                if(!$emonth) 
    21722177                                { 
     
    21902195                                echo '<!-- End   Date : '.sprintf("%04d%02d%02d",$eyear,$emonth,$eday).' -->'."\n"; 
    21912196                        } 
     2197                        //A variavel $month_print recebe o parametro 'saux' com o mes de inicio da pesquisa de eventos por 
     2198                        //$this->so->list_events. O valor do mes final da pesquisa e tratado no codigo acima; 
     2199                        //$month_ini = $params['saux']; 
    21922200 
    21932201                        if($owner_id) 
  • trunk/calendar/inc/class.uicalendar.inc.php

    r923 r924  
    374374                                                </tr> 
    375375                                                <tr> 
    376                                                         <td><right><input class=button type="button" onClick="javascript:this.style.visibility=\'hidden\';window.print();window.close();" value="Imprimir esta p&aacute;gina"></right></td> 
    377                                                 </tr>                                            
     376                                                  <td> 
     377                                                        <div> 
     378                                                                <input class=button type="button" onClick="javascript:this.style.visibility=\'hidden\';window.print();window.close();" value="Imprimir esta p&aacute;gina"> 
     379                                                        </div> 
     380                                                   </td> 
     381                                                 </tr> 
    378382                                        </table></body>'."\n" 
    379383                                        .'</html>'."\n"; 
     
    451455                        } 
    452456 
     457                        if($_POST['year']) {                     
     458         
     459                        } 
     460                         
     461                        $hoje = date('Ymd',$GLOBALS['phpgw']->datetime->gmtnow); 
     462                        $mes_hoje = (int)substr($hoje,4,2); 
     463                        $sday = 1; 
     464                        if($_POST['day']) { 
     465                                $day_ini = (int)$_POST['day']; 
     466                        }  
     467                        elseif($_GET['sday']){ 
     468                                if($_GET['month'] == $mes_hoje) 
     469                                { 
     470                                        $day_ini = $this->bo->day; 
     471                                }  
     472                                 
     473                                else 
     474                                { 
     475                                        $day_ini = (int)$_GET['sday']; 
     476                                } 
     477                        }  
     478                        elseif( ($_POST['dia_ini']) && ($_POST['dia_ini'] == $this->bo->day) ) 
     479                        { 
     480                                $day_ini = (int)substr($hoje,6,2); 
     481                        } 
     482                        else 
     483                        { 
     484                                $day_ini = $this->bo->day; 
     485                        } 
     486                        if($_POST['qtd_dias']) 
     487                        { 
     488                                $num_dias = (int)$_POST['qtd_dias']; 
     489                        }  
     490                        else 
     491                        { 
     492                                $num_dias = 0; 
     493                        } 
     494 
    453495                        if (!$this->bo->printer_friendly) 
    454496                        { 
    455497                                $printer = ''; 
    456                                 $prev_month_link = '<a href="'.$this->page('month','&year='.$prevyear.'&month='.$prev).'">&lt;&lt;</a>'; 
    457                                 $next_month_link = '<a href="'.$this->page('month','&year='.$nextyear.'&month='.$next).'">&gt;&gt;</a>'; 
    458                                 $param = '&year='.$this->bo->year.'&month='.$this->bo->month.'&friendly=1'; 
     498                                $prev_month_link = '<a href="'.$this->page('month','&year='.$prevyear.'&month='.$prev.'&sday='.$sday).'">&lt;&lt;</a>'; 
     499                                $next_month_link = '<a href="'.$this->page('month','&year='.$nextyear.'&month='.$next.'&sday='.$sday).'">&gt;&gt;</a>'; 
     500                                $param = '&year='.$this->bo->year.'&month='.$this->bo->month.'&friendly=1'.'&day_ini='.$day_ini.'&num_dias='.$num_dias; 
     501                                //$param = '&year='.$this->bo->year.'&month='.$this->bo->month.'&friendly=1'; 
    459502                                $print = "<a href='javascript:void(0)' onClick=\"javascript:window.open('".$this->page('month'.$param). 
    460503                                                "','','width=600,height=600,toolbar=no,scrollbars=yes,resizable=no');\" onMouseOver=\"window.status = '". 
     
    26222665                        $p->set_block('footer','footer_row','footer_row'); 
    26232666                        $p->set_block('footer','blank_row','blank_row'); 
     2667                        $p->set_block('footer','num_dias','num_dias'); 
    26242668 
    26252669                        $m = $this->bo->month; 
    26262670                        $y = $this->bo->year; 
    26272671 
     2672                        $hoje = date('Ymd',$GLOBALS['phpgw']->datetime->gmtnow); 
     2673                        $mes_hoje = (int)substr($hoje,4,2); 
     2674                        $mes_footer = (int)substr($_POST['date'],4,2); 
     2675                        if($_GET['sday']) 
     2676                        { 
     2677                                if($_GET['month'] == $mes_hoje) 
     2678                                { 
     2679                                        $day = $this->bo->day; 
     2680                                }  
     2681                                else 
     2682                                { 
     2683                                        $day = $_GET['sday']; 
     2684                                } 
     2685                        } 
     2686                        else 
     2687                        { 
     2688                                $day = $this->bo->day; 
     2689                                $dia_ini = $day; 
     2690                        } 
     2691                        if($mes_footer == $mes_hoje) 
     2692                        { 
     2693                                $dia_ini = (int)substr($hoje,6,2); 
     2694                                $day = $dia_ini; 
     2695                        } 
     2696                        /********************************************************************************************/ 
     2697                        /* Bloco adicionado para receber o dia a partir do qual a versao para impressao sera gerada */ 
     2698                        $str_ini = ''; 
     2699                        for ($i = 1; $i <= ($GLOBALS['phpgw']->datetime->days_in_month($m, $y)); $i++) 
     2700                        { 
     2701                                $str_ini .= '<option value="'.$i.'"'.($i == $day?' selected':'').'>'.$i.'</option>'."\n"; 
     2702                        } 
     2703                        $str_qtd = '<option value="'.''.'"'.($i == $_POST['qtd_dias']?' selected':'').'>'.''.'</option>'."\n"; 
     2704                        for ($i = 1; $i <= 45; $i++) 
     2705                        { 
     2706                                $str_qtd .= '<option value="'.$i.'"'.($i == $_POST['qtd_dias']?' selected':'').'>'.$i.'</option>'."\n"; 
     2707                        } 
     2708                        $display = ''; 
     2709                        $display_view = ''; 
     2710                        if ( ($menuaction == 'calendar.uicalendar.week') || ($menuaction == 'calendar.uicalendar.day') ) 
     2711                        { 
     2712                                $display = 'none'; 
     2713                        } 
     2714                        else if( ($menuaction == 'calendar.uicalendar.view') ) 
     2715                        { 
     2716                                $display = 'none'; 
     2717                                $display_view = 'none'; 
     2718                        } 
     2719                        $var = Array( 
     2720                                'acao'                  => $this->page($method,''), 
     2721                                'formname'              => 'SelectDay', 
     2722                                'formonchange'          => 'document.SelectDay.submit()', 
     2723                                'day_ini_label'         => lang('print starting in'), 
     2724                                'num_dias_label'        => lang('quantity of days'), 
     2725                                'tip'                   => lang('empty prints from the day chosen below to the end of the current month'), 
     2726                                'day_ini_name'          => 'day', 
     2727                                'num_dias_name'         => 'qtd_dias', 
     2728                                'row_ini'               => $str_ini, 
     2729                                'row_qtd'               => $str_qtd, 
     2730                                'display'               => $display, 
     2731                                'display_view'          => $display_view, 
     2732                                'go'                    => lang('Go!') 
     2733                                ); 
     2734                        $this->output_template_array($p,'table_row','num_dias',$var); 
     2735                         
     2736                        /********************************************************************************************/ 
     2737 
    26282738                        $thisdate = date('Ymd',mktime(0,0,0,$m,1,$y)); 
    26292739                        $y--; 
    26302740 
    26312741                        $str = ''; 
    2632                         for ($i = 0; $i < 25; $i++) 
     2742                        for ($i = 0; $i < 20; $i++) 
    26332743                        { 
    26342744                                $m++; 
     
    26502760                                'form_onchange' => 'document.SelectMonth.submit()', 
    26512761                                'row'           => $str, 
     2762                                'dia_ini'       => $dia_ini, 
    26522763                                'go'            => lang('Go!') 
    26532764                        ); 
     
    29953106/*****************************************************************************************/ 
    29963107/*Funcao foi duplicada e alterada para tratar os eventos de agendamento (exibicao do mes) para impressao; 
    2997 utiliza o template event_lik.tpl*/ 
     3108utiliza o template event_link.tpl*/ 
    29983109 
    29993110                function link_to_month_entry($event,$month,$day,$year) 
     
    35163627                { 
    35173628                        $this->weekstarttime = $GLOBALS['phpgw']->datetime->get_weekday_start($year,$month,1); 
    3518  
    3519                 //      $p = CreateObject('phpgwapi.Template',$this->template_dir); 
    35203629                        $p->set_unknowns('remove'); 
    3521                 //      $p->set_file( 
    3522                 //              Array ( 
    3523                 //                      'month_header' => 'month_header_print.tpl' 
    3524                 //              ) 
    3525                 //      ); 
    3526         //              $p->set_block('month_header','monthly_header','monthly_header'); 
    3527         //              $p->set_block('month_header','column_title','column_title'); 
    3528  
    3529 /*                      $var = Array( 
    3530                                 'bgcolor'       => $this->theme['th_bg'], 
    3531                                 'font_color'    => $this->theme['th_text'] 
    3532                         ); 
    3533                         /*if($this->bo->printer_friendly && @$this->bo->prefs['calendar']['print_black_white']) 
    3534                         { 
    3535                                 $var = Array( 
    3536                                         'bgcolor'       => '', 
    3537                                         'font_color'    => '' 
    3538                                 ); 
    3539                         }*/ 
    3540         /*              $p->set_var($var); 
    3541  
    3542                         $p->set_var('col_width','14'); 
    3543                 /*      if($display_name == True) 
    3544                         { 
    3545                                 $p->set_var('col_title',lang('name')); 
    3546                                 $p->parse('column_header','column_title',True); 
    3547                                 $p->set_var('col_width','12'); 
    3548                         } 
    3549 */ 
    3550                         //for($i=0;$i<7;$i++) 
    3551                         //{ 
    3552                         //      $p->set_var('col_title',lang($GLOBALS['phpgw']->datetime->days[$i])); 
    3553                         //      $p->parse('column_header','column_title',True); 
    3554                         //} 
    3555 //                      return $p->fp('out','monthly_header'); 
    35563630                } 
    35573631 
     
    36143688                        $p->set_var('extra',''); 
    36153689                        $p->set_var('col_width','14'); 
    3616                 /*      if($display_name) 
    3617                         { 
    3618                                 $p->set_var('column_data',$GLOBALS['phpgw']->common->grab_owner_name($owner)); 
    3619                                 $p->parse('column_header','month_column',True); 
    3620                                 $p->set_var('col_width','12'); 
    3621                         }*/ 
     3690                         
    36223691                        $today = date('Ymd',$GLOBALS['phpgw']->datetime->users_localtime); 
    36233692                        $daily = $this->set_week_array($startdate - $GLOBALS['phpgw']->datetime->tz_offset,$cellcolor,$weekly); 
     3693 
    36243694                        foreach($daily as $date => $day_params) 
    36253695                        { 
     
    36343704                                if ($weekly || ($date >= $monthstart && $date <= $monthend)) 
    36353705                                { 
    3636                                         //if ($day_params['new_event']) 
    3637                                         //{ 
    3638                                         //      $new_event_link = ' <a href="'.$this->page('add','&date='.$date).'">' 
    3639                                         //              . '<img src="'.$GLOBALS['phpgw']->common->image('calendar','new3').'" width="10" height="10" title="'.lang('New Entry').'" border="0" align="center">' 
    3640                                         //              . '</a>'; 
    3641                                         //      $day_number = '<a href="'.$this->page('day','&date='.$date).'">'.$day.'</a>'; 
    3642                                         //} 
    3643                                         //else 
    3644                                         //{ 
    3645                                                 $new_event_link = ''; 
    3646                                                 $day_num = $day; 
    3647                                                 $dia_semana = $this->month_day_of_week($year,$month,$day_num); 
    3648                                                 $day_number = $dia_semana . ",  " . $day_num; 
    3649                                         //} 
     3706                                        $new_event_link = ''; 
     3707                                        $day_num = $day; 
     3708                                        $dia_semana = $this->month_day_of_week($year,$month,$day_num); 
     3709                                        $id_aux = mktime(0,0,0,$month,$day,$year); 
     3710                                        $month_identifier = substr(lang(strftime("%B",$id_aux)),0,3); 
     3711                                        $day_number = $month_identifier . " - " . $dia_semana . ",  " . $day_num; 
    36503712 
    36513713                                        $var = Array( 
     
    36543716                                                'day_number'    => $day_number 
    36553717                                        ); 
    3656         /*                              if($day_params['week']) 
    3657                                         { 
    3658  
    3659 //NDEE: style! m_w_table in month_day.tpl 
    3660 // week-hilite 
    3661                                                 //$var['new_event_link'] .= '<font size="-2"> &nbsp; '. 
    3662         //                                      $var['new_event_link'] .= ' &nbsp; '. 
    3663         //                                              (!$this->bo->printer_friendly?'<a href="'.$this->page('week','&date='.$date).'"><span id="calendar_weekinfo" class="calendar_weekinfo">' .$day_params['week'].'</span></a>' : '<span id="calendar_weekinfo" class="calendar_weekinfo">'.$day_params['week'].'</span>'); 
    3664                                         } 
    3665         */ 
    3666                          
    36673718 
    36683719                                        $p->set_var($var); 
    3669  
    3670         /*                              if(@$day_params['holidays']) 
    3671                                         { 
    3672                                                 foreach($day_params['holidays'] as $key => $value) 
    3673                                                 { 
    3674                                                         $var = Array( 
    3675                                                                 'day_events' => '<font face="'.$this->theme['font'].'" size="-1">'.$value.'</font>'.$GLOBALS['phpgw']->browser->br 
    3676                                                         ); 
    3677                                                         $this->output_template_array($p,'daily_events','event',$var); 
    3678                                                  
    3679                                         } 
    3680         */ 
    36813720 
    36823721                                        if($day_params['appts']) 
     
    36883727                                                $p->set_var($var); 
    36893728                                                $events = $this->bo->cached_events[$date]; 
    3690                                                 //eventos 
    3691                                                 //print_r($events); 
    36923729                                                foreach($events as $event) 
    36933730                                                { 
     
    37213758                        } 
    37223759 
    3723                         $this->bo->store_to_cache( 
     3760/*                      $this->bo->store_to_cache( 
    37243761                                Array( 
    37253762                                        'syear' => $year, 
     
    37283765                                ) 
    37293766                        ); 
     3767*/ 
     3768                        $day_ini = $_GET['day_ini'];// dia do inicio da impressao; o padrao e o dia atual; 
     3769                        $num_dias = $_GET['num_dias'];// quantidade de dias a partir do dia inicial; 
    37303770 
    37313771                        $monthstart = (int)(date('Ymd',mktime(0,0,0,$month    ,1,$year))); 
    3732                         $monthend   = (int)(date('Ymd',mktime(0,0,0,$month + 1,0,$year))); 
    3733  
    3734                         $start = $GLOBALS['phpgw']->datetime->get_weekday_start($year, $month, 1); 
     3772//                      $monthend   = (int)(date('Ymd',mktime(0,0,0,$month + 1,0,$year))); 
     3773 
     3774                        if($num_dias != 0) 
     3775                        { 
     3776                                //se a qtde de dias for informada, a data final para impressao considera a soma $day_ini+$num_dias; 
     3777                                $monthend   = (int)(date('Ymd',mktime(0,0,0,$month,$day_ini+$num_dias,$year))); 
     3778                        } 
     3779                        else 
     3780                        { 
     3781                                //se a qtde de dias nao for informada, a data final para impressao vai ate o fim do mes corrente; 
     3782                                $monthend   = (int)(date('Ymd',mktime(0,0,0,$month + 1,0,$year))); 
     3783                        } 
     3784                         
     3785                        if($day_ini != 0) 
     3786                        { 
     3787                                //o dia de inicio para impressao passa a ser o informado em $day_ini do mes corrente; 
     3788                                $start = mktime(0,0,0,$month,$day_ini,$year); 
     3789                        } 
     3790                        else 
     3791                        { 
     3792                                //se nao for informado o dia para inicio da impressao, esta comeca no dia 1 do mes corrente; 
     3793                                $start = $GLOBALS['phpgw']->datetime->get_weekday_start($year, $month, 1); 
     3794                        } 
     3795                        //$start = $GLOBALS['phpgw']->datetime->get_weekday_start($year, $month, 15); 
     3796                        $start_d = (int)(date('Ymd',$start));//variavel auxiliar que recebe a data inicial de impressao no formato 'Ymd'; 
     3797                        $saux = (int)(substr($start_d,4,2));//variavel auxiliar que recebe o mes do inicio da impressao; 
     3798                        $eaux = (int)(substr($monthend,4,2)) + 1;//variavel auxiliar que recebe o mes do fim da impressao; 
     3799                        //A funcao store_to_cache devolve todos os eventos existentes de determinado usuario em um periodo de tempo 
     3800                        //especifico. Originalmente, na impressao mensal, esse periodo de tempo era o mes corrente exibido na tela. 
     3801                        //A mudanca consiste no fato de que uma nova variavel ($saux) e enviada com o mes de inicio do periodo 
     3802                        //atraves do indice 'smonth' e uma segunda variavel ($eaux) envia o mes final do periodo de tempo atraves 
     3803                        //do indice 'emonth'. Vide mais comentarios sobre esses valores em class.bocalendar.inc.php,  
     3804                        //function store_to_cache($params); 
     3805                        $this->bo->store_to_cache( 
     3806                        Array( 
     3807                                'syear' => $year,//ano atual 
     3808                                'smonth'=> $saux,//mes inicial 
     3809                                'emonth'=> $eaux,//mes final 
     3810                                'sday'  => 1 
     3811                        )); 
    37353812 
    37363813                        $p = CreateObject('phpgwapi.Template',$this->template_dir); 
  • trunk/calendar/templates/celepar/footer.tpl

    r766 r924  
    1717             {row} 
    1818            </select> 
    19                         <input type="hidden" name="user" value="{user}"> 
    20                         <input type="hidden" name="dia_ini" value="{dia_ini}"> 
     19            <input type="hidden" name="user" value="{user}"> 
     20            <input type="hidden" name="dia_ini" value="{dia_ini}"> 
    2121            <noscript><input type="submit" value="{go}"></noscript> 
    2222           </form> 
     
    3232         </td> 
    3333<!-- END blank_row --> 
     34 
    3435<!-- BEGIN num_dias --> 
    35         <td valign="top" width="30%"> 
    36                 <font size="-1"> 
    37                         <form action="{acao}" method="post" name="{formname}"> 
    38                         <span style="display: {display}" > 
    39                                 <label> 
    40                                         <b>{num_dias_label}:</b> 
    41                                 </label> 
    42                                 <select name="{num_dias_name}" onchange="{formonchange}"/> 
    43                                         {row_qtd} 
    44                                 </select> 
    45                                 <br /> 
    46                                 <span style="font-size: 9px;"> 
    47                                         {tip} 
    48                                 </span> 
    49                                 <br /> 
    50                                 <br /> 
    51                         </span> 
    52                         <span style="display: {display}"> 
    53                                 <b>{day_ini_label}:</b> 
    54                                 <select name="{day_ini_name}" onchange="{formonchange}"> 
    55                                         {row_ini} 
    56                                 </select> 
    57                         </span> 
    58                         <input type="hidden" name="user" value="{user}"> 
    59                                 <noscript><input type="submit" value="{go}"></noscript> 
    60  
    61                         </form></font> 
    62         </td> 
     36<td valign="top" width="30%"> 
     37 <font size="-1"> 
     38    <form action="{acao}" method="post" name="{formname}"> 
     39    <span style="display: {display}" > 
     40  
     41        <label> 
     42                <b>{num_dias_label}:</b> 
     43        </label> 
     44        <select name="{num_dias_name}" onchange="{formonchange}"/> 
     45                {row_qtd} 
     46        </select> 
     47        <br /> 
     48        <span style="font-size: 9px;"> 
     49                {tip} 
     50        </span> 
     51        <br /> <br /> 
     52    </span> 
     53<span style="display: {display}"> 
     54        <b>{day_ini_label}:</b> 
     55        <select name="{day_ini_name}" onchange="{formonchange}"> 
     56        {row_ini} 
     57        </select> 
     58        </span> 
     59<input type="hidden" name="user" value="{user}"> 
     60        <noscript><input type="submit" value="{go}"></noscript> 
     61     </form> 
     62 </font> 
     63</td> 
    6364<!-- END num_dias --> 
Note: See TracChangeset for help on using the changeset viewer.