Files
Unimarc/unimarc/unimarc/마크/Mac_List_Add.cs

301 lines
10 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using Microsoft.Office.Interop.Excel;
using UniMarc.ListOfValue;
using AR;
namespace UniMarc
{
public partial class Mac_List_Add : Form
{
Helper_DB db = new Helper_DB();
Skill_Grid sg = new Skill_Grid();
Mac_List ml;
public Mac_List_Add(Mac_List _ml)
{
InitializeComponent();
ml = _ml;
}
private void Mac_List_Add_Load(object sender, EventArgs e)
{
db.DBcon();
string compidx = PUB.user.CompanyIdx;
string MyName = PUB.user.UserName;
#region
// 담당자
string CompQuery = string.Format("SELECT `comp_name` FROM `Comp` WHERE `idx` = {0}", compidx);
string cmd = string.Format("SELECT `name` FROM `User_Data` WHERE `affil` = ({0});", CompQuery);
string[] cmdResult = db.DB_Send_CMD_Search(cmd).Split('|');
foreach (string UserName in cmdResult)
{
if (UserName != "")
cb_User.Items.Add(UserName);
}
cb_User.SelectedItem = MyName;
// 쉼표구분
string[] Gubun = { "tap", ",", "|" };
cb_Gubun.Items.AddRange(Gubun);
cb_Gubun.SelectedIndex = 0;
#endregion
}
private void Delivery_TextChanged(object sender, EventArgs e)
{
string divComp = tb_divComp.Text;
string divName = tb_divName.Text;
string ListName = string.Format("[{0}]{1}", divComp, divName);
tb_ExpectList.Text = ListName;
}
private void btn_Empty_Click(object sender, EventArgs e)
{
tb_divComp.Text = "";
tb_divName.Text = "";
dataGridView1.Rows.Clear();
}
private void btn_AddList_Click(object sender, EventArgs e)
{
string compidx = PUB.user.CompanyIdx;
string Today = DateTime.Now.ToString("yyyy-MM-dd");
string listName = tb_ExpectList.Text;
string charge = cb_User.Text;
int custidx = -1;
if (int.TryParse(tbCustomIDX.Text, out custidx) == false)
{
UTIL.MsgE("납품처를 올바르게 선택하세요");
tb_divComp.Focus();
tb_divComp.SelectAll();
return;
}
if (!CopyCheck(compidx, listName, Today))
{
MessageBox.Show("목록이 중복되었습니다! 다시 확인해주세요.", "Error");
return;
}
if (listName.isEmpty())
{
MessageBox.Show("목록명이 비어있습니다! 다시 확인해주세요.", "Error");
return;
}
string InBook_Area = "`compidx`, `list_name`, `date`, `header`, `num`, " +
"`book_name`, `author`, `book_comp`, `pay`, `count`, " +
"`total`, `isbn_marc`, `l_idx`";
List<string> InBook_List = new List<string>();
int TotalCount = 0;
string InList_Idx = "㏓InList_Idx♠";
string[] InList_Tbl = { "comp_num", "date", "list_name", "m_charge", "state", "vol", "chk_marc", "customer" };
string[] InList_Col = { compidx, Today, listName, charge, "진행", TotalCount.ToString(), "1", $"{custidx}" };
for (int a = 0; a < dataGridView1.Rows.Count; a++)
{
GridNotNull(a);
if (dataGridView1.Rows[a].Cells["BookName"].Value.ToString() == "")
break;
string header = dataGridView1.Rows[a].Cells["header"].Value.ToString();
string num = dataGridView1.Rows[a].Cells["num"].Value.ToString();
string bookname = dataGridView1.Rows[a].Cells["BookName"].Value.ToString();
string author = dataGridView1.Rows[a].Cells["Author"].Value.ToString();
string bookcomp = dataGridView1.Rows[a].Cells["BookComp"].Value.ToString();
string price = dataGridView1.Rows[a].Cells["Price"].Value.ToString().Replace(",", "");
string count = dataGridView1.Rows[a].Cells["Count"].Value.ToString().Replace(",", "");
string total = dataGridView1.Rows[a].Cells["Total"].Value.ToString().Replace(",", "");
string isbn = dataGridView1.Rows[a].Cells["ISBN"].Value.ToString();
string tmp = string.Format(
"(\"{0}\", \"{1}\", \"{2}\", \"{3}\", \"{4}\", " +
"\"{5}\", \"{6}\", \"{7}\", \"{8}\", \"{9}\", " +
"\"{10}\", \"{11}\", \"{12}\")",
compidx, listName, Today, header, num,
bookname, author, bookcomp, price, count,
total, isbn, InList_Idx);
TotalCount += Convert.ToInt32(count);
InBook_List.Add(tmp);
}
InList_Col[5] = TotalCount.ToString();
string InList_Cmd = db.DB_INSERT("Obj_List", InList_Tbl, InList_Col);
Helper_DB.ExcuteNonQuery(InList_Cmd);
string listIdx = db.DB_Send_CMD_Search(db.More_DB_Search("Obj_List", InList_Tbl, InList_Col, "`idx`")).Replace("|", "");
string InBook_Col = string.Join(", ", InBook_List).Replace(InList_Idx, listIdx);
string InBook_Cmd = string.Format("INSERT INTO `Obj_List_Book` ({0}) VALUES {1};", InBook_Area, InBook_Col);
Helper_DB.ExcuteNonQuery(InBook_Cmd);
MessageBox.Show("저장되었습니다!");
ml.btn_Lookup_Click(null, null);
}
#region AddList_Sub
/// <summary>
/// INSERT할 목록 중복체크
/// </summary>
/// <param name="compidx"></param>
/// <param name="listName"></param>
/// <param name="date"></param>
/// <returns></returns>
bool CopyCheck(string compidx, string listName, string date)
{
string cmd = string.Format(
"SELECT `list_name` " +
"FROM `Obj_List` " +
"WHERE `comp_num` = \"{0}\" " +
"AND `list_name` = \"{1}\" " +
"AND `date` = \"{2}\";", compidx, listName, date);
string cmdResult = db.DB_Send_CMD_Search(cmd);
if (cmdResult.Length > 2)
return false;
return true;
}
/// <summary>
/// Grid에서 Null인 부분을 ""로 바꿔줌
/// </summary>
/// <param name="row">rowIndex</param>
void GridNotNull(int row)
{
for (int a = 0; a < dataGridView1.Columns.Count; a++)
{
if (a == 5 || a == 7)
{
if (dataGridView1.Rows[row].Cells[a].Value == null)
dataGridView1.Rows[row].Cells[a].Value = "0";
}
else if (a == 6)
{
if (dataGridView1.Rows[row].Cells[a].Value == null)
dataGridView1.Rows[row].Cells[a].Value = "1";
}
else if (dataGridView1.Rows[row].Cells[a].Value == null)
dataGridView1.Rows[row].Cells[a].Value = "";
}
}
#endregion
private void btn_Upload_Click(object sender, EventArgs e)
{
string FilePath = "";
openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
if (openFileDialog1.ShowDialog() == DialogResult.OK)
FilePath = openFileDialog1.FileName;
string[] textValue = File.ReadAllLines(FilePath);
char Gubun = cb_Gubun.Text[0];
if (cb_Gubun.SelectedIndex == 0)
{
Gubun = '\t';
}
if (textValue.Length < 0)
return;
try
{
foreach (string Value in textValue)
{
string[] grid = Value.Split(Gubun);
dataGridView1.Rows.Add(grid);
}
}
catch (Exception ex)
{
MessageBox.Show("오류가 발생했습니다.\n" + ex.Message, "Error");
}
}
private void btn_DelRow_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("삭제하시겠습니까?", "삭제", MessageBoxButtons.YesNo);
if (result == DialogResult.No) return;
int row = dataGridView1.CurrentCell.RowIndex;
if (row < 0) return;
dataGridView1.Rows.Remove(dataGridView1.Rows[row]);
}
private void btn_Close_Click(object sender, EventArgs e)
{
this.Close();
}
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
sg.Print_Grid_Num(sender, e);
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
sg.Excel_to_DataGridView(sender, e);
}
private void label1_Click(object sender, EventArgs e)
{
LovCustom();
}
void LovCustom()
{
string compidx = PUB.user.CompanyIdx;
var inputsearch = tb_divComp.Text.Trim();
var where = $"campanyidx={compidx}";
if (inputsearch.isEmpty() == false)
{
where += $" and c_sangho like '%{inputsearch.Replace("'", "''")}%'";
}
var dt = Helper_DB.GetDT("Client", columns: "idx,c_sangho", orders: "c_sangho", wheres: where);
using (var f = new fSelectDT(dt))
if (f.ShowDialog() == DialogResult.OK)
{
var dr = f.SelectedRow;
if (dr == null) return;
tbCustomIDX.Text = dr["idx"]?.ToString() ?? string.Empty;
tb_divComp.Text = dr["c_sangho"]?.ToString() ?? string.Empty;
tb_divName.Focus(); //납품명으로 커서 이동
}
}
private void tb_divComp_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) LovCustom();
}
}
}