private bool grdInputsDocuments_Restore() { grdInputsDocuments.GetGridState(); grdInputsDocuments.DataSource = null; if (grdInputs.Rows.Count == 0 || oInputCur.ID == null || (grdInputs.CurrentRow != null && grdInputs.IsStatusRow(grdInputs.CurrentRow.Index))) { return(true); } oInputDocumentInInput.FilterInputsList = oInputCur.ID.ToString(); oInputDocumentInInput.FillData(); grdInputsDocuments.Restore(oInputDocumentInInput.MainTable); return(oInputDocumentInInput.ErrorNumber == 0); }
private void btnInputDocumentSelect_Click(object sender, EventArgs e) { InputDocument oInputDocument = new InputDocument(); oInputDocument.FilterDateBeg = DateTime.Today.AddMonths(-1); oInputDocument.FilterDateEnd = DateTime.Today; if (StartForm(new frmSelectOneInputDocument(this, false, oInputDocument)) == DialogResult.Yes) { oInputDocument.ID = _SelectedInputDocumentID; oInputDocument.FillData(); if ((_SelectedInputDocumentID != null) && (oInputDocument.MainTable.Rows.Count > 0)) { txtInputDocument.Text = oInputDocument.MainTable.Rows[0]["ID"].ToString() + " [" + ((DateTime)oInputDocument.MainTable.Rows[0]["DateInput"]).ToShortDateString() + "] " + oInputDocument.MainTable.Rows[0]["PartnerSourceName"].ToString(); btnInputSelect.Enabled = btnInputClear.Enabled = false; } } }
private void WarrantsAnalysis() { // тестирование доверенностей за период DateTime dDateBeg = DateTime.Now.Date; DateTime dDateEnd = DateTime.Now.Date.AddMonths(-1); if (StartForm(new frmDateRange(dDateBeg, dDateEnd)) == DialogResult.Yes) { if (GotParam[0] != null) { dDateBeg = (DateTime)GotParam[0]; } else { dDateBeg = Convert.ToDateTime("01.01.1900"); } if (GotParam[1] != null) { dDateEnd = (DateTime)GotParam[1]; } else { dDateEnd = Convert.ToDateTime("31.12.2099"); } } WarrantNumber oWarrantAnalysis = new WarrantNumber(); oWarrantAnalysis.FilterDateBeg = dDateBeg; oWarrantAnalysis.FilterDateEnd = dDateEnd; oWarrantAnalysis.FillData(); if (oWarrantAnalysis.ErrorNumber != 0 || oWarrantAnalysis.MainTable == null) { RFMMessage.MessageBoxError("Ошибка при анализе списка доверенностей..."); return; } if (oWarrantAnalysis.MainTable.Rows.Count == 0) { RFMMessage.MessageBoxError("Нет данных о доверенностях за период..."); return; } WaitOn(this); string sEol = Environment.NewLine; OutputDocument oOutputDocument = new OutputDocument(); InputDocument oInputDocument = new InputDocument(); DataTable dtWarrant = CopyTable(oWarrantAnalysis.MainTable, "dtWarrant", "", "PartnerSourceID, NumberInt, Number, DateIssue"); string sText = "Анализ журнала выдачи доверенностей за период " + dDateBeg.ToString("dd.MM.yyyy") + " - " + dDateEnd.ToString("dd.MM.yyyy") + sEol; int nPartnerSourceID = -1; int nNumberInt = -1; int nNumberIntOld = -1; string sNumber = ""; bool bOK = true; foreach (DataRow rW in dtWarrant.Rows) { oWarrantAnalysis.FillOne(rW); // новый партнер if (nPartnerSourceID != oWarrantAnalysis.PartnerSourceID) { sText += sEol + "Доверенности выданы фирмой: " + oWarrantAnalysis.PartnerSourceName + sEol; nPartnerSourceID = oWarrantAnalysis.PartnerSourceID; nNumberInt = -1; nNumberIntOld = -1; sNumber = ""; bOK = true; } nNumberInt = oWarrantAnalysis.NumberInt; sNumber = oWarrantAnalysis.Number; // нумерация if (nNumberIntOld != -1) { if (nNumberInt == nNumberIntOld) { sText += sNumber + "(" + nNumberInt.ToString().Trim() + "): доверенности с одинаковым порядковым номером" + sEol; bOK = false; } if (nNumberInt != nNumberIntOld + 1) { sText += sNumber + " (" + nNumberIntOld.ToString() + " - " + nNumberInt.ToString().Trim() + "): пропуск в порядковых номерах доверенностей" + sEol; bOK = false; } } // заказы // заказ на отгрузку if (oWarrantAnalysis.OutputDocumentID.HasValue) { oOutputDocument.ID = (int)oWarrantAnalysis.OutputDocumentID; oOutputDocument.FillData(); if (oOutputDocument.MainTable.Rows.Count == 0) { sText += sNumber + ": не найден заказ на отгрузку с кодом " + oWarrantAnalysis.OutputDocumentID + sEol; bOK = false; } else { oOutputDocument.FillOne(); // номера if (oOutputDocument.WarrantNumber != sNumber) { sText += sNumber + ": не совпадают номера доверенностей в журнале и в заказе на отгрузку (" + oOutputDocument.WarrantNumber.ToString().Trim() + ")" + sEol; bOK = false; } // if (oOutputDocument.IsWarrantReturned && !oWarrantAnalysis.IsReturned) { sText += sNumber + ": в заказе на отгрузку доверенность возвращена, в журнале нет" + sEol; bOK = false; } if (!oOutputDocument.IsWarrantReturned && oWarrantAnalysis.IsReturned) { sText += sNumber + ": в журнале доверенность возвращена, в заказе на отгрузку нет" + sEol; bOK = false; } if (oWarrantAnalysis != null && oWarrantAnalysis.CurrencyID != null && (oOutputDocument.GetMoneyConfirmed != oWarrantAnalysis.Amount || oOutputDocument.GetCurrencyID != oWarrantAnalysis.CurrencyID)) { sText += sNumber + ": сумма/валюта в журнале (" + ((decimal)oWarrantAnalysis.Amount).ToString("#####0.00") + oWarrantAnalysis.CurrencyName + ") и в заказе на отгрузку (" + oOutputDocument.GetMoneyConfirmed.ToString("#####0.00") + oOutputDocument.GetCurrencyName + ") не совпадают" + sEol; bOK = false; } } } // заказ на поставку if (oWarrantAnalysis.InputDocumentID.HasValue) { oInputDocument.ID = (int)oWarrantAnalysis.InputDocumentID; oInputDocument.FillData(); if (oInputDocument.MainTable.Rows.Count != 1) { sText += sNumber + ": не найден заказ на поставку с кодом " + oWarrantAnalysis.InputDocumentID + sEol; bOK = false; } else { oInputDocument.FillOne(); // номера if (oInputDocument.WarrantNumber != sNumber) { sText += sNumber + ": не совпадают номера доверенностей в журнале и в заказе на поставку (" + oInputDocument.WarrantNumber.ToString().Trim() + ")" + sEol; bOK = false; } } } // проверки законечены, переходим к следующей доверенности в списке nNumberIntOld = (int)rW["NumberInt"]; } if (bOK) { sText += "OK" + sEol; } // анализ таблиц заказов // заказы на отгрузку bOK = true; oOutputDocument.FilterDateBeg = dDateBeg; oOutputDocument.FilterDateEnd = dDateEnd; oOutputDocument.FillData(); if (oOutputDocument.ErrorNumber != 0 || oOutputDocument.MainTable == null) { RFMMessage.MessageBoxError("Ошибка при анализе списка заказов на отгрузку..."); } else { if (oOutputDocument.MainTable.Rows.Count > 0) { sText += sEol + "Анализ списка заказов на отгрузку: " + sEol; string sOutputDocument = ""; foreach (DataRow rO in oOutputDocument.MainTable.Rows) { oOutputDocument.FillOne(); sOutputDocument = oOutputDocument.ID.ToString().Trim(); sNumber = oOutputDocument.WarrantNumber; if (sNumber == null) { sNumber = ""; } // наличие доверенности if (oOutputDocument.IsConfirmed) { if (oOutputDocument.PF_WarrantNeed && sNumber.Length == 0) { sText += sOutputDocument + ": не определен номер доверенности для заказа, где требуется доверенность" + sEol; bOK = false; } } if (!oOutputDocument.PF_WarrantNeed && sNumber.Length > 0) { sText += sOutputDocument + ": определен номер доверенности (" + sNumber + ") для заказа, где не требуется доверенность" + sEol; bOK = false; } if (oOutputDocument.PF_WarrantNeed && sNumber.Length > 0) { oWarrantAnalysis.FilterOutputsDocumentsList = sOutputDocument; oWarrantAnalysis.FillData(); if (oWarrantAnalysis.MainTable.Rows.Count == 0) { sText += sOutputDocument + ": в журнале не найдена доверенность (" + sNumber + ") для заказа" + sEol; bOK = false; } if (oWarrantAnalysis.MainTable.Rows.Count > 1) { sText += sOutputDocument + ": в журнале найдено несколько доверенностей для заказа (" + sNumber + ")" + sEol; bOK = false; } oWarrantAnalysis.FilterNumberContext = sNumber; oWarrantAnalysis.FilterPartnersSourceList = oOutputDocument.PartnerSourceID.ToString(); oWarrantAnalysis.FilterDateBeg = oOutputDocument.DateOutput.AddDays(-10); oWarrantAnalysis.FilterDateEnd = oOutputDocument.DateOutput.AddDays(10); oWarrantAnalysis.FillData(); if (oWarrantAnalysis.MainTable.Rows.Count == 0) { sText += sOutputDocument + ": в журнале не найдена доверенность по номеру (" + sNumber + "), указанному в заказе" + sEol; bOK = false; } if (oWarrantAnalysis.MainTable.Rows.Count > 1) { sText += sOutputDocument + ": в журнале найдено несколько доверенностей по номеру (" + sNumber + "), указанному в заказе" + sEol; bOK = false; } oWarrantAnalysis.FillOne(); if (oWarrantAnalysis.OutputDocumentID != oOutputDocument.ID) { sText += sOutputDocument + ": в журнале найдена доверенность по номеру (" + sNumber + "), но в ней указан другой заказ" + sEol; bOK = false; } if (oWarrantAnalysis.PartnerSourceID != oOutputDocument.PartnerSourceID || oWarrantAnalysis.PartnerTargetID != oOutputDocument.PartnerTargetID) { sText += sOutputDocument + ": в журнале найдена доверенность по номеру (" + sNumber + "), но в ней указан другой клиент" + sEol; bOK = false; } if (oWarrantAnalysis.Amount != null && oWarrantAnalysis.CurrencyID != null && ((decimal)oWarrantAnalysis.Amount != oOutputDocument.GetMoneyConfirmed || (int)oWarrantAnalysis.CurrencyID != oOutputDocument.GetCurrencyID)) { sText += sOutputDocument + ": в журнале найдена доверенность по номеру (" + sNumber + "), но в ней указана другая сумма" + sEol; bOK = false; } } if (!oOutputDocument.PF_WarrantNeed) { oWarrantAnalysis.FilterOutputsDocumentsList = sOutputDocument; if (oWarrantAnalysis.MainTable.Rows.Count > 0) { sText += sOutputDocument + ": в журнале найдена доверенность (" + oWarrantAnalysis.MainTable.Rows[0]["Number"].ToString() + ") для заказа, для которого она не требуется" + sEol; bOK = false; } } // переходим к след.заказу } if (bOK) { sText += "OK"; } } } // здесь должны быть аналогичные проверки для заказов на поставку InputsDocuments bOK = true; // выводим отчет WaitOff(this); StartForm(new frmSysTextReport(sText)); /* * string sFileName = ((RFMFormMain)Application.OpenForms[0]).UserInfo.UserLocPath + "WarrantsAnalysis.txt"; * File.AppendAllText(sFileName, sText, Encoding.Default); * StartForm(new frmSysTextReport(true, sFileName)); */ }
private bool grdInputsDocuments_Restore() { RFMCursorWait.Set(true); RFMCursorWait.LockWindowUpdate(FindForm().Handle); oInputDocumentCur.ClearOne(); oInputDocumentList.ClearError(); oInputDocumentList.ClearFilters(); oInputDocumentList.ID = null; oInputDocumentList.IDList = null; // собираем условия // даты if (!dtrDates.dtpBegDate.IsEmpty) { oInputDocumentList.FilterDateBeg = dtrDates.dtpBegDate.Value.Date; } if (!dtrDates.dtpEndDate.IsEmpty) { oInputDocumentList.FilterDateEnd = dtrDates.dtpEndDate.Value.Date; } // доставка? if (optDeliveryNeed.Checked) { oInputDocumentList.FilterDeliveryNeed = true; } if (optDeliveryNeedNot.Checked) { oInputDocumentList.FilterDeliveryNeed = false; } // клиенты-поставщики if (txtPartnerSourceNameContext.Text.Trim().Length > 0) { Partner oPartnerSource = new Partner(); oPartnerSource.FilterNameContext = txtPartnerSourceNameContext.Text.Trim(); oPartnerSource.FillData(); oInputDocumentList.FilterPartnersSourceList = ""; foreach (DataRow rcs in oPartnerSource.MainTable.Rows) { oInputDocumentList.FilterPartnersSourceList += rcs["ID"].ToString() + ","; } } if (ucSelectRecordID_PartnersSource.IsSelectedExist) { oInputDocumentList.FilterPartnersSourceList += ucSelectRecordID_PartnersSource.GetIdString(); } // клиенты-получатели if (txtPartnerTargetNameContext.Text.Trim().Length > 0) { Partner oPartnerTarget = new Partner(); oPartnerTarget.FilterNameContext = txtPartnerTargetNameContext.Text.Trim(); oPartnerTarget.FillData(); oInputDocumentList.FilterPartnersTargetList = ""; foreach (DataRow rct in oPartnerTarget.MainTable.Rows) { oInputDocumentList.FilterPartnersTargetList += rct["ID"].ToString() + ","; } } if (ucSelectRecordID_PartnersTarget.IsSelectedExist) { oInputDocumentList.FilterPartnersTargetList += ucSelectRecordID_PartnersTarget.GetIdString(); } // владельцы if (ucSelectRecordID_Owners.IsSelectedExist) { oInputDocumentList.FilterOwnersList = ucSelectRecordID_Owners.GetIdString(); } // рейс? if (optTripExists.Checked) { oInputDocumentList.FilterTripExists = true; } if (optTripExistsNot.Checked) { oInputDocumentList.FilterTripExists = false; } // выбранные товары if (sSelectedPackingsIDList.Length > 0) { oInputDocumentList.FilterPackingsList = sSelectedPackingsIDList; } // подтверждение if (optInputsDocumentsIsConfirmedNot.Checked) { oInputDocumentList.FilterIsConfirmed = false; } if (optInputsDocumentsIsConfirmed.Checked) { oInputDocumentList.FilterIsConfirmed = true; } // по рейсу string sTripsList = ""; if (txtTripAliasContext.Text.Trim().Length > 0) { Trip oTripFilter = new Trip(); oTripFilter.FilterAliasContext = txtTripAliasContext.Text.Trim(); oTripFilter.FillData(); if (oTripFilter.ErrorNumber == 0 && oTripFilter.MainTable != null) { foreach (DataRow tr in oTripFilter.MainTable.Rows) { sTripsList += tr["ID"].ToString() + ","; } } oInputDocumentList.FilterTripsList = sTripsList; } if (numTripID.Value > 0) { if (oInputDocumentList.FilterTripsList == null) { oInputDocumentList.FilterTripsList = Convert.ToInt32(numTripID.Value).ToString(); } else { oInputDocumentList.FilterTripsList += Convert.ToInt32(numTripID.Value).ToString(); } } // хосты if (nUserHostID.HasValue) { oInputDocumentList.FilterHostsList = nUserHostID.ToString(); } else { if (ucSelectRecordID_Hosts.IsSelectedExist) { oInputDocumentList.FilterHostsList = ucSelectRecordID_Hosts.GetIdString(); } } // начальные условия if (oInputDocument != null) { if (oInputDocument.FilterOwnersList != null) { oInputDocumentList.FilterOwnersList = oInputDocument.FilterOwnersList; } if (oInputDocument.FilterPartnersSourceList != null) { oInputDocumentList.FilterPartnersSourceList = oInputDocument.FilterPartnersSourceList; } if (oInputDocument.FilterPartnersTargetList != null) { oInputDocumentList.FilterPartnersTargetList = oInputDocument.FilterPartnersTargetList; } if (oInputDocument.FilterHostsList != null) { if (!nUserHostID.HasValue) { oInputDocumentList.FilterHostsList = oInputDocument.FilterHostsList; } else { if (!((string)("," + oInputDocument.FilterHostsList + ",")).Contains("," + nUserHostID.ToString().Trim() + ",")) { oInputDocumentList.FilterHostsList = "-1"; } } } } // grdInputsDocumentsGoods.DataSource = null; grdInputsDocuments.GetGridState(); oInputDocumentList.FillData(); grdInputsDocuments.IsLockRowChanged = true; grdInputsDocuments.Restore(oInputDocumentList.MainTable); tmrRestore.Enabled = true; RFMCursorWait.LockWindowUpdate(IntPtr.Zero); RFMCursorWait.Set(false); return(oInputDocumentList.ErrorNumber == 0); }
private bool dgvInputDocumentGoods_Restore() { oInputDocument.ClearError(); oInputDocument.FillData(); if (oInputDocument.ErrorNumber == 0) { if (nInputDocumentID != 0) { oInputDocument.FillTableInputsDocumentsGoods(); } else { oInputDocument.FillTableInputsDocumentsGoodsFromInput((int)nInputID); } if (oInputDocument.ErrorNumber == 0) { oInputDocument.TableInputsDocumentsGoods.PrimaryKey = null; oInputDocument.TableInputsDocumentsGoods.Columns["ID"].Unique = false; oInputDocument.TableInputsDocumentsGoods.Columns["ID"].AllowDBNull = true; oInputDocument.TableInputsDocumentsGoods.Columns["InputDocumentGoodID"].Unique = false; oInputDocument.TableInputsDocumentsGoods.Columns["InputDocumentGoodID"].AllowDBNull = true; //oInputDocument.TableInputsDocumentsGoods.Columns["InputDocumentGoodID"].DefaultValue = -1; //oInputDocument.TableInputsDocumentsGoods.PrimaryKey = new DataColumn[] { oInputDocument.TableInputsDocumentsGoods.Columns["InputDocumentGoodID"] }; // колонки для исправления if (oInputDocument.TableInputsDocumentsGoods.Columns["QntWished"] == null) { oInputDocument.TableInputsDocumentsGoods.Columns.Add("QntWished", System.Type.GetType("System.Decimal")); } if (oInputDocument.TableInputsDocumentsGoods.Columns["QntBrought"] == null) { oInputDocument.TableInputsDocumentsGoods.Columns.Add("QntBrought", System.Type.GetType("System.Decimal")); } if (oInputDocument.TableInputsDocumentsGoods.Columns["BoxWished"] == null) { oInputDocument.TableInputsDocumentsGoods.Columns.Add("BoxWished", System.Type.GetType("System.Decimal")); } if (oInputDocument.TableInputsDocumentsGoods.Columns["BoxBrought"] == null) { oInputDocument.TableInputsDocumentsGoods.Columns.Add("BoxBrought", System.Type.GetType("System.Decimal")); } // колонка для суммы if (oInputDocument.TableInputsDocumentsGoods.Columns["PriceSum"] == null) { oInputDocument.TableInputsDocumentsGoods.Columns.Add("PriceSum", System.Type.GetType("System.Decimal")); } // заполнить начальные значения decimal nAmount = 0; decimal nQnt = 0; decimal nBox = 0; foreach (DataRow droRow in oInputDocument.TableInputsDocumentsGoods.Rows) { droRow["BoxBrought"] = droRow["BoxWished"] = droRow["Box"]; droRow["QntBrought"] = droRow["QntWished"] = droRow["Qnt"]; droRow["PriceSum"] = (decimal)droRow["QntBrought"] * (decimal)droRow["Price"]; nQnt += (decimal)droRow["QntBrought"]; nBox += (decimal)droRow["BoxBrought"]; nAmount += (decimal)droRow["PriceSum"]; // НДС if (Convert.IsDBNull(droRow["Vat"]) || droRow["Vat"] == null) { droRow["Vat"] = 0; } /* * if (Convert.IsDBNull(droRow["Vat"]) || droRow["Vat"] == null || (decimal)droRow["Vat"] == 0) * { * droRow["Vat"] = oGood.Vat((int)droRow["PackingID"], oInputDocument.DateInput); * } */ } dgvInputDocumentGoods.Restore(oInputDocument.TableInputsDocumentsGoods); lblTotalAmount.Text = nAmount.ToString("### ### ##0.00").Trim(); lblTotalQnt.Text = nQnt.ToString("### ### ##0").Trim(); lblTotalBox.Text = nBox.ToString("# ### ##0.0").Trim(); } } return(oInputDocument.ErrorNumber == 0); }