public frmFrames() { oFrameList = new Frame(); oFrameCur = new Frame(); if (oFrameList.ErrorNumber != 0 || oFrameCur.ErrorNumber != 0) { IsValid = false; } else { oGood = new Good(); oTrafficFrame = new TrafficFrame(); if (oGood.ErrorNumber != 0 || oTrafficFrame.ErrorNumber != 0) { IsValid = false; } } if (IsValid) { InitializeComponent(); } }
public frmTrafficsFramesEdit() { oTraffic = new TrafficFrame(); oFrame = new Frame(); oCellSource = new Cell(); oStoreZoneSource = new StoreZone(); oBufferCellSource = new Cell(); oCellTarget = new Cell(); oStoreZoneTarget = new StoreZone(); oBufferCellTarget = new Cell(); oUser = new User(); oDevice = new Device(); if (oTraffic.ErrorNumber != 0 || oFrame.ErrorNumber != 0 || oCellSource.ErrorNumber != 0 || oBufferCellSource.ErrorNumber != 0 || oStoreZoneSource.ErrorNumber != 0 || oCellTarget.ErrorNumber != 0 || oBufferCellTarget.ErrorNumber != 0 || oStoreZoneTarget.ErrorNumber != 0 || oUser.ErrorNumber != 0 || oDevice.ErrorNumber != 0) { IsValid = false; } if (IsValid) { InitializeComponent(); oTraffic.ID = 0; } }
public frmTrafficsFramesManual(int?nFrameID) { oTraffic = new TrafficFrame(); oFrame = new Frame(); oCellSource = new Cell(); oBufferCellSource = new Cell(); oStoreZoneSource = new StoreZone(); oCellTarget = new Cell(); oBufferCellTarget = new Cell(); oStoreZoneTarget = new StoreZone(); if (oTraffic.ErrorNumber != 0 || oFrame.ErrorNumber != 0 || oCellSource.ErrorNumber != 0 || oBufferCellSource.ErrorNumber != 0 || oStoreZoneSource.ErrorNumber != 0 || oCellTarget.ErrorNumber != 0 || oBufferCellTarget.ErrorNumber != 0 || oStoreZoneTarget.ErrorNumber != 0) { IsValid = false; } if (IsValid) { InitializeComponent(); oFrame.ID = nFrameID; } }
public frmTrafficsFramesForPickingCreate() { oTraffic = new TrafficFrame(); oFrame = new Frame(); oGood = new Good(); if (oTraffic.ErrorNumber != 0 || oFrame.ErrorNumber != 0 || oGood.ErrorNumber != 0) { IsValid = false; } if (IsValid) { oCell = new Cell(); oCellPicking = new Cell(); oCellOutput = new Cell(); if (oCell.ErrorNumber != 0 || oCellPicking.ErrorNumber != 0 || oCellOutput.ErrorNumber != 0) { IsValid = false; } } if (IsValid) { oOwner = new Partner(); oGoodState = new GoodState(); if (oOwner.ErrorNumber != 0 || oGoodState.ErrorNumber != 0) { IsValid = false; } } if (IsValid) { InitializeComponent(); } }
public frmReportTraffics() { InitializeComponent(); oTrafficFrame = new TrafficFrame(); oTrafficGood = new TrafficGood(); if (oTrafficFrame.ErrorNumber != 0 || oTrafficGood.ErrorNumber != 0) { IsValid = false; } else { oCellSource = new Cell(); oCellTarget = new Cell(); if (oCellSource.ErrorNumber != 0 || oCellTarget.ErrorNumber != 0) { IsValid = false; } } }
private void btnMedication_Click(object sender, EventArgs e) { if (grdData.CurrentRow == null) { return; } if (grdData.IsStatusRow(grdData.CurrentRow.Index)) { return; } oFrameCur.ID = Convert.ToInt32(grdData.CurrentRow.Cells["grcID"].Value); // нет ли невыполненных транспортировок? TrafficFrame oTrafficTemp = new TrafficFrame(); oTrafficTemp.FilterFramesList = oFrameCur.ID.ToString(); oTrafficTemp.FilterConfirmed = false; oTrafficTemp.FillData(); if (oTrafficTemp.ErrorNumber != 0 || oTrafficTemp.MainTable == null) { RFMMessage.MessageBoxError("Ошибка при получении данных о транспортировках контейнера..."); return; } if (oTrafficTemp.MainTable.Rows.Count > 0) { DataRow r = oTrafficTemp.MainTable.Rows[0]; RFMMessage.MessageBoxError("Для контейнера с кодом " + oFrameCur.ID.ToString() + " существуют невыполненные транспортировки\n" + "(из ячейки " + r["CellSourceAddress"].ToString() + " в ячейку " + r["CellTargetAddress"] + ").\n\n" + "Исправление состояния контейнера невозможно."); return; } if (StartForm(new frmFramesMedication(Convert.ToInt32(oFrameCur.ID))) == DialogResult.Yes) { grdData_Restore(); } }
private void mniServiceTrafficFrameCreate_Click(object sender, EventArgs e) { RFMMenuUtilities.MenuClear((ToolStripMenuItem)sender); bool bReturn = false; if (tcList.CurrentPage.Name.ToUpper() != tabData.Name.ToUpper()) { bReturn = true; } if (!bReturn && lastGrid.Name.ToUpper() != grdOddmentsDetails.Name.ToUpper()) { bReturn = true; } if (!bReturn && (grdData.DataSource == null || grdData.Rows.Count == 0 || grdData.CurrentRow == null || grdData.IsStatusRow(grdData.CurrentRow.Index))) { bReturn = true; } if (!bReturn && (grdOddmentsDetails.DataSource == null || grdOddmentsDetails.Rows.Count == 0 || grdOddmentsDetails.CurrentRow == null || grdOddmentsDetails.IsStatusRow(grdOddmentsDetails.CurrentRow.Index))) { bReturn = true; } if (!bReturn && (grdOddmentsDetails.CurrentRow.Cells["grcFrameID"].Value == null || grdOddmentsDetails.CurrentRow.Cells["grcFrameID"].Value == DBNull.Value)) { bReturn = true; } if (bReturn) { RFMMessage.MessageBoxError("Для вызова операции перейдите в нижнюю таблицу и установите активную строку на запись о контейнере."); return; } int nFrameID = Convert.ToInt32(grdOddmentsDetails.CurrentRow.Cells["grcFrameID"].Value); TrafficFrame oTrafficTemp = new TrafficFrame(); oTrafficTemp.FilterFramesList = nFrameID.ToString(); oTrafficTemp.FilterConfirmed = false; oTrafficTemp.FillData(); if (oTrafficTemp.ErrorNumber != 0) { return; } if (oTrafficTemp.MainTable.Rows.Count > 0) { RFMMessage.MessageBoxError("Для контейнера с кодом " + nFrameID.ToString() + " существуют невыполненные операции транспортировки..."); return; } if (StartForm(new frmTrafficsFramesManual(nFrameID)) == DialogResult.Yes) { grdOddmentsDetails_Restore(); } }
private void btnSave_Click(object sender, EventArgs e) { if (cboStoresZones.SelectedIndex < 0 || cboStoresZones.SelectedValue == null) { RFMMessage.MessageBoxError("Не указана зона пикинга..."); return; } if (cboHeavers.SelectedIndex < 0 || cboHeavers.SelectedValue == null) { RFMMessage.MessageBoxError("Не указан грузчик..."); return; } bool lChecked = false; foreach (DataRow r in tTable.Rows) { if ((bool)r["Checked"] && !(bool)r["IsConfirmed"]) { lChecked = true; } } if (!lChecked) { RFMMessage.MessageBoxError("Не отмечено ни одного перемещения..."); return; } // подтверждение с прямым исправлением остатков в ячейке отгрузки? Setting oSet = new Setting(); string sIfEasyConfirm = oSet.FillVariable("bEasyConfirm"); bool bEasyConfirm = false; if (sIfEasyConfirm != null && sIfEasyConfirm.Length > 0) { try { bEasyConfirm = Convert.ToBoolean(sIfEasyConfirm); } catch { } } if (RFMMessage.MessageBoxYesNo("Подтвердить перемещения коробок/штук?") == DialogResult.Yes) { // и вот тут начинается большая песня с проверками int nPackingID; bool bIsEnough; decimal nDeficit = 0; decimal nInCell = 0; Cell oCellTemp = new Cell(); TrafficFrame oTrafficFrameTemp = new TrafficFrame(); foreach (DataRow r in tTable.Rows) { if (!Convert.ToBoolean(r["Checked"]) || Convert.ToBoolean(r["IsConfirmed"])) { continue; } bIsEnough = false; nPackingID = Convert.ToInt32(r["PackingID"]); nInCell = 0; nDeficit = 0; oCellTemp.ClearError(); oCellTemp.ID = Convert.ToInt32(r["CellSourceID"]); oCellTemp.FillData(); // привязки DataRow rCell = oCellTemp.MainTable.Rows[0]; if (!Convert.IsDBNull(rCell["FixedPackingID"]) && Convert.ToInt32(rCell["FixedPackingID"]) != nPackingID) { RFMMessage.MessageBoxError("Ячейка " + rCell["Address"].ToString() + " имеет фиксированную привязку к другому товару..."); continue; } if (!Convert.IsDBNull(rCell["FixedGoodStateID"]) && Convert.ToInt32(rCell["FixedGoodStateID"]) != nGoodStateID) { RFMMessage.MessageBoxError("Ячейка " + rCell["Address"].ToString() + " имеет фиксированную привязку к другому состоянию..."); continue; } if ( (bSeparatePicking && ( (!Convert.IsDBNull(rCell["FixedOwnerID"]) && Convert.ToInt32(rCell["FixedOwnerID"]) != nOwnerID) || Convert.IsDBNull(rCell["FixedOwnerID"]) ) ) || (!bSeparatePicking && !Convert.IsDBNull(rCell["FixedOwnerID"])) ) { RFMMessage.MessageBoxError("Ячейка " + rCell["Address"].ToString() + " имеет фиксированную привязку к другому хранителю..."); continue; } oCellTemp.FillTableCellsContents(oCellTemp.ID, true); foreach (DataRow cc in oCellTemp.TableCellsContents.Rows) { if (bSeparatePicking) { if (Convert.ToInt32(cc["PackingID"]) == nPackingID && Convert.ToInt32(cc["GoodStateID"]) == nGoodStateID && !Convert.IsDBNull(cc["OwnerID"]) && Convert.ToInt32(cc["OwnerID"]) == nOwnerID) { if (Convert.ToDecimal(cc["Qnt"]) >= Convert.ToDecimal(r["ForQntConfirmed"])) { bIsEnough = true; } else { nInCell += Convert.ToDecimal(cc["Qnt"]); } } } else { if (Convert.ToInt32(cc["PackingID"]) == nPackingID && Convert.ToInt32(cc["GoodStateID"]) == nGoodStateID && Convert.IsDBNull(cc["OwnerID"])) { if (Convert.ToDecimal(cc["Qnt"]) >= Convert.ToDecimal(r["ForQntConfirmed"])) { bIsEnough = true; } else { nInCell += Convert.ToDecimal(cc["Qnt"]); } } } if (bIsEnough) { break; } } // прошли содержимое ячейки. товара не хватает if (!bIsEnough) { nDeficit = Convert.ToDecimal(r["ForQntConfirmed"]) - nInCell; if (!bEasyConfirm) { // есть ли в нее трафики? oTrafficFrameTemp.FilterCellsTargetList = oCellTemp.ID.ToString(); oTrafficFrameTemp.FilterConfirmed = false; oTrafficFrameTemp.FillData(); if (oTrafficFrameTemp.MainTable.Rows.Count > 0) { /*RFMMessage.MessageBoxAttention("ВНИМАНИЕ!\n" + * "В ячейке " + rCell["Address"].ToString() + " недостаточно товара (" + Convert.ToDecimal(nDeficit).ToString("# ##0").Trim() + " шт.)\n" + * r["GoodAlias"].ToString() + ".\n\n" + * "Есть невыполненные операции транспортировки паллет в эту ячейку (контейнер " + oTrafficFrameTemp.MainTable.Rows[0]["FrameID"] + ") .");*/ RFMMessage.MessageBoxAttention("ВНИМАНИЕ!\n" + "В ячейке " + rCell["Address"].ToString() + " недостаточно товара\n" + r["GoodAlias"].ToString() + ".\n\n" + "Есть невыполненные операции транспортировки паллет в эту ячейку (контейнер " + oTrafficFrameTemp.MainTable.Rows[0]["FrameID"] + ") ."); continue; } else { // трафиков нет. сами изменим состояние ячейки /*string sDeficitText = (Convert.ToBoolean(r["Weighting"])) ? * (Convert.ToDecimal(nDeficit).ToString("# ##0.000").Trim() + " кг") : * RFMPublic.RFMUtilities.Declen(Convert.ToInt32(Math.Floor(nDeficit)), "штук", "штук", "штук");*/ string sDeficitText; if (Convert.ToBoolean(r["Weighting"])) { sDeficitText = Convert.ToDecimal(nDeficit).ToString("# ##0.000").Trim() + " кг"; } else { decimal nInBox = Convert.ToDecimal(r["InBox"]); int nFullBoxes = Convert.ToInt32(Math.Floor(nDeficit / nInBox)); int nPieces = Convert.ToInt32(nDeficit - nFullBoxes * nInBox); sDeficitText = nFullBoxes.ToString() + " кор."; if (nPieces != 0) { sDeficitText = sDeficitText + "+" + nPieces.ToString() + " шт."; } } if (RFMMessage.MessageBoxYesNo("ВНИМАНИЕ!\n" + "В ячейке " + rCell["Address"].ToString() + " не хватает товара (" + sDeficitText + ").\n" + r["GoodAlias"].ToString() + "\n\n" + "Невыполненных операций транспортировки паллет в эту ячейку нет.\n\n" + "Выполнить исправление состояния ячейки на " + sDeficitText + "?", false) == DialogResult.Yes) { oCellTemp.MedicationDirect((int)oCellTemp.ID, nGoodStateID, nOwnerID, nPackingID, nDeficit, ((RFMFormMain)Application.OpenForms[0]).UserID, "Исправление состояния ячейки для подтверждения перемещений по расходу с кодом " + oOutput.ID.ToString()); } } } else { oCellTemp.MedicationDirect((int)oCellTemp.ID, nGoodStateID, nOwnerID, nPackingID, nDeficit, ((RFMFormMain)Application.OpenForms[0]).UserID, "Исправление состояния ячейки для подтверждения перемещений по расходу с кодом " + oOutput.ID.ToString()); } } } // прошли все товары Refresh(); WaitOn(this); oOutput.ClearError(); bool bResult = oOutput.ConfirmTraffics(ID, false, chkMinusAllowed.Checked, (int)cboHeavers.SelectedValue, tTable); WaitOff(this); if (bResult && oOutput.ErrorNumber == 0) { RFMMessage.MessageBoxInfo("Подтверждены перемещения коробок/штук."); DialogResult = DialogResult.Yes; Dispose(); /* * if (ForLoad(true) == 0) * { * DialogResult = DialogResult.Yes; * Dispose(); * } */ } else { RFMMessage.MessageBoxError("Ошибка подтверждения перемещения коробок/штук..."); } } }
private void btnCellNewChoose_Click(object sender, EventArgs e) { nCellNewID = null; txtCellNewAddress.Text = txtStoreZoneNewName.Text = ""; _SelectedCellID = null; if (StartForm(new frmSelectOneCell(this)) == DialogResult.Yes) { if (_SelectedCellID != null) { int nCellNewID_Temp = (int)_SelectedCellID; oCellNew.ID = (int)nCellNewID_Temp; oCellNew.FillData(); if (oCellNew.ErrorNumber != 0 || oCellNew.MainTable == null || oCellNew.MainTable.Rows.Count != 1) { RFMMessage.MessageBoxError("ќшибка при получении данных о новой ¤чейке..."); return; } if (nCellCurID.HasValue && nCellNewID_Temp == nCellCurID) { RFMMessage.MessageBoxError("¬ыбрана та же ¤чейка..."); return; } DataRow c = oCellNew.MainTable.Rows[0]; // проверки - можно ли сделать закрепление в эту ¤чейку? // 1. это подход¤щий тип ¤чейки? if (!Convert.ToBoolean(c["ForStorage"]) || !Convert.ToBoolean(c["ForPicking"])) { RFMMessage.MessageBoxError("ячейка имеет другой тип..."); return; } // 2.1. есть остаток? oCellNew.FillTableCellsContents(nCellNewID_Temp, false); if (oCellNew.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ товаров в ¤чейке..."); return; } foreach (DataRow cc in oCellNew.TableCellsContents.Rows) { if (Convert.ToDecimal(cc["Qnt"]) != 0) { RFMMessage.MessageBoxError("¬ ¤чейке имеетс¤ другой товар..."); return; } } // 2.2. есть трафики в/из новой ¤чейки TrafficFrame oTrafficFrameTemp = new TrafficFrame(); oTrafficFrameTemp.FilterConfirmed = false; oTrafficFrameTemp.FilterCellsTargetList = nCellNewID_Temp.ToString(); oTrafficFrameTemp.FillData(); if (oTrafficFrameTemp.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов в ¤чейку..."); return; } if (oTrafficFrameTemp.MainTable.Rows.Count > 0) { RFMMessage.MessageBoxError("≈сть невыполненные транспортировки поддонов в ¤чейку..."); return; } oTrafficFrameTemp.FilterCellsTargetList = null; oTrafficFrameTemp.FilterCellsSourceList = nCellNewID_Temp.ToString(); oTrafficFrameTemp.FillData(); if (oTrafficFrameTemp.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов из ¤чейки..."); return; } if (oTrafficFrameTemp.MainTable.Rows.Count > 0) { RFMMessage.MessageBoxError("≈сть невыполненные транспортировки поддонов из ¤чейки..."); return; } TrafficGood oTrafficGoodTemp = new TrafficGood(); oTrafficGoodTemp.FilterConfirmed = false; oTrafficGoodTemp.FilterCellsTargetList = nCellNewID_Temp.ToString(); oTrafficGoodTemp.FillData(); if (oTrafficGoodTemp.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок в ¤чейку..."); return; } if (oTrafficGoodTemp.MainTable.Rows.Count > 0) { RFMMessage.MessageBoxError("≈сть невыполненные перемещени¤ коробок в ¤чейку..."); return; } oTrafficGoodTemp.FilterCellsTargetList = null; oTrafficGoodTemp.FilterCellsSourceList = nCellNewID_Temp.ToString(); oTrafficGoodTemp.FillData(); if (oTrafficGoodTemp.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок из ¤чейки..."); return; } if (oTrafficGoodTemp.MainTable.Rows.Count > 0) { RFMMessage.MessageBoxError("≈сть невыполненные перемещени¤ коробок из ¤чейки..."); return; } // 2. товар if (!Convert.IsDBNull(c["FixedPackingID"])) { int nPackingTempID = Convert.ToInt32(c["FixedPackingID"]); if (nPackingTempID == nPackingID) { RFMMessage.MessageBoxError("ячейка уже закреплена за этим товаром..."); return; } else { // ¤чейка закреплена за другим товаром if (RFMMessage.MessageBoxYesNo("Ќова¤ ¤чейка закреплена за другим товаром\n(" + c["PackingAlias"].ToString() + ").\n\n" + "ѕродолжить?") != DialogResult.Yes) { return; } } } // нова¤ ¤чейка пуста и по всем отношени¤м нам подходит // спросим еще про остатки и трафики в/из текущей ¤чейки, если есть // (DateAccept проверим уже в хр_пр) oCellCur.FillTableCellsContents((int)nCellCurID, false); if (oCellCur.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ товаров в текущей ¤чейке..."); return; } foreach (DataRow cc in oCellCur.TableCellsContents.Rows) { if (Convert.ToDecimal(cc["Qnt"]) != 0) { if (RFMMessage.MessageBoxYesNo("¬ текущей ¤чейке имеетс¤ товар.\n" + "¬есь он будет переведен в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes) { return; } } } TrafficFrame oTrafficFrameCur = new TrafficFrame(); oTrafficFrameCur.FilterConfirmed = false; oTrafficFrameCur.FilterCellsTargetList = nCellCurID.ToString(); oTrafficFrameCur.FillData(); if (oTrafficFrameCur.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов в текущую ¤чейку..."); return; } if (oTrafficFrameCur.MainTable.Rows.Count > 0) { if (RFMMessage.MessageBoxYesNo("≈сть невыполненные транспортировки поддонов в текущую ¤чейку.\n" + "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes) { return; } } oTrafficFrameCur.FilterCellsTargetList = null; oTrafficFrameCur.FilterCellsSourceList = nCellCurID.ToString(); oTrafficFrameCur.FillData(); if (oTrafficFrameCur.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ транспортировок поддонов из текущей ¤чейки..."); return; } if (oTrafficFrameCur.MainTable.Rows.Count > 0) { if (RFMMessage.MessageBoxYesNo("≈сть невыполненные транспортировки поддонов из текущей ¤чейки.\n" + "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes) { return; } } TrafficGood oTrafficGoodCur = new TrafficGood(); oTrafficGoodCur.FilterConfirmed = false; oTrafficGoodCur.FilterCellsTargetList = nCellCurID.ToString(); oTrafficGoodCur.FillData(); if (oTrafficGoodCur.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок в текущую ¤чейку..."); return; } if (oTrafficGoodCur.MainTable.Rows.Count > 0) { if (RFMMessage.MessageBoxYesNo("≈сть невыполненные перемещени¤ коробок в текущую ¤чейку.\n" + "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes) { return; } } oTrafficGoodCur.FilterCellsTargetList = null; oTrafficGoodCur.FilterCellsSourceList = nCellCurID.ToString(); oTrafficGoodCur.FillData(); if (oTrafficGoodCur.ErrorNumber != 0) { RFMMessage.MessageBoxError("ќшибка при анализе наличи¤ перемещений коробок из ¤чейки..."); return; } if (oTrafficGoodCur.MainTable.Rows.Count > 0) { if (RFMMessage.MessageBoxYesNo("≈сть невыполненные перемещени¤ коробок из текущей ¤чейки.\n" + "¬се они будут переведены в новую ¤чейку.\n\nѕродолжить?") != DialogResult.Yes) { return; } } // OwnerID? GoodStateID? nCellNewID = (int)nCellNewID_Temp; oCellNew.ID = nCellNewID; txtCellNewAddress.Text = c["Address"].ToString(); txtStoreZoneNewName.Text = c["StoreZoneName"].ToString(); } } }