Merge branch 'R_10_00' of http://10.65.20.33/sirio/CAMPO/campo into R_10_00
This commit is contained in:
		
						commit
						06a2fa1b05
					
				| @ -59,19 +59,23 @@ BEGIN | |||||||
|   PROMPT 2 5 "@bTipo bilancio" |   PROMPT 2 5 "@bTipo bilancio" | ||||||
|   HELP "Indicare il tipo di bilancio da stampare" |   HELP "Indicare il tipo di bilancio da stampare" | ||||||
|   ITEM "1|Bilancio a sezioni contrapposte" |   ITEM "1|Bilancio a sezioni contrapposte" | ||||||
|   MESSAGE HIDE,F_STAMPA1|RESET,F_STAMPA1|HIDE,F_VERIFICA|RESET,F_VERIFICA |   //MESSAGE HIDE,F_STAMPA1|RESET,F_STAMPA1|HIDE,F_VERIFICA|RESET,F_VERIFICA | ||||||
|   MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV|HIDE,F_DATADA|RESET,F_DATADA |   //MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV|HIDE,F_DATADA|RESET,F_DATADA | ||||||
|   MESSAGE HIDE,F_DATAA|RESET,F_DATAA|HIDE,F_SITUAZIONE|RESET,F_SITUAZIONE |   //MESSAGE HIDE,F_DATAA|RESET,F_DATAA|HIDE,F_SITUAZIONE|RESET,F_SITUAZIONE | ||||||
|   MESSAGE HIDE,F_ORDINAMENTO|RESET,F_ORDINAMENTO|HIDE,F_STAMPAC|RESET,F_STAMPAC |   //MESSAGE HIDE,F_ORDINAMENTO|RESET,F_ORDINAMENTO|HIDE,F_STAMPAC|RESET,F_STAMPAC | ||||||
|  |   MESSAGE SHOW,1@ | ||||||
|  |   MESSAGE HIDE,2@|RESET,2@ | ||||||
|   MESSAGE HIDE,96|HIDE,97|HIDE,98|HIDE,99 |   MESSAGE HIDE,96|HIDE,97|HIDE,98|HIDE,99 | ||||||
|   MESSAGE CLEAR,F_MODULO |   MESSAGE CLEAR,F_MODULO | ||||||
|   MESSAGE SHOW,F_STAMPA|K_SPACE,F_STAMPA |   //MESSAGE SHOW,F_STAMPA|K_SPACE,F_STAMPA | ||||||
|   ITEM "2|Bilancio di verifica" |   ITEM "2|Bilancio di verifica" | ||||||
|   MESSAGE HIDE,F_STAMPA|RESET,F_STAMPA |   //MESSAGE HIDE,F_STAMPA|RESET,F_STAMPA | ||||||
|   MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM|HIDE,F_TOTALI|RESET,F_TOTALI |   //MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM|HIDE,F_TOTALI|RESET,F_TOTALI | ||||||
|   MESSAGE HIDE,F_CODICI|RESET,F_CODICI|HIDE,F_SALDO|RESET,F_SALDO |   //MESSAGE HIDE,F_CODICI|RESET,F_CODICI|HIDE,F_SALDO|RESET,F_SALDO | ||||||
|   MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV |   //MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV | ||||||
|   MESSAGE SHOW,F_VERIFICA|K_SPACE,F_VERIFICA|SHOW,F_STAMPA1|K_SPACE,F_STAMPA1 |   MESSAGE HIDE,1@|RESET,1@ | ||||||
|  |   MESSAGE SHOW,2@ | ||||||
|  |   //MESSAGE SHOW,F_VERIFICA|K_SPACE,F_VERIFICA|SHOW,F_STAMPA1|K_SPACE,F_STAMPA1 | ||||||
|   MESSAGE ENABLE,F_MODULO |   MESSAGE ENABLE,F_MODULO | ||||||
|   MESSAGE SHOW,96|SHOW,97|SHOW,98|SHOW,99 |   MESSAGE SHOW,96|SHOW,97|SHOW,98|SHOW,99 | ||||||
| END | END | ||||||
| @ -80,6 +84,7 @@ RADIOBUTTON F_STAMPA 28 | |||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 41 5 "@bTipo stampa" |   PROMPT 41 5 "@bTipo stampa" | ||||||
|   HELP "Indicare il tipo di stampa" |   HELP "Indicare il tipo di stampa" | ||||||
|  |   GROUP 1 | ||||||
|   ITEM "1|Per date limite" |   ITEM "1|Per date limite" | ||||||
|   MESSAGE SHOW,F_DATALIM|SHOW,F_TOTALI|SHOW,F_CODICI|SHOW,F_SALDO |   MESSAGE SHOW,F_DATALIM|SHOW,F_TOTALI|SHOW,F_CODICI|SHOW,F_SALDO | ||||||
| #ifdef CONT_SEP | #ifdef CONT_SEP | ||||||
| @ -98,13 +103,14 @@ BEGIN | |||||||
|   PROMPT 40 5 "@bTipo stampa" |   PROMPT 40 5 "@bTipo stampa" | ||||||
|   //FLAGS "G" |   //FLAGS "G" | ||||||
|   HELP "Indicare il tipo di stampa" |   HELP "Indicare il tipo di stampa" | ||||||
|  |   GROUP 2 | ||||||
|   ITEM "1|Per date limite" |   ITEM "1|Per date limite" | ||||||
|   MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO|SHOW,F_STAMPAMPROV |   MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO | ||||||
| #ifdef CONT_SEP | #ifdef CONT_SEP | ||||||
|   MESSAGE SHOW,F_CONTSEP |   MESSAGE SHOW,F_CONTSEP | ||||||
| #endif | #endif | ||||||
|   ITEM "2|All'ultima immissione" |   ITEM "2|All'ultima immissione" | ||||||
|   MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO|SHOW,F_STAMPAMPROV |   MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO | ||||||
|   MESSAGE COPY,F_STAMPA |   MESSAGE COPY,F_STAMPA | ||||||
| #ifdef CONT_SEP | #ifdef CONT_SEP | ||||||
|   MESSAGE HIDE,F_CONTSEP |   MESSAGE HIDE,F_CONTSEP | ||||||
| @ -115,34 +121,38 @@ DATE F_DATALIM | |||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 2 9 "Data limite      " |   PROMPT 2 9 "Data limite      " | ||||||
|   HELP "Data fino alla quale si vuole la stampa" |   HELP "Data fino alla quale si vuole la stampa" | ||||||
|  |   GROUP 1 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_TOTALI | BOOLEAN F_TOTALI | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 33 9 "Non stampare totali per gruppo " |   PROMPT 33 9 "Non stampare totali per gruppo " | ||||||
|   HELP "Indicare se non si devono stampare i totali dei gruppi" |   HELP "Indicare se non si devono stampare i totali dei gruppi" | ||||||
|  |   GROUP 1 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_CODICI | BOOLEAN F_CODICI | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 2 10 "Non stampare codici conti " |   PROMPT 2 10 "Non stampare codici conti " | ||||||
|   HELP "Indicare se non si devono stampare i codici dei conti" |   HELP "Indicare se non si devono stampare i codici dei conti" | ||||||
|  |   GROUP 1 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_SALDO | BOOLEAN F_SALDO | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 33 10 "Non stampare movimenti con saldo a zero " |   PROMPT 33 10 "Non stampare movimenti con saldo a zero " | ||||||
|   HELP "Indicare se non si devono stampare i movimenti con saldo nullo" |   HELP "Indicare se non si devono stampare i movimenti con saldo nullo" | ||||||
|  |   GROUP 1 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| TEXT 96 | TEXT 96 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 2 10 "Dalla data competenza " |   PROMPT 2 9 "Dalla data competenza " | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| TEXT 97 | TEXT 97 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 38 10 "Alla data competenza " |   PROMPT 38 9 "Alla data competenza " | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| TEXT 98 | TEXT 98 | ||||||
| @ -158,12 +168,14 @@ END | |||||||
| DATE F_DATADA | DATE F_DATADA | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 24 10 "" |   PROMPT 24 10 "" | ||||||
|   HELP "Data dalla quale iniziare la stampa" |   HELP "Data dall quale iniziare la stampa" | ||||||
|  |   GROUP 2 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| DATE F_DATAA | DATE F_DATAA | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 60 10 "" |   PROMPT 60 10 "" | ||||||
|  |   GROUP 2 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_NORMALI | BOOLEAN F_NORMALI | ||||||
| @ -222,6 +234,7 @@ RADIOBUTTON F_VERIFICA 27 | |||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 2 1 "@bStampa bilancio di verifica " |   PROMPT 2 1 "@bStampa bilancio di verifica " | ||||||
|   HELP "Tipo di bilancio di verifica" |   HELP "Tipo di bilancio di verifica" | ||||||
|  |   GROUP 2 | ||||||
|   ITEM "1|Bilancio"  |   ITEM "1|Bilancio"  | ||||||
|     MESSAGE SHOW,F_HIDE_CLIFO|SHOW,F_PRINT_FULL_CODE |     MESSAGE SHOW,F_HIDE_CLIFO|SHOW,F_PRINT_FULL_CODE | ||||||
|   ITEM "2|Saldi di mastro" |   ITEM "2|Saldi di mastro" | ||||||
| @ -233,9 +246,9 @@ END | |||||||
| RADIOBUTTON F_STAMPAC 36 | RADIOBUTTON F_STAMPAC 36 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 34 1 "@bTipo stampa" |   PROMPT 34 1 "@bTipo stampa" | ||||||
| 
 |  | ||||||
|   ITEM "1|Conti movimentati" |   ITEM "1|Conti movimentati" | ||||||
|   ITEM "2|Conti con saldo diverso da zero" |   ITEM "2|Conti con saldo diverso da zero" | ||||||
|  |   GROUP 2 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| RADIOBUTTON F_STAMPAV 36 | RADIOBUTTON F_STAMPAV 36 | ||||||
| @ -244,6 +257,7 @@ BEGIN | |||||||
|   ITEM "1|Conti movimentati" |   ITEM "1|Conti movimentati" | ||||||
|   ITEM "2|Conti con saldo diverso da zero" |   ITEM "2|Conti con saldo diverso da zero" | ||||||
|   ITEM "3|Tutti i conti" |   ITEM "3|Tutti i conti" | ||||||
|  |   GROUP 1 2 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_SEPARATOR | BOOLEAN F_SEPARATOR | ||||||
| @ -275,6 +289,7 @@ BEGIN | |||||||
|   ITEM " |Entrambi" |   ITEM " |Entrambi" | ||||||
|   ITEM "C|Clienti" |   ITEM "C|Clienti" | ||||||
|   ITEM "F|Fornitori" |   ITEM "F|Fornitori" | ||||||
|  |   GROUP 2 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| LIST F_ORDINAMENTO 11 | LIST F_ORDINAMENTO 11 | ||||||
| @ -282,6 +297,7 @@ BEGIN | |||||||
|   PROMPT 2 11 "Tipo ordinamento " |   PROMPT 2 11 "Tipo ordinamento " | ||||||
|   ITEM "1|Per codice" |   ITEM "1|Per codice" | ||||||
|   ITEM "2|Alfabetico" |   ITEM "2|Alfabetico" | ||||||
|  |   GROUP 2 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| GROUPBOX DLG_NULL 55 6 | GROUPBOX DLG_NULL 55 6 | ||||||
|  | |||||||
| @ -4102,8 +4102,6 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) | |||||||
| 			credito_utilizzabile -= cred_util_F24;  | 			credito_utilizzabile -= cred_util_F24;  | ||||||
| 		  credito_autorizzato_F24 = lim.get_real("R20"); | 		  credito_autorizzato_F24 = lim.get_real("R20"); | ||||||
| 			credito_utilizzabile += credito_autorizzato_F24;  | 			credito_utilizzabile += credito_autorizzato_F24;  | ||||||
| //			risultato += credito_autorizzato_F24;
 |  | ||||||
| //			res_debt += credito_autorizzato_F24;
 |  | ||||||
| 			 | 			 | ||||||
|       if (credito_utilizzabile < ZERO) |       if (credito_utilizzabile < ZERO) | ||||||
| 				credito_utilizzabile = ZERO; | 				credito_utilizzabile = ZERO; | ||||||
| @ -4119,6 +4117,14 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) | |||||||
|         res_cred += credito_utilizzato_iva; |         res_cred += credito_utilizzato_iva; | ||||||
|         risultato -= credito_utilizzato_iva; |         risultato -= credito_utilizzato_iva; | ||||||
| 			} | 			} | ||||||
|  |     } | ||||||
|  | 		if (credito_compensabile) | ||||||
|  | 		{ | ||||||
|  | 			TRectype lim = get_lim(month + deltam); | ||||||
|  | 
 | ||||||
|  | 			credito_autorizzato_F24 = lim.get_real("R20"); | ||||||
|  | 			risultato += credito_autorizzato_F24; | ||||||
|  | 			res_debt += credito_autorizzato_F24; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|   else  |   else  | ||||||
|  | |||||||
| @ -2426,7 +2426,7 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw) | |||||||
| 		if (_month < 13 && credito_compensabile && credito_autorizzato_F24 > ZERO) | 		if (_month < 13 && credito_compensabile && credito_autorizzato_F24 > ZERO) | ||||||
| 		{ | 		{ | ||||||
| 			cred_prec -= credito_autorizzato_F24; | 			cred_prec -= credito_autorizzato_F24; | ||||||
| 		cre_deb_per += credito_autorizzato_F24; | //		cre_deb_per += credito_autorizzato_F24;
 | ||||||
| 			set_row(rw++,FR("%s@11gCredito IVA autorizzato in F24%s@75g%r@100gil %s"), _is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &credito_autorizzato_F24, (const char *) data_autorizzazione);    | 			set_row(rw++,FR("%s@11gCredito IVA autorizzato in F24%s@75g%r@100gil %s"), _is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &credito_autorizzato_F24, (const char *) data_autorizzazione);    | ||||||
| 		} | 		} | ||||||
|     cred_prec -= rimborso; |     cred_prec -= rimborso; | ||||||
| @ -2547,7 +2547,7 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw) | |||||||
| 			if (credito_autorizzato_F24 > ZERO) | 			if (credito_autorizzato_F24 > ZERO) | ||||||
| 			{ | 			{ | ||||||
| 				credito_utilizzabile += credito_autorizzato_F24; | 				credito_utilizzabile += credito_autorizzato_F24; | ||||||
| 				set_row(rw++,FR("%s@11gCredito IVA autorizzato in F24%s@75g%r@100gil %s"), _is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &credito_autorizzato_F24, (const char *) data_autorizzazione);    | 				set_row(rw++,FR("%s@11gCredito IVA autorizzato in F24%s@58g%r@100gil %s"), _is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &credito_autorizzato_F24, (const char *) data_autorizzazione);    | ||||||
| 			} | 			} | ||||||
| 			set_row(rw++, FR("@11gCredito IVA compensabile detratto@75g%r"), &credito_utilizzato_IVA);           | 			set_row(rw++, FR("@11gCredito IVA compensabile detratto@75g%r"), &credito_utilizzato_IVA);           | ||||||
| 			credito_utilizzabile -= credito_utilizzato_IVA; | 			credito_utilizzabile -= credito_utilizzato_IVA; | ||||||
|  | |||||||
| @ -15,13 +15,14 @@ | |||||||
| /*
 | /*
 | ||||||
|  * - Per aggiornare le tabelle f9 aggiungere nella cartella "sql\f9\" il file sql cosi' fatto: |  * - Per aggiornare le tabelle f9 aggiungere nella cartella "sql\f9\" il file sql cosi' fatto: | ||||||
|  * f9xxxx.sql dove xxxx e' il numero zero-filled della versione delle tabelle, che INCREMENTA DI DUE COME CON LE PATCH, IMPORTANTE! |  * f9xxxx.sql dove xxxx e' il numero zero-filled della versione delle tabelle, che INCREMENTA DI DUE COME CON LE PATCH, IMPORTANTE! | ||||||
|  * - Aggiornare la definizione qui sotto di F9_SQL_VERSION mettendo la nuova versione. |  * - Aggiornare la definizione qui sotto di SQL_VERSION mettendo la nuova versione. | ||||||
|  * - Fare patch del file sql e dell'eseguibile f90.exe |  * - Fare patch del file sql e dell'eseguibile f90.exe | ||||||
|  * - Lanciare il programma per eseguire l'aggiornamento. |  * - Lanciare il programma per eseguire l'aggiornamento. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #define TABMOD_SQL_VERSION  "S0" | #define TABMOD_TABVER       "S0"  // Campo per la memorizzazione della versione attuale delle tabelle
 | ||||||
| #define F9_SQL_VERSION      100   // Utilizzo questo per controllare la versione attuale delle tabelle e nel caso aggiornarle
 | #define TAB_BASE_VERSION    100   // Versione base delle tabelle
 | ||||||
|  | #define SQL_VERSION         100   // Utilizzo questo per controllare la versione attuale delle tabelle e nel caso aggiornarle
 | ||||||
| 
 | 
 | ||||||
| SSimple_query& db() | SSimple_query& db() | ||||||
| { | { | ||||||
| @ -100,7 +101,7 @@ bool TEstrai_mask::estrai_handler(TMask_field& f, unsigned short key) | |||||||
|     message_box("Estrazione avvenuta con successo!"); |     message_box("Estrazione avvenuta con successo!"); | ||||||
|     app().segna_estratti(); |     app().segna_estratti(); | ||||||
|   } |   } | ||||||
| 	else if (!stato) |   if (!stato) | ||||||
|   { |   { | ||||||
|     app().segna_in_errore(); |     app().segna_in_errore(); | ||||||
|     warning_box("L'estrazione non e' stata completata. Controllare il log degli errori."); |     warning_box("L'estrazione non e' stata completata. Controllare il log degli errori."); | ||||||
| @ -225,13 +226,13 @@ void TMonitor_mask::open_win_conf() const | |||||||
| 	m->run(); | 	m->run(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TMonitor_mask::fill() | void TMonitor_mask::fill() const | ||||||
| { | { | ||||||
|   app()._ambiente = ini_get_string(CONFIG_DITTA, PAR_MOD, AMBIENTE_F9); |   app()._ambiente = ini_get_string(CONFIG_DITTA, PAR_MOD, AMBIENTE_F9); | ||||||
|   app()._addr_doc = ini_get_string(CONFIG_DITTA, PAR_MOD, ADDRCART_F9); |   app()._addr_doc = ini_get_string(CONFIG_DITTA, PAR_MOD, ADDRCART_F9); | ||||||
| 
 | 
 | ||||||
|   TString query; |   TString query; | ||||||
|   query << "SELECT * FROM F9DRD00K ORDER BY " << DRD_TIME << ";"; |   query << "SELECT * FROM F9DRD00K ORDER BY " << DRD_TIME << " DESC;"; | ||||||
|   db().sq_set_exec(query, false); |   db().sq_set_exec(query, false); | ||||||
| 
 | 
 | ||||||
|   TSheet_field& sf = sfield(S_ELAB); |   TSheet_field& sf = sfield(S_ELAB); | ||||||
| @ -259,19 +260,12 @@ void TMonitor_mask::fill() | |||||||
|     row.add(db().sq_get(DRD_UTENTE)); |     row.add(db().sq_get(DRD_UTENTE)); | ||||||
|     row.add(TF9_app::traduci_stato(db().sq_get(DRD_STATO))); |     row.add(TF9_app::traduci_stato(db().sq_get(DRD_STATO))); | ||||||
|     row.add(db().sq_get(DRD_DESC)); |     row.add(db().sq_get(DRD_DESC)); | ||||||
|     if (TDate(row.get(cid2index(F_DATAESTR))) == today) |  | ||||||
|     { |  | ||||||
|       if (TString(row.get(cid2index(F_PROV_B))) == "X") |  | ||||||
|         app()._last_estr_p = real(TString(row.get(cid2index(F_IDESTR))).ltrim(10)).integer(); |  | ||||||
|       else |  | ||||||
|         app()._last_estr_d = real(TString(row.get(cid2index(F_IDESTR))).ltrim(10)).integer(); |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|   sf.force_update(); |   sf.force_update(); | ||||||
|   sf.show(); |   sf.show(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TMonitor_mask::delete_pack(bool all) | void TMonitor_mask::delete_pack(const bool all) const | ||||||
| { | { | ||||||
|   bool flag = false; |   bool flag = false; | ||||||
|   TSheet_field& sf = sfield(S_ELAB); |   TSheet_field& sf = sfield(S_ELAB); | ||||||
| @ -417,6 +411,13 @@ void TF9_dberr::send() | |||||||
|   _insert.cut(0) << "INSERT INTO " F9_ERR " VALUES ()"; |   _insert.cut(0) << "INSERT INTO " F9_ERR " VALUES ()"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void TF9_dberr::del_err(const TString& id_estr, int numreg) | ||||||
|  | { | ||||||
|  |   TString query; | ||||||
|  |   query << "DELETE FROM " F9_ERR " WHERE IDESTR = '" << id_estr << "' AND NUMREG = '" << numreg << "';"; | ||||||
|  |   db().sq_set_exec(query); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| char TF9_dberr::get_errori(const TString& id_estr, vector<TToken_string>& movs) | char TF9_dberr::get_errori(const TString& id_estr, vector<TToken_string>& movs) | ||||||
| { | { | ||||||
|   TString query; |   TString query; | ||||||
| @ -697,7 +698,7 @@ void TF9_app::edit_wa() const | |||||||
| 		"INSERT INTO F9WA00K (F9PCSOC, F9PPCDC0) VALUES (" << _ambiente << ", " << _addr_doc << ");"; | 		"INSERT INTO F9WA00K (F9PCSOC, F9PPCDC0) VALUES (" << _ambiente << ", " << _addr_doc << ");"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TF9_app::export_error_list(bool esclusi) // todo: da ritestare
 | void TF9_app::export_error_list(bool esclusi) | ||||||
| { | { | ||||||
|   TF9_dberr dberr; |   TF9_dberr dberr; | ||||||
|   vector<TToken_string>& movs = esclusi ? _esclusi : _movs; |   vector<TToken_string>& movs = esclusi ? _esclusi : _movs; | ||||||
| @ -746,7 +747,6 @@ void TF9_app::load() | |||||||
| 
 | 
 | ||||||
| 	// Prendo tutti i movimenti a partire da una data e li carico tutti fino alla data finale
 | 	// Prendo tutti i movimenti a partire da una data e li carico tutti fino alla data finale
 | ||||||
|   _movs.clear(); |   _movs.clear(); | ||||||
|    |  | ||||||
| 	for (bool ok = mov.read(); ok && (datareg = mov.get_date(MOV_DATAREG)) >= dataini && datareg <= dataend; ok = mov.next() == NOERR) | 	for (bool ok = mov.read(); ok && (datareg = mov.get_date(MOV_DATAREG)) >= dataini && datareg <= dataend; ok = mov.next() == NOERR) | ||||||
| 	{ | 	{ | ||||||
| 		if (!progr.add_status()) | 		if (!progr.add_status()) | ||||||
| @ -966,8 +966,8 @@ bool TF9_app::is_doc_xml(const TLocalisamfile& mov) | |||||||
| 	if(chiave_paf(doc, hfatt, bfatt)) | 	if(chiave_paf(doc, hfatt, bfatt)) | ||||||
| 	{ | 	{ | ||||||
| 		query << "SELECT * FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';"; | 		query << "SELECT * FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';"; | ||||||
| 		fp_db().sq_set_exec(query); | 		db().sq_set_exec(query); | ||||||
| 		return fp_db().sq_items() > 0; | 		return db().sq_items() > 0; | ||||||
| 	} | 	} | ||||||
| 	return false; | 	return false; | ||||||
| } | } | ||||||
| @ -975,10 +975,16 @@ bool TF9_app::is_doc_xml(const TLocalisamfile& mov) | |||||||
| TString TF9_app::next_estr_today(const char tipo) const | TString TF9_app::next_estr_today(const char tipo) const | ||||||
| { | { | ||||||
| 	char estr[] = {0,0,0,0,0,0,0,0,0}; | 	char estr[] = {0,0,0,0,0,0,0,0,0}; | ||||||
| 	if(tipo == 'P') |   TString query; | ||||||
| 		sprintf_s(estr, 9, "%08d", _last_estr_p + 1); |   query << "SELECT TOP 1 " DRD_ID_EST " AS IDESTR\n" | ||||||
| 	else |     "FROM " F9_DRD "\n" | ||||||
| 		sprintf_s(estr, 9, "%08d", _last_estr_d + 1); |     "WHERE " DRD_ID_EST " LIKE '" << today.date2ansi() << tipo << "%'\n" << | ||||||
|  |     "ORDER BY " DRD_ID_EST " DESC"; | ||||||
|  |   if(!db().sq_set_exec(query)) | ||||||
|  |     fatal_box(db().sq_get_text_error()); | ||||||
|  | 
 | ||||||
|  |   const int last_estr = real(db().sq_get("IDESTR").ltrim(10)).integer(); | ||||||
|  | 	sprintf_s(estr, 9, "%08d", last_estr + 1); | ||||||
| 	return estr; | 	return estr; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -988,9 +994,10 @@ bool TF9_app::check_periodo_def(const drd& head) | |||||||
| 	// Controllo se ci sono estrazioni (definitive) che si sovrappongono di periodo (con lo stesso tipo) e che non siano in stato di errore
 | 	// Controllo se ci sono estrazioni (definitive) che si sovrappongono di periodo (con lo stesso tipo) e che non siano in stato di errore
 | ||||||
| 	// Nel caso di stato di errore e' invece possibile la ri-estrazione
 | 	// Nel caso di stato di errore e' invece possibile la ri-estrazione
 | ||||||
| 	query << "SELECT *\nFROM F9DRD00K\n" << | 	query << "SELECT *\nFROM F9DRD00K\n" << | ||||||
| 		"WHERE '" << head.dal.date2ansi() << "' =< " DRD_DATAA " AND '" << head.al.date2ansi() << "' >= " DRD_DATADA " AND " | 		"WHERE " << DRD_DATAA << " >= '" << head.dal.date2ansi() << "' AND " DRD_DATADA " <= '" << head.al.date2ansi() << "' AND " | ||||||
| 		DRD_FLAG_PD " = 'D' AND\n F9RIDAS <> '" D_GEST_ERR "' AND F9RIDAS <> '" D_WA_ERR "' AND F9RIDAS <> '" D_ERR_SOS "' AND " DRD_TIPODOC " = '" << head.tipo_doc << "';"; | 		DRD_FLAG_PD " = 'D' AND\n " DRD_STATO " <> '" D_GEST_ERR "' AND " DRD_STATO " <> '" D_WA_ERR "' AND " DRD_STATO " <> '" D_ERR_SOS "' AND " DRD_TIPODOC " = '" << head.tipo_doc << "';"; | ||||||
| 	db().sq_set_exec(query); |   if (!db().sq_set_exec(query)) | ||||||
|  |     fatal_box(db().sq_get_text_error()); | ||||||
| 	return db().sq_items() == 0; | 	return db().sq_items() == 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1073,7 +1080,7 @@ int TF9_app::estrai() | |||||||
| 		else if (_head.stato_estr == D_GEST_OK) | 		else if (_head.stato_estr == D_GEST_OK) | ||||||
| 		{ | 		{ | ||||||
| 			_msk->disable_controllo_err(); | 			_msk->disable_controllo_err(); | ||||||
| 			return estrazione_iva() ? 1 : false; | 			return estrazione_iva() ? 1 : 0; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	return -2; | 	return -2; | ||||||
| @ -1228,7 +1235,7 @@ void TF9_app::segna_in_errore() const | |||||||
| 	db().sq_set_exec(query); | 	db().sq_set_exec(query); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | #ifdef DBG | ||||||
| void pulisci_mov() | void pulisci_mov() | ||||||
| { | { | ||||||
|   TLocalisamfile mov(LF_MOV); |   TLocalisamfile mov(LF_MOV); | ||||||
| @ -1239,13 +1246,15 @@ void pulisci_mov() | |||||||
|   { |   { | ||||||
|     mov.put(MOV_ELABF9, ""); |     mov.put(MOV_ELABF9, ""); | ||||||
|     mov.write(); |     mov.write(); | ||||||
|     bool ok = mov.rewrite() == NOERR; |     mov.rewrite(); | ||||||
|   }while (mov.next() == NOERR); |   }while (mov.next() == NOERR); | ||||||
| } | } | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| void TF9_app::main_loop() | void TF9_app::main_loop() | ||||||
| { | { | ||||||
|   check_table(); |   if(!check_table()) | ||||||
|  |     fatal_box("Controllo tabelle modulo fallito."); | ||||||
| #ifdef DBG  // Per sicurezza che non venga inserito in release
 | #ifdef DBG  // Per sicurezza che non venga inserito in release
 | ||||||
|   //pulisci_mov();
 |   //pulisci_mov();
 | ||||||
| #endif | #endif | ||||||
| @ -1270,13 +1279,13 @@ bool TF9_app::create_tables() const | |||||||
|   tabmod.put("CODTAB", "VERSION"); |   tabmod.put("CODTAB", "VERSION"); | ||||||
|   char ver[5] = "0000"; |   char ver[5] = "0000"; | ||||||
|   sprintf_s(ver, 5, "%04d", 100); |   sprintf_s(ver, 5, "%04d", 100); | ||||||
|   tabmod.put(TABMOD_SQL_VERSION, ver); |   tabmod.put(TABMOD_TABVER, ver); | ||||||
|   tabmod.write();       // todo: controllare
 |   tabmod.write(); | ||||||
|   ok &= tabmod.rewrite() == NOERR;       // todo: controllare
 |   ok &= tabmod.rewrite() == NOERR; | ||||||
|   return ok; |   return ok; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool TF9_app::check_tabelle_f9() | bool TF9_app::check_tabelle_f9() const | ||||||
| { | { | ||||||
|   bool ok = true; |   bool ok = true; | ||||||
|   TString query; |   TString query; | ||||||
| @ -1297,15 +1306,16 @@ bool TF9_app::aggiorna_tab_f9(int version) const | |||||||
|   string  sql; |   string  sql; | ||||||
|   char ver[5] = "0000"; |   char ver[5] = "0000"; | ||||||
|   sprintf_s(ver, 5, "%04d", version); |   sprintf_s(ver, 5, "%04d", version); | ||||||
|   file << "sql\\f90\\f9" << ver << ".sql"; |   TString name; name << "f9" << ver << ".sql"; | ||||||
|  |   file << "sql\\f90\\" << name; | ||||||
| 
 | 
 | ||||||
|   std::ifstream fin; |   std::ifstream fin; | ||||||
|   fin.open(file); |   fin.open(file); | ||||||
|   if(ok &= fin.is_open()) |   if(ok &= fin.is_open()) | ||||||
|   { |   { | ||||||
|     while (!fin.eof()) |     while (!fin.eof() && ok) | ||||||
|     { |     { | ||||||
|       std::string appo_line;                            // todo: Controllare che si svuota ad ogni ciclo o aggiungere un erase
 |       std::string appo_line; | ||||||
|       std::getline(fin, appo_line); |       std::getline(fin, appo_line); | ||||||
|       if (appo_line[0] == '-' && appo_line[1] == '-')   // Se è una riga di commento la salto
 |       if (appo_line[0] == '-' && appo_line[1] == '-')   // Se è una riga di commento la salto
 | ||||||
|         continue; |         continue; | ||||||
| @ -1315,12 +1325,17 @@ bool TF9_app::aggiorna_tab_f9(int version) const | |||||||
|       if(end != int(std::string::npos)) |       if(end != int(std::string::npos)) | ||||||
|       { |       { | ||||||
|         TString query; query << sql.c_str(); |         TString query; query << sql.c_str(); | ||||||
|         ok &= fp_db().sq_set_exec(query); |         ok &= db().sq_set_exec(query); | ||||||
|         ok &= fp_db().sq_commit(); |         ok &= db().sq_commit(); | ||||||
|         sql.erase(); |         sql.erase(); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |   else | ||||||
|  |   { | ||||||
|  |     TString msg; msg << "Impossibile trovare il file di aggiornamento tabelle: " << file; | ||||||
|  |     error_box(msg); | ||||||
|  |   } | ||||||
|   return ok; |   return ok; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1331,51 +1346,47 @@ bool TF9_app::check_tab_version() const | |||||||
|   tabmod.put("MOD", "F9"); |   tabmod.put("MOD", "F9"); | ||||||
|   tabmod.put("COD", "SQL"); |   tabmod.put("COD", "SQL"); | ||||||
|   tabmod.put("CODTAB", "VERSION"); |   tabmod.put("CODTAB", "VERSION"); | ||||||
|  |   const bool exists = tabmod.read() == NOERR; | ||||||
| 
 | 
 | ||||||
|   if(ok &= tabmod.read() == NOERR) |   int version = exists ? real(tabmod.get(TABMOD_TABVER)).integer() : TAB_BASE_VERSION - 2; | ||||||
|  |   if(version < SQL_VERSION)                               // Controllo la versione
 | ||||||
|   { |   { | ||||||
|     int version = real(tabmod.get(TABMOD_SQL_VERSION)).integer(); |     for(; version < SQL_VERSION; version += 2)            // Effettuo le modifiche per ogni avanzamento di versione
 | ||||||
|     if(version < F9_SQL_VERSION)                                    // Controllo la versione
 |  | ||||||
|     { |  | ||||||
|       for(; version <= F9_SQL_VERSION; version += 2)                // Effettuo le modifiche per ogni avanzamento di versione
 |  | ||||||
|     { |     { | ||||||
|       if (ok &= aggiorna_tab_f9(version + 2)) |       if (ok &= aggiorna_tab_f9(version + 2)) | ||||||
|       { |       { | ||||||
|         char ver[5] = "0000"; |         char ver[5] = "0000"; | ||||||
|         sprintf_s(ver, 5, "%04d", version + 2); |         sprintf_s(ver, 5, "%04d", version + 2); | ||||||
|           tabmod.put(TABMOD_SQL_VERSION, ver);                      // Avanzo il contatore della versione in TABMOD
 |         tabmod.put(TABMOD_TABVER, ver);                   // Avanzo il contatore della versione in TABMOD
 | ||||||
|  |         if (!exists) | ||||||
|  |         { | ||||||
|  |           tabmod.zero(); | ||||||
|  |           tabmod.put("MOD", "F9"); | ||||||
|  |           tabmod.put("COD", "SQL"); | ||||||
|  |           tabmod.put("CODTAB", "VERSION"); | ||||||
|  |           tabmod.put(TABMOD_TABVER, ver);                 // Avanzo il contatore della versione in TABMOD
 | ||||||
|  |           tabmod.write(); | ||||||
|  |         } | ||||||
|         tabmod.rewrite(); |         tabmod.rewrite(); | ||||||
|       } |       } | ||||||
|       else |       else | ||||||
|         break; |         break; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   } |    | ||||||
|   return ok; |   return ok; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool TF9_app::check_table() | bool TF9_app::check_table() const | ||||||
| { | { | ||||||
|   if (!check_tabelle_f9()) |  | ||||||
|   { |  | ||||||
|     TString msg; |  | ||||||
|     std::ofstream fout; |  | ||||||
|     fout.open("f9checktaberr.txt"); |  | ||||||
|     fout << fp_db().sq_get_text_error(false) << std::endl; |  | ||||||
|     fout.close(); |  | ||||||
|     msg << "Errore controllo database F9: creazione tabelle.\n" << fp_db().sq_get_text_error(false); |  | ||||||
|     fatal_box(msg); |  | ||||||
|     return false; |  | ||||||
|   } |  | ||||||
|   // Se il check tabelle va a buon fine controllo la versione delle tabelle
 |  | ||||||
|   if (!check_tab_version()) |   if (!check_tab_version()) | ||||||
|   { |   { | ||||||
|     TString msg; |     TString msg; | ||||||
|     std::ofstream fout; |     std::ofstream fout; | ||||||
|     fout.open("f9checktaberr.txt"); |     fout.open("f9checktaberr.txt"); | ||||||
|     fout << fp_db().sq_get_text_error(false) << std::endl; |     fout << db().sq_get_text_error(false) << std::endl; | ||||||
|     fout.close(); |     fout.close(); | ||||||
|     msg << "Errore controllo database F9: aggiornamento tabelle.\n" << fp_db().sq_get_text_error(false); |     msg << "! Errore controllo database F9: creazione/aggiornamento tabelle.\n" << db().sq_get_text_error() << "\n" << db().sq_get_string_error(); | ||||||
|     fatal_box(msg); |     fatal_box(msg); | ||||||
|     return false; |     return false; | ||||||
|   } |   } | ||||||
| @ -1393,7 +1404,7 @@ TF9_app& app() | |||||||
| int f90100(int argc, char* argv[]) | int f90100(int argc, char* argv[]) | ||||||
| { | { | ||||||
| 	TF9_app app; | 	TF9_app app; | ||||||
| 	app.run(argc, argv, TR("Configurazione FP")); | 	app.run(argc, argv, TR("Archiviazione Sostitutiva")); | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1549,7 +1560,7 @@ TToken_string* TControllo_mask::selected_fat() const | |||||||
|   return nullptr; |   return nullptr; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TControllo_mask::associa() | void TControllo_mask::associa()   // todo: levare gli ultimi residui del vecchio funzionamento del controllo errori
 | ||||||
| { | { | ||||||
|   TToken_string* mov_sel = selected_mov(); |   TToken_string* mov_sel = selected_mov(); | ||||||
|   TToken_string* fat_sel = selected_fat(); |   TToken_string* fat_sel = selected_fat(); | ||||||
| @ -1575,6 +1586,7 @@ void TControllo_mask::associa() | |||||||
|         ++it; |         ++it; | ||||||
|     } |     } | ||||||
|     it->add(" ", 0); |     it->add(" ", 0); | ||||||
|  |     TF9_dberr::del_err(_id_estr, mov_sel->get_int(cid2index(F_CNUMREG))); | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -70,8 +70,6 @@ class TF9_app : public TSkeleton_application | |||||||
| 	int										_tot_movs; | 	int										_tot_movs; | ||||||
| 	TString								_ambiente;		// Codice ambiente (codsoc)
 | 	TString								_ambiente;		// Codice ambiente (codsoc)
 | ||||||
| 	TString								_addr_doc;		// Indirizzo documenti cartacei
 | 	TString								_addr_doc;		// Indirizzo documenti cartacei
 | ||||||
| 	int										_last_estr_p; |  | ||||||
| 	int										_last_estr_d; |  | ||||||
|   char                  _tipodoc_escl; |   char                  _tipodoc_escl; | ||||||
|   char                  _flagprov_escl; |   char                  _flagprov_escl; | ||||||
| 
 | 
 | ||||||
| @ -139,12 +137,12 @@ public: | |||||||
|   // Controllo e aggiornamento tabelle F9
 |   // Controllo e aggiornamento tabelle F9
 | ||||||
| 
 | 
 | ||||||
|   bool create_tables() const;               // Creazione tabelle F9
 |   bool create_tables() const;               // Creazione tabelle F9
 | ||||||
|   bool check_tabelle_f9();            // Controllo esistenza delle tabelle e in caso le crea
 |   bool check_tabelle_f9() const;            // Controllo esistenza delle tabelle e in caso le crea
 | ||||||
|   bool aggiorna_tab_f9(int version) const;  // Aggiorna modifiche alle tabelle F9 come descritto in cima al file .cpp
 |   bool aggiorna_tab_f9(int version) const;  // Aggiorna modifiche alle tabelle F9 come descritto in cima al file .cpp
 | ||||||
|   bool check_tab_version() const;           // Controllo della versione e in caso aggiorna le tabelle
 |   bool check_tab_version() const;           // Controllo della versione e in caso aggiorna le tabelle
 | ||||||
|   bool check_table(); |   bool check_table() const; | ||||||
|   TF9_app() : _estr_msk(nullptr), _msk(nullptr), _mov_escl("", '|'), _tot_movs(0), _ambiente(""), _addr_doc(""), |   TF9_app() : _estr_msk(nullptr), _msk(nullptr), _mov_escl("", '|'), _tot_movs(0), _ambiente(""), _addr_doc(""), | ||||||
|     _last_estr_p(0), _last_estr_d(0), _tipodoc_escl('A'), _flagprov_escl('P') { } |     _tipodoc_escl('A'), _flagprov_escl('P') { } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| TF9_app& app(); | TF9_app& app(); | ||||||
| @ -162,9 +160,9 @@ class TMonitor_mask : public TAutomask | |||||||
|   static void		open_win_estr(); |   static void		open_win_estr(); | ||||||
| 	void		open_win_conf() const; | 	void		open_win_conf() const; | ||||||
| 
 | 
 | ||||||
|   void fill(); |   void fill() const; | ||||||
| 
 | 
 | ||||||
|   void delete_pack(bool all = false); |   void delete_pack(bool all = false) const; | ||||||
| 
 | 
 | ||||||
|   void sel() const; |   void sel() const; | ||||||
| 	bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; | 	bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; | ||||||
| @ -185,7 +183,7 @@ class TControllo_mask : public TAutomask | |||||||
|   bool	  _sel_esclusi; |   bool	  _sel_esclusi; | ||||||
|   bool    _is_escluso; |   bool    _is_escluso; | ||||||
|   TString _id_estr; |   TString _id_estr; | ||||||
|   char    _tipo_doc_err; |   char    _tipo_doc_err{}; | ||||||
| 
 | 
 | ||||||
|   vector<TToken_string>& import_error_list(); |   vector<TToken_string>& import_error_list(); | ||||||
|   void    fill(); |   void    fill(); | ||||||
| @ -220,6 +218,7 @@ public: | |||||||
|   void add(long num); |   void add(long num); | ||||||
|   void add() { add_str("NULL"); } |   void add() { add_str("NULL"); } | ||||||
|   void send(); |   void send(); | ||||||
|  |   static void del_err(const TString& id_estr, int get_int); | ||||||
|   static char get_errori(const TString& id_estr, vector<TToken_string>& movs); |   static char get_errori(const TString& id_estr, vector<TToken_string>& movs); | ||||||
|   TF9_dberr(); |   TF9_dberr(); | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9DRD00K') | ||||||
| CREATE TABLE F9DRD00K ( | CREATE TABLE F9DRD00K ( | ||||||
|   F9RCSOC CHAR(10) NOT NULL DEFAULT '', |   F9RCSOC CHAR(10) NOT NULL DEFAULT '', | ||||||
|   F9RIDES CHAR(18) NOT NULL DEFAULT '', |   F9RIDES CHAR(18) NOT NULL DEFAULT '', | ||||||
| @ -17,8 +18,11 @@ CREATE TABLE F9DRD00K ( | |||||||
|   F9RSINW CHAR(2) NOT NULL DEFAULT '', |   F9RSINW CHAR(2) NOT NULL DEFAULT '', | ||||||
|   F9RDSIN CHAR(256) NOT NULL DEFAULT '', |   F9RDSIN CHAR(256) NOT NULL DEFAULT '', | ||||||
|   F9RPCDC CHAR(256) NOT NULL DEFAULT '', |   F9RPCDC CHAR(256) NOT NULL DEFAULT '', | ||||||
| 	PRIMARY KEY( F9RCSOC , F9RIDES , F9RFPDE ) ) ;  |   PRIMARY KEY( F9RCSOC,F9RIDES,F9RFPDE )) | ||||||
|  | ELSE | ||||||
|  |   SELECT 1 AS EXIST; | ||||||
|    |    | ||||||
|  | IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9DRT00K') | ||||||
| CREATE TABLE F9DRT00K ( | CREATE TABLE F9DRT00K ( | ||||||
|   F9TCSOC CHAR(10) NOT NULL DEFAULT '', |   F9TCSOC CHAR(10) NOT NULL DEFAULT '', | ||||||
|   F9TCADO CHAR(10) NOT NULL DEFAULT '', |   F9TCADO CHAR(10) NOT NULL DEFAULT '', | ||||||
| @ -30,8 +34,11 @@ CREATE TABLE F9DRT00K ( | |||||||
|   F9TTCAU CHAR(6) NOT NULL DEFAULT '', |   F9TTCAU CHAR(6) NOT NULL DEFAULT '', | ||||||
|   F9TTMOV CHAR(6) NOT NULL DEFAULT '', |   F9TTMOV CHAR(6) NOT NULL DEFAULT '', | ||||||
|   F9TFCEE CHAR(6) NOT NULL DEFAULT '', |   F9TFCEE CHAR(6) NOT NULL DEFAULT '', | ||||||
| 	PRIMARY KEY( F9TCSOC , F9TCADO , F9TCCAU , F9TTCAU , F9TTMOV , F9TFCEE ) ) ;  |   PRIMARY KEY( F9TCSOC,F9TCADO,F9TCCAU,F9TTCAU,F9TTMOV,F9TFCEE )) | ||||||
|  | ELSE | ||||||
|  |   SELECT 1 AS EXIST; | ||||||
| 
 | 
 | ||||||
|  | IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9IVA00K') | ||||||
| CREATE TABLE F9IVA00K ( | CREATE TABLE F9IVA00K ( | ||||||
|   F9ICSOC CHAR(10) NOT NULL DEFAULT '', |   F9ICSOC CHAR(10) NOT NULL DEFAULT '', | ||||||
|   F9IIDLA CHAR(18) NOT NULL DEFAULT '', |   F9IIDLA CHAR(18) NOT NULL DEFAULT '', | ||||||
| @ -86,8 +93,11 @@ CREATE TABLE F9IVA00K ( | |||||||
|   F9IAPRT NUMERIC(4, 0) NOT NULL DEFAULT 0, |   F9IAPRT NUMERIC(4, 0) NOT NULL DEFAULT 0, | ||||||
|   F9INPRT NUMERIC(10, 0) NOT NULL DEFAULT 0, |   F9INPRT NUMERIC(10, 0) NOT NULL DEFAULT 0, | ||||||
|   F9IURIC DATETIME NOT NULL DEFAULT getdate(), |   F9IURIC DATETIME NOT NULL DEFAULT getdate(), | ||||||
| 	PRIMARY KEY( F9ICSOC , F9IIDLA , F9IFPDE , F9ISIVA , F9ICREG , F9INPRI , F9IUPRI , F9ITPGI ) ) ;  |   PRIMARY KEY( F9ICSOC,F9IIDLA,F9IFPDE,F9ISIVA,F9ICREG,F9INPRI,F9IUPRI,F9ITPGI )) | ||||||
|  | ELSE | ||||||
|  |   SELECT 1 AS EXIST; | ||||||
| 
 | 
 | ||||||
|  | IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9PWA00K') | ||||||
| CREATE TABLE F9PWA00K ( | CREATE TABLE F9PWA00K ( | ||||||
|   F9PCSOC CHAR(10) NOT NULL DEFAULT '', |   F9PCSOC CHAR(10) NOT NULL DEFAULT '', | ||||||
|   F9PCDFN CHAR(2) NOT NULL DEFAULT '', |   F9PCDFN CHAR(2) NOT NULL DEFAULT '', | ||||||
| @ -101,8 +111,11 @@ CREATE TABLE F9PWA00K ( | |||||||
|   F9PCDA7 CHAR(2) NOT NULL DEFAULT '', |   F9PCDA7 CHAR(2) NOT NULL DEFAULT '', | ||||||
|   F9PCDA8 CHAR(2) NOT NULL DEFAULT '', |   F9PCDA8 CHAR(2) NOT NULL DEFAULT '', | ||||||
|   F9PPCDC CHAR(256) NOT NULL DEFAULT '', |   F9PPCDC CHAR(256) NOT NULL DEFAULT '', | ||||||
| 	PRIMARY KEY( F9PCSOC ) ) ; |   PRIMARY KEY( F9PCSOC )) | ||||||
|  | ELSE | ||||||
|  |   SELECT 1 AS EXIST; | ||||||
| 
 | 
 | ||||||
|  | IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9ERROR') | ||||||
| CREATE TABLE F9ERROR( | CREATE TABLE F9ERROR( | ||||||
|   IDESTR    CHAR(18)      NOT NULL, |   IDESTR    CHAR(18)      NOT NULL, | ||||||
|   NUMREG    NUMERIC(7,0)  NOT NULL, |   NUMREG    NUMERIC(7,0)  NOT NULL, | ||||||
| @ -119,5 +132,6 @@ CREATE TABLE F9ERROR( | |||||||
|   ESCLUDI   CHAR(1), |   ESCLUDI   CHAR(1), | ||||||
|   ESCLUSO   CHAR(2), |   ESCLUSO   CHAR(2), | ||||||
|   DESCRERR  VARCHAR(110), |   DESCRERR  VARCHAR(110), | ||||||
|   PRIMARY KEY(IDESTR, NUMREG) |   PRIMARY KEY(IDESTR, NUMREG)) | ||||||
| ); | ELSE | ||||||
|  |   SELECT 1 AS EXIST; | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user