Corretta gestione generazione nac nolo separatamente dalle altre
git-svn-id: svn://10.65.10.50/branches/R_10_00@22839 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									43042b134a
								
							
						
					
					
						commit
						19f7ec802f
					
				@ -67,6 +67,7 @@ bool TDocumenti_premio_query_msk::on_field_event(TOperable_field& o, TField_even
 | 
			
		||||
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class TDocumenti_premio_msk : public TAutomask
 | 
			
		||||
{
 | 
			
		||||
protected:
 | 
			
		||||
@ -77,7 +78,7 @@ protected:
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  const TString& find_contabilizzazione() const;
 | 
			
		||||
  TDocumenti_premio_msk(const char* name = "ha0300a") : TAutomask(name) {}
 | 
			
		||||
  TDocumenti_premio_msk(const char* name) : TAutomask(name) {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//metodo standard per far funzionare il shift+f12 in modo da poter cambiare lo stato
 | 
			
		||||
@ -279,7 +280,9 @@ TMask* TDocumenti_premio::get_mask(int m)
 | 
			
		||||
  if (m < MODE_INS)
 | 
			
		||||
    return _qmsk;
 | 
			
		||||
  const TString& tipo = _qmsk->get(F_TIPOCONTR);
 | 
			
		||||
  return tipo == "N" ? _nmsk : _cmsk; 
 | 
			
		||||
  TMask* msk = tipo == "N" ? _nmsk : _cmsk; 
 | 
			
		||||
  msk->set(F_TIPOCONTR, tipo);
 | 
			
		||||
  return msk;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//cerca il primo numero valido per NDOC
 | 
			
		||||
 | 
			
		||||
@ -59,14 +59,37 @@ END
 | 
			
		||||
NUMBER F_CODCF 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Cliente   "
 | 
			
		||||
  WARNING "Cliente assente"
 | 
			
		||||
  HELP "Codice del cliente del documento"
 | 
			
		||||
  FIELD CODCF
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  USE LF_CLIFO SELECT SOSPESO!="X"
 | 
			
		||||
  INPUT TIPOCF "C"
 | 
			
		||||
  INPUT CODCF F_CODCF
 | 
			
		||||
  DISPLAY "Codice" CODCF
 | 
			
		||||
  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
			
		||||
  DISPLAY "Partita IVA@12" PAIV
 | 
			
		||||
  DISPLAY "Sospeso" SOSPESO
 | 
			
		||||
  OUTPUT F_CODCF CODCF
 | 
			
		||||
  OUTPUT F_DESCF RAGSOC
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  ADD RUN cg0 -1 C
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESCF 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  WARNING "Cliente assente"
 | 
			
		||||
  HELP "Ragione sociale del cliente del documento"
 | 
			
		||||
  PROMPT 24 2 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  USE LF_CLIFO KEY 2 SELECT SOSPESO!="X"
 | 
			
		||||
  INPUT TIPOCF "C"
 | 
			
		||||
  INPUT RAGSOC F_DESCF
 | 
			
		||||
  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
			
		||||
  DISPLAY "Codice" CODCF
 | 
			
		||||
  DISPLAY "Partita IVA@12" PAIV
 | 
			
		||||
  DISPLAY "Sospeso" SOSPESO
 | 
			
		||||
  COPY OUTPUT F_CODCF
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  ADD RUN cg0 -1 C
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODCFATT 6
 | 
			
		||||
@ -81,8 +104,6 @@ BEGIN
 | 
			
		||||
  DISPLAY "Sospeso" SOSPESO
 | 
			
		||||
  OUTPUT F_CODCFATT CODCF
 | 
			
		||||
  OUTPUT F_DESCFATT RAGSOC
 | 
			
		||||
  OUTPUT F_CODCF CODCF
 | 
			
		||||
  OUTPUT F_DESCF RAGSOC
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  ADD RUN cg0 -1 C
 | 
			
		||||
  FIELD DOC2
 | 
			
		||||
 | 
			
		||||
@ -51,33 +51,6 @@ bool THardy_elab_docs_mask::on_field_event(TOperable_field& o, TField_event e, l
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
  /*case F_TIPOCONTR:
 | 
			
		||||
    if (e == fe_modify)
 | 
			
		||||
    {
 | 
			
		||||
      //in base alla tipologia di contratti da elaborare decide numerazione e tipo delle NAC da generare
 | 
			
		||||
      TConfig config(CONFIG_DITTA, "ha");
 | 
			
		||||
      TString4 codnum, tipodoc;
 | 
			
		||||
 | 
			
		||||
      switch (o.get()[0])
 | 
			
		||||
      {
 | 
			
		||||
      case 'A':
 | 
			
		||||
        codnum = config.get("NaAntNum");
 | 
			
		||||
        tipodoc = config.get("NaAntTip");
 | 
			
		||||
        break;
 | 
			
		||||
      case 'R':
 | 
			
		||||
        codnum = config.get("NaRifaNum");
 | 
			
		||||
        tipodoc = config.get("NaRifaTip");
 | 
			
		||||
        break;
 | 
			
		||||
      default:
 | 
			
		||||
        codnum = config.get("NaPostNum");
 | 
			
		||||
        tipodoc = config.get("NaPostTip");
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      set(F_CODNUM_NAC, codnum);
 | 
			
		||||
      set(F_CODTIPO_NAC, tipodoc);
 | 
			
		||||
    }
 | 
			
		||||
    break;*/
 | 
			
		||||
    //in caso di elaborazione definitiva è obbligatorio..
 | 
			
		||||
    //..eliminare tutte le NAC provvisorie generate in precedenza
 | 
			
		||||
  case F_DEFINITIVO:
 | 
			
		||||
@ -281,6 +254,7 @@ long THardy_elab_docs::genera_recordset(const TMask& mask, TISAM_recordset& recs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//metodo che riempie un array con tutti i contratti del cliente passatogli (in base alla tipologia di contratti da elaborare)
 | 
			
		||||
// flags: 0x7 = tutti tranne nolo; 0x8 = nolo
 | 
			
		||||
int THardy_elab_docs::find_contratti_cliente(const long codcfatt, const TMask& mask, int flags, TArray& contratti_cliente)
 | 
			
		||||
{
 | 
			
		||||
  contratti_cliente.destroy();
 | 
			
		||||
@ -291,7 +265,8 @@ int THardy_elab_docs::find_contratti_cliente(const long codcfatt, const TMask& m
 | 
			
		||||
    check_date(data_fine_elab, data_ini_elab);
 | 
			
		||||
 | 
			
		||||
  // settaggio delle variabili
 | 
			
		||||
  //il codice numerazione lo trova nella configurazione Hardy, e lo deve scegliere in base alla tipologia di contratti che sta esaminando!
 | 
			
		||||
  // il codice numerazione lo trova nella configurazione Hardy, 
 | 
			
		||||
  // lo deve scegliere in base alla tipologia di contratti che sta esaminando!
 | 
			
		||||
  for (int f = 0; f < 4; f++) if (flags & (1 << f))
 | 
			
		||||
  {
 | 
			
		||||
    TString4 codnum, tipodoc;
 | 
			
		||||
@ -802,7 +777,7 @@ bool THardy_elab_docs::genera_fat(const TMask& mask, TContratto_premi& contratto
 | 
			
		||||
  fat.put(DOC_STATO,      1);
 | 
			
		||||
  fat.put(DOC_DATADOC,    datadoc);
 | 
			
		||||
  fat.put(DOC_TIPOCF,     'C');
 | 
			
		||||
  fat.put(DOC_CODCF,      contratto.get(DOC_DOC2));
 | 
			
		||||
  fat.put(DOC_CODCF,      contratto.get(DOC_CODCF));
 | 
			
		||||
  fat.put(DOC_CODAG,      contratto.get(DOC_CODAG));
 | 
			
		||||
  fat.put(DOC_CODPAG,     fat_codpag);
 | 
			
		||||
  fat.put(DOC_DOC1,       contratto.get(DOC_NDOC));
 | 
			
		||||
@ -822,9 +797,8 @@ bool THardy_elab_docs::genera_fat(const TMask& mask, TContratto_premi& contratto
 | 
			
		||||
    contratto.put(DOC_NUMANT, contratto.get(DOC_NCOLLI)); // Chiude contratto forzosamente
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    contratto.add(DOC_NUMANT, UNO); // Incrementa numero di rate pagate
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (provv == 'D')
 | 
			
		||||
  {
 | 
			
		||||
    const int err = contratto.rewrite();
 | 
			
		||||
@ -935,6 +909,8 @@ void THardy_elab_docs::elabora_documenti(const TMask& mask, TISAM_recordset& fat
 | 
			
		||||
  TArray contratti_cliente, documenti_cliente;
 | 
			
		||||
  TAssoc_array nac_nolo;
 | 
			
		||||
 | 
			
		||||
  const int tc = mask.get_int(F_TIPOCONTR); // 0x7 (tutti tranne nolo) o 0x8 (solo nolo)
 | 
			
		||||
 | 
			
		||||
  //giro sulle fatture (è il giro di più alto livello che viene esteso all'interno delle elabora_contratti)
 | 
			
		||||
  for (bool ok = fatture.move_first(); ok; ok = fatture.move_next())
 | 
			
		||||
	{
 | 
			
		||||
@ -956,12 +932,12 @@ void THardy_elab_docs::elabora_documenti(const TMask& mask, TISAM_recordset& fat
 | 
			
		||||
      TString msg; msg << TR("Cliente") << ' ' << codcf << ' ' << cache().get(LF_CLIFO, key, CLI_RAGSOC);
 | 
			
		||||
      log.log(0, msg);
 | 
			
		||||
 | 
			
		||||
      const int n_contratti = find_contratti_cliente(codcf, mask, 0xF, contratti_cliente);
 | 
			
		||||
      const int n_contratti = find_contratti_cliente(codcf, mask, tc, contratti_cliente);
 | 
			
		||||
      if (n_contratti == 0)
 | 
			
		||||
      {
 | 
			
		||||
        TString msg;
 | 
			
		||||
        msg << TR("Il cliente non ha un contratto valido nel periodo selezionato pur avendo fatture.");
 | 
			
		||||
        log.log_error(msg);
 | 
			
		||||
        log.log(1, msg);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -997,6 +973,8 @@ void THardy_elab_docs::elabora_documenti(const TMask& mask, TISAM_recordset& fat
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (tc & 0x8) // Elaborazino nolo?
 | 
			
		||||
  {
 | 
			
		||||
    // Elabora tutti i contratti di nolo per generare fatture ed effetti
 | 
			
		||||
    const int cn = find_contratti_cliente(mask.get_long(F_CODCF), mask, 0x8, contratti_cliente);
 | 
			
		||||
    FOR_EACH_ARRAY_ROW(contratti_cliente, n_nolo, r_nolo)
 | 
			
		||||
@ -1014,6 +992,7 @@ void THardy_elab_docs::elabora_documenti(const TMask& mask, TISAM_recordset& fat
 | 
			
		||||
      genera_fat(mask, contratto, nakey, log);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//metodo di alto livello con i punti principali del programma (come da analisi...)
 | 
			
		||||
void THardy_elab_docs::elabora(const TMask& mask)
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@
 | 
			
		||||
#define F_RAGSOC          205
 | 
			
		||||
#define F_DADATA          206
 | 
			
		||||
#define F_ADATA           207
 | 
			
		||||
//#define F_TIPOCONTR       208
 | 
			
		||||
#define F_TIPOCONTR       208
 | 
			
		||||
//#define F_CODNUM_NAC      210
 | 
			
		||||
//#define F_DESCRNUM_NAC    211
 | 
			
		||||
//#define F_CODTIPO_NAC     212
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
#include "ha0500a.h"
 | 
			
		||||
 | 
			
		||||
PAGE "Generazione NAC" -1 -1 78 11
 | 
			
		||||
PAGE "Generazione NAC" -1 -1 78 15
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 5
 | 
			
		||||
BEGIN
 | 
			
		||||
@ -69,85 +69,34 @@ BEGIN
 | 
			
		||||
  VALIDATE DATE_CMP_FUNC >= F_DADATA
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 3
 | 
			
		||||
GROUPBOX DLG_NULL 76 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "@bParametri elaborazione"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_DEFINITIVO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 7 "Definitiva"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_KILLPROVV
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 8 "Eliminare tutte le note di accredito provvisorie"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATE F_DATAELAB
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 7 "Data elaborazione "
 | 
			
		||||
  PROMPT 43 7 "Data elaborazione "
 | 
			
		||||
  FLAGS "A"
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_DEFINITIVO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 40 7 "Definitivo"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
/*RADIOBUTTON F_TIPOCONTR 1 72
 | 
			
		||||
RADIOBUTTON F_TIPOCONTR 1 76
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 8 "@bTipi contratto da elaborare"
 | 
			
		||||
  ITEM "A|Anticipo"
 | 
			
		||||
  ITEM "P|Posticipo"
 | 
			
		||||
  ITEM "R|Rifatturazione"
 | 
			
		||||
  FLAGS "Z"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODNUM_NAC 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 11 "Num. doc. NAC  "
 | 
			
		||||
  USE %NUM
 | 
			
		||||
  INPUT CODTAB F_CODNUM_NAC
 | 
			
		||||
  DISPLAY "Codice@8" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
  OUTPUT F_CODNUM_NAC CODTAB
 | 
			
		||||
  OUTPUT F_DESCRNUM_NAC S0
 | 
			
		||||
  FLAGS "DG"
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESCRNUM_NAC 50 43
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 29 11 ""
 | 
			
		||||
  USE %NUM KEY 2
 | 
			
		||||
  INPUT S0 F_DESCRNUM_NAC
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
  DISPLAY "Codice@8" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODNUM_NAC
 | 
			
		||||
  FLAGS "DG"
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODTIPO_NAC 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 12 "Tipo doc. NAC  "
 | 
			
		||||
  USE %TIP
 | 
			
		||||
  INPUT CODTAB F_CODTIPO_NAC
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
  OUTPUT F_CODTIPO_NAC CODTAB
 | 
			
		||||
  OUTPUT F_DESCRTIPO_NAC S0
 | 
			
		||||
  FLAGS "DG"
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESCRTIPO_NAC 50 43
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 29 12 ""
 | 
			
		||||
  USE %TIP KEY 2
 | 
			
		||||
  INPUT S0 F_DESCRTIPO_NAC
 | 
			
		||||
  DISPLAY "Descrizione@60" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT F_CODTIPO_NAC
 | 
			
		||||
  FLAGS "DG"
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END*/
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_KILLPROVV
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 9 "Eliminare tutte le note di accredito provvisorie"
 | 
			
		||||
  PROMPT 1 10 "@bContratti da elaborare"
 | 
			
		||||
  ITEM "7|Anticipo/Posticipo/Rifatturazione"
 | 
			
		||||
  ITEM "8|Nolo"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING DLG_PROFILE 50
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user