MCP App Store
by KeenEthics
UPí — upCampo icon

UPí — upCampo

By upCampo

Get New App Alerts

Overview

A UPí leva o sistema upCampo de gestão agrícola para a conversa. Com a sua própria conta upCampo, você pergunta e registra sem abrir o portal, e só enxerga as fazendas e os assuntos que já tem liberados lá. Consulte: produção e produtividade por safra, cultura e talhão; chuva dos pluviômetros; monitoramento de pragas; ordens de serviço e custos; estoque de insumos, lotes e validade; frota, abastecimentos e manutenções; romaneios, fardos e contratos; contas a pagar e a receber, extrato e compras. Peça a resposta em PDF, no padrão dos relatórios upCampo. Registre: chuva, abastecimento, ordem de serviço e execução, entrada de nota, romaneios, manutenção de frota, requisição, cotação e pedido de compra, contas a pagar e a receber, baixas e transferências. Na implantação, cadastre safra, talhão (com o mapa), cultura, variedade, produtos, fornecedores, equipamentos e funcionários conversando. Todo registro é confirmado com você antes de gravar, segue as permissões das telas do portal e aparece no Log de acessos da fazenda. Nada é apagado: excluir apenas desativa. Dúvidas de uso do sistema são respondidas com os artigos da Central de Ajuda upCampo. Requer uma conta no sistema upCampo (upcampo.com.br).

Tools

alterar_alerta

ChatGPT
Muda um alerta do usuário: horário, dias, frequência, título ou instrução ("muda para segunda às 8h"); o que não for informado continua igual. Cada alerta tem um número (Alerta 1, Alerta 2…), o mesmo que vai no topo do envio: use em id_alerta o número que o usuário citou ("o alerta 3" → "3") ou o id de listar_alertas; na dúvida, liste antes. Só os alertas do próprio usuário. Se a resposta avisar outro alerta a até 30 min, repasse ao usuário. Regras (o upCampo recusa; avise antes de chamar): só alerta do próprio usuário e que não foi cancelado; frequência "unica" precisa de data_inicio; "semanal" precisa de dias_semana válidos e "mensal", de dia_mes (1 a 31); data_fim não pode ser antes de data_inicio; com a data e o horário novos o alerta tem de disparar ao menos uma vez; o usuário precisa ter WhatsApp no cadastro. GRAVA no upCampo: confirme com o usuário qual alerta e o que muda antes de chamar.

alterar_permissoes_usuario

ChatGPT
Libera ou tira telas de um usuário numa fazenda — o controle de acesso da tela Usuários e a tela "Usuários com acesso à IA" do portal. Cada tela vai com ver/incluir/editar/excluir; letra não informada fica como está, e para tirar mande a letra false. Para "libera a IA de lavoura para o João": a tela de IA com ver = true (consultar_usuarios visão telas com so_ia). Cada item é um usuário numa fazenda (id_usuario e id_fazenda de consultar_usuarios; sem id_fazenda, a fazenda desta chamada). O efeito na UPí (no WhatsApp e aqui) leva alguns segundos. Regras (o upCampo recusa; avise antes de chamar): o usuário tem de estar numa das suas empresas e já vinculado à fazenda (vincule com cadastrar_usuario, campo fazendas); telas de IA valem em qualquer fazenda do usuário, as outras só nas fazendas a que você também tem acesso (VOCE_TAMBEM_TEM em consultar_usuarios); cada tela precisa do ID_TELA e de ao menos uma letra, sem repetir na lista. GRAVA no upCampo. Diga ao usuário quem, em qual fazenda e o que muda, e confirme antes de chamar.

aplicar_perfil_usuario

ChatGPT
Troca as permissões de um usuário numa fazenda pelas de um perfil cadastrado, como o "Aplicar perfil" do portal. O nome do perfil vem de consultar_usuarios, visão perfis: liste antes. Cada item é um usuário numa fazenda (id_usuario e id_fazenda de consultar_usuarios; sem id_fazenda, a fazenda desta chamada). O efeito na UPí (no WhatsApp e aqui) leva alguns segundos. Regras (o upCampo recusa; avise antes de chamar): o usuário tem de estar numa das suas empresas e já vinculado à fazenda (vincule com cadastrar_usuario, campo fazendas); só nas fazendas a que você também tem acesso (VOCE_TAMBEM_TEM em consultar_usuarios); você não aplica isto a si mesmo; o perfil tem de existir (sem achar, ou com mais de um no trecho, o upCampo devolve a lista). GRAVA no upCampo. Diga ao usuário quem, em qual fazenda e o que muda, e confirme antes de chamar.

aprovar_pedido_compra

ChatGPT
Envia para aprovação, aprova, rejeita ou retira a aprovação de pedidos de compra, com a regra do portal: aprova quem tem a permissão de aprovação e está no departamento do pedido; acima do valor máximo do aprovador, o pedido vai para a segunda aprovação; rejeitar exige o motivo. O aprovador é o usuário desta conversa. Funciona como os botões da tela de pedido do portal. Use consultar_compras (visão pedidos) para achar o ID_PEDIDO e a situação da aprovação. Regras (o upCampo recusa; avise antes de chamar): só funciona em fazenda que usa aprovação de pedido (sem ela o pedido já nasce aprovado); pedido que não está mais em aberto não aceita nenhuma ação; ENVIAR só para pedido em digitação e com itens; APROVAR ou REJEITAR só para pedido aguardando aprovação (em digitação, envie antes; rejeitado, retire e envie de novo; já aprovado, não há o que aprovar); a segunda aprovação só pode ser feita por quem é segundo aprovador do departamento; RETIRAR não vale para pedido que já está em digitação nem para pedido com nota fiscal lançada; não repita o mesmo pedido na lista. GRAVA no upCampo. Confirme com o usuário o pedido e a ação antes de chamar.

buscar_ajuda

ChatGPT
Procura na Central de Ajuda da upCampo (suporte.upcampo.com.br) os artigos que explicam como usar o sistema: onde cada tela fica no menu, para que serve cada campo, como fazer um cadastro ou um processo, e as perguntas frequentes de cada tela. Use para dúvida de USO ("como cadastro um talhão", "onde lanço abastecimento", "por que o sistema não deixa finalizar a ordem"). Não traz dado da fazenda: para quanto, qual ou quantos nos dados do usuário, use as tools consultar_*. Devolve os artigos mais relevantes com um trecho; para ler um artigo inteiro, chame ler_artigo_ajuda com o slug.

cadastrar_bico

ChatGPT
Bicos de pulverização da empresa e a vazão de cada um por pressão (PSI × litros por minuto), que vale para a fazenda. Não desativa bico usado em tipo de atividade. Regras (o upCampo recusa; avise antes de chamar): cada vazão precisa de PSI e litros por minuto maiores que zero; a mesma pressão (PSI) não pode aparecer duas vezes no bico; o ângulo vai de 0 a 360 graus. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_centro_custo

ChatGPT
Centros de custo da empresa (ex.: "Lavoura", "Pecuária", "Administração"), opcionais no título e na transferência. Existentes: consultar_cadastros visão centros_custo. Regras (o upCampo recusa; avise antes de chamar): código repetido na empresa; o centro pai não pode ser o próprio centro nem um abaixo dele; centro usado em título, transferência, nota, pedido, requisição, ordem de manutenção, ou com centros abaixo dele, não se desativa: tire de uso com ativo = false. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_classe_praga

ChatGPT
Classes de praga da empresa (ex.: Lagartas, Percevejos, Fungos, Daninhas Folha Larga): toda praga tem uma. Quem traz praga da base (cadastrar_praga com id_praga_base) não precisa criar a classe antes: ela vem junto. Existentes: consultar_cadastros visão classes_praga. Regras (o upCampo recusa; avise antes de chamar): nome e tipo obrigatórios ao incluir; o tipo é Praga, Doença, Erva daninha ou Avaliação; não pode haver duas classes com o mesmo nome na empresa; classe com praga cadastrada não se desativa (mude a classe das pragas antes, ou tire de uso com ativo = false). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_classe_produto

ChatGPT
Classes de produto da empresa (Herbicida, Fungicida, Adubo, Semente, Peça…), com tipo, classe pai (hierarquia), abreviação (prefixo do código do produto na tela) e ativo. A base da upCampo (consultar_base_upcampo visão classes) serve para sugerir nomes; a classe é do cliente. Regras (o upCampo recusa; avise antes de chamar): classe com produto ativo não se desativa (troque a classe desses produtos antes), nem a que é pai de outra classe ativa; a classe pai é da empresa, não pode ser a própria classe nem formar ciclo; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_conta_bancaria

ChatGPT
Contas bancárias e caixas da fazenda, com o saldo inicial. O saldo inicial só se define enquanto a conta não tem movimento; depois disso o saldo muda pelos pagamentos, recebimentos e transferências. Conta na moeda principal da fazenda (outra moeda, pelo portal). A chave PIX da conta é cadastrada pelo portal upCampo. Contas existentes: consultar_cadastros visão contas_bancarias. Regras (o upCampo recusa; avise antes de chamar): a data do saldo inicial não pode ser futura; saldo inicial negativo é recusado em conta que não permite saldo negativo; conta com movimento (títulos, transferências ou extrato) não se desativa: tire de uso com ativa = false. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_contrato

ChatGPT
Contrato de venda ou de compra de grãos: com quem, quanto, a que preço, em qual silo e com quais tabelas de desconto. O upCampo converte como o portal: quantidade e preço por saca (60 kg) ou arroba (15 kg), conforme a cultura; valor total = kg × preço; líquido = total − frete − imposto. O produto e as tabelas de desconto vêm do parâmetro de colheita da safra × cultura, se não forem informados. O local tem que ser um silo (consultar_cadastros visão locais, SILO). Com algo embarcado, financeiro gerado ou contrato finalizado, quantidade, valores, entidade, produto e safra não mudam. Finalizar, reabrir, aditivo e financeiro: gerenciar_contrato. Transferência entre safras e dados de NF-e ficam pelo portal. Contratos existentes: consultar_pos_colheita (visão contratos, ID_CONTRATO). Regras (o upCampo recusa; avise antes de chamar): nesses casos a cultura também não muda; contrato finalizado só muda a observação (para mudar outra coisa, reabra antes); a quantidade nunca fica abaixo do que já foi embarcado; preço e quantidade maiores que zero, e preço, frete e imposto não podem ser negativos; frete mais imposto não pode passar do valor do contrato; a cultura tem que ser vendida em saca ou arroba (outra unidade é pelo portal); sem parâmetro de colheita na safra, informe o produto; o fim do período de entrega não pode ser antes do início; o número do contrato não se repete na fazenda; contrato com romaneio (de colheita ou de saída) ou com financeiro gerado não pode ser desativado. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_cultura

ChatGPT
Culturas da empresa, com tudo o que a tela Cultura tem: unidade de comercialização (o contrato usa), cor, fardos, os rótulos e o tipo padrão do MIP, a imagem e as abas ESTÁGIOS, SUBESTÁGIOS, CRESCIMENTO vegetativo ideal e PRAGAS da cultura. Prefira trazer da base da upCampo (id_cultura_base, de consultar_base_upcampo visão culturas): vem com estágios e unidade prontos. Existentes: consultar_cadastros visões culturas, estagios, subestagios e crescimento. Regras (o upCampo recusa; avise antes de chamar): a mesma cultura da base não entra duas vezes na empresa; cultura com variedade ou plantio não se desativa (tire de uso com ativa = false); estágio e subestágio pedem descrição e não repetem o nome na cultura; crescimento pede altura e (qtde de nós ou DAE); a imagem tem de ser de uma cultura da base; cor #RRGGBB; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_equipamento

ChatGPT
Máquinas, veículos e implementos da fazenda. Máquina nasce com horímetro e pronta para abastecimento e ordem de serviço; implemento (plantadeira, grade, pulverizador de arrasto) nasce sem medidor e fora do abastecimento. Placa repetida na fazenda é recusada. Dois equipamentos com o mesmo nome precisam de placa ou código diferentes. Tem tudo o que a tela Frota tem: tipo (Frota, Equipamento, Bem feitoria, Outros), centro de custo, dados do fabricante, documentação (UF, RNTRC, RENAVAM), motorista, terceiro, consumo médio, limite de horímetro (o abastecimento recusa diferença maior), onde aparece e a aba COMPONENTES. Existentes: consultar_cadastros visões equipamentos e equipamento_componentes. Regras (o upCampo recusa; avise antes de chamar): equipamento já usado em OS (também como implemento), manutenção, abastecimento, requisição ou nota não se desativa; o ano tem de estar entre 1900 e o ano que vem; leitura, capacidade, consumo, limite, largura, altura e potência não são negativos; classificação obrigatória quando a fazenda exige; UF com a sigla do estado; centro de custo que aceite lançamento direto; motorista é entidade marcada como motorista; entidade terceiro só com terceiro marcado; componente pede descrição; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_equipe

ChatGPT
Equipes da fazenda, com os funcionários e os equipamentos de cada uma. Na OS, a equipe executora traz os equipamentos dela como sugestão no aplicativo. Tem tudo o que a tela tem, inclusive o envio por WhatsApp: número, usuário responsável, contato (do tipo WhatsApp ou Grupo WhatsApp) e entidade, e para qual deles vai a OS, o checklist e o plano de manutenção. Existentes: consultar_cadastros visões equipes e equipe_funcionarios (usuários: visão usuarios; contatos: visão contatos). Regras (o upCampo recusa; avise antes de chamar): equipe que está em alguma ordem de serviço não pode ser desativada; o e-mail precisa de "@"; o número do WhatsApp tem de 8 a 15 dígitos; o usuário responsável tem de ter acesso à fazenda; o contato é desta fazenda e do tipo WhatsApp ou Grupo WhatsApp; o destino escolhido pede o campo dele preenchido (Número pede o número, Usuário o usuário…); o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_fornecedor

ChatGPT
Fornecedores e clientes da empresa — com quem a fazenda compra insumos e vende a produção. O campo documento é a identificação do fornecedor na empresa — um código ou número de cadastro combinado com ele —, e é por ele que o upCampo evita cadastrar o mesmo fornecedor duas vezes (documento repetido é recusado). É opcional. O documento fiscal é completado no portal upCampo. Telefone e e-mail são o contato comercial; cidade e UF, o endereço. Tem tudo o que a tela Entidade tem: inscrições, endereço (a cidade é procurada no cadastro de cidades pelo nome e UF; sem achar, fica em texto e volta um AVISO), site, os papéis (fornecedor, cliente, terceiro, terceiro de colheita, algodoeira, transportadora, motorista, agrônomo — serve para qualquer entidade, não só fornecedor), conta e centro de custo, e as abas ENDEREÇOS (adicionais) e CONTATOS (desta fazenda; o primeiro com WhatsApp é o contato do convite da cotação). Existentes: consultar_cadastros visões entidades, entidade_enderecos e contatos. Regras (o upCampo recusa; avise antes de chamar): documento e código repetidos na empresa são recusados; a conta tem de ser do plano de contas da empresa e ativa; entidade usada em pedido, nota, contrato, romaneio de saída ou plantio não se desativa (tire de uso com ativo = false); endereço adicional pede o endereço; contato pede nome e e-mail ou WhatsApp. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_funcionario

ChatGPT
Funcionários da fazenda — operadores, tratoristas, aplicadores —, que depois entram na execução de OS e no abastecimento, com tudo o que a tela tem: função, valor/hora, contato, centro de custo, moeda, configuração fiscal e onde aparecem (abastecimento, OS, requisição, OS de manutenção, checklist). Nome repetido na fazenda é recusado: é pelo nome que a UPí acha o funcionário. Equipes: cadastrar_equipe. Moedas e configurações fiscais: consultar_cadastros visões moedas e configuracoes_fiscais (sem informar, vale a primeira moeda e a configuração única, como na tela). Regras (o upCampo recusa; avise antes de chamar): funcionário que está em execução de OS não se desativa (tire de uso com ativo = false); o e-mail precisa ter "@"; o valor por hora não pode ser negativo; o centro de custo tem de aceitar lançamento direto; moeda e configuração fiscal têm de ser da fazenda; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_grupo_praga

ChatGPT
Grupos de praga da empresa (tela "Grupo de praga"): juntam pragas (ou um tamanho de cada) para o levantamento somar e classificar o grupo, com níveis de controle próprios por cultura. Pouco usado; só cadastre quando o cliente pedir. Existentes: consultar_cadastros visões grupos_praga e grupo_praga_itens (com o id_item de cada praga do grupo). Regras (o upCampo recusa; avise antes de chamar): nome obrigatório ao incluir e sem repetir na empresa; forma de cálculo da lista; cada praga do grupo tem de ser da empresa, o tamanho tem de ser dela e a mesma praga com o mesmo tamanho não entra duas vezes; o grupo adicional tem de ser outro grupo da empresa; nível de controle: cultura, nível, valor_de e valor_ate obrigatórios, valor_de menor que valor_ate, estádios juntos ou nenhum, da cultura, sem o inicial passar do final, e o mesmo nível na mesma cultura não se sobrepõe em estádio; na inclusão do grupo, pragas e níveis vão sem id. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_local_estoque

ChatGPT
Locais de estoque da fazenda (depósito, galpão, barracão, silo, posto de combustível), com tudo o que a tela tem: setor, controle de saldo e de data, e-mail quando o saldo ficar negativo, local de terceiro, posto de abastecimento (campo informado no abastecimento, produto, galão e a aba BOMBAS — posto sem bomba ganha a "Bomba 01"), onde o local aparece, setores, moeda, a aba USUÁRIOS e a aba ESTOQUE (localização, capacidade e estoque mínimo de cada produto que já tem estoque no local). ATENÇÃO à aba Usuários: usuário vinculado passa a enxergar SÓ os locais vinculados nesta fazenda — avise antes. Existentes: consultar_cadastros visões locais, local_bombas, local_usuarios e local_estoques (usuários da fazenda: visão usuarios). Regras (o upCampo recusa; avise antes de chamar): local com saldo de algum produto não se desativa (zere o estoque antes); silo e posto de abastecimento ao mesmo tempo, não; campo informado, produto, galão e bombas só em posto; local de terceiro pede a entidade (com a marca terceiro), local próprio não leva entidade; o setor tem de existir nos talhões; o e-mail precisa de "@"; a moeda é da fazenda e não muda em local que já tem estoque; bomba pede descrição e a leitura final só vale ao incluí-la; usuário tem de ter acesso à fazenda; estoque não se inclui por aqui (a linha nasce no primeiro lançamento), capacidade e mínimo não são negativos, e o ativo do estoque pede a permissão de ativar estoque; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_nivel_controle

ChatGPT
Níveis de controle de uma praga numa cultura (aba "Níveis de Controle" da tela Praga): de quanto a quanto a infestação é Baixa, Média ou Alta. É o que pinta o levantamento e o mapa: o valor medido entra no nível em que valor >= valor_de e < valor_ate, no tamanho e no estádio do talhão. Normalmente são três por cultura (Baixo, Médio, Alto), em faixas seguidas. Pode valer só para um tamanho da praga (consultar_cadastros visão praga_tamanhos) e só para alguns estádios. Nível de controle de GRUPO de praga é em cadastrar_grupo_praga. Existentes: consultar_cadastros visão niveis_controle. Regras (o upCampo recusa; avise antes de chamar): praga da fazenda, cultura, nível, valor_de e valor_ate obrigatórios; valor_de menor que valor_ate; o tamanho tem de ser da praga; estádio inicial e final juntos ou nenhum, da mesma cultura, e o inicial não passa do final; o mesmo nível (ex.: dois "Alto") da mesma praga, cultura e tamanho não pode se sobrepor em estádio, com o mesmo tipo de levantamento ou Ambos (sem estádio conta como o ciclo todo); a praga de um nível não muda. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_parametro_colheita

ChatGPT
Parâmetro de colheita da safra, um por cultura: o produto que entra no estoque com o romaneio (ex.: Soja em grão) e a tabela de desconto de cada classe. Sem ele, o romaneio da cultura naquela safra é recusado. No portal fica na tela Safra. "Desconta após umidade" faz as outras classes incidirem sobre o peso já sem a umidade. Classe "manual" deixa informar o desconto % direto no romaneio. Regras (o upCampo recusa; avise antes de chamar): cada tabela de desconto tem que ser do mesmo tipo da classe (tabela de umidade no campo de umidade) e estar ativa; se a safra já tem parâmetro para a cultura, altere o que existe em vez de incluir outro. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_plano_contas

ChatGPT
Contas do plano de contas da empresa (valem para todas as fazendas dela): é a "conta" de todo título a pagar ou a receber. Para começar, copie o modelo da upCampo (id_conta_base, de consultar_base_upcampo visão plano_contas), mandando a conta-mãe antes das filhas na mesma lista; depois ajuste os nomes com o cliente. Só conta com lancamento direto recebe título: Despesa para contas a pagar, Receita para contas a receber; Totalizador só agrupa. Contas existentes: consultar_cadastros visão plano_contas. Regras (o upCampo recusa; avise antes de chamar): código repetido na empresa; conta Totalizador não recebe lançamento direto; a conta-mãe não pode ser a própria conta nem uma abaixo dela; ao copiar do modelo, a conta-mãe precisa existir antes, ou vir antes na mesma lista; id_conta_base só na inclusão; conta com títulos ou com contas abaixo dela não se desativa: tire de uso com ativa = false; contas do plano de DRE só pelo portal. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_plano_equipamento

ChatGPT
Aplica um plano de manutenção a um equipamento, com a recorrência: por horímetro/km (a cada N horas ou km) ou por tempo (semanal, mensal, anual). A ordem preventiva é gerada sozinha no abastecimento, quando o plano vence (última ocorrência + recorrência − antecipar); finalizar a ordem rearma o plano. Planos já aplicados e quando vencem: consultar_frota visão planos (ID_EQUXPLAMAN). Regras (o upCampo recusa; avise antes de chamar): plano inativo não se aplica (reative antes); o mesmo plano não se aplica duas vezes ao mesmo equipamento (para mudar, altere o que já existe); a recorrência tem que ser maior que zero; antecipar não pode ser negativo nem maior que a recorrência; por KM ou horímetro, informe o horímetro/km da última vez que foi feito (maior que zero); por semana, mês ou ano, informe a data da última vez, que não pode ser futura. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_plano_manutencao

ChatGPT
Planos de manutenção da empresa (ex.: "Revisão 250 horas", "Troca de óleo do motor") com os itens a verificar. O plano sozinho não gera nada: aplique-o ao equipamento com cadastrar_plano_equipamento, que define a recorrência. Não desativa plano aplicado a equipamento ativo. Regras (o upCampo recusa; avise antes de chamar): não pode haver dois planos com o mesmo nome ou o mesmo código na empresa; plano aplicado a equipamento ativo não pode ser desativado nem inativado (desative-o nos equipamentos antes); a quantidade dos itens não pode ser negativa. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_plantio

ChatGPT
O que está plantado em cada talhão na safra, com tudo o que a tela Plantio da safra tem: datas de plantio, emergência e colheita, áreas, espaçamento, velocidade e tipo de plantio, colheita (finalizada, média, total), previsto/orçamento, dashboards, terceiro proprietário, local de estoque padrão e, com mais de uma variedade no talhão, a lista VARIEDADES (com as marcas separar_* de em que lançamentos cada variedade aparece separada) e a aba OUTROS. Na cultura perene, as plantas por metro, por hectare e o total são calculados do espaçamento, como na tela. Para trocar safra, talhão ou cultura, desative e inclua de novo. Existentes: consultar_cadastros visões plantios, plantio_variedades e plantio_outros. Regras (o upCampo recusa; avise antes de chamar): a safra tem de estar ativa, sem bloqueio de plantio e não ser de planejamento; um plantio por talhão na safra, a menos que se mande permitir_mesmo_talhao; a área tem de ser maior que zero (sem ela vale a do talhão); a soma das variedades não passa a área do plantio, nem uma variedade sozinha; variedade da mesma cultura e da fazenda; com a lista variedades, id_variedade fica vazio; data de emergência só em cultura anual e espaçamento da planta só em perene; valores não negativos e desconto de recebimento até 100%; plantio em ordem de serviço ativa não se desativa; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_pluviometro

ChatGPT
Pluviômetros da fazenda e os talhões que cada um cobre, com tudo o que a tela tem: setor, ativo, localização, tipo (manual ou estação) e, na estação, o link da API e o que ela mede. A chave e o segredo de acesso da estação são cadastrados pelo portal upCampo, não por aqui. Talhão em dois pluviômetros é aceito, mas volta um AVISO: ao lançar chuva nele, será preciso escolher o pluviômetro. Existentes: consultar_cadastros visão pluviometros. Regras (o upCampo recusa; avise antes de chamar): link e temperatura/umidade/vento só em pluviômetro de estação (tipo diferente de Manual); talhões da fazenda; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_praga

ChatGPT
Pragas, doenças, plantas daninhas e avaliações que a fazenda monitora, com o que a tela Praga mantém: tamanhos (os campos que o app pede em cada ponto, ex.: "Lagarta pequena", "Lagarta grande"), níveis pré-definidos (opções de escolha, da praga ou de um tamanho) e as culturas em que a praga aparece. PREFIRA TRAZER DA BASE: id_praga_base (consultar_base_upcampo visão pragas) traz classe, tamanhos, níveis, fórmulas e as culturas da base que a empresa tem; depois ajuste com o id. Criada do zero, a praga pede classe e praga padrão (consultar_base_upcampo visão pragas_padrao: a referência que liga a imagem). Tamanho com forma de cálculo Fórmula: escreva com os NOMES dos tamanhos da praga entre colchetes e [PONTOS] para a quantidade de pontos, ex.: "([Vivos] 100) / ([Vivos] + [Mortos])". O nível de controle (Baixo/Médio/Alto) é outra tool: cadastrar_nivel_controle. Existentes: consultar_cadastros visões pragas, praga_tamanhos e praga_niveis. Regras (o upCampo recusa; avise antes de chamar): ao incluir sem a base, nome, classe e praga padrão são obrigatórios; id_praga_base só na inclusão, e sem tamanhos nem níveis no mesmo item (traga e ajuste depois); não pode haver duas pragas com o mesmo nome na fazenda (nem trazer da base a mesma duas vezes), dois tamanhos com o mesmo nome na praga, nem dois níveis com o mesmo nome no mesmo tamanho; a praga padrão tem de ser da lista de referência; a classe e as culturas têm de ser da empresa; fórmula só com nomes de tamanho desta praga entre colchetes, [PONTOS], números e + - / ( ), sem o próprio tamanho e com ao menos um tamanho; forma de cálculo Fórmula pede a fórmula; abreviação até 10 letras; praga, tamanho ou nível já usado em levantamento não se desativa (tire de uso com ativa/ativo = false); praga em grupo de praga ativo não se desativa (tire do grupo antes); tamanho usado na fórmula de outro não se desativa. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_produto

ChatGPT
Produtos da empresa (defensivo, adubo, semente, combustível, peça), com tudo o que a tela Produto tem: unidade, classe, marca, doses, valor, referências, marcações (exigir lote, organofosforado, item móvel…), as informações de defensivo (registro MAPA, formulação, carência, grupo de resistência, modo de ação, classes toxicológica e ambiental) e as abas PRINCÍPIOS ATIVOS, DOSE × FAZENDA × CULTURA, NCMs & REFERÊNCIAS e LOTES (com validade). Use a base da upCampo (consultar_base_upcampo visões produtos, unidades, principios_ativos, tipos_formulacao, grupos_resistencia) para sugerir, mas cadastre com o que o cliente confirmar: o produto é dele. Existentes: consultar_cadastros visões produtos, produto_principios_ativos, produto_doses, produto_ncms e produto_lotes. Estoque mínimo e localização são do local (cadastrar_local_estoque). Regras (o upCampo recusa; avise antes de chamar): a unidade tem de existir no upCampo (se recusar, a resposta lista as válidas); classe obrigatória quando a fazenda exige; produto com saldo não se desativa nem fica inativo; código e nome repetidos na empresa são recusados; dose mínima não passa a máxima e valores não são negativos; classe toxicológica e ambiental só com os valores da tela; princípio ativo pede o id ou a descrição e não repete no produto; dose pede fazenda e cultura, uma por fazenda × cultura; NCM pede o NCM ou o código de referência; lote pede código (único na fazenda para o produto) e validade, e lote com saldo ou uso não se desativa; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_safra

ChatGPT
Safras da empresa (valem para todas as fazendas dela), com tudo o que a tela Safra tem: início e fim (obrigatórios: é por eles que a UPí sabe a safra corrente), bloqueios de lançamento, esconder no login, valor do dólar, ID de referência e as ESTUFAS (aba "Casa de vegetação/Estufas": plantio de variedade sem talhão). Existentes: consultar_cadastros visões safras e estufas. Regras (o upCampo recusa; avise antes de chamar): a data de fim não pode ser anterior à de início; safra com plantio não se desativa (desative os plantios, ou tire de uso com ativa = false); estufa pede a variedade, da fazenda; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_subtipo

ChatGPT
Subtipos do tipo de atividade (a "Identificação Resumida (Subtipo)" da ordem de serviço): a subdivisão que o cliente usa — "1ª aplicação de fungicida", "Dessecação pré-plantio"… — e em quais tipos de atividade cada um vale. Na OS, um tipo de atividade com subtipo vinculado mostra SÓ os seus; sem nenhum, mostra todos. Vincular o primeiro subtipo a um tipo restringe a lista dele (vem um AVISO). Subtipo já usado em OS não pode ser renomeado: a OS guarda o nome. Regras (o upCampo recusa; avise antes de chamar): subtipo usado em ordem de serviço, programação ou tratamento não pode ser desativado; subtipo que já aparece em programação também não pode ser renomeado, como na OS (cadastre um novo); o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_tabela_desconto

ChatGPT
Tabelas de desconto da classificação de grãos (umidade, impureza…), com as faixas: a partir de tal % medida, desconta tal %. Vale para a empresa. É o que o parâmetro de colheita da safra aponta e o que o romaneio usa para calcular o desconto. Os valores são do produtor ou do armazém — a empresa padrão não tem tabela para copiar. Não desativa tabela usada em parâmetro de colheita ativo. Regras (o upCampo recusa; avise antes de chamar): classificação e desconto de cada faixa vão de 0 a 100; a mesma classificação não pode aparecer em duas faixas; tabela usada em parâmetro de colheita ativo não pode ser marcada como inativa nem trocar de tipo. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_talhao

ChatGPT
Talhões da fazenda, com tudo o que a tela Talhão tem: área, setor, MAPA DO TALHÃO (o contorno), largura, comprimento, áreas terrestre/aérea/bordadura/exclusão, quantidade, agrupador, centro (latitude/longitude) e as abas CAMADAS e INTEGRAÇÃO (John Deere, Solinftec). Com mapa, a área pode ficar de fora: vale a do mapa. Se o usuário mandar KML ou GeoJSON, leia os pontos de cada talhão; nesses formatos cada ponto vem como longitude,latitude — inverta para [latitude, longitude]. Existentes: consultar_cadastros visões talhoes, talhao_camadas e talhao_integracoes. Regras (o upCampo recusa; avise antes de chamar): a área tem de ser maior que zero; o mapa precisa de pelo menos 3 pontos diferentes; medidas e áreas não podem ser negativas; latitude e longitude juntas; talhão com plantio em andamento não se desativa (tire de uso com ativo = false); código repetido na fazenda é recusado; camada e integração pedem descrição; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_tipo_atividade

ChatGPT
Tipos de atividade da fazenda (plantio, colheita, aplicação…) — sem eles não se lança ordem de serviço. Cada um nasce de um MODELO da base da upCampo (consultar_base_upcampo visão tipos_atividade), que traz o comportamento pronto; depois, tudo o que a tela tem se ajusta: categoria e natureza, exigências da execução, tipo de cultura, bloqueio para levantamento (só aplicação), hora, dashboard, relatório padrão, modelo de checklist, as VAZÕES terrestre e aérea (até 3 situações cada, só aplicação) e a aba OPERAÇÃO. Existentes: consultar_cadastros visões tipos_atividade, tipo_atividade_vazoes e tipo_atividade_operacoes (operações da fazenda: visão operacoes; checklists: modelos_checklist; relatórios: relatorios). Regras (o upCampo recusa; avise antes de chamar): o modelo só vale na inclusão; modelo da base sem categoria é recusado; a categoria é da base da upCampo e trocá-la copia dela a natureza; bloqueio para levantamento só em aplicação (0, 12, 18, 24, 28, 32, 36, 40, 44 ou 48 horas); vazões só em aplicação, situação 1 a 3, bico ativo da empresa; operação obrigatória em cada linha da aba, da fazenda, e o equipamento da fazenda; relatório da empresa e checklist da fazenda; hora 0–23 e minuto 0–59; tipo usado em ordem de serviço ou programação ativa não se desativa; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_tipo_equipamento

ChatGPT
Tipos de equipamento da empresa (Trator, Colhedora, Pulverizador, Caminhão…), com tudo o que a tela tem: capacidade do tanque de aplicação, vazão, ativo e em quais naturezas de OS e dashboards o tipo aparece. A base da upCampo (consultar_base_upcampo visão tipos_equipamento) sugere os nomes. Com abreviação, o código dos equipamentos do tipo passa a ser abreviação + número (ex.: TR0001). Regras (o upCampo recusa; avise antes de chamar): tipo usado em equipamento ou ordem de serviço ativa não se desativa nem fica inativo; capacidade e vazão não são negativas. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_tipo_padrao_praga

ChatGPT
Tipo padrão de levantamento de uma praga numa cultura (aba "Tipo Padrão" da tela Praga): em que estádios ela se conta por planta ou por metro. Pouco usado; só cadastre quando o cliente pedir. Existentes: consultar_cadastros visão tipos_padrao_praga. Regras (o upCampo recusa; avise antes de chamar): praga da fazenda, cultura e tipo de levantamento obrigatórios; estádio inicial e final juntos ou nenhum, da mesma cultura, e o inicial não passa do final; dois tipos padrão da mesma praga e cultura não podem se sobrepor em estádio, com o mesmo tipo ou Ambos (sem estádio conta como o ciclo todo); a praga não muda. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_usuario

ChatGPT
Usuários do upCampo (a tela Arquivo > Usuários do portal): nome, e-mail, login, WhatsApp e as fazendas a que a pessoa tem acesso. O que ela pode fazer em cada fazenda (telas, permissões de IA, acesso total, perfil, copiar de outro usuário) se muda com alterar_permissoes_usuario, liberar_acesso_total_usuario, aplicar_perfil_usuario, copiar_acessos_usuario e remover_acessos_usuario; os usuários e os ids estão em consultar_usuarios. Incluir vincula o usuário à fazenda desta chamada (e às de fazendas) SEM nenhuma permissão: depois libere o acesso. Com id, fazendas vincula um usuário que já existe a mais fazendas desta empresa. Desativar (desativar) é o botão Desativar do portal: a pessoa deixa de entrar no upCampo em todas as empresas; ativo: true reativa. SENHA: esta tool não recebe senha — nunca peça nem aceite senha na conversa. O usuário novo nasce com a senha inicial 123 e a opção "Altera senha no login": o primeiro acesso é pelo portal upCampo (portal.upcampo.com.br), que obriga a pessoa a criar a senha dela ao entrar. Diga isso ao administrador, para ele passar à pessoa, e recomende trocar antes de usar o aplicativo (o aplicativo ainda não obriga a troca). Tirar alguém de uma fazenda e a imagem da assinatura também ficam pelo portal. O WhatsApp é por onde a UPí do WhatsApp reconhece a pessoa. Regras (o upCampo recusa; avise antes de chamar): nome obrigatório na inclusão; e-mail ou login obrigatório; login sem "@"; e-mail e login não podem ser de outro usuário; WhatsApp só com números, DDI e DDD (10 a 15 dígitos) e não pode ser de outro usuário ativo; as fazendas têm de ser desta empresa e você precisa ter acesso a elas; você não desativa o seu próprio usuário; o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cadastrar_variedade

ChatGPT
Variedades (cultivares) da fazenda, com tudo o que a tela Variedade tem: ciclo, florescimento, tecnologia, cor, pesos estimados de colheita, dados de plantio (peneira, PMS, germinação, plantas e sementes por metro, kg/ha), observação e o crescimento vegetativo ideal. Existentes: consultar_cadastros visão variedades. Regras (o upCampo recusa; avise antes de chamar): a cultura tem de ser da empresa; variedade já plantada não troca de cultura; variedade em plantio ativo não se desativa (tire de uso com ativa = false); valores não podem ser negativos e a germinação vai até 100%; tecnologia só Convencional ou Transgênico (IPRO, RR, Bt vão no nome ou na observação); o nome não repete dentro da mesma cultura; crescimento pede altura e (qtde de nós ou DAE); o ID de referência é obrigatório quando a fazenda exige (configuração do portal). Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

cancelar_alerta

ChatGPT
Cancela um alerta do usuário ("cancela o de sexta"): ele deixa de existir para o usuário e não volta. Para só suspender, use pausar_alerta. Cada alerta tem um número (Alerta 1, Alerta 2…), o mesmo que vai no topo do envio: use em id_alerta o número que o usuário citou ("o alerta 3" → "3") ou o id de listar_alertas; na dúvida, liste antes. Só os alertas do próprio usuário. Regras (o upCampo recusa; avise antes de chamar): só alerta do próprio usuário e que ainda não foi cancelado. GRAVA no upCampo: confirme com o usuário qual alerta e o que muda antes de chamar.

consultar_base_upcampo

ChatGPT
Consulta a base de ajuda da upCampo, para cadastrar: culturas com estágios, modelos de tipo de atividade, o plano de contas e as pragas (que se trazem para a empresa pelo id), a lista de referência da praga padrão, e classes, produtos, tipos de equipamento, classes de praga e unidades (que só servem para sugerir — o cadastro do cliente é dele). - culturas: Culturas da base, com quantos estágios fenológicos trazem. ID_CULTURA_BASE vai em cadastrar_cultura. - tipos_atividade: Modelos de tipo de atividade: ID_MODELO vai em cadastrar_tipo_atividade. NATUREZA diz o que o tipo faz no sistema (plantio, colheita, aplicação…). Escolha o modelo pela natureza e pelo nome; o cliente dá o nome dele. - classes: Classes de produto da base, para sugerir nome e tipo. - produtos: Produtos da base, para sugerir unidade, classe e grafia. Exige busca: são mais de mil. Não copie: cadastre com o que o cliente confirmar. - tipos_equipamento: Tipos de equipamento da base (Trator, Colhedora, Pulverizador…), para sugerir o nome. - plano_contas: Modelo de plano de contas da upCampo: ID_CONTA_BASE vai em cadastrar_plano_contas, na ordem do CODIGO (a conta-mãe antes das filhas). CONTA_MAE diz em que grupo cada uma fica. - pragas: Pragas, doenças e daninhas da base da upCampo: ID_PRAGA_BASE vai em cadastrar_praga e traz a praga com classe, tamanhos, níveis e as culturas (CULTURAS_NA_BASE) que a empresa tiver. - pragas_padrao: Lista de referência da praga padrão (a que liga a praga à imagem): ID_PRAGA_PADRAO vai em cadastrar_praga quando a praga é criada do zero. Escolha a de mesmo nome ou a mais parecida. - classes_praga: Classes de praga da base, para sugerir nome e tipo em cadastrar_classe_praga. - principios_ativos: Princípios ativos da base da upCampo: ID_PRINCIPIO_ATIVO vai na lista principios_ativos do cadastrar_produto (vale também o da própria empresa, em consultar_cadastros visão principios_ativos). - tipos_formulacao: Tipos de formulação da base da upCampo (valem quando a empresa não tem nenhum próprio): ID_TIPO_FORMULACAO vai em cadastrar_produto. - grupos_resistencia: Grupos de princípio ativo (resistência) da base da upCampo: ID_GRUPO_RESISTENCIA vai em cadastrar_produto (vale também o da própria empresa, em consultar_cadastros visão grupos_resistencia). - unidades: Unidades aceitas no cadastro de produto: use o CODIGO.

consultar_cadastros

ChatGPT
Os cadastros da fazenda — safras, culturas, variedades, talhões, plantio, tipos de atividade, pluviômetros, locais de estoque, classes, produtos, fornecedores, pragas e o resto que as tools cadastrar_ mantêm —, com os ids que as tools cadastrar_ pedem para alterar e para ligar um cadastro ao outro. A visão andamento mostra o que a fazenda já tem: é por ela que se começa uma implantação. O filtro documento (só na visão entidades) recebe a identificação do fornecedor na empresa (código ou número de cadastro), para achá-lo sem depender da grafia do nome. As visões contatos e usuarios existem para completar outros cadastros, não para listar pessoas: contatos traz o e-mail e o WhatsApp comercial dos fornecedores (o contato do convite de cotação) e o contato que recebe as ordens de serviço da equipe; usuarios traz só o nome de quem já usa o upCampo nesta fazenda, para escolher o responsável de uma equipe ou de um local de estoque. Use-as só quando a tarefa pedir esse id. Visões disponíveis (parâmetro "visao"): - andamento: Uma linha com a contagem de cada cadastro da fazenda. Ordem da implantação: safra → cultura → variedade → talhão (e o mapa do talhão) → plantio → tipo de atividade → subtipo → pluviômetro → local de estoque → classe → produto → fornecedor → tipo de equipamento → equipamento → funcionário → equipe → bico → estoque inicial (lancar_entrada_nota, Entrada avulsa). Para a colheita: tabelas de desconto → parâmetro de colheita da safra. Por último, as pragas: da base (cadastrar_praga com id_praga_base) e os níveis de controle. O próximo passo é o primeiro que estiver zerado. Filtros: nenhum. - safras: Safras da empresa, com tudo o que a tela tem: período, bloqueios, esconder no login, dólar, ID de referência, quantos talhões plantados e quantas estufas. Filtros: nome. - culturas: Culturas da empresa, com tudo o que a tela tem (unidade, cor, fardos, rótulos e tipo padrão do MIP). DA_BASE_UPCAMPO: veio da base da upCampo, com estágios. Filtros: nome. - variedades: Variedades da fazenda, com a cultura e tudo o que a tela tem (ciclo, florescimento, tecnologia, pesos estimados, dados de plantio, observação). Filtros: nome, cultura. - talhoes: Talhões da fazenda, com área (ha), setor, quantos plantios em andamento e se já têm MAPA DO TALHÃO (TEM_MAPA; CENTRO_LATITUDE/CENTRO_LONGITUDE é o ponto do talhão), medidas, áreas terrestre/aérea/bordadura/exclusão e quantas camadas e integrações tem. Filtros: nome, setor. - plantios: O que está plantado em cada talhão, por safra: cultura, variedade, área e data. VARIAS_VARIEDADES: o talhão tem mais de uma variedade (visão plantio_variedades). Traz também emergência, colheita, espaçamento, plantas por metro/hectare, previsto e as marcas separar_*. Filtros: safra, nome, cultura, aceita período. - tipos_atividade: Tipos de atividade da fazenda, com a categoria, a natureza (plantio, colheita, aplicação…), o que a execução da OS exige e tudo o que a tela tem (bloqueio para levantamento, hora, relatório, checklist, dashboard). Filtros: nome, natureza. - pluviometros: Pluviômetros da fazenda, um por linha, com os talhões que cada um cobre, tipo (manual ou estação) e o que a estação mede. TEM_CREDENCIAL: a chave e o segredo estão gravados (não aparecem). Filtros: nome. - locais: Locais de estoque da fazenda, com tudo o que a tela tem: silo, posto de abastecimento (campo informado, produto, galão), controle de saldo e de data, e-mail de saldo negativo, terceiro, onde aparece, setores, moeda, quantos produtos têm saldo, bombas e usuários vinculados. Filtros: nome. - classes: Classes de produto da empresa, com tipo, classe pai, abreviação, ativo e quantos produtos cada uma tem. Filtros: nome. - produtos: Produtos da empresa, com tudo o que a tela tem: unidade, classe, doses, valor, exigir lote, organofosforado, registro MAPA, formulação, carência, grupo de resistência, classes toxicológica e ambiental, referências e quantos lotes a fazenda tem. Filtros: nome, classe. Lista no máximo 100 linhas por chamada. - entidades: Fornecedores, clientes e demais entidades da empresa. DOCUMENTO é a iden…

consultar_chuva

ChatGPT
Chuva registrada nos pluviômetros, por coleta, por talhão ou consolidada na safra, e o cadastro dos pluviômetros com os talhões que cada um cobre. Visões disponíveis (parâmetro "visao"): - coletas: Cada coleta de pluviômetro, uma linha por registro. Filtros: pluviometro, talhao, setor, aceita período. - resumo_talhao: Chuva por talhão e por dia, já consolidando os pluviômetros que cobrem o talhão. Filtros: talhao, setor, aceita período. - resumo_safra: Chuva acumulada na safra, por talhão: total, média e máximo diário. Filtros: safra, talhao, setor. - pluviometros: Cadastro dos pluviômetros, UM POR LINHA: total_disponivel é o número de pluviômetros. TALHOES lista os talhões cobertos e QTDE_TALHOES os conta; sem talhão (QTDE_TALHOES 0), o pluviômetro é geral da fazenda. O filtro talhao acha os pluviômetros que cobrem aquele talhão. Use ID_PLUVIOMETRO para lancar_chuva. Filtros: pluviometro, talhao, setor. - pluviometros_talhoes: Pluviômetro × talhão: UMA LINHA POR TALHÃO COBERTO, com ID_QUADRA — não serve para contar pluviômetros (use a visão pluviometros). Para saber que pluviômetro cobre um talhão e se o talhão está em mais de um (aí pergunte em qual lançar). ID_QUADRA vazio: pluviômetro geral da fazenda. Filtros: pluviometro, talhao, setor. Quando "visao" não é informada, usa "resumo_talhao". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta. Relatório em PDF (formato "pdf") nas visões: coletas. O servidor gera o relatório no padrão upCampo — logo, fazenda, período, filtros, subtotais e total — e devolve um link que vale 1 hora. Use quando o usuário pedir PDF, relatório, algo para imprimir ou para enviar. Com "agrupar_por" o PDF sai somado; com "quebrar_por" sai item a item com subtotal por grupo. Os filtros e o período são os mesmos da consulta. Entregue o link ao usuário; as linhas não vêm na resposta, então não invente números a partir dela.

consultar_compras

ChatGPT
Requisições, cotações, coletas de preço e pedidos de compra. Somente consulta: não aprova, não cria nem altera pedido. Cadeia: ORDEM DE MANUTENÇÃO > REQUISIÇÃO (a demanda) > COTAÇÃO (agrupa itens para pesquisar preço) > COLETA DE PREÇO (a resposta de um fornecedor para um item) > PEDIDO (a compra fechada). Um item pode ir da requisição direto ao pedido, sem cotação. Atraso: nunca compare datas. SITUACAO_ENTREGA do pedido já vem pronta ("Recebido", "Atrasado", "Pendente") e DIAS_ATRASO já vem calculado. "Pedidos atrasados": situacao_entrega ["Atrasado"]; "o que falta chegar": ["Atrasado", "Pendente"]. Aprovação é outra coisa e não entra na conta de atraso. Departamento: é o campo "Departamento" das telas de pedido e de requisição. "Pedidos do departamento X": visão pedidos, filtro departamento. Nos pedidos a coluna é DEPARTAMENTO; nas requisições o mesmo dado sai na coluna GRUPO_MANUTENCAO. Quantidades: QUANTIDADE_PENDENTE (requisição) e QUANTIDADE_RESTANTE (pedido) já vêm prontas — nunca subtraia colunas. QUANTIDADE_NOTA_FISCAL é a mesma coisa que a recebida: não some as duas. Item de requisição do tipo "Saída de estoque" não gera compra, sai direto do estoque. Não conte esses itens quando a pergunta for sobre compra, cotação ou pedido. Nome de fornecedor ou produto: filtre por trecho; se vierem nomes diferentes, pergunte qual e siga pelo identificador (id_fornecedor, id_pedido, id_cotacao, id_requisicao). Volume: para a fazenda inteira use "agrupar_por" em vez de listar requisição ou pedido um a um. "Quantas coletas teve o pedido" se responde com QTDE_COLETAS_PRECO da visão pedidos. Visões disponíveis (parâmetro "visao"): - pedidos: Uma linha por pedido de compra: fornecedor, departamento, valores, aprovação, recebimento e atraso já resolvidos. Período pela data do pedido. Filtros: situacao_entrega (lista de valores exatos), status (lista de valores exatos), status_aprovacao (lista de valores exatos), departamento, fornecedor, id_fornecedor (valor exato), setor, centro_custo, safra, codigo_pedido, id_pedido (valor exato), codigo_cotacao, id_cotacao (valor exato), aceita período. Agrupa por: departamento, fornecedor, situacao_entrega, status, setor, centro_custo, safra. - itens_pedido: Uma linha por item de pedido: quantidade pedida, recebida e restante, valor e se a compra foi feita pelo menor preço coletado (COMPROU_MENOR_PRECO). Não aceita período — filtre pelo pedido. Filtros: id_pedido (valor exato), codigo_pedido, status (lista de valores exatos), fornecedor, produto, id_cotacao (valor exato), comprou_menor_preco. Agrupa por: fornecedor, produto, status. - requisicoes: Uma linha por item de requisição: quem pediu, para qual ordem de manutenção e equipamento, e o que ainda falta atender (QUANTIDADE_PENDENTE). "O que a ordem X ainda espera": id_ordem_manutencao e pendente true. Período pela data da requisição. Filtros: status (lista de valores exatos), situacao_item (lista de valores exatos), tipo_item (lista de valores exatos), prioridade (valor exato), pendente, departamento, produto, equipamento, solicitante, centro_custo, codigo_requisicao, id_requisicao (valor exato), id_ordem_manutencao (valor exato), aceita período. Agrupa por: departamento, status, situacao_item, tipo_item, equipamento, produto, solicitante, centro_custo. - cotacoes: Uma linha por item de cotação, com o resumo das coletas: quantas houve, quantas foram respondidas, menor, maior e médio preço e o fornecedor mais barato. Período pela data da cotação. Filtros: status (lista de valores exatos), produto, codigo_cotacao, id_cotacao (valor exato), aceita período. - coletas: Uma linha por coleta de preço (item da cotação x fornecedor): preço, desconto, prazo, se respondeu, em quantos dias e se foi a escolhida. Cresce rápido: para ver os preços de uma cotação, filtre id_cotacao; para comparar fornecedores, use agrupar_por fornecedor. Período pela data de envio ao fornecedor. Filtros: status (lista de valores exatos), fornecedor, id_fornecedor (valor exato), produto, codigo_cotacao, id_cotacao (valor exato), respondida, escolhida, aceita período. Agrupa…

consultar_custos

ChatGPT
Custo dos insumos aplicados, rateado por talhão ou consolidado por classe de produto. Visões disponíveis (parâmetro "visao"): - total_talhao: Custo total e custo por hectare de cada talhão na safra. Filtros: safra, talhao, setor, cultura. - por_classe: Custo por classe de produto em cada talhão. Filtros: safra, talhao, setor, classe_produto. - por_ordem: Custo rateado por ordem de serviço e talhão, produto a produto. Filtros: safra, talhao, produto, classe_produto, codigo_os (valor exato), aceita período. Quando "visao" não é informada, usa "total_talhao". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta.

consultar_estoque

ChatGPT
Saldo atual de produtos por local de estoque, lotes com validade e movimentação. Para o documento que originou a entrada (romaneio, contrato), use a consulta de pós-colheita. Para totais e contagens use "agrupar_por": o banco soma e conta. A listagem traz no máximo 30 linhas e serve para ver produtos ou lotes específicos — nunca liste para contar ou somar. Ex.: saldo por classe = visão saldo com agrupar_por ["classe_produto"]; lotes vencidos e vencendo = visão lotes com agrupar_por ["status_validade"]. Pergunta por grupo ("defensivos", "adubos", "sementes") NÃO se resolve com classe_produto: não há classe com esse nome. Agrupe o saldo por classe_produto (e local_estoque, se a fazenda tiver um local para o grupo — veja a visão locais) e escolha as classes que pertencem ao grupo. Produto com CLASSE_PRODUTO "Sem classe no cadastro" faz parte da resposta: mostre-o num grupo com esse nome, nunca o omita e nunca atribua a ele uma classe. Quantidade (SALDO_, QUANTIDADE) só vem somada quando o grupo tem uma unidade só; com várias unidades ela não vem e QTDE_UNIDADES diz quantas havia — agrupe também por unidade ou produto. Valor em R$ (CUSTO_TOTAL_POSITIVO, VALOR_TOTAL) sempre soma. Visões disponíveis (parâmetro "visao"): - saldo: Saldo por produto e local, com custo médio e situação do estoque. STATUS_ESTOQUE "ABAIXO DO MÍNIMO" é o critério para produto abaixo do mínimo; sem ESTOQUE_MINIMO na linha, o mínimo não foi cadastrado para aquele produto e local. Com agrupar_por: QTDE_LINHAS são pares produto × local; PRODUTOS e PRODUTOS_COM_SALDO, produtos distintos; ITENS_COM_SALDO, ITENS_ZERADOS e ITENS_NEGATIVOS contam os pares; SALDO_POSITIVO e CUSTO_TOTAL_POSITIVO somam só o que tem saldo; SALDO_NEGATIVO fica à parte — é saída lançada antes da entrada, informe separado. Filtros: produto, classe_produto, local_estoque, status, com_saldo. Agrupa por: classe_produto, local_estoque, status, produto, unidade. Lista no máximo 30 linhas por chamada. - lotes: Saldo quebrado por lote, com validade, só de produto que controla lote. STATUS_VALIDADE diz se o lote está vencido ou vencendo — não compare datas. Com agrupar_por: QTDE_LINHAS é o número de lotes, LOTES_COM_SALDO os que ainda têm saldo, PRODUTOS os produtos distintos e MENOR_VALIDADE a validade mais próxima do grupo. Filtros: produto, classe_produto, local_estoque, lote, status_validade, com_saldo. Agrupa por: status_validade, classe_produto, produto, local_estoque, unidade. Lista no máximo 30 linhas por chamada. - historico: Movimentação do estoque: entradas, saídas e saldo após cada uma. Com agrupar_por: QTDE_LINHAS é o número de movimentos, com QUANTIDADE e VALOR_TOTAL somados — agrupe também por tipo para não somar entrada com saída. Filtros: produto, classe_produto, local_estoque, tipo, aceita período. Agrupa por: tipo, mes, produto, classe_produto, local_estoque, origem, unidade. Lista no máximo 30 linhas por chamada. - locais: Cadastro dos locais de estoque. Filtros: local_estoque, tipo. Quando "visao" não é informada, usa "saldo". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta. Para totais e contagens use "agrupar_por"; a listagem é limitada e serve para ver itens. Com "agrupar_por", a resposta vem somada pelo banco: uma linha por grupo, com QTDE_LINHAS, as somas e os maiores e menores valores (MAIOR_, MENOR_*). Use isso em vez de somar linhas por conta própria. Relatório em PDF (formato "pdf") nas visões: saldo, lotes. O servidor gera o relatório no padrão upCampo — logo, fazenda, período, filtros, subtotais e total — e devolve um link que vale 1 hora. Use quando o usuário pedir PDF, relatório, algo para imprimir ou para enviar. Com "agrupar_por" o PDF sai somado; com "qu…

consultar_financeiro

ChatGPT
Contas a pagar e a receber, saldo e extrato bancário. Somente consulta: não dá baixa nem lança título. Estrutura: TÍTULO (o compromisso, com quem e de onde veio) > PARCELAS (vencimento e valor) > BAIXA (parcela paga ou recebida, sempre inteira) > CONTA BANCÁRIA. Valores: VALOR_LIQUIDO é o que se paga de fato (bruto - desconto + juros); VALOR_EM_ABERTO é o que falta, já pronto — nunca subtraia colunas. VALOR_DOCUMENTO_ORIGEM é o valor da nota ou do contrato, não o valor a pagar. MOEDA: todo valor está na moeda do título. Nunca some moedas diferentes; mostre um total por moeda, sempre com o símbolo junto. Os agrupamentos já separam por moeda. Vencimento: use o filtro "situacao", nunca compare datas. O período das visões de parcela usa a data prevista, que é a que vale para vencimento. Pagar x receber: "devo", "fornecedor", "boleto" = Pagar; "receber", "cliente" = Receber. Sem indicação, traga os dois e mostre separados. Nome de fornecedor, conta ou documento: filtre por trecho; se vierem nomes diferentes, pergunte qual e siga pelo identificador (id_entidade, id_conta_gerencial, id_titulo). Volume: para a fazenda inteira use "agrupar_por" em vez de listar parcela a parcela. Totais por mês estão em resumo_mes; por conta gerencial, centro de custo ou safra, em resumo_conta. "Quanto paguei/recebi" vem de baixas ou de resumo_mes — nunca da soma do extrato, que tem estornos. Visões disponíveis (parâmetro "visao"): - parcelas: Uma linha por parcela, com vencimento, valores, situação e a baixa quando houver. Período pela data prevista de vencimento. "O que vence essa semana": situacao ["Vence hoje", "Vence em até 7 dias"]; vencidos: situacao ["Vencido"]. Filtros: tipo (valor exato), situacao (lista de valores exatos), pago, entidade, id_entidade (valor exato), funcionario, conta_gerencial, conta_gerencial_grupo, id_conta_gerencial (valor exato), centro_custo, safra, origem, titulo, documento, id_titulo (valor exato), moeda (valor exato), mes_previsto (valor exato), mes_pagamento (valor exato), conta_bancaria, id_conta_bancaria (valor exato), meio_pagamento, aceita período. Agrupa por: tipo, situacao, entidade, conta_gerencial, conta_gerencial_grupo, centro_custo, safra, origem, mes_previsto, mes_pagamento, conta_bancaria, meio_pagamento. - baixas: Só as parcelas já pagas ou recebidas, com o período pela data do pagamento. É a visão de "quanto paguei entre tal e tal dia" e de "pagamos em dia?" (DIAS_ATRASO_NO_PAGAMENTO). Filtros: tipo (valor exato), situacao (lista de valores exatos), pago, entidade, id_entidade (valor exato), funcionario, conta_gerencial, conta_gerencial_grupo, id_conta_gerencial (valor exato), centro_custo, safra, origem, titulo, documento, id_titulo (valor exato), moeda (valor exato), mes_previsto (valor exato), mes_pagamento (valor exato), conta_bancaria, id_conta_bancaria (valor exato), meio_pagamento, aceita período. Agrupa por: tipo, situacao, entidade, conta_gerencial, conta_gerencial_grupo, centro_custo, safra, origem, mes_previsto, mes_pagamento, conta_bancaria, meio_pagamento. - titulos: Uma linha por conta a pagar ou a receber, com os totais das parcelas, a situação da próxima parcela em aberto e a QUITACAO ("Quitado", "Parcialmente quitado", "Nada quitado"). "Quanto devo ao fornecedor X": tipo Pagar, em_aberto true, agrupar_por entidade. Período pelo próximo vencimento. Filtros: tipo (valor exato), situacao (lista de valores exatos), quitacao (valor exato), em_aberto, entidade, id_entidade (valor exato), conta_gerencial, conta_gerencial_grupo, id_conta_gerencial (valor exato), centro_custo, safra, origem, titulo, documento, id_titulo (valor exato), moeda (valor exato), aceita período. Agrupa por: tipo, situacao, quitacao, entidade, conta_gerencial, conta_gerencial_grupo, centro_custo, safra, origem. - resumo_mes: Uma linha por tipo, mês e moeda: PREVISTO (vence no mês), REALIZADO (pago no mês), EM_ABERTO e VENCIDO. É a visão do fluxo de caixa e de "quanto paguei em agosto". O período compara o primeiro dia do mês: para outubro a dezembro, use 01/10 a 31/12. O saldo do mês (receber - pagar) é da mesma m…

consultar_frota

ChatGPT
Máquinas e veículos: cadastro, abastecimento, ordens de manutenção, planos e custos. Ordem de manutenção é coisa distinta de ordem de serviço agrícola. Visões disponíveis (parâmetro "visao"): - cadastro: Cadastro dos equipamentos, com horímetro atual. Inclui equipamento de terceiro: para a frota própria, filtre propriedade e subtipo. Filtros: equipamento, codigo (valor exato), placa (valor exato), tipo_equipamento, subtipo, propriedade, ativo, setor. - abastecimento: Abastecimentos lançados: litros, preço, horímetro e consumo. Filtros: equipamento, placa (valor exato), combustivel, operador, local_estoque, aceita período. - ordens: Ordens de manutenção: serviço, status, valor e horímetro de geração. O que decide se a ordem está pendente é o STATUS, nunca a data: há ordem pendente com DATA_FINALIZACAO preenchida, as vezes anterior a própria data da ordem. Trate essa data como confiável só quando o status for Finalizado. Filtros: equipamento, status, tipo, grupo_manutencao, aceita período. - atividades_ordem: Atividades (serviços) de cada ordem de manutenção, com as horas lançadas: total, valor e cada lançamento (funcionário, dia, de–até = id do lançamento). ID_ATIVIDADE é o que lancar_horas_manutencao pede. Filtros: codigo (valor exato), equipamento, status. - planos: Planos de manutenção preventiva e o que está por vencer. Filtros: equipamento, plano, status. - custos: Custos lançados por equipamento: peças, serviços e combustível. Filtros: equipamento, categoria, fornecedor, aceita período. - checklists: Checklists preenchidos por equipamento. Filtros: equipamento, status, aceita período. Quando "visao" não é informada, usa "cadastro". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta. Relatório em PDF (formato "pdf") nas visões: abastecimento. O servidor gera o relatório no padrão upCampo — logo, fazenda, período, filtros, subtotais e total — e devolve um link que vale 1 hora. Use quando o usuário pedir PDF, relatório, algo para imprimir ou para enviar. Com "agrupar_por" o PDF sai somado; com "quebrar_por" sai item a item com subtotal por grupo. Os filtros e o período são os mesmos da consulta. Entregue o link ao usuário; as linhas não vêm na resposta, então não invente números a partir dela.

consultar_monitoramento_pragas

ChatGPT
Levantamentos de campo: pragas encontradas, pontos monitorados e fenologia. Não confundir com aplicação de defensivo, que é ordem de serviço. Visões disponíveis (parâmetro "visao"): - levantamentos: Cabeçalho de cada levantamento: data, talhão, quantos pontos e quem levantou. Filtros: safra, talhao, setor, cultura, aceita período. - ocorrencias: Praga por levantamento, com o resultado já calculado e a faixa de alerta. Filtros: safra, talhao, setor, praga, classificacao, aceita período. - pontos: Um registro por ponto monitorado: stand, altura, estágio e coordenada. Filtros: safra, talhao, setor, tecnico, aceita período. - fenologia: Fenologia medida no levantamento: stand, altura, nós, maçãs. Filtros: safra, talhao, setor, aceita período. - registros: A praga ponto a ponto, com o valor bruto anotado no campo. Filtros: safra, talhao, praga, aceita período. Quando "visao" não é informada, usa "ocorrencias". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta.

consultar_ordens_servico

ChatGPT
Ordens de serviço da lavoura: plantio, aplicação, adubação, colheita. Combustível e manutenção de máquina não entram aqui — são frota. Visões disponíveis (parâmetro "visao"): - cabecalho: Uma linha por ordem: status, tipo de atividade, área e percentual executado. Filtros: safra, status, tipo_atividade, equipe, codigo (valor exato), aceita período. - talhoes: Talhões atendidos por cada ordem, com área e cultura. Filtros: safra, status, talhao, setor, codigo (valor exato), aceita período. - insumos: Produtos previstos e executados por ordem, com dose por hectare, valor e lote. Lote vem vazio quando o produto não é controlado por lote. Filtros: safra, status, produto, classe_produto, lote, codigo (valor exato), aceita período. - execucao: Cada execução lançada: data, área, horas, equipamento e operador. Filtros: safra, talhao, equipamento, operador, codigo (valor exato), aceita período. Quando "visao" não é informada, usa "cabecalho". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta. Relatório em PDF (formato "pdf") nas visões: cabecalho. O servidor gera o relatório no padrão upCampo — logo, fazenda, período, filtros, subtotais e total — e devolve um link que vale 1 hora. Use quando o usuário pedir PDF, relatório, algo para imprimir ou para enviar. Com "agrupar_por" o PDF sai somado; com "quebrar_por" sai item a item com subtotal por grupo. Os filtros e o período são os mesmos da consulta. Entregue o link ao usuário; as linhas não vêm na resposta, então não invente números a partir dela.

consultar_pos_colheita

ChatGPT
Romaneios de colheita e de saída, fardos de algodão, coletas e contratos — o documento que deu origem ao que entrou ou saiu do estoque. Para qualquer total — quantos romaneios, quanto pesou, quantas sacas, por talhão, por variedade, por mês — use "agrupar_por" nas visões romaneios, fardos e saidas: o banco soma. Nunca liste romaneios ou fardos para somar; a listagem traz no máximo 30 linhas e serve para ver documentos específicos. Pesos em kg. SACAS_LIQUIDAS = PESO_LIQUIDO_FINAL / 60 (saca de 60 kg); ARROBAS_FAZENDA = PESO_FAZENDA / 15. Produtividade por hectare vem de consultar_producao. Por talhão, agrupe por setor e talhao juntos: o mesmo nome de talhão pode existir em setores diferentes. Visões disponíveis (parâmetro "visao"): - romaneios: Romaneios de colheita (grãos), com todos os descontos. Com agrupar_por: QTDE_LINHAS é o número de romaneios, ROMANEIOS_PESADOS os que já têm peso, e as somas de peso e sacas. Filtros: safra, cultura, talhao, setor, variedade, local_estoque, numero (valor exato), aceita período. Agrupa por: safra, cultura, setor, talhao, variedade, local_estoque, mes, produtor_terceiro. Lista no máximo 30 linhas por chamada. - saidas: Romaneios de saída: o que saiu da fazenda, para qual comprador e nota fiscal. Com agrupar_por: QTDE_LINHAS é o número de romaneios de saída. Filtros: safra, cultura, comprador, local_estoque, numero (valor exato), aceita período. Agrupa por: safra, cultura, produto, comprador, local_estoque, mes. Lista no máximo 30 linhas por chamada. - avulsos: Romaneios avulsos: pesagem fora da colheita e do contrato — entrada, saída, transferência entre locais, quebra técnica e deslocamento. ID_ROMAVU corrige pelo lancar_romaneio_avulso. Com agrupar_por: QTDE_LINHAS é o número de romaneios. Filtros: safra, tipo, produto, local_estoque, entidade, numero (valor exato), aceita período. Agrupa por: safra, tipo, produto, local_estoque, mes. Lista no máximo 30 linhas por chamada. - contratos: Contratos de venda: quantidade contratada, embarcada e saldo. Filtros: safra, cultura, entidade, situacao, numero (valor exato), aceita período. - fardos: Fardos de algodão. Consolidado da safra inteira: fardos_safra. Com agrupar_por: QTDE_LINHAS é o número de fardos, FARDOS_PESADOS os que já têm peso — as somas de peso só contam os pesados. Filtros: safra, cultura, talhao, setor, variedade, local_estoque, codigo (valor exato), status, aceita período. Agrupa por: safra, cultura, setor, talhao, variedade, local_estoque, mes, status, colheitadeira. Lista no máximo 30 linhas por chamada. - fardos_safra: Fardos consolidados por safra e cultura: peso, rendimento e contagem. Filtros: safra, cultura. - coletas: Coletas de fardos levados para a algodoeira. Filtros: safra, setor, algodoeira, status, aceita período. Lista no máximo 30 linhas por chamada. Quando "visao" não é informada, usa "fardos_safra". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta. Para totais e contagens use "agrupar_por"; a listagem é limitada e serve para ver itens. Com "agrupar_por", a resposta vem somada pelo banco: uma linha por grupo, com QTDE_LINHAS, as somas e os maiores e menores valores (MAIOR_, MENOR_). Use isso em vez de somar linhas por conta própria. Relatório em PDF (formato "pdf") nas visões: romaneios, saidas, fardos. O servidor gera o relatório no padrão upCampo — logo, fazenda, período, filtros, subtotais e total — e devolve um link que vale 1 hora. Use quando o usuário pedir PDF, relatório, algo para imprimir ou para enviar. Com "agrupar_por" o PDF sai somado; com "quebrar_por" sai item a item com subtotal por grupo. Os filtros e o período são os mesmos da consulta. Entregue o link ao usuário; as linhas não vêm na res…

consultar_producao

ChatGPT
Área, colheita e produtividade por safra, cultura, setor, talhão ou variedade. Produtividade (PRODUTIVIDADE) já vem por hectare: sacas de 60 kg em grãos, arrobas de 15 kg nas demais. TIPO_COLHEITA vazio conta como grãos: o número está em sacas (sc/ha), mesmo sem UNIDADE_ABREVIADA. Arroba (@/ha) só quando TIPO_COLHEITA for Fardos ou a unidade vier "@". Em grãos, QTDE_REGISTROS_ vem vazio: a quantidade de romaneios está em consultar_pos_colheita, visão romaneios, com agrupar_por. Visões disponíveis (parâmetro "visao"): - cultura: Produção consolidada por cultura. Filtros: safra, cultura, setor, talhao, variedade. - setor: Produção consolidada por setor. Filtros: safra, cultura, setor, talhao, variedade. - talhao: Produção por talhão — o grão mais detalhado. Filtros: safra, cultura, setor, talhao, variedade. - variedade: Produção consolidada por variedade. Filtros: safra, cultura, setor, talhao, variedade. Quando "visao" não é informada, usa "talhao". Filtro de texto casa por trecho, sem diferenciar maiúsculas nem acento ("aplicacao" acha "Aplicação") — exceto os marcados "(valor exato)", que exigem o valor inteiro, como código, placa e número. A resposta traz "total_disponivel": quantas linhas o filtro encontra ao todo. Chame uma vez só, já com o limite que a resposta vai usar — nunca repita a consulta mudando só o limite; se só o número interessa e o total pode ser grande, um limite baixo basta.

consultar_usuarios

ChatGPT
Consulta os usuários da empresa e o controle de acesso deles, como as telas Usuários e "Usuários com acesso à IA" do portal. Só para quem administra usuários (permissão de ver a tela Usuários). Serve para achar o ID_USUARIO, o ID_FAZENDA e o ID_TELA que cadastrar_usuario e as tools de acesso (alterar_permissoes_usuario, aplicar_perfil_usuario…) pedem, e para conferir o que alguém pode fazer. Nunca traz senha. - usuarios: Usuários da empresa desta fazenda (ativos e inativos): ID_USUARIO, nome, login, e-mail, WhatsApp, as fazendas desta empresa a que cada um tem acesso e a fazenda corrente da IA. "busca" procura no nome, login ou e-mail. - fazendas_usuario: As fazendas de um usuário (exige id_usuario), em todas as empresas: ID_FAZENDA, se é a corrente da IA, se VOCE_TAMBEM_TEM acesso a ela (fora das permissões de IA, só se libera acesso nessas) e quantas telas ele vê lá. - acessos: O que um usuário pode fazer numa fazenda (exige id_usuario; id_fazenda, padrão a desta chamada): cada tela com VER, INCLUIR, EDITAR e EXCLUIR. Vêm só as telas com alguma letra; E_IA marca as permissões de IA. Sem nenhuma linha, o aviso diz: no portal, usuário sem linha nenhuma vê quase tudo. - perfis: Os perfis de acesso cadastrados (o "Aplicar perfil" do portal): PERFIL é o nome que vai em aplicar_perfil_usuario; TELAS, as telas que cada um libera. Consulte antes de aplicar um perfil: a equipe upCampo cria perfis novos pelo portal. - telas: As telas do controle de acesso do portal, com o grupo do menu: ID_TELA vai em alterar_permissoes_usuario. E_IA marca as 13 permissões de IA (consulta por tema e lançamentos da UPí). Use "busca" com o nome da tela; com "so_ia", só as de IA.

copiar_acessos_usuario

ChatGPT
Troca as permissões de um usuário numa fazenda pelas de outro usuário (copiar_de_usuario, na fazenda copiar_de_fazenda; padrão: a fazenda desta chamada). Cada item é um usuário numa fazenda (id_usuario e id_fazenda de consultar_usuarios; sem id_fazenda, a fazenda desta chamada). O efeito na UPí (no WhatsApp e aqui) leva alguns segundos. Regras (o upCampo recusa; avise antes de chamar): o usuário tem de estar numa das suas empresas e já vinculado à fazenda (vincule com cadastrar_usuario, campo fazendas); só nas fazendas a que você também tem acesso (VOCE_TAMBEM_TEM em consultar_usuarios); você não aplica isto a si mesmo; o usuário de origem tem de estar vinculado à fazenda de origem. GRAVA no upCampo. Diga ao usuário quem, em qual fazenda e o que muda, e confirme antes de chamar.

criar_alerta

ChatGPT
Programa um envio que a UPí manda sozinha no WhatsApp do usuário, na hora combinada, com o dado do momento. Use quando ele pedir "me manda isso toda sexta às 9h", "todo dia de manhã quero…", "me lembra no dia 20…", ou quiser receber o resumo diário da fazenda. Tipos: - "agendado": a UPí faz a pergunta da instrucao na hora marcada e manda a resposta. Escreva a instrução como a pergunta completa que o usuário faria, sem "isso"/"aquilo" — ex.: "Quantidade de maçãs nos levantamentos de pragas dos últimos 7 dias, por talhão". Na hora do envio a UPí não vê esta conversa. - "resumo": resumo diário do dia anterior da fazenda (chuva, pragas acima do nível, execuções, OS atrasadas, estoque negativo). Padrão: todo dia às 6h30. - "condicional": avisa só quando acontece. Escolha a condicao: · chuva_acima — "me avisa quando chover mais de 20 mm": limite em mm (obrigatório); filtro = parte do nome do pluviômetro (opcional). Um aviso por pluviômetro por dia. · praga_acima_nivel — "me avisa se der praga no vermelho": levantamento com praga no nível Alto. filtro = parte do nome da praga ou do talhão (opcional). · estoque_abaixo — "me avisa quando o diesel do posto ficar abaixo de 1.000 L": limite + filtro (parte do nome do produto, obrigatório com limite) + local (opcional). Sem limite, vale o estoque mínimo do cadastro de cada produto. Repete no máximo 1x por semana enquanto continuar baixo. · manutencao_vencendo — "me avisa quando uma máquina estiver perto da revisão": plano de manutenção próximo do vencimento ou vencido. filtro = parte do nome do equipamento (opcional). · sem_coleta_chuva — "me avisa se ficar 2 dias sem coleta de chuva": pluviômetro ativo há dias dias sem coleta (padrão 2). Confere 1x por dia, às 8h (ou na hora pedida). · sem_execucao_os — "me avisa se passar um dia sem lançar execução": dias sem execução de OS lançada (padrão 1; domingo não conta). Confere 1x por dia, às 9h (ou na hora pedida). · abastecimento_local — "me avisa quando abastecerem no posto da sede": cada abastecimento lançado naquele posto. local = parte do nome do posto/local de estoque ou da bomba (obrigatório; "externo" = abastecimento fora da fazenda); filtro = parte do nome ou placa do equipamento (opcional). Na dúvida sobre o nome do posto, consulte os locais de estoque antes. · custo_frota_safra — "me avisa quando o custo da frota passar de R$ 500 mil nesta safra": limite em R$ (obrigatório). Sem filtro, é o custo da frota toda; com filtro (parte do nome ou placa), avisa cada máquina que passar do limite. Soma peças, serviços, combustível, requisições e ordens lançados no período da safra. · custo_talhao_safra — "me avisa quando algum talhão passar de R$ 4.000 por hectare": limite em R$ (obrigatório); por_ha = true quando o limite é por hectare; filtro = parte do nome do talhão ou do setor (opcional; sem filtro, qualquer talhão). É o custo de insumos das OS rateado no talhão. Nas duas de custo, a safra é a vigente no dia da verificação (na virada, passa para a nova sozinha); safra = parte do nome só se o usuário citar outra. Conferem 1x por dia, às 7h (ou na hora pedida). As de EVENTO (chuva, praga, estoque, manutenção, abastecimento) conferem a cada 30 min e avisam só do que acontecer DEPOIS de criadas — o que já existe hoje não é avisado; diga isso ao usuário. As de AUSÊNCIA (sem_coleta_chuva, sem_execucao_os) são o contrário: já na primeira verificação avisam o que estiver parado, inclusive o que já está parado hoje, e repetem a cada dia enquanto continuar. As de CUSTO avisam UMA vez por safra cada máquina/talhão que passar do limite — se já passou hoje, o aviso chega na primeira verificação; diga isso ao usuário. Outra condição (temperatura, geada, produtividade…) não existe: diga isso e ofereça um envio diário. Chega no WhatsApp cadastrado no usuário upCampo; sem WhatsApp no cadastro, o upCampo recusa. Horário no fuso da fazenda. Até 10 alertas ativos por usuário; alerta igual ao existente é recusado (proponha alterar o existente com alterar_alerta). Cada alerta tem um número (Alerta 1, Alerta 2…

definir_fazenda_corrente_usuario

ChatGPT
Faz a fazenda virar a corrente da IA de outro usuário — a que a UPí usa no WhatsApp e aqui quando ele não cita fazenda. Para o próprio usuário, use trocar_fazenda_corrente. Se acabou de liberar a permissão de IA para ele, chame depois dessa liberação. Cada item é um usuário numa fazenda (id_usuario e id_fazenda de consultar_usuarios; sem id_fazenda, a fazenda desta chamada). O efeito na UPí (no WhatsApp e aqui) leva alguns segundos. Regras (o upCampo recusa; avise antes de chamar): o usuário tem de estar numa das suas empresas e já vinculado à fazenda (vincule com cadastrar_usuario, campo fazendas); vale em qualquer fazenda do usuário, mas só numa em que ele tem alguma permissão de IA, senão a UPí não a enxerga e ele ficaria sem fazenda corrente. GRAVA no upCampo. Diga ao usuário quem, em qual fazenda e o que muda, e confirme antes de chamar.

finalizar_contrato

ChatGPT
Finaliza contratos de venda ou compra já gravados (ID_CONTRATO de consultar_pos_colheita, visão contratos): encerra o contrato e zera o saldo que faltava embarcar, como o botão "Finalizar" do portal. Regras (o upCampo recusa; avise antes de chamar): contrato já finalizado não se finaliza de novo; um contrato aparece uma vez só na lista. GRAVA no upCampo. Confirme com o usuário o contrato e os valores antes de chamar.

gerar_financeiro_contrato

ChatGPT
Gera o título em Contas a receber do valor líquido de contratos de venda (ID_CONTRATO de consultar_pos_colheita, visão contratos), como o botão "Gerar financeiro" do portal. Registra no controle financeiro do upCampo: não movimenta dinheiro. Parcelas: a lista [{vencimento, valor}] (soma = líquido) ou qtde_parcelas com primeiro_vencimento e intervalo_dias (valor inteiro por parcela, a sobra na última). Regras (o upCampo recusa; avise antes de chamar): só contrato de venda e sem título ainda; o contrato precisa de valor líquido maior que zero; cada parcela precisa de vencimento e valor maior que zero, e a soma tem que ser o líquido; de 1 a 12 parcelas; o intervalo entre parcelas vai de 1 a 365 dias; um contrato aparece uma vez só na lista. GRAVA no upCampo. Confirme com o usuário o contrato e os valores antes de chamar.

gerar_pedido_cotacao

ChatGPT
Gera os pedidos de compra de uma cotação (ID_COTACAO de consultar_compras, visão cotacoes): um pedido por fornecedor, com as coletas escolhidas (coletas: ID_COLETA da visão coletas, uma por item) ou, com menor_preco, a coleta de menor preço de cada item. Só coleta com preço lançado e que ainda não virou pedido. Os itens do pedido ficam ligados às requisições de origem. Se a fazenda usa aprovação de pedido, o pedido nasce "Em digitação": mande ao aprovador com aprovar_pedido_compra (ENVIAR). Regras (o upCampo recusa; avise antes de chamar): escolha as coletas ou peça o menor preço, um dos dois; uma coleta só por item da cotação; a mesma cotação vai uma vez só na lista; se nenhuma coleta tiver preço lançado, não gera pedido. GRAVA no upCampo. Confirme com o usuário os fornecedores, itens e valores antes de chamar.

gerenciar_contrato

ChatGPT
Ações num contrato já gravado (ID_CONTRATO de consultar_pos_colheita, visão contratos): - FINALIZAR: encerra o contrato e zera o saldo restante; - REABRIR: volta para Aberto e refaz o saldo (contratado − embarcado); - ADITIVO: Adicionando ou Retirando quantidade (em sacas/arrobas ou kg), ao preço do contrato se não for informado; o upCampo ajusta quantidade e saldo do contrato; - GERAR_FINANCEIRO: título em Contas a receber do valor líquido do contrato, como o botão "Gerar financeiro" do portal. Só contrato de venda e sem título ainda. Parcelas: a lista [{vencimento, valor}] (soma = líquido) ou qtde_parcelas com primeiro_vencimento e intervalo_dias (valor inteiro por parcela, a sobra na última). Regras (o upCampo recusa; avise antes de chamar): uma ação por contrato em cada chamada; FINALIZAR em contrato já finalizado é recusado, e REABRIR só vale para contrato finalizado; contrato finalizado não aceita aditivo (reabra antes); aditivo "Retirando" não pode passar do saldo que falta embarcar; o número do aditivo não se repete no contrato; GERAR_FINANCEIRO pede contrato com valor líquido maior que zero; cada parcela precisa de vencimento e valor maior que zero; o intervalo entre parcelas vai de 1 a 365 dias. GRAVA no upCampo. Confirme com o usuário a ação e os valores antes de chamar.

gerenciar_ordem_manutencao

ChatGPT
Ações numa ordem de manutenção já gravada (ID_ORDSERMAN de consultar_frota, visão ordens): - INICIAR: pendente ou pausada → em execução; - PAUSAR: em execução → pausada; - FINALIZAR: com a data (padrão hoje), o horímetro/km (obrigatório quando o equipamento tem horímetro e a ordem é preventiva ou a fazenda exige), o número da ordem (se a fazenda exige), o resultado e, quando o custo da fazenda não é calculado, o valor total. Na preventiva, o plano do equipamento é rearmado a partir do horímetro informado; - REABRIR: finalizada → pendente (o horímetro gravado no plano não volta). Regras (o upCampo recusa; avise antes de chamar): uma ação por ordem em cada chamada; ação que repete o estado atual é recusada (iniciar ordem já em execução, pausar ordem já pausada); ordem finalizada não se inicia nem se pausa (reabra antes); a data de finalização não pode ser futura nem anterior à data da ordem; não se finaliza uma ordem enquanto houver ordem anterior do mesmo plano ainda não finalizada; na preventiva, o horímetro/km da finalização não pode ficar abaixo do que gerou a ordem; o número da ordem é obrigatório quando a fazenda exige. GRAVA no upCampo. Confirme com o usuário a ação e os valores antes de chamar.

importar_talhoes

ChatGPT
Importa o MAPA DOS TALHÕES de um arquivo KML ou KMZ (Google Earth, software da máquina, agrônomo): cada polígono vira um talhão, com o contorno e a área calculada pelo desenho, como a tela "Importar mapa de talhões (KML)" do portal. O servidor baixa e lê o arquivo: NUNCA leia os pontos você mesmo nem os passe ao cadastrar_talhao — use esta tool para qualquer KML/KMZ. Regras do arquivo, iguais às do portal: a pasta (Folder) é o setor; o nome do item é o nome do talhão; talhão com o mesmo nome de um que já existe (sem caixa nem acento) NÃO é duplicado: troca só o mapa e a área; nome repetido dentro do arquivo vale só a primeira vez; item sem polígono de 3 pontos fica de fora. Duas etapas: (1) chame com arquivo_url e sem gravar — devolve a prévia, sem gravar nada; mostre o resumo ao usuário e espere o "sim"; (2) chame com o mesmo arquivo_url (ou o id_importacao da prévia) e gravar = true. Arquivo que ainda não passou pela prévia nunca grava direto. Grava talhão a talhão: o que for recusado não impede os outros, e a resposta diz qual entrou e qual não, com o motivo. Fazenda grande pode passar de um minuto: a resposta vem com terminou = false e a importação continua sozinha; avise o usuário e, para o resultado, chame com o mesmo arquivo_url ou id_importacao, sem gravar. A prévia vale 1 hora.

lancar_abastecimento

ChatGPT
Registra um abastecimento de equipamento. Use consultar_frota para achar o equipamento. Interno (bomba da fazenda): informe id_bomba. Externo (posto de rua): informe descrição do posto, id_produto do combustível e preço por litro. GRAVA no upCampo. Resuma ao usuário o que será lançado e confirme com ele antes de chamar. Depois de gravado, informe o que foi registrado.

lancar_aditivo_contrato

ChatGPT
Lança aditivo em contratos já gravados (ID_CONTRATO de consultar_pos_colheita, visão contratos): Adicionando ou Retirando quantidade (em sacas/arrobas ou kg), ao preço do contrato se não for informado; o upCampo ajusta quantidade e saldo do contrato. Regras (o upCampo recusa; avise antes de chamar): contrato finalizado não aceita aditivo (reabra antes com reabrir_contrato); aditivo "Retirando" não pode passar do saldo que falta embarcar; o número do aditivo não se repete no contrato; um contrato aparece uma vez só na lista. GRAVA no upCampo. Confirme com o usuário o contrato e os valores antes de chamar.

lancar_baixa

ChatGPT
Dá baixa em parcelas de contas a pagar (pagamento) ou a receber (recebimento), ou estorna uma baixa. A parcela vem de consultar_financeiro, visão parcelas (ID_CONPAGRECDET); a conta bancária, da visão contas_bancarias. O saldo da conta e o extrato mudam na hora, como no portal. Pagou exatamente o valor da parcela: só parcela, conta, meio e data. Pagou com juros ou desconto, ou pagou só uma parte: informe juros/desconto/valor_pago e, se o pago for menor que o devido, restante = NOVA_PARCELA (o que falta fica em aberto, mesmo vencimento) ou DESCONTO (quita com desconto). Parcela paga não se paga de novo: estorne antes. Data futura e período fechado no financeiro são recusados; conta que não permite saldo negativo também recusa. Regras (o upCampo recusa; avise antes de chamar): o período fechado vale também para o vencimento e a data do título, e também para o estorno; só se estorna parcela paga; valor pago maior que o devido é recusado (lance a diferença como juros); valor pago menor sem dizer o restante (nova parcela ou desconto) é recusado; o desconto não pode igualar nem passar a parcela com juros; a conta bancária tem de estar ativa e na moeda do título; estornar recebimento que deixe negativa uma conta que não permite saldo negativo é recusado. GRAVA no upCampo. Confirme com o usuário cada parcela, valor, conta e data antes de chamar.

lancar_chuva

ChatGPT
Registra a leitura de um pluviômetro. Use consultar_chuva com visão "pluviometros" para achar o identificador do pluviômetro antes de lançar (uma linha por pluviômetro). Se o usuário citar um talhão, a visão "pluviometros_talhoes" com o filtro talhao mostra quais pluviômetros o cobrem. SEMPRE registra na data de HOJE: a procedure do upCampo fixa a data e não aceita outra — vale igual para a UPí no WhatsApp. Se o usuário pedir chuva de ontem ou de outro dia, diga isso antes de lançar e ofereça o portal, onde a data é digitável. Quando choveu: informe milímetros e deixe condicao_tempo de fora. Quando NÃO choveu: informe condicao_tempo e deixe milímetros de fora. Um talhão pode pertencer a dois pluviômetros: nunca lance nos dois — pergunte em qual. Confira antes se já existe lançamento daquele pluviômetro no dia. GRAVA no upCampo. Resuma ao usuário o que será lançado e confirme com ele antes de chamar. Depois de gravado, informe o que foi registrado.

lancar_conta_pagar_receber

ChatGPT
Lança conta a pagar ou a receber (título avulso), com as parcelas. Parcelado: mande valor_total e qtde_parcelas (o upCampo divide, a última fecha o total; mensal, ou a cada intervalo_dias) ou a lista parcelas com vencimento e valor de cada uma. Já pago (tarifa, depósito, despesa à vista): informe pagamento, e o título nasce baixado, movendo o saldo da conta. Para pagar depois, use lancar_baixa com o id da parcela que volta aqui. A conta é do plano de contas (consultar_cadastros visão plano_contas, USO "Contas a pagar" ou "Contas a receber"). Na alteração, parcelas é a lista COMPLETA das em aberto (as pagas ficam como estão). Título de nota, contrato ou ordem de manutenção nasce do documento: aqui só se ajustam as parcelas e a classificação. Títulos existentes: consultar_financeiro visões titulos e parcelas. Só na moeda principal da fazenda. Regras (o upCampo recusa; avise antes de chamar): data de emissão futura (o vencimento pode ser futuro); com o financeiro fechado, a data do título, a do pagamento e o vencimento têm de ser posteriores ao fechamento; a conta tem de ser de despesa para pagar e de receita para receber, ativa e com lançamento direto; parcelas de 1 a 36 e intervalo de 1 a 365 dias; mande valor_total ou parcelas, não os dois; parcela paga não entra na lista da alteração, e título com parcela paga só se desativa depois de estornar; o tipo (pagar ou receber) não muda; pagamento: data não futura e não anterior à do título, e conta que não permite saldo negativo recusa se o saldo ficar negativo. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_cotacao

ChatGPT
Cotação de compra, passo a passo (cada chamada pode fazer um ou mais, nesta ordem): trazer os itens das requisições finalizadas (requisicoes ou todas_requisicoes) e itens avulsos; convidar fornecedores (uma coleta por item × fornecedor; o convite, com o link do portal de coleta, fica registrado no upCampo para o contato do fornecedor); lançar os preços que o comprador recebeu (precos, por id da coleta); finalizar ou reabrir. O pedido sai de gerar_pedido_cotacao. Cotações, itens e coletas com preço: consultar_compras visões cotacoes e coletas (ID_COLETA). Regras (o upCampo recusa; avise antes de chamar): cotação finalizada não recebe item, fornecedor nem preço (reabra antes); só se reabre cotação finalizada; só entram requisições finalizadas; item avulso pede produto ou descrição e quantidade maior que zero; preço: valor unitário zero ou mais, desconto não negativo e não maior que o total, quantidade não passa da do item; coleta que já virou pedido não muda de preço; cotação que já gerou pedido não se desativa. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_entrada_nota

ChatGPT
Registra uma entrada de material no estoque, com ou sem nota fiscal. "Entrada avulsa": exige descrição. "Entrada com nota fiscal": exige número e o fornecedor. O lançamento da nota guarda o fornecedor (o emitente), como no portal — é o que liga a entrada ao financeiro e ao histórico de compras dele. O fornecedor vem de um cadastro existente (consultar_cadastros visão entidades) — use sempre o id quando houver. Só se o emitente da nota ainda não tiver cadastro, informe documento e razao_social COPIADOS DA NOTA que o usuário tem em mãos, e o upCampo cadastra o fornecedor junto com a nota. Não peça documento ao usuário em "Entrada avulsa", que não tem fornecedor. Produto que não existe no cadastro entra por produto_descricao, sem id_produto. Todo item que vai para estoque precisa de id_local_estoque: se faltar em um item, a nota inteira é recusada e nada é gravado. GRAVA no upCampo. Resuma ao usuário o que será lançado e confirme com ele antes de chamar. Depois de gravado, informe o que foi registrado.

lancar_execucao_os

ChatGPT
Registra a execução de uma ordem de serviço agrícola: área trabalhada, horas, equipamento e operador. Use consultar_ordens_servico para achar a ordem e os talhões dela. A data não pode ser futura. GRAVA no upCampo. Resuma ao usuário o que será lançado e confirme com ele antes de chamar. Depois de gravado, informe o que foi registrado.

lancar_horas_manutencao

ChatGPT
Mão de obra numa atividade de ordem de manutenção: quem trabalhou, de que horas a que horas, e o valor da hora (o custo da ordem é recalculado). No máximo 24 h por lançamento. Ordem finalizada não aceita horas. Lançamentos existentes e seus ids: consultar_frota visão atividades_ordem. Regras (o upCampo recusa; avise antes de chamar): o funcionário é obrigatório; o fim tem que ser depois do início; não se lança hora no futuro; o valor da hora não pode ser negativo; para mexer em horas de ordem finalizada, reabra a ordem antes. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_ordem_manutencao

ChatGPT
Ordem de manutenção de máquina ou veículo, com as atividades (serviços). Corretiva: o que quebrou. Preventiva: de um plano aplicado ao equipamento (ID_EQUXPLAMAN de consultar_frota visão planos), com o horímetro/km em que foi gerada. Mão de obra: lancar_horas_manutencao, numa atividade. Iniciar, pausar, finalizar e reabrir: gerenciar_ordem_manutencao. Ordens existentes: consultar_frota visão ordens (ID_ORDSERMAN); atividades e horas: visão atividades_ordem. Ordem finalizada não muda. Regras (o upCampo recusa; avise antes de chamar): a data da ordem não pode ser futura; na corretiva, a descrição é obrigatória; na preventiva, o plano tem que ser deste equipamento e estar ativo, e não pode haver ordem anterior do mesmo plano ainda não finalizada; o horímetro/km da preventiva não pode ficar abaixo da última ocorrência do plano; o plano da ordem não muda depois de gravado; atividade com horas ou requisição não pode sair da lista; ordem com horas lançadas ou requisição não pode ser desativada, e ordem finalizada não pode ser desativada (reabra antes); valores não podem ser negativos. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_ordem_servico

ChatGPT
Cria uma ordem de serviço agrícola — plantio, aplicação, adubação, colheita. Resolva antes, por consulta, a safra (listar_safras), os talhões (consultar_producao no nível talhão), os produtos (consultar_estoque) e os equipamentos (consultar_frota). Combustível e manutenção de máquina NÃO entram em ordem agrícola — são frota. Para registrar que a ordem foi executada, use lancar_execucao_os; esta tool só cria a ordem. GRAVA no upCampo. Resuma ao usuário o que será lançado e confirme com ele antes de chamar. Depois de gravado, informe o que foi registrado.

lancar_pedido_compra

ChatGPT
Pedido de compra direto (sem requisição nem cotação): fornecedor, safra, departamento e itens. Se a fazenda usa aprovação de pedido, ele já vai para aprovação, do aprovador escolhido em id_aprovador ou do único do departamento (consultar_cadastros visão departamentos lista os aprovadores). Sem aprovação na fazenda, nasce aprovado. Pedido enviado não se altera: retire-o da aprovação antes (aprovar_pedido_compra, RETIRAR). A nota fiscal do pedido é lançada depois, pela entrada de nota. Regras (o upCampo recusa; avise antes de chamar): pedido que não está mais em aberto (finalizado, cancelado) não se altera nem se desativa; pedido com nota fiscal lançada não pode ser desativado; item já recebido ou que está em nota fiscal não pode sair do pedido; cada item precisa de produto ou descrição; quantidade e valor unitário maiores que zero; desconto, frete, seguro e outras despesas não podem ser negativos; o desconto não pode passar do valor do item; a observação para o aprovador tem no máximo 4.000 caracteres. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_requisicao

ChatGPT
Requisição de compra ou de saída de estoque, com os itens. "Solicitar para comprar" vai para a cotação; "Saída de estoque" baixa o estoque na hora (com lote, quando o produto tem). Pode ligar a uma ordem de manutenção (as peças da ordem). acao FINALIZAR libera a requisição para a cotação; REABRIR volta a aberta. Requisições existentes: consultar_compras visão requisicoes (ID_REQUISICAO e ID_REQUISICAODET, o id_item na alteração). Regras (o upCampo recusa; avise antes de chamar): a data não pode ser futura; requisição finalizada não se altera nem se desativa (reabra antes); item que já entrou em cotação ou pedido não sai da lista nem muda de produto ou quantidade, e a requisição com item cotado não se desativa nem se reabre; cada item precisa de produto ou descrição e quantidade maior que zero, sem repetir o produto; saída de estoque pede produto e local, e é recusada se não houver saldo no local; ordem de manutenção finalizada não recebe requisição, e o equipamento e a atividade têm de ser os da ordem; para finalizar, ao menos um item; só se reabre requisição finalizada. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_romaneio_avulso

ChatGPT
Romaneio avulso: pesagem de balança fora da colheita e do contrato — Entrada (ex.: calcário, adubo, diesel que chega), Saída, Transferência entre locais da fazenda e Quebra técnica (perda de peso no armazém, sem pesagem). Peça o peso do caminhão cheio e vazio; o upCampo grava nas colunas certas para cada tipo. Descontos são % digitados (sem tabela): kg = líquido × % / 100. Com local de estoque, o estoque muda sozinho (entrada soma, saída e quebra baixam, transferência move); sem local, só registra a pesagem. Deslocamento de frota é pelo portal. Para corrigir, ID_ROMAVU de consultar_pos_colheita (visão avulsos). Corrigir ou desativar uma ENTRADA cujo produto já saiu do local é recusado ("saldo ficará negativo"): o upCampo estorna a entrada inteira antes de lançar a nova, como no portal — avise o usuário antes de tentar. Regras (o upCampo recusa; avise antes de chamar): o peso cheio tem que ser maior que o vazio, e os dois maiores que zero; transferência pede local de origem e de destino diferentes; quebra técnica pede local, produto e a quantidade perdida (maior que zero), sem % de classificação; as % de desconto vão de 0 a 100 e, somadas, não podem passar do peso líquido; saída, quebra e transferência precisam de saldo do produto no local, e não podem ficar antes de um lançamento mais novo nele; o número do romaneio não se repete na fazenda. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_romaneio_colheita

ChatGPT
Romaneio de colheita: a carga que sai do talhão e entra no estoque. O upCampo calcula como a tela do portal: líquido = bruto − tara; para cada classe, a % medida acha a faixa na tabela de desconto do parâmetro de colheita da safra, e o desconto vira kg; líquido final = líquido − descontos. O retorno traz o cálculo de cada classe — mostre ao usuário. A entrada no estoque, o total colhido do talhão e a sincronização com o app são automáticos. Antes: o talhão é o plantio da safra (consultar_cadastros visão plantios, ID_PLANTIO); o local de estoque e o parâmetro de colheita da safra × cultura (visão parametros_colheita) têm que existir. Se o plantio separa a colheita por variedade, a recusa lista as variedades — pergunte qual. Só informe as classes que o usuário mediu; "desconto_<classe>" só onde o parâmetro é manual. Contrato e avulso ainda não: pelo portal. Para corrigir um romaneio, ID_ROMCOL de consultar_pos_colheita (visão romaneios). Regras (o upCampo recusa; avise antes de chamar): talhão com a colheita finalizada não recebe romaneio novo (reabra a colheita no plantio); o plantio precisa estar ativo e aparecer na colheita; peso bruto e tara maiores que zero, e a tara não pode passar do bruto; as porcentagens de classificação e de desconto vão de 0 a 100; os descontos somados não podem passar do peso líquido; classe sem tabela de desconto no parâmetro da safra não pode ser informada; o número do romaneio e o número de autorização não se repetem na safra; romaneio de contrato ou avulso não se corrige por aqui, só pelo portal. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_romaneio_saida

ChatGPT
Romaneio de saída: a carga que sai do silo para o comprador, abatendo do contrato de venda (consultar_pos_colheita visão contratos, ID_CONTRATO; contrato aberto e com saldo). Do contrato vêm o silo, o produto, o comprador e as tabelas de desconto. O upCampo calcula como a tela: líquido = bruto − tara; para cada classe, a % medida acha a faixa na tabela do contrato e o desconto vira kg sobre o líquido; líquido final = líquido − descontos. Contrato que abate por "Quantidade" pede a quantidade em kg no lugar dos pesos. O retorno traz o cálculo, o quanto abateu e o saldo que ficou — mostre ao usuário. A saída do estoque e o saldo do contrato são automáticos; a nota fiscal é emitida pelo portal, e romaneio já em nota não se altera. Para corrigir, ID_ROMSAI de consultar_pos_colheita (visão saidas). Regras (o upCampo recusa; avise antes de chamar): a carga não pode passar do saldo que falta embarcar no contrato; contrato finalizado ou cancelado não recebe romaneio (reabra antes); o contrato precisa ter silo e produto; peso bruto e tara maiores que zero, e a tara não pode ser maior que o bruto; só informe a % das classes que o contrato desconta, e com tabela de desconto informe a % medida, não o desconto total; os descontos não podem passar do peso líquido; o silo precisa ter o grão em estoque, e a saída não pode ficar antes de um lançamento mais novo no mesmo silo; romaneio já em nota fiscal não pode ser desativado; o número do romaneio não se repete na fazenda. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

lancar_transferencia

ChatGPT
Transferência de dinheiro entre duas contas bancárias da fazenda (ou caixa): sai de uma, entra na outra, e os saldos mudam na hora. Contas de moedas diferentes pedem o valor que chega no destino. acao FINALIZAR fecha a transferência (não muda saldo; finalizada não se altera). Desativar estorna os saldos. Transferências existentes: consultar_financeiro visão transferencias. Regras (o upCampo recusa; avise antes de chamar): origem e destino têm de ser contas diferentes e ativas da fazenda; valor maior que zero; a data não pode ser futura; com o financeiro fechado, a data tem de ser posterior ao fechamento; se a conta de origem não permite saldo negativo e ficaria negativa, é recusada; transferência já finalizada não se finaliza de novo. Recebe uma LISTA (até 50 por chamada): mande tudo o que o usuário ditou de uma vez. Sem id inclui; com id altera só os campos informados; com id e desativar desativa. É tudo ou nada: se um item for recusado, NENHUM é gravado, e a resposta diz qual item e por quê. Nome repetido é recusado com o id do que já existe — pergunte se é para alterar. Campo que não está aqui é recusado: não invente campo; se o usuário pedir algo que o cadastro não tem, diga. GRAVA no upCampo. Mostre ao usuário a lista do que será gravado e confirme antes de chamar.

ler_artigo_ajuda

ChatGPT
Devolve um artigo inteiro da Central de Ajuda da upCampo, em texto com títulos, listas e tabelas: localização no menu, campos, passo a passo e perguntas frequentes. Use depois de buscar_ajuda, quando o trecho não bastar para responder. "relacionados" lista os artigos citados neste, para seguir adiante sem nova busca.

liberar_acesso_total_usuario

ChatGPT
Libera tudo para um usuário numa fazenda, como o botão "Acesso total" da tela Usuários (Cultura, Classe de praga, Praga e Grupo de praga ficam como estão, como no portal). Cada item é um usuário numa fazenda (id_usuario e id_fazenda de consultar_usuarios; sem id_fazenda, a fazenda desta chamada). O efeito na UPí (no WhatsApp e aqui) leva alguns segundos. Regras (o upCampo recusa; avise antes de chamar): o usuário tem de estar numa das suas empresas e já vinculado à fazenda (vincule com cadastrar_usuario, campo fazendas); só nas fazendas a que você também tem acesso (VOCE_TAMBEM_TEM em consultar_usuarios). GRAVA no upCampo. Diga ao usuário quem, em qual fazenda e o que muda, e confirme antes de chamar.

listar_alertas

ChatGPT
Lista os alertas que o próprio usuário programou (criar_alerta), de todas as fazendas, com o número, quando chega, o próximo envio e se está ativo ou pausado: "quais alertas eu tenho". Não grava nada.

listar_fazendas

ChatGPT
Diz com qual usuário upCampo a conexão está autenticada e lista as fazendas (filiais) que ele pode consultar, com a empresa, os assuntos liberados em cada uma e qual é a fazenda corrente. Use quando o usuário perguntar quais fazendas tem, ou quando citar uma fazenda por um nome que você precisa conferir. Não é necessária antes de uma consulta comum: sem fazenda informada, as tools já usam a corrente.

listar_safras

ChatGPT
Lista as safras da fazenda, com período, culturas, área total e qual é a safra corrente — inclusive as que ainda não têm talhão plantado (QTDE_TALHOES 0, sem cultura). Use antes de filtrar qualquer consulta por safra. ID_SAFRA é o que cadastrar_plantio pede.

pausar_alerta

ChatGPT
Pausa um alerta do usuário ("pausa até dia 30", "para o resumo por enquanto"). Com pausar_ate, volta sozinho depois dessa data, sem mandar o que ficou para trás; sem data, fica parado até retomar_alerta. Cada alerta tem um número (Alerta 1, Alerta 2…), o mesmo que vai no topo do envio: use em id_alerta o número que o usuário citou ("o alerta 3" → "3") ou o id de listar_alertas; na dúvida, liste antes. Só os alertas do próprio usuário. Regras (o upCampo recusa; avise antes de chamar): só alerta do próprio usuário e que não foi cancelado. GRAVA no upCampo: confirme com o usuário qual alerta e o que muda antes de chamar.

reabrir_contrato

ChatGPT
Reabre contratos finalizados (ID_CONTRATO de consultar_pos_colheita, visão contratos): volta para Aberto e refaz o saldo (contratado − embarcado), para receber romaneio ou aditivo de novo. Regras (o upCampo recusa; avise antes de chamar): só contrato finalizado pode ser reaberto; um contrato aparece uma vez só na lista. GRAVA no upCampo. Confirme com o usuário o contrato e os valores antes de chamar.

remover_acessos_usuario

ChatGPT
Tira todas as permissões de um usuário numa fazenda, como o "Desmarcar todos" da tela Usuários. Ele continua vinculado à fazenda; tirar alguém da fazenda é pelo portal. Cada item é um usuário numa fazenda (id_usuario e id_fazenda de consultar_usuarios; sem id_fazenda, a fazenda desta chamada). O efeito na UPí (no WhatsApp e aqui) leva alguns segundos. Regras (o upCampo recusa; avise antes de chamar): o usuário tem de estar numa das suas empresas e já vinculado à fazenda (vincule com cadastrar_usuario, campo fazendas); só nas fazendas a que você também tem acesso (VOCE_TAMBEM_TEM em consultar_usuarios); você não aplica isto a si mesmo. GRAVA no upCampo. Diga ao usuário quem, em qual fazenda e o que muda, e confirme antes de chamar.

retomar_alerta

ChatGPT
Volta a enviar um alerta pausado ("volta a mandar"), a partir do próximo horário. Cada alerta tem um número (Alerta 1, Alerta 2…), o mesmo que vai no topo do envio: use em id_alerta o número que o usuário citou ("o alerta 3" → "3") ou o id de listar_alertas; na dúvida, liste antes. Só os alertas do próprio usuário. Regras (o upCampo recusa; avise antes de chamar): só alerta do próprio usuário e que não foi cancelado; o alerta tem de ainda ter envio pela frente (data de fim já passada ou alerta de uma vez só com a data vencida não voltam: altere a data com alterar_alerta); o usuário precisa ter WhatsApp no cadastro. GRAVA no upCampo: confirme com o usuário qual alerta e o que muda antes de chamar.

trocar_fazenda_corrente

ChatGPT
Troca a fazenda corrente do usuário: a que a UPí usa quando ele não cita fazenda, aqui e no WhatsApp. Use quando ele disser "agora quero a fazenda X", "muda para a X", "trabalhar na X". Só entre as fazendas que ele já tem (listar_fazendas). Para trocar a de outra pessoa, definir_fazenda_corrente_usuario. A troca leva alguns segundos para valer; até lá, passe a fazenda nas consultas. GRAVA no upCampo (a preferência do usuário). Confirme a fazenda antes de chamar.

Capabilities

Writes

Similar Apps