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(); }
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(); }