Comando "recheado"
Enviado: 09 Jan 2020 12:48
Código: Selecionar todos
WITH OBJECT cnMySql
:ExecuteCmd( "UPDATE JPESTOQUE SET ESCFOP = IF( ESTIPLAN = '2', '1.652', '5.656' ) WHERE LENGTH( ESCFOP ) < '2'" )
:cSql := "SELECT LPAD( IDESTOQUE, 6, '0' ) AS ID, ESITEM, ESDATLAN, ESCLIFOR, ESCFOP, ESPEDIDO, ESTIPLAN, " + ;
" ESNUMDOC AS NUMDOC," + ;
" ESQTDE * IF( JPITEM.IEQTDCOM < 1, 1, JPITEM.IEQTDCOM ) AS QTDE," + ;
" ESQTDE * ESVALOR AS VALOR," + ;
" JPITEM.IEUNID AS UNIDADE, JPITEM.IEANP AS ANPPRO," + ;
" IF( TABANPINS.AIANP IS NULL OR JPANPOPE.AOANPREG = '1022002', JPCADASTRO.CDCNPJ, LPAD( '', 14, 0 ) ) AS CADCNPJ, " + ;
" JPCADASTRO.CDCIDADE AS CADCIDADE, JPCADASTRO.CDUF AS CADUF, " + ;
" JPCIDADE.CIIBGE AS IBGE," + ;
" IF( TABANPINS.AIANP IS NULL OR JPANPOPE.AOANPREG = '1022002', TABANPLOC.ALANP, LPAD( '', 7, '0' ) ) AS ANPLOC," + ;
" IF( TABANPINS.AIANP IS NULL OR JPANPOPE.AOANPREG = '1022002', LPAD( '', 7, '0' ), TABANPINS.AIANP ) AS ANPINS," + ;
" IF( TABANPINS.AIANP IS NULL, LPAD( '',10,' '), TABANPAGE.AAANP ) AS ANPAGE," + ;
" IF( TABANPINS.AIANP IS NULL OR JPANPOPE.AOANPREG = '1022002', TABANPATI.ATCNAE, LPAD( '', 5, '0' ) ) AS ANPATI," + ;
" IF( TABANPINS.AIANP IS NULL, IF( JPCADASTRO.CDCNAE = '9999999', JPANPOPE.AOANPOUT, JPANPOPE.AOANPNREG ), JPANPOPE.AOANPREG ) AS ANPOPE" + ;
" FROM JPESTOQUE" + ;
" LEFT JOIN JPITEM ON JPITEM.IDITEM=JPESTOQUE.ESITEM" + ;
" LEFT JOIN JPCADASTRO ON JPCADASTRO.IDCADASTRO = JPESTOQUE.ESCLIFOR" + ;
" LEFT JOIN JPCIDADE ON JPCADASTRO.CDUF = JPCIDADE.CIUF AND JPCADASTRO.CDCIDADE = JPCIDADE.CINOME" + ;
" LEFT JOIN " + ;
" ( SELECT DISTINCT ALIBGE, ALANP FROM JPANPLOC WHERE LENGTH( ALVALATE ) < 1 ) AS TABANPLOC" + ;
" ON TABANPLOC.ALIBGE = JPCIDADE.CIIBGE " + ;
" LEFT JOIN " + ;
" ( SELECT DISTINCT AICNPJ, AIANP FROM JPANPINS WHERE LENGTH( AIVALATE ) < 1 ) AS TABANPINS" + ;
" ON TABANPINS.AICNPJ = IF( LENGTH( JPCADASTRO.CDCNPJ ) = 18," + ;
" CONCAT( CONCAT( CONCAT( CONCAT( SUBSTR( JPCADASTRO.CDCNPJ, 1, 2 ), " + ;
" SUBSTR( JPCADASTRO.CDCNPJ, 4, 3 ) ), SUBSTR( JPCADASTRO.CDCNPJ, 8, 3 ) ), " + ;
" SUBSTR( JPCADASTRO.CDCNPJ, 12, 4 ) ), SUBSTR( JPCADASTRO.CDCNPJ, 17, 2 ) ), 'X' ) " + ;
" LEFT JOIN " + ;
" ( SELECT DISTINCT AACNPJ, AAANP FROM JPANPAGE WHERE LENGTH( AAVALATE ) < 1 ) AS TABANPAGE " + ;
" ON TABANPAGE.AACNPJ = IF( LENGTH( JPCADASTRO.CDCNPJ ) = 18," + ;
" CONCAT( CONCAT( SUBSTR( JPCADASTRO.CDCNPJ, 1, 2 ), SUBSTR( JPCADASTRO.CDCNPJ, 4, 3 ) ), SUBSTR( CDCNPJ, 8, 3 ) ), 'X' ) " + ;
" LEFT JOIN JPANPOPE ON JPANPOPE.AOCFOP = JPESTOQUE.ESCFOP" + ;
" LEFT JOIN " + ;
" ( SELECT DISTINCT ATCNAE FROM JPANPATI WHERE LENGTH( ATVALATE ) < 1 ) AS TABANPATI" + ;
" ON TABANPATI.ATCNAE = LEFT( JPCADASTRO.CDCNAE, 5 )" + ;
" LEFT JOIN JPPEDIDO ON JPPEDIDO.IDPEDIDO = JPESTOQUE.ESPEDIDO" + ;
" LEFT JOIN JPNOTFIS ON JPNOTFIS.NFPEDIDO = JPPEDIDO.IDPEDIDO" + ;
" WHERE ESDATLAN BETWEEN CAST( " + DateSql( dDataInicial ) + " AS DATE )" + ;
" AND CAST( " + DateSql( dDataFinal ) + " AS DATE )" + ;
" AND JPITEM.IEANP IN ( " + ProdutoAnp( "", .T. ) + " )"
:cSql += " AND ESQTDE <> 0" + ;
" ORDER BY ESDATLAN, IDESTOQUE"
:Execute()
GrafTempo( "Gerando informações" )
nAtual := 0
nTotal := :RecordCount()
DO WHILE ! :Eof()
GrafTempo( nAtual++, nTotal )
ImportaEstoque( cnMySql, dDataFinal, @nTotalComNfe, @nTotalSemNfe, lConsultaCnpj )
:MoveNext()
ENDDO
:CloseRecordset()
ENDWITH
Mas muitos arquivos/tabelas.