Moderador: Moderadores
JoséQuintas escreveu:Mas.... já posso instalar nos clientes, mesmo não tendo terminado !!!!
hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->idMdfCab + "-02-SemAssinatura.xml", cXml )
hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->idMdfCab + "-03-Assinado.xml", oSefaz:cXmlDocumento )
hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->idMdfCab + "-04-Recibo.xml", oSefaz:cXmlRecibo )
hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->idMdfCab + "-05-Protocolo.xml", oSefaz:cXmlProtocolo )
hb_MemoWrit( "NFE\MDFE-" + jpmdfcab->idMdfCab + "-06-Retorno.xml", oSefaz:cXmlRetorno )
mIdMdfCab := jpmdfcab->idMdfCab
hb_MemoWrit( "NFE\MDFE-" + midMdfCab + "-02-SemAssinatura.xml", cXml )
hb_MemoWrit( "NFE\MDFE-" + midMdfCab + "-03-Assinado.xml", oSefaz:cXmlDocumento )
hb_MemoWrit( "NFE\MDFE-" + midMdfCab + "-04-Recibo.xml", oSefaz:cXmlRecibo )
hb_MemoWrit( "NFE\MDFE-" + midMdfCab + "-05-Protocolo.xml", oSefaz:cXmlProtocolo )
hb_MemoWrit( "NFE\MDFE-" + midMdfCab + "-06-Retorno.xml", oSefaz:cXmlRetorno )
REPLACE ;
jpmdfcab->idMdfCab WITH StrZero( Val( jpmdfcab->mcNumLan ), 6 ), ;
jpmdfcab->mcMotori WITH StrZero( Val( jpmdfcab->mcMotori ), 6 ), ;
jpmdfcab->mcVeiculo WITH StrZero( Val( jpmdfcab->mcVeiculo ), 6 )
STATIC FUNCTION JPMDFDETCreateDbf( nVersaoDBF )
LOCAL aStruList := { ;
{ "IDMDFDET", "C", 6 }, ;
{ "MDMDFNUM", "C", 6 }, ;
{ "MDNUMDOC", "C", 9 }, ;
{ "MDDATEMI", "D", 8 }, ;
{ "MDUF", "C", 2 }, ;
{ "MDCIDADE", "C", 21 }, ;
{ "MDCLIENTE", "C", 6 }, ;
{ "MDPESO", "N", 6 }, ;
{ "MDVALMER", "N", 12, 2 }, ;
{ "MDCHAVE", "C", 44 }, ;
{ "MDINFINC", "C", 80 }, ;
{ "MDINFALT", "C", 80 } }
hb_Default( @nVersaoDBF, AppVersaoDbfAnt() )
SayScroll( "JPMDFDET.DBF, Verificando atualizações" )
IF ! ValidaStru( "jpmdfdet", aStruList )
MsgStop( "jpmdfdet não disponível!" )
QUIT
ENDIF
IF nVersaoDBF >= 20200324
RETURN NIL
ENDIF
IF ! UseSoDbf( "jpmdfdet", .T. )
QUIT
ENDIF
GrafTempo( "JPMDFDET" )
DO WHILE ! Eof()
GrafTempo( RecNo(), LastRec() )
RecLock()
REPLACE ;
jpmdfdet->mdCliente WITH StrZero( Val( jpmdfdet->mdCliente ), 6 ), ;
jpmdfdet->IdMdfDet WITH StrZero( RecNo(), 6 ), ;
jpmdfdet->mdmdfnum WITH StrZero( Val( jpmdfdet->mdMdfNum ), 6 ), ;
jpmdfdet->mdNumDoc WITH StrZero( Val( jpmdfdet->mdNumDoc ), 9 )
SKIP
ENDDO
CLOSE DATABASES
JPMDFDETCreateDbf( 20200324 )
RETURN NIL
#include "inkey.ch"
#include "josequintas.ch"
MEMVAR nOpcOrdem, acTxtOrdem, midProdutoi, midProdutof, nOpcProDep, acTxtProDep, nOpcProduto
MEMVAR acTxtProduto, nOpcTipoEstoque, acTxtTipoEstoque, mIdProDep
MEMVAR nOpcProSec, acTxtProSec, nOpcProGru, acTxtProGru, mIdProSec, mIdProGru, nOpcPrinterType
PROCEDURE LJPITEM
LOCAL nOpcGeral := 1, acTxtGeral := Array(8), nOpcTemp
PRIVATE nOpcOrdem := 1, acTxtOrdem := { "Código", "Alfabética", "Depto+Seção+Grupo", "Tributação" }
PRIVATE nOpcProduto := 1, mIdProdutoi := 0, midProdutof := 0, acTxtProduto := { "Todos", "Intervalo" }
PRIVATE nOpcProDep := 1, mIdProDep := 0, acTxtProDep := { "Todos", "Específico" }
PRIVATE nOpcProSec := 1, mIdProSec := 0, acTxtProSec := { "Todos", "Específico" }
PRIVATE nOpcProGru := 1, mIdProGru := 0, acTxtProGru := { "Todos", "Específico" }
PRIVATE nOpcTipoEstoque := 1, acTxtTipoEstoque := { "Todos", "Sim (Vendas)", "Não (Vendas)", "Inativo", "Ativo (Bens)", "Uso" }
PRIVATE nOpcPrinterType := AppPrinterType()
IF ! AbreArquivos( "jpempresa" )
RETURN
ENDIF
WOpen( 5, 4, 7 + Len( acTxtGeral ), 45, "Opções disponíveis" )
DO WHILE .T.
acTxtGeral := { ;
TxtImprime(), ;
"Ordem.....: " + acTxtOrdem[ nOpcOrdem ], ;
"Intervalo.: " + iif( nOpcProduto == 1, acTxtProduto[ 1 ], StrZero( midProdutoi, 6 ) + " A " + StrZero( midProdutof, 6 ) ), ;
"Tipo Estoq: " + acTxtTipoEstoque[ nOpcTipoEstoque ], ;
"Depto.....: " + Iif( nOpcProDep == 1, acTxtProDep[ nOpcProDep ], Str( mIdProDep, 6 ) ), ;
"Seção.....: " + iif( nOpcProSec == 1, acTxtProSec[ nOpcProSec ], Str( mIdProSec, 6 ) ), ;
"Grupo.....: " + iif( nOpcProGru == 1, acTxtProGru[ nOpcProGru ], Str( mIdProGru, 6 ) ), ;
"Saída.....: " + TxtSaida()[ nOpcPrinterType ] }
FazAchoice( 7, 5, 6 + Len( acTxtGeral ), 44, acTxtGeral, @nOpcGeral )
nOpcTemp := 1
DO CASE
CASE LastKey() == K_ESC
EXIT
CASE nOpcGeral == nOpcTemp++
IF ConfirmaImpressao()
imprime()
ENDIF
CASE nOpcGeral == nOpcTemp++
WAchoice( nOpcGeral + 6, 25, acTxtOrdem, @nOpcOrdem, "Ordem" )
CASE nOpcGeral == nOpcTemp++
JPPRODUTOClass():Intervalo( nOpcGeral + 6, 25, @nOpcProduto, @midProdutoi, @midProdutof )
CASE nOpcGeral == nOpcTemp++
WAchoice( nOpcGeral+6, 25, acTxtTipoEstoque, @nOpcTipoEstoque, "Tipo de Estoque" )
CASE nOpcGeral == nOpcTemp++
AUXPRODEPClass():Intervalo( nOpcGeral + 6, 25, @nOpcProDep, @mIdProDep )
CASE nOpcGeral == nOpcTemp++
AUXPROSECClass():Intervalo( nOpcGeral + 6, 25, @nOpcProSec, @mIdProSec )
CASE nOpcGeral == nOpcTemp++
AUXPROGRUClass():Intervalo( nOpcGeral + 6, 25, @nOpcProGru, @mIdProGru )
CASE nOpcGeral == nOpcTemp
WAchoice( nOpcGeral+6, 25, TxtSaida(), @nOpcPrinterType, "Saída" )
AppPrinterType( nOpcPrinterType )
ENDCASE
ENDDO
WClose()
RETURN
STATIC FUNCTION imprime()
LOCAL oPDF, mProDep, mProSec, mProGru, mTripro, nKey
LOCAL cnSQL := ADOClass():New( AppConexao() )
oPDF := PDFClass():New()
oPDF:SetType( nOpcPrinterType )
oPDF:Begin()
nKey = 0
oPDF:acHeader := {"","",""}
oPDF:acHeader[ 1 ] = "LISTAGEM DO CADASTRO DE PRODUTOS"
oPDF:acHeader[ 3 ] = Space(15) + "-PRODUTO/" + Pad( "DESCRICAO", 65, "-" ) + " UN PESO_LIQ PESO_BRU MEDIDAS"
oPDF:acHeader[ 2 ] := "Ordem:" + acTxtOrdem[ nOpcOrdem ]
IF nOpcProduto != 1
oPDF:acHeader[ 2 ] := oPDF:acHeader[ 2 ] + ", de: " + StrZero( midProdutoi, 6 ) + " ate: " + StrZero( midProdutof, 6 )
ENDIF
oPDF:acHeader[ 2 ] += ", Est:"+iif( nOpcTipoEstoque == 1, "Todos", acTxtTipoEstoque[ nOpcTipoEstoque ] )
IF nOpcProDep == 2
oPDF:acHeader[ 2 ] += ", Depto " + NumberSQL( mIdProDep )
ENDIF
IF nOpcProSec == 2
oPDF:acHeader[ 2 ] += ", Secao " + NumberSQL( mIdProSec )
ENDIF
IF nOpcProGru == 2
oPDF:acHeader[ 2 ] += ", Grupo " + NumberSQL( mIdProGru )
ENDIF
WITH OBJECT cnSQL
:cSQL := "SELECT" + ;
" IDPRODUTO, IEPRODEP, IEPROSEC, IEPROGRU, IETIPO, IETRIPRO, IEDESCRI," + ;
" IELARGURA, IEALTURA, IEPROFUND, IEUNID, IEPESLIQ, IEPESBRU," + ;
" PRODEP.AXDESCRI AS PRODEPDESCRI," + ;
" PROSEC.AXDESCRI AS PROSECDESCRI," + ;
" PROGRU.AXDESCRI AS PROGRUDESCRI," + ;
" TRIPRO.AXDESCRI AS TRIPRODESCRI" + ;
" FROM JPITEM" + ;
" LEFT JOIN JPAUXILIAR AS PRODEP ON PRODEP.AXTABELA = " + StringSQL( AUX_PRODEP ) + ;
" AND PRODEP.AXCODIGO = JPITEM.IEPRODEP" + ;
" LEFT JOIN JPAUXILIAR AS PROSEC ON PROSEC.AXTABELA = " + StringSQL( AUX_PROSEC ) + ;
" AND PROSEC.AXCODIGO = JPITEM.IEPROSEC" + ;
" LEFT JOIN JPAUXILIAR AS PROGRU ON PROGRU.AXTABELA = " + StringSQL( AUX_PROGRU ) + ;
" AND PROGRU.AXCODIGO = JPITEM.IEPROGRU" + ;
" LEFT JOIN JPAUXILIAR AS TRIPRO ON TRIPRO.AXTABELA = " + StringSQL( AUX_TRIPRO ) + ;
" AND TRIPRO.AXCODIGO = JPITEM.IETRIPRO" + ;
" WHERE 1 = 1"
IF nOpcProduto == 2
:cSQL += " AND IDPRODUTO BETWEEN " + NumberSQL( mIdProdutoi ) + " AND " + NumberSql( mIdProdutof )
ENDIF
IF nOpcProDep == 2
:cSQL += " AND IEPRODEP = " + NumberSQL( mIdProDep )
ENDIF
IF nOpcProSec == 2
:cSQL += " AND IEPROSEC = " + NumberSQL( mIdProSec )
ENDIF
IF nOpcProGru == 2
:cSQL += " AND IEPROGRU = " + NumberSQL( mIdProGru )
ENDIF
IF nOpcTipoEstoque != 1
:cSQL += " AND IETIPO = " + StringSQL( Substr( "XSNIAU", nOpcTipoEstoque, 1 ) )
ENDIF
DO CASE
CASE nOpcOrdem == 1; :cSQL += " ORDER BY IDPRODUTO"
CASE nOpcOrdem == 2; :cSQL += " ORDER BY IEDESCRI"
CASE nOpcOrdem == 3; :cSQL += " ORDER BY PRODEPDESCRI, PROSECDESCRI, PROGRUDESCRI, IEDESCRI"
CASE nOpcOrdem == 4; :cSQL += " ORDER BY IETRIPRO"
ENDCASE
:Execute()
mProDep := 0
mProSec := 0
mProGru := 0
mTriPro := 0
DO WHILE nKey != K_ESC .AND. ! :Eof()
nKey = Inkey()
oPDF:MaxRowTest()
IF nOpcOrdem == 3 .AND. :Number( "IEPRODEP" ) != mProDep
oPDF:DrawText( oPDF:nRow + 1, 0, "D:" + Str( :Number( "IEPRODEP" ), 6 ) + " - " + :String( "PRODEPDESCRI" ) )
mProDep := :Number( "IEPRODEP" )
mProSec := 0
mProGru := 0
oPDF:nRow += 3
oPDF:MaxRowTest()
ENDIF
IF nOpcOrdem == 3 .AND. :Number( "IEPROSEC" ) != mProSec
oPDF:DrawText( oPDF:nRow+1, 5, "S:" + Str( :Number( "IEPROSEC" ), 6 ) + " - " + :String( "PROSECDESCRI" ) )
mProSec := :Number( "IEPROSEC" )
mProGru := 0
oPDF:nRow += 2
oPDF:MaxRowTest()
ENDIF
IF nOpcOrdem == 3 .AND. :Number( "IEPROGRU" ) != mProGru
oPDF:DrawText( oPDF:nRow+1, 10, "G:" + Str( :Number( "IEPROGRU" ), 6 ) + " - " + :String( "PROGRUDESCRI" ) )
mProGru := :Number( "IEPROGRU" )
oPDF:nRow += 2
oPDF:MaxRowTest()
ENDIF
IF nOpcOrdem == 4 .AND. :Number( "IETRIPRO" ) != mTriPro
oPDF:DrawText( oPDF:nRow+1, 15, "T:" + Str( :Number( "IETRIPRO" ), 6 ) + " - " + :String( "TRIPRODESCRI" ) )
mTriPro := :Number( "IETRIPRO" )
oPDF:nRow += 3
oPDF:MaxRowTest()
ENDIF
oPDF:DrawText( oPDF:nRow, 20, Str( :Number( "IDPRODUTO" ), 6 ) )
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, :String( "IEDESCRI", 60 ) )
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, :String( "IEUNID", 6 ) )
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, :Number( "IEPESLIQ" ), PicVal( 9, 3 ) )
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, :Number( "IEPESBRU" ), PicVal( 9, 3 ) )
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, Ltrim( Str( :Number( "IEALTURA" ) ) ) + "x" + ;
Ltrim( Str( :Number( "IELARGURA" ) ) ) + "x" + Ltrim( Str( :Number( "IEPROFUND" ) ) ) )
oPDF:nRow += 1
:MoveNext()
ENDDO
:CloseRecordset()
ENDWITH
oPDF:End()
RETURN NIL
FUNCTION MsgSemRegra( cModulo )
LOCAL cTexto := ""
hb_Default( @cModulo, m_Prog )
cTexto += "REGRA DE TRIBUTAÇÃO:" + hb_eol()
cTexto += hb_eol()
cTexto += "Transação..........: "
IF Empty( jppedido->pdTransa )
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += jppedido->pdTransa + " " + DescricaoJPTRANSA( jppedido->pdTransa )
ENDIF
cTexto += hb_eol() + hb_eol()
cTexto += "Tributação UF......: "
IF Empty( jpuf->ufTriUf )
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += jpuf->ufTriUf + " " + Trim( AUXTRIUFClass():Descricao( jpuf->ufTriUf ) )
ENDIF
cTexto += hb_eol()
cTexto += Space(10) + jpcadastro->cdUf
cTexto += hb_eol() + hb_eol()
cTexto += "Tributação Cadastro: "
IF Empty( jpcadastro->cdTriCad )
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += jpcadastro->cdTriCad + " " + Trim( AUXTRICADClass():Descricao( jpcadastro->cdTriCad ) )
ENDIF
cTexto += hb_eol()
cTexto += Space(10) + jpcadastro->idCadastro + " " + jpcadastro->cdNome
cTexto += hb_eol() + hb_eol()
Encontra( jpcadastro->cdUf, "jpuf", "numlan" )
cTexto += "Tributação Produto.: "
IF Empty( jpitem->ieTriPro )
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += jpitem->ieTriPro + " " + Trim( AUXTRIPROClass():Descricao( jpitem->ieTriPro ) )
ENDIF
cTexto += hb_eol()
cTexto += Space(10) + jpitem->idProduto + " " + jpitem->ieDescri
cTexto += hb_eol() + hb_eol()
IF Empty( jpitped->ipPisCst )
cTexto += "*** produto sem CST PIS ***" + hb_eol()
ENDIF
cTexto += "Posição:" + cModulo + hb_eol()
cTexto += hb_eol()
cTexto += "Não foi encontrada uma regra de tributação para essa combinação de informações" + hb_eol()
cTexto += "Pode ser alguma informação errada, ou falta cadastrar uma regra de tributação com esta combinação" + hb_eol()
cTexto += "Se for na confirmação do pedido, pode faltar passar na digitação de produto pra atualizar pedido" + hb_eol()
MsgWarning( cTexto )
RETURN NIL
FUNCTION MsgSemRegra( mIdItPed, cModulo )
LOCAL cTexto := ""
LOCAL cnSQL := ADOClass():New( AppConexao() )
hb_Default( @cModulo, m_Prog )
WITH OBJECT cnSQL
:cSQL := "SELECT" + ;
" JPPEDIDO.PDTRANSA, JPTRANSA.TRDESCRI," + ;
" JPPEDIDO.PDCADASTRO, JPCADASTRO.CDNOME, JPCADASTRO.CDTRICAD, TRICAD.AXDESCRI AS TRICADDESCRI," + ;
" JPCADASTRO.CDUF, JPUF.UFTRIUF, TRIUF.AXDESCRI AS TRIUFDESCRI," + ;
" JPITPED.IPPRODUTO, JPITEM.IEDESCRI, JPITEM.IETRIPRO, TRIPRO.AXDESCRI AS TRIPRODESCRI" + ;
" FROM JPITPED" + ;
" LEFT JOIN JPPEDIDO ON JPPEDIDO.IDPEDIDO = JPITPED.IPPEDIDO" + ;
" LEFT JOIN JPITEM ON JPITEM.IDPRODUTO = JPITPED.IPPRODUTO" + ;
" LEFT JOIN JPCADASTRO ON JPCADASTRO.IDCADASTRO = JPPEDIDO.PDCADASTRO" + ;
" LEFT JOIN JPTRANSA ON JPTRANSA.IDTRANSA = JPPEDIDO.PDTRANSA" + ;
" LEFT JOIN JPUF ON JPUF.UFUF = JPCADASTRO.CDUF" + ;
" LEFT JOIN JPAUXILIAR AS TRICAD ON TRICAD.AXTABELA = " + StringSQL( AUX_TRICAD ) + ;
" AND TRICAD.AXCODIGO = JPCADASTRO.CDTRICAD" + ;
" LEFT JOIN JPAUXILIAR AS TRIPRO ON TRIPRO.AXTABELA = " + StringSQL( AUX_TRIPRO ) + ;
" AND TRIPRO.AXCODIGO = JPITEM.IETRIPRO" + ;
" LEFT JOIN JPAUXILIAR AS TRIUF ON TRIUF.AXTABELA = " + StringSQL( AUX_TRIUF ) + ;
" AND TRIUF.AXCODIGO = JPUF.UFTRIUF" + ;
" WHERE JPITPED.IDITPED = " + NumberSQL( midItPed )
:Execute()
cTexto += "REGRA DE TRIBUTAÇÃO:" + hb_eol()
cTexto += hb_eol()
cTexto += "Transação..........: "
IF :Number( "PDTRANSA" ) == 0
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += Str( :Number( "PDTRANSA" ), 6 ) + " " + :String( "TRDESCRI" )
ENDIF
cTexto += hb_eol() + hb_eol()
cTexto += "Tributação UF......: "
IF :Number( "UFTRIUF" ) = 0
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += Str( :Number( "UFTRIUF" ), 6 ) + " " + :String( "TRIUFDESCRI" )
ENDIF
cTexto += hb_eol()
cTexto += Space(10) + :String( "CDUF", 2 )
cTexto += hb_eol() + hb_eol()
cTexto += "Tributação Cadastro: "
IF :Number( "CDTRICAD" ) == 0
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += Str( :Number( "CDTRICAD" ), 6 )+ " " + :String( "TRICADDESCRI" )
ENDIF
cTexto += hb_eol()
cTexto += Space(10) + Str( :Number( "PDCADASTRO" ), 6 ) + " " + :String( "CDNOME" )
cTexto += hb_eol() + hb_eol()
cTexto += "Tributação Produto.: "
IF :Number( "IETRIPRO" ) == 0
cTexto += MSG_DESCONHECIDO
ELSE
cTexto += Str( :Number( "IETRIPRO" ), 6 ) + " " + :String( "TRIPRODESCRI" )
ENDIF
cTexto += hb_eol()
cTexto += Space(10) + Str( :Number( "IPPRODUTO" ), 6 ) + " " + :String( "IEDESCRI" )
cTexto += hb_eol() + hb_eol()
cTexto += "Posição:" + cModulo + hb_eol()
cTexto += hb_eol()
cTexto += "Não foi encontrada uma regra de tributação para essa combinação de informações" + hb_eol()
cTexto += "Pode ser alguma informação errada, ou falta cadastrar uma regra de tributação com esta combinação" + hb_eol()
cTexto += "Se for na confirmação do pedido, pode faltar passar na digitação de produto pra atualizar pedido" + hb_eol()
:CloseRecordset()
ENDWITH
MsgWarning( cTexto )
RETURN NIL
METHOD CalculaImpostosProduto( mIdItPed ) CLASS SubPedidoClass
LOCAL mipIcmBas, mipIcmAli, mipIcmRed, mipIcmVal, mipCfop, mipTribut, mipIpiCst, mipIpiEnq
LOCAL mipFcpAli, mipFcpVal, mipIcmCst, mipPisCst, mipPisEnq, mipCofCst, mipCofEnq
LOCAL mipIpiBas, mipIpiAli, mipIpiVal, mipImpAli, mipImpVal
LOCAL mipIssBas, mipIssAli, mipIssVal
LOCAL mipPisBas, mipPisAli, mipPisVal
LOCAL mipCofBas, mipCofAli, mipCofVal
LOCAL mipSubBas, mipSubIva, mipSubAli, mipSubRed, mipSubVal
LOCAL mipValNot, mipIIBas, mipIIVal
LOCAL mipIcsBas, mipIcsVal, mipIcsAli, mipIpiIcm
LOCAL mipValPro, mipValFre, mipValSeg, mipValOut, nCont, mipLeis, mTmpLei, mipValExt
LOCAL mipValDes, mipIIAli, mipDifAlii, mipDifAliu, mipDifAlif, mipDifVali, mipDifValf, mipDifBas, mipDifCal
LOCAL cnSQL := ADOClass():New( AppConexao() )
IF mIdItPed == 0
RETURN NIL
ENDIF
WITH OBJECT cnSQL
:cSQL := ;
" SELECT JPITPED.*," + ;
" JPPEDIDO.PDTRANSA," + ;
" JPCADASTRO.CDUFENT, JPCADASTRO.CDTRICAD," + ;
" JPITEM.IETRIPRO," + ;
" JPUF.UFTRIUF," + ;
" JPTRANSA.TRREACAO," + ;
" JPIBPT.IBNACALI," + ;
" JPIBPT.IBIMPALI," + ;
" JPIMPOSTO.*" + ;
" FROM JPITPED" + ;
" LEFT JOIN JPPEDIDO ON JPPEDIDO.IDPEDIDO = JPITPED.IPPEDIDO" + ;
" LEFT JOIN JPCADASTRO ON JPCADASTRO.IDCADASTRO = JPPEDIDO.PDCADASTRO" + ;
" LEFT JOIN JPITEM ON JPITEM.IDPRODUTO = JPITPED.IPPRODUTO" + ;
" LEFT JOIN JPUF ON JPUF.UFUF = JPCADASTRO.CDUFENT" + ;
" LEFT JOIN JPTRANSA ON JPTRANSA.IDTRANSA = JPPEDIDO.PDTRANSA" + ;
" LEFT JOIN JPIMPOSTO" + ;
" ON JPIMPOSTO.IMTRANSA = JPPEDIDO.PDTRANSA" + ;
" AND JPIMPOSTO.IMTRIUF = JPUF.UFTRIUF" + ;
" AND JPIMPOSTO.IMTRICAD = JPCADASTRO.CDTRICAD" + ;
" AND JPIMPOSTO.IMTRIPRO = JPITEM.IETRIPRO" + ;
" LEFT JOIN JPIBPT ON JPIBPT.IBCODIGO = JPITEM.IENCM" + ;
" WHERE IDITPED = " + NumberSQL( midItPed )
:Execute()
MsgExclamation( ;
"pdtransa: " + :String( "PDTRANSA" ) + hb_Eol() + ;
"triuf: " + :String( "UFTRIUF" ) + hb_Eol() + ;
"tricad:" + :String( "CDTRICAD" ) + hb_Eol() + ;
"tripro:" + :String( "IETRIPRO" ) + hb_Eol() + ;
"tribut:" + :String( "IDIMPOSTO" ) + hb_Eol() + ;
"ok" )
...
IF ! Encontra( jppedido->pdCadastro, "jpcadastro", "numlan" ) .AND. jppedido->pdConf != "S"
MsgWarning( "INVÁLIDO! Cliente sem cadastro!" )
RETURN .F.
ENDIF
IF ! jpcadastro->cdSitFaz $ " 1"
MsgStop( "INVÁLIDO! Irregularidade do cadastro na SEFAZ!" )
RETURN .F.
ENDIF
Retornar para Contribuições, Dicas e Tutoriais
Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes