Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22387 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									40ec92e6fc
								
							
						
					
					
						commit
						7ec32332b9
					
				@ -143,7 +143,7 @@ int TImporta_produzione_msk::calcola_prog(const TString& codart, const TDate& da
 | 
			
		||||
  rilprod.set_var("#CODART", codart);
 | 
			
		||||
  rilprod.set_var("#DATA",   data);
 | 
			
		||||
 | 
			
		||||
  int prog = 1;
 | 
			
		||||
  int prog = 0;
 | 
			
		||||
 | 
			
		||||
  if(rilprod.move_last())
 | 
			
		||||
    prog += rilprod.get(RILPROD_PROG).as_int();
 | 
			
		||||
@ -264,6 +264,8 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
 | 
			
		||||
  TLocalisamfile rprod(LF_RRILPROD);
 | 
			
		||||
 | 
			
		||||
  TAssoc_array tprod_ar;
 | 
			
		||||
  TAssoc_array tprod_prog;
 | 
			
		||||
  int prog = 0;
 | 
			
		||||
 | 
			
		||||
  //scorro il file di input
 | 
			
		||||
  for(bool ok = recset.move_first(); ok; ok = recset.move_next())
 | 
			
		||||
@ -275,14 +277,14 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
 | 
			
		||||
    TString80 chiavedoc = recset.get("RDOCKEY").as_string();
 | 
			
		||||
    TToken_string krdoc(chiavedoc, '.');
 | 
			
		||||
    const TString80     codart   = recset.get("CODART").as_string();
 | 
			
		||||
    const TString16     codlav   = recset.get("CODLAV").as_string();
 | 
			
		||||
    TString16           codlav   = recset.get("CODLAV").as_string();
 | 
			
		||||
    const real          qtaprod  = recset.get("QTAPROD").as_real();
 | 
			
		||||
    const bool          flgsaldo = recset.get("FLGSALDO").as_string()[0] == 'S' ? true : false;
 | 
			
		||||
    const TString16     datastr  = recset.get("DATALAV").as_string();
 | 
			
		||||
    const TString8      orastr   = recset.get("ORALAV").as_string();
 | 
			
		||||
 | 
			
		||||
    const char provv = 'D';   
 | 
			
		||||
    const TString4 codnum = krdoc.get(0);
 | 
			
		||||
    TString4 codnum = krdoc.get(0);
 | 
			
		||||
    const int      anno   = krdoc.get_int(1);
 | 
			
		||||
    const long     ndoc   = krdoc.get_long(2);
 | 
			
		||||
    const int      idriga = krdoc.get_int(3);
 | 
			
		||||
@ -292,11 +294,10 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
 | 
			
		||||
 | 
			
		||||
    TToken_string key;
 | 
			
		||||
    key.add(codart);
 | 
			
		||||
    key.add(datafine);
 | 
			
		||||
    key.add(codlav);
 | 
			
		||||
    key.add(chiavedoc.strip("."));
 | 
			
		||||
 | 
			
		||||
    int prog;
 | 
			
		||||
    chiavedoc.strip(".");
 | 
			
		||||
 | 
			
		||||
    TString query;
 | 
			
		||||
    query << "USE RRILPROD\n"
 | 
			
		||||
@ -310,23 +311,55 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
 | 
			
		||||
 | 
			
		||||
    query.cut(0);
 | 
			
		||||
		query << "USE RILPROD KEY 4\n"
 | 
			
		||||
			    << "SELECT OPERATORE==\"" << codlav << "\"\n"
 | 
			
		||||
			    << "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum << "NRIGA=" << idriga << "\n"
 | 
			
		||||
					<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum << "NRIGA=" << idriga;
 | 
			
		||||
          << "SELECT OPERATORE==\"" << codlav.strip(" ") << "\"\n"
 | 
			
		||||
          << "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << " NRIGA=" << idriga << "\n"
 | 
			
		||||
					<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << " NRIGA=" << idriga;
 | 
			
		||||
		TISAM_recordset testate(query);
 | 
			
		||||
		
 | 
			
		||||
    if(!testate.empty())
 | 
			
		||||
		{
 | 
			
		||||
      TRectype& testata = testate.cursor()->curr();
 | 
			
		||||
      real& qta = testata.get_real(RILPROD_QTA);
 | 
			
		||||
      prog = testata.get_int(RILPROD_PROG);
 | 
			
		||||
      qta += qtaprod;
 | 
			
		||||
 | 
			
		||||
      testata.put(RILPROD_QTA, qta);
 | 
			
		||||
      tprod_ar.add(key, testata);
 | 
			
		||||
      err = testata.rewrite_write(tprod);
 | 
			
		||||
		}
 | 
			
		||||
    else if(!tprod_ar.is_key(key))
 | 
			
		||||
    {
 | 
			
		||||
      query.cut(0);
 | 
			
		||||
      query << "USE RILPROD KEY 4 SELECT OPERATORE==\"" << codlav.strip(" ") << "\"\n"    
 | 
			
		||||
            << "BY PROG\n"
 | 
			
		||||
			      << "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << "\n"
 | 
			
		||||
					  << "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc;
 | 
			
		||||
		  TISAM_recordset testate1(query);
 | 
			
		||||
 | 
			
		||||
      prog = 1;
 | 
			
		||||
 | 
			
		||||
      if(!testate1.empty())
 | 
			
		||||
      {
 | 
			
		||||
        testate1.move_last();
 | 
			
		||||
        TRectype& testata = testate1.cursor()->curr();
 | 
			
		||||
        prog = testata.get_int(RILPROD_PROG);
 | 
			
		||||
        prog++;
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
        query << "USE RILPROD\n"    
 | 
			
		||||
            << "BY PROG\n"
 | 
			
		||||
            << "FROM CODART=" << codart << "DATA=#DATA\n"
 | 
			
		||||
					  << "TO CODART=" << codart << "DATA=#DATA";
 | 
			
		||||
		    TISAM_recordset testate1(query);
 | 
			
		||||
        testate1.set_var("#DATA", datafine);
 | 
			
		||||
 | 
			
		||||
        testate1.move_last();
 | 
			
		||||
        TRectype& testata = testate1.cursor()->curr();
 | 
			
		||||
        prog = testata.get_int(RILPROD_PROG);
 | 
			
		||||
        prog++;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      //se non l'ho già fatto creo il record della testata, altrimenti aggiorno le quantità
 | 
			
		||||
      prog = calcola_prog(codart, datafine);
 | 
			
		||||
      TRectype& testata = tprod.curr();
 | 
			
		||||
      testata.zero();
 | 
			
		||||
      testata.put(RILPROD_CODART,    codart);
 | 
			
		||||
@ -341,19 +374,18 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
 | 
			
		||||
      testata.put(RILPROD_QTA,       qtaprod);
 | 
			
		||||
      testata.put(RILPROD_CHIUSO,    flgsaldo);
 | 
			
		||||
 | 
			
		||||
      err = testata.rewrite_write(tprod);
 | 
			
		||||
 | 
			
		||||
      tprod_ar.add(key, testata);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      TRectype& testata = *(TRectype*)tprod_ar.objptr(key);
 | 
			
		||||
      real& qta = testata.get_real(RILPROD_QTA);
 | 
			
		||||
      TString supercazzone = codart;
 | 
			
		||||
      supercazzone.strip(" ");
 | 
			
		||||
      if(supercazzone == "01249000A/SL")
 | 
			
		||||
        int cazzone = 1;
 | 
			
		||||
      qta += qtaprod;
 | 
			
		||||
      prog = testata.get_int(RILPROD_PROG);
 | 
			
		||||
      testata.put(RILPROD_QTA, qta);
 | 
			
		||||
      err = testata.rewrite_write(tprod);
 | 
			
		||||
      tprod_ar.add(key, testata);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -375,11 +407,12 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //salva le testate
 | 
			
		||||
  FOR_EACH_ASSOC_OBJECT(tprod_ar, obj, key, itm)
 | 
			
		||||
  /*FOR_EACH_ASSOC_OBJECT(tprod_ar, obj, key, itm)
 | 
			
		||||
  {
 | 
			
		||||
    TToken_string k(key);
 | 
			
		||||
    TRectype& testata = *(TRectype*)itm;
 | 
			
		||||
    err = testata.rewrite_write(tprod);
 | 
			
		||||
  }
 | 
			
		||||
  }*/
 | 
			
		||||
  return err == NOERR ? true : false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user