Ejemplos: | | Bloco de código |
|---|
| language | delphi |
|---|
| theme | Midnight |
|---|
| title | Inclusión PC - Prorrateo de CC / Proyecto / Anticipo |
|---|
| 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"}} //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" MÓDULO "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
| | language | delphi |
|---|
| theme | Midnight |
|---|
| title | Inclusão PC - Rateio de CC / Projeto / Adiantamento |
|---|
| 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"}} //Projeto, Tarefa
Local aCCusto := {{40,"01","101010","333330","CL0001"},{60,"02","101011","333330","CL0001"}} //Porcentagem,Centro de Custo, Conta Contabil, Item Conta, CLVL
Local nX := 0
Local cDoc := ""
Local nOpc := 3
PRIVATE lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM"
dbSelectArea("SC7")
//Teste de Inclusão
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_FILENTNUM" ,cFilAntcDoc})
aadd(aCabec,{"C7_TPFRETEEMISSAO" ,"C"dDataBase})
aadd(aCabec,{"C7_FRETEFORNECE" ,15})
For nX := 1 To 1
aLinha := {}
aadd(aLinha"001 "})
aadd(aCabec,{"C7_LOJA" ,"01"})
aadd(aCabec,{"C7_PRODUTOCOND" ,"0001001",Nil})
aadd(aLinhaaCabec,{"C7_QUANTCONTATO" ,1 ,Nil"AUTO"})
aadd(aLinhaaCabec,{"C7_PRECOFILENT" ,100 ,NilcFilAnt})
aadd(aLinhaaCabec,{"C7_TOTALTPFRETE" ,100 ,Nil"C"})
aadd(aItens,aLinha)
Next nX
//Rateio Centro de Custo
aAdd(aRatCC, Array(2))
aRatCC[1][1] := "0001"
aRatCC[1][2] := {}
For nX := 1 To Len(aCCusto)aCabec,{"C7_FRETE" ,15})
For nX := 1 To 1
aLinha := {}
aAddaadd(aLinha, {"CHC7_FILIALPRODUTO" , xFilial("SCH0001"), Nil})
aAddaadd(aLinha, {"CHC7_ITEMQUANT" , PadL(nX, TamSx3("CH_ITEM")[1], "0"), 1 ,Nil})
aadd(aLinha,{"C7_PRECO" ,100 ,Nil})
aAddaadd(aLinha, {"CHC7_PERCTOTAL" ,100 aCCusto[nX][1], Nil})
aAddaadd(aItens,aLinha, {"CH_CC" , aCCusto[nX][2], Nil})
aAdd(aLinha, {"CH_CONTA" , aCCusto[nX][3], Nil})
)
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_ITEMCTAFILIAL" , aCCusto[nX][4]xFilial("SCH"), Nil})
aAdd(aLinha, {"CH_CLVLITEM" , aCCusto[nX][5]PadL(nX, TamSx3("CH_ITEM")[1], "0"), Nil})
aAdd(aRatCC[1][2], aClone(aLinha))
Next nX
//Rateio Projeto
aAdd(aRatPrj, Array(2))
aRatPrj[1aLinha, {"CH_PERC" , aCCusto[nX][1] := "0001"
aRatPrj[1, Nil})
aAdd(aLinha, {"CH_CC" , aCCusto[nX][2], := {}
For nX := 1 To Len(aItemPrj)
aLinha := {}
Nil})
aAdd(aLinha, {"AJ7CH_FILIALCONTA" , xFilial("AJ7") aCCusto[nX][3], Nil})
aAdd(aLinha, {"AJ7CH_PROJETITEMCTA" , aItemPrjaCCusto[nX][14], Nil})
aAdd(aLinha, {"AJ7CH_TAREFACLVL" , PadR(aItemPrjaCCusto[nX][25],TamSX3("AF9_TAREFA")[1]), Nil})
aAdd(aLinha, {"AJ7_NUMPC" , cDoc , Nil})
aAdd(aLinha, {"AJ7_ITEMPC" , "0001" , Nil})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_CODFILIAL" , xFilial("0001AJ7") , Nil})
aAdd(aLinha, {"AJ7_QUANTPROJET" , aItemPrj[nX][1 ], Nil})
aAdd(aLinha, {"AJ7_REVISATAREFA" , "0001" PadR(aItemPrj[nX][2],TamSX3("AF9_TAREFA")[1]), Nil})
aAdd(aRatPrj[1][2], aClone(aLinha))
Next nX
//Adiantamento
aLinha := {}aLinha, {"AJ7_NUMPC" , cDoc , Nil})
aAdd(aLinha, {"FIEAJ7_FILIALITEMPC" , xFilial("FIE0001" , Nil})
aAdd(aLinha, Nil}) {"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_CARTFILIAL", xFilial("PFIE"), Nil}) // Carteira pagar Nil})
aAdd(aLinha, {"FIE_PEDIDOCART", "P" , Nil}) // Não precisa, pois quem trata é a MATA120
aAdd(aLinha, {"FIE_PREFIX", PadR("A", TamSX3("FIE_PREFIX")[1]), Nil}) //Prefixo Cartera por pagar
aAdd(aLinha, {"FIE_NUMPEDIDO", PadR("PAPC01" , TamSX3("FIE_NUM")[1]), Nil}) //Numero Titulo
aAdd(aLinha, {"FIE_PARCEL", PadR("1", TamSX3("FIE_PARCEL")[1]), Nil}) //Parcela
aAdd(aLinha, {"FIE_TIPO", PadR("PA", TamSX3("FIE_TIPO")[1]), Nil}) //Tipo = PA Nil}) // No necesita, pues quién trata es MATA120
aAdd(aLinha, {"FIE_FORNECPREFIX", PadR("001 A", TamSX3("FIE_FORNECPREFIX")[1]), Nil}) // Fornecedor
aAdd(aLinha, Nil}) //Prefijo
aAdd(aLinha, {"FIE_LOJANUM", PadR("01PAPC01", TamSX3("FIE_LOJANUM")[1]), NilNil}) //LojaNúmero título
aAdd(aLinha, {"FIE_VALORPARCEL", 100PadR("1", Nil}) // Valor do pa que está vinculado ao 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!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
| Bloco de código |
|---|
| language | delphi |
|---|
| theme | Midnight |
|---|
| title | Alteração PC - Rateio de CC / Projeto / Adiantamento |
|---|
| 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"}} //Projeto, Tarefa
Local aCCusto := {{40,"01","101010","333330","CL0001"},{60,"02","101011","333330","CL0001"}} //Porcentagem,Centro de Custo, Conta Contabil, Item Conta, CLVL
Local nX := 0
Local cDoc := ""
Local nOpc := 4
PRIVATE lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM"
dbSelectArea("SC7")
//Teste de alteração
cDoc := "000054" //Informar PC ou AE (Alteração / Exclusão)
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ção de pagamento que permite adiantamento
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 novo item no 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)
//alterado Rateio Centro de Custo do item 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
//Rateio Centro de Custo novo item
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 no financeiro.
aLinha := {}
aAdd(aLinha, {"FIE_FILIAL", xFilial("FIE"), Nil})
aAdd(aLinha, {"FIE_CART", "P", Nil}) // Carteira pagar
aAdd(aLinha, {"FIE_PEDIDO", cDoc, Nil}) // Numero pedido de compras
aAdd(aLinha, {"FIE_PREFIX", PadR("A", TamSX3("FIE_PREFIX")[1]), Nil}) //Prefixo
aAdd(aLinha, {"FIE_NUM", PadR("PAPC01", TamSX3("FIE_NUM")[1]), Nil}) //Numero Titulo
aAdd(aLinha, {"FIE_PARCEL", PadR("1", TamSX3("FIE_PARCEL")[1]), Nil}) //Parcela
aAdd(aLinha, {"FIE_TIPO", PadR("PA", TamSX3("FIE_TIPO")[1]), Nil}) //Tipo = PA
aAdd(aLinha, {"FIE_FORNEC", PadR("001", TamSX3("FIE_FORNEC")[1]), Nil}) // Fornecedor
aAdd(aLinha, {"FIE_LOJA", PadR("01", TamSX3("FIE_LOJA")[1]), Nil}) //Loja
aAdd(aLinha, {"FIE_VALOR", 300, Nil}) // Valor do pa que está vinculado ao 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 na alteracao!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
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
Return |
| Bloco de código |
|---|
| language | delphi |
|---|
| theme | Midnight |
|---|
| title | Modificación PC - Prorrateo de CC / Proyecto / Anticipo |
|---|
| 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"}} //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)) | | Bloco de código |
|---|
| language | delphi |
|---|
| theme | Midnight |
|---|
| title | Exclusão 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"}} //Projeto, Tarefa
Local aCCusto := {{40,"01","101010","333330","CL0001"},{60,"02","101011","333330","CL0001"}} //Porcentagem, Centro de Custo, Conta Contábil, Item Conta, 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,f,g,h| MATA120(a,b,c,d,e,f,g,h)},1,aCabec,aItens,nOpc,.F.,aRatCC,aAdtPC)
If !lMsErroAuto
ConOut("ExclusaoAlterado PC: "+cDoc)
Else
ConOut("Erro¡Error en nala exclusãomodificación!")
MostraErro()
EndIf
RESET ENVIRONMENT
Return |
|