<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();
require 'verifica_cookie.php';
require 'conexao.php';

$cliente    = (isset($_POST['cliente'])) ? trim(strtoupper($_POST['cliente'])) : '';
$venda      = (isset($_POST['venda'])) ? trim($_POST['venda']) : '';
$id_cliente = (isset($_POST['id_cliente'])) ? (int) $_POST['id_cliente'] : 0;
$pdo        = Conexao::getInstance();

if (!empty($id_cliente) && empty($cliente)):
	// Troca de cliente: atualiza apenas cli_001, não altera ven_027
	$sql = "UPDATE venda SET cli_001 = :id_cliente WHERE ven_001 = :venda";
	$stm = $pdo->prepare($sql);
	$stm->bindValue(':id_cliente', $id_cliente, PDO::PARAM_INT);
	$stm->bindValue(':venda', $venda);
elseif (!empty($cliente) && !isset($_POST['id_cliente'])):
	// Edição de observação: atualiza apenas ven_027, não altera cli_001
	$sql = "UPDATE venda SET ven_027 = :cliente WHERE ven_001 = :venda";
	$stm = $pdo->prepare($sql);
	$stm->bindValue(':cliente', $cliente);
	$stm->bindValue(':venda', $venda);
else:
	// Edição completa: atualiza cli_001, e ven_027 somente se não veio de cadastro/pesquisa
	if ($id_cliente > 0):
		$sql = "UPDATE venda SET cli_001 = :id_cliente WHERE ven_001 = :venda";
		$stm = $pdo->prepare($sql);
		$stm->bindValue(':id_cliente', $id_cliente, PDO::PARAM_INT);
		$stm->bindValue(':venda', $venda);
	else:
		$sql = "UPDATE venda SET ven_027 = :cliente, cli_001 = :id_cliente WHERE ven_001 = :venda";
		$stm = $pdo->prepare($sql);
		$stm->bindValue(':cliente', $cliente);
		$stm->bindValue(':id_cliente', $id_cliente, PDO::PARAM_INT);
		$stm->bindValue(':venda', $venda);
	endif;
endif;

$retorno = $stm->execute();

if ($retorno):
	if (!empty($cliente)) $_SESSION['CLIENTE'] = $cliente;
	$_SESSION['ID_CLIENTE'] = $id_cliente;
	echo json_encode(array('status' => '1', 'text' => 'Gravado com sucesso'));
else:
	echo json_encode(array('status' => '0', 'text' => 'Erro ao gravar item!'));
endif;
