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
This commit is contained in:
		
							parent
							
								
									dc91a5c341
								
							
						
					
					
						commit
						d132aa9af8
					
				
							
								
								
									
										169
									
								
								lv/lv0400.cpp
									
									
									
									
									
								
							
							
						
						
									
										169
									
								
								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;
 | 
					      TSheet_field& ss = (TSheet_field&)o;
 | 
				
			||||||
      TToken_string& row = ss.row(ss.selected());
 | 
					      TToken_string& row = ss.row(ss.selected());
 | 
				
			||||||
      const TString codart = row.get(ss.cid2index(S_CODART));
 | 
					      const TString80 codart = row.get(ss.cid2index(S_CODART));
 | 
				
			||||||
      const long dotin = row.get_long(ss.cid2index(S_DOTIN));
 | 
					      if (codart.full())
 | 
				
			||||||
      if (dotin > 0)
 | 
					 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        warning_box("Impossibile cancellare l'articolo %s perchè ha una dotazione iniziale non nulla", (const char*) codart);
 | 
					        const long dotin = row.get_long(ss.cid2index(S_DOTIN));
 | 
				
			||||||
        return false;
 | 
					        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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //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];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					 | 
				
			||||||
      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");
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      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";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      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;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      //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)
 | 
					    if (e == se_leave || e == se_notify_modify)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user