Пример #1
0
 /**
  * insere atividade no pedido_item
  * @param int $id_atividade
  * @param string $s
  * @param int $id_usuario
  * @param int $id_pedido_item
  */
 public function inserirAtividade($id_atividade = '172', $s, $id_usuario, $id_pedido_item)
 {
     global $controle_id_empresa, $controle_id_usuario;
     $where = '';
     #verifica se a forma de pagamento é deposito e se não é do correio para enviar ao operacional ou ao financeiro
     $this->sql = "SELECT (CASE WHEN(pi.valor_rec = 0) THEN ('0') ELSE ('1') END) as recebido,\n\t\t\t\t\t\t\tp.origem, p.forma_pagamento, \n\t\t\t\t\t\t\tpi.data_prazo, pi.id_pedido, pi.certidao_nome, pi.certidao_devedor, pi.id_servico, p.cpf, p.id_pacote,pi.id_status, \n\t\t\t\t\t\t\tpi.data_atividade, pi.dias, pi.id_usuario_op, pi.encerramento, pi.atendimento, pi.inicio, pi.operacional,\n\t\t\t\t\t\t\tpi.certidao_cidade, pi.certidao_estado, pi.id_empresa_atend\n\t\t\t\t\t\t\tfrom vsites_pedido_item as pi, vsites_pedido as p where pi.id_pedido_item=? and pi.id_pedido=p.id_pedido limit 1";
     $this->values = array($id_pedido_item);
     $res = $this->fetch();
     if ($controle_id_usuario == 1 or $controle_id_usuario == 3720) {
         #print_r($res);
         #echo $id_atividade;
         #exit;
     }
     if (($res[0]->recebido == '0' or $res[0]->recebido == '') and ($id_atividade == '137' or $id_atividade == '198') and $res[0]->origem != 'Correios' and $res[0]->forma_pagamento == 'Depósito') {
         $id_atividade = '153';
     }
     #verifica se vai criar data da agenda
     $data_agenda = date('Y-m-d');
     if (($s->status_dias != '' and $s->status_dias != '0' or $s->status_hora != '') and $id_atividade != "110" && $id_atividade != "217") {
         if ($s->status_dias == '') {
             $s->status_dias = '0';
         }
         $data_agenda = somar_dias_uteis($data_agenda, $s->status_dias);
         $where .= ",data_i='" . $data_agenda . "' ,status_hora='" . $s->status_hora . ":00'";
     } else {
         if ($s->status_dias == '0' and $id_atividade != "110" and $id_atividade != "217") {
             $where .= ",data_i=NOW(), status_hora='" . $s->status_hora . ":00'";
         } else {
             if ($id_atividade != "110" && $id_atividade != "217") {
                 $where .= ",data_i='', status_hora='" . $s->status_hora . ":00'";
             }
         }
     }
     #seleciona o status da nova atividade e verifica se tem que voltar para o status anterior
     $ativ = $this->selecionaPorID($id_atividade);
     if ($ativ->id_status == 99) {
         $this->sql = "SELECT a.id_status from vsites_pedido_status as s, vsites_atividades as a where s.id_pedido_item=? and a.id_atividade=s.id_atividade and a.id_status!='0' and a.id_status!='99' and a.id_status!='15' and a.id_status!='12' and a.id_status!='18' and a.id_status!='17' order by s.id_pedido_status DESC LIMIT 1";
         $this->values = array($id_pedido_item);
         $res_ant = $this->fetch();
         $id_status = $res_ant[0]->id_status;
     } else {
         $id_status = $ativ->id_status;
     }
     #se estiver no pendente precisa somar os dias que ficaram parado
     if (($res[0]->id_status == '12' or $res[0]->id_status == '15') and $res[0]->inicio != '0000-00-00 00:00:00') {
         $dias_add = dias_uteis(invert($res[0]->data_atividade, '/', 'PHP'), date('d/m/Y'));
         $prazo_dias = $res[0]->dias + $dias_add;
         $data_prazo = somar_dias_uteis($res[0]->inicio, $prazo_dias);
         $where .= ", dias='" . $prazo_dias . "', data_prazo='" . $data_prazo . "'";
     }
     #se for liberado para a franquia marca o dia da liberação para franquia
     if ($id_atividade == '205') {
         $where .= ", data_status=NOW()";
     }
     #se for para cadastrado começa a contar o prazo
     if (($id_atividade == '137' or $id_atividade == '198' or $id_atividade == '180') and $res[0]->inicio == '0000-00-00 00:00:00') {
         #verifica CDT
         $pedidoDAO = new PedidoDAO();
         $id_empresa_dir = $pedidoDAO->listaCDT($res[0]->certidao_cidade, $res[0]->certidao_estado, $res[0]->id_pedido, $controle_id_empresa);
         if ($id_empresa_dir != '') {
             $where .= ", id_empresa_dir='" . $id_empresa_dir . "'";
         }
         $where .= ", inicio=NOW()";
         #se for atividade Conferido aguardar 24 horas soma 1 dia no prazo
         if ($id_atividade == '198' and $res[0]->inicio == '0000-00-00 00:00:00') {
             $res[0]->dias++;
             $data_prazo = somar_dias_uteis(date('Y-m-d'), $res[0]->dias);
             $where .= ", dias='" . $res[0]->dias . "', data_prazo='" . $data_prazo . "'";
         } else {
             $data_prazo = somar_dias_uteis(date('Y-m-d'), $res[0]->dias);
             $where .= ", data_prazo='" . $data_prazo . "'";
         }
     }
     #se atividade = conciliação ou cadastrado, inicia o atendimento
     if (($ativ->id_status == '2' or $ativ->id_status == '3' or $id_atividade == '153') and $res[0]->atendimento == '0000-00-00 00:00:00') {
         $where .= ", atendimento=NOW()";
     }
     #verifica se foi concluído operacional
     if ($id_atividade == '203' and ($res[0]->operacional == '0000-00-00' or $res[0]->operacional == '')) {
         $where .= ", operacional=NOW()";
     }
     #verifica se foi concluído
     if ($id_atividade == '119' and ($res[0]->encerramento == '0000-00-00 00:00:00' or $res[0]->encerramento == '')) {
         $where .= ", encerramento=NOW()";
     }
     #verifica se o pedido já foi direcionado caso não tenha sido direciona para o proprio usuário
     if ($id_atividade == '145' and $res[0]->id_usuario_op == '0') {
         $where .= ", id_usuario_op=" . $id_usuario;
     }
     #se o pedido de imóveis e detran estiverem liberados libera para faturamento
     if (($ativ->id_status == '8' or $ativ->id_status == '10') and ($res[0]->id_servico == '170' or $res[0]->id_servico == '11' or $res[0]->id_servico == '16' or $res[0]->id_servico == '64' or $res[0]->id_servico == '169' or $res[0]->id_servico == '156' or $res[0]->id_servico == '117') and $res[0]->id_pacote == '1') {
         if ($res[0]->id_servico == '169' or $res[0]->id_servico == '156' or $res[0]->id_servico == '117') {
             #se o pedido de imóveis e detran estiverem liberados libera para faturamento
             $this->sql = "update vsites_pedido_item as pi set pi.pacote_lib = '1' where pi.id_pedido_item=?";
             $this->values = array($id_pedido_item);
             $this->exec();
         } else {
             //verifica se todos os pedidos foram liberados para faturamento
             $this->sql = "SELECT COUNT(0) as total from vsites_pedido_item as pi, vsites_pedido as p where \n                    pi.id_empresa_atend=? and\n                    pi.id_status!='14' and pi.id_status!='8' and pi.id_status!='10' and \n                    (pi.id_servico='170' or pi.id_servico='11' or pi.id_servico='16' or pi.id_servico='64') and \n                    (pi.certidao_devedor = ? and pi.certidao_devedor <> '' or \n                    pi.certidao_nome = ? and pi.certidao_nome <> '' and pi.certidao_devedor='') and \n                    pi.id_pedido_item!=? and\n                    pi.id_pedido=p.id_pedido and \n                    p.id_pacote='1' and p.cpf=?";
             $this->values = array($res[0]->id_empresa_atend, $res[0]->certidao_devedor, $res[0]->certidao_nome, $id_pedido_item, $res[0]->cpf);
             $num_pacote = $this->fetch();
             if ($num_pacote[0]->total == 0) {
                 //seleciona todos os pedidos que foram liberados para faturamento dentro do pacote
                 $this->sql = "SELECT pi.id_pedido_item, pi.id_pedido, pi.ordem from vsites_pedido_item as pi, vsites_pedido as p where \n                        pi.id_empresa_atend=? and\n                        (pi.id_servico='170' or pi.id_servico='11' or pi.id_servico='16' or pi.id_servico='64') and \n                        pi.id_status!='14' and\n                        (pi.certidao_devedor =? and pi.certidao_devedor <> '' or \n                        pi.certidao_nome = ? and pi.certidao_nome <> '' and pi.certidao_devedor='') and \n                        pi.id_pedido=p.id_pedido and\n                        p.id_pacote='1' and p.cpf=?";
                 $this->values = array($res[0]->id_empresa_atend, $res[0]->certidao_devedor, $res[0]->certidao_nome, $res[0]->cpf);
                 $num_pacote = $this->fetch();
                 foreach ($num_pacote as $l) {
                     $this->sql = "update vsites_pedido_item as pi set pi.pacote_lib = '1' where pi.id_pedido_item=?";
                     $this->values = array($l->id_pedido_item);
                     $this->exec();
                 }
             }
         }
     }
     if (($id_status == '8' or $id_status == '10') and $res[0]->id_pacote == '2') {
         #se o pacote empresarial estao liberados entao libera para faturamento
         $this->sql = "SELECT COUNT(0)as total from vsites_pedido_item as pi where pi.id_pedido=? and pi.id_status!='14' and pi.id_status!='8' and pi.id_status!='10' and pi.id_pedido_item!=?";
         $this->values = array($res[0]->id_pedido, $id_pedido_item);
         $num_pacote = $this->fetch();
         if ($num_pacote[0]->total == 0) {
             $this->sql = "update vsites_pedido_item  set pacote_lib = '1' where id_pedido=? and id_status!='14'";
             $this->values = array($res[0]->id_pedido);
             $this->exec();
         }
     }
     if ($id_atividade != 110 && $id_atividade != 217) {
         #se status = 0 nao muda o status, nem data da atividade
         if ($controle_id_usuario == 1 or $controle_id_usuario == 3720) {
             #print_r($this);
             #echo $id_atividade;
             #exit;
         }
         if ($id_status == '' or $id_status == '0') {
             if ($id_atividade == 212) {
                 $where .= ", atraso=NOW() ";
             }
             $this->sql = "update vsites_pedido_item set id_atividade='" . $id_atividade . "' " . $where . " where id_pedido_item=?";
             $this->values = array($id_pedido_item);
             $this->exec();
         } else {
             if ($id_atividade == 155 and $res[0]->id_status == 6 or $id_atividade != 155) {
                 if ($id_atividade == 115) {
                     $where .= ", des=1 ";
                 }
                 $this->sql = "update vsites_pedido_item set data_atividade=NOW(), id_status=?, id_atividade=?,status_hora=? " . $where . " where id_pedido_item=?";
                 $this->values = array($id_status, $id_atividade, $s->status_hora . ':00', $id_pedido_item);
                 $this->exec();
             }
         }
     }
     $data_i = date('Y-m-d H:i:s');
     $this->fields = array('id_atividade', 'status_obs', 'data_i', 'id_usuario', 'id_pedido_item', 'status_dias', 'status_hora');
     $this->values = array('id_atividade' => $id_atividade, 'status_obs' => $s->status_obs, 'data_i' => $data_i, 'id_usuario' => $id_usuario, 'id_pedido_item' => $id_pedido_item, 'status_dias' => $s->status_dias, 'status_hora' => $s->status_hora);
     $this->insert();
     return 1;
 }
#inicio do ano II
$linha_arq = 'MES';
$linha_pedido_dia2[] = 'OPERAÇÕES POR DIA';
$linha_dias_uteis2[] = 'DIAS ÚTEIS';
$linha_vendas2[] = 'VENDA';
$linha_operacoes2[] = 'OPERAÇÕES DO MÊS';
$pedido_medio2[] = 'TICKET MÉDIO';
while ($cont < 24) {
    $data = gmdate('m/Y', strtotime(date("d/m/Y", strtotime('01/' . $busca_data_i)) . " +" . $cont . " month"));
    $linha_arq .= ";" . $data;
    $pedido_medio = explode(';', $linha_pedido_medio);
    $pedido_dia = explode(';', $linha_pedido_dia);
    $cont2 = $cont - 11;
    $calc_pedidomedio = (double) $pedido_medio[$cont2] + (double) $pedido_medio[$cont2] / 100 * $crescimento;
    $pedido_medio2[] = $calc_pedidomedio;
    $dias = dias_uteis('01/' . $data, '31/' . $data);
    $linha_dias_uteis2[] = $dias;
    $por_dia = $pedido_dia[$cont2] + $pedido_dia[$cont2] / 100 * $crescimento;
    $linha_pedido_dia2[] = $por_dia;
    $linha_operacoes2[] = $dias * $por_dia;
    $linha_vendas2[] = $calc_pedidomedio * $dias * $por_dia;
    $vendas_ano2 = (double) $vendas_ano2 + (double) ($calc_pedidomedio * $dias * $por_dia);
    $ticket_ano2 = (double) $ticket_ano2 + (double) $calc_pedidomedio;
    $operacoes_ano2 = (double) $operacoes_ano2 + (double) ($dias * $por_dia);
    $cont++;
    $linha_arq_mes .= ";" . $cont;
}
$myArr = explode(';', ';');
$excel->writeLine($myArr);
$myArr = explode(';', 'ANO II' . $linha_arq_mes);
$excel->writeLine($myArr);