SELECT
dl.pv as pv,
dl.op AS op,
d.nome AS dispositivo,
e.nome AS estagio,
MIN(dl.data_leitura) AS min_data_leitura,
MAX(dl.data_leitura) AS max_data_leitura,
sum(IF(dl.tipo_peca <> 'PNR',0,dl.qtd)) AS qtd_pnr,
SUM(IF(dl.tipo_peca = 'PNR', 0, dl.qtd)) AS qtd_perdida_total,
SUM(IF(dl.tipo_peca <> 'PSE', 0, dl.qtd)) AS qtd_pse,
SUM(IF(dl.tipo_peca <> 'PSR', 0, dl.qtd)) AS qtd_psr,
SUM(IF(dl.tipo_peca <> 'PSM', 0, dl.qtd)) AS qtd_psm,
(SELECT
SUM(pv.op_qtd)
FROM
pot_prot_ped_totvs_cliente AS pv
WHERE
pv.op = dl.op) AS qtd_op,
apt.apto_05,
apt.apto_07,
apt.apto_10,
apt.apto_15,
apt.apto_20,
apt.apto_25,
nf.qtd_nf_ofic_saida,
nf.qtd_nf_ofic_entrada,
nf_3.qtd_nf_silk_saida,
nf_3.qtd_nf_silk_entrada,
prot_p.prot_perda_tecido_montada_e_desmontada,
prot_p.prot_perda_costura_desmontada,
prot_p.prot_perda_costura_sem_retorno,
prot_p.prot_perda_costura_montada,
prot_p.prot_perda_boa_montada,
prot_p.prot_perda_estampa_montada,
prot_p.prot_perda_sem_retorno,
prot_p.prot_perda_defeito,
pvst.status_op,
pcp.data_corte_an,
pcp.data_de_envio_oficina_i_av,
pcp.inicio_costura_bd,
pcp.termino_costura_be,
ap_fs.fs_ci,
ap_fs.fs_co,
ap_fs.fs_perda,
apt.dti_apto_05,
apt.dtf_apto_05,
apt.dti_apto_07,
apt.dtf_apto_07,
apt.dti_apto_10,
apt.dtf_apto_10,
apt.dti_apto_20,
apt.dtf_apto_20,
apt.dti_apto_25,
apt.dtf_apto_25,
ap_fs.dti_checking_fs,
ap_fs.dtf_checkout_fs,
dl.dispositivo_id,
nf.dti_nf_ofic_saida,
nf.dtf_nf_ofic_saida,
nf.dti_nf_ofic_entrada,
nf.dtf_nf_ofic_entrada,
nf_3.dti_nf_silk_saida,
nf_3.dtf_nf_silk_saida,
nf_3.dti_nf_silk_entrada,
nf_3.dtf_nf_silk_entrada,
pvst.data_entrega,
pvst.semana_renner,
pvst.op_data_emissao,
pvst.status_pedido,
pvst.id_operacoes,
pvst.cli_nome_tratado,
pcp.oficina_i_as,
pvst.coordenado,
pvst.cod_ref,
pvst.qtd_produzida,
pvst.qtd_faturada,
pvst.cli_pedido,
pvst.prod_descricao,
pvst.status_sku_cli,
pvst.tp_pedido,
pvst.prod_cor,
pvst.tch_sala,
prot_p.prot_perda_tecido_montada_20,
prot_p.prot_perda_costura_desmontada_20,
prot_p.prot_perda_costura_sem_retorno_20,
prot_p.prot_perda_costura_montada_20,
prot_p.prot_perda_boa_montada_20,
prot_p.prot_perda_estampa_montada_20,
prot_p.prot_perda_sem_retorno_20,
prot_p.prot_perda_defeito_20,
apt.ult_oper,
apt.arm_01,
apt.arm_98,
apt.arm_66,
apt.arm_64,
est.saldo_estoque_67_Total,
est.saldo_estoque_01_Total,
est.saldo_estoque_01_Tam_EPP,
est.saldo_estoque_01_Tam_PP,
est.saldo_estoque_01_Tam_P,
est.saldo_estoque_01_Tam_M,
est.saldo_estoque_01_Tam_G,
est.saldo_estoque_01_Tam_GG,
est.saldo_estoque_01_Tam_EG,
est.saldo_estoque_01_Tam_EGG,
est.saldo_estoque_01_Tam_XG,
est.saldo_estoque_01_Tam_XXG,
est.saldo_estoque_01_Tam_GG1,
est.saldo_estoque_01_Tam_GG2,
est.saldo_estoque_01_Tam_GG3,
est.saldo_estoque_01_Tam_GG4,
est.saldo_estoque_01_Tam_G1,
est.saldo_estoque_01_Tam_G2,
est.saldo_estoque_01_Tam_G3,
est.saldo_estoque_01_Tam_G4,
est.saldo_estoque_01_Tam_G5,
saldo_estoque_64_Total,
saldo_estoque_66_Total,
saldo_estoque_98_Total,
dl_conserto.conserto,
pcp.est_pa_w,
pcp.dificuldade_x,
dl.update_date as dl_update_date,
pvst.update_date as pvst_update_date,
max(dl.tipo_apto),
pcp.dt_prev_receb,
MAX(if(dl.modo_trabalho="C",(dl.data_leitura),"")) as conserto_dt_ret,
fat.dt_fat
FROM
pot_dispositivos_leituras AS dl
LEFT JOIN
pot_dispositivos AS d ON dl.dispositivo_id = d.id
LEFT JOIN
pot_estagios AS e ON dl.estagio_id = e.estagio_id
LEFT JOIN
(SELECT
op, max(cod_operacao) as ult_oper,
SUM(IF(cod_operacao = 5, quantidade, 0)) AS apto_05,
SUM(IF(cod_operacao = 7, quantidade, 0)) AS apto_07,
SUM(IF(cod_operacao = 10, quantidade, 0)) AS apto_10,
SUM(IF(cod_operacao = 15, quantidade, 0)) AS apto_15,
SUM(IF(cod_operacao = 20, quantidade, 0)) AS apto_20,
SUM(IF(cod_operacao = 25, quantidade, 0)) AS apto_25,
MIN(IF(cod_operacao = 05, data_apontamento, null)) as dti_apto_05,
MAX(IF(cod_operacao = 05, data_apontamento, null)) as dtf_apto_05,
MIN(IF(cod_operacao = 07, data_apontamento, null)) as dti_apto_07,
MAX(IF(cod_operacao = 07, data_apontamento, null)) as dtf_apto_07,
MIN(IF(cod_operacao = 10, data_apontamento, null)) as dti_apto_10,
MAX(IF(cod_operacao = 10, data_apontamento, null)) as dtf_apto_10,
MIN(IF(cod_operacao = 20, data_apontamento, null)) as dti_apto_20,
MAX(IF(cod_operacao = 20, data_apontamento, null)) as dtf_apto_20,
MIN(IF(cod_operacao = 25, data_apontamento, null)) as dti_apto_25,
MAX(IF(cod_operacao = 25, data_apontamento, null)) as dtf_apto_25,
SUM(IF(armazem=98 and cod_operacao = 25, quantidade,0)) as arm_98,
SUM(IF(armazem=01 and cod_operacao = 25, quantidade,0)) as arm_01,
SUM(IF(armazem=64 and cod_operacao = 25, quantidade,0)) as arm_64,
SUM(IF(armazem=66 and cod_operacao = 25, quantidade,0)) as arm_66,
SUM(IF(armazem=01 and cod_operacao = 10, quantidade,0)) as arm_pi_01
FROM
pot_prot_op_operacoes
GROUP BY op) AS apt ON dl.op = apt.op
LEFT JOIN
(SELECT
nf_1.op,
SUM(IF(nf_1.tipo = 'SaÃda', nf_1.qtd_pecas, 0)) AS qtd_nf_ofic_saida,
SUM(IF(nf_1.tipo = 'Entrada', nf_1.qtd_pecas, 0)) AS qtd_nf_ofic_entrada,
forn.tipo_tc_forn,
MIN(IF(nf_1.tipo = 'SaÃda', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dti_nf_ofic_Saida,
MAX(IF(nf_1.tipo = 'SaÃda', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dtf_nf_ofic_Saida,
MIN(IF(nf_1.tipo = 'Entrada', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dti_nf_ofic_Entrada,
MAX(IF(nf_1.tipo = 'Entrada', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dtf_nf_ofic_Entrada
FROM
pot_prot_nf_oficinas AS nf_1
LEFT JOIN pot_flow_fornecedor AS forn ON forn.cnpj = nf_1.cnpj
WHERE
forn.tipo_tc_forn = '1-OFICINA'
AND forn.status_fornecedor != '1 - BLOQUEADO'
GROUP BY NF_1.OP , forn.tipo_tc_forn) AS nf ON dl.op = nf.op
LEFT JOIN
(SELECT
nf_2.op,
SUM(IF(nf_2.tipo = 'SaÃda', nf_2.qtd_pecas, 0)) AS qtd_nf_silk_saida,
SUM(IF(nf_2.tipo = 'Entrada', nf_2.qtd_pecas, 0)) AS qtd_nf_silk_entrada,
forn_1.tipo_tc_forn,
MIN(IF(nf_2.tipo = 'SaÃda', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dti_nf_silk_Saida,
MAX(IF(nf_2.tipo = 'SaÃda', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dtf_nf_silk_Saida,
MIN(IF(nf_2.tipo = 'Entrada', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dti_nf_silk_Entrada,
MAX(IF(nf_2.tipo = 'Entrada', date(concat(left(data_digitacao,4),'-',right(left(data_digitacao,6),2),'-', right(data_digitacao,2))), null)) as dtf_nf_silk_Entrada
FROM
pot_prot_nf_oficinas AS nf_2
LEFT JOIN pot_flow_fornecedor AS forn_1 ON forn_1.cnpj = nf_2.cnpj
WHERE
forn_1.tipo_tc_forn = '4-BENEF SILK'
AND forn_1.status_fornecedor != '1 - BLOQUEADO'
GROUP BY NF_2.OP , forn_1.tipo_tc_forn) AS nf_3 ON dl.op = nf_3.op
LEFT JOIN
(SELECT
op,
SUM(IF(cod_motivo = 'TM' and cod_motivo = 'TD' and cod_operacao = 25, quantidade, 0)) AS prot_perda_tecido_montada_e_Desmontada,
SUM(IF(cod_motivo = 'CD' and cod_operacao = 25, quantidade, 0)) AS prot_perda_costura_desmontada,
SUM(IF(cod_motivo = 'CS' and cod_operacao = 25, quantidade, 0)) AS prot_perda_costura_sem_retorno,
SUM(IF(cod_motivo = 'CM' and cod_operacao = 25, quantidade, 0)) AS prot_perda_costura_montada,
SUM(IF(cod_motivo = 'BM' and cod_operacao = 25, quantidade, 0)) AS prot_perda_boa_montada,
SUM(IF(cod_motivo = 'EM' and cod_operacao = 25, quantidade, 0)) AS prot_perda_estampa_montada,
SUM(IF(cod_motivo = 'SR' and cod_operacao = 25, quantidade, 0)) AS prot_perda_sem_retorno,
SUM(IF(cod_motivo = 'DF' and cod_operacao = 25, quantidade, 0)) AS prot_perda_defeito,
SUM(IF(cod_motivo = 'TM' and cod_operacao = 20, quantidade, 0)) AS prot_perda_tecido_montada_20,
SUM(IF(cod_motivo = 'CD' and cod_operacao = 20, quantidade, 0)) AS prot_perda_costura_desmontada_20,
SUM(IF(cod_motivo = 'CS' and cod_operacao = 20, quantidade, 0)) AS prot_perda_costura_sem_retorno_20,
SUM(IF(cod_motivo = 'CM' and cod_operacao = 20, quantidade, 0)) AS prot_perda_costura_montada_20,
SUM(IF(cod_motivo = 'BM' and cod_operacao = 20, quantidade, 0)) AS prot_perda_boa_montada_20,
SUM(IF(cod_motivo = 'EM' and cod_operacao = 20, quantidade, 0)) AS prot_perda_estampa_montada_20,
SUM(IF(cod_motivo = 'SR' and cod_operacao = 20, quantidade, 0)) AS prot_perda_sem_retorno_20,
SUM(IF(cod_motivo = 'DF' and cod_operacao = 20, quantidade, 0)) AS prot_perda_defeito_20
FROM
pot_prot_op_operacoes_perdas
GROUP BY op) AS prot_p ON dl.op = prot_p.op
LEFT JOIN
(SELECT
p.update_date,
p.pv_numero, p.op, MIN(p.status_op) as status_op,
MIN(p.status_pedido) as status_pedido, p.data_entrega,
p.op_data_emissao, p.id_operacoes, c.semana_renner, p.cli_nome_tratado,
p.coordenado, p.cod_ref, p.cli_pedido,
sum(p.qtd_produzida) as qtd_produzida, sum(p.qtd_faturada) as qtd_faturada,
p.prod_descricao,
count(p.sku_cliente is not null) = count(p.sku_cliente) as status_sku_cli,
p.tp_pedido, p.prod_cor, p.tch_sala, p.data_agendamento, p.status_inspecao, p.hora_agendamento, p.data_agendamento_cliente,
sum(ped_qtd) as ped_qtd
FROM
pot_prot_ped_totvs_cliente as p
LEFT JOIN pot_calendario as c ON p.data_entrega = c.data
GROUP BY p.pv_numero) AS pvst ON dl.pv = pvst.pv_numero
LEFT JOIN
(SELECT e.op,
sum(if(ed.tipo = 'checkin', qtd_pecas, 0)) AS fs_ci,
sum(if(ed.tipo = 'checkout', qtd_pecas, 0)) AS fs_co,
sum(if(ed.tipo = 'perda', qtd_pecas, 0)) AS fs_perda,
MIN(IF(evento = 1, e.create_date, null)) AS dti_checking_fs,
MAX(IF(evento = 2, e.create_date, null)) as dtf_checkout_fs
FROM pot_fs_eventos as e
LEFT JOIN pot_fs_eventos_descricao AS ed
ON e.evento = ed.id
WHERE e.cancelado=0
GROUP BY e.op) AS ap_fs ON dl.op = ap_fs.op
LEFT JOIN
(SELECT
ped_totus_j,
data_corte_an,
data_de_envio_oficina_i_av,
inicio_costura_bd,
termino_costura_be,
(DATE_ADD(DATE_FORMAT(STR_TO_DATE(termino_costura_be, '%d/%m/%Y'),'%Y-%m-%d'),
INTERVAL (IF(DAYOFWEEK(DATE_FORMAT(STR_TO_DATE(termino_costura_be, '%d/%m/%Y'),'%Y-%m-%d')) = 5 OR
DAYOFWEEK(DATE_FORMAT(STR_TO_DATE(termino_costura_be, '%d/%m/%Y'),'%Y-%m-%d')) = 6,
4, IF(DAYOFWEEK(DATE_FORMAT(STR_TO_DATE(termino_costura_be, '%d/%m/%Y'),'%Y-%m-%d')) = 7, 3, 2))) DAY)) as dt_prev_receb,
oficina_i_as,
dificuldade_x,
est_pa_w
FROM pot_producao_v_planilhao where ped_cancelado = 0) as pcp ON dl.pv = pcp.ped_totus_j
LEFT JOIN
(SELECT ped_totvs, MAX(data_emissao) as dt_fat FROM pot_prot_nf_faturamento GROUP BY ped_totvs) as fat ON dl.pv = fat.ped_totvs
LEFT JOIN(
Select op,
sum(IF(tipo_peca = 'PNR',qtd,0)) as conserto
from pot_dispositivos_leituras
where dispositivo_id = 1 and cancelado = 0 and modo_trabalho = "C"
group by op) as dl_conserto ON dl.op = dl_conserto.op
Left join
(Select produto_codigo,
Sum(saldo_estoque) as saldo_estoque,
Sum(if(armazem=01,saldo_estoque,0)) as saldo_estoque_01_Total,
Sum(if(armazem=01 and right(produto_codigo,2) = 37,saldo_estoque,0)) as saldo_estoque_01_Tam_EPP,
Sum(if(armazem=01 and right(produto_codigo,2) = 11,saldo_estoque,0)) as saldo_estoque_01_Tam_PP,
Sum(if(armazem=01 and right(produto_codigo,2) = 13,saldo_estoque,0)) as saldo_estoque_01_Tam_P,
Sum(if(armazem=01 and right(produto_codigo,2) = 15,saldo_estoque,0)) as saldo_estoque_01_Tam_M,
Sum(if(armazem=01 and right(produto_codigo,2) = 17,saldo_estoque,0)) as saldo_estoque_01_Tam_G,
Sum(if(armazem=01 and right(produto_codigo,2) = 19,saldo_estoque,0)) as saldo_estoque_01_Tam_GG,
Sum(if(armazem=01 and right(produto_codigo,2) = 21,saldo_estoque,0)) as saldo_estoque_01_Tam_EG,
Sum(if(armazem=01 and right(produto_codigo,2) = 23,saldo_estoque,0)) as saldo_estoque_01_Tam_EGG,
Sum(if(armazem=01 and right(produto_codigo,2) = 25,saldo_estoque,0)) as saldo_estoque_01_Tam_XG,
Sum(if(armazem=01 and right(produto_codigo,2) = 27,saldo_estoque,0)) as saldo_estoque_01_Tam_XXG,
Sum(if(armazem=01 and right(produto_codigo,2) = 29,saldo_estoque,0)) as saldo_estoque_01_Tam_GG1,
Sum(if(armazem=01 and right(produto_codigo,2) = 31,saldo_estoque,0)) as saldo_estoque_01_Tam_GG2,
Sum(if(armazem=01 and right(produto_codigo,2) = 33,saldo_estoque,0)) as saldo_estoque_01_Tam_GG3,
Sum(if(armazem=01 and right(produto_codigo,2) = 35,saldo_estoque,0)) as saldo_estoque_01_Tam_GG4,
Sum(if(armazem=01 and right(produto_codigo,2) = 38,saldo_estoque,0)) as saldo_estoque_01_Tam_G1,
Sum(if(armazem=01 and right(produto_codigo,2) = 39,saldo_estoque,0)) as saldo_estoque_01_Tam_G2,
Sum(if(armazem=01 and right(produto_codigo,2) = 40,saldo_estoque,0)) as saldo_estoque_01_Tam_G3,
Sum(if(armazem=01 and right(produto_codigo,2) = 41,saldo_estoque,0)) as saldo_estoque_01_Tam_G4,
Sum(if(armazem=01 and right(produto_codigo,2) = 42,saldo_estoque,0)) as saldo_estoque_01_Tam_G5,
Sum(if(armazem=64,saldo_estoque,0)) as saldo_estoque_64_Total,
Sum(if(armazem=66,saldo_estoque,0)) as saldo_estoque_66_Total,
Sum(if(armazem=67,saldo_estoque,0)) as saldo_estoque_67_Total,
Sum(if(armazem=98,saldo_estoque,0)) as saldo_estoque_98_Total
FROM pot_prot_estoque
where saldo_estoque != "0.0"
group by left(produto_codigo,13)) as est ON dl.prod_sku = est.produto_codigo
WHERE
dl.cancelado = 0 AND usuario_id != 39 AND dispositivo_id <> 99
AND dl.pv > 0
AND dl.pv IN (SELECT
pv.pv_numero
FROM
pot_prot_ped_totvs_cliente AS pv
WHERE
pv.tp_pedido in ("P","V")
AND status_pedido != "Pedido Cancelado"
AND pv.data_entrega > (SELECT DATE_SUB((select subdate(curdate(), WEEKDAY(curdate()) + 1)), INTERVAL 7 DAY))
)
GROUP BY dl.pv, dl.op, dl.dispositivo_id
ORDER BY pvst.data_entrega ASC, pvst.cli_nome_tratado ASC, pvst.coordenado, pvst.cli_pedido, pvst.cod_ref, pvst.op DESC, pcp.data_corte_an
;