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);
        }
예제 #3
0
        //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);
        }