Пример #1
0
        private SqliteCommand AddCreateParameters(SqliteCommand insertCommand, EmployeeByConstructionSiteViewModel employeeByConstructionSite)
        {
            insertCommand.Parameters.AddWithValue("@ServerId", employeeByConstructionSite.Id);
            insertCommand.Parameters.AddWithValue("@Identifier", employeeByConstructionSite.Identifier);
            insertCommand.Parameters.AddWithValue("@Code", ((object)employeeByConstructionSite.Code) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@StartDate", ((object)employeeByConstructionSite.StartDate) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@EndDate", ((object)employeeByConstructionSite.EndDate) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@RealEndDate", ((object)employeeByConstructionSite.RealEndDate) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@EmployeeId", ((object)employeeByConstructionSite.Employee?.Id) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@EmployeeIdentifier", ((object)employeeByConstructionSite.Employee?.Identifier) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@EmployeeCode", ((object)employeeByConstructionSite.Employee?.Code) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@EmployeeName", ((object)employeeByConstructionSite.Employee?.Name) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@EmployeeInternalCode", ((object)employeeByConstructionSite.Employee?.EmployeeCode) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerId", ((object)employeeByConstructionSite.BusinessPartner?.Id) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerIdentifier", ((object)employeeByConstructionSite.BusinessPartner?.Identifier) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerCode", ((object)employeeByConstructionSite.BusinessPartner?.Code) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerName", ((object)employeeByConstructionSite.BusinessPartner?.Name) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerInternalCode", ((object)employeeByConstructionSite.BusinessPartner?.InternalCode) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@BusinessPartnerNameGer", ((object)employeeByConstructionSite.BusinessPartner?.NameGer) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ConstructionSiteId", ((object)employeeByConstructionSite.ConstructionSite?.Id) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ConstructionSiteIdentifier", ((object)employeeByConstructionSite.ConstructionSite?.Identifier) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ConstructionSiteCode", ((object)employeeByConstructionSite.ConstructionSite?.Code) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@ConstructionSiteName", ((object)employeeByConstructionSite.ConstructionSite?.Name) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@IsSynced", employeeByConstructionSite.IsSynced);
            insertCommand.Parameters.AddWithValue("@UpdatedAt", ((object)employeeByConstructionSite.UpdatedAt) ?? DBNull.Value);
            insertCommand.Parameters.AddWithValue("@CreatedById", MainWindow.CurrentUser.Id);
            insertCommand.Parameters.AddWithValue("@CreatedByName", MainWindow.CurrentUser.FirstName + " " + MainWindow.CurrentUser.LastName);
            insertCommand.Parameters.AddWithValue("@CompanyId", MainWindow.CurrentCompany.Id);
            insertCommand.Parameters.AddWithValue("@CompanyName", MainWindow.CurrentCompany.CompanyName);

            return(insertCommand);
        }
Пример #2
0
        public EmployeeByConstructionSiteResponse Create(EmployeeByConstructionSiteViewModel employeeByConstructionSite)
        {
            EmployeeByConstructionSiteResponse response = new EmployeeByConstructionSiteResponse();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();

                SqliteCommand insertCommand = db.CreateCommand();
                insertCommand.CommandText = SqlCommandInsertPart;

                try
                {
                    insertCommand = AddCreateParameters(insertCommand, employeeByConstructionSite);
                    insertCommand.ExecuteNonQuery();
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    return(response);
                }
                db.Close();

                response.Success = true;
                return(response);
            }
        }
Пример #3
0
        public static EmployeeByConstructionSiteViewModel ConvertToEmployeeByConstructionSiteViewModelLite(this EmployeeByConstructionSite employeeByConstructionSite)
        {
            EmployeeByConstructionSiteViewModel remedyViewModel = new EmployeeByConstructionSiteViewModel()
            {
                Id         = employeeByConstructionSite.Id,
                Identifier = employeeByConstructionSite.Identifier,

                Code = employeeByConstructionSite.Code,

                StartDate   = employeeByConstructionSite.StartDate,
                EndDate     = employeeByConstructionSite.EndDate,
                RealEndDate = employeeByConstructionSite.RealEndDate,

                EmployeeCount        = employeeByConstructionSite.EmployeeCount,
                BusinessPartnerCount = employeeByConstructionSite.BusinessPartnerCount,

                IsActive = employeeByConstructionSite.Active,

                UpdatedAt = employeeByConstructionSite.UpdatedAt,
                CreatedAt = employeeByConstructionSite.CreatedAt
            };


            return(remedyViewModel);
        }
Пример #4
0
        public static EmployeeByConstructionSite ConvertToEmployeeByConstructionSite(this EmployeeByConstructionSiteViewModel employeeByConstructionSiteViewModel)
        {
            EmployeeByConstructionSite employeeByConstructionSite = new EmployeeByConstructionSite()
            {
                Id         = employeeByConstructionSiteViewModel.Id,
                Identifier = employeeByConstructionSiteViewModel.Identifier,

                Code        = employeeByConstructionSiteViewModel.Code,
                StartDate   = employeeByConstructionSiteViewModel.StartDate,
                EndDate     = employeeByConstructionSiteViewModel.EndDate,
                RealEndDate = employeeByConstructionSiteViewModel.RealEndDate,

                EmployeeId           = employeeByConstructionSiteViewModel.Employee?.Id ?? null,
                EmployeeCount        = employeeByConstructionSiteViewModel.EmployeeCount,
                BusinessPartnerId    = employeeByConstructionSiteViewModel.BusinessPartner?.Id ?? null,
                BusinessPartnerCount = employeeByConstructionSiteViewModel.BusinessPartnerCount,
                ConstructionSiteId   = employeeByConstructionSiteViewModel.ConstructionSite?.Id ?? null,

                CreatedById = employeeByConstructionSiteViewModel.CreatedBy?.Id ?? null,
                CompanyId   = employeeByConstructionSiteViewModel.Company?.Id ?? null,

                CreatedAt = employeeByConstructionSiteViewModel.CreatedAt,
                UpdatedAt = employeeByConstructionSiteViewModel.UpdatedAt
            };

            return(employeeByConstructionSite);
        }
Пример #5
0
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            #region Validation

            if (CurrentEmployeeNotOnConstructionSite == null)
            {
                MainWindow.WarningMessage = ((string)Application.Current.FindResource("Obavezno_poljeDvotačka_Radnik_bez_gradilišta"));
                return;
            }

            #endregion

            Thread th = new Thread(() =>
            {
                EmployeeByConstructionSiteViewModel employeeByConstructionSite = new EmployeeByConstructionSiteViewModel()
                {
                    Identifier       = Guid.NewGuid(),
                    Employee         = CurrentEmployeeNotOnConstructionSite,
                    ConstructionSite = CurrentConstructionSite,
                    BusinessPartner  = CurrentBusinessPartner,
                    StartDate        = CurrentEmployeeNotOnConstructionSite.ContractStartDate,
                    EndDate          = CurrentEmployeeNotOnConstructionSite.ContractEndDate,
                    Company          = new CompanyViewModel()
                    {
                        Id = MainWindow.CurrentCompanyId
                    },
                    CreatedBy = new UserViewModel()
                    {
                        Id = MainWindow.CurrentUserId
                    }
                };

                EmployeeByConstructionSiteResponse response = new EmployeeByConstructionSiteSQLiteRepository().Create(employeeByConstructionSite);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Greška_kod_lokalnog_čuvanjaUzvičnik"));
                    return;
                }

                response = employeeByConstructionSiteService.Create(employeeByConstructionSite);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Podaci_su_sačuvani_u_lokaluUzvičnikTačka_Greška_kod_čuvanja_na_serveruUzvičnik"));
                    return;
                }

                MainWindow.SuccessMessage = ((string)Application.Current.FindResource("Podaci_su_uspešno_unetiUzvičnik"));

                DisplayEmployeesNotOnConstructionSiteData();
                DisplayEmployeesOnConstructionSiteData();
            });
            th.IsBackground = true;
            th.Start();
        }
Пример #6
0
        public EmployeeByConstructionSiteResponse Delete(EmployeeByConstructionSiteViewModel employeeByConstructionSite)
        {
            EmployeeByConstructionSiteResponse response = new EmployeeByConstructionSiteResponse();

            try
            {
                response = WpfApiHandler.SendToApi <EmployeeByConstructionSiteViewModel, EmployeeByConstructionSiteResponse>(employeeByConstructionSite, "Delete");
            }
            catch (Exception ex)
            {
                response.EmployeeByConstructionSite = new EmployeeByConstructionSiteViewModel();
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
        public EmployeeByConstructionSiteResponse Create(EmployeeByConstructionSiteViewModel re)
        {
            EmployeeByConstructionSiteResponse response = new EmployeeByConstructionSiteResponse();

            try
            {
                ConstructionSite constructionSite = unitOfWork.GetConstructionSiteRepository().GetConstructionSite(re.ConstructionSite.Id);

                Employee employee = unitOfWork.GetEmployeeRepository().GetEmployeeEntity(re.Employee.Id);
                employee.ConstructionSiteCode = constructionSite.InternalCode;
                employee.ConstructionSiteName = constructionSite.Name;
                employee.UpdatedAt            = DateTime.Now;

                EmployeeByConstructionSite addedEmployeeByConstructionSite = unitOfWork.GetEmployeeByConstructionSiteRepository().Create(re.ConvertToEmployeeByConstructionSite());

                EmployeeCard ec = new EmployeeCard()
                {
                    Identifier  = Guid.NewGuid(),
                    EmployeeId  = re.Employee.Id,
                    CardDate    = addedEmployeeByConstructionSite.StartDate,
                    Description = "Radnik " + employee?.Name + " " + employee?.SurName + " je krenuo da radi na gradilištu " + constructionSite?.Name + ". Radnik je na gradilištu od: " + re.StartDate.ToString("dd.MM.yyyy") + " do " + re.EndDate.ToString("dd.MM.yyyy"),
                    PlusMinus   = "+",
                    CreatedById = re.CreatedBy?.Id,
                    CompanyId   = re.Company?.Id,
                    CreatedAt   = DateTime.Now,
                    UpdatedAt   = DateTime.Now
                };
                unitOfWork.GetEmployeeCardRepository().Create(ec);

                unitOfWork.Save();

                response.EmployeeByConstructionSite = addedEmployeeByConstructionSite.ConvertToEmployeeByConstructionSiteViewModel();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.EmployeeByConstructionSite = new EmployeeByConstructionSiteViewModel();
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
Пример #8
0
        public EmployeeByConstructionSiteListResponse GetByEmployee(int companyId, Guid EmployeeIdentifier)
        {
            EmployeeByConstructionSiteListResponse     response = new EmployeeByConstructionSiteListResponse();
            List <EmployeeByConstructionSiteViewModel> EmployeeByConstructionSites = new List <EmployeeByConstructionSiteViewModel>();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();
                try
                {
                    SqliteCommand selectCommand = new SqliteCommand(
                        SqlCommandSelectPart +
                        "FROM EmployeeByConstructionSites " +
                        "WHERE EmployeeIdentifier = @EmployeeIdentifier " +
                        "AND CompanyId = @CompanyId " +
                        "ORDER BY IsSynced, Id DESC;", db);

                    selectCommand.Parameters.AddWithValue("@EmployeeIdentifier", EmployeeIdentifier);
                    selectCommand.Parameters.AddWithValue("@CompanyId", companyId);

                    SqliteDataReader query = selectCommand.ExecuteReader();

                    while (query.Read())
                    {
                        EmployeeByConstructionSiteViewModel dbEntry = Read(query);
                        EmployeeByConstructionSites.Add(dbEntry);
                    }
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    response.EmployeeByConstructionSites = new List <EmployeeByConstructionSiteViewModel>();
                    return(response);
                }
                db.Close();
            }
            response.Success = true;
            response.EmployeeByConstructionSites = EmployeeByConstructionSites;
            return(response);
        }
        public EmployeeByConstructionSiteResponse Delete(EmployeeByConstructionSiteViewModel re)
        {
            EmployeeByConstructionSiteResponse response = new EmployeeByConstructionSiteResponse();

            try
            {
                EmployeeByConstructionSite deletedEmployeeByConstructionSite = unitOfWork.GetEmployeeByConstructionSiteRepository().Delete(re.ConvertToEmployeeByConstructionSite());

                Employee         employee         = unitOfWork.GetEmployeeRepository().GetEmployeeEntity((int)deletedEmployeeByConstructionSite.EmployeeId);
                ConstructionSite constructionSite = unitOfWork.GetConstructionSiteRepository().GetConstructionSite((int)deletedEmployeeByConstructionSite.ConstructionSiteId);
                employee.ConstructionSiteCode = "";
                employee.ConstructionSiteName = "";
                employee.UpdatedAt            = DateTime.Now;

                EmployeeCard ec = new EmployeeCard()
                {
                    Identifier  = Guid.NewGuid(),
                    EmployeeId  = deletedEmployeeByConstructionSite.Employee.Id,
                    CardDate    = (DateTime)deletedEmployeeByConstructionSite.RealEndDate,
                    Description = "Radnik " + employee?.Name + " " + employee.SurName + " je prestao da radi na gradilištu " + constructionSite?.Name + ". Prestanak je od: " + ((DateTime)deletedEmployeeByConstructionSite.RealEndDate).ToString("dd.MM.yyyy"),
                    CreatedById = deletedEmployeeByConstructionSite.CreatedById,
                    PlusMinus   = "-",
                    CompanyId   = deletedEmployeeByConstructionSite.CompanyId,
                    CreatedAt   = DateTime.Now,
                    UpdatedAt   = DateTime.Now
                };
                unitOfWork.GetEmployeeCardRepository().Create(ec);

                unitOfWork.Save();

                response.EmployeeByConstructionSite = deletedEmployeeByConstructionSite.ConvertToEmployeeByConstructionSiteViewModel();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.EmployeeByConstructionSite = new EmployeeByConstructionSiteViewModel();
                response.Success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
        public JsonResult Delete([FromBody] EmployeeByConstructionSiteViewModel employeeByConstructionSite)
        {
            EmployeeByConstructionSiteResponse response = new EmployeeByConstructionSiteResponse();

            try
            {
                response = this.employeeByConstructionSiteService.Delete(employeeByConstructionSite);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }

            return(Json(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting = Newtonsoft.Json.Formatting.Indented
            }));
        }
Пример #11
0
        private EmployeeByConstructionSiteViewModel Read(SqliteDataReader query)
        {
            int counter = 0;
            EmployeeByConstructionSiteViewModel dbEntry = new EmployeeByConstructionSiteViewModel();

            dbEntry.Id               = SQLiteHelper.GetInt(query, ref counter);
            dbEntry.Identifier       = SQLiteHelper.GetGuid(query, ref counter);
            dbEntry.Code             = SQLiteHelper.GetString(query, ref counter);
            dbEntry.StartDate        = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.EndDate          = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.RealEndDate      = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.Employee         = SQLiteHelper.GetEmployee(query, ref counter);
            dbEntry.BusinessPartner  = SQLiteHelper.GetBusinessPartner(query, ref counter);
            dbEntry.ConstructionSite = SQLiteHelper.GetConstructionSite(query, ref counter);
            dbEntry.IsSynced         = SQLiteHelper.GetBoolean(query, ref counter);
            dbEntry.UpdatedAt        = SQLiteHelper.GetDateTime(query, ref counter);
            dbEntry.CreatedBy        = SQLiteHelper.GetCreatedBy(query, ref counter);
            dbEntry.Company          = SQLiteHelper.GetCompany(query, ref counter);

            return(dbEntry);
        }
Пример #12
0
        public EmployeeByConstructionSiteListResponse GetByConstructionSiteAndBusinessPartner(Guid constructionSiteIdentifier, Guid?businessPartnerIdentifier, int currentPage = 1, int itemsPerPage = 50)
        {
            EmployeeByConstructionSiteListResponse     response = new EmployeeByConstructionSiteListResponse();
            List <EmployeeByConstructionSiteViewModel> employeeByConstructionSites = new List <EmployeeByConstructionSiteViewModel>();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();
                try
                {
                    SqliteCommand selectCommand = new SqliteCommand(
                        "SELECT ecs.ServerId, ecs.Identifier, ecs.Code, ecs.StartDate, ecs.EndDate, ecs.RealEndDate, " +
                        "ecs.EmployeeId, ecs.EmployeeIdentifier, ecs.EmployeeCode, ecs.EmployeeName, ecs.EmployeeInternalCode, e.SurName, e.Passport,  " +
                        "ecs.BusinessPartnerId, ecs.BusinessPartnerIdentifier, ecs.BusinessPartnerCode, ecs.BusinessPartnerName, ecs.BusinessPartnerInternalCode, ecs.BusinessPartnerNameGer,  " +
                        "ecs.ConstructionSiteId, ecs.ConstructionSiteIdentifier, ecs.ConstructionSiteCode, ecs.ConstructionSiteName,  " +
                        "ecs.IsSynced, ecs.UpdatedAt, ecs.CreatedById, ecs.CreatedByName, ecs.CompanyId, ecs.CompanyName " +
                        "FROM EmployeeByConstructionSites ecs, Employees e " +
                        "WHERE ecs.ConstructionSiteIdentifier = @ConstructionSiteIdentifier " +
                        "AND ecs.EmployeeIdentifier = e.Identifier " +
                        "AND (@BusinessPartnerIdentifier IS NULL OR ecs.BusinessPartnerIdentifier = @BusinessPartnerIdentifier) " +
                        "ORDER BY ecs.ServerId " +
                        "LIMIT @ItemsPerPage OFFSET @Offset;", db);

                    selectCommand.Parameters.AddWithValue("@ConstructionSiteIdentifier", constructionSiteIdentifier);
                    selectCommand.Parameters.AddWithValue("@BusinessPartnerIdentifier", ((object)businessPartnerIdentifier) != null ? (Guid)businessPartnerIdentifier : (object)DBNull.Value);
                    selectCommand.Parameters.AddWithValue("@ItemsPerPage", itemsPerPage);
                    selectCommand.Parameters.AddWithValue("@Offset", (currentPage - 1) * itemsPerPage);

                    SqliteDataReader query = selectCommand.ExecuteReader();

                    while (query.Read())
                    {
                        int counter = 0;
                        EmployeeByConstructionSiteViewModel dbEntry = new EmployeeByConstructionSiteViewModel();
                        dbEntry.Id               = SQLiteHelper.GetInt(query, ref counter);
                        dbEntry.Identifier       = SQLiteHelper.GetGuid(query, ref counter);
                        dbEntry.Code             = SQLiteHelper.GetString(query, ref counter);
                        dbEntry.StartDate        = SQLiteHelper.GetDateTime(query, ref counter);
                        dbEntry.EndDate          = SQLiteHelper.GetDateTime(query, ref counter);
                        dbEntry.RealEndDate      = SQLiteHelper.GetDateTime(query, ref counter);
                        dbEntry.Employee         = SQLiteHelper.GetEmployeeFull(query, ref counter);
                        dbEntry.BusinessPartner  = SQLiteHelper.GetBusinessPartner(query, ref counter);
                        dbEntry.ConstructionSite = SQLiteHelper.GetConstructionSite(query, ref counter);
                        dbEntry.IsSynced         = SQLiteHelper.GetBoolean(query, ref counter);
                        dbEntry.UpdatedAt        = SQLiteHelper.GetDateTime(query, ref counter);
                        dbEntry.CreatedBy        = SQLiteHelper.GetCreatedBy(query, ref counter);
                        dbEntry.Company          = SQLiteHelper.GetCompany(query, ref counter);

                        employeeByConstructionSites.Add(dbEntry);
                    }


                    selectCommand = new SqliteCommand(
                        "SELECT COUNT(*) " +
                        "FROM EmployeeByConstructionSites ecs, Employees e " +
                        "WHERE ecs.ConstructionSiteIdentifier = @ConstructionSiteIdentifier " +
                        "AND ecs.EmployeeIdentifier = e.Identifier " +
                        "AND (@BusinessPartnerIdentifier IS NULL OR ecs.BusinessPartnerIdentifier = @BusinessPartnerIdentifier) " +
                        "ORDER BY ecs.ServerId;", db);

                    selectCommand.Parameters.AddWithValue("@ConstructionSiteIdentifier", constructionSiteIdentifier);
                    selectCommand.Parameters.AddWithValue("@BusinessPartnerIdentifier", ((object)businessPartnerIdentifier) != null ? (Guid)businessPartnerIdentifier : (object)DBNull.Value);

                    query = selectCommand.ExecuteReader();

                    if (query.Read())
                    {
                        response.TotalItems = query.GetInt32(0);
                    }
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    response.EmployeeByConstructionSites = new List <EmployeeByConstructionSiteViewModel>();
                    return(response);
                }
                db.Close();
            }
            response.Success = true;
            response.EmployeeByConstructionSites = employeeByConstructionSites;
            return(response);
        }