#endregion Modello CU - Certificazione Unica
        
        private string getCampoNonPosizionale(string codice, string valore, AllineamentoCaratteri allineamento)
        {
            if(!string.IsNullOrEmpty(valore))
            {
                var campo = codice;

                if (!string.IsNullOrEmpty(valore))
                {
                    valore = Library.Conversione.ToInvioTelematico(valore);
                    if (!string.IsNullOrEmpty(valore))
                        valore = valore.Trim();
                }

                if(!string.IsNullOrEmpty(valore))
                {
                    if (allineamento == AllineamentoCaratteri.Destro)
                        campo += valore.PadLeft(16);
                    else
                    {
                        if (valore.Length <= 16)
                            campo += valore.PadRight(16);
                        else
                            campo += valore.Substring(0, 16) + getCampoNonPosizionale(codice, "+" + valore.Substring(16), allineamento);
                    }
                }

                if (!string.IsNullOrEmpty(campo) && campo.Contains(","))
                {
                    // Valore 0 da non scrivere
                    if (campo.EndsWith(" 0,00"))
                        campo = codice.PadRight(24);
                }

                return campo;
            }
        private string getCampoNonPosizionale(string codice, string valore, AllineamentoCaratteri allineamento)
        {
            string campo = codice;

            if (!string.IsNullOrEmpty(valore))
                valore = valore.Trim();

            if (allineamento == AllineamentoCaratteri.Destro)
                campo += valore.PadLeft(16);
            else
            {
                if (valore.Length <= 16)
                    campo += valore.PadRight(16);
                else
                    campo += valore.Substring(0, 16) + getCampoNonPosizionale(codice, "+" + valore.Substring(16), allineamento);
            }

            return campo;
        }
        private string getCampoNonPosizionale(string codice, string valore, AllineamentoCaratteri allineamento)
        {
            if(!string.IsNullOrEmpty(valore))
            {
                var campo = codice;

                if (!string.IsNullOrEmpty(valore))
                {
                    valore = Library.Conversione.ToInvioTelematico(valore);
                    if (!string.IsNullOrEmpty(valore))
                        valore = valore.Trim();
                }

                if(!string.IsNullOrEmpty(valore))
                {
                    if (allineamento == AllineamentoCaratteri.Destro)
                        campo += valore.PadLeft(16);
                    else
                    {
                        if (valore.Length <= 16)
                            campo += valore.PadRight(16);
                        else
                            campo += valore.Substring(0, 16) + getCampoNonPosizionale(codice, "+" + valore.Substring(16), allineamento);
                    }
                }

                return campo;
            }
            return string.Empty.PadLeft(16);
        }