...
Versiones: | Microsiga Protheus 8.11, Protheus 10, Protheus 11, Protheus 12 |
Compatible países: | Todos |
Sistemas operativos: | Todos |
Compatible a las bases de datos: | Todos |
Nivel de acceso: | Nivel 1 (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 ( [ ExpN1 ] [ ExpA1 ] [ ExpA2 ] [ ExpN2 ] [ ExpL1 ] [ ExpA3] [ ExpA4 ] [ ExpA5 ])
NomeDescriçãoDefaultObrigatórioReferênciaReferencia | ExpN1 | Numérico | Pedido de | Compras ou Autorização de Entregacompras o Autorización de entrega |
|
|
| ExpA1 | Array | Cabeçalho do ou Itens do ou Opção da rotina Opción de la rutina automática |
|
| 3 - | Inclusão Alteração ExclusãoApresenta Tela) da rotina Pantalla) de la rutina automática |
|
|
| ExpA3 | Array | Rateio CustoAdiantamentoRateio Projeto |
RetornoDevuelve | L (LogicoLógico) = .T. (Apresentou erroMuestra error) / .F. (OK) |
ObservaçõesObservaciones: | | Informações |
|---|
| title | Campos cabeçalhoencabezado |
|---|
| Os Los campos de cabeçalho do encabezado del Pedido de Compras compras (C7_EMISSAO / C7_FORNECE / C7_LOJA / C7_COND / C7_CONTATO / C7_FILENT) deverão ser obrigatoriamente informados nesta rotinadeben informarse obligatoriamente en esta rutina. |
| Informações |
|---|
| title | Campos obrigatórios obligatorios - ItensÍtems |
|---|
| 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/ C7_TOTAL) ), deben informarse obligatoriamente en esta rutina. |
| Informações |
|---|
| Si se informa el Se informar o campo (C7_MOEDA), o el campo (C7_TXMOEDA) também devera ser informado nos itens do también debe informarse en los ítems del pedido. |
| Informações |
|---|
| title | Alterar ou Excluir pedido | Modificar o Borrar pedido |
|---|
| Si modificara o borrara un Se for alterar ou excluir um 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 Comprascompras: 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 novonuevo, e NÃO y NO utilizar o el LINPOS e ni AUTODELETA. |
| Informações |
|---|
| title | Vinculo Vínculo para atender solicitação solicitud de compras |
|---|
| Para que seja atendida a SC, deve-se informar os seguintes campos nos itens do Para que se atienda la SC, deben informarse los siguientes campos en los ítems del PC. C7_NUMSC (Numero da solicitaçãode la solicitud) = Informar o numero da solicitação el número de la solicitud de Compras que originou o originó el Pedido de Comprascompras 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 Comprascompras 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 Comprascompras |
| Informações |
|---|
| title | Rateio Prorrateo - Centro de Custocosto |
|---|
| | O El array de centro de custo deve ser passado com todos os campos e seguindo a mesma ordem do exemplo abaixocosto debe transferirse con todos los campos y siguiendo el mismo orden del siguiente ejemplo |
| Informações |
|---|
| title | Rateio Prorrateo - ProjetoProyecto |
|---|
| ( Opção disponível a partir da versão Opción disponible a partir de la versión 11) O array de projeto deve ser passado com todos os campos e seguindo a mesma ordem do exemplo abaixoEl array del proyecto debe transferirse con todos los campos y siguiendo el mismo orden del siguiente ejemplo. |
| Informações |
|---|
| title | AdiantamentoAnticipo |
|---|
| O El array de adiantamento deve ser passado com todos os campos e seguindo a mesma ordem do exemplo abaixoanticipo debe transferirse con todos los campos y siguiendo el mismo orden del siguiente ejemplo. |
| Informações |
|---|
| title | Inicializando Ambienteentorno |
|---|
| PREPARE ENVIRONMENTNa preparação do ambiente deve ser utilizado o usuário e senha, pois o sistema utiliza o usuário do En la preparación del entorno debe utilizarse el usuario y contraseña, porque el sistema utiliza el usuario del sistema(RetCodUsr()) para realizar a gravação do la grabación del campo C7_USER.
ExemploEjemplo: PREPARE ENVIRONMENT EMPRESA "01" FILIAL SUCURSAL "1001" USER " usuáriousuario" PASSWORD "****" MODULO MÓDULO "COM" |
| Informações |
|---|
| Las informaciones del frete deben enviarse en el encabezado del As informações do frete devem ser enviadas no cabeçalho do pedido de compras. C7_TPFRETE (Tipo Freteflete) C7_FRETE (Valor Freteflete) ObservaçãoObservación: O El valor informado no en el campo C7_FRETE (Valor Freteflete) corresponde ao al valor TOTAL do frete daquele pedido, então se houver 2 ou mais itens esse valor sera rateado entre a quantidade de itens do pedido e seu valor ficar salvo no del flete de aquel pedido, entonces si hubiera 2 o más ítems, este valor será prorrateado entre la cantidad de ítems del pedido y su valor quedará grabado en el campo C7_VALFRE (Valor Freteflete) ExEj.: C7_FRETE = 10 e y PC tem tiene 1 ItemÍtem C7_VALFRE (Valor Freteflete) = 10 C7_FRETE = 20 e y PC tem tiene 4 ItensÍtems C7_VALFRE (Valor Freteflete) = 5 ( Em En cada itemítem, totalizando os los 20 informados no en C7_FRETE) |
|
ExemplosEjemplos: | | Bloco de código |
|---|
| language | delphi |
|---|
| theme | Midnight |
|---|
| title | Inclusão Inclusión PC - Rateio Prorrateo de CC / Projeto Proyecto / AdiantamentoAnticipo |
|---|
| collapse | true |
|---|
| #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, ContaCuenta Contabilcontable, ItemÍtem ContaCuenta, CLVL
Local nX := 0
Local cDoc := ""
Local nOpc := 3
PRIVATE lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" FILIALSUCURSAL "1001" MODULOMÓDULO "COM"
dbSelectArea("SC7")
//TestePrueba 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})
aadd(aCabec,{"C7_TPFRETE" ,"C"})
aadd(aCabec,{"C7_FRETE" ,15})
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
//RateioProrrateo 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
//RateioProrrateo ProjetoProyecto
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}) // Cartera Carteirapor pagar
aAdd(aLinha, {"FIE_PEDIDO", "" , Nil}) // NãoNo precisanecesita, poispues quemquién trata ées a MATA120
aAdd(aLinha, {"FIE_PREFIX", PadR("A", TamSX3("FIE_PREFIX")[1]), Nil}) //PrefixoPrefijo
aAdd(aLinha, {"FIE_NUM", PadRPadR("PAPC01", TamSX3("FIE_NUM")[1]), Nil}) //NumeroNúmero Titulotítulo
aAdd(aLinha, {"FIE_PARCEL", PadR("1", TamSX3("FIE_PARCEL")[1]), Nil}) //ParcelaCuota
aAdd(aLinha, {"FIE_TIPO", PadR("PA", TamSX3("FIE_TIPO")[1]), Nil 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 Nil}) //LojaTienda
aAdd(aLinha, {"FIE_VALOR", 100, Nil}) // Valor do pa que está vinculado ao pedido
aAdd(aAdtPC, aClone(aLinha))
100, Nil}) // Valor del pa que está vinculado 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¡Error en nala inclusaoinclusión!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
| Bloco de código |
|---|
| language | delphi |
|---|
| theme | Midnight |
|---|
| title | Alteração Modificación PC - Rateio Prorrateo de CC / Projeto Proyecto / AdiantamentoAnticipo |
|---|
| collapse | true |
|---|
| #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, ContaCuenta Contabilcontable, ItemÍtem ContaCuenta, CLVL
Local nX := 0
Local cDoc := ""
Local nOpc := 4
PRIVATE lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" FILIALSUCURSAL "1001" MODULOMÓDULO "COM"
dbSelectArea("SC7")
//TestePrueba de alteraçãomodificación
cDoc := "000054" //Informar PC ouo AE (AlteraçãoModificació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" ,"006"}) // CondiçãoCondición de pagamentopago que permite adiantamentoanticipo
aadd(aCabec,{"C7_CONTATO" ,"AUTO"})
aadd(aCabec,{"C7_FILENT" ,cFilAnt})
aLinha := {}
// AlterarModificar itemítem existente
aadd(aLinha,{"C7_ITEM" ,"0001" ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,"0001",Nil})
aadd(aLinha,{"C7_QUANT" ,10,Nil})
aadd(aLinha,{"C7_PRECO" ,10 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,100 ,Nil})
aAdd(aLinha,{"LINPOS","C7_ITEM" ,"0001"})
aAdd(aLinha,{"AUTDELETA","N" ,Nil})
aadd(aItens,aLinha)
aLinha := {}
// Incluir novonuevo ítem itemen noel pedido
aadd(aLinha,{"C7_ITEM" ,"0002" ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,"0002",Nil})
aadd(aLinha,{"C7_QUANT" ,20,Nil})
aadd(aLinha,{"C7_PRECO" ,10 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,200 ,Nil})
aadd(aItens,aLinha)
//alteradomodificado RateioProrrateo Centro de Custocosto dodel itemítem existente
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(aRatCC[1][2], aClone(aLinha))
Next nX
//RateioProrrateo Centro de Custocosto novonuevo itemítem
aAdd(aRatCC, Array(2))
aRatCC[2][1] := "0002"
aRatCC[2][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(aRatCC[2][2], aClone(aLinha))
Next nX
// pa jáexistente existenteen noel financeirofinanciero.
aLinha := {}
aAdd(aLinha, {"FIE_FILIAL", xFilial("FIE"), Nil} Nil})
aAdd(aLinha, {"FIE_CART", "P", Nil Nil}) // Cartera Carteirapor pagar
aAdd(aLinha, {"FIE_PEDIDO", cDoc, Nil}) // NumeroNúmero pedido de compras
aAdd(aLinha, {"FIE_PREFIX", PadR("A", TamSX3("FIE_PREFIX")[1]), Nil}) //PrefixoPrefijo
aAdd(aLinha, {"FIE_NUM", PadRPadR("PAPC01", TamSX3("FIE_NUM")[1]), Nil}) //NumeroNúmero Titulotítulo
aAdd(aLinha, {"FIE_PARCEL", PadR("1", TamSX3("FIE_PARCEL")[1]), Nil}) //ParcelaCuota
aAdd(aLinha, {"FIE_TIPO", PadR("PA", TamSX3("FIE_TIPO")[1]), Nil}) Nil}) //Tipo = PA
aAdd(aLinha, {"FIE_FORNEC", PadR("001", TamSX3("FIE_FORNEC")[1]), NilNil}) // FornecedorProveedor
aAdd(aLinha, {"FIE_LOJA", PadR("01", TamSX3("FIE_LOJA")[1]), Nil Nil}) //LojaTienda
aAdd(aLinha, {"FIE_VALOR", 300 300, Nil}) // Valor do pa que está vinculado ao pedido
aAdd(aAdtPC, aClone( Nil}) // Valor del pa que está vinculado 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)
If !lMsErroAuto
ConOut("Alterado PC: "+cDoc)
Else
ConOut("Erro¡Error en nala alteracaomodificación!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
| Bloco de código |
|---|
| language | delphi |
|---|
| theme | Midnight |
|---|
| title | Exclusão Borrado PC |
|---|
| collapse | true |
|---|
| #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, ContaCuenta Contábilcontable, ItemÍtem ContaCuenta, CLVL
Local nX := 0
Local nOpc := 5
Local cDoc := "000054"
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM"
dbSelectArea("SC7")
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_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 PC: "+cDoc)
Else
ConOut("Erro na exclusão!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
|
Ejemplos:
#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"}} //Proyecto, Tarea
Local aCCusto := {{40,"01","101010","333330","CL0001"},{60,"02","101011","333330","CL0001"}} //Porcentaje,Centro de costo, Cuenta contable, Ítem cuenta, CLVL
Local nX := 0
Local cDoc := ""
Local nOpc := 3
PRIVATE lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MODULO "COM"
dbSelectArea("SC7")
//Prueba de inclusió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
//Prorrateo centro de costo
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
//Prorrateo 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
//Anticipo
aLinha := {}
aAdd(aLinha, {"FIE_FILIAL", xFilial("FIE"), Nil})
aAdd(aLinha, {"FIE_CART", "P", Nil}) // Cartera pagar
aAdd(aLinha, {"FIE_PEDIDO", "" , Nil}) // No es necesario, porque quien trata es MATA120
aAdd(aLinha, {"FIE_PREFIX", PadR("A", TamSX3("FIE_PREFIX")[1]), Nil}) //Prefijo
aAdd(aLinha, {"FIE_NUM", PadR("PAPC01", TamSX3("FIE_NUM")[1]), Nil}) //Número de título
aAdd(aLinha, {"FIE_PARCEL", PadR("1", TamSX3("FIE_PARCEL")[1]), Nil}) //Cuota
aAdd(aLinha, {"FIE_TIPO", PadR("PA", TamSX3("FIE_TIPO")[1]), Nil}) //Tipo = PA
aAdd(aLinha, {"FIE_FORNEC", PadR("001 ", TamSX3("FIE_FORNEC")[1]), Nil}) // Proveedor
aAdd(aLinha, {"FIE_LOJA", PadR("01", TamSX3("FIE_LOJA")[1]), Nil}) //Tienda
aAdd(aLinha, {"FIE_VALOR", 100, Nil}) // Valor del pa que está vinculado 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("Error en la inclusión")
MostraErro()
EndIf
RESET ENVIRONMENT
PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MODULO "COM"
dbSelectArea("SC7")
//Prueba de modificación
nOpc := 4
cDoc := "000054" //Informe PC o AE (Modificación / Borrado)
aadd(aCabec,{"C7_NUM" ,cDoc})
aadd(aCabec,{"C7_EMISSAO" ,dDataBase})
aadd(aCabec,{"C7_FORNECE" ,"001 "})
aadd(aCabec,{"C7_LOJA" ,"01"})
aadd(aCabec,{"C7_COND" ,"006"}) // Condición de pago que permite anticipo
aadd(aCabec,{"C7_CONTATO" ,"AUTO"})
aadd(aCabec,{"C7_FILENT" ,cFilAnt})
aLinha := {}
// Alterar item existente
aadd(aLinha,{"C7_ITEM" ,"0001" ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,"0001",Nil})
aadd(aLinha,{"C7_QUANT" ,10,Nil})
aadd(aLinha,{"C7_PRECO" ,10 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,100 ,Nil})
aAdd(aLinha,{"LINPOS","C7_ITEM" ,"0001"})
aAdd(aLinha,{"AUTDELETA","N" ,Nil})
aadd(aItens,aLinha)
aLinha := {}
// Incluir nuevo ítem en el pedido
aadd(aLinha,{"C7_ITEM" ,"0002" ,Nil})
aadd(aLinha,{"C7_PRODUTO" ,"0002",Nil})
aadd(aLinha,{"C7_QUANT" ,20,Nil})
aadd(aLinha,{"C7_PRECO" ,10 ,Nil})
aadd(aLinha,{"C7_TOTAL" ,200 ,Nil})
aadd(aItens,aLinha)
//modificado Prorrateo centro de costo del ítem existente
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(aRatCC[1][2], aClone(aLinha))
Next nX
//Prorrateo centro de costo nuevo ítem
aAdd(aRatCC, Array(2))
aRatCC[2][1] := "0002"
aRatCC[2][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(aRatCC[2][2], aClone(aLinha))
Next nX
// pa ya existente en el financiero.
aLinha := {}
aAdd(aLinha, {"FIE_FILIAL", xFilial("FIE"), Nil})
aAdd(aLinha, {"FIE_CART", "P", Nil}) // Cartera pagar
aAdd(aLinha, {"FIE_PEDIDO", cDoc, Nil}) // Número pedido de compras
aAdd(aLinha, {"FIE_PREFIX", PadR("A", TamSX3("FIE_PREFIX")[1]), Nil}) //Prefijo
aAdd(aLinha, {"FIE_NUM", PadR("PAPC01", TamSX3("FIE_NUM")[1]), Nil}) //Número título
aAdd(aLinha, {"FIE_PARCEL", PadR("1", TamSX3("FIE_PARCEL")[1]), Nil}) //Cuota
aAdd(aLinha, {"FIE_TIPO", PadR("PA", TamSX3("FIE_TIPO")[1]), Nil}) //Tipo = PA
aAdd(aLinha, {"FIE_FORNEC", PadR("001", TamSX3("FIE_FORNEC")[1]), Nil}) // Proveedor
aAdd(aLinha, {"FIE_LOJA", PadR("01", TamSX3("FIE_LOJA")[1]), Nil}) //Tienda
aAdd(aLinha, {"FIE_VALOR", 300, Nil}) // Valor del pa que está vinculado 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)
If !lMsErroAuto
ConOut("Modificado PC: "+cDoc)
Else
ConOut("Error en la modificacion")
MostraErro()
EndIf
...
PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MODULO "COM"
dbSelectArea("SC7")
//Prueba de borrado
nOpc := 5
cDoc := "000054" //Informe PC o AE (Modificación / Borrado)
= "000054"
PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MÓDULO "COM"
dbSelectArea("SC7")
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}) |
|
...
...
...
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}) |
|
...
...
...
MSExecAuto({|a,b,c,d,e| MATA120(a,b,c,d,e)},1,aCabec,aItens,nOpc,.F.) |
|
...
...
...
...
...
...
...
...
...
ReturnEjemplos: