<?php 



class DaoProduto extends conexao {

public function Atualizar(produto $produto) {

try {

if ($produto->getPro_cd() != '') {

$sql = " UPDATE produto SET
pro_ds = ?,
pro_und = ?,
pro_grp_ds = ?,
pro_valor = ?,
pro_foto = ?,
pro_cod_barras = ?,
pro_valor_15_99 = ?,
pro_valor_mais_100 = ?,
pro_valor_mais_100_duplex = ?,
pro_valor_1_15 = ?,
pro_ordem_producao = ?,
pro_materia_prima = ?,
pro_valor_tercerizado = ?,
pro_qtd_min_tercerizado = ?,
pro_qtd_tab_ini1 = ?,
pro_qtd_tab_ini2 = ?,
pro_qtd_tab_ini3 = ?,
pro_qtd_tab_fin1 = ?,
pro_qtd_tab_fin2 = ?,
pro_qtd_tab_fin3 = ?,
pro_preco_tab1 = ?,
pro_preco_tab2 = ?,
pro_preco_tab3 = ?,
pro_status = ?,
pro_abate_estoque_duplo = ?,
pro_debitacao_especial = ?
WHERE pro_cd = ? ";

$stmt = self::conectar()->prepare($sql);
$stmt->bindValue(1, $produto->getPro_ds());
$stmt->bindValue(2, $produto->getPro_und());
$stmt->bindValue(3, $produto->getPro_grp_ds());
$stmt->bindValue(4, $produto->getPro_valor());
$stmt->bindValue(5, $produto->getPro_foto());
$stmt->bindValue(6, $produto->getPro_cod_barras());
$stmt->bindValue(7, $produto->getPro_valor_15_99());
$stmt->bindValue(8, $produto->getPro_valor_mais_100());
$stmt->bindValue(9, $produto->getPro_valor_mais_100_duplex());
$stmt->bindValue(10, $produto->getPro_valor_1_15());
$stmt->bindValue(11, $produto->getPro_ordem_producao());
$stmt->bindValue(12, $produto->getPro_materia_prima());
$stmt->bindValue(13, $produto->getPro_valor_tercerizado());
$stmt->bindValue(14, $produto->getPro_qtd_min_tercerizado());
$stmt->bindValue(15, $produto->getPro_qtd_tab_ini1());
$stmt->bindValue(16, $produto->getPro_qtd_tab_ini2());
$stmt->bindValue(17, $produto->getPro_qtd_tab_ini3());
$stmt->bindValue(18, $produto->getPro_qtd_tab_fin1());
$stmt->bindValue(19, $produto->getPro_qtd_tab_fin2());
$stmt->bindValue(20, $produto->getPro_qtd_tab_fin3());
$stmt->bindValue(21, $produto->getPro_preco_tab1());
$stmt->bindValue(22, $produto->getPro_preco_tab2());
$stmt->bindValue(23, $produto->getPro_preco_tab3());
$stmt->bindValue(24, $produto->getPro_status());
$stmt->bindValue(25, $produto->getpro_abate_estoque_duplo());
$stmt->bindValue(26, $produto->getPro_debitacao_especial());
$stmt->bindValue(27, $produto->getPro_cd());


} else {

$sql = " INSERT INTO produto (pro_ds,pro_und,pro_grp_ds,pro_valor,pro_foto,pro_cod_barras,pro_valor_15_99,pro_valor_mais_100,pro_valor_mais_100_duplex,pro_valor_1_15,pro_ordem_producao,pro_materia_prima,pro_valor_tercerizado,pro_qtd_min_tercerizado,pro_qtd_tab_ini1,pro_qtd_tab_ini2,pro_qtd_tab_ini3,pro_qtd_tab_fin1,pro_qtd_tab_fin2,pro_qtd_tab_fin3,pro_preco_tab1,pro_preco_tab2,pro_preco_tab3,pro_status,pro_abate_estoque_duplo,pro_debitacao_especial)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";


$stmt = self::conectar()->prepare($sql);
$stmt->bindValue(1, $produto->getPro_ds());
$stmt->bindValue(2, $produto->getPro_und());
$stmt->bindValue(3, $produto->getPro_grp_ds());
$stmt->bindValue(4, $produto->getPro_valor());
$stmt->bindValue(5, $produto->getPro_foto());
$stmt->bindValue(6, $produto->getPro_cod_barras());
$stmt->bindValue(7, $produto->getPro_valor_15_99());
$stmt->bindValue(8, $produto->getPro_valor_mais_100());
$stmt->bindValue(9, $produto->getPro_valor_mais_100_duplex());
$stmt->bindValue(10, $produto->getPro_valor_1_15());
$stmt->bindValue(11, $produto->getPro_ordem_producao());
$stmt->bindValue(12, $produto->getPro_materia_prima());
$stmt->bindValue(13, $produto->getPro_valor_tercerizado());
$stmt->bindValue(14, $produto->getPro_qtd_min_tercerizado());
$stmt->bindValue(15, $produto->getPro_qtd_tab_ini1());
$stmt->bindValue(16, $produto->getPro_qtd_tab_ini2());
$stmt->bindValue(17, $produto->getPro_qtd_tab_ini3());
$stmt->bindValue(18, $produto->getPro_qtd_tab_fin1());
$stmt->bindValue(19, $produto->getPro_qtd_tab_fin2());
$stmt->bindValue(20, $produto->getPro_qtd_tab_fin3());
$stmt->bindValue(21, $produto->getPro_preco_tab1());
$stmt->bindValue(22, $produto->getPro_preco_tab2());
$stmt->bindValue(23, $produto->getPro_preco_tab3());
$stmt->bindValue(24, $produto->getPro_status());
$stmt->bindValue(25, $produto->getpro_abate_estoque_duplo());
$stmt->bindValue(26, $produto->getPro_debitacao_especial());


}
if ($stmt->execute()){
return true;
} else
return false;

} catch (Exception $e) {
print "Erro ao tentar atualizar: ".$e;
}

}

public function PesquisarProduto($codigo){
$sql = " SELECT * FROM produto WHERE pro_cd = ? ";
$stmt = self::conectar()->prepare($sql);
$stmt->bindValue(1, $codigo);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}

public function PesquisarPrecoProduto($codigo){
$sql = " SELECT pro_valor,pro_qtd_tab_ini1,pro_qtd_tab_ini2,pro_qtd_tab_ini3,pro_qtd_tab_fin1,pro_qtd_tab_fin2,pro_qtd_tab_fin3,pro_preco_tab1,pro_preco_tab2,pro_preco_tab3 FROM produto WHERE pro_cd = ? ";
$stmt = self::conectar()->prepare($sql);
$stmt->bindValue(1, $codigo);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}

public function ListarProduto(){
$sql = " SELECT * FROM produto ORDER BY pro_cd ";
$stmt = self::conectar()->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}

public function Contar_Produtos(){
	$sql = "SELECT COUNT(pro_cd) AS quantidade_produtos FROM produto";
	$stmt = self::conectar()->prepare($sql);
	$stmt->execute();
	$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
	foreach($result as $row){
		return $row['quantidade_produtos'];
	}
}


public function ListarProduto2(){
$sql = " SELECT *,(SELECT sum(`prm_produto_qtd`) FROM produto_movimentacao WHERE prm_situacao = 'ENTRADA' AND prm_produto_id = b.pro_cd) as totalizador1, (SELECT sum(`prm_produto_qtd`) FROM produto_movimentacao WHERE prm_situacao = 'RETIRADA' AND prm_produto_id = b.pro_cd) as totalizador2 FROM produto AS b ORDER BY pro_cd";
$stmt = self::conectar()->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}



public function ProximoId(){
$sql = " SELECT COALESCE(MAX(pro_cd), 0) + 1 AS PROXIMO_REGISTRO FROM produto ";
$stmt = self::conectar()->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}

	
public function deletar($pro_cd){		
$sql = " DELETE FROM produto WHERE pro_cd = ? ";
$stmt = self::conectar()->prepare($sql);
$stmt->bindValue(1, $pro_cd); 
$stmt->execute();
}

 
}
