示例#1
0
        public void Convert(string IncassoNumber, DateTime incassoDate)
        {
            var            members         = db.bareMembers.Include("Events").ToList();
            List <Incasso> currentincassos = new List <Incasso>();

            currentincassos = db.Incassos.Include("incassoMembers").ToList();
            Incasso incasso = new Incasso(IncassoNumber, incassoDate);

            foreach (var member in members.Where(m => m.Events.Count() > 0))
            {
                IncassoMember im = new IncassoMember(member, IncassoNumber, incassoDate);
                db.incassoMembers.Add(im);
                im.AddEventAmounts(member.Id);
                incasso.incassoMembers.Add(im);
            }

            db.SaveChanges();

            if (currentincassos.Exists(ci => ci.Number.ToString() == IncassoNumber))
            {
                var existingincasso = currentincassos.Find(ci => ci.Number.ToString() == IncassoNumber);
                existingincasso.incassoMembers.Clear();
                db.Incassos.Remove(existingincasso);
                db.SaveChanges();
            }
            db.Incassos.Add(incasso);
            db.SaveChanges();
        }
示例#2
0
        public void ConvertToExcel(int incassoid)
        {
            Incasso incasso  = db.Incassos.Where(i => i.Id == incassoid).Include("IncassoMembers").FirstOrDefault();
            var     direct   = Directory.GetParent(Directory.GetParent(Directory.GetCurrentDirectory()).ToString());
            var     filepath = direct + "\\Incassos";

            Directory.CreateDirectory(direct + "\\Incassos");
            string _Path = filepath + "\\Incasso" + incasso.Number + ".csv";

            if (!File.Exists(_Path))
            {
                using (File.Create(_Path))
                {
                }
            }
            using (StreamWriter sw = new StreamWriter(_Path))
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("Naam Tegenrekening").Append("\t");
                sb.Append("Straat Tegenrekening").Append("\t");
                sb.Append("Postcode Tegenrekening").Append("\t");
                sb.Append("Woonplaats Tegenrekening").Append("\t");
                sb.Append("Land Tegenrekening").Append("\t");
                sb.Append("IBAN Tegenrekening").Append("\t");
                sb.Append("Ondertekeningsdatum Mandaat").Append("\t");
                sb.Append("Mandaat Id").Append("\t");
                sb.Append("Bedrag").Append("\t");
                sb.Append("Incassodatum").Append("\t");
                sb.Append("Soort Incasso").Append("\t");
                sb.Append("Omschrijving").Append("\t");
                sw.WriteLine(sb);
                foreach (var incassomember in incasso.incassoMembers)
                {
                    StringBuilder sb2 = new StringBuilder();
                    sb2.Append(incassomember.Name).Append("\t");
                    sb2.Append(incassomember.Adres).Append("\t");
                    sb2.Append(incassomember.Postcode).Append("\t");
                    sb2.Append(incassomember.Plaats).Append("\t");
                    sb2.Append(incassomember.Land).Append("\t");
                    sb2.Append(incassomember.Rekeningnummer).Append("\t");
                    if (incassomember.Inschrijfdatum != null)
                    {
                        sb2.Append(incassomember.Inschrijfdatum.Value.ToShortDateString()).Append("\t");
                    }
                    else
                    {
                        sb2.Append("\t");
                    }
                    sb2.Append(incassomember.Kenmerk).Append("\t");
                    sb2.Append(incassomember.Bedrag).Append("\t");
                    sb2.Append(incassomember.Incassodatum.Value.ToShortDateString()).Append("\t");
                    sb2.Append(incassomember.Incassosoort).Append("\t");
                    sb2.Append(incassomember.Omschrijving).Append("\t");

                    sw.WriteLine(sb2);
                }
            }
        }
        async void OnInviaClicked(object sender, System.EventArgs e)
        {
            _n_start = Convert.ToInt32(m_n_start.Value);
            _n_stop  = Convert.ToInt32(m_n_stop.Value);

            TimeSpan t = new TimeSpan(1, 0, 0, 0);

            _d_start = m_d_start.Date;
            _d_stop  = m_d_stop.Date + t;

            if (_n_stop < _n_start || _n_stop == 0)
            {
                m_n_stop.Focus();
                return;
            }
            if (_d_start > _d_stop)
            {
                m_d_stop.Focus();
                return;
            }

            LocalImpo lim;

            //
            // Leggiamo le impostazioni
            //
            try
            {
                lim = await _dbcon.GetAsync <LocalImpo>(1);
            }
            catch
            {
                await DisplayAlert("Attenzione!", "Impostazioni locali non trovate!\nRiavviare l'App.", "OK");

                await Navigation.PopModalAsync();

                return;
            }

            if (string.IsNullOrWhiteSpace(lim.ftpServer))
            {
                await DisplayAlert("Attenzione!", "Server non impostato o non valido.", "OK");

                await Navigation.PopModalAsync();

                return;
            }
            if (string.IsNullOrWhiteSpace(lim.user))
            {
                await DisplayAlert("Attenzione!", "Utente non impostato o non valido.", "OK");

                await Navigation.PopModalAsync();

                return;
            }
            if (lim.age == 0)
            {
                await DisplayAlert("Attenzione!", "Agente non impostato o non valido.", "OK");

                await Navigation.PopModalAsync();

                return;
            }

            busyIndicator.IsBusy        = true;
            busyIndicator.AnimationType = AnimationTypes.Ball;
            busyIndicator.Title         = "Estrazione Incassi";

            //
            // Estraiamo i dati selezionati
            //

            List <ScaPagHead> dspList = null;

            try
            {
                dspList = await _dbcon.QueryAsync <ScaPagHead>("SELECT * from scapaghe WHERE (dsp_codice >= ? AND dsp_codice <= ?) AND (dsp_data >= ? AND dsp_data < ?)", _n_start, _n_stop, _d_start.Ticks, _d_stop.Ticks);
            }
            catch (Exception ex)
            {
                await DisplayAlert("Errore!", "Impossibile leggere dal database : " + ex.Message, "OK");

                return;
            }
            if (dspList == null || dspList.Count == 0)
            {
                await DisplayAlert("Errore!", "Non ci sono dati da inviare!", "OK");

                return;
            }

            var incList = new List <Incasso>();

            foreach (var dsp in dspList)
            {
                var inc = new Incasso();
                inc.head = dsp;

                //
                // Inseriamo i dati del cliente
                //
                try
                {
                    inc.cliente = await _dbcon.GetAsync <Clienti>(dsp.dsp_clifor);
                }
                catch
                {
                    await DisplayAlert("Attenzione!", "Dati cliente non presenti in archivio", "OK");

                    return;
                }

                //
                // Inseriamo i dati del destinatario
                //
                if (dsp.dsp_dst != 0)
                {
                    try
                    {
                        inc.destinazione = await _dbcon.GetAsync <Destinazioni>(dsp.dsp_dst);
                    }
                    catch
                    {
                        await DisplayAlert("Attenzione!", "Dati destinazione non presenti in archivio", "OK");

                        return;
                    }
                }

                //
                // Inseriamo le righe
                //
                var sql = string.Format("SELECT * FROM scapagro WHERE dsr_codice = {0} ORDER BY dsr_idx", dsp.dsp_codice);
                inc.rows = await _dbcon.QueryAsync <ScaPagRow>(sql);

                //
                // Aggiungiamo il documento alla list
                //
                incList.Add(inc);
            }

            //
            // Creaiamo il file
            //
            var     fname      = string.Format("INC{0:00000}", ((App)Application.Current).facile_db_impo.dit_codice);
            IFolder rootFolder = FileSystem.Current.LocalStorage;
            String  localJson  = rootFolder.Path + "/" + fname + ".JSON";

            IFile json_file = await rootFolder.CreateFileAsync(localJson, CreationCollisionOption.ReplaceExisting);

            await json_file.WriteAllTextAsync(JsonConvert.SerializeObject(incList, Formatting.Indented));

            //
            // Trasmettiamo il file
            //
            busyIndicator.AnimationType = AnimationTypes.Globe;
            busyIndicator.Title         = "Trasmissione";

            string password     = "";
            string remoteServer = "";

            if (lim.ftpServer == "Facile - 01")
            {
                remoteServer = "ftp://www.facile2013.it";
            }

            if (lim.ftpServer == "Facile - 02")
            {
                remoteServer = "ftp://www.rsaweb.com";
            }

            if (lim.ftpServer == "Facile - 03")
            {
                remoteServer = "ftp://www.facilecloud.com";
            }

            if (remoteServer == "")
            {
                throw new Exception("Server non impostato o non valido");
            }

            if (lim.user != "demo2017")
            {
                password = $"$_{lim.user}_$";
            }
            else
            {
                password = lim.user;
            }

            var remotePath = $"/{lim.age}/out";


            var    ftp    = DependencyService.Get <IFtpWebRequest>();
            string result = await ftp.UploadFile(remoteServer, localJson, lim.user, password, remotePath);

            busyIndicator.IsBusy = false;
            if (result.StartsWith("221", StringComparison.CurrentCulture))
            {
                //
                // Marchiamo i documenti come non più editabili
                //
                foreach (var dsp in dspList)
                {
                    dsp.dsp_inviato = true;
                }
                await _dbcon.UpdateAllAsync(dspList);
                await DisplayAlert("Facile", "Invio incassi concluso con successo!", "OK");
            }
            else if (result.StartsWith("530", StringComparison.CurrentCulture))
            {
                await DisplayAlert("Facile", "Parametri di Login non validi!\nVerificare il nome utente configurato.", "OK");
            }
            else if (result.StartsWith("System.Net.WebException", StringComparison.CurrentCulture))
            {
                await DisplayAlert("Facile", result, "OK");
            }
            else
            {
                await DisplayAlert("Facile", "Impossibile caricare il file sul server!", "OK");
            }

            //
            // Rimuoviamo il file
            //
            await json_file.DeleteAsync();

            await Navigation.PopModalAsync();
        }