...
Descripción: | Esta rutina permite el registro de cualquier Pedido de compras de mercaderías en la empresa. El registro del Pedido de compras es el contrato formal entre la empresa y el proveedor | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Programa fuente: | MATA120.PRX | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sintaxis: | MATA120 - Pedido de Compras ( [ ExpN1 ] [ ExpA1 ] [ ExpA2 ] [ ExpN2 ] [ ExpL1 ] [ ExpA3] [ ExpA4 ] [ ExpA5 ])
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DevuelveDevolución | L (Lógico) = .T. (Muestra error) / .F. (OK) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Observaciones: |
| Ejemplos:
| code
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ejemplos: |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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 := |
4 PRIVATE lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MÓDULO "COM" dbSelectArea("SC7") //Prueba de |
modificación cDoc := |
"000054" //Informar 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 := {} // Modificar í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 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 existente en el financiero. aLinha := {} aAdd(aLinha, {"FIE_FILIAL", xFilial("FIE"), Nil}) aAdd(aLinha, {"FIE_CART", "P", Nil}) // Cartera por 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("Alterado PC: "+cDoc)
Else
ConOut("¡Error en la modificación!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#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 nOpc := 5
Local cDoc := "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})
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("Borrado PC: "+cDoc)
Else
ConOut("¡Error en el borrado!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function EXEC120()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nX | ||||||||
| Bloco de código | ||||||||
| ||||||||
#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 := 43 PRIVATE lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" SUCURSAL "01" SUCURSAL "1001" MÓDULO "COM" dbSelectArea MÓDULO "COM" dbSelectArea("SC7") //Prueba de inclusión If nOpc == 3 cDoc := GetSXENum("SC7","C7_NUM") SC7->(dbSetOrder(1)) While SC7->(dbSeek(xFilial("SC7")+cDoc)) //Prueba de modificación ConfirmSX8() cDoc := GetSXENum("SC7"000054" //Informar PC o AE (Modificación / Borrado),"C7_NUM") EndDo Endif aadd(aCabec,{"C7_NUM" ,cDoc}) aadd(aCabec,{"C7_EMISSAO" ,dDataBase}) aadd(aCabec,{"C7_FORNECE" ,"001 COM002"}) aadd(aCabec,{"C7_LOJA" ,"01"}) aadd(aCabec,{"C7_COND" ,"006000"}) // Condición de pago que permite anticipo aadd(aCabec,{"C7_CONTATO" ,"AUTO"}) aadd(aCabec,{"C7_FILENT" ,cFilAnt}) For nX := 1 To 2 aLinha := {} // Modificar ítem existente aadd(aLinha,{"C7_ITEM" ,"0001" StrZero(nX,TamSX3("C7_ITEM")[1]),Nil}) aadd(aLinha,{"C7_PRODUTO" ,"000101",Nil}) aadd(aLinha,{"C7_QUANT" ,101 ,Nil}) aadd(aLinha,{"C7_PRECO" ,10nX*1000 ,Nil}) aadd(aLinha,{"C7_TOTAL" ,100nX*1000 ,Nil}) aAdd(aLinha,{"LINPOS","C7_ITEM" ,"0001"}) aAdd(aLinha,{"AUTDELETA","N" ,Nil}) aadd(aItens,aLinha) aLinha := {} // Incluir nuevo ítem en el pedido If nX == 1 aadd(aLinha,{"C7_ITEMVLDESC" ,"0002"150 ,Nil}) Endif aadd(aItens,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 existente en el financiero. ) Next nX MSExecAuto({|a,b,c,d,e,f,g| MATA120(a,b,c,d)},1,aCabec,aItens,nOpc) If !lMsErroAuto ConOut("Se incluyó PC: " + cDoc) Else ConOut("¡Error en la inclusión!") MostraErro() EndIf RESET ENVIRONMENT Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC120() Local aCabec := {} Local aItens := {} Local aLinha := {} Local nX := 0 Local cDoc := "" Local nOpc := 3 PRIVATE lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" SUCURSAL "01" MÓDULO "COM" dbSelectArea("SC7") //Prueba de inclusión If nOpc == 3 cDoc := GetSXENum("SC7","C7_NUM") SC7->(dbSetOrder(1)) While SC7->(dbSeek(xFilial("SC7")+cDoc)) ConfirmSX8() cDoc := GetSXENum("SC7","C7_NUM") EndDo Endif aadd(aCabec,{"C7_NUM" ,cDoc}) aadd(aCabec,{"C7_EMISSAO" ,dDataBase}) aadd(aCabec,{"C7_FORNECE" ,"COM002"}) aadd(aCabec,{"C7_LOJA" ,"01"}) aadd(aCabec,{"C7_COND" ,"000"}) aadd(aCabec,{"C7_CONTATO" ,"AUTO"}) aadd(aCabec,{"C7_FILENT" ,cFilAnt}) For nX := 1 To 2 aLinha := {} aAdd aadd(aLinha, {"FIEC7_FILIALITEM", xFilial ,StrZero(nX,TamSX3("FIEC7_ITEM")[1]), Nil}) aAdd(aLinha, {"FIE_CART", "P", Nil}) // Cartera por 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 Nil}) aadd(aLinha,{"C7_PRODUTO" ,"01",Nil}) aadd(aLinha,{"C7_QUANT" ,1 ,Nil}) aadd(aLinha,{"C7_PRECO" ,nX*1000 ,Nil}) aadd(aLinha,{"C7_TOTAL" ,nX*1000 ,Nil}) If nX == 1 aadd(aLinha,{"C7_VLDESC" ,300 ,Nil}) aadd(aLinha,{"C7_DESC" ,30 ,Nil}) //Porcentaje aadd(aItens,aLinha) Endif Next nX MSExecAuto({|a,b,c,d,e,f,g| MATA120(a,b,c,d)},1,aCabec,aItens,nOpc) If !lMsErroAuto ConOut("Se incluyó PC: " + cDoc) Else ConOut("¡Error en la inclusión!") MostraErro() EndIf RESET ENVIRONMENT Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User Function EXEC120() Local aCabec := {} Local aItens := {} Local aLinha := {} Local nX := 0 Local cDoc := "" Local nOpc := 3 PRIVATE lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" SUCURSAL "01" MÓDULO "COM" dbSelectArea("SC7") //Prueba de inclusión If nOpc == 3 cDoc := GetSXENum("SC7","C7_NUM") SC7->(dbSetOrder(1)) While SC7->(dbSeek(xFilial("SC7")+cDoc)) ConfirmSX8() cDoc := GetSXENum("SC7","C7_NUM") EndDo Endif aadd(aCabec,{"C7_NUM" ,cDoc}) aadd(aCabec,{"C7_EMISSAO" ,dDataBase}) aadd(aCabec,{"C7_FORNECE" ,"COM002"}) aadd(aCabec,{"C7_LOJA" ,"01"}) aadd(aCabec,{"C7_COND" ,"000"}) aadd(aCabec,{"C7_CONTATO" ,"AUTO"}) aadd(aCabec,{"C7_FILENT" ,cFilAnt}) For nX := 1 To 2 aLinha := {} aadd(aLinha,{"C7_ITEM" ,StrZero(nX,TamSX3("C7_ITEM")[1]),Nil}) aadd(aLinha,{"C7_PRODUTO" ,"01",Nil}) aadd(aLinha,{"C7_QUANT" ,1 ,Nil}) aadd(aLinha,{"C7_PRECO" ,nX*1000 ,Nil}) aadd(aLinha,{"C7_TOTAL" ,nX*1000 ,Nil}) If nX == 1 aadd(aLinha,{"C7_VLDESC" ,300 ,Nil}) aadd(aLinha,{"C7_DESC" ,30 ,Nil}) //Porcentaje aadd(aItens,aLinha) Endif Next nXal 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("AlteradoSe incluyó PC: " + cDoc) Else ConOut("¡Error en la modificacióninclusión!") MostraErro() EndIf RESET ENVIRONMENT Return |
| Bloco de código | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
#Include "Protheus.ch" #Include "RwMake.ch" #Include "TbiConn.ch" User FUnctionFunction EXEC121EXEC120() Local aCabec := {} Local aItens := {} Local aLinha := {} Local aRatCCnX := {}0 Local aRatPrjcDoc := {}"" Local aAdtPC nOpc := {}3 LocalPRIVATE aItemPrjlMsErroAuto := {{"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 nOpc := 5 Local cDoc := "000054" PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MÓDULO "COM" dbSelectArea("SC7").F. PREPARE ENVIRONMENT EMPRESA "99" SUCURSAL "01" MÓDULO "COM" dbSelectArea("SC7") //Prueba de inclusión If nOpc == 3 cDoc := GetSXENum("SC7","C7_NUM") SC7->(dbSetOrder(1)) While SC7->(dbSeek(xFilial("SC7")+cDoc)) ConfirmSX8() cDoc := GetSXENum("SC7","C7_NUM") EndDo Endif aadd(aCabec,{"C7_NUM" ,cDoc}) aadd(aCabec,{"C7_EMISSAO" ,dDataBase}) aadd(aCabec,{"C7_FORNECE" ,"001 COM002"}) aadd(aCabec,{"C7_LOJA" ,"01"}) aadd(aCabec,{"C7_COND" ,"001000"}) aadd(aCabec,{"C7_CONTATO" ,"AUTO"}) aadd(aCabec,{"C7_FILENT" ,cFilAnt}) aadd(aCabec,{"C7_DESC1" ,10}) aadd(aCabec,{"C7_DESC2" ,20}) aadd(aCabec,{"C7_DESC3" ,50}) For nX := 1 ToTo 2 1 aLinha := {} aadd(aLinha,{"C7_ITEM" ,StrZero(nX,4) TamSX3("C7_ITEM")[1]),Nil}) aadd(aLinha,{"C7_PRODUTO" ,StrZero(nX,4),"01",Nil}) aadd(aLinha,{"C7_QUANT" ,1 ,Nil}) aadd(aLinha,{"C7_PRECO" ,150nX*1000 ,Nil}) aadd(aLinha,{"C7_TOTAL" ,150nX*1000 ,Nil}) aadd(aItens,aLinha) Next nX MSExecAuto({|a,b,c,d,e,f,g| MATA120(a,b,c,d,e)},1,aCabec,aItens,nOpc,.F.) If !lMsErroAuto ConOut("BorradoSe incluyó PC: " + cDoc) Else ConOut("¡Error en ella borradoinclusión!") MostraErro() EndIf RESET ENVIRONMENT Return |
...
|