/*--------------------------------------------------------------------*/ /* Удаление выбранного документа */ void DeleteDoc() { if (ClassConfig.Rapid_Client_UserRight == "admin" || ClassConfig.Rapid_Client_UserName == listView1.Items[listView1.SelectedIndices[0]].SubItems[5].Text.ToString()) { if (listView1.SelectedIndices.Count > 0) // проверка выбранного элемента // Удалить документ Расходная Накладная ************************* { if (listView1.Items[listView1.SelectedIndices[0]].SubItems[3].Text.ToString() == "Расходная Накладная") { if (listView1.SelectedItems[0].StateImageIndex == 2) // не удалён // Установка отметки удаления { if (MessageBox.Show("Пометить документ на удаление?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes) { MsSQLShort SQLCommand = new MsSQLShort(); SQLCommand.SqlCommand = "UPDATE journal SET journal_delete = 1 WHERE (id_journal = " + listView1.Items[listView1.SelectedIndices[0]].SubItems[6].Text.ToString() + ")"; if (SQLCommand.ExecuteNonQuery()) { // ОСТАТКИ: увеличить остатки при удалении ClassBalance.BalanceRemoval(listView1.Items[listView1.SelectedIndices[0]].SubItems[6].Text.ToString(), true); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(9, DateTime.Now.ToString(), "", "Удаление документа.", ""); ClassForms.Rapid_Client.MessageConsole("Полный журнал: успешное удаление документа.", false); } else { ClassForms.Rapid_Client.MessageConsole("Полный журнал: Ошибка выполнения запроса к таблице 'Журнал' при удалении документа.", true); } } } else // уже уданён // Восстановление записи { if (MessageBox.Show("Восстановить документ?", "Вопрос:", MessageBoxButtons.YesNo) == DialogResult.Yes) { MsSQLShort SQLCommand = new MsSQLShort(); SQLCommand.SqlCommand = "UPDATE journal SET journal_delete = 0 WHERE (id_journal = " + listView1.Items[listView1.SelectedIndices[0]].SubItems[6].Text.ToString() + ")"; if (SQLCommand.ExecuteNonQuery()) { // ОСТАТКИ: уменьшить остатки при восстановлении ClassBalance.BalanceRecovery(listView1.Items[listView1.SelectedIndices[0]].SubItems[6].Text.ToString(), false); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(9, DateTime.Now.ToString(), "", "Восстановление документа.", ""); ClassForms.Rapid_Client.MessageConsole("Полный журнал: успешное восстановление документа.", false); } else { ClassForms.Rapid_Client.MessageConsole("Склады: Ошибка выполнения запроса к таблице 'Журнал' при восстановлении документа.", true); } } } } //*************************************************************** } } else { ClassForms.Rapid_Client.MessageConsole("Полный журнал: у вас недостаточно прав для удаления выбранного документа.", false); } }
/* При вводе значения */ void TextBox1TextChanged(object sender, EventArgs e) { if (textBox1.Text != "") { TmcDataLoad(textBox1.Text); // Загрузка данных } label9.Text = "Остаток на складе: " + ClassBalance.BalanceShow(textBox1.Text, ActualDate) + " "; }
/*----------------------------------------------------------------*/ /* Загрузка окна */ void FormClientDocOrderElementLoad(object sender, EventArgs e) { // Загружаем информацию из констант textBox2.Text = ClassSelectConst.constantValue("Ед. измерения"); if (this.Text == "Новая строка") { textBox5.Text = ClassSelectConst.constantValue("Вид НДС"); } label9.Text = "Остаток на складе: " + ClassBalance.BalanceShow(textBox1.Text, ActualDate) + " "; ClassForms.Rapid_Client.MessageConsole("Строка заказа: открыто окно обработки строки табличной части документа Заказ.", false); }
/* При нажатии на Интер*/ void TextBox1KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab) { if (textBox1.Text != "") { TmcDataLoad(textBox1.Text); // Загрузка данных } label9.Text = "Остаток на складе: " + ClassBalance.BalanceShow(textBox1.Text, ActualDate) + " "; } }
/* Очистка */ void Button2Click(object sender, EventArgs e) { textBox1.Clear(); textBox2.Clear(); textBox3.Text = "0.00"; textBox4.Text = "0.00"; textBox5.Text = ClassSelectConst.constantValue("Вид НДС"); textBox6.Text = "0.00"; textBox7.Text = "0.00"; textBox8.Text = "0.00"; label9.Text = "Остаток на складе: " + ClassBalance.BalanceShow(textBox1.Text, ActualDate) + " "; }
/*----------------------------------------------------------------*/ /* СОХРАНЕНИЕ: сохранение данных в таблицу */ void SaveData() // созранение данных { MsSQLShort SQlCommand = new MsSQLShort(); // При сохранении новой записи if (this.Text == "Новая запись.") { SQlCommand.SqlCommand = "INSERT INTO tmc (tmc_name, tmc_type_tax, tmc_units, tmc_buy, tmc_sale, tmc_store, tmc_additionally, tmc_type, tmc_folder, tmc_delete) VALUES ('" + textBox1.Text + "', '" + textBox2.Text + "', '" + textBox3.Text + "', " + textBox4.Text + ", " + textBox5.Text + ", '" + textBox7.Text + "', '" + textBox6.Text + "', 0, '" + comboBox1.Text + "', 0)"; if (SQlCommand.ExecuteNonQuery()) { // Создание записи в остатках ClassBalance.BalanceNew(textBox1.Text); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(4, DateTime.Now.ToString(), "", "Создание новой записи.", ""); ClassForms.Rapid_Client.MessageConsole("ТМЦ: успешное создание новой записи.", false); Close(); } else { ClassForms.Rapid_Client.MessageConsole("ТМЦ: Ошибка выполнения запроса к таблице 'ТМЦ' при создании новой записи.", true); } } // При сохранении измененной записи if (this.Text == "Изменить запись.") { if (ClassConfig.Rapid_Client_UserRight == "admin") { SQlCommand.SqlCommand = "UPDATE tmc SET tmc_name = '" + textBox1.Text + "', tmc_type_tax = '" + textBox2.Text + "', tmc_units = '" + textBox3.Text + "', tmc_buy = " + textBox4.Text + ", tmc_sale = " + textBox5.Text + ", tmc_store = '" + textBox7.Text + "', tmc_additionally = '" + textBox6.Text + "', tmc_folder = '" + comboBox1.Text + "' WHERE (id_tmc = " + ActionID + ") "; if (SQlCommand.ExecuteNonQuery()) { // Изменение записей в остатках ClassBalance.BalanceEdit(textBox1.Text, editName); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(4, DateTime.Now.ToString(), "", "Изменение записи.", ""); ClassForms.Rapid_Client.MessageConsole("ТМЦ: успешное изменение записи.", false); Close(); } else { ClassForms.Rapid_Client.MessageConsole("ТМЦ: Ошибка выполнения запроса к таблице 'ТМЦ' при изменении записи.", true); } } else { MessageBox.Show("Извините но вы '" + ClassConfig.Rapid_Client_UserName + "' не обладаете достаточными правами для ввода изменений.", "Сообщение"); ClassForms.Rapid_Client.MessageConsole("Сотрудники: у вас недостаточно прав для ввода изменений.", false); } } }
/* Загрузка данных из таблицы фирмы*/ void TmcDataLoad(String tmcName) { MsSQLFull tmcMySQL = new MsSQLFull(); DataSet tmcDataSet = new DataSet(); tmcDataSet.Clear(); tmcDataSet.DataSetName = "tmc"; tmcMySQL.SelectSqlCommand = "SELECT * FROM tmc WHERE (tmc_name = '" + tmcName + "')"; if (tmcMySQL.ExecuteFill(tmcDataSet, "tmc")) { DataTable table = tmcDataSet.Tables["tmc"]; if (table.Rows.Count > 0) { // Наименование ТМЦ textBox2.Text = table.Rows[0]["tmc_units"].ToString(); // Количество ТМЦ на складе textBox3.Text = "1.00"; label9.Text = "Остаток на складе: " + ClassBalance.BalanceShow(textBox1.Text, ActualDate) + " "; // Цена (покупка или продажа) if (BuyOrSell) { textBox4.Text = ClassConversion.StringToMoney(table.Rows[0]["tmc_buy"].ToString()); } else { textBox4.Text = ClassConversion.StringToMoney(table.Rows[0]["tmc_sale"].ToString()); } // Вид НДС textBox5.Text = table.Rows[0]["tmc_type_tax"].ToString(); //Вычисление Calculation(); } else { //ТМЦ не найден textBox2.Clear(); textBox3.Text = "0.00"; textBox4.Text = "0.00"; textBox5.Text = ClassSelectConst.constantValue("Вид НДС"); textBox6.Text = "0.00"; textBox7.Text = "0.00"; textBox8.Text = "0.00"; } } else { ClassForms.Rapid_Client.MessageConsole("Заказ: Ошибка при загрузке данных о тмц.", true); } }
/*---------------------------------------------------------*/ /* Сохранить документ */ void SaveDoc() { // При создании новой записи if (this.Text == "Новая документ." || this.Text == "Ввод на основании Заказа.") { ComingMySQL.SqlCommand = "INSERT INTO journal (journal_id_doc, journal_date, journal_number, journal_user_autor, journal_type, journal_store, journal_firm_buyer, journal_firm_buyer_details, journal_firm_seller, journal_firm_seller_details, journal_staff_trade_representative, journal_typeTax, journal_sum, journal_tax, journal_total, journal_delete) " + "VALUES ('" + DocID + "', '" + dateTimePicker1.Text + "', '" + textBox1.Text + "', '" + label12.Text + "', 'Приходная Накладная', '" + textBox6.Text + "', '" + textBox2.Text + "', '" + textBox3.Text + "', '" + textBox5.Text + "', '" + textBox4.Text + "', '', '" + ClassSelectConst.constantValue("Вид НДС") + "', " + labelSum.Text + ", " + labelNDS.Text + ", " + labelTotal.Text + ", 0)"; if (ComingMySQL.ExecuteNonQuery()) { if (ComingTS_MySQL.ExecuteUpdate(ComingTS_DataSet, "tabularsection")) { // ОСТАТКИ: Увеличение остатков ClassBalance.BalancePlus(ComingTS_DataSet); /* ОПЕРАЦИЯ: Создание бухгалтерской проводки * Приобретение товара * Оприходована партия товара 281 / 631 * Налоговый кредит (НДС) 641 / 631 * Погашена задолженность перед поставщиком 631 / 311 */ ClassOperations.OperationAdd(dateTimePicker1.Text, "28", "63", labelSum.Text, "Оприходована партия товара", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "64", "63", labelNDS.Text, "Налоговый кредит (НДС)", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "63", "31", labelTotal.Text, "Погашена задолженность перед поставщиком", DocID); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(9, DateTime.Now.ToString(), "", "Изменение записи.", ""); ClassForms.Rapid_Client.MessageConsole("Полный журнал: успешное создание нового документа Приходная Накладная.", false); // Закрыть окно Close(); } else { ClassForms.Rapid_Client.MessageConsole("Приходная Накладная: Ошибка сохранения табличной части.", true); } } else { ClassForms.Rapid_Client.MessageConsole("Приходная Накладная: Ошибка сохранения данных о документе в журнале документов.", true); } } // При изменении записи if (this.Text == "Изменить документ.") { ComingMySQL.SqlCommand = "UPDATE journal SET journal_date = '" + dateTimePicker1.Text + "', journal_number = '" + textBox1.Text + "', journal_user_autor = '" + ClassConfig.Rapid_Client_UserName + "', journal_store = '" + textBox6.Text + "', journal_firm_buyer = '" + textBox2.Text + "', journal_firm_buyer_details = '" + textBox3.Text + "', journal_firm_seller = '" + textBox5.Text + "', journal_firm_seller_details = '" + textBox4.Text + "', journal_staff_trade_representative = '', journal_sum = " + labelSum.Text + ", journal_tax = " + labelNDS.Text + ", journal_total = " + labelTotal.Text + " WHERE (id_journal = " + ActionID + ")"; if (ComingMySQL.ExecuteNonQuery()) { if (ComingTS_MySQL.ExecuteUpdate(ComingTS_DataSet, "tabularsection")) { // ОСТАТКИ: обновление остатков после изменений ClassBalance.BalanceUpdatePlus(OldDS, ComingTS_DataSet); /* ОПЕРАЦИЯ: Создание бухгалтерской проводки * Приобретение товара * Оприходована партия товара 281 / 631 * Налоговый кредит (НДС) 641 / 631 * Погашена задолженность перед поставщиком 631 / 311 */ ClassOperations.OperationDelete(DocID, ""); ClassOperations.OperationAdd(dateTimePicker1.Text, "28", "63", labelSum.Text, "Оприходована партия товара", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "64", "63", labelNDS.Text, "Налоговый кредит (НДС)", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "63", "31", labelTotal.Text, "Погашена задолженность перед поставщиком", DocID); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(9, DateTime.Now.ToString(), "", "Изменение записи.", ""); ClassForms.Rapid_Client.MessageConsole("Полный журнал: успешное сохранены изменения документа Приходная Накладная.", false); // Закрыть окно Close(); } else { ClassForms.Rapid_Client.MessageConsole("Приходная Накладная: Ошибка сохранения табличной части.", true); } } else { ClassForms.Rapid_Client.MessageConsole("Приходная Накладная: Ошибка сохранения данных о документе в журнале документов.", true); } } }
/*---------------------------------------------------------*/ /* Сохранить документ */ void SaveDoc() { // При создании новой записи if (this.Text == "Новая документ." || this.Text == "Ввод на основании Заказа.") { ExpenseMySQL.SqlCommand = "INSERT INTO journal (journal_id_doc, journal_date, journal_number, journal_user_autor, journal_type, journal_store, journal_firm_buyer, journal_firm_buyer_details, journal_firm_seller, journal_firm_seller_details, journal_staff_trade_representative, journal_typeTax, journal_sum, journal_tax, journal_total, journal_delete) " + "VALUES ('" + DocID + "', '" + dateTimePicker1.Text + "', '" + textBox1.Text + "', '" + label12.Text + "', 'Расходная Накладная', '" + textBox6.Text + "', '" + textBox2.Text + "', '" + textBox3.Text + "', '" + textBox5.Text + "', '" + textBox4.Text + "', '" + textBox7.Text + "', '" + ClassSelectConst.constantValue("Вид НДС") + "', " + labelSum.Text + ", " + labelNDS.Text + ", " + labelTotal.Text + ", 0)"; if (ExpenseMySQL.ExecuteNonQuery()) { if (ExpenseTS_MySQL.ExecuteUpdate(ExpenseTS_DataSet, "tabularsection")) { // ОСТАТКИ: Уменьшение остатков ClassBalance.BalanceMinus(ExpenseTS_DataSet); /* ОПЕРАЦИЯ: Создание бухгалтерской проводки * Оптовая торговля * Отгружен товар покупателю и отражен доход от реализации 360 / 702 * Отражено налоговое обязательство по НДС 702 / 641 * Получена оплата от покупателя 311 / 361 */ ClassOperations.OperationAdd(dateTimePicker1.Text, "36", "70", labelSum.Text, "Отгружен товар покупателю, доход от реализации", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "70", "64", labelNDS.Text, "Отражено налоговое обязательство по НДС", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "31", "36", labelTotal.Text, "Получена оплата от покупателя", DocID); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(9, DateTime.Now.ToString(), "", "Изменение записи.", ""); ClassForms.Rapid_Client.MessageConsole("Полный журнал: успешное создание нового документа Расходная накладная.", false); // Закрыть окно Close(); } else { ClassForms.Rapid_Client.MessageConsole("Расходная Накладная: Ошибка сохранения табличной части.", true); } } else { ClassForms.Rapid_Client.MessageConsole("Расходная Накладная: Ошибка сохранения данных о документе в журнале документов.", true); } } // При изменении записи if (this.Text == "Изменить документ.") { ExpenseMySQL.SqlCommand = "UPDATE journal SET journal_date = '" + dateTimePicker1.Text + "', journal_number = '" + textBox1.Text + "', journal_user_autor = '" + ClassConfig.Rapid_Client_UserName + "', journal_store = '" + textBox6.Text + "', journal_firm_buyer = '" + textBox2.Text + "', journal_firm_buyer_details = '" + textBox3.Text + "', journal_firm_seller = '" + textBox5.Text + "', journal_firm_seller_details = '" + textBox4.Text + "', journal_staff_trade_representative = '" + textBox7.Text + "', journal_sum = " + labelSum.Text + ", journal_tax = " + labelNDS.Text + ", journal_total = " + labelTotal.Text + " WHERE (id_journal = " + ActionID + ")"; if (ExpenseMySQL.ExecuteNonQuery()) { if (ExpenseTS_MySQL.ExecuteUpdate(ExpenseTS_DataSet, "tabularsection")) { // ОСТАТКИ: обновление остатков после изменений ClassBalance.BalanceUpdateMinus(OldDS, ExpenseTS_DataSet); /* ОПЕРАЦИЯ: Создание бухгалтерской проводки * Оптовая торговля * Отгружен товар покупателю и отражен доход от реализации 360 / 702 * Отражено налоговое обязательство по НДС 702 / 641 * Получена оплата от покупателя 311 / 361 */ ClassOperations.OperationDelete(DocID, ""); ClassOperations.OperationAdd(dateTimePicker1.Text, "36", "70", labelSum.Text, "Отгружен товар покупателю, доход от реализации", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "70", "64", labelNDS.Text, "Отражено налоговое обязательство по НДС", DocID); ClassOperations.OperationAdd(dateTimePicker1.Text, "31", "36", labelTotal.Text, "Получена оплата от покупателя", DocID); // ИСТОРИЯ: Запись в журнал истории обновлений ClassServer.SaveUpdateInBase(9, DateTime.Now.ToString(), "", "Изменение записи.", ""); ClassForms.Rapid_Client.MessageConsole("Полный журнал: успешное сохранены изменения документа Расходная Накладная.", false); // Закрыть окно Close(); } else { ClassForms.Rapid_Client.MessageConsole("Расходная Накладная: Ошибка сохранения табличной части.", true); } } else { ClassForms.Rapid_Client.MessageConsole("Расходная Накладная: Ошибка сохранения данных о документе в журнале документов.", true); } } }
/* При потере фокуса */ void TextBox1LostFocus(object sender, EventArgs e) { //(Ошибка при открытии на редактирование)// if(textBox1.Text != "") TmcDataLoad(textBox1.Text); // Загрузка данных label9.Text = "Остаток на складе: " + ClassBalance.BalanceShow(textBox1.Text, ActualDate) + " "; }