Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Pagetitle
MATA120 - Pedido de Comprascompras
MATA120 - Pedido de Comprascompras
Função
Función: MATA120 - Pedido de Comprascompras

VersõesVersiones:

Microsiga Protheus 8.11, Protheus 10, Protheus 11, Protheus 12

Compatível PaísesCompatible países:

Todos

Sistemas Operacionaisoperativos:

Todos

Compatível às Compatible con las bases de dadosdatos:

Todos

Nivel de Acessoacceso:

Nivel 1 (Acesso Acceso Clientes)

Idiomas:

Todos





DescriçãoDescripción

Essa rotina Esta rutina permite o el registro de qualquer cualquier Pedido de Compras de mercadorias na empresa. O cadastro do Pedido de Compras é o compras de mercaderías en la empresa. El registro del Pedido de compras es el contrato formal entre empresa e o fornecedorla empresa y el proveedor

Programa Fontefuente

MATA120.PRX

SintaxeSintaxis:

MATA120 - Pedido de Compras compras ( [ ExpN1 ] [ ExpA1 ] [ ExpA2 ] [ ExpN2 ] [ ExpL1 ] [ ExpA3] [ ExpA4 ] [ ExpA5 ])


NomeNombre

Tipo

DescriçãoDescripción

DefaultEstándar

Obrigatório

Obligatorio

Referência

Referencia

ExpN1

Numérico

Pedido de Compras ou Autorização de Entregacompras o Autorización de entrega




ExpA1

Array

Cabeçalho do

Encabezado del PC

ou

o AE




ExpA2

Array

Itens do

Ítems del PC

ou

o AE




ExpN2

Numérico

Opção da rotina

Opción de la rutina automática



3 - InclusãoInclusión

4 - AlteraçãoModificación

5 - ExclusãoBorrado

ExpL1

Lógico

Apresenta

Muestra Dialog (

Tela) da rotina

Pantalla) de la rutina automática




ExpA3

Array

Rateio

Prorrateo de Centro de

Custo

costo




ExpA4

Array

Adiantamento

Anticipo




ExpA5

Array

Rateio

Prorrateo de

Projeto

proyecto




RetornoDevolución

L (Logico) = .T. (Apresentou erroMuestra error) / .F. (OK)

ObservaçõesObservaciones

Os campos de cabeçalho do

Los campos del encabezado del Pedido de

Compras

compras (C7_EMISSAO / C7_FORNECE / C7_LOJA / C7_COND / C7_CONTATO / C7_FILENT)

deverão ser obrigatoriamente informados nesta rotina

deben informarse obligatoriamente en esta rutina.

Os

Los campos de

itens do

ítems del Pedido de

Compras

compras (C7_PRODUTO / C7_QUANT / C7_PRECO)

deverão ser obrigatoriamente informados nesta rotina.Se informar o

deben informarse obligatoriamente en esta rutina.

Si se informa el campo (C7_MOEDA),

o

el campo (C7_TXMOEDA)

também devera ser informado nos itens do pedido.Se for alterar ou excluir um

también debe informarse en los ítems del pedido.

Si modificara o borrara un pedido de compra,

o

el campo (C7_REC_WT)

tem

tiene que estar

preenchido com o numero do

completado con el número del registro (SC7->(Recno())

 

Alteração de

Modificación del Pedido de

Compras

compras:

Para

alterar/excluir item já existente no

modificar/borrar ítems existentes en el Pedido de

Compras, deve-se utilizar o LINPOS e

compras, debe utilizarse el LINPOS y AUTODELETA

Para incluir

um novo item em um pedido já existente, deve-se informar o

un nuevo ítem en un pedido existente, debe informarse el campo (C7_ITEM)

com um

con un registro

novo

nuevo,

e NÃO

y NO utilizar

o

el LINPOS

e

ni AUTODELETA.

 

Atender

Solicitações

Solicitudes de

Compras

compra:

Para que

seja atendida a SC, deve-se informar os seguintes campos nos itens do

se atienda la SC, deben informarse los siguientes campos en los ítems del PC.

C7_NUMSC (Numero

da solicitação

de la solicitud) = Informar

o numero da solicitação de Compras que originou o Pedido de Compras

el número de la solicitud de Compras que originó el Pedido de compras

C7_ITEMSC (

Item da solicitação

Ítem de la solicitud) = Informar

o item da solicitação

el ítem de la solicitud de compras que

esta

está vinculada

ao

al Pedido de

Compras

compras

C7_QTDSOL (

Quantidade

Cantidad pedido

da

de la SC) = Informar

a quantidade da solicitação

la cantidad de la solicitud de compras vinculada

ao

al Pedido de

Compras

compras

 

Rateio

Prorrateo por Centro de

Custo

costo:

O

El array de centro de

custo deve ser passado com todos os campos e seguindo a mesma ordem do exemplo abaixo

Rateio de Projeto: (Opção disponível a partir da versão 11)

O array de projeto deve ser passado com todos os campos e seguindo a mesma ordem do exemplo abaixo.

Adiantamento:

O array de adiantamento deve ser passado com todos os campos e seguindo a mesma ordem do exemplo abaixo.

costo debe transferirse con todos los campos y siguiendo el mismo orden del siguiente ejemplo

 

Prorrateo de proyecto: (Opción disponible a partir de la versión 11)

El array del proyecto debe transferirse con todos los campos y siguiendo el mismo orden del siguiente ejemplo.

 

Anticipo:

El array de anticipo debe transferirse con todos los campos y siguiendo el mismo orden del siguiente ejemplo.


EjemplosExemplos:

#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"

User FUnction EXEC121()

Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local aRatCC := {}
Local aRatPrj := {}
Local aAdtPC := {}
Local aItemPrj := {{"01","02"},{"02","01"}} //
ProjetoProyecto, TarefaTarea
Local aCCusto := {{40,"01","101010","333330","CL0001"},{60,"02","101011","333330","CL0001"}} //
PorcentagemPorcentaje, Centro de Custocosto, Conta Contabil, Item ContaCuenta contable, Ítem cuenta, CLVL
Local nX := 0
Local cDoc := ""
Local nOpc := 3

PRIVATE lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "01" FILIAL SUCURSAL "1001" MODULO "COM"

dbSelectArea("SC7")

//Teste Prueba de Inclusãoinclusión
cDoc := GetSXENum("SC7","C7_NUM")
SC7->(dbSetOrder(1))
While SC7->(dbSeek(xFilial("SC7")+cDoc))
ConfirmSX8()
cDoc := GetSXENum("SC7","C7_NUM")
EndDo

aadd(aCabec,{"C7_NUM" ,cDoc})
aadd(aCabec,{"C7_EMISSAO" ,dDataBase})
aadd(aCabec,{"C7_FORNECE" ,"001 "})
aadd(aCabec,{"C7_LOJA" ,"01"})
aadd(aCabec,{"C7_COND" ,"001"})
aadd(aCabec,{"C7_CONTATO" ,"AUTO"})
aadd(aCabec,{"C7_FILENT" ,cFilAnt})

For nX := 1 To 1
aLinha := {}
aadd(aLinha,{"C7_PRODUTO" ,"0001",Nil})
aadd(aLinha,{"C7_QUANT" ,1 ,Nil})
aadd(aLinha,{"C7_PRECO" ,100 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,100 ,Nil})
aadd(aItens,aLinha)
Next nX

//Rateio Prorrateo Centro de Custocosto
aAdd(aRatCC, Array(2))
aRatCC[1][1] := "0001"
aRatCC[1][2] := {}

For nX := 1 To Len(aCCusto)
aLinha := {}
aAdd(aLinha, {"CH_FILIAL" , xFilial("SCH"), Nil})
aAdd(aLinha, {"CH_ITEM" , PadL(nX, TamSx3("CH_ITEM")[1], "0"), Nil})
aAdd(aLinha, {"CH_PERC" , aCCusto[nX][1], Nil})
aAdd(aLinha, {"CH_CC" , aCCusto[nX][2], Nil})
aAdd(aLinha, {"CH_CONTA" , aCCusto[nX][3], Nil})
aAdd(aLinha, {"CH_ITEMCTA" , aCCusto[nX][4], Nil})
aAdd(aLinha, {"CH_CLVL" , aCCusto[nX][5], Nil})

aAdd(aRatCC[1][2], aClone(aLinha))
Next nX

//Rateio ProjetoProrrateo Proyecto
aAdd(aRatPrj, Array(2))
aRatPrj[1][1] := "0001"
aRatPrj[1][2] := {}

For nX := 1 To Len(aItemPrj)
aLinha := {}
aAdd(aLinha, {"AJ7_FILIAL" , xFilial("AJ7") , Nil})
aAdd(aLinha, {"AJ7_PROJET" , aItemPrj[nX][1], Nil})
aAdd(aLinha, {"AJ7_TAREFA" , PadR(aItemPrj[nX][2],TamSX3("AF9_TAREFA")[1]), Nil})
aAdd(aLinha, {"AJ7_NUMPC" , cDoc , Nil})
aAdd(aLinha, {"AJ7_ITEMPC" , "0001" , Nil})
aAdd(aLinha, {"AJ7_COD" , "0001" , Nil})
aAdd(aLinha, {"AJ7_QUANT" , 1 , Nil})
aAdd(aLinha, {"AJ7_REVISA" , "0001" , Nil})
aAdd(aRatPrj[1][2], aClone(aLinha))
Next nX

//AdiantamentoAnticipo
aLinha := {}
aAdd(aLinha, {"FIE_FILIAL", xFilial("FIE"),                                                            Nil})
aAdd(aLinha, {"FIE_CART",   "P",                                                                        Nil}) //
Carteira Cartera pagar
aAdd(aLinha, {"FIE_PEDIDO", "" ,                                                                       Nil}) //
Não precisa, pois quem trata é a No necesita, pues quien trata es MATA120
aAdd(aLinha, {"FIE_PREFIX", PadR("A", TamSX3("FIE_PREFIX")[1]),                    Nil}) //
PrefixoPrefijo
aAdd(aLinha, {"FIE_NUM",    PadR("PAPC01", TamSX3("FIE_NUM")[1]),            Nil}) //Numero Titulo
aAdd(aLinha, {"FIE_PARCEL", PadR("1", TamSX3("FIE_PARCEL")[1]),                  Nil}) //
ParcelaCuota
aAdd(aLinha, {"FIE_TIPO",   PadR("PA", TamSX3("FIE_TIPO")[1]),                       Nil}) //Tipo = PA
aAdd(aLinha, {"FIE_FORNEC", PadR("001 ", TamSX3("FIE_FORNEC")[1]),          Nil}) //
FornecedorProveedor
aAdd(aLinha, {"FIE_LOJA",   PadR("01", TamSX3("FIE_LOJA")[1]),                       Nil}) //
LojaTienda
aAdd(aLinha, {"FIE_VALOR",  100,                                                                     Nil}) // Valor
do de pa que está vinculado ao al pedido
aAdd(aAdtPC, aClone(aLinha))  

 

MSExecAuto({|a,b,c,d,e,f,g,h| MATA120(a,b,c,d,e,f,g,h)},1,aCabec,aItens,nOpc,.F.,aRatCC,aAdtPC,aRatPrj)

If !lMsErroAuto
ConOut("Incluido PC: "+cDoc)
Else
ConOut("
Erro na inclusao¡Error en la inclusión!")
MostraErro()
EndIf

RESET ENVIRONMENT

PREPARE ENVIRONMENT EMPRESA "01" FILIAL SUCURSAL "1001" MODULO "COM"

dbSelectArea("SC7")

//Teste Prueba de alteraçãomodificación
nOpc := 4
cDoc := "000054" //Informar PC
ou o AE (Alteração Modificación / ExclusãoBorrado)

aadd(aCabec,{"C7_NUM" ,cDoc})
aadd(aCabec,{"C7_EMISSAO" ,dDataBase})
aadd(aCabec,{"C7_FORNECE" ,"001 "})
aadd(aCabec,{"C7_LOJA" ,"01"})
aadd(aCabec,{"C7_COND" ,"001"})
aadd(aCabec,{"C7_CONTATO" ,"AUTO"})
aadd(aCabec,{"C7_FILENT" ,cFilAnt})

For nX := 1 To 2
aLinha := {}

If nX == 1 //Alteração do Modificación de 0001
aadd(aLinha,{"C7_ITEM" ,"0001" ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,StrZero(nX,4),Nil})
aadd(aLinha,{"C7_QUANT" ,1 ,Nil})
aadd(aLinha,{"C7_PRECO" ,150 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,150 ,Nil})
aAdd(aLinha,{"LINPOS","C7_ITEM" ,"0001"})
aAdd(aLinha,{"AUTDELETA","N" ,Nil})
Else //
Adicionando um novo item no Agregando un nuevo ítem en PC/AE
aadd(aLinha,{"C7_ITEM" ,"0002" ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,StrZero(nX,4),Nil})
aadd(aLinha,{"C7_QUANT" ,1 ,Nil})
aadd(aLinha,{"C7_PRECO" ,200 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,200 ,Nil})
Endif
aadd(aItens,aLinha)
Next nX

MSExecAuto({|a,b,c,d,e| MATA120(a,b,c,d,e)},1,aCabec,aItens,nOpc,.F.)

If !lMsErroAuto
ConOut("
Alterado Se modificó PC: "+cDoc)
Else
ConOut("
Erro na alteracao¡Error en la modificación!")
MostraErro()
EndIf

RESET ENVIRONMENT

PREPARE ENVIRONMENT EMPRESA "01" FILIAL SUCURSAL "1001" MODULO "COM"

dbSelectArea("SC7")

//Teste Prueba de exclusãoborrado
nOpc := 5
cDoc := "000054" //Informar PC
ou o AE (Alteração Modificación / ExclusãoBorrado)

aadd(aCabec,{"C7_NUM" ,cDoc})
aadd(aCabec,{"C7_EMISSAO" ,dDataBase})
aadd(aCabec,{"C7_FORNECE" ,"001 "})
aadd(aCabec,{"C7_LOJA" ,"01"})
aadd(aCabec,{"C7_COND" ,"001"})
aadd(aCabec,{"C7_CONTATO" ,"AUTO"})
aadd(aCabec,{"C7_FILENT" ,cFilAnt})

For nX := 1 To 2
aLinha := {}

aadd(aLinha,{"C7_ITEM" ,StrZero(nX,4) ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,StrZero(nX,4),Nil})
aadd(aLinha,{"C7_QUANT" ,1 ,Nil})
aadd(aLinha,{"C7_PRECO" ,150 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,150 ,Nil})
aadd(aItens,aLinha)
Next nX

MSExecAuto({|a,b,c,d,e| MATA120(a,b,c,d,e)},1,aCabec,aItens,nOpc,.F.)

If !lMsErroAuto
ConOut("
Exclusao Borrado PC: "+cDoc)
Else
ConOut("
Erro na exclusao¡Error en el borrado!")
MostraErro()
EndIf

RESET ENVIRONMENT

Return