From d132aa9af86bb393a2a18e9f488f075c5da09e51 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 23 Nov 2011 09:52:00 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : lv0.exe Ricompilazione Demo : [ ] Commento : Corretto problema di eliminazione righe contratto senza articolo git-svn-id: svn://10.65.10.50/branches/R_10_00@22501 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv0400.cpp | 157 +++++++++++++++++++++++++------------------------- 1 file changed, 80 insertions(+), 77 deletions(-) diff --git a/lv/lv0400.cpp b/lv/lv0400.cpp index 83b6309f5..b7824546e 100755 --- a/lv/lv0400.cpp +++ b/lv/lv0400.cpp @@ -429,91 +429,94 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly { TSheet_field& ss = (TSheet_field&)o; TToken_string& row = ss.row(ss.selected()); - const TString codart = row.get(ss.cid2index(S_CODART)); - const long dotin = row.get_long(ss.cid2index(S_DOTIN)); - if (dotin > 0) + const TString80 codart = row.get(ss.cid2index(S_CODART)); + if (codart.full()) { - warning_box("Impossibile cancellare l'articolo %s perchè ha una dotazione iniziale non nulla", (const char*) codart); - return false; - } + const long dotin = row.get_long(ss.cid2index(S_DOTIN)); + if (dotin > 0) + { + warning_box("Impossibile cancellare l'articolo %s perchè ha una dotazione iniziale non nulla", (const char*) codart); + return false; + } - const TDate oggi(TODAY); - const int danno = oggi.year() - 1; - const int aanno = oggi.year() + 1; + const TDate oggi(TODAY); + const int danno = oggi.year() - 1; + const int aanno = oggi.year() + 1; - //controllo articolo in buoni di consegna - const TString8 tipoela = ini_get_string(CONFIG_DITTA, "lv", "FatDif"); + //controllo articolo in buoni di consegna + const TString8 tipoela = ini_get_string(CONFIG_DITTA, "lv", "FatDif"); - const TString4 codnumbc = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN"); - const TString4 tipodocbc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN"); - const char statofbc = cache().get("%ELD", tipoela, "S4").left(0)[0]; + const TString4 codnumbc = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN"); + const TString4 tipodocbc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN"); + const char statofbc = cache().get("%ELD", tipoela, "S4").left(0)[0]; - TString query; - query << "USE RDOC KEY 5\n" - << "SELECT (DOC.TIPODOC=\"" << tipodocbc << "\")&&(DOC.STATO<\"" << statofbc << "\")\n" - << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\n" - << "FROM CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbc << "\"\n" - << "TO CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbc << "\"\n"; + TString query; + query << "USE RDOC KEY 5\n" + << "SELECT (DOC.TIPODOC=\"" << tipodocbc << "\")&&(DOC.STATO<\"" << statofbc << "\")\n" + << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\n" + << "FROM CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbc << "\"\n" + << "TO CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbc << "\"\n"; - TISAM_recordset bcon(query); + TISAM_recordset bcon(query); - if(bcon.items() > 0) - { - TString str; - str << "Non è possibile cancellare dal contratto l'articolo " << codart - << "in quanto è presente su " << bcon.items() << " ancora da fatturare"; - warning_box(str); - return false; + if(bcon.items() > 0) + { + TString str; + str << "Non è possibile cancellare dal contratto l'articolo " << codart + << "in quanto è presente su " << bcon.items() << " ancora da fatturare"; + warning_box(str); + return false; + } + + //controllo articolo in buoni di ritiro + const TString4 codnumbr = ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT", NULL, 0); + const TString4 tipodocbr = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT", NULL, 0); + const char statofbr = cache().get("%TIP", tipodocbr, "S2").mid(1,1)[0]; + + query.cut(0); + query << "USE RDOC KEY 5\n" + << "SELECT (DOC.TIPODOC=\"" << tipodocbr << "\")&&(DOC.STATO<\"" << statofbr << "\")\n" + << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\n" + << "FROM CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbr << "\"\n" + << "TO CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbr << "\"\n"; + + TISAM_recordset brit(query); + + if(brit.items() > 0) + { + TString str; + str << "Non è possibile cancellare dal contratto l'articolo " << codart + << "in quanto è presente su " << brit.items() << " ancora da evadere"; + warning_box(str); + return false; + } + + //controllo articolo in buoni di prelievo + const TString4 codnumbp = ini_get_string(CONFIG_DITTA, "lv", "NUM_PRE", NULL, 0); + const TString4 tipodocbp = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_PRE", NULL, 0); + const char statofbp = cache().get("%TIP", tipodocbp, "S2").mid(2,1)[0]; + + query.cut(0); + query << "USE RDOC KEY 5\n" + << "SELECT (DOC.TIPODOC=\"" << tipodocbp << "\")&&(DOC.STATO<\"" << statofbp << "\")\n" + << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\n" + << "FROM CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbp << "\"\n" + << "TO CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbp << "\"\n"; + + TISAM_recordset bpre(query); + + if(bpre.items() > 0) + { + TString str; + str << "Non è possibile cancellare dal contratto l'articolo " << codart + << "in quanto è presente su " << bpre.items() << " ancora da evadere"; + warning_box(str); + return false; + } + + if (!noyes_box("Si desidera veramente cancellare l'articolo %s",(const char*) codart)) + return false; } - - //controllo articolo in buoni di ritiro - const TString4 codnumbr = ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT", NULL, 0); - const TString4 tipodocbr = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT", NULL, 0); - const char statofbr = cache().get("%TIP", tipodocbr, "S2").mid(1,1)[0]; - - query.cut(0); - query << "USE RDOC KEY 5\n" - << "SELECT (DOC.TIPODOC=\"" << tipodocbr << "\")&&(DOC.STATO<\"" << statofbr << "\")\n" - << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\n" - << "FROM CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbr << "\"\n" - << "TO CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbr << "\"\n"; - - TISAM_recordset brit(query); - - if(brit.items() > 0) - { - TString str; - str << "Non è possibile cancellare dal contratto l'articolo " << codart - << "in quanto è presente su " << brit.items() << " ancora da evadere"; - warning_box(str); - return false; - } - - //controllo articolo in buoni di prelievo - const TString4 codnumbp = ini_get_string(CONFIG_DITTA, "lv", "NUM_PRE", NULL, 0); - const TString4 tipodocbp = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_PRE", NULL, 0); - const char statofbp = cache().get("%TIP", tipodocbp, "S2").mid(2,1)[0]; - - query.cut(0); - query << "USE RDOC KEY 5\n" - << "SELECT (DOC.TIPODOC=\"" << tipodocbp << "\")&&(DOC.STATO<\"" << statofbp << "\")\n" - << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\n" - << "FROM CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbp << "\"\n" - << "TO CODART=\"" << codart << "\" ANNO=" << danno << "CODNUM=\"" << codnumbp << "\"\n"; - - TISAM_recordset bpre(query); - - if(bpre.items() > 0) - { - TString str; - str << "Non è possibile cancellare dal contratto l'articolo " << codart - << "in quanto è presente su " << bpre.items() << " ancora da evadere"; - warning_box(str); - return false; - } - - if (!yesno_box("Si desidera veramente cancellare l'articolo %s",(const char*) codart)) - return false; } if (e == se_leave || e == se_notify_modify)