Patch level : 12.0 624
Files correlati : Commento : tp0.exe Sistemato calcolo peso per categorie conai inserite in bolla per DANIA Bisogna definire una variabile ConaiScheme = 1 nel paragrfo tp del file ditta.ini
This commit is contained in:
		
							parent
							
								
									77cad74ae9
								
							
						
					
					
						commit
						3ee3309550
					
				@ -481,6 +481,7 @@ void TTrasferimentoPack_mask::trasferisci()
 | 
			
		||||
    pc.set_custrif(get(F_RIF));
 | 
			
		||||
    pc.set_ordrif(get(F_ORD));
 | 
			
		||||
    pc.activate_order_date(get_bool(F_ORDDATE));
 | 
			
		||||
		pc.activate_conai(ini_get_int(CONFIG_DITTA, "tp", "ConaiScheme", 0));
 | 
			
		||||
    pc.init(TR("Documenti di trasporto"), query_header, log);
 | 
			
		||||
    go_on = pc.trasferisci();
 | 
			
		||||
    book.add(log);
 | 
			
		||||
 | 
			
		||||
@ -212,6 +212,7 @@ class TPack_ddt : public TPack_transfer
 | 
			
		||||
	TString _rif, _ord;
 | 
			
		||||
  TDate _data_limite;
 | 
			
		||||
  TAssoc_array _iva; // Codici IVA PACK
 | 
			
		||||
	int _conai;
 | 
			
		||||
	TCli_for  _cli;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
@ -229,6 +230,7 @@ protected:
 | 
			
		||||
	const TString & custrif() { return _rif; } 
 | 
			
		||||
	const TString & ordrif() { return _ord; } 
 | 
			
		||||
	bool order_date() { return _order_date; }
 | 
			
		||||
	int get_conai() { return _conai; }
 | 
			
		||||
 | 
			
		||||
  bool save_doc(TDocumento* &doc, const int doc_code);
 | 
			
		||||
 | 
			
		||||
@ -247,6 +249,7 @@ public:
 | 
			
		||||
	void set_custrif(const char * s) { _rif = s && *s ? s : "Vs. rifer.: "; } 
 | 
			
		||||
	void set_ordrif(const char * s) { _ord = s && *s ? s : "Ns. Ordine nr. "; } 
 | 
			
		||||
	void activate_order_date(bool on) { _order_date = on; }
 | 
			
		||||
	void activate_conai(int conai) { _conai = conai; }
 | 
			
		||||
 | 
			
		||||
	TPack_ddt();
 | 
			
		||||
  ~TPack_ddt();
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,8 @@ bool TArticolo_pack::set_conai(TCONAI_class cc, const TString& scat, const real&
 | 
			
		||||
 | 
			
		||||
TArticolo_pack::TArticolo_pack(const TRectype& anamag) : TRectype(anamag)
 | 
			
		||||
{
 | 
			
		||||
	FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
 | 
			
		||||
		set_conai(cc, EMPTY_STRING, ZERO);
 | 
			
		||||
	FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
 | 
			
		||||
	{
 | 
			
		||||
    const TFieldref anamag_sotcat(conai_sottocat_name(cc, LF_ANAMAG), LF_ANAMAG);
 | 
			
		||||
@ -675,14 +677,6 @@ bool TPack_ddt::trasferisci()
 | 
			
		||||
          doc->put(DOC_ADDBOLLI,  cfven.get(CFV_ADDBOLLI));
 | 
			
		||||
          doc->put(DOC_PERCSPINC, cfven.get(CFV_PERCSPINC));
 | 
			
		||||
 | 
			
		||||
          /* Old style
 | 
			
		||||
          const TRectype& clifo = cache().get(LF_CLIFO, tok);
 | 
			
		||||
          doc->put(DOC_CODABIA, clifo.get(CLI_CODABI));
 | 
			
		||||
          doc->put(DOC_CODCABA, clifo.get(CLI_CODCAB));
 | 
			
		||||
          doc->put(DOC_IBAN, get_iban(clifo));
 | 
			
		||||
          */
 | 
			
		||||
 | 
			
		||||
          // New style 18-01-2012
 | 
			
		||||
          tok.cut(0);
 | 
			
		||||
          tok.add(tipocf); tok.add(codcf);
 | 
			
		||||
          tok.add("V"); tok.add(1);
 | 
			
		||||
@ -819,13 +813,52 @@ bool TPack_ddt::trasferisci()
 | 
			
		||||
 | 
			
		||||
      // Copia tutte le sottocategorie CONAI dall'anagrafica alla riga documento
 | 
			
		||||
			real peso_imballo_anamag;
 | 
			
		||||
			real peso_imballo_ddt;
 | 
			
		||||
			int pesi_anamag = 0;
 | 
			
		||||
			const int conai_scheme = get_conai();
 | 
			
		||||
			const TString4 conai_subclass = get_str("SubclassCode");
 | 
			
		||||
			const TCONAI_class ct = conai_str2class(conai_subclass);
 | 
			
		||||
 | 
			
		||||
			if (conai_scheme == 1)
 | 
			
		||||
			{
 | 
			
		||||
			// La sottocategoria della bolla prevale su quella anagrafica
 | 
			
		||||
				if (conai_subclass.len() == 4)
 | 
			
		||||
				{
 | 
			
		||||
					rdoc.put(conai_sottocat_name(ct, LF_RIGHEDOC), conai_subclass);
 | 
			
		||||
					peso_imballo_ddt = real(get_real_str("WeightETUnit"));
 | 
			
		||||
					if (peso_imballo_ddt.is_zero())
 | 
			
		||||
						peso_imballo_ddt = peso_imballo_anamag;
 | 
			
		||||
				}
 | 
			
		||||
				if (conai_subclass.blank())
 | 
			
		||||
				{
 | 
			
		||||
					FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
 | 
			
		||||
					{
 | 
			
		||||
						const TString& cs = art.conai_subclass(cc);  // Codice sottocategoria su ANAMAG
 | 
			
		||||
 | 
			
		||||
						if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
 | 
			
		||||
						{
 | 
			
		||||
							const real& weight = art.conai_weight(cc); // Peso imballo su ANAMAG
 | 
			
		||||
 | 
			
		||||
							rdoc.put(conai_sottocat_name(cc, LF_RIGHEDOC), cs);
 | 
			
		||||
							rdoc.put(conai_peso_name(cc, LF_RIGHEDOC), weight);      // ex QTAGG1  
 | 
			
		||||
							rdoc.put(conai_esenzione_name(cc, LF_RIGHEDOC),
 | 
			
		||||
								cfven.get(conai_esenzione_name(cc, LF_CFVEN))); // ex QTAGG2
 | 
			
		||||
							peso_imballo_anamag += weight;
 | 
			
		||||
							pesi_anamag++;
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
 | 
			
		||||
				{
 | 
			
		||||
					const TString& cs = art.conai_subclass(cc);  // Codice sottocategoria su ANAMAG
 | 
			
		||||
 | 
			
		||||
					if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
 | 
			
		||||
					{
 | 
			
		||||
						const real& weight = art.conai_weight(cc); // Peso imballo su ANAMAG
 | 
			
		||||
 | 
			
		||||
						rdoc.put(conai_sottocat_name(cc, LF_RIGHEDOC), cs);
 | 
			
		||||
						rdoc.put(conai_peso_name(cc, LF_RIGHEDOC), weight);      // ex QTAGG1  
 | 
			
		||||
						rdoc.put(conai_esenzione_name(cc, LF_RIGHEDOC),
 | 
			
		||||
@ -835,14 +868,15 @@ bool TPack_ddt::trasferisci()
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			// La sottocategoria della bolla prevale su quella anagrafica impostata sopra
 | 
			
		||||
      const TString4 conai_subclass = get_str("SubclassCode");
 | 
			
		||||
      const TCONAI_class ct = conai_str2class(conai_subclass);
 | 
			
		||||
				if (conai_subclass.len() == 4)
 | 
			
		||||
				{
 | 
			
		||||
					rdoc.put(conai_sottocat_name(ct, LF_RIGHEDOC), conai_subclass);
 | 
			
		||||
 | 
			
		||||
      real peso_imballo_ddt = get_real_str("WeightETUnit");
 | 
			
		||||
					peso_imballo_ddt = real(get_real_str("WeightETUnit"));
 | 
			
		||||
					if (peso_imballo_ddt.is_zero())
 | 
			
		||||
						peso_imballo_ddt = peso_imballo_anamag;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 //     if (pesi_anamag > 1) // Con imballi composti da vari materiali devo riportare o riproporzionare
 | 
			
		||||
//      {
 | 
			
		||||
@ -866,12 +900,6 @@ bool TPack_ddt::trasferisci()
 | 
			
		||||
						if (rdoc.get(conai_sottocat_name(cc, LF_RIGHEDOC)).full())
 | 
			
		||||
							rdoc.put(conai_peso_name(cc), art.conai_weight(cc));
 | 
			
		||||
        }
 | 
			
		||||
   /*   }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
        // Caso semplice della sola carta
 | 
			
		||||
        rdoc.put(conai_peso_name(CONAI_CARTA), peso_imballo_ddt);
 | 
			
		||||
      } */
 | 
			
		||||
     
 | 
			
		||||
      rdoc.put("FAMILY", get_str("FamilyCode")); // Uso campo virtuale RG1:FAMILY
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user