-- Infraestrutura nova. Validar em banco descartavel antes de instalar.
-- Nao altera colunas comerciais e nao configura origem automaticamente.
CREATE TABLE IF NOT EXISTS t2_sync_config (
 id TINYINT PRIMARY KEY, lado ENUM('PDV','ERP') NOT NULL, origem VARCHAR(64) NOT NULL,
 par VARCHAR(64) NOT NULL, empresa INT NOT NULL, empresa_par INT NOT NULL,
 CHECK(id=1), CHECK(empresa>0), CHECK(empresa_par>0), CHECK(origem<>par)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS t2_sync_tabelas (
 nome VARCHAR(64) PRIMARY KEY, pk VARCHAR(64) NOT NULL, automatico BOOLEAN NOT NULL,
 colunas JSON NOT NULL, referencias JSON NOT NULL, campos_naturais JSON NOT NULL,
 campo_empresa VARCHAR(64) NULL
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS t2_sync_entidades (
 nome VARCHAR(64) PRIMARY KEY, tabela_raiz VARCHAR(64) NOT NULL,
 chave_raiz VARCHAR(64) NOT NULL, dono ENUM('PDV','ERP','BOTH') NOT NULL,
 tabelas JSON NOT NULL, prioridade INT NOT NULL
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS t2_sync_fila (
 entidade VARCHAR(64) NOT NULL, chave VARCHAR(191) NOT NULL,
 versao BIGINT NOT NULL DEFAULT 1, versao_envio BIGINT NULL,
 estado ENUM('pendente','concluido','conflito') NOT NULL DEFAULT 'pendente',
 operacao CHAR(36) NULL, payload LONGTEXT NULL, hash_payload CHAR(64) NULL,
 tentativas INT NOT NULL DEFAULT 0, proxima_tentativa DATETIME(3) NOT NULL DEFAULT (UTC_TIMESTAMP(3)),
 erro_codigo VARCHAR(120) NULL, conflito_payload LONGTEXT NULL,
 criado DATETIME(3) NOT NULL DEFAULT (UTC_TIMESTAMP(3)), atualizado DATETIME(3) NOT NULL DEFAULT (UTC_TIMESTAMP(3)),
 PRIMARY KEY(entidade,chave), UNIQUE KEY(operacao), KEY fila_proxima(estado,proxima_tentativa)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS t2_sync_mapa (
 origem VARCHAR(64) NOT NULL, tabela VARCHAR(64) NOT NULL, chave VARCHAR(191) NOT NULL,
 local_id VARCHAR(191) NOT NULL, PRIMARY KEY(origem,tabela,chave), UNIQUE KEY destino_unico(tabela,local_id)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS t2_sync_recibo (
 operacao CHAR(36) PRIMARY KEY, origem VARCHAR(64) NOT NULL, hash_payload CHAR(64) NOT NULL,
 confirmado DATETIME(3) NOT NULL DEFAULT (UTC_TIMESTAMP(3))
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS t2_sync_log (
 id BIGINT PRIMARY KEY AUTO_INCREMENT, criado DATETIME(3) NOT NULL DEFAULT (UTC_TIMESTAMP(3)),
 operacao CHAR(36) NULL, entidade VARCHAR(64) NULL, codigo VARCHAR(120) NOT NULL, INDEX(criado)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS t2_sync_estoque_venda (
 origem VARCHAR(64) NOT NULL, venda VARCHAR(191) NOT NULL, sku VARCHAR(191) NOT NULL,
 quantidade DECIMAL(18,4) NOT NULL, PRIMARY KEY(origem,venda,sku)
) ENGINE=InnoDB;

REPLACE INTO t2_sync_tabelas VALUES('abrecaixa','caixaid',1,'["caixaid", "data", "situacao", "valorabertura", "valorfechamento", "valorsangria", "usuario", "valorsaldo", "emitente", "empresa", "usuariofecha", "atualizadopdv", "atualizadopdv1"]','{"usuario": "usuario", "usuariofecha": "usuario", "emitente": "@empresa", "empresa": "@empresa"}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('agrupamentoprodutos','agrupamentoprodutosid',1,'["agrupamentoprodutosid", "sigla", "descricao", "capa"]','{}','["sigla"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('baixalancamento','baixalancamentoid',1,'["baixalancamentoid", "databaixa", "valor", "valorbaixa", "juros", "multa", "conta", "condpagamento", "desconto", "historico", "tipo", "documento", "documentoos", "lancamento", "doc_tipo", "empresa", "acerto", "nrofaturamento", "caixa"]','{"documento": "movimentacao", "empresa": "@empresa", "conta": "contas"}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('barrasprodutos','barrasprodutos',1,'["barrasprodutos", "barras", "produto"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('caixa','ID',1,'["ID", "data", "tipo", "tipocobranca", "lancamento", "baixalancamento", "historico", "planodecontas", "usuario", "valor", "empresa", "documento", "documentoos", "sangria", "recebimento", "pagamento", "conta", "UltimaAlteracao", "doc_tipo", "acerto", "atualizadopdv", "atualizadopdv1", "nrofaturamento"]','{"documento": "movimentacao", "lancamento": "lancamento", "usuario": "usuario", "empresa": "@empresa", "conta": "contas"}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('categorias','categoriasid',1,'["categoriasid", "sigla", "descricao", "capa", "impressora", "servidorimpressao"]','{}','["sigla"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('centrodecusto','id',1,'["id", "descricao", "sequencia", "nivel", "centrocusto", "subcentrocusto"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('cliente','clienteid',1,'["clienteid", "tipo", "CNPJ", "IE", "DataNasc", "xNome", "xFant", "fone", "fone1", "celular", "whatsapp", "email", "CEP", "xLgr", "nro", "xCpl", "xBairro", "xMun", "UF", "cMun", "CobCEP", "CobxLgr", "Cobnro", "CobxCpl", "CobxBairro", "CobxMun", "CobUF", "CobcMun", "EntCEP", "EntxLgr", "Entnro", "EntxCpl", "EntxBairro", "EntxMun", "EntUF", "EntcMun", "pai", "mae", "estadocivil", "conjuge", "refempresa1", "refinformante1", "reftelefone1", "refempresa2", "refinformante2", "reftelefone2", "refempresa3", "refinformante3", "reftelefone3", "facebook", "instagram", "twitter", "skype", "spc", "dataconsulta", "limitecredito", "obs", "excluido", "credito", "comissaoav", "grupocliente", "planodecontas", "representante", "vendedor", "corretor", "contato", "UltimaAlteracao", "atualizadopdv", "codigo_interno", "ultima_compra", "atualizadopdv1", "odesf", "odcil", "odeixo", "oeesf", "oecil", "oeeixo", "obsod", "obsoe", "podesf", "podcil", "podeixo", "poeesf", "poecil", "poeeixo", "obspoe", "obspod", "odadicao", "oeadicao", "ldp", "pdp", "poeadicao", "podadicao", "pobspoe", "pobspod", "nomemedico", "datacompra", "senha"]','{"representante": "representante", "vendedor": "vendedor", "corretor": "corretor"}','["CNPJ"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('contas','contasid',1,'["contasid", "contastipo", "contasagencia", "contasconta", "contasbanco", "contasdescricao", "contasdataabertura", "contassaldoinicial", "contasativo", "empresa"]','{}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('corretor','corretorid',1,'["corretorid", "CNPJ", "IE", "ISUF", "xNome", "xFant", "email", "fone", "fone1", "fone2", "CEP", "xLgr", "nro", "xCpl", "xBairro", "xMun", "UF", "cMun", "excluido", "comissaoav", "comissaoap"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('estoqueprodutos','estoqueprodutosid',1,'["estoqueprodutosid", "produto", "var1", "var2", "var3", "codproduto", "foto", "acrescimo", "estoquemin", "estoquemax", "barras", "qtd", "ref", "id_ecommerce", "variacao", "ordem1", "ordem2", "ordem3", "ecommercesinc", "id_ecommerce_foto", "fiscal", "barras1", "barras2", "barras3", "barras4", "barras5", "barras6", "barras7", "barras8", "barras9", "barras10", "promocao", "id_shopify", "id_nuvemshop", "id_tiktok", "id_shopee", "inventory_id_shopify"]','{}','["codproduto"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('fornecedor','fornecedorid',1,'["fornecedorid", "CNPJ", "IE", "ISUF", "xNome", "xFant", "email", "fone", "fone1", "CEP", "xLgr", "nro", "xCpl", "xBairro", "xMun", "UF", "cMun", "excluido", "tipo", "planodecontas", "centrocusto", "chavepix"]','{}','["CNPJ"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('grupos','gruposid',1,'["gruposid", "descricao", "sigla", "sequencia", "grupo", "nivel", "id_ecommerce", "id_shopify", "id_nuvemshop", "id_tiktok", "id_shopee"]','{}','["sigla"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('itmovimentacao','id',1,'["id", "documento", "produto", "preco", "desconto", "acrescimo", "valorbruto", "valorliquido", "item", "acertado", "quantidade", "cancelado", "desc_rateio", "promocao", "imei", "serie", "bateria", "obs", "conferencia", "subitem", "garantia"]','{"documento": "movimentacao"}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('lancamento','lancamentoid',1,'["lancamentoid", "titulo", "parcela", "historico", "tipoconta", "tipocobranca", "dataemissao", "datavencimento", "valor", "fornecedor", "cliente", "planodecontas", "obs", "situacao", "entnfe", "nfe", "usuario", "datapagamento", "representante", "dataalterado", "usuarioalterado", "funcionario", "para", "documento", "documentoos", "documento_troca", "documento_entrada", "idbaixa", "valorpago", "valorlancamento", "transportador", "empresa", "dataultalteracao", "cod_interno", "UltimaAlteracao", "placa", "doc_tipo", "NotaFiscal", "NotaFiscalEntrada", "unificado", "acerto", "centrodecusto", "conta", "litros", "valorlt", "ultimokm", "kmatual", "kmrodados", "media", "tipofrota", "aprovadopag", "usuarioaprova", "dataaprova", "anexo", "quantidade", "valorcc", "valorfrete", "customotorista", "nossonumero", "nrofaturamento", "caixa"]','{"idbaixa": "baixalancamento", "documento": "movimentacao", "cliente": "cliente", "usuario": "usuario", "empresa": "@empresa", "centrodecusto": "centrodecusto", "conta": "contas"}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('lancamento_baixalancamento','id',1,'["id", "lancamento", "baixalancamento", "documento", "documentoos", "tipo", "doc_tipo", "acerto", "caixa"]','{"documento": "movimentacao", "lancamento": "lancamento", "baixalancamento": "baixalancamento"}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('marca','id',1,'["id", "descricao", "excluido"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('movimentacao','documento',1,'["documento", "data", "para", "tbpreco", "representante", "vendedor", "corretor", "cliente", "funcionario", "tipo", "hora", "valortotal", "desconto", "finalizado", "valorpago", "troco", "situacao", "credito", "frete", "controle", "usuario", "DocFiscal", "tipoDocFiscal", "doc_empresa", "empresa", "datacancelado", "horacancelado", "motivocancelado", "usuariocancelado", "acrescimo", "UltimaAlteracao", "utilizadocredito", "obs", "terminal", "operacao", "datapagamento", "doc_interno", "atualizadopdv", "acerto", "conta", "comanda", "mesa", "atualizadopdv1", "conferencia", "status", "linkmaps", "obstatus", "transportador", "idpix", "imei", "bateria", "serie", "pedido_online"]','{"tbpreco": "tabelapreco", "representante": "representante", "vendedor": "vendedor", "corretor": "corretor", "cliente": "cliente", "usuario": "usuario", "empresa": "@empresa", "conta": "contas"}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('nfe','id',1,'["id", "cUF", "cNF", "natOp", "indPag", "modelo", "serie", "nNF", "rascunho", "dhEmi", "hEmi", "dhSaiEnt", "hSaiEnt", "tpEmis", "finNFe", "indPres", "destCNPJ", "destIE", "destxNome", "destemail", "destCEP", "destxLgr", "destnro", "destxCpl", "destxBairro", "destxMun", "destcMun", "destUF", "destfone", "vBCnf", "vICMSnf", "vBCSTnf", "vSTnf", "vProdnf", "vFretenf", "vTotTribnf", "vOutronf", "vIInf", "vIPInf", "vPISnf", "vCOFINSnf", "vSegnf", "vDescnf", "vICMSdesonnf", "vNF", "modFrete", "transpCNPJ", "transpIE", "transpxNome", "transpCEP", "transpxLgr", "transpnro", "transpxCpl", "transpxBairro", "transpxMun", "transpcMun", "transpUF", "nFatcob", "vOrigcob", "vDesccob", "vLiqcob", "infCpl", "destISUF", "status", "chavenfe", "recibo", "nProt", "qVol", "esp", "marca", "nVol", "pesoL", "pesoB", "cce", "datacce", "A3", "placa", "VeicUF", "RNTC", "tpNF", "vTotTrib", "autXML", "emitente", "usuario", "datacancelamento", "motivocancelamento", "tpAmb", "tipo", "empresa", "vPag", "tPag", "troco", "xml", "UltimaAlteracao", "vICMSSTnf", "CFOP", "vFCPST", "tipoemissao", "pais", "nomepais", "UFSaidaPais", "xLocExporta", "xLocDespacho", "documento", "tipodoc", "atualizadopdv", "destentregaCEP", "destentregaxLgr", "destentreganro", "destentregaxCpl", "destentregaxBairro", "destentregaxMun", "destentregacMun", "destentregaUF", "destentregaCNPJ", "destentregaIE", "destentregaxNome", "enderecoentrega", "atualizadopdv1", "indIntermed", "idCadIntTran", "CNPJidCadIntTran", "indFinal", "codajust", "vBCInterno", "pICMSInterno", "vICMSInterno", "vOutrosInterno", "cst", "indiedest", "situacao"]','{"documento": "movimentacao", "emitente": "@empresa", "empresa": "@empresa", "usuario": "usuario"}','["chavenfe"]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('planodecontas','planodecontasid',1,'["planodecontasid", "planodecontasdescricao", "planodecontassequencia", "planodecontasnivel", "planodecontastipo", "planodecontasconta", "planodecontassubconta"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('precoprodutos','precoprodutosid',1,'["precoprodutosid", "produto", "tabela", "valor", "minimo"]','{"tabela": "tabelapreco"}','["produto", "tabela"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('produtonfe','prodnfeid',1,'["prodnfeid", "cProd", "NFe", "NFCe", "cProdForn", "xProd", "cEan", "uCom", "vProd", "NCM", "CFOP", "orig", "CST", "modBC", "pICMS", "pRedBC", "pBCOP", "pRedBCST", "modBCST", "pMVAST", "pICMSST", "motDesICMS", "CSTIPI", "clEnq", "cEnq", "CNPJProd", "cSelo", "qSelo", "vBCIPI", "pIPI", "qUnidIPI", "vUnidIPI", "vIPI", "CSTPIS", "vBCPIS", "pPIS", "vPIS", "qBCProdPIS", "vAliqProdPIS", "vBCPISST", "pPISST", "qBCProdPISST", "vAliqProdPISST", "CSTCOFINS", "vBCCOFINS", "pCOFINS", "vCOFINS", "qBCProdCOFINS", "vAliqProdCOFINS", "vCOFINSST", "pCOFINSST", "qBCProdCOFINSST", "vAliqProdCOFINSST", "vBCCOFINSST", "qtd", "valortotal", "vBC", "vICMS", "pCredSN", "vCredICMSSN", "vBCST", "vICMSST", "EXTIPI", "cEANTrib", "pDif", "vICMSDif", "vICMSOp", "vBCSTRet", "vICMSSTRet", "nFCI", "vICMSDeson", "chavenfe", "tpOp", "chassi", "cCor", "xCor", "pot", "cilin", "pesoL", "pesoB", "nSerie", "tpComb", "nMotor", "CMT", "dist", "anoMod", "anoFab", "tpPint", "tpVeic", "espVeic", "VIN", "cMod", "cCorDENATRAN", "lota", "tpRest", "prodEspe", "condVeic", "CEST", "vComp", "produtoid", "infAdProd", "vDesc", "vTotTrib", "descANP", "pGLP", "pGNn", "pGNi", "vPart", "cProdANP", "pMixGN", "CODIF", "qTemp", "UFCons", "qBCProd", "vAliqProd", "vCIDE", "xPed", "nItemPed", "tribFederal", "tribEstadual", "tribMunicipal", "tribImportado", "cBenef", "vOutro", "vFCPST", "pFCPST", "vFrete", "vBCFCPST", "CSTIS", "vBCIS", "pIS", "vIS", "CST_IBSCBS", "cClassTrib_IBSCBS", "vBC_IBSCBS", "pRedAliq_IBS", "pRedAliq_CBS", "vCBS", "vIBS", "pCBS", "pIBS"]','{"NFe": "nfe"}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('produtos','produtosid',1,'["produtosid", "codigo", "ref", "descricao", "descricaocomp", "custo", "classificacao", "unidade", "fornecedor", "categoria", "agrupamentoprodutos", "grupo", "variacao", "controla", "imagem", "tributacao", "promocao", "codinterno", "origem", "UltimaAlteracao", "data_cadastro", "descmaximo", "descregra", "marca", "dataini", "custoini", "saldoini", "atualizadopdv", "atualizadopdv1", "peso", "comprimento", "largura", "altura", "ecommerce", "ecommercesinc", "id_ecommerce", "capa", "garantia", "informacoes", "prateleira", "fiscal", "obs", "descricao_site", "foto1", "foto2", "foto3", "foto4", "ativo", "kit", "comissao", "catadicional", "produto_fiscal", "id_shopify", "id_nuvemshop", "id_tiktok", "id_shopee"]','{"fornecedor": "fornecedor", "marca": "marca", "variacao": "variacao"}','["codigo"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('produtos_composicao','id',1,'["id", "produto", "insumo", "custo", "quantidade", "total"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('produtos_icms','id',1,'["id", "produto", "uf", "icms", "pRedBCST", "pMVAST", "pICMSST", "vICMSDeson", "pRedBC", "vICMSOp", "pDif", "vICMSDif"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('promocoes','id',1,'["id", "empresa", "nome", "tipo", "quantidade_regra", "valor_promocional", "aplicar_repeticao", "permite_acumular", "criterio_selecao", "prioridade", "data_inicio", "data_fim", "ativo", "data_cadastro", "ultima_alteracao"]','{"empresa": "@empresa"}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('promocoes_produtos','id',1,'["id", "promocao_id", "produto", "quantidade", "preco_promocional", "ordem"]','{"promocao_id": "promocoes"}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('recebimentomov','id',1,'["id", "documento", "dataven", "tiporeceb", "valor"]','{"documento": "movimentacao"}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('representante','representanteid',1,'["representanteid", "CNPJ", "IE", "ISUF", "xNome", "xFant", "email", "fone", "fone1", "fone2", "CEP", "xLgr", "nro", "xCpl", "xBairro", "xMun", "UF", "cMun", "excluido", "comissaoav", "comissaoap", "planodecontas", "credito", "obs", "contato"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('tabelapreco','tabelaprecoid',1,'["tabelaprecoid", "descricao", "porcentagem", "tipo", "excluido"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('tributacaoprodutos','ID',1,'["ID", "modBC", "vBC", "pICMS", "vICMS", "pCredSN", "vCredICMSSN", "pRedBC", "pBCOP", "modBCST", "pRedBCST", "pMVAST", "vBCST", "pICMSST", "vICMSST", "modUFST", "motDesICMS", "vICMSDeson", "pDif", "vICMSDif", "clEnq", "cEnq", "CNPJProd", "cSelo", "qSelo", "vBCIPI", "pIPI", "qUnidIPI", "vUnidIPI", "vIPI", "vBCCOFINS", "pCOFINS", "vCOFINS", "vPIS", "qBCProdPIS", "vAliqProdPIS", "qBCProdCOFINS", "vAliqProdCOFINS", "vBCPIS", "pPIS", "produto", "ncm", "cst", "cstipi", "cstpis", "cstcofins", "cfop", "cfopuf", "cest", "cBenef", "cfopretorno", "cfopretornouf", "cfopdevolucao", "cfopdevolucaouf", "cfopmanifesto", "empresa", "tributacaotipo", "tributado", "descANP", "cProdANP", "cfopmanifestouf", "cClassTrib_interestadual", "cClassTrib_estadual", "cstcClassTrib", "cstIBS", "pIBS", "pRedAliqIBS", "pCBS", "pIBSUF", "pIBSMun", "pRedAliqIBSMun", "pAliqEfetIBSMun", "pDifIBS", "pAliqEfet", "pDifCBS", "pRedAliqCBS", "pAliqEfetCBS", "cCredPres", "pCredPresIBS", "pCredPresCBS", "cstIS", "pIS", "fci"]','{"empresa": "@empresa"}','["produto", "empresa"]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('unidade','unidadeid',0,'["unidadeid", "sigla", "descricao"]','{}','["sigla"]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('usuario','usuarioid',1,'["usuarioid", "usuarionome", "usuariosenha", "usuarioemail", "usuarioativo", "usuariologin", "usuariofoto", "usuariotelefone", "usuariocelular", "empresa", "empresapadrao", "usuarioadmin", "usuariohorario"]','{"empresa": "@empresa", "empresapadrao": "@empresa"}','["usuariologin"]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('usuarios_empresa','ID',1,'["ID", "usuario", "empresa"]','{"usuario": "usuario", "empresa": "@empresa"}','[]','empresa');
REPLACE INTO t2_sync_tabelas VALUES('usuarios_horario','id',1,'["id", "usuario", "domingo_ativo", "domingo_horai", "domingo_horaf", "segunda_ativo", "segunda_horai", "segunda_horaf", "terca_ativo", "terca_horai", "terca_horaf", "quarta_ativo", "quarta_horai", "quarta_horaf", "quinta_ativo", "quinta_horai", "quinta_horaf", "sexta_ativo", "sexta_horai", "sexta_horaf", "sabado_ativo", "sabado_horai", "sabado_horaf"]','{"usuario": "usuario"}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('variacao','variacaoid',1,'["variacaoid", "descricao", "var1", "var2", "var3", "id_ecommerce"]','{}','[]',NULL);
REPLACE INTO t2_sync_tabelas VALUES('vendedor','vendedorid',1,'["vendedorid", "CNPJ", "IE", "ISUF", "xNome", "xFant", "email", "fone", "fone1", "fone2", "CEP", "xLgr", "nro", "xCpl", "xBairro", "xMun", "UF", "cMun", "excluido", "comissaoav", "comissaoap", "usuario", "empresa"]','{"usuario": "usuario"}','[]','empresa');
REPLACE INTO t2_sync_entidades VALUES('unidade','unidade','unidadeid','ERP','[{"table": "unidade", "field": "unidadeid"}]',0);
REPLACE INTO t2_sync_entidades VALUES('marca','marca','id','ERP','[{"table": "marca", "field": "id"}]',1);
REPLACE INTO t2_sync_entidades VALUES('grupos','grupos','gruposid','ERP','[{"table": "grupos", "field": "gruposid"}]',2);
REPLACE INTO t2_sync_entidades VALUES('categorias','categorias','categoriasid','ERP','[{"table": "categorias", "field": "categoriasid"}]',3);
REPLACE INTO t2_sync_entidades VALUES('agrupamentoprodutos','agrupamentoprodutos','agrupamentoprodutosid','ERP','[{"table": "agrupamentoprodutos", "field": "agrupamentoprodutosid"}]',4);
REPLACE INTO t2_sync_entidades VALUES('variacao','variacao','variacaoid','ERP','[{"table": "variacao", "field": "variacaoid"}]',5);
REPLACE INTO t2_sync_entidades VALUES('fornecedor','fornecedor','fornecedorid','ERP','[{"table": "fornecedor", "field": "fornecedorid"}]',6);
REPLACE INTO t2_sync_entidades VALUES('tabelapreco','tabelapreco','tabelaprecoid','ERP','[{"table": "tabelapreco", "field": "tabelaprecoid"}]',7);
REPLACE INTO t2_sync_entidades VALUES('planodecontas','planodecontas','planodecontasid','ERP','[{"table": "planodecontas", "field": "planodecontasid"}]',8);
REPLACE INTO t2_sync_entidades VALUES('contas','contas','contasid','ERP','[{"table": "contas", "field": "contasid"}]',9);
REPLACE INTO t2_sync_entidades VALUES('centrodecusto','centrodecusto','id','ERP','[{"table": "centrodecusto", "field": "id"}]',10);
REPLACE INTO t2_sync_entidades VALUES('representante','representante','representanteid','ERP','[{"table": "representante", "field": "representanteid"}]',11);
REPLACE INTO t2_sync_entidades VALUES('corretor','corretor','corretorid','ERP','[{"table": "corretor", "field": "corretorid"}]',12);
REPLACE INTO t2_sync_entidades VALUES('vendedor','vendedor','vendedorid','ERP','[{"table": "vendedor", "field": "vendedorid"}]',13);
REPLACE INTO t2_sync_entidades VALUES('cliente','cliente','clienteid','ERP','[{"table": "cliente", "field": "clienteid"}]',14);
REPLACE INTO t2_sync_entidades VALUES('usuario','usuario','usuarioid','ERP','[{"table": "usuario", "field": "usuarioid"}]',15);
REPLACE INTO t2_sync_entidades VALUES('usuarios_empresa','usuarios_empresa','ID','ERP','[{"table": "usuarios_empresa", "field": "ID"}]',16);
REPLACE INTO t2_sync_entidades VALUES('usuarios_horario','usuarios_horario','id','ERP','[{"table": "usuarios_horario", "field": "id"}]',17);
REPLACE INTO t2_sync_entidades VALUES('promocao','promocoes','id','ERP','[{"table": "promocoes", "field": "id"}, {"table": "promocoes_produtos", "field": "promocao_id"}]',18);
REPLACE INTO t2_sync_entidades VALUES('produto','produtos','codigo','ERP','[{"table": "produtos", "field": "codigo"}, {"table": "estoqueprodutos", "field": "produto"}, {"table": "precoprodutos", "field": "produto"}, {"table": "tributacaoprodutos", "field": "produto"}, {"table": "barrasprodutos", "field": "produto"}, {"table": "produtos_composicao", "field": "produto"}, {"table": "produtos_icms", "field": "produto"}]',19);
REPLACE INTO t2_sync_entidades VALUES('venda','movimentacao','documento','PDV','[{"table": "movimentacao", "field": "documento"}, {"table": "itmovimentacao", "field": "documento"}, {"table": "recebimentomov", "field": "documento"}, {"table": "baixalancamento", "field": "documento"}, {"table": "lancamento", "field": "documento"}, {"table": "lancamento_baixalancamento", "field": "documento"}, {"table": "caixa", "field": "documento"}]',20);
REPLACE INTO t2_sync_entidades VALUES('abertura','abrecaixa','caixaid','BOTH','[{"table": "abrecaixa", "field": "caixaid"}]',21);
REPLACE INTO t2_sync_entidades VALUES('caixa','caixa','ID','BOTH','[{"table": "caixa", "field": "ID"}]',22);
REPLACE INTO t2_sync_entidades VALUES('nfce','nfe','id','BOTH','[{"table": "nfe", "field": "id"}, {"table": "produtonfe", "field": "NFe"}]',23);
DELIMITER $$
DROP PROCEDURE IF EXISTS t2_sync_marcar$$
CREATE PROCEDURE t2_sync_marcar(IN p_ent VARCHAR(64), IN p_chave VARCHAR(191))
proc: BEGIN
 DECLARE v_lado VARCHAR(8); DECLARE v_dono VARCHAR(8);
 IF COALESCE(@t2_sync_aplicando,0)=1 OR p_chave IS NULL OR p_chave='' THEN LEAVE proc; END IF;
 SET v_lado=(SELECT lado FROM t2_sync_config WHERE id=1);
 SET v_dono=(SELECT dono FROM t2_sync_entidades WHERE nome=p_ent);
 IF v_lado IS NULL OR (v_dono<>'BOTH' AND v_lado<>v_dono) THEN LEAVE proc; END IF;
 INSERT INTO t2_sync_fila(entidade,chave) VALUES(p_ent,p_chave)
 ON DUPLICATE KEY UPDATE versao=versao+1,
 estado=IF(estado='conflito','conflito','pendente'), atualizado=UTC_TIMESTAMP(3),
 proxima_tentativa=IF(operacao IS NULL,UTC_TIMESTAMP(3),proxima_tentativa);
END$$

DROP TRIGGER IF EXISTS `t2_sync_unidade_i`$$
CREATE TRIGGER `t2_sync_unidade_i` AFTER INSERT ON `unidade` FOR EACH ROW BEGIN CALL t2_sync_marcar('unidade',CAST(NEW.`unidadeid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_unidade_u`$$
CREATE TRIGGER `t2_sync_unidade_u` AFTER UPDATE ON `unidade` FOR EACH ROW BEGIN CALL t2_sync_marcar('unidade',CAST(NEW.`unidadeid` AS CHAR)); IF NOT(OLD.`unidadeid` <=> NEW.`unidadeid`) THEN CALL t2_sync_marcar('unidade',CAST(OLD.`unidadeid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_unidade_d`$$
CREATE TRIGGER `t2_sync_unidade_d` AFTER DELETE ON `unidade` FOR EACH ROW BEGIN CALL t2_sync_marcar('unidade',CAST(OLD.`unidadeid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_marca_i`$$
CREATE TRIGGER `t2_sync_marca_i` AFTER INSERT ON `marca` FOR EACH ROW BEGIN CALL t2_sync_marcar('marca',CAST(NEW.`id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_marca_u`$$
CREATE TRIGGER `t2_sync_marca_u` AFTER UPDATE ON `marca` FOR EACH ROW BEGIN CALL t2_sync_marcar('marca',CAST(NEW.`id` AS CHAR)); IF NOT(OLD.`id` <=> NEW.`id`) THEN CALL t2_sync_marcar('marca',CAST(OLD.`id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_marca_d`$$
CREATE TRIGGER `t2_sync_marca_d` AFTER DELETE ON `marca` FOR EACH ROW BEGIN CALL t2_sync_marcar('marca',CAST(OLD.`id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_grupos_i`$$
CREATE TRIGGER `t2_sync_grupos_i` AFTER INSERT ON `grupos` FOR EACH ROW BEGIN CALL t2_sync_marcar('grupos',CAST(NEW.`gruposid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_grupos_u`$$
CREATE TRIGGER `t2_sync_grupos_u` AFTER UPDATE ON `grupos` FOR EACH ROW BEGIN CALL t2_sync_marcar('grupos',CAST(NEW.`gruposid` AS CHAR)); IF NOT(OLD.`gruposid` <=> NEW.`gruposid`) THEN CALL t2_sync_marcar('grupos',CAST(OLD.`gruposid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_grupos_d`$$
CREATE TRIGGER `t2_sync_grupos_d` AFTER DELETE ON `grupos` FOR EACH ROW BEGIN CALL t2_sync_marcar('grupos',CAST(OLD.`gruposid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_categorias_i`$$
CREATE TRIGGER `t2_sync_categorias_i` AFTER INSERT ON `categorias` FOR EACH ROW BEGIN CALL t2_sync_marcar('categorias',CAST(NEW.`categoriasid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_categorias_u`$$
CREATE TRIGGER `t2_sync_categorias_u` AFTER UPDATE ON `categorias` FOR EACH ROW BEGIN CALL t2_sync_marcar('categorias',CAST(NEW.`categoriasid` AS CHAR)); IF NOT(OLD.`categoriasid` <=> NEW.`categoriasid`) THEN CALL t2_sync_marcar('categorias',CAST(OLD.`categoriasid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_categorias_d`$$
CREATE TRIGGER `t2_sync_categorias_d` AFTER DELETE ON `categorias` FOR EACH ROW BEGIN CALL t2_sync_marcar('categorias',CAST(OLD.`categoriasid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_agrupamentoprodutos_i`$$
CREATE TRIGGER `t2_sync_agrupamentoprodutos_i` AFTER INSERT ON `agrupamentoprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('agrupamentoprodutos',CAST(NEW.`agrupamentoprodutosid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_agrupamentoprodutos_u`$$
CREATE TRIGGER `t2_sync_agrupamentoprodutos_u` AFTER UPDATE ON `agrupamentoprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('agrupamentoprodutos',CAST(NEW.`agrupamentoprodutosid` AS CHAR)); IF NOT(OLD.`agrupamentoprodutosid` <=> NEW.`agrupamentoprodutosid`) THEN CALL t2_sync_marcar('agrupamentoprodutos',CAST(OLD.`agrupamentoprodutosid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_agrupamentoprodutos_d`$$
CREATE TRIGGER `t2_sync_agrupamentoprodutos_d` AFTER DELETE ON `agrupamentoprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('agrupamentoprodutos',CAST(OLD.`agrupamentoprodutosid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_variacao_i`$$
CREATE TRIGGER `t2_sync_variacao_i` AFTER INSERT ON `variacao` FOR EACH ROW BEGIN CALL t2_sync_marcar('variacao',CAST(NEW.`variacaoid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_variacao_u`$$
CREATE TRIGGER `t2_sync_variacao_u` AFTER UPDATE ON `variacao` FOR EACH ROW BEGIN CALL t2_sync_marcar('variacao',CAST(NEW.`variacaoid` AS CHAR)); IF NOT(OLD.`variacaoid` <=> NEW.`variacaoid`) THEN CALL t2_sync_marcar('variacao',CAST(OLD.`variacaoid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_variacao_d`$$
CREATE TRIGGER `t2_sync_variacao_d` AFTER DELETE ON `variacao` FOR EACH ROW BEGIN CALL t2_sync_marcar('variacao',CAST(OLD.`variacaoid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_fornecedor_i`$$
CREATE TRIGGER `t2_sync_fornecedor_i` AFTER INSERT ON `fornecedor` FOR EACH ROW BEGIN CALL t2_sync_marcar('fornecedor',CAST(NEW.`fornecedorid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_fornecedor_u`$$
CREATE TRIGGER `t2_sync_fornecedor_u` AFTER UPDATE ON `fornecedor` FOR EACH ROW BEGIN CALL t2_sync_marcar('fornecedor',CAST(NEW.`fornecedorid` AS CHAR)); IF NOT(OLD.`fornecedorid` <=> NEW.`fornecedorid`) THEN CALL t2_sync_marcar('fornecedor',CAST(OLD.`fornecedorid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_fornecedor_d`$$
CREATE TRIGGER `t2_sync_fornecedor_d` AFTER DELETE ON `fornecedor` FOR EACH ROW BEGIN CALL t2_sync_marcar('fornecedor',CAST(OLD.`fornecedorid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_tabelapreco_i`$$
CREATE TRIGGER `t2_sync_tabelapreco_i` AFTER INSERT ON `tabelapreco` FOR EACH ROW BEGIN CALL t2_sync_marcar('tabelapreco',CAST(NEW.`tabelaprecoid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_tabelapreco_u`$$
CREATE TRIGGER `t2_sync_tabelapreco_u` AFTER UPDATE ON `tabelapreco` FOR EACH ROW BEGIN CALL t2_sync_marcar('tabelapreco',CAST(NEW.`tabelaprecoid` AS CHAR)); IF NOT(OLD.`tabelaprecoid` <=> NEW.`tabelaprecoid`) THEN CALL t2_sync_marcar('tabelapreco',CAST(OLD.`tabelaprecoid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_tabelapreco_d`$$
CREATE TRIGGER `t2_sync_tabelapreco_d` AFTER DELETE ON `tabelapreco` FOR EACH ROW BEGIN CALL t2_sync_marcar('tabelapreco',CAST(OLD.`tabelaprecoid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_planodecontas_i`$$
CREATE TRIGGER `t2_sync_planodecontas_i` AFTER INSERT ON `planodecontas` FOR EACH ROW BEGIN CALL t2_sync_marcar('planodecontas',CAST(NEW.`planodecontasid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_planodecontas_u`$$
CREATE TRIGGER `t2_sync_planodecontas_u` AFTER UPDATE ON `planodecontas` FOR EACH ROW BEGIN CALL t2_sync_marcar('planodecontas',CAST(NEW.`planodecontasid` AS CHAR)); IF NOT(OLD.`planodecontasid` <=> NEW.`planodecontasid`) THEN CALL t2_sync_marcar('planodecontas',CAST(OLD.`planodecontasid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_planodecontas_d`$$
CREATE TRIGGER `t2_sync_planodecontas_d` AFTER DELETE ON `planodecontas` FOR EACH ROW BEGIN CALL t2_sync_marcar('planodecontas',CAST(OLD.`planodecontasid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_contas_i`$$
CREATE TRIGGER `t2_sync_contas_i` AFTER INSERT ON `contas` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('contas',CAST(NEW.`contasid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_contas_u`$$
CREATE TRIGGER `t2_sync_contas_u` AFTER UPDATE ON `contas` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('contas',CAST(NEW.`contasid` AS CHAR)); IF NOT(OLD.`contasid` <=> NEW.`contasid`) THEN CALL t2_sync_marcar('contas',CAST(OLD.`contasid` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_contas_d`$$
CREATE TRIGGER `t2_sync_contas_d` AFTER DELETE ON `contas` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('contas',CAST(OLD.`contasid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_centrodecusto_i`$$
CREATE TRIGGER `t2_sync_centrodecusto_i` AFTER INSERT ON `centrodecusto` FOR EACH ROW BEGIN CALL t2_sync_marcar('centrodecusto',CAST(NEW.`id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_centrodecusto_u`$$
CREATE TRIGGER `t2_sync_centrodecusto_u` AFTER UPDATE ON `centrodecusto` FOR EACH ROW BEGIN CALL t2_sync_marcar('centrodecusto',CAST(NEW.`id` AS CHAR)); IF NOT(OLD.`id` <=> NEW.`id`) THEN CALL t2_sync_marcar('centrodecusto',CAST(OLD.`id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_centrodecusto_d`$$
CREATE TRIGGER `t2_sync_centrodecusto_d` AFTER DELETE ON `centrodecusto` FOR EACH ROW BEGIN CALL t2_sync_marcar('centrodecusto',CAST(OLD.`id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_representante_i`$$
CREATE TRIGGER `t2_sync_representante_i` AFTER INSERT ON `representante` FOR EACH ROW BEGIN CALL t2_sync_marcar('representante',CAST(NEW.`representanteid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_representante_u`$$
CREATE TRIGGER `t2_sync_representante_u` AFTER UPDATE ON `representante` FOR EACH ROW BEGIN CALL t2_sync_marcar('representante',CAST(NEW.`representanteid` AS CHAR)); IF NOT(OLD.`representanteid` <=> NEW.`representanteid`) THEN CALL t2_sync_marcar('representante',CAST(OLD.`representanteid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_representante_d`$$
CREATE TRIGGER `t2_sync_representante_d` AFTER DELETE ON `representante` FOR EACH ROW BEGIN CALL t2_sync_marcar('representante',CAST(OLD.`representanteid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_corretor_i`$$
CREATE TRIGGER `t2_sync_corretor_i` AFTER INSERT ON `corretor` FOR EACH ROW BEGIN CALL t2_sync_marcar('corretor',CAST(NEW.`corretorid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_corretor_u`$$
CREATE TRIGGER `t2_sync_corretor_u` AFTER UPDATE ON `corretor` FOR EACH ROW BEGIN CALL t2_sync_marcar('corretor',CAST(NEW.`corretorid` AS CHAR)); IF NOT(OLD.`corretorid` <=> NEW.`corretorid`) THEN CALL t2_sync_marcar('corretor',CAST(OLD.`corretorid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_corretor_d`$$
CREATE TRIGGER `t2_sync_corretor_d` AFTER DELETE ON `corretor` FOR EACH ROW BEGIN CALL t2_sync_marcar('corretor',CAST(OLD.`corretorid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_vendedor_i`$$
CREATE TRIGGER `t2_sync_vendedor_i` AFTER INSERT ON `vendedor` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('vendedor',CAST(NEW.`vendedorid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_vendedor_u`$$
CREATE TRIGGER `t2_sync_vendedor_u` AFTER UPDATE ON `vendedor` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('vendedor',CAST(NEW.`vendedorid` AS CHAR)); IF NOT(OLD.`vendedorid` <=> NEW.`vendedorid`) THEN CALL t2_sync_marcar('vendedor',CAST(OLD.`vendedorid` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_vendedor_d`$$
CREATE TRIGGER `t2_sync_vendedor_d` AFTER DELETE ON `vendedor` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('vendedor',CAST(OLD.`vendedorid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_cliente_i`$$
CREATE TRIGGER `t2_sync_cliente_i` AFTER INSERT ON `cliente` FOR EACH ROW BEGIN CALL t2_sync_marcar('cliente',CAST(NEW.`clienteid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_cliente_u`$$
CREATE TRIGGER `t2_sync_cliente_u` AFTER UPDATE ON `cliente` FOR EACH ROW BEGIN CALL t2_sync_marcar('cliente',CAST(NEW.`clienteid` AS CHAR)); IF NOT(OLD.`clienteid` <=> NEW.`clienteid`) THEN CALL t2_sync_marcar('cliente',CAST(OLD.`clienteid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_cliente_d`$$
CREATE TRIGGER `t2_sync_cliente_d` AFTER DELETE ON `cliente` FOR EACH ROW BEGIN CALL t2_sync_marcar('cliente',CAST(OLD.`clienteid` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_usuario_i`$$
CREATE TRIGGER `t2_sync_usuario_i` AFTER INSERT ON `usuario` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('usuario',CAST(NEW.`usuarioid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_usuario_u`$$
CREATE TRIGGER `t2_sync_usuario_u` AFTER UPDATE ON `usuario` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('usuario',CAST(NEW.`usuarioid` AS CHAR)); IF NOT(OLD.`usuarioid` <=> NEW.`usuarioid`) THEN CALL t2_sync_marcar('usuario',CAST(OLD.`usuarioid` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_usuario_d`$$
CREATE TRIGGER `t2_sync_usuario_d` AFTER DELETE ON `usuario` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('usuario',CAST(OLD.`usuarioid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_usuarios_empresa_i`$$
CREATE TRIGGER `t2_sync_usuarios_empresa_i` AFTER INSERT ON `usuarios_empresa` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('usuarios_empresa',CAST(NEW.`ID` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_usuarios_empresa_u`$$
CREATE TRIGGER `t2_sync_usuarios_empresa_u` AFTER UPDATE ON `usuarios_empresa` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('usuarios_empresa',CAST(NEW.`ID` AS CHAR)); IF NOT(OLD.`ID` <=> NEW.`ID`) THEN CALL t2_sync_marcar('usuarios_empresa',CAST(OLD.`ID` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_usuarios_empresa_d`$$
CREATE TRIGGER `t2_sync_usuarios_empresa_d` AFTER DELETE ON `usuarios_empresa` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('usuarios_empresa',CAST(OLD.`ID` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_usuarios_horario_i`$$
CREATE TRIGGER `t2_sync_usuarios_horario_i` AFTER INSERT ON `usuarios_horario` FOR EACH ROW BEGIN CALL t2_sync_marcar('usuarios_horario',CAST(NEW.`id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_usuarios_horario_u`$$
CREATE TRIGGER `t2_sync_usuarios_horario_u` AFTER UPDATE ON `usuarios_horario` FOR EACH ROW BEGIN CALL t2_sync_marcar('usuarios_horario',CAST(NEW.`id` AS CHAR)); IF NOT(OLD.`id` <=> NEW.`id`) THEN CALL t2_sync_marcar('usuarios_horario',CAST(OLD.`id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_usuarios_horario_d`$$
CREATE TRIGGER `t2_sync_usuarios_horario_d` AFTER DELETE ON `usuarios_horario` FOR EACH ROW BEGIN CALL t2_sync_marcar('usuarios_horario',CAST(OLD.`id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_promocoes_i`$$
CREATE TRIGGER `t2_sync_promocoes_i` AFTER INSERT ON `promocoes` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('promocao',CAST(NEW.`id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_promocoes_u`$$
CREATE TRIGGER `t2_sync_promocoes_u` AFTER UPDATE ON `promocoes` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('promocao',CAST(NEW.`id` AS CHAR)); IF NOT(OLD.`id` <=> NEW.`id`) THEN CALL t2_sync_marcar('promocao',CAST(OLD.`id` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_promocoes_d`$$
CREATE TRIGGER `t2_sync_promocoes_d` AFTER DELETE ON `promocoes` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('promocao',CAST(OLD.`id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_promocoes_produtos_i`$$
CREATE TRIGGER `t2_sync_promocoes_produtos_i` AFTER INSERT ON `promocoes_produtos` FOR EACH ROW BEGIN CALL t2_sync_marcar('promocao',CAST(NEW.`promocao_id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_promocoes_produtos_u`$$
CREATE TRIGGER `t2_sync_promocoes_produtos_u` AFTER UPDATE ON `promocoes_produtos` FOR EACH ROW BEGIN CALL t2_sync_marcar('promocao',CAST(NEW.`promocao_id` AS CHAR)); IF NOT(OLD.`promocao_id` <=> NEW.`promocao_id`) THEN CALL t2_sync_marcar('promocao',CAST(OLD.`promocao_id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_promocoes_produtos_d`$$
CREATE TRIGGER `t2_sync_promocoes_produtos_d` AFTER DELETE ON `promocoes_produtos` FOR EACH ROW BEGIN CALL t2_sync_marcar('promocao',CAST(OLD.`promocao_id` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_i`$$
CREATE TRIGGER `t2_sync_produtos_i` AFTER INSERT ON `produtos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`codigo` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_u`$$
CREATE TRIGGER `t2_sync_produtos_u` AFTER UPDATE ON `produtos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`codigo` AS CHAR)); IF NOT(OLD.`codigo` <=> NEW.`codigo`) THEN CALL t2_sync_marcar('produto',CAST(OLD.`codigo` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_d`$$
CREATE TRIGGER `t2_sync_produtos_d` AFTER DELETE ON `produtos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(OLD.`codigo` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_estoqueprodutos_i`$$
CREATE TRIGGER `t2_sync_estoqueprodutos_i` AFTER INSERT ON `estoqueprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_estoqueprodutos_u`$$
CREATE TRIGGER `t2_sync_estoqueprodutos_u` AFTER UPDATE ON `estoqueprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); IF NOT(OLD.`produto` <=> NEW.`produto`) THEN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_estoqueprodutos_d`$$
CREATE TRIGGER `t2_sync_estoqueprodutos_d` AFTER DELETE ON `estoqueprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_precoprodutos_i`$$
CREATE TRIGGER `t2_sync_precoprodutos_i` AFTER INSERT ON `precoprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_precoprodutos_u`$$
CREATE TRIGGER `t2_sync_precoprodutos_u` AFTER UPDATE ON `precoprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); IF NOT(OLD.`produto` <=> NEW.`produto`) THEN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_precoprodutos_d`$$
CREATE TRIGGER `t2_sync_precoprodutos_d` AFTER DELETE ON `precoprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_tributacaoprodutos_i`$$
CREATE TRIGGER `t2_sync_tributacaoprodutos_i` AFTER INSERT ON `tributacaoprodutos` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_tributacaoprodutos_u`$$
CREATE TRIGGER `t2_sync_tributacaoprodutos_u` AFTER UPDATE ON `tributacaoprodutos` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); IF NOT(OLD.`produto` <=> NEW.`produto`) THEN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_tributacaoprodutos_d`$$
CREATE TRIGGER `t2_sync_tributacaoprodutos_d` AFTER DELETE ON `tributacaoprodutos` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_barrasprodutos_i`$$
CREATE TRIGGER `t2_sync_barrasprodutos_i` AFTER INSERT ON `barrasprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_barrasprodutos_u`$$
CREATE TRIGGER `t2_sync_barrasprodutos_u` AFTER UPDATE ON `barrasprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); IF NOT(OLD.`produto` <=> NEW.`produto`) THEN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_barrasprodutos_d`$$
CREATE TRIGGER `t2_sync_barrasprodutos_d` AFTER DELETE ON `barrasprodutos` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_composicao_i`$$
CREATE TRIGGER `t2_sync_produtos_composicao_i` AFTER INSERT ON `produtos_composicao` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_composicao_u`$$
CREATE TRIGGER `t2_sync_produtos_composicao_u` AFTER UPDATE ON `produtos_composicao` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); IF NOT(OLD.`produto` <=> NEW.`produto`) THEN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_composicao_d`$$
CREATE TRIGGER `t2_sync_produtos_composicao_d` AFTER DELETE ON `produtos_composicao` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_icms_i`$$
CREATE TRIGGER `t2_sync_produtos_icms_i` AFTER INSERT ON `produtos_icms` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_icms_u`$$
CREATE TRIGGER `t2_sync_produtos_icms_u` AFTER UPDATE ON `produtos_icms` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(NEW.`produto` AS CHAR)); IF NOT(OLD.`produto` <=> NEW.`produto`) THEN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_produtos_icms_d`$$
CREATE TRIGGER `t2_sync_produtos_icms_d` AFTER DELETE ON `produtos_icms` FOR EACH ROW BEGIN CALL t2_sync_marcar('produto',CAST(OLD.`produto` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_movimentacao_i`$$
CREATE TRIGGER `t2_sync_movimentacao_i` AFTER INSERT ON `movimentacao` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_movimentacao_u`$$
CREATE TRIGGER `t2_sync_movimentacao_u` AFTER UPDATE ON `movimentacao` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); IF NOT(OLD.`documento` <=> NEW.`documento`) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_movimentacao_d`$$
CREATE TRIGGER `t2_sync_movimentacao_d` AFTER DELETE ON `movimentacao` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_itmovimentacao_i`$$
CREATE TRIGGER `t2_sync_itmovimentacao_i` AFTER INSERT ON `itmovimentacao` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_itmovimentacao_u`$$
CREATE TRIGGER `t2_sync_itmovimentacao_u` AFTER UPDATE ON `itmovimentacao` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); IF NOT(OLD.`documento` <=> NEW.`documento`) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_itmovimentacao_d`$$
CREATE TRIGGER `t2_sync_itmovimentacao_d` AFTER DELETE ON `itmovimentacao` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_recebimentomov_i`$$
CREATE TRIGGER `t2_sync_recebimentomov_i` AFTER INSERT ON `recebimentomov` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_recebimentomov_u`$$
CREATE TRIGGER `t2_sync_recebimentomov_u` AFTER UPDATE ON `recebimentomov` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); IF NOT(OLD.`documento` <=> NEW.`documento`) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_recebimentomov_d`$$
CREATE TRIGGER `t2_sync_recebimentomov_d` AFTER DELETE ON `recebimentomov` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_baixalancamento_i`$$
CREATE TRIGGER `t2_sync_baixalancamento_i` AFTER INSERT ON `baixalancamento` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_baixalancamento_u`$$
CREATE TRIGGER `t2_sync_baixalancamento_u` AFTER UPDATE ON `baixalancamento` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); IF NOT(OLD.`documento` <=> NEW.`documento`) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_baixalancamento_d`$$
CREATE TRIGGER `t2_sync_baixalancamento_d` AFTER DELETE ON `baixalancamento` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_lancamento_i`$$
CREATE TRIGGER `t2_sync_lancamento_i` AFTER INSERT ON `lancamento` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_lancamento_u`$$
CREATE TRIGGER `t2_sync_lancamento_u` AFTER UPDATE ON `lancamento` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); IF NOT(OLD.`documento` <=> NEW.`documento`) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_lancamento_d`$$
CREATE TRIGGER `t2_sync_lancamento_d` AFTER DELETE ON `lancamento` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_lancamento_baixalancamento_i`$$
CREATE TRIGGER `t2_sync_lancamento_baixalancamento_i` AFTER INSERT ON `lancamento_baixalancamento` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_lancamento_baixalancamento_u`$$
CREATE TRIGGER `t2_sync_lancamento_baixalancamento_u` AFTER UPDATE ON `lancamento_baixalancamento` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); IF NOT(OLD.`documento` <=> NEW.`documento`) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_lancamento_baixalancamento_d`$$
CREATE TRIGGER `t2_sync_lancamento_baixalancamento_d` AFTER DELETE ON `lancamento_baixalancamento` FOR EACH ROW BEGIN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_caixa_i`$$
CREATE TRIGGER `t2_sync_caixa_i` AFTER INSERT ON `caixa` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); CALL t2_sync_marcar('caixa',CAST(NEW.`ID` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_caixa_u`$$
CREATE TRIGGER `t2_sync_caixa_u` AFTER UPDATE ON `caixa` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('venda',CAST(NEW.`documento` AS CHAR)); IF NOT(OLD.`documento` <=> NEW.`documento`) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); END IF; CALL t2_sync_marcar('caixa',CAST(NEW.`ID` AS CHAR)); IF NOT(OLD.`ID` <=> NEW.`ID`) THEN CALL t2_sync_marcar('caixa',CAST(OLD.`ID` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_caixa_d`$$
CREATE TRIGGER `t2_sync_caixa_d` AFTER DELETE ON `caixa` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('venda',CAST(OLD.`documento` AS CHAR)); CALL t2_sync_marcar('caixa',CAST(OLD.`ID` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_abrecaixa_i`$$
CREATE TRIGGER `t2_sync_abrecaixa_i` AFTER INSERT ON `abrecaixa` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('abertura',CAST(NEW.`caixaid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_abrecaixa_u`$$
CREATE TRIGGER `t2_sync_abrecaixa_u` AFTER UPDATE ON `abrecaixa` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('abertura',CAST(NEW.`caixaid` AS CHAR)); IF NOT(OLD.`caixaid` <=> NEW.`caixaid`) THEN CALL t2_sync_marcar('abertura',CAST(OLD.`caixaid` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_abrecaixa_d`$$
CREATE TRIGGER `t2_sync_abrecaixa_d` AFTER DELETE ON `abrecaixa` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('abertura',CAST(OLD.`caixaid` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_nfe_i`$$
CREATE TRIGGER `t2_sync_nfe_i` AFTER INSERT ON `nfe` FOR EACH ROW BEGIN IF COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('nfce',CAST(NEW.`id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_nfe_u`$$
CREATE TRIGGER `t2_sync_nfe_u` AFTER UPDATE ON `nfe` FOR EACH ROW BEGIN IF (COALESCE(NEW.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) OR COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1)) THEN CALL t2_sync_marcar('nfce',CAST(NEW.`id` AS CHAR)); IF NOT(OLD.`id` <=> NEW.`id`) THEN CALL t2_sync_marcar('nfce',CAST(OLD.`id` AS CHAR)); END IF; END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_nfe_d`$$
CREATE TRIGGER `t2_sync_nfe_d` AFTER DELETE ON `nfe` FOR EACH ROW BEGIN IF COALESCE(OLD.`empresa`,0)=(SELECT empresa FROM t2_sync_config WHERE id=1) THEN CALL t2_sync_marcar('nfce',CAST(OLD.`id` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_produtonfe_i`$$
CREATE TRIGGER `t2_sync_produtonfe_i` AFTER INSERT ON `produtonfe` FOR EACH ROW BEGIN CALL t2_sync_marcar('nfce',CAST(NEW.`NFe` AS CHAR)); END$$
DROP TRIGGER IF EXISTS `t2_sync_produtonfe_u`$$
CREATE TRIGGER `t2_sync_produtonfe_u` AFTER UPDATE ON `produtonfe` FOR EACH ROW BEGIN CALL t2_sync_marcar('nfce',CAST(NEW.`NFe` AS CHAR)); IF NOT(OLD.`NFe` <=> NEW.`NFe`) THEN CALL t2_sync_marcar('nfce',CAST(OLD.`NFe` AS CHAR)); END IF; END$$
DROP TRIGGER IF EXISTS `t2_sync_produtonfe_d`$$
CREATE TRIGGER `t2_sync_produtonfe_d` AFTER DELETE ON `produtonfe` FOR EACH ROW BEGIN CALL t2_sync_marcar('nfce',CAST(OLD.`NFe` AS CHAR)); END$$
DELIMITER ;