private bool dgvActsGoods_Restore() { dgvActsGoods.GetGridState(); dgvActsGoods.DataSource = null; if (dgvActs.Rows.Count == 0 || !oActCur.ID.HasValue || (dgvActs.CurrentRow != null && dgvActs.IsStatusRow(dgvActs.CurrentRow.Index))) { return(true); } oActList.FillTableActsGoods((int)oActCur.ID); if (chkShowSelectedGoodsOnly.Enabled && chkShowSelectedGoodsOnly.Checked && ucSelectRecordIDForm_Packings.IsSelectedExist) { DataTable dt = CopyTable(oActList.TableActsGoods, "dt", "PackingID in (" + RFMPublic.RFMUtilities.NormalizeList(ucSelectRecordIDForm_Packings.GetIdString()) + ")", "GoodAlias, ID"); oActList.TableActsGoods.Clear(); oActList.TableActsGoods.Merge(dt); } dgvActsGoods.Restore(oActList.TableActsGoods); return(oActList.ErrorNumber == 0); }
private bool dgvActGoods_Restore() { oAct.ClearError(); oAct.ID = nActID; oAct.FillData(); if (oAct.ErrorNumber == 0) { if (nActID != 0) { oAct.FillTableActsGoods(); if (oAct.ErrorNumber == 0) { oAct.TableActsGoods.PrimaryKey = null; oAct.TableActsGoods.Columns["ID"].Unique = false; oAct.TableActsGoods.Columns["ID"].AllowDBNull = true; oAct.TableActsGoods.Columns["ActGoodID"].Unique = false; oAct.TableActsGoods.Columns["ActGoodID"].AllowDBNull = true; } } else { oAct.FillTableActsGoodsFromPut(nInputID, nOutputID); if (oAct.ErrorNumber == 0) { oAct.TableActsGoods.PrimaryKey = null; oAct.TableActsGoods.Columns["ID"].Unique = false; oAct.TableActsGoods.Columns["ID"].AllowDBNull = true; oAct.TableActsGoods.Columns["ActGoodID"].Unique = false; oAct.TableActsGoods.Columns["ActGoodID"].AllowDBNull = true; } if (dt != null) { oAct.TableActsGoods.Clear(); oAct.TableActsGoods.Merge(dt); } } decimal nQnt = 0; decimal nBox = 0; foreach (DataRow droRow in oAct.TableActsGoods.Rows) { nQnt += (decimal)droRow["QntConfirmed"]; nBox += (decimal)droRow["BoxConfirmed"]; } dgvActGoods.GetGridState(); dgvActGoods.Restore(oAct.TableActsGoods); lblTotalQnt.Text = nQnt.ToString("### ### ##0").Trim(); lblTotalBox.Text = nBox.ToString("# ### ##0.0").Trim(); } return(oAct.ErrorNumber == 0); }
private void btnSave_Click(object sender, EventArgs e) { if (cboOwner.SelectedIndex < 0 || cboOwner.SelectedValue == null) { RFMMessage.MessageBoxError("Не указан владелец товара..."); cboOwner.Select(); return; } if (cboGoodsState.SelectedIndex < 0 || cboGoodsState.SelectedValue == null) { RFMMessage.MessageBoxError("Не указано состояние товара..."); cboGoodsState.Select(); return; } bool bActFound = false, bReturnFound = false; foreach (DataRow dr in dt.Rows) { if ((decimal)dr["ActQnt"] != 0) { bActFound = true; } if ((decimal)dr["ReturnQnt"] > 0) { bReturnFound = true; } if (bActFound && bReturnFound) { break; } } if (!bActFound && !bReturnFound) { RFMMessage.MessageBoxError("Ни для одного товара не введено количество ни для актирования, ни для возврата..."); return; } // ВОЗВРАТ if (bReturnFound) { if (RFMMessage.MessageBoxYesNo("Сохранить возврат для рейса?") == DialogResult.Yes) { // заполним таблицу товаров в возврате oTripReturn.FillTableTripsReturnsGoods(0); if (oTripReturn.ErrorNumber == 0 && oTripReturn.TableTripsReturnsGoods != null) { oTripReturn.TableTripsReturnsGoods.PrimaryKey = null; oTripReturn.TableTripsReturnsGoods.Columns["ID"].AllowDBNull = true; oTripReturn.TableTripsReturnsGoods.Columns["ID"].Unique = false; oTripReturn.TableTripsReturnsGoods.PrimaryKey = new DataColumn[] { oTripReturn.TableTripsReturnsGoods.Columns["PackingID"] }; oTripReturn.TableTripsReturnsGoods.Columns["PackingID"].DefaultValue = 0; foreach (DataRow r in dt.Rows) { if ((decimal)r["ReturnQnt"] > 0) { DataRow rg = oTripReturn.TableTripsReturnsGoods.Rows.Find((int)r["PackingID"]); if (rg == null) { rg = oTripReturn.TableTripsReturnsGoods.Rows.Add(); rg["PackingID"] = (int)r["PackingID"]; rg["QntWished"] = (decimal)r["ReturnQnt"]; } else { rg["QntWished"] = (decimal)rg["QntWished"] + (decimal)r["ReturnQnt"]; } } } } oTripReturn.ClearError(); // остальные параметры возврата oTripReturn.ID = null; oTripReturn.DateReturn = dtpDate.Value.Date; oTripReturn.GoodStateID = (int)cboGoodsState.SelectedValue; oTripReturn.OwnerID = (int)cboOwner.SelectedValue; oTripReturn.Note = txtReturnNote.Text.Trim(); oTripReturn.AutoCreated = true; oTripReturn.TripID = nTripID; oTripReturn.HostID = nHostID; // сохраняем возврат WaitOn(this); oTripReturn.ClearError(); bool bResult = oTripReturn.Save(((RFMFormMain)Application.OpenForms[0]).UserID); WaitOff(this); if (bResult && oTripReturn.ErrorNumber == 0 && oTripReturn.ID.HasValue) { // готов к передаче в WMS if (chkReturnReadyForWMS.Checked) { oTripReturn.SetReadyForWMS((int)oTripReturn.ID); if (oTripReturn.ErrorNumber == 0) { // печать LogService.TripReturnBill_Print(oTripReturn, this); } } } } } // АКТ(Ы) if (bActFound) { // посчитать, сколько получается актов для разных заданий на расход DataView dv = new DataView(dt, "ActQnt <> 0", "", DataViewRowState.CurrentRows); // таблица кодов заданий на расход, к которым можно приделать акт DataTable dtOutput = dv.ToTable(true, "OutputID"); // Не задаем никаких вопросов if (1 == 1) //if (RFMMessage.MessageBoxYesNo("Сохранить " + RFMUtilities.Declen(dtOutput.Rows.Count, "акт", "акта", "актов") + " для заданий на расход, прикрепленных к рейсу?") == DialogResult.Yes) { // идем по каждому расходу foreach (DataRow o in dtOutput.Rows) { // расход, к которому будет привязан акт int nOutputID = 0; if (!Convert.IsDBNull(o["OutputID"]) && o["OutputID"] != null && (int)o["OutputID"] > 0) { nOutputID = (int)o["OutputID"]; } else { // выберем первый попавшийся из расходов oTrip.FillTableOutputsInTrip(); if (oTrip.ErrorNumber == 0 && oTrip.TableOutputsInTrip != null && oTrip.TableOutputsInTrip.Rows.Count > 0) { nOutputID = (int)oTrip.TableOutputsInTrip.Rows[0]["ID"]; } } // заполним таблицу товаров в акте - именно для этого расхода oAct.FillTableActsGoods(0); if (oAct.ErrorNumber == 0 && oAct.TableActsGoods != null) { oAct.TableActsGoods.PrimaryKey = null; oAct.TableActsGoods.Columns["ID"].AllowDBNull = true; oAct.TableActsGoods.Columns["ID"].Unique = false; foreach (DataRow r in dt.Rows) { // Изменение от 15.05.2017 Александров // Убрана излишняя проверка, // не давала создавать акты при откате оператором ранее подтвержденного расходного документа /*if ((nOutputID == 0 && (Convert.IsDBNull(r["OutputID"]) || r["OutputID"] == null || (int)r["OutputID"] <= 0)) || || (nOutputID != 0 && (!Convert.IsDBNull(r["OutputID"]) && r["OutputID"] != null) && (int)r["OutputID"] == nOutputID)) || {*/ if ((decimal)r["ActQnt"] != 0) { DataRow ag = oAct.TableActsGoods.Rows.Add(); ag["PackingID"] = (int)r["PackingID"]; ag["QntConfirmed"] = (decimal)r["ActQnt"]; } /*}*/ } } oAct.ClearError(); // остальные параметры акта oAct.ID = null; oAct.DateAct = dtpDate.Value.Date; oAct.GoodStateID = (int)cboGoodsState.SelectedValue; oAct.OwnerID = (int)cboOwner.SelectedValue; oAct.Note = txtActNote.Text.Trim(); oAct.TripID = nTripID; if (nOutputID > 0) { oAct.OutputID = nOutputID; } else { oAct.OutputID = null; } oAct.InputID = null; oAct.HostID = nHostID; // сохраняем акт WaitOn(this); oAct.ClearError(); bool bResult = oAct.Save(((RFMFormMain)Application.OpenForms[0]).UserID); WaitOff(this); if (bResult && oAct.ErrorNumber == 0 && oAct.ID.HasValue) { // готов к передаче в WMS if (chkActReadyForWMS.Checked) { //oAct.SetReadyForWMS((int)oAct.ID); // он уже Confirmed } } } } } DialogResult = DialogResult.Yes; Dispose(); }