O cadastro de Produtos contém as principais informações sobre produtos e serviços adquiridos, fabricados ou fornecidos pela empresa, realizando o controle desses produtos em todos os módulos do Sistema.
As empresas exclusivamente comerciais tem, possivelmente, apenas produtos para revenda e materiais de consumo.
As empresas industriais tem, possivelmente, todos os tipos de produtos ou materiais utilizados para produção: Produtos Acabados, Produtos Intermediários, Matérias-primas, Materiais de Consumo e Outros, inclusive Mão de Obra ou Serviços Agregados a fabricação que devem compor o custo do produto final.
A definição de produto é genérica e abrange muitos conceitos que podem variar de acordo com o ramo de atuação da organização.
#INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" User Function TMata010() Local aVetor := {} private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" //--- Exemplo: Inclusao --- // aVetor:= { {"B1_COD" ,"9994" ,NIL},; {"B1_DESC" ,"PRODUTO TESTE - ROTINA AUTOMATICA" ,NIL},; {"B1_TIPO" ,"PA" ,Nil},; {"B1_UM" ,"UN" ,Nil},; {"B1_LOCPAD" ,"01" ,Nil},; {"B1_PICM" ,0 ,Nil},; {"B1_IPI" ,0 ,Nil},; {"B1_CONTRAT" ,"N" ,Nil},; {"B1_LOCALIZ" ,"N" ,Nil}} MSExecAuto({|x,y| Mata010(x,y)},aVetor,3) //--- Exemplo: Alteracao --- // aVetor:= { {"B1_COD" ,"9994" ,NIL},; {"B1_DESC" ,"PRODUTO TESTE - ALTERADO" ,NIL}} MSExecAuto({|x,y| Mata010(x,y)},aVetor,4) //--- Exemplo: Exclusao --- // aVetor:= { {"B1_COD" ,"9994" ,NIL},; {"B1_DESC" ,"PRODUTO TESTE - ROTINA AUTOMATICA" ,NIL}} MSExecAuto({|x,y| Mata010(x,y)},aVetor,5) If lMsErroAuto MostraErro() Else Alert("Ok") Endif Return |
#INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" #INCLUDE 'Protheus.ch' #INCLUDE 'FWMVCDef.ch' //------------------------------------------------------------------------ /* EXEMPLO DE INCLUSÃO MODELO 1 */ //------------------------------------------------------------------------ User Function m010IncRa() Local oModel := Nil Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" oModel := FwLoadModel ("MATA010") oModel:SetOperation(MODEL_OPERATION_INSERT) oModel:Activate() oModel:SetValue("SB1MASTER","B1_COD" ,"RASB100") oModel:SetValue("SB1MASTER","B1_DESC" ,"PRODUTO TESTE 00") oModel:SetValue("SB1MASTER","B1_TIPO" ,"PA") oModel:SetValue("SB1MASTER","B1_UM" ,"UN") oModel:SetValue("SB1MASTER","B1_LOCPAD" ,"01") oModel:SetValue("SB1MASTER","B1_LOCALIZ" ,"N") If oModel:VldData() oModel:CommitData() MsgInfo("Registro INCLUIDO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() oModel:Destroy() oModel := NIL Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE INCLUSÃO MODELO 1 (Utilizando a função FwMvcRotAuto apenas em caráter didático) */ //------------------------------------------------------------------------ User Function m010Inc1Ra() Local aDadoscab := {} Local aDadosIte := {} Local aItens := {} Private oModel := Nil Private lMsErroAuto := .F. Private aRotina := {} PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" oModel := FwLoadModel ("MATA010") //Adicionando os dados do ExecAuto cab aAdd(aDadoscab, {"B1_COD" ,"RASB101" , Nil}) aAdd(aDadoscab, {"B1_DESC" ,"PRODUTO TESTE" , Nil}) aAdd(aDadoscab, {"B1_TIPO" ,"PA" , Nil}) aAdd(aDadoscab, {"B1_UM" ,"UN" , Nil}) aAdd(aDadoscab, {"B1_LOCPAD" ,"01" , Nil}) aAdd(aDadoscab, {"B1_LOCALIZ" ,"N" , Nil}) //Chamando a inclusão - Modelo 1 lMsErroAuto := .F. FWMVCRotAuto( oModel,"SB1",MODEL_OPERATION_INSERT,{{"SB1MASTER", aDadoscab}}) //Se houve erro no ExecAuto, mostra mensagem If lMsErroAuto MostraErro() //Senão, mostra uma mensagem de inclusão Else MsgInfo("Registro incluido!", "Atenção") EndIf Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE INCLUSÃO MODELO 2 (Utilizando a função FwMvcRotAuto apenas em caráter didático) */ //------------------------------------------------------------------------ User Function m010Inc2Ra() Local aDadoscab := {} Local aDadosIte := {} Local aItens := {} Private oModel := Nil Private lMsErroAuto := .F. Private aRotina := {} PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" oModel := FwLoadModel ("MATA010") //Adicionando os dados do ExecAuto cab aAdd(aDadoscab, {"B1_COD" ,"RASB102" , Nil}) aAdd(aDadoscab, {"B1_DESC" ,"PRODUTO TESTE" , Nil}) aAdd(aDadoscab, {"B1_TIPO" ,"PA" , Nil}) aAdd(aDadoscab, {"B1_UM" ,"UN" , Nil}) aAdd(aDadoscab, {"B1_LOCPAD" ,"01" , Nil}) aAdd(aDadoscab, {"B1_LOCALIZ" ,"N" , Nil}) //Adicionando os dados do ExecAuto Item //Produtos alternativos (já deve existir na base) If "SGI" $ SuperGetMv("MV_CADPROD",,"|SA5|SBZ|SB5|DH5|SGI|") aAdd(aDadosIte, {"GI_PRODALT" , "RASB101" , Nil}) aAdd(aDadosIte, {"GI_ORDEM" , "1" , Nil}) //no item o array precisa de um nivel superior. aAdd(aItens,aDadosIte) EndIf //Chamando a inclusão - Modelo 2 lMsErroAuto := .F. FWMVCRotAuto( oModel,"SB1",MODEL_OPERATION_INSERT,{{"SB1MASTER", aDadoscab},{"SGIDETAIL", aItens}}) //Se houve erro no ExecAuto, mostra mensagem If lMsErroAuto MostraErro() //Senão, mostra uma mensagem de inclusão Else MsgInfo("Registro incluido!", "Atenção") EndIf Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE ALTERAÇÃO */ //------------------------------------------------------------------------ User Function m010AltRa() Local oModel := Nil Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" //Posiciona SB1->(DbSetOrder(1)) If SB1->(DbSeek(xFilial("SB1") + "RASB101")) oModel := FwLoadModel ("MATA010") oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() oModel:SetValue("SB1MASTER","B1_DESC","PRODUTO ALTERADO") If oModel:VldData() oModel:CommitData() MsgInfo("Registro ALTERADO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() Else MsgInfo("Registro NAO LOCALIZADO!", "Atenção") EndIf Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE EXCLUSÃO */ //------------------------------------------------------------------------ User Function m010ExcRa() Local oModel := Nil Private aRotina := {} PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" //Posiciona SB1->(DbSetOrder(1)) If SB1->(DbSeek(xFilial("SB1") + "RASB101")) oModel := FwLoadModel ("MATA010") oModel:SetOperation(MODEL_OPERATION_DELETE) oModel:Activate() If oModel:VldData() oModel:CommitData() MsgInfo("Registro EXCLUIDO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() Else MsgInfo("Registro NAO LOCALIZADO!", "Atenção") EndIf Return Nil |
Através da janela principal é possivel consultar os saldos em estoque dos produtos cadastrados. Basta posicionar no produto desejado e pressionar a tecla [F4] para realizar a consulta Saldos em Estoque
Na página principal da rotina, estão disponíveis as opções:
|
|
Nome | Propósito | Link da documentação |
MV_HISTTAB | Histórico de alterações do Cadastro de Produtos | Histórico de alterações do Cadastro de Produtos -- 36773 |
MV_A010FAC | Informa os campos da tabela SB1 que não são considerados no padrão. | <desconhecido> |
MV_MASCGRD | Indica a mascara da grade. O primeiro item indica o tamanho do Código Fixo do Produto. O segundo e terceiro parâmetros indicam o tamanho dos Códigos Variáveis | Grades de Produtos (MATA550 - SIGAEST) |
Nome | Propósito | Equivalente em MVC | Link da documentação |
---|---|---|---|
A010BPE | Utilizado para tratamentos de validações de conteúdo de caracteres especiais no código do produto ou descrição, ou validações especificas. | Não alterado | PEST07675 - A010BPE Ponto utilizado para tratamentos de validações de conteúdo de caracteres especiais no código do produto |
A010TOK | Validação para inclusão ou alteração do Produto | FORMPRE | A010TOK - Validação para inclusão ou alteração do Produto |
M010B5CP | Permite limpar o conteúdo dos campos de complemento de produto | MODELPRE | PEST01023 - M010B5CP - Ponto de entrada para manipulação dos campos de Comp. de Produtos |
M010FILB | Permitir que o usuário filtre os dados a serem exibidos | Não alterado | M010FILB - Cadastro de Produtos |
MA010BUT | Inclusão de botões do usuário na barra de ferramentas do cadastro de Produtos. | BUTTONBAR | MA010BUT - Inclusão de Botões de usuário no Cadastro de Produtos |
MA010FIL | Adiciona filtro para o registro do cadastro de produtos | Não alterado | MA010FIL - Adiciona filtro para o registro do cadastro de produtos |
MT010ALT | Grava/altera Campos de usuário | MODELCOMMITTTS | MT010ALT - Gravaaltera Campos de usuário |
MT010BRW | Adiciona mais opções de menu na Mbrowse | Não alterado | MT010BRW - Adiciona mais opções de menu na Mbrowse |
MT010CAN | Executa customizações conforme retorno | MODELCOMMITNTTS | MT010CAN - Executa customizações conforme retorno |
MT010COR | Ponto de entrada que adiciona legenda de cores na tela de Cadastro de Produtos | Não alterado | MT010COR - Legenda na rotina Cadastro de Produtos |
MT010EXC | Validação de usuário após a validação de exclusão do cadastro de produtos antes da exclusão efetiva | FORMCOMMITTTSPRE | MT010EXC - Validação de Usuário Após Exclusão do Cadastro de Produtos |
MT010GETD | Adiciona Novos Campos na Getdados | Não alterado | MT010GETD - Adiciona Novos Campos na Getdados |
MT010INC | Grava arquivos e campos de usuário | MODELCOMMITTTS | MT010INC - Grava arquivos e campos do usuário |
MT010LIN | Efetua validações complementares por linha do registro inserido | FORMLINEPOS | MT010LIN - Efetua validações complementares por linha do registro inserido |
MT010MEM | Permite ao usuário que monte um vetor contendo a relação dos campos virtuais do tipo MEMO criados. | MODELPRE | MT010MEM - Vetor dos campos virtuais criados |
MT010SIZ | Utilizado para ajustar o percentual de tamanho do cabeçalho e GetDados na tela de produtos alternativos. | Não alterado | MT010SIZ - Ajuste no tamanho do Cabeçalho e Itens do cadastro de produtos alternativos. |
MT010VCP | Visualização do cadastro de produtos | MODELPRE | MT010VCP - Visualização do Cadastro de Produtos |
MT010VLD | Verifica se a copia do produto está apta para utilização. | MODELPRE | MT010VLD - Verifica se a copia do produto está apta para utilização. |
MTA010E | Ponto de Entrada para complementar a exclusão no cadastro do Produto. | MODELCOMMITTTS | MTA010E - Grava arquivos campos do usuário, após exclusão do produto |
MTA010MNU | Ponto de entrada utilizado para inserir novas opcoes no array aRotina | Não alterado | MTA010MNU - Novas opções no Menu MATA010 |
MTA010NC | Relaciona campos que não devem ser copiados na inclusão | MODELPRE | MTA010NC - Relaciona campos que não devem ser copiados na inclusão |
MTA010OK | Valida adicionais para a exclusão do produto | FORMCOMMITTTSPRE | MTA010OK - Valida adicionais para a exclusão do produto |
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |