<?php

namespace App\Console\Commands;

use DB;
use Illuminate\Console\Command;

class CargaObligaciones extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'obligaciones:carga';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle(){
        date_default_timezone_set('America/Mexico_City');
        $fechaactual = date("Y-m-d");
        //$fechaactual =  date("Y-m-d",strtotime($fechaactual."+ 3 month")); 
        $diaActual =  date("j");
        $mesActual = date("n");
        $anioActual = date("Y");    
        //$mesActual = $mesActual + 3;
        $mes = ['nada','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
        $query = 'SELECT * from v_clientes_obligaciones';
        $obligaciones = DB::select($query);
        $obligaciones = $this->object_to_array($obligaciones);
        foreach ($obligaciones as $key => $value) {
            if($value['meses']==1){
                if($mesActual==1){
                    $comentario = $mes[12].' '.($anioActual - 1);
                    $ano = ($anioActual - 1);
                    $per = 12;
                }else{
                    $comentario = $mes[$mesActual-1].' '.$anioActual;
                    $ano = $anioActual;
                    $per = $mesActual - 1;
                }
                
                DB::table('obligaciones_presentadas')->insert([
                    'id_cliente' => $value['id_cliente'],
                    'id_obligacion' => $value['id_obligacion'],
                    'id_periocidad' => $value['id_periocidad'],
                    'anio' => $ano,
                    'periodo' => $per,
                    'fecha_registro' => $fechaactual,
                    'comentarios' => $comentario
                ]);
            }elseif($value['meses']==2){
                if($mesActual==3){  
                    $comentario = $mes[1].' - '.$mes[2].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]); 
                }elseif($mesActual==5){
                    $comentario = $mes[3].' - '.$mes[4].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }elseif($mesActual==7){
                    $comentario = $mes[5].' - '.$mes[7].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }elseif($mesActual==9){
                    $comentario = $mes[7].' - '.$mes[8].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);

                }elseif($mesActual==11){
                    $comentario = $mes[9].' - '.$mes[10].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);

                }elseif($mesActual==1){
                    $comentario = $mes[11].' - '.$mes[12].' '.($anioActual - 1);
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => ($anioActual - 1),
                        'periodo' => 12,
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }else{

                }
            }elseif($value['meses']==3){
                if($mesActual==4){
                    $comentario = $mes[1].' - '.$mes[3].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }elseif($mesActual==7){
                    $comentario = $mes[4].' - '.$mes[6].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }elseif($mesActual==10){
                    $comentario = $mes[7].' - '.$mes[9].' '.$anioActual;
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => $anioActual,
                        'periodo' => ($mesActual - 1),
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }elseif($mesActual==1){
                    $comentario = $mes[10].' - '.$mes[12].' '.($anioActual-1);
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => ($anioActual - 1),
                        'periodo' => 12,
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }
            }elseif($value['meses']==12){
                if($mesActual==3){ 
                    $comentario = 'Anual '.($anioActual-1);
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => ($anioActual - 1),
                        'periodo' => 12,
                        'fecha_registro' => $fechaactual,   
                        'comentarios' => $comentario
                    ]);
                }elseif($mesActual==4){
                    $comentario = 'Anual '.($anioActual-1);
                    DB::table('obligaciones_presentadas')->insert([
                        'id_cliente' => $value['id_cliente'],
                        'id_obligacion' => $value['id_obligacion'],
                        'id_periocidad' => $value['id_periocidad'],
                        'anio' => ($anioActual - 1),
                        'periodo' => 12,
                        'fecha_registro' => $fechaactual,
                        'comentarios' => $comentario
                    ]);
                }
            }
        }


    }
    public function object_to_array($data) {
        if (is_array($data) || is_object($data)) {
            $result = array();
            foreach ($data as $key => $value) {
                $result[$key] = $this->object_to_array($value);
            }
            return $result;
        }
    return $data;
    }
}
