private void ButtonImport_Click() { ErrHandler.MyErrHandler.WriteError("SincronizareDateAngajati.ascx - start - click_Import()"); ScrieInFisierTest(); lblMesajImport.Text = Environment.NewLine; if ((fileImportFisier.PostedFile.FileName != "") || (fileImportFisier.PostedFile.ContentLength != 0)) { string caleFisier = fileImportFisier.PostedFile.FileName; string contentFile = fileImportFisier.PostedFile.ContentType.ToString(); if (fileImportFisier.PostedFile.ContentType.ToString().Equals("application/vnd.ms-excel")) { //salvez fisierul pe server caleFisier = SaveFileOnServer(fileImportFisier); int idAngajator = GetAngajator(); int idLuna = this.GetCurrentMonth(); //nu le pot trece in alt proiect pt ca am clase ce le folosesc din proiectul asta si nu prea pot trece SiemensHR ca referinta la alte proiect - creez ciclu //Salaries.Business.PontajAngajati imp = new Salaries.Business.PontajAngajati(idAngajator, idLuna); //string mesajImport = imp.ImportPontaj(caleFisier); string tempPath = System.IO.Path.GetTempPath(); System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath("Templates\\logImport.txt"), true); sw.WriteLine("----temp path:" + tempPath); sw.Close(); //---scriu in log---- Salaries.Data.ImportFisier sitData = new Salaries.Data.ImportFisier(); DataTable dt = sitData.GetDataTableFromImport(caleFisier); ScrieInFisierDate(caleFisier, "pontaj", dt); //------ string mesajImport = ImportFisierSincronizare(caleFisier); //aici as putea sa si adaug in bd if (mesajImport.IndexOf("Fisierul nu este in formatul corespunzator") >= 0) { lblMesajImport.Text = "Fisierul nu este in formatul corespunzator"; lblMesaj.Text = ""; } else { lblMesajImport.Text = "A fost importat fisierul pentru delegatii. \r\n"; if (!mesajImport.Equals("")) { lblMesaj.Text += mesajImport.Replace(Environment.NewLine, "<br> "); //Session["FeedbackImport"] = lblMesaj.Text; //Response.Write("<script> var win=window.open('ShowMessage.aspx','FeedbackImport','height=200,width=500,menubar=no,status=no,toolbar=no,resizable=yes');win.focus();</script>"); } ScrieInFisierMesaj(mesajImport); } } else { Response.Write("<script> alert('Introduceti fisiere Excel.');</script>"); } } ErrHandler.MyErrHandler.WriteError("SincronizareDateAngajati.ascx - end - click_Import() "); }
//Lungu Andreea - 20.09.2010 public string ImportFisierSincronizare(string fileName) { ErrHandler.MyErrHandler.WriteError("SincronizareDateAngajati.ascx - start - ImportFisierSincronizare() - " + fileName); string marca = "", numePrenume = "", birou = ""; Salaries.Data.ImportFisier imp = new Salaries.Data.ImportFisier(); DataTable dt = imp.GetDataTableFromImport(fileName); string mesajImport = ""; foreach (DataRow dr in dt.Rows) { #region preiau datele din row-ul respectiv try { marca = dr["Marca"].ToString(); numePrenume = dr["Nume si Prenume"].ToString(); birou = dr["Birou"].ToString(); } catch (Exception exc) { mesajImport += "Fisierul nu este in formatul corespunzator"; ErrHandler.MyErrHandler.WriteError("SincronizareDateAngajati.ascx - error - ImportFisierSincronizare() - 'Fisierul nu este in formatul corespunzator' "); break; } #endregion #region determin id-ul angajatului pe baza marcii //determin id-ul angajatului pe baza marcii Salaries.Business.Angajat ang = new Salaries.Business.Angajat(); ang.Marca = marca; int idAngajat = ang.GetAngajatIDByMarca(marca); ang.AngajatId = idAngajat; ang.LoadAngajat(); // ang.LoadAngajat(); // bool esteLichidat = true; // if ((ang.DataLichidare == DateTime.MinValue) || (ang.DataLichidare>dataStartLunaActiva)) // esteLichidat = false; #endregion //if ((idAngajat != -1) && (!esteLichidat)) if (idAngajat != -1) { ang.Birou = birou; ang.UpdateAngajat(); } else { if (!dr["Marca"].ToString().Equals("")) { mesajImport += "Nu exista angajatul cu marca " + dr["Marca"].ToString() + Environment.NewLine; } //ar trebui sa scriu intr-un fisier ca sa pot da un feedback //if (esteLichidat) // mesajImport += "Angajatul " + dr["Nume si Prenume"].ToString() + " este lichidat."; } } ErrHandler.MyErrHandler.WriteError("SincronizareDateAngajati.ascx - end - ImportFisierSincronizare() - " + fileName); if (mesajImport.Equals("")) { mesajImport = "Sincronizarea datelor a fost realizata."; } return(mesajImport); }
//Lungu Andreea - 03.11.2009 public string ImportFisierDelegatii(string fileName) { ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - start - ImportDelegatii() - lunaID: " + lunaID + " - " + fileName); string marca = "", numePrenume = "", perioada = "", tipDelegatie = "", observatii = ""; int luna = 0, an = 0; tipDelegatie = "DE"; observatii = ""; Salaries.Data.ImportFisier imp = new Salaries.Data.ImportFisier(); DataTable dt = imp.GetDataTableFromImport(fileName); string mesajImport = ""; if (dt.Rows.Count == 0) { mesajImport = "Fisierul nu este in formatul corespunzator sau nu contine informatii."; ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - end - ImportDelegatii() - lunaID: " + lunaID + " - " + fileName); return(mesajImport); } bool okRow = false; //foreach (DataRow dr in dt.Rows) for (int index = 0; index < dt.Rows.Count; index++) { DataRow dr = dt.Rows[index]; if (okRow && !dr.IsNull(3)) { #region preiau datele din row-ul respectiv try { marca = dr.ItemArray[2].ToString(); //marca numePrenume = dr.ItemArray[3].ToString() + " " + dr.ItemArray[4].ToString(); //nume, prenume perioada = dr.ItemArray[5].ToString(); //Perioada depl luna = Int32.Parse(dr.ItemArray[7].ToString()); //luna an = Int32.Parse(dr.ItemArray[8].ToString()); //an } catch (Exception exc) { /*mesajImport += "Fisierul nu este in formatul corespunzator"; * ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - error - ImportDelegatii() - 'Fisierul nu este in formatul corespunzator' "); * break;*/ mesajImport += "Datele pentru " + numePrenume + " nu sunt corecte." + Environment.NewLine; ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - error - ImportDelegatii() - 'Datele pentru " + numePrenume + " nu sunt corecte.' - index row: " + dr.ToString()); //break; //dr = dt.Rows[dt.Rows. } #endregion #region determin id-ul angajatului pe baza marcii //determin id-ul angajatului pe baza marcii Salaries.Business.Angajat ang = new Salaries.Business.Angajat(); ang.Marca = marca; int idAngajat = ang.GetAngajatIDByMarca(marca); #endregion //if ((idAngajat != -1) && (!esteLichidat)) if (idAngajat != -1) { if (!perioada.Equals("-")) { string[] perioade = perioada.Split(';'); for (int i = 0; i < perioade.Length; i++) { if (!perioade[i].Equals("")) { #region dataInceput - dataSfarsit DateTime dataInceput = new DateTime(); DateTime dataSfarsit = new DateTime(); string[] sir = perioade[i].Split('-'); try { if (sir.Length == 1) //am o singura zi, nu o perioada { dataInceput = new DateTime(an, luna, Int32.Parse(sir[0])); dataSfarsit = new DateTime(an, luna, Int32.Parse(sir[0])); } else { if (sir.Length == 2) //am periada { dataInceput = new DateTime(an, luna, Int32.Parse(sir[0])); dataSfarsit = new DateTime(an, luna, Int32.Parse(sir[1])); } else { /*mesajImport += "Fisierul nu este in formatul corespunzator"; * ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - error - ImportDelegatii() - 'Fisierul nu este in formatul corespunzator' "); * break;*/ mesajImport += "Datele pentru " + numePrenume + " nu sunt corecte." + Environment.NewLine; ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - error - ImportDelegatii() - 'Datele pentru " + numePrenume + " nu sunt corecte.' - index row: " + dr.ToString()); //break; } } } catch (Exception exc) { mesajImport += "Datele pentru " + numePrenume + " nu sunt corecte." + Environment.NewLine; ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - error - ImportDelegatii() - 'Datele pentru " + numePrenume + " nu sunt corecte.' - index row: " + dr.ToString()); } #endregion #region verific daca dataInceput si dataSfarsit sunt in luna activa bool intervaleCorecte = true; if ((dataInceput < dataStartLunaActiva && dataSfarsit < dataStartLunaActiva) || (dataInceput > dataEndLunaActiva && dataSfarsit > dataEndLunaActiva)) { intervaleCorecte = false; mesajImport += "Intervalele pt angajatul " + numePrenume + " nu sunt in luna curenta. " + Environment.NewLine; } else { if (dataInceput < dataStartLunaActiva && dataSfarsit >= dataStartLunaActiva && dataSfarsit <= dataEndLunaActiva) //doar datasfarsit e in luna activa { dataInceput = dataStartLunaActiva; } if (dataInceput >= dataStartLunaActiva && dataInceput <= dataEndLunaActiva && dataSfarsit > dataEndLunaActiva) //doar datainceput e in luna activa { dataSfarsit = dataEndLunaActiva; } if (dataInceput < dataStartLunaActiva && dataSfarsit > dataEndLunaActiva) { dataInceput = dataStartLunaActiva; dataSfarsit = dataEndLunaActiva; } } #endregion if (intervaleCorecte) { mesajImport += AddDelegatii(numePrenume, marca, dataInceput, dataSfarsit, tipDelegatie, observatii); } } } } } else { if (!dr["Marca"].ToString().Equals("")) { mesajImport += "Nu exista angajatul cu marca " + dr["Marca"].ToString() + Environment.NewLine; } //ar trebui sa scriu intr-un fisier ca sa pot da un feedback //if (esteLichidat) // mesajImport += "Angajatul " + dr["Nume si Prenume"].ToString() + " este lichidat."; } } if (dr.ItemArray[0].ToString().Equals("Departament") && dr.ItemArray[1].ToString().Equals("Punct de lucru") && dr.ItemArray[2].ToString().Equals("Marca")) { okRow = true; } } ErrHandler.MyErrHandler.WriteError("ImportDelegatii.ascx - end - ImportDelegatii() - lunaID: " + lunaID + " - " + fileName); return(mesajImport); }