Pra curiosidade, a atualização entre versões, de DBF, SQL, e transferência
/*
ZE_UPDATE2020 - Atualizações 2020
*/
#include "inkey.ch"
#include "josequintas.ch"
#include "directry.ch"
#include "sefaz_anpprod.ch"
FUNCTION ze_Update2020()
LOCAL nVersaoDBF
nVersaoDBF := AppVersaoDbfAnt()
SayScroll( "Atualizações 9/9 - atualizações por data" )
IF nVersaoDBF < 20200101; Update0100A(); ENDIF
IF nVersaoDBF < 20200110; Update0110(); ENDIF
IF nVersaoDBF < 20200331; Update03SQL( nVersaoDBF ); ENDIF
IF nVersaoDBF < 20200430; Update04SQL( nVersaoDBF ); ENDIF
IF nVersaoDBF < 20200731; Update07SQL( nVersaoDBF ); ENDIF
IF nVersaoDBF < 20200705; Update0705(); ENDIF
IF nVersaoDBF < 20200707.2; Update0707(); ENDIF
IF nVersaoDBF < 20200713; Update0713(); ENDIF
IF nVersaoDBF < 20200727.2; Update0727B(); ENDIF
IF nVersaoDBF < 20200831; Update08SQL( nVersaoDBF ); ENDIF
CLOSE DATABASES
RETURN NIL
STATIC FUNCTION VerificaNumeracao( cArquivo, cCampoChave, cCampoObs )
LOCAL cId := StrZero( 0, 6 ), aList := {}, nAtual := 0, nTotal, nRecNo, cTmpFile
SayScroll( "Verificando repetidos em " + cArquivo + ".DBF" )
IF ! UseSoDbf( cArquivo, .T. )
QUIT
ENDIF
cTmpFile := MyTempFile()
INDEX ON &cCampoChave TO ( cTmpFile )
GOTO TOP
GrafTempo( cArquivo )
nTotal := LastRec()
DO WHILE ! Eof()
GrafTempo( nAtual++, nTotal )
IF FieldGet( FieldPos( cCampoChave ) ) <= cId .OR. Val( FieldGet( FieldPos( cCampoChave ) ) ) == 0
AAdd( aList, RecNo() )
ENDIF
cId := FieldGet( FieldPos( cCampoChave ) )
SKIP
ENDDO
IF Len( aList ) != 0
FOR EACH nRecNo IN aList
Inkey()
GOTO ( nRecNo )
cID := FieldGet( FieldPos( cCampoChave ) )
IF Val( cID ) == 0
GOTO BOTTOM
cId := FieldGet( FieldPos( cCampoChave ) )
ENDIF
DO WHILE .T.
SEEK cId
IF Eof()
EXIT
ENDIF
cId := StrZero( Val( cId ) + 1, 6 )
Inkey()
ENDDO
GOTO ( nRecNo )
SayScroll( "lançamento " + cArquivo + " de " + SoNumeros( FieldGet( FieldPos( cCampoChave ) ) ) + " para " + cID )
GravaOcorrencia( cArquivo, cId, "lancamento " + cArquivo + " de " + SoNumeros( FieldGet( FieldPos( cCampoChave ) ) ) + " para " + cID )
RecLock()
IF cCampoObs != NIL .AND. ! Empty( cCampoObs )
FieldPut( FieldPos( cCampoObs ), AllTrim( FieldGet( FieldPos( cCampoObs ) ) ) + " lanc.ant. " + ;
FieldGet( FieldPos( cCampoChave ) ) )
ENDIF
FieldPut( FieldPos( cCampoChave ), cId )
RecUnlock()
NEXT
ENDIF
CLOSE DATABASES
fErase( cTmpFile )
RETURN NIL
STATIC FUNCTION Update0100A()
IF ! AbreArquivos( "jpsenha" )
QUIT
ENDIF
SayScroll( "2020-01-00-A Nome de módulos" )
pw_AddModule( "PJPIMPOSTO", "PLEISIMPOSTO" )
pw_AddModule( "LJPIMPOSTO", "PLEISRELIMPOSTO" )
pw_AddModule( "PJPNOTFIS", "PNOTACADASTRO" )
pw_AddModule( "PJPDECRETO", "PLEISDECRETO" )
pw_AddModule( "PAUXPRODEP", "PESTODEPTO" )
pw_AddModule( "PAUXPROGRU", "PESTOGRUPO" )
pw_AddModule( "PAUXPROSEC", "PESTOSECAO" )
pw_AddModule( "PAUXPROUNI", "PLEISPROUNI" )
pw_AddModule( "PAUXPROLOC", "PESTOLOCAL" )
pw_AddModule( "PAUXCFOP", "PLEISCFOP" )
pw_AddModule( "PAUXTRIEMP", "PLEISTRIEMP" )
pw_AddModule( "PAUXTRICAD", "PLEISTRICAD" )
pw_AddModule( "PAUXTRIPRO", "PLEISTRIPRO" )
pw_AddModule( "PAUXTRIUF", "PLEISTRIUF" )
pw_AddModule( "PAUXICMCST", "PLEISICMCST" )
pw_AddModule( "PAUXIPICST", "PLEISIPICST" )
pw_AddModule( "PAUXIPIENQ", "PLEISIPIENQ" )
pw_AddModule( "PAUXORIMER", "PLEISORIMER" )
pw_AddModule( "PAUXPISCST", "PLEISPISCST" )
pw_AddModule( "PAUXPISENQ", "PLEISPISENQ" )
pw_AddModule( "PAUXCNAE", "PLEISCNAE" )
pw_AddModule( "PAUXCARCOR", "PLEISCORRRECAO" )
pw_AddModule( "PAUXMODFIS", "PLEISMODFIS" )
pw_AddModule( "LJPCADAS", "LJPCADAS1" )
pw_AddModule( "LJPPEDIDO", "LJPPEDI" )
pw_AddModule( "LJPTRANSP", "LJPCADAS3" )
pw_AddModule( "PJPCADAS", "PJPCADAS1" )
pw_AddModule( "PJPCADASB", "PJPCADAS1B" )
pw_AddModule( "PJPCOMISSAO", "PJPCOMISS" )
pw_AddModule( "PJPTRANSP", "PJPCADAS3" )
pw_AddModule( "PJPVEICULO", "PJPVEICUL" )
pw_AddModule( "PJPVENDEDOR", "PJPVENDED" )
pw_AddModule( "LJPESTOQUEA", "LJPESTOQA" )
pw_AddModule( "LJPESTOQUEB", "LJPESTOQB" )
pw_AddModule( "LJPESTOQUEC", "LJPESTOQC" )
pw_AddModule( "LJPESTOQUEA", "PJPESTOQUEA" )
pw_AddModule( "LJPESTOQUEB", "PJPESTOQUEB" )
pw_AddModule( "LJPESTOQUEC", "PJPESTOQUEC" )
pw_AddModule( "LJPCADASTRO", "LJPCADAS" )
pw_AddModule( "PJPCADASTRO", "PJPCADAS" )
pw_AddModule( "PJPCADASTROB", "PJPCADASB" )
pw_AddModule( "PJPEMPRESA", "PJPEMPRE" )
pw_AddModule( "PJPCIDADE", "PLEISCIDADE" )
pw_AddModule( "PJPUF", "PLEISUF" )
pw_AddModule( "LJPCIDADE", "PLEISRELCIDADE" )
pw_AddModule( "PJPIBPT", "PLEISIBPT" )
CLOSE DATABASES
RETURN NIL
STATIC FUNCTION Update0110()
LOCAL oElement, cnSQL := ADOClass():New( AppConexao() )
LOCAL aList := { ;
; // combustivel
{ 820101032, "L", "DIESEL B S10/S50 PRA GERACAO ENERGIA" }, ;
{ 820101026, "L", "DIESEL B S1800 PRA GERACAO DE ENERGIA" }, ;
{ 820101027, "L", "DIESEL B S500 PRA GERACAO DE ENERGIA" }, ;
{ 820101017, "L", "MIST DIESEL MARITMO 98% 2%" }, ;
{ 820101018, "L", "DIESEL MARITMO 95% 5%" }, ;
{ 820101019, "L", "DIESEL MARITMO DMB B2" }, ;
{ 820101020, "L", "DIESEL MARITMO DMB B5" }, ;
{ 820101021, "L", "DIESEL NAUTICO B2 ESPECIAL PPM ENXOFRE" }, ;
{ 420201001, "L", "DIESEL MARITMO" }, ;
{ 420201003, "L", "DMB MDO" }, ;
{ 430101004, "L", "OLEO COMB TURBINA GERADORA" }, ;
{ 510103001, "KG", "OLEO COMBUSTIVEL 3 OC3" }, ;
{ 510101001, "KG", "OLEO COMBUSTIVEL 1A" }, ;
{ 510101002, "KG", "OLEO COMBUSTIVEL 2A" }, ;
{ 510102001, "KG", "OLEO COMBUSTIVEL B1" }, ;
{ 510102002, "KG", "OLEO COMBUSTIVEL B2" }, ;
{ 510201001, "KG", "OLEO COMBUSTIVEL MARITMO" }, ;
{ 510201003, "KG", "OLEO COMBUSTIVEL MARITMO MISTURA" }, ;
{ 510301003, "KG", "OLEO COMBUSTIVEL GERACAO ELETRICA" }, ;
{ 560101001, "L", "OLEO DE XISTO" }, ;
{ 820101033, "L", "OLEO DIESEL S10 ADITIVADO" }, ;
{ 820101034, "L", "OLEO DIESEL S10 COMUM" }, ;
{ 820101011, "L", "OLEO DIESEL BS1800 ADITIVADO" }, ;
{ 820101003, "L", "MIST DIESEL 95% 5%" }, ;
{ 820101013, "L", "OLEO DIESEL BS500 ADITIVADO" }, ;
{ 820101012, "L", "OLEO DIESEL BS500 COMUM" }, ;
{ 420202001, "L", "OLEO DIESEL NAUTICO ESP ENXOFRE 200 PPM" }, ;
{ 510301001, "KG", "OUTROS OLEOS COMBUSTIVEIS" }, ;
{ 410102001, "L", "QUEROSENE ILUMINANTE" }, ;
; // outros
{ 650101004, "KG", "GRAXAS DE CALCIO" }, ;
{ 650101003, "KG", "GRAXAS DE LITIO" }, ;
{ 650101001, "KG", "GRAXAS MINERAIS" }, ;
{ 650101002, "KG", "OUTRAS GRAXAS" }, ;
{ 620502001, "L", "MOTORES 2 TEMPOS" }, ;
{ 620501002, "L", "CICLO DIESEL" }, ;
{ 620501001, "L", "CICLO OTTO" }, ;
{ 620601003, "L", "CORRENTE DE MOTOSSERRA" }, ;
{ 620601001, "L", "OLEOS EXTENSORES E PLASTICICANTES" }, ;
{ 620601004, "L", "OUTROS OLEOS LUBRIF ACABADOS" }, ;
{ 620601002, "L", "PULVERIZACAO AGRICOLA" }, ;
{ 620401001, "L", "OLEOS LUBRIF FERROVIARIOS" }, ;
{ 620101002, "L", "ENGRENAGENS E SISTEMAS CIRCULATORIOS" }, ;
{ 620101007, "L", "ESTAMPAGEM" }, ;
{ 620101001, "L", "HIDRAULICO" }, ;
{ 620101004, "L", "ISOLANTE TIPO A" }, ;
{ 620101005, "L", "ISOLANTE TIPO B" }, ;
{ 620101008, "L", "OUTROS OLEOS LUBRIF INDUST" }, ;
{ 620101003, "L", "PROCESSO" }, ;
{ 620101006, "L", "TEXTIL AMACIANTE DE FIBRAS" }, ;
{ 620301001, "L", "OLEOS LUBRIF MARITMOS" }, ;
{ 620201001, "L", "OLEOS LUBRIF AVIACAO" }, ;
{ 660101001, "L", "OLEOS LUBRIF PARAF GRAXAS INTERMED" }, ;
{ 620505001, "L", "OUTROS OLEOS LUBRIF AUTOMOTIVOS" }, ;
{ 620504001, "L", "TRANSMISSAO AUTOMATICA" }, ;
{ 620503001, "L", "TRANSMISSOES E SISTEMAS HIDRAULICOS" } }
IF AppConexao() == NIL
RETURN NIL
ENDIF
SayScroll( "2020-01-10" )
WITH OBJECT cnSQL
FOR EACH oElement IN aList
:QueryCreate()
:QueryAdd( "IDANPPRO", StrZero( oElement[ 1 ], 9 ) )
:QueryAdd( "APDESCRICAO", oElement[ 3 ] )
:QueryAdd( "APUNIDADE", oElement[ 2 ] )
:QueryAdd( "APISIMP", "S" )
:QueryExecuteInsert( "JPANPPRO", .T. )
Inkey()
NEXT
FOR EACH oElement IN SEFAZ_ANPPROD
:QueryCreate()
:QueryAdd( "IDANPPRO", oElement[ 1 ] )
:QueryAdd( "APDESCRICAO", oElement[ 2 ] )
:QueryAdd( "APISIMP", "N" )
:QueryExecuteInsert( "JPANPPRO", .T. )
Inkey()
NEXT
ENDWITH
RETURN NIL
STATIC FUNCTION Update03SQL( nVersaoDBF )
LOCAL cnSQL := ADOClass():New( AppConexao() )
IF AppConexao() == NIL
RETURN NIL
ENDIF
SayScroll( "2020-03 SQL" )
WITH OBJECT cnSQL
IF nVersaoDBF < 20200302
SayScroll( "2020-03-02 SQL" )
:ExecuteCmd( "ALTER TABLE JPAGENDA CHANGE COLUMN IDAGENDA IDAGENDA INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPAGE CHANGE COLUMN IDANPAGE IDANPAGE INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPATI CHANGE COLUMN IDANPATI IDANPATI INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPINS CHANGE COLUMN IDANPINS IDANPINS INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPLOC CHANGE COLUMN IDANPLOC IDANPLOC INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPOPE CHANGE COLUMN IDANPOPE IDANPOPE INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPPRO CHANGE COLUMN IDANPPRO IDANPPRO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPCLISTA CHANGE COLUMN IDCLISTA IDCLISTA INT(11) NOT NULL AUTO_INCREMENT" )
IF :FieldExists( "CBID", "JPCOMBUSTIVEL" )
:ExecuteCmd( "ALTER TABLE JPCOMBUSTIVEL DROP COLUMN CBID, DROP PRIMARY KEY" )
:ExecuteCmd( "ALTER TABLE JPCOMBUSTIVEL ADD COLUMN IDCOMBUSTIVEL INT(11) NOT NULL AUTO_INCREMENT FIRST," + ;
" ADD PRIMARY KEY ( IDCOMBUSTIVEL )" )
ENDIF
:ExecuteCmd( "ALTER TABLE JPCOMBUSTIVEL CHANGE COLUMN IDCOMBUSTIVEL IDCOMBUSTIVEL INT(11) NOT NULL AUTO_INCREMENT FIRST" )
:ExecuteCmd( "ALTER TABLE JPCOMISSAO CHANGE COLUMN IDCOMISSAO IDCOMISSAO INT(11) NOT NULL AUTO_INCREMENT" )
IF :FieldExists( "DENUMLAN", "JPDECRETO" )
SayScroll( "Modificando tabela JPDECRETO" )
:ExecuteCmd( "ALTER TABLE JPDECRETO DROP COLUMN DEID, DROP PRIMARY KEY, " + ;
"CHANGE COLUMN DENUMLAN IDDECRETO INT(11) NOT NULL AUTO_INCREMENT, " + ;
"ADD PRIMARY KEY ( IDDECRETO )" )
ENDIF
:ExecuteCmd( "ALTER TABLE JPDECRETO CHANGE COLUMN IDDECRETO IDDECRETO INT(11) NOT NULL AUTO_INCREMENT" )
IF :IndexExists( "IDXEDICFG", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG DROP INDEX IDXEDICFG" )
ENDIF
IF :IndexExists( "IDXEDI", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG DROP INDEX IDXEDI" )
ENDIF
IF :IndexExists( "IDXJPA", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG DROP INDEX IDXJPA" )
ENDIF
IF :FieldExists( "EDID", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG CHANGE COLUMN EDID IDEDICFG INT(11) NOT NULL AUTO_INCREMENT," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDEDICFG )" )
ENDIF
IF :FieldExists( "IDREGISTRO", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG CHANGE COLUMN IDREGISTRO IDEDICFG INT(11) NOT NULL AUTO_INCREMENT," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDEDICFG )" )
ENDIF
IF :FieldExists( "EDNUMLAN", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG DROP COLUMN EDNUMLAN" )
ENDIF
IF :FieldExists( "EDCODEDI1", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG CHANGE COLUMN EDCODEDI1 EDEMPRESA VARCHAR(20) NOT NULL DEFAULT ''" )
ENDIF
IF :FieldExists( "EDCODJPA", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG CHANGE COLUMN EDCODJPA EDINTERNO VARCHAR(6) NOT NULL DEFAULT ''" )
ENDIF
IF :FieldExists( "EDCODEDI2", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG CHANGE COLUMN EDCODEDI2 EDEXTERNO VARCHAR(20) NOT NULL DEFAULT ''" )
ENDIF
IF :FieldExists( "EDDESEDI", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG CHANGE COLUMN EDDESEDI EDDESCRICAO VARCHAR(50) NOT NULL DEFAULT ''" )
ENDIF
IF ! :IndexExists( "IDXINTERNO", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG ADD INDEX IDXINTERNO ( EDTIPO, EDINTERNO )" )
ENDIF
IF ! :indexExists( "IDXEMPRESA", "JPEDICFG" )
:ExecuteCmd( "ALTER TABLE JPEDICFG ADD INDEX IDXEMPRESA ( EDTIPO, EDEMPRESA, EDEXTERNO )" )
ENDIF
ENDIF
IF nVersaoDBF < 20200312
SayScroll( "2020-03-12 SQL" )
IF :FieldExists( "PDDATCAN", "JPPEDIDO" ) // 2020-03-15
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDDATCAN" )
ENDIF
IF :FieldExists( "PDMOTCAN", "JPPEDIDO" ) // 2020-03-15
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDMOTCAN" )
ENDIF
:ExecuteCmd( "DELETE FROM JPITPED WHERE IPPEDIDO IN ( SELECT IDPEDIDO FROM JPPEDIDO WHERE PDSTATUS = 'C' )" )
:ExecuteCmd( "DELETE FROM JPPEDIDO WHERE PDSTATUS = 'C'" )
ENDIF
IF nVersaoDBF < 20200302
:ExecuteCmd( "ALTER TABLE JPEMANFE CHANGE COLUMN ENEMANFE ENEMANFE VARCHAR(250) NOT NULL DEFAULT ''" )
:ExecuteCmd( "ALTER TABLE JPEMANFE CHANGE COLUMN IDEMANFE IDEMANFE INT(11) NOT NULL AUTO_INCREMENT" )
IF :FieldExists( "ESCLIFOR", "JPESTOQUE" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESCLIFOR ESCADASTRO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
IF :IndexExists( "IDXITEM", "JPESTOQUE" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE DROP INDEX IDXITEM" )
ENDIF
IF :FieldExists( "ESITEM", "JPESTOQUE" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESITEM ESPRODUTO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
IF ! :IndexExists( "IDXPRODUTO", "JPESTOQUE" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE ADD INDEX IDXPRODUTO ( ESPRODUTO, ESTIPLAN, ESDATLAN, IDESTOQUE )" )
ENDIF
IF ! :IndexExists( "IDXPRODUTO", "JPESTOQUE" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE ADD INDEX IDXPRODUTO ( ESPRODUTO, ESTIPLAN DESC, ESDATLAN, IDESTOQUE )" )
ENDIF
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN IDESTOQUE IDESTOQUE INT(11) NOT NULL AUTO_INCREMENT" )
IF nVersaoDBF < 20200217
IF :FieldExists( "ESCLIFOR", "JPESTOQUE" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESFILIAL ESFILIAL VARCHAR(6) NOT NULL DEFAULT '000000'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESTIPLAN ESTIPLAN CHAR(1) NOT NULL DEFAULT '1'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESTRANSA ESTRANSA VARCHAR(6) NOT NULL DEFAULT '000000'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESPRODUTO ESPRODUTO VARCHAR(6) NOT NULL DEFAULT '000000'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESNUMDEP ESNUMDEP CHAR(1) NOT NULL DEFAULT '1'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESCCUSTO ESCCUSTO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
ENDIF
IF nVersaoDBF < 20200221
:ExecuteCmd( "UPDATE JPESTOQUE SET ESPEDIDO = 0 WHERE ESPEDIDO = ''" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESPEDIDO ESPEDIDO INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF :FieldExists( "FSID", "JPFISICA" )
:ExecuteCmd( "ALTER TABLE JPFISICA CHANGE COLUMN FSID IDFISICA INT(11) NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDFISICA )" )
ENDIF
IF :FieldExists( "IDREGISTRO", "JPFISICA" )
:ExecuteCmd( "ALTER TABLE JPFISICA CHANGE COLUMN IDREGISTRO IDFISICA INT(11) NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDFISICA )" )
ENDIF
IF :FieldExists( "IBID", "JPIBPT" )
:ExecuteCmd( "ALTER TABLE JPIBPT DROP COLUMN IBID, DROP PRIMARY KEY" )
ENDIF
IF ! :FieldExists( "IDIBPT", "JPIBPT" )
:ExecuteCmd( "ALTER TABLE JPIBPT ADD COLUMN IDIBPT INT(11) NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY ( IDIBPT )" )
ENDIF
:ExecuteCmd( "ALTER TABLE JPIBPT CHANGE COLUMN IDIBPT IDIBPT INT(11) NOT NULL AUTO_INCREMENT FIRST" )
ENDIF
IF nVersaoDbf < 20200302
IF :IndexExists( "IDXNUMLAN", "JPLICMOV" )
:ExecuteCmd( "ALTER TABLE JPLICMOV DROP INDEX IDXNUMLAN" )
ENDIF
IF :FieldExists( "LCNUMLAN", "JPLICMOV" )
:ExecuteCmd( "ALTER TABLE JPLICMOV DROP COLUMN LCNUMLAN" )
ENDIF
IF :FieldExists( "LCID", "JPLICMOV" )
:ExecuteCmd( "ALTER TABLE JPLICMOV CHANGE COLUMN LCID IDLICMOV INT(11) NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDLICMOV )" )
ENDIF
IF :FieldExists( "IDREGISTRO", "JPLICMOV" )
:ExecuteCmd( "ALTER TABLE JPLICMOV CHANGE COLUMN IDREGISTRO IDLICMOV INT(11) UNSIGNED NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDLICMOV )" )
ENDIF
IF :FieldExists( "NBID", "JPNFBASE" )
:ExecuteCmd( "ALTER TABLE JPNFBASE CHANGE COLUMN NBID IDNFBASE INT(11) UNSIGNED NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDNFBASE )" )
ENDIF
IF :FieldExists( "IDREGISTRO", "JPNFBASE" )
:ExecuteCmd( "ALTER TABLE JPNFBASE CHANGE COLUMN IDREGISTRO IDNFBASE INT(11) UNSIGNED NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDNFBASE )" )
ENDIF
IF :IndexExists( "NOME", "JPNFBASE" )
:ExecuteCmd( "ALTER TABLE JPNFBASE DROP INDEX NOME" )
ENDIF
IF :IndexExists( "ENDERECO", "JPNFBASE" )
:ExecuteCmd( "ALTER TABLE JPNFBASE DROP INDEX ENDERECO" )
ENDIF
IF :IndexExists( "NUMLAN", "JPNFBASE" )
:ExecuteCmd( "ALTER TABLE JPNFBASE DROP INDEX NUMLAN" )
ENDIF
IF :FieldExists( "NBNUMLAN", "JPNFBASE" )
:ExecuteCmd( "ALTER TABLE JPNFBASE DROP COLUMN NBNUMLAN" )
ENDIF
IF :IndexExists( "IDXCADEMI", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS DROP INDEX IDXCADEMI" )
ENDIF
IF ! :IndexExists( "IDXPEDIDO", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS ADD INDEX IDXPEDIDO ( NFPEDIDO, IDNOTFIS )" )
ENDIF
IF :IndexExists( "NOTA", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS DROP INDEX NOTA" )
ENDIF
IF ! :IndexExists( "IDXNOTFIS", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS ADD INDEX IDXNOTFIS ( NFFILIAL, NFNOTFIS )" )
ENDIF
IF :FieldExists( "NFCADDES", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS CHANGE COLUMN NFCADDES NFCADASTRO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
IF :FieldExists( "NFAVENUM", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS DROP COLUMN NFAVENUM" )
ENDIF
IF :FieldExists( "NFAVEPRO", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS DROP COLUMN NFAVEPRO" )
ENDIF
IF :FieldExists( "NFCTE", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS DROP COLUMN NFCTE" )
ENDIF
IF :FieldExists( "NFNFE", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS DROP COLUMN NFNFE" )
ENDIF
IF ! :IndexExists( "IDXCADASTRO", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS ADD INDEX IDXCADASTRO ( NFCADASTRO, NFDATEMI, IDNOTFIS )" )
ENDIF
IF ! :FieldExists( "NFVALDES", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS ADD COLUMN NFVALDES DOUBLE(14,2) NOT NULL DEFAULT '0'" )
ENDIF
IF ! :FieldExists( "NFIIVAL", "JPNOTFIS" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS ADD COLUMN NFIIVAL DOUBLE(14,2) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200221
:ExecuteCmd( "UPDATE JPNOTFIS SET NFPEDIDO = 0 WHERE NFPEDIDO IS NULL OR NFPEDIDO < '0' OR NFPEDIDO > '999999'" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS CHANGE COLUMN NFPEDIDO NFPEDIDO INT(11) NOT NULL DEFAULT '0'" )
ENDIF
:ExecuteCmd( "UPDATE JPNOTFIS SET NFLEIS = TRIM( NFLEIS )" )
:ExecuteCmd( "UPDATE JPNOTFIS SET NFLEIS = TRIM( Left( NFLEIS, LENGTH( NFLEIS ) - 1 ) ) WHERE RIGHT( NFLEIS, 1 ) = ','" )
IF :FieldExists( "PHID", "JPPREHIS" )
:ExecuteCmd( "ALTER TABLE JPPREHIS CHANGE COLUMN PHID IDPREHIS INT(11) NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDPREHIS )" )
ENDIF
IF :FieldExists( "IDREGISTRO", "JPPREHIS" )
:ExecuteCmd( "ALTER TABLE JPPREHIS CHANGE COLUMN IDREGISTRO IDPREHIS INT(11) NOT NULL AUTO_INCREMENT FIRST," + ;
" DROP PRIMARY KEY, ADD PRIMARY KEY ( IDPREHIS )" )
ENDIF
IF :FieldExists( "PHCADAS", "JPPREHIS" )
:ExecuteCmd( "ALTER TABLE JPPREHIS CHANGE COLUMN PHCADAS PHCADASTRO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
IF :FieldExists( "PHITEM", "JPPREHIS" )
:ExecuteCmd( "ALTER TABLE JPPREHIS CHANGE COLUMN PHITEM PHPRODUTO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
ENDIF
IF nVersaoDBF < 20200302
IF :FieldExists( "FICLIFOR", "JPFINAN" )
:ExecuteCmd( "ALTER TABLE JPFINAN CHANGE COLUMN FICLIFOR FICADASTRO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
IF :IndexExists( "IDXNUMLAN", "JPFINAN" )
:ExecuteCmd( "ALTER TABLE JPFINAN DROP INDEX IDXNUMLAN" )
ENDIF
IF ! :IndexExists( "IDXPEDIDO", "JPFINAN" )
:ExecuteCmd( "ALTER TABLE JPFINAN ADD INDEX IDXPEDIDO ( FIPEDIDO, IDFINAN )" )
ENDIF
IF nVersaoDBF < 20191201
:ExecuteCmd( "UPDATE JPFINAN SET FIPEDIDO = '0' WHERE FIPEDIDO < '0'" )
:ExecuteCmd( "ALTER TABLE JPFINAN CHANGE COLUMN FIPEDIDO FIPEDIDO VARCHAR(6) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200221
:ExecuteCmd( "UPDATE JPFINAN SET FIPEDIDO = 0 WHERE FIPEDIDO IS NULL OR FIPEDIDO < '0'" )
:ExecuteCmd( "ALTER TABLE JPFINAN CHANGE COLUMN FIPEDIDO FIPEDIDO INT(11) NOT NULL DEFAULT '0'" )
ENDIF
ENDIF
IF nVersaoDBF < 20200326
IF :FieldExists( "FIDATPRE", "JPFINAN" )
:ExecuteCmd( "ALTER TABLE JPFINAN DROP COLUMN FIDATPRE" )
ENDIF
IF :FieldExists( "IPQTDEF", "JPITPED" )
:ExecuteCmd( "ALTER TABLE JPITPED DROP COLUMN IPQTDEF" )
ENDIF
IF :FieldExists( "JPVALTAB", "JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDVALTAB" )
ENDIF
ENDIF
IF nVersaoDBF < 20200302
IF :FieldExists( "PDVALCUT", "JPPEDIDO" )
SayScroll( "Modificando tabela JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDVALCUT" )
ENDIF
IF :FieldExists( "PDREACAO", "JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDREACAO" )
ENDIF
IF :FieldExists( "PDPARCEL", "JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDPARCEL" )
ENDIF
IF :FieldExists( "PDDOLAR", "JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDDOLAR" )
ENDIF
IF nVersaoDBF < 20200222
:ExecuteCmd( "UPDATE JPPEDIDO SET PDPEDREL = 0 WHERE PDPEDREL= ''" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO CHANGE COLUMN PDPEDREL PDPEDREL INT(11) NOT NULL DEFAULT '0'" )
IF ! :IndexExists( "IDXPEDREL", "JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO ADD INDEX IDXPEDREL ( PDPEDREL )" )
ENDIF
ENDIF
:ExecuteCmd( "UPDATE JPPEDIDO SET PDLEIS = TRIM( PDLEIS )" )
:ExecuteCmd( "UPDATE JPPEDIDO SET PDLEIS = TRIM( Left( PDLEIS, LENGTH( PDLEIS ) - 1 ) ) WHERE RIGHT( PDLEIS, 1 ) = ','" )
IF :FieldExists( "PDCLIFOR", "JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO CHANGE COLUMN PDCLIFOR PDCADASTRO VARCHAR(6) NOT NULL DEFAULT '000000'" )
ENDIF
ENDIF
IF nVersaoDBF < 20200315
:ExecuteCmd( "ALTER TABLE JPCIDADE CHANGE COLUMN IDCIDADE IDCIDADE INT(11) NOT NULL AUTO_INCREMENT" )
ENDIF
ENDWITH
RETURN NIL
STATIC FUNCTION Update04SQL( nVersaoDBF )
LOCAL cnSQL := ADOClass():New( AppConexao() )
IF AppConexao() == NIL
RETURN NIL
ENDIF
SayScroll( "2020-04 SQL" )
WITH OBJECT cnSQL
IF nVersaoDBF < 20200408
SayScroll( "2020-04-08 SQL" )
:ExecuteCmd( "UPDATE JPESTOQUE SET ESCADASTRO = '0' WHERE ESCADASTRO IS NULL OR ESCADASTRO < '0' OR ESCADASTRO > '999999'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESCADASTRO ESCADASTRO INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "UPDATE JPESTOQUE SET ESFILIAL = '0' WHERE ESFILIAL IS NULL OR ESFILIAL < '0' OR ESFILIAL > '999999'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESFILIAL ESFILIAL INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "UPDATE JPESTOQUE SET ESPRODUTO = '0' WHERE ESPRODUTO IS NULL OR ESPRODUTO < '0' OR ESPRODUTO > '999999'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESPRODUTO ESPRODUTO INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "UPDATE JPESTOQUE SET ESTRANSA = '0' WHERE ESTRANSA IS NULL OR ESTRANSA < '0' OR ESTRANSA > '999999'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESTRANSA ESTRANSA INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDbf < 20200427
SayScroll( "2020-04-27 SQL" )
:ExecuteCmd( "UPDATE JPCOMISSAO SET CMVENDEDOR = '000000' WHERE CMVENDEDOR IS NULL OR CMVENDEDOR = ''" )
:ExecuteCmd( "UPDATE JPCOMISSAO SET CMPRODEP = '000000' WHERE CMPRODEP IS NULL OR CMPRODEP = ''" )
:ExecuteCmd( "ALTER TABLE JPCOMISSAO" + ;
" CHANGE CMVENDEDOR CMVENDEDOR INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE CMPRODEP CMPRODEP INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "UPDATE JPESTOQUE SET ESCCUSTO = '000000' WHERE ESCCUSTO IS NULL OR ESCCUSTO < '0' OR ESCCUSTO > '999999'" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN ESCCUSTO ESCCUSTO INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200423
SayScroll( "2020.04.23 Regras Fiscais numéricas" )
:ExecuteCmd( "UPDATE JPIMPOSTO SET IMTRANSA = '0' WHERE IMTRANSA IS NULL OR IMTRANSA < '0' OR IMTRANSA > '999999'" )
:ExecuteCmd( "UPDATE JPIMPOSTO SET IMTRIUF = '0' WHERE IMTRIUF IS NULL OR IMTRIUF < '0' OR IMTRIUF > '999999'" )
:ExecuteCmd( "UPDATE JPIMPOSTO SET IMTRICAD = '0' WHERE IMTRICAD IS NULL OR IMTRICAD < '0' OR IMTRICAD > '999999'" )
:ExecuteCmd( "UPDATE JPIMPOSTO SET IMTRIPRO = '0' WHERE IMTRIPRO IS NULL OR IMTRIPRO < '0' OR IMTRIPRO > '999999'" )
:ExecuteCmd( "ALTER TABLE JPIMPOSTO " + ;
" CHANGE COLUMN IMTRANSA IMTRANSA INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN IMTRIUF IMTRIUF INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN IMTRICAD IMTRICAD INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN IMTRIPRO IMTRIPRO INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200408
SayScroll( "2020.04.08 Atualizando JPFINAN.SQL pra numérico" )
IF AppEmpresaApelido() == "MARINGA"
:ExecuteCmd( "DELETE FROM JPFINAN WHERE FIVALOR=0 OR FIDATEMI IS NULL" ) // LIXO MARINGA
ENDIF
:ExecuteCmd( "UPDATE JPFINAN SET FIFILIAL='1' WHERE FIFILIAL IS NULL OR FIFILIAL < '0' OR FIFILIAL > '999999'" )
:ExecuteCmd( "UPDATE JPFINAN SET FICADASTRO = '0' WHERE FICADASTRO IS NULL OR FICADASTRO < '0' OR FICADASTRO > '999999'" )
:ExecuteCmd( "UPDATE JPFINAN SET FISACADO = '0' WHERE FISACADO IS NULL OR FISACADO < '0' OR FISACADO > '999999'" )
:ExecuteCmd( "UPDATE JPFINAN SET FICCUSTO = '0' WHERE FICCUSTO IS NULL OR FICCUSTO < '0' OR FICCUSTO > '999999'" )
:ExecuteCmd( "UPDATE JPFINAN SET FIOPERACAO = '0' WHERE FIOPERACAO IS NULL OR FIOPERACAO < '0' OR FIOPERACAO > '999999'" )
:ExecuteCmd( "UPDATE JPFINAN SET FIPORTADOR = '0' WHERE FIPORTADOR IS NULL OR FIPORTADOR < '0' OR FIPORTADOR > '999999'" )
:ExecuteCmd( "UPDATE JPFINAN SET FIVENDEDOR = '0' WHERE FIVENDEDOR IS NULL OR FIVENDEDOR < '0' OR FIVENDEDOR > '999999'" )
:ExecuteCmd( "ALTER TABLE JPFINAN " + ;
"CHANGE COLUMN FIFILIAL FIFILIAL INT(11) NOT NULL DEFAULT '0'," + ;
"CHANGE COLUMN FICADASTRO FICADASTRO INT(11) NOT NULL DEFAULT '0', " + ;
"CHANGE COLUMN FISACADO FISACADO INT(11) NOT NULL DEFAULT '0'," + ;
"CHANGE COLUMN FICCUSTO FICCUSTO INT(11) NOT NULL DEFAULT '0'," + ;
"CHANGE COLUMN FIOPERACAO FIOPERACAO INT(11) NOT NULL DEFAULT '0'," + ;
"CHANGE COLUMN FIPORTADOR FIPORTADOR INT(11) NOT NULL DEFAULT '0'," + ;
"CHANGE COLUMN FIVENDEDOR FIVENDEDOR INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200425
SayScroll( "2020.04.25 Num.Bancário jpfinan.SQL" )
:ExecuteCmd( "UPDATE JPFINAN SET FINUMBAN = '000000' WHERE Year( FIDATVEN ) < 2020" )
ENDIF
IF nVersaoDBF < 20200406
IF :FieldExists( "CDSITFAZ", "JPCADASTRO" )
:ExecuteCmd( "ALTER TABLE JPCADASTRO DROP COLUMN CDSITFAZ" )
ENDIF
IF :FieldExists( "CDSITNFE", "JPCADASTRO" )
:ExecuteCmd( "ALTER TABLE JPCADASTRO DROP COLUMN CDSITNFE" )
ENDIF
ENDIF
IF nVersaoDBF < 20200427
:ExecuteCmd( "UPDATE JPCADASTRO SET CDVENDEDOR = '000000' WHERE CDPORTADOR IS NULL OR CDVENDEDOR < '0' OR CDVENDEDOR > '999999'" )
:ExecuteCmd( "UPDATE JPCADASTRO SET CDPORTADOR = '000000' WHERE CDVENDEDOR IS NULL OR CDPORTADOR < '0' OR CDPORTADOR > '999999'" )
:ExecuteCmd( "UPDATE JPCADASTRO SET CDTRANSP = '000000' WHERE CDTRANSP IS NULL OR CDTRANSP < '0' OR CDTRANSP > '999999'" )
:ExecuteCmd( "UPDATE JPCADASTRO SET CDTRICAD = '000000' WHERE CDTRICAD IS NULL OR CDTRICAD < '0' OR CDTRICAD > '999999'" )
:ExecuteCmd( "UPDATE JPCADASTRO SET CDSTATUS = '000000' WHERE CDSTATUS IS NULL OR CDSTATUS < '0' OR CDSTATUS > '999999'" )
:ExecuteCmd( "ALTER TABLE JPCADASTRO" + ;
" CHANGE COLUMN CDVENDEDOR CDVENDEDOR INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN CDPORTADOR CDPORTADOR INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN CDTRANSP CDTRANSP INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN CDTRICAD CDTRICAD INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN CDSTATUS CDSTATUS INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDbf < 20200427
:ExecuteCmd( "UPDATE JPITEM SET IEPRODEP = '000000' WHERE IEPRODEP IS NULL OR IEPRODEP < '0' OR IEPRODEP > '999999'" )
:ExecuteCmd( "UPDATE JPITEM SET IEPROSEC = '000000' WHERE IEPROSEC IS NULL OR IEPROSEC < '0' OR IEPROSEC > '999999'" )
:ExecuteCmd( "UPDATE JPITEM SET IEPROGRU = '000000' WHERE IEPROGRU IS NULL OR IEPROGRU < '0' OR IEPROGRU > '999999'" )
:ExecuteCmd( "UPDATE JPITEM SET IEPROLOC = '000000' WHERE IEPROLOC IS NULL OR IEPROLOC < '0' OR IEPROLOC > '999999'" )
:ExecuteCmd( "ALTER TABLE JPITEM" + ;
" CHANGE IEPRODEP IEPRODEP INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE IEPROSEC IEPROSEC INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE IEPROGRU IEPROGRU INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE IEPROLOC IEPROLOC INT(11) NOT NULL DEFAULT '0'" )
ENDIF
ENDWITH
RETURN NIL
STATIC FUNCTION Update07SQL( nVersaoDBF )
LOCAL cnSQL := ADOClass():New( AppConexao() )
IF AppConexao() == NIL
RETURN NIL
ENDIF
WITH OBJECT cnSQL
IF nVersaoDBF < 20200716
IF ! :FieldExists( "PHREAJUSTE", "JPPREHIS" )
:ExecuteCmd( "ALTER TABLE JPPREHIS ADD COLUMN PHREAJUSTE VARCHAR(1) NOT NULL DEFAULT ''" )
ENDIF
:ExecuteCmd( "DELETE FROM JPPREHIS WHERE PHCADASTRO IS NULL OR PHCADASTRO = 0 OR" + ;
" PHPRODUTO IS NULL OR PHPRODUTO = 0 OR PHFORPAG IS NULL OR PHFORPAG = 0" )
ENDIF
IF nVersaoDBF < 20200728
SayScroll( "2020.07.28 Docto/Parcela não zero JPFINAN.SQL" )
:ExecuteCmd( "UPDATE JPFINAN SET FIPARCELA = '001' WHERE FIPARCELA < '001'" )
:ExecuteCmd( "UPDATE JPFINAN SET FINUMDOC = '000000001' WHERE FINUMDOC < '000000001'" )
:ExecuteCmd( "UPDATE JPFINAN SET FINUMBAN = '0' WHERE FINUMBAN = ''" )
:ExecuteCmd( "ALTER TABLE JPFINAN" + ;
" CHANGE COLUMN FIPARCELA FIPARCELA INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN FINUMDOC FINUMDOC INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN FINUMBAN FINUMBAN INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200716
IF ! :FieldExists( "PCDATA", "JPPRECO" )
:ExecuteCmd( "ALTER TABLE JPPRECO ADD COLUMN PCDATA DATE NULL" )
ENDIF
IF ! :FieldExists( "PCHORA", "JPPRECO" )
:ExecuteCmd( "ALTER TABLE JPPRECO ADD COLUMN PCHORA VARCHAR(8) NOT NULL DEFAULT ''" )
ENDIF
:ExecuteCmd( "DELETE FROM JPPRECO WHERE PCCADASTRO IS NULL OR PCCADASTRO = 0 OR " + ;
" PCPRODUTO IS NULL OR PCPRODUTO = 0 OR PCFORPAG IS NULL OR PCFORPAG = 0" )
ENDIF
ENDWITH
RETURN NIL
STATIC FUNCTION Update0705()
SayScroll( "2020-07-05 - Nome de rotina" )
IF ! AbreArquivos( "jpsenha" )
QUIT
ENDIF
pw_AddModule( "PJPPEDIDO", "P0600PED" )
pw_AddModule( "PJPESTOQUE", "PESTOLANCA1" )
pw_AddModule( "PJPESTOQUEE", "PESTOLANCA2" )
pw_AddModule( "PJPPEDIDOCTE", "ADMPEDCTE" )
pw_AddModule( "PJPPEDIDONFE", "ADMPEDNOT" )
pw_AddModule( "PJPPEDIDOFATURA", "ADMPEDFAT" )
pw_AddModule( "PJPPEDIDOCUPOM", "ADMPEDCUP" )
pw_AddModule( "PJPMDFCAB", "PJPMF" )
pw_AddModule( "PJPPEDIDONOTA", "P0600NOTA" )
pw_AddModule( "PJPMDFCAB", "PJPMDF" )
CLOSE DATABASES
RETURN NIL
STATIC FUNCTION Update0707()
IF AppConexao() == NIL
RETURN NIL
ENDIF
SayScroll( "2020-07-06" )
SayScroll( "Salvando SQL.JPBANCARIO" )
VerificaNumeracao( "JPBANCARIO", "IDBANCARIO" )
CopyDbfToSQL( "JPBANCARIO", .T., .F., .T. )
SayScroll( "Salvando SQL.JPBACCUSTO" )
VerificaNumeracao( "JPBACCUSTO", "IDBACCUSTO" )
CopyDBFToSQL( "JPBACCUSTO", .T., .F., .T. )
SayScroll( "Salvando SQL.JPBAAUTO" )
VerificaNumeracao( "JPBAAUTO", "IDBAAUTO" )
CopyDBFToSQL( "JPBAAUTO", .T., .F., .T. )
RETURN NIL
STATIC FUNCTION Update0713()
IF AppConexao() == NIL
RETURN NIL
ENDIF
SayScroll( "2020-07-13 Salvando SQL.JPPRECO" )
CopyDBFToSQL( "JPPRECO", .T., .F., .T. )
RETURN NIL
STATIC FUNCTION Update0727B()
SayScroll( "2020-07-27 Update JPFISCAL.DBF" )
IF ! UseSoDBF( "jpfiscal", .T. )
QUIT
ENDIF
DO WHILE ! Eof()
RecLock()
REPLACE ;
jpfiscal->lfPedido WITH StrZero( Val( jpfiscal->lfPedido ), 6 ), ;
jpfiscal->lfFilial WITH StrZero( Val( jpfiscal->lfFilial ), 6 ), ;
jpfiscal->lfDocIni WITH StrZero( Val( jpfiscal->lfDocIni ), 9 ), ;
jpfiscal->lfDocFim WITH StrZero( Val( jpfiscal->lfDocFim ), 9 ), ;
jpfiscal->lfCadastro WITH StrZero( Val( jpfiscal->lfCadastro ), 6 ), ;
jpfiscal->lfModFis WITH StrZero( Val( jpfiscal->lfModFis ), 2 ), ;
jpfiscal->lfCCusto WITH StrZero( Val( jpfiscal->lfCCusto ), 6 )
SKIP
ENDDO
CLOSE DATABASES
IF AppConexao() == NIL
RETURN NIL
ENDIF
SayScroll( "Salvando SQL.JPFISCAL" )
VerificaNumeracao( "jpfiscal", "IDFISCAL", "lfObs" )
CopyDbfToSQL( "JPFISCAL", .T., .F., .T. )
RETURN NIL
STATIC FUNCTION Update08SQL( nVersaoDBF )
LOCAL cnSQL := ADOClass():New( AppConexao() )
IF AppConexao() == NIL
RETURN NIL
ENDIF
SayScroll( "2020-08 SQL" )
WITH OBJECT cnSQL
IF nVersaoDBF < 20200801
SayScroll( "2020-08-01 SQL" )
:ExecuteCmd( "ALTER TABLE JPAGENDA CHANGE COLUMN IDAGENDA IDAGENDA INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPAGE CHANGE COLUMN IDANPAGE IDANPAGE INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPATI CHANGE COLUMN IDANPATI IDANPATI INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPINS CHANGE COLUMN IDANPINS IDANPINS INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPLOC CHANGE COLUMN IDANPLOC IDANPLOC INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPOPE CHANGE COLUMN IDANPOPE IDANPOPE INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPANPPRO CHANGE COLUMN IDANPPRO IDANPPRO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPCLISTA CHANGE COLUMN IDCLISTA IDCLISTA INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPCOMBUSTIVEL CHANGE COLUMN IDCOMBUSTIVEL IDCOMBUSTIVEL INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPCOMISSAO CHANGE COLUMN IDCOMISSAO IDCOMISSAO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPDECRETO CHANGE COLUMN IDDECRETO IDDECRETO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPEDICFG CHANGE COLUMN IDEDICFG IDEDICFG INT(11) NOT NULL AUTO_INCREMENT" )
ENDIF
IF nVersaoDBF < 20200801
:ExecuteCmd( "ALTER TABLE JPEMANFE CHANGE COLUMN IDEMANFE IDEMANFE INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "UPDATE JPESTOQUE SET ESPEDIDO = 0 WHERE ESPEDIDO=''" )
:ExecuteCmd( "ALTER TABLE JPESTOQUE CHANGE COLUMN IDESTOQUE IDESTOQUE INT(11) NOT NULL AUTO_INCREMENT," + ;
"CHANGE COLUMN ESPEDIDO ESPEDIDO INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "ALTER TABLE JPFISICA CHANGE COLUMN IDFISICA IDFISICA INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPIBPT CHANGE COLUMN IDIBPT IDIBPT INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPMOTORI CHANGE COLUMN IDMOTORI IDMOTORI INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPFORPAG" + ;
" CHANGE COLUMN IDFORPAG IDFORPAG INT(11) NOT NULL AUTO_INCREMENT," + ;
" CHANGE COLUMN FPDE1 FPDE1 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPATE1 FPATE1 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTMES1 FPQTMES1 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTDIA1 FPQTDIA1 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDIAFIM1 FPDIAFIM1 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDE2 FPDE2 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPATE2 FPATE2 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTMES2 FPQTMES2 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTDIA2 FPQTDIA2 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDIAFIM2 FPDIAFIM2 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDE3 FPDE3 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPATE3 FPATE3 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTMES3 FPQTMES3 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTDIA3 FPQTDIA3 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDIAFIM3 FPDIAFIM3 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDE4 FPDE4 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPATE4 FPATE4 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTMES4 FPQTMES4 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTDIA4 FPQTDIA4 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDIAFIM4 FPDIAFIM4 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDE5 FPDE5 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPATE5 FPATE5 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTMES5 FPQTMES5 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPQTDIA5 FPQTDIA5 INT(3) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN FPDIAFIM5 FPDIAFIM5 INT(3) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200801
IF :FieldExists( "NFCADTRA", "JPNOTFIS" )
:ExecuteCmd( "UPDATE JPNOTFIS SET NFCADTRA = '0' WHERE NFCADTRA = ''" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS CHANGE COLUMN NFCADTRA NFTRANSP INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF ! :FieldExists( "KKMANIF", "JPNFEKEY" )
:ExecuteCmd( "ALTER TABLE JPNFEKEY ADD COLUMN KKMANIF CHAR(1) NOT NULL DEFAULT 'N'" )
:ExecuteCmd( "UPDATE JPNFEKEY SET KKMANIF = 'S' WHERE KKDATEMI < '2020-03-01'" )
ENDIF
:ExecuteCmd( "ALTER TABLE JPIMPOSTO CHANGE COLUMN IDIMPOSTO IDIMPOSTO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPLICMOV CHANGE COLUMN IDLICMOV IDLICMOV INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPNFBASE CHANGE COLUMN IDNFBASE IDNFBASE INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPNOTFIS" + ;
" CHANGE COLUMN IDNOTFIS IDNOTFIS INT(11) NOT NULL AUTO_INCREMENT," + ;
" CHANGE COLUMN NFPEDIDO NFPEDIDO INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN NFQTDVOL NFQTDVOL INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN NFTRANSP NFTRANSP INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "ALTER TABLE JPPREHIS CHANGE COLUMN IDPREHIS IDPREHIS INT(11) NOT NULL AUTO_INCREMENT" )
ENDIF
IF nVersaoDBF < 20200801
:ExecuteCmd( "ALTER TABLE JPFINAN CHANGE COLUMN FIPEDIDO FIPEDIDO INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "ALTER TABLE JPTRANSA CHANGE COLUMN IDTRANSA IDTRANSA INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPVEICULO" + ;
" CHANGE COLUMN IDVEICULO IDVEICULO INT(11) NOT NULL AUTO_INCREMENT, " + ;
" CHANGE COLUMN VEPESO VEPESO INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPACTOT VECAPACTOT INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC1 VECAPAC1 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC2 VECAPAC2 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC3 VECAPAC3 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC4 VECAPAC4 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC5 VECAPAC5 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC6 VECAPAC6 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC7 VECAPAC7 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC8 VECAPAC8 INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN VECAPAC9 VECAPAC9 INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "ALTER TABLE JPVENDEDOR CHANGE COLUMN IDVENDEDOR IDVENDEDOR INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPFINAN" + ;
" CHANGE COLUMN IDFINAN IDFINAN INT(11) NOT NULL AUTO_INCREMENT," + ;
" CHANGE COLUMN FIPEDIDO FIPEDIDO INT(11) NOT NULL DEFAULT '0' " )
:ExecuteCmd( "ALTER TABLE JPITPED" + ;
" CHANGE COLUMN IDITPED IDITPED INT(11) NOT NULL AUTO_INCREMENT, " + ;
" CHANGE COLUMN IPPEDIDO IPPEDIDO INT(11) NOT NULL DEFAULT '0'," + ;
" CHANGE COLUMN IPGARANTIA IPGARANTIA INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200801
:ExecuteCmd( "ALTER TABLE JPCADASTRO CHANGE COLUMN IDCADASTRO IDCADASTRO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPTRANSP CHANGE COLUMN IDTRANSP IDTRANSP INT(11) NOT NULL AUTO_INCREMENT" )
ENDIF
IF nVersaoDBF < 20200801
IF :FieldExists( "JPVALTAB", "JPPEDIDO" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO DROP COLUMN PDVALTAB" )
ENDIF
:ExecuteCmd( "UPDATE JPPEDIDO SET PDPEDREL = 0 WHERE PDPEDREL=''" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO CHANGE COLUMN PDPEDREL PDPEDREL INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "ALTER TABLE JPITEM CHANGE COLUMN IDPRODUTO IDPRODUTO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPITEM" + ;
" CHANGE COLUMN IDPRODUTO IDPRODUTO INT(11) NOT NULL AUTO_INCREMENT," + ;
" CHANGE COLUMN IEGTINQTD IEGTINQTD INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN IEGARCOM IEGARCOM INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN IEGARVEN IEGARVEN INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN IEALTURA IEALTURA INT(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN IELARGURA IELARGURA Int(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN IEPROFUND IEPROFUND Int(11) NOT NULL DEFAULT '0', " + ;
" CHANGE COLUMN IEQTDCOM IEQTDCOM INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "ALTER TABLE JPPEDIDO CHANGE COLUMN IDPEDIDO IDPEDIDO INT(11) NOT NULL AUTO_INCREMENT" )
ENDIF
IF nVersaoDBF < 20200801
:ExecuteCmd( "ALTER TABLE JPCIDADE CHANGE COLUMN IDCIDADE IDCIDADE INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPFISCAL" + ;
" CHANGE COLUMN IDFISCAL IDFISCAL INT(11) NOT NULL AUTO_INCREMENT," + ;
" CHANGE COLUMN LFPEDIDO LFPEDIDO INT(11) NOT NULL DEFAULT '0'" )
:ExecuteCmd( "ALTER TABLE JPPRECO CHANGE COLUMN IDPRECO IDPRECO INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPMDFCAB CHANGE COLUMN IDMDFCAB IDMDFCAB INT(11) NOT NULL AUTO_INCREMENT" )
:ExecuteCmd( "ALTER TABLE JPMDFDET" + ;
" CHANGE COLUMN IDMDFDET IDMDFDET INT(11) NOT NULL AUTO_INCREMENT," + ;
" CHANGE COLUMN MDPESO MDPESO INT(11) NOT NULL DEFAULT '0'" )
ENDIF
IF nVersaoDBF < 20200804
:ExecuteCmd( "ALTER TABLE JPBANCARIO CHANGE COLUMN BAHIST BAHIST VARCHAR(50) NOT NULL DEFAULT ''" )
ENDIF
ENDWITH
RETURN NIL
Tem muito comando SQL nesse fonte.
Por isso apagando coisa antiga, porque começa a ser arriscado deixar essas mudanças no fonte, por causa de atrasadinhos.
Atualizar só UM cliente atrasado nesta semana, pra apagar tudo anterior a JULHO.
Pois é... a tranferência/uso foi só mais uma entre várias etapas.
Agora começa a fase: o que mais o MySQL pode fazer, que o DBF não podia...
É, por exemplo: juntar registros com linhas separadas de observações, porque podem ficar todas juntas no MySQL.
Alterar isso antes, complicaria pra manter compatibilidade com estrutura de DBFs pra transferir.
Uma vez encerrada a transferência em todos os clientes, acabou a necessidade de manter compatibilidade.