public void Recalculate(DateTime StartDate) { DocumentsLogic documents = new DocumentsLogic(manager); DocumentDetailsLogic detailsLogic = new DocumentDetailsLogic(manager); List <WareDocumentDetail> details = detailsLogic.GetAll(StartDate); foreach (WareDocumentDetail detail in details) { if (detail.WareDocument.FromStructureObjectID != null) { this.UpdateCurrentRemainByDocumentDetail(StartDate, detail.WareID, detail.WareDocument.FromStructureObjectID, null); } if (detail.WareDocument.ToStructureObjectD != null) { this.UpdateCurrentRemainByDocumentDetail(StartDate, detail.WareID, detail.WareDocument.ToStructureObjectD, null); } } }
/// <summary> /// Конструктор форми створення і редагування документу /// </summary> /// <param name="_mode">режим - new або edit</param> /// <param name="_id">ыдентифыкатор документу для режиму редагування</param> /// <param name="_CashRegister">підключений принтер чеків(якщо немає то null)</param> public DocumentData(string _mode, int?_id, CashRegister _CashRegister) { InitializeComponent(); cashRegister = _CashRegister; CompasLogger.Add(String.Format("Start opening doc form"), CompasLogger.Level.Info); manager = new ContextManager(); mode = _mode; id = _id; DetailsGV.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; FillPayments(); documentDetailsNew = new List <WareDocumentDetail>(); documentDetailsOld = new List <WareDocumentDetail>(); documentDetailsDeleted = new List <WareDocumentDetail>(); employeesDetailsView = new List <StaffEmployeeView>(); documentsLogic = new DocumentsLogic(manager); documentDetailsLogic = new DocumentDetailsLogic(manager); if (mode == "new") { //створюємо документ в памяті document = documentsLogic.CreateEmpty(); } if (mode == "edit") { //витягуємо документ в память document = documentsLogic.Get(Convert.ToInt32(id)); //витягуємо детальну інформацію по документу documentDetailsOld = documentDetailsLogic.GetAll(id); documentDetailsView = documentDetailsOld; FillEmployeeDetails(); } CompasLogger.Add(String.Format("p1"), CompasLogger.Level.Info); Fill(); CompasLogger.Add(String.Format("End opening doc form"), CompasLogger.Level.Info); }
/// <summary> /// Конструктор форми створення і редагування документу /// </summary> /// <param name="_mode">режим - new або edit</param> /// <param name="_id">ыдентифыкатор документу для режиму редагування</param> /// <param name="_CashRegister">підключений принтер чеків(якщо немає то null)</param> public DocumentData(string _mode, int? _id, CashRegister _CashRegister) { InitializeComponent(); cashRegister = _CashRegister; CompasLogger.Add(String.Format("Start opening doc form"), CompasLogger.Level.Info); manager = new ContextManager(); mode = _mode; id = _id; DetailsGV.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; FillPayments(); documentDetailsNew = new List<WareDocumentDetail>(); documentDetailsOld = new List<WareDocumentDetail>(); documentDetailsDeleted = new List<WareDocumentDetail>(); employeesDetailsView = new List<StaffEmployeeView>(); documentsLogic = new DocumentsLogic(manager); documentDetailsLogic = new DocumentDetailsLogic(manager); if (mode == "new") { //створюємо документ в памяті document = documentsLogic.CreateEmpty(); } if (mode == "edit") { //витягуємо документ в память document = documentsLogic.Get(Convert.ToInt32(id)); //витягуємо детальну інформацію по документу documentDetailsOld = documentDetailsLogic.GetAll(id); documentDetailsView = documentDetailsOld; FillEmployeeDetails(); } CompasLogger.Add(String.Format("p1"), CompasLogger.Level.Info); Fill(); CompasLogger.Add(String.Format("End opening doc form"), CompasLogger.Level.Info); }
/// <summary> /// Заповнюємо перелік позицій документу /// </summary> private void FillDetails() { CompasLogger.Add(String.Format("FillDetails1"), CompasLogger.Level.Info); int? selectedIndex = null; if (DetailsGV.SelectedRows.Count > 0) { selectedIndex = DetailsGV.SelectedRows[0].Index; } DocumentDetailsLogic detailsLogic = new DocumentDetailsLogic(manager); //documentDetailsView = documentDetailsNew; if (mode == "edit") { if (documentDetailsView.Count == 0) { documentDetailsView = detailsLogic.GetAll(id); } } if ((mode == "new") & (documentDetailsView == null)) documentDetailsView = new List<WareDocumentDetail>(); if (selectedIndex != null) DetailsGV.Rows[Convert.ToInt32(selectedIndex)].Selected = true; CompasLogger.Add(String.Format("FillDetails2"), CompasLogger.Level.Info); //foreach (WareDocumentDetail a in documentDetailsNew) //{ // documentDetailsView.Add(a); //} //documentDetailsNew.Clear(); //конвертуємо в список для перегляду і підраховуємо загальну суму документу //if (documentDetailsViewer == null) documentDetailsViewer = new List<DocumentDetailView>(); documentSum = 0; decimal documentDuration = 0; WareTimeLimitsLogic timeLimitsLogic = new WareTimeLimitsLogic(manager); if (documentDetailsView.Count > 0) { foreach (WareDocumentDetail detail in documentDetailsView.OrderBy(a => a.ID)) { //if(documentDetailsViewer.Contains( DocumentDetailView detailView = new DocumentDetailView(detail, manager); documentDetailsViewer.Add(detailView); documentSum = documentSum + Convert.ToDecimal(detail.EndPrice); WareTimeLimit timeLimit = timeLimitsLogic.GetByWareID(detail.WareID); if (timeLimit != null) { documentDuration = documentDuration + timeLimit.TimeLimit; } } } CompasLogger.Add(String.Format("FillDetails3"), CompasLogger.Level.Info); DurationL.Text = documentDuration.ToString("n2"); DocumentSumaL.Text = documentSum.ToString("n2"); DetailsGV.AutoGenerateColumns = false; DetailsGV.DataSource = documentDetailsViewer; if (DetailsGV.Rows.Count == 0) { if(DetailsGV.SelectedRows.Count >0) DetailsGV.SelectedRows[0].Selected = false; } //DetailsGV.Update(); CompasLogger.Add(String.Format("FillDetails4"), CompasLogger.Level.Info); }
/// <summary> /// Заповнюємо перелік позицій документу /// </summary> private void FillDetails() { CompasLogger.Add(String.Format("FillDetails1"), CompasLogger.Level.Info); int?selectedIndex = null; if (DetailsGV.SelectedRows.Count > 0) { selectedIndex = DetailsGV.SelectedRows[0].Index; } DocumentDetailsLogic detailsLogic = new DocumentDetailsLogic(manager); //documentDetailsView = documentDetailsNew; if (mode == "edit") { if (documentDetailsView.Count == 0) { documentDetailsView = detailsLogic.GetAll(id); } } if ((mode == "new") & (documentDetailsView == null)) { documentDetailsView = new List <WareDocumentDetail>(); } if (selectedIndex != null) { DetailsGV.Rows[Convert.ToInt32(selectedIndex)].Selected = true; } CompasLogger.Add(String.Format("FillDetails2"), CompasLogger.Level.Info); //foreach (WareDocumentDetail a in documentDetailsNew) //{ // documentDetailsView.Add(a); //} //documentDetailsNew.Clear(); //конвертуємо в список для перегляду і підраховуємо загальну суму документу //if (documentDetailsViewer == null) documentDetailsViewer = new List <DocumentDetailView>(); documentSum = 0; decimal documentDuration = 0; WareTimeLimitsLogic timeLimitsLogic = new WareTimeLimitsLogic(manager); if (documentDetailsView.Count > 0) { foreach (WareDocumentDetail detail in documentDetailsView.OrderBy(a => a.ID)) { //if(documentDetailsViewer.Contains( DocumentDetailView detailView = new DocumentDetailView(detail, manager); documentDetailsViewer.Add(detailView); documentSum = documentSum + Convert.ToDecimal(detail.EndPrice); WareTimeLimit timeLimit = timeLimitsLogic.GetByWareID(detail.WareID); if (timeLimit != null) { documentDuration = documentDuration + timeLimit.TimeLimit; } } } CompasLogger.Add(String.Format("FillDetails3"), CompasLogger.Level.Info); DurationL.Text = documentDuration.ToString("n2"); DocumentSumaL.Text = documentSum.ToString("n2"); DetailsGV.AutoGenerateColumns = false; DetailsGV.DataSource = documentDetailsViewer; if (DetailsGV.Rows.Count == 0) { if (DetailsGV.SelectedRows.Count > 0) { DetailsGV.SelectedRows[0].Selected = false; } } //DetailsGV.Update(); CompasLogger.Add(String.Format("FillDetails4"), CompasLogger.Level.Info); }