Files
Unimarc/unimarc/WindowsFormsApp1/회계/Purchase_Book.cs
2021-03-16 09:02:26 +09:00

130 lines
5.0 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.Threading.Tasks;
using System.Windows.Forms;
using WindowsFormsApp1.Delivery;
namespace WindowsFormsApp1.Account
{
public partial class Purchase_Book : Form
{
Main main;
Purchase_Aggregation pa;
Helper_DB db = new Helper_DB();
public bool call = false;
public string compidx;
bool chk_ac = false;
public Purchase_Book(Main _main)
{
InitializeComponent();
main = _main;
compidx = main.com_idx;
}
public Purchase_Book(Purchase_Aggregation _pa)
{
InitializeComponent();
pa = _pa;
compidx = pa.compidx;
call = true;
}
private void Purchase_Book_Load(object sender, EventArgs e)
{
db.DBcon();
start_Date.Value = new DateTime(int.Parse(DateTime.Now.ToString("yyyy")),
int.Parse(DateTime.Now.ToString("MM")), 1);
}
public void btn_Lookup_Click(object sender, EventArgs e)
{
if(call != false) { db.DBcon(); }
dataGridView1.Rows.Clear();
if (tb_purchase.Text == "") { return; }
string Select_Area = "`buy_date`, `book_name`, `count`, `persent`, `buy_money`, `payment`, `etc`";
string[] Search_col = { "compidx", "purchase" };
string[] Search_data = { compidx, tb_purchase.Text };
string db_tmp = db.More_DB_Search("Buy_ledger", Search_col, Search_data, Select_Area);
string[] db_data = db_tmp.Split('|');
input_Grid(db_data);
}
private void input_Grid(string[] db_data)
{
/* 매입일자 내용 수량 입고율 매입금액
* 결제금액 현잔액 비고 */
string[] grid = { "", "", "", "", "0",
"0", "0", "" };
for (int a = 0; a < db_data.Length - 1; a++)
{
if (a % 7 == 0) { grid[0] = db_data[a].Substring(0, 10); } // 매입일자
if (a % 7 == 1) { grid[1] = db_data[a]; } // 내용
if (a % 7 == 2) { grid[2] = db_data[a]; } // 수량
if (a % 7 == 3) { grid[3] = db_data[a]; } // 입고율
if (a % 7 == 4) { grid[4] = db_data[a]; } // 매입금액
if (a % 7 == 5) { grid[5] = db_data[a]; } // 결제금액
if (a % 7 == 6) { grid[7] = db_data[a]; Grid_Sub(grid); } // 비고
}
}
/* Grid 1행에 매입일자 쪽에 "이월미수금" 단어가 표출되며,
* 현 잔액에 이전에 있었던 거래 금액들이 계산되어 표출된다.
*/
private void Grid_Sub(string[] grid)
{
string str_start = start_Date.Value.ToString().Substring(0, 10);
string str_end = end_Date.Value.ToString().Substring(0, 10);
bool chk_grid = false;
if (DateTime.Parse(str_start) <= DateTime.Parse(grid[0]) &&
DateTime.Parse(str_end) >= DateTime.Parse(grid[0])) {
string[] account = {"이월미수금", "", "", "", "",
"", grid[6], ""};
if (dataGridView1.Rows.Count==0) {
account[6] = String.Format("{0:#,###}", Convert.ToInt32(account[6]));
dataGridView1.Rows.Add(account);
chk_ac = true;
}
chk_grid = true;
}
// 현잔액 = 매입금액 - 결제금액
int buy = Convert.ToInt32(grid[4]);
int pay = Convert.ToInt32(grid[5]);
int remain = Convert.ToInt32(grid[6].Replace(",", ""));
remain += buy - pay;
grid[6] = remain.ToString();
if (chk_grid == true) {
grid[2] = String.Format("{0:#,###}", Convert.ToInt32(grid[2]));
grid[4] = String.Format("{0:#,###}", Convert.ToInt32(grid[4]));
grid[5] = String.Format("{0:#,###}", Convert.ToInt32(grid[5]));
grid[6] = String.Format("{0:#,###}", Convert.ToInt32(grid[6]));
dataGridView1.Rows.Add(grid);
}
}
private void btn_Print_Click(object sender, EventArgs e)
{
}
private void tb_purchase_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
/* TODO: 완성시 주석 해제
Order_input_Search search = new Order_input_Search(this);
search.Where_Open = "Order";
search.TopMost = true;
search.Show(); */
btn_Lookup_Click(null, null);
}
}
private void btn_Close_Click(object sender, EventArgs e)
{
Close();
}
}
}