private void SavePosition() { if (this.IsPositionDataValid()) { int selectedPositionId = 0; bool isFullySaved = true; selectedPosition.AgreementId = (int)gridExPositions.CurrentRow.Cells["umowaId"].Value; selectedPosition.KTM = txtKTM.Text; selectedPosition.CurrencyId = (int)cboCurrency.SelectedValue; selectedPosition.Descriptor = txtDescriptor.Text; selectedPosition.FreeCopies = (int)numFreeCopies.Value; selectedPosition.ExpirationDate = dtExpiration.Text == " " ? (DateTime?)null : dtExpiration.Value; selectedPosition.IsChargedFromFirstSale = chkFirstSale.Checked; selectedPosition.IsIndifinitePeriod = chkIndefinitePeriod.Checked; selectedPosition.Comments = txtPositionComments.Text; selectedPosition.ModelId = (int)cboSettlementModel.SelectedValue; selectedPosition.ModelPercent = numModelPercent.Visible ? numModelPercent.Value : 0; selectedPosition.ModelFixedPrice = numModelFixedPrice.Visible ? numModelFixedPrice.Value : 0; selectedPosition.BillingPeriod = (int)cboBillingPeriod.SelectedValue; selectedPosition.BillingPeriodStart = dtBillingPeriodFrom.Value; selectedPosition.BillingPeriodEnd = dtBillingPeriodTo.Text == " " ? (DateTime?)null : dtBillingPeriodTo.Value; try { // update podstawowych danych zaznaczonej pozycji AgreementPositionsRepo.InsertUpdate(this.selectedPosition); selectedPositionId = selectedPosition.Id; // update grida z programi dla zaznaczonej pozycji this.gridThresholdsRepo.Update(); //update grida z produktami dla zaznaczonej pozycji this.gridRelatedProductsRepo.Update(); } catch (Exception ex) { MessageBox.Show("Nie udało się zapisać bieżącej pozycji.\r\nSpróbuj ponownie", "Zapis pozycji", MessageBoxButtons.OK, MessageBoxIcon.Error); isFullySaved = false; } if (isFullySaved) { this.SetPositionChangesPending(false); if (this.isPositionAddPending) { this.isPositionAddPending = false; } this.LoadData(); this.SelectPositionById(selectedPositionId); } } }
private void BindProduct() { if (this.IsPositionSelected()) { string ktm = gridExProductsAndArticles.CurrentRow.Cells["KTM"].Value.ToString(); string descriptor = gridExProductsAndArticles.CurrentRow.Cells["Deskryptor"].Value.ToString(); string positionKtm = gridExAgreementsListGrouped.CurrentRow.Cells["KTM"].Value.ToString(); string positionDescriptor = gridExAgreementsListGrouped.CurrentRow.Cells["Deskryptor"].Value.ToString(); int agreementId = (int)gridExAgreementsListGrouped.CurrentRow.Cells["IdUmowy"].Value; int agreementPositionId = (int)gridExAgreementsListGrouped.CurrentRow.Cells["PozycjaId"].Value; if (MessageBox.Show(string.Format("Do pozycji:\r\n\r\nKTM:\t\t{0}\r\nDeskryptor:\t{1}\r\n\r\nna umowie {2} zostanie dopisany produkt powiązany:\r\n\r\nKTM:\t\t{3}\r\nDeskryptor:\t{4}", positionKtm, positionDescriptor, agreementId.ToString(), ktm, descriptor), "Przypisanie", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK) { try { RelatedProduct relatedProduct = new RelatedProduct() { AgreementPositionId = agreementPositionId, KTM = ktm, Descriptor = descriptor }; AgreementPositionsRepo.InsertRelatedProduct(relatedProduct); MessageBox.Show("Produkt został poprawnie powiązany.", "Przypisanie", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Nie udało się wykonać powiązania.\r\nOdśwież listę i spróbuj ponownie.", "Przypisanie", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.LoadData(); } } else { MessageBox.Show("Ta opcja wymaga zaznaczenia jednej pozycji umowy.", "Przypisanie", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
// GRIDS #region private void gridExPositions_SelectionChanged(object sender, EventArgs e) { // IF SELECTED ROW if (!this.isLoadingData && gridExPositions.CurrentRow != null && gridExPositions.CurrentRow.RowIndex > -1) { if (this.selectedPosition.Id != (int)gridExPositions.CurrentRow.Cells["id"].Value && !this.isCancellingSelection) { if (this.isPositionSavePending && !this.isPositionAddPending) { if (MessageBox.Show("Masz niezapisane zmiany na pozycji, które utracisz przechodząc do innej.\r\nKliknij OK, aby przejść dalej lub Anuluj, aby wrócić i zapisać zmiany.", "Uwaga", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { int positionId = (int)gridExPositions.CurrentRow.Cells["id"].Value; this.selectedPosition = AgreementPositionsRepo.GetByID(positionId); this.LoadPositionDetails(); } else { this.isCancellingSelection = true; this.SelectPositionById(this.selectedPosition.Id); this.isCancellingSelection = false; } } else { if (this.isPositionAddPending) { if (MessageBox.Show("Nowa pozycja nie została zapisana, utracisz ją jeśli przejdziesz dalej.\r\nKliknij OK, aby przejść dalej lub Anuluj, aby wrócić i zapisać zmiany.", "Uwaga", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { this.gridPositionsRepo.DeleteLastRow(); int positionId = (int)gridExPositions.CurrentRow.Cells["id"].Value; this.selectedPosition = AgreementPositionsRepo.GetByID(positionId); this.LoadPositionDetails(); this.isPositionAddPending = false; } else { this.isCancellingSelection = true; gridExPositions.MoveLast(); this.isCancellingSelection = false; } } else { int positionId = (int)gridExPositions.CurrentRow.Cells["id"].Value; this.selectedPosition = AgreementPositionsRepo.GetByID(positionId); this.LoadPositionDetails(); } } } } else { if (gridExPositions.CurrentRow != null && gridExPositions.CurrentRow.RowIndex > -1) { int positionId = (int)gridExPositions.CurrentRow.Cells["id"].Value; this.selectedPosition = AgreementPositionsRepo.GetByID(positionId); this.LoadPositionDetails(); } } }