public IHttpActionResult PK9DataAdd([FromBody] ReceiptDataModel item)
        {
            DBConnector.DBConnector conn = new DBConnector.DBConnector();
            UtilLibs       utilLibs      = new UtilLibs();
            DocumentNumber docNum        = new DocumentNumber();

            if (conn.OpenConnection())
            {
                try
                {
                    string       SQLString = @"INSERT INTO receiptdata(DocumentBookNumber, DocumentNumber, DocumentDate, PayerType, 
                                         PayerRunno, AsReceiptTo, AsReceiptToRemark,
                                         ReceiptAmount, ReceiptPaytype, ReceiptDate, ReceiptBank, ReceiptBillNumber, 
                                         ReceiptChqBank, ReceiptChqNumber, ReceiptOther)
                                         VALUES (@DocumentBookNumber, @DocumentNumber, @DocumentDate, @PayerType, @PayerRunno, 
                                         @AsReceiptTo, @AsReceiptToRemark, @ReceiptAmount,
                                         @ReceiptPaytype, @ReceiptDate, @ReceiptBank, @ReceiptBillNumber, @ReceiptChqBank, 
                                         @ReceiptChqNumber, @ReceiptOther) ";
                    MySqlCommand qExe      = new MySqlCommand
                    {
                        Connection  = conn.connection,
                        CommandText = SQLString
                    };
                    docNum = utilLibs.GetDocumentNo("pk9");
                    qExe.Parameters.AddWithValue("@documentbooknumber", docNum.BookNo);
                    qExe.Parameters.AddWithValue("@documentnumber", docNum.DocumentNo);
                    qExe.Parameters.AddWithValue("@documentdate", Convert.ToDateTime(item.DocumentDate, new CultureInfo("en-US")));
                    qExe.Parameters.AddWithValue("@PayerType", item.PayerType);
                    qExe.Parameters.AddWithValue("@PayerRunno", item.PayerRunno);
                    qExe.Parameters.AddWithValue("@AsReceiptTo", item.AsReceiptTo);
                    qExe.Parameters.AddWithValue("@AsReceiptToRemark", item.AsReceiptToRemark);
                    qExe.Parameters.AddWithValue("@ReceiptAmount", item.ReceiptAmount);
                    qExe.Parameters.AddWithValue("@ReceiptPaytype", item.ReceiptPayType);
                    qExe.Parameters.AddWithValue("@ReceiptDate", Convert.ToDateTime(item.ReceiptDate, new CultureInfo("en-US")));
                    qExe.Parameters.AddWithValue("@ReceiptBank", item.ReceiptBank);
                    qExe.Parameters.AddWithValue("@ReceiptBillNumber", item.ReceiptBillNumber);
                    qExe.Parameters.AddWithValue("@ReceiptChqBank", item.ReceiptChqBank);
                    qExe.Parameters.AddWithValue("@ReceiptChqNumber", item.ReceiptChqNumber);
                    qExe.Parameters.AddWithValue("@ReceiptOther", item.ReceiptOther);
                    qExe.ExecuteNonQuery();
                    long returnid = qExe.LastInsertedId;
                    conn.CloseConnection();
                    return(Json(new ResultDataModel {
                        success = true, errorMessage = "", returnRunno = returnid.ToString()
                    }));
                }
                catch (Exception e)
                {
                    return(Json(new ResultDataModel {
                        success = false, errorMessage = e.Message, returnRunno = ""
                    }));
                }
            }
            else
            {
                return(Json(new ResultDataModel {
                    success = false, errorMessage = "Database connect fail!", returnRunno = ""
                }));
            }
        }
Ejemplo n.º 2
0
        public void ทดสอบแก้ไขPK9()
        {
            PK9DataController service  = new PK9DataController();
            ReceiptDataModel  item     = new ReceiptDataModel();
            UtilLibs          utilLibs = new UtilLibs();
            DocumentNumber    docNum   = utilLibs.GetDocumentNo("pk9");

            item.DocumentRunno      = 4;
            item.DocumentBookNumber = "1";
            item.DocumentNumber     = "AC0004";
            item.DocumentDate       = DateTime.Now;
            item.PayerType          = "1";
            item.PayerRunno         = 3;
            item.AsReceiptTo        = "ค่าบำรุงพรรคการเมืองรายปี";
            item.AsReceiptToRemark  = "";
            item.ReceiptAmount      = 6500;
            item.ReceiptPayType     = "";
            item.ReceiptDate        = DateTime.Now;
            item.ReceiptBank        = "";
            item.ReceiptBillNumber  = "";
            item.ReceiptChqBank     = "";
            item.ReceiptChqNumber   = "";
            item.ReceiptOther       = "";
            var result = service.PK9DataEdit(item);

            Assert.IsTrue(result != null);
        }
Ejemplo n.º 3
0
        public void ทดสอบบันทึกเอกสารPK9()
        {
            PK9DataController service  = new PK9DataController();
            ReceiptDataModel  item     = new ReceiptDataModel();
            UtilLibs          utilLibs = new UtilLibs();
            DocumentNumber    docNum   = utilLibs.GetDocumentNo("pk9");

            item.DocumentBookNumber = docNum.BookNo;
            item.DocumentNumber     = docNum.DocumentNo;
            item.DocumentDate       = DateTime.Now;
            item.PayerType          = "2";
            item.PayerRunno         = 1;
            item.AsReceiptTo        = "ค่าจัดกิจกรรมระดมทุน";
            item.AsReceiptToRemark  = "";
            item.ReceiptAmount      = 1750;
            item.ReceiptPayType     = "";
            item.ReceiptDate        = DateTime.Now;
            item.ReceiptBank        = "";
            item.ReceiptBillNumber  = "";
            item.ReceiptChqBank     = "";
            item.ReceiptChqNumber   = "";
            item.ReceiptOther       = "";
            var result = service.PK9DataAdd(item);

            Assert.IsTrue(result != null);
        }
        public IHttpActionResult GetPK13Term()
        {
            List <TermofPK13> result = new List <TermofPK13>();
            UtilLibs          Ulib   = new UtilLibs();

            DBConnector.DBConnector conn = new DBConnector.DBConnector();
            string SQLString             = @"select distinct year(DocumentDate) vYear, month(DocumentDate) vMonth from donatedata";

            if (conn.OpenConnection())
            {
                try
                {
                    MySqlCommand qExe = new MySqlCommand
                    {
                        Connection  = conn.connection,
                        CommandText = SQLString
                    };
                    MySqlDataReader dataReader = qExe.ExecuteReader();
                    if (dataReader.HasRows)
                    {
                        while (dataReader.Read())
                        {
                            result.Add(new TermofPK13
                            {
                                Month    = dataReader["vMonth"].ToString(),
                                Year     = dataReader["vYear"].ToString(),
                                TermName = Ulib.getMonthShortName("th", int.Parse(dataReader["vMonth"].ToString())) + " " + (int.Parse(dataReader["vYear"].ToString()) + 543).ToString()
                            });
                        }
                        return(Json(result));
                    }
                    else
                    {
                        return(BadRequest("Data Empty"));
                    }
                }
                catch (Exception e)
                {
                    return(BadRequest(e.Message));
                }
            }
            else
            {
                return(BadRequest("Database connect fail!"));
            }
        }
        public IHttpActionResult PK9GetByID(string id)
        {
            UtilLibs         utilLibs = new UtilLibs();
            ReceiptDataModel result   = new ReceiptDataModel();

            DBConnector.DBConnector conn = new DBConnector.DBConnector();
            if (conn.OpenConnection())
            {
                try
                {
                    string sqlString;
                    if (!string.IsNullOrEmpty(id))
                    {
                        sqlString = @"select tb1.*, 
                                      tb2.MemberId PayerID, tb2.MemberPreName PreName, 
                                      tb2.MemberName Name, tb2.MemberSurname SurName,
                                      tb2.HouseNumber HouseNum, tb2.Soi, tb2.Road, 
                                      tb2.Moo, tb2.Building, tb2.Tambon,
                                      tb2.Amphur, tb2.Province, tb2.Zipcode, 
                                      tb2.Telephone, tb2.MemberCitizenId CitizenID
                                      from receiptdata tb1, memberdata tb2
                                      where tb1.PayerRunno = tb2.MemberRunno
                                      and tb1.PayerType = '1'
                                      and tb1.DocumentRunno = @DocumentRunno
                                      union
                                      select tb1.*, 
                                      tb2.DonatorId PayerID, tb2.DonatorPreName PreName, 
                                      tb2.DonatorName Name, tb2.DonatorSurName SurName,
                                      tb2.HouseNumber, tb2.Soi, tb2.Road, 
                                      tb2.Moo, tb2.Building, tb2.Tambon,
                                      tb2.Amphur, tb2.Province, tb2.Zipcode, 
                                      tb2.Telephone, tb2.DonatorCitizenId CitizenID
                                      from receiptdata tb1, donatordata tb2
                                      where tb1.PayerRunno = tb2.DonatorRunno
                                      and tb1.PayerType = '2'
                                      and tb1.DocumentRunno = @DocumentRunno";
                    }
                    else
                    {
                        return(Json("Document Number is blank!"));
                    }

                    MySqlCommand qExe = new MySqlCommand
                    {
                        Connection  = conn.connection,
                        CommandText = sqlString
                    };
                    qExe.Parameters.AddWithValue("@DocumentRunno", id);

                    MySqlDataReader dataReader = qExe.ExecuteReader();
                    while (dataReader.Read())
                    {
                        result.DocumentRunno      = int.Parse(dataReader["documentrunno"].ToString());
                        result.DocumentBookNumber = dataReader["documentbooknumber"].ToString();
                        result.DocumentNumber     = dataReader["documentnumber"].ToString();
                        result.DocumentDate       = Convert.ToDateTime(dataReader["documentdate"].ToString(), new CultureInfo("en-US"));
                        result.PayerType          = dataReader["PayerType"].ToString();
                        result.PayerRunno         = int.Parse(dataReader["PayerRunno"].ToString());
                        result.AsReceiptTo        = dataReader["AsReceiptTo"].ToString();
                        result.AsReceiptToRemark  = dataReader["AsReceiptToRemark"].ToString();
                        result.ReceiptAmount      = double.Parse(dataReader["ReceiptAmount"].ToString());
                        result.HouseNumber        = dataReader["HouseNum"].ToString();
                        result.Soi               = dataReader["Soi"].ToString();
                        result.Road              = dataReader["Road"].ToString();
                        result.Moo               = dataReader["Moo"].ToString();
                        result.Building          = dataReader["Building"].ToString();
                        result.Tambon            = dataReader["Tambon"].ToString();
                        result.Amphur            = dataReader["Amphur"].ToString();
                        result.Province          = dataReader["Province"].ToString();
                        result.Zipcode           = dataReader["Zipcode"].ToString();
                        result.Telephone         = dataReader["Telephone"].ToString();
                        result.PayerId           = dataReader["PayerID"].ToString();
                        result.PayerName         = dataReader["PreName"].ToString() + dataReader["Name"].ToString() + "   " + dataReader["SurName"].ToString();
                        result.ReceiptPayType    = dataReader["ReceiptPayType"].ToString();
                        result.ReceiptDate       = Convert.ToDateTime(dataReader["ReceiptDate"].ToString(), new CultureInfo("en-US"));
                        result.ReceiptBank       = dataReader["ReceiptBank"].ToString();
                        result.BankName          = utilLibs.GetBankName(dataReader["ReceiptBank"].ToString());
                        result.ReceiptBillNumber = dataReader["ReceiptBillNumber"].ToString();
                        result.ReceiptChqBank    = dataReader["ReceiptChqBank"].ToString();
                        result.ReceiptChqNumber  = dataReader["ReceiptChqNumber"].ToString();
                        result.ReceiptOther      = dataReader["ReceiptOther"].ToString();
                        result.CitizenId         = dataReader["CitizenID"].ToString();
                        result.AmountStr         = utilLibs.ThaiBaht(dataReader["ReceiptAmount"].ToString());
                    }
                    dataReader.Close();
                    conn.CloseConnection();
                    return(Json(result));
                }
                catch (Exception e)
                {
                    return(BadRequest(e.Message));
                }
            }
            else
            {
                return(BadRequest("Database connect fail!"));
            }
        }
        public IHttpActionResult PK9ListAll()
        {
            UtilLibs utilLibs = new UtilLibs();
            List <ReceiptDataModel> result = new List <ReceiptDataModel>();

            DBConnector.DBConnector conn = new DBConnector.DBConnector();
            if (conn.OpenConnection())
            {
                try
                {
                    string sqlString = @"select tb1.*, 
                                         tb2.MemberId PayerID, tb2.MemberPreName PreName, 
                                         tb2.MemberName Name, tb2.MemberSurname SurName,
                                         tb2.HouseNumber HouseNum, tb2.Soi, tb2.Road, 
                                         tb2.Moo, tb2.Building, tb2.Tambon,
                                         tb2.Amphur, tb2.Province, tb2.Zipcode, 
                                         tb2.Telephone, tb2.MemberCitizenId CitizenID
                                         from receiptdata tb1, memberdata tb2
                                         where tb1.PayerRunno = tb2.MemberRunno
                                         and tb1.PayerType = '1'
                                         union
                                         select tb1.*, 
                                         tb2.DonatorId PayerID, tb2.DonatorPreName PreName, 
                                         tb2.DonatorName Name, tb2.DonatorSurName SurName,
                                         tb2.HouseNumber, tb2.Soi, tb2.Road, 
                                         tb2.Moo, tb2.Building, tb2.Tambon,
                                         tb2.Amphur, tb2.Province, tb2.Zipcode, 
                                         tb2.Telephone, tb2.DonatorCitizenId CitizenID
                                         from receiptdata tb1, donatordata tb2
                                         where tb1.PayerRunno = tb2.DonatorRunno
                                         and tb1.PayerType = '2'
                                         order by DocumentRunno";

                    /*
                     * string sqlString = @"select tb1.*, tb2.* from receiptdata tb1, memberdata tb2
                     *                   where tb1.PayerRunno = tb2.MemberRunno
                     *                   order by tb1.DocumentRunno";
                     */
                    MySqlCommand qExe = new MySqlCommand
                    {
                        Connection  = conn.connection,
                        CommandText = sqlString
                    };
                    MySqlDataReader dataReader = qExe.ExecuteReader();
                    while (dataReader.Read())
                    {
                        ReceiptDataModel detail = new ReceiptDataModel
                        {
                            DocumentRunno      = int.Parse(dataReader["documentrunno"].ToString()),
                            DocumentBookNumber = dataReader["documentbooknumber"].ToString(),
                            DocumentNumber     = dataReader["documentnumber"].ToString(),
                            DocumentDate       = Convert.ToDateTime(dataReader["DocumentDate"].ToString(), new CultureInfo("en-US")),
                            PayerType          = dataReader["PayerType"].ToString(),
                            PayerRunno         = int.Parse(dataReader["PayerRunno"].ToString()),
                            AsReceiptTo        = dataReader["AsReceiptTo"].ToString(),
                            AsReceiptToRemark  = dataReader["AsReceiptToRemark"].ToString(),
                            ReceiptAmount      = double.Parse(dataReader["ReceiptAmount"].ToString()),
                            HouseNumber        = dataReader["HouseNum"].ToString(),
                            Soi               = dataReader["Soi"].ToString(),
                            Road              = dataReader["Road"].ToString(),
                            Moo               = dataReader["Moo"].ToString(),
                            Building          = dataReader["Building"].ToString(),
                            Tambon            = dataReader["Tambon"].ToString(),
                            Amphur            = dataReader["Amphur"].ToString(),
                            Province          = dataReader["Province"].ToString(),
                            Zipcode           = dataReader["Zipcode"].ToString(),
                            Telephone         = dataReader["Telephone"].ToString(),
                            PayerId           = dataReader["PayerID"].ToString(),
                            PayerName         = dataReader["PreName"].ToString() + dataReader["Name"].ToString() + "   " + dataReader["SurName"].ToString(),
                            ReceiptPayType    = dataReader["ReceiptPayType"].ToString(),
                            ReceiptDate       = Convert.ToDateTime(dataReader["ReceiptDate"].ToString(), new CultureInfo("en-US")),
                            ReceiptBank       = dataReader["ReceiptBank"].ToString(),
                            BankName          = utilLibs.GetBankName(dataReader["ReceiptBank"].ToString()),
                            ReceiptBillNumber = dataReader["ReceiptBillNumber"].ToString(),
                            ReceiptChqBank    = dataReader["ReceiptChqBank"].ToString(),
                            ReceiptChqNumber  = dataReader["ReceiptChqNumber"].ToString(),
                            ReceiptOther      = dataReader["ReceiptOther"].ToString(),
                            CitizenId         = dataReader["CitizenID"].ToString(),
                            AmountStr         = utilLibs.ThaiBaht(dataReader["ReceiptAmount"].ToString())
                        };
                        result.Add(detail);
                    }
                    dataReader.Close();
                    conn.CloseConnection();
                    return(Json(result));
                }
                catch (Exception e)
                {
                    return(BadRequest(e.Message));
                }
            }
            else
            {
                return(BadRequest("Database connect fail!"));
            }
        }
        public IHttpActionResult GetDocPK12ListAll()
        {
            List <PK12Model> result   = new List <PK12Model>();
            UtilLibs         utilLibs = new UtilLibs();

            DBConnector.DBConnector conn = new DBConnector.DBConnector();
            string SQLString;

            if (conn.OpenConnection())
            {
                try
                {
                    MasterData masterData = GetMasterData();
                    SQLString = @"select doc.*, dt.*
                                  from document12 doc left join donatordata dt on doc.DonatorRunno = dt.DonatorRunno
                                  order by DocBookNo, DocNo";
                    MySqlCommand qExe = new MySqlCommand
                    {
                        Connection  = conn.connection,
                        CommandText = SQLString
                    };
                    MySqlDataReader dataReader = qExe.ExecuteReader();
                    while (dataReader.Read())
                    {
                        PK12Model row = new PK12Model();
                        row.DocumentRunno    = int.Parse(dataReader["DocumentRunno"].ToString());
                        row.PartyName        = masterData.PartyName;
                        row.PartyTel         = masterData.Telephone;
                        row.PartyTaxID       = "เลขประจำตัวผู้เสียภาษี " + masterData.TaxID;
                        row.PartyAddr1       = GetAddrRow1(masterData);
                        row.PartyAddr2       = GetAddrRow2(masterData);
                        row.DocBookNo        = dataReader["DocBookNo"].ToString();
                        row.DocNum           = dataReader["DocNo"].ToString();
                        row.DocDate          = DateTime.Parse(dataReader["DocDate"].ToString());
                        row.DocDateStr       = DateTime.Parse(dataReader["DocDate"].ToString()).ToString("dd/MM/yyyy");
                        row.DonatorName      = (dataReader["DonatorPreName"].ToString() + dataReader["DonatorName"].ToString() + "   " + dataReader["DonatorSurName"].ToString()).Trim();
                        row.CitizenID        = dataReader["DonatorCitizenID"].ToString();
                        row.RegisterID       = dataReader["DonatorregisterNo"].ToString();
                        row.TaxID            = dataReader["DonatorTaxId"].ToString();
                        row.HouseNum         = dataReader["HouseNumber"].ToString();
                        row.Moo              = dataReader["Moo"].ToString();
                        row.Building         = dataReader["Building"].ToString();
                        row.Soi              = dataReader["Soi"].ToString();
                        row.Road             = dataReader["Road"].ToString();
                        row.Tambon           = dataReader["Tambon"].ToString();
                        row.Amphur           = dataReader["Amphur"].ToString();
                        row.Province         = dataReader["Province"].ToString();
                        row.Zipcode          = dataReader["Zipcode"].ToString();
                        row.Telephone        = dataReader["Telephone"].ToString();
                        row.AssetFlag        = dataReader["AssetFlag"].ToString();
                        row.AssetAmount      = double.Parse(dataReader["AssetAmount"].ToString());
                        row.AssetAmountStr   = utilLibs.ThaiBaht(dataReader["AssetAmount"].ToString());
                        row.AssetDesc        = dataReader["AssetDesc"].ToString();
                        row.BenefitFlag      = dataReader["BenefitFlag"].ToString();
                        row.BenefitAmount    = double.Parse(dataReader["BenefitAmount"].ToString());
                        row.BenefitAmountStr = utilLibs.ThaiBaht(dataReader["BenefitAmount"].ToString());
                        row.BenefitDesc      = dataReader["BenefitDesc"].ToString();
                        row.Amount           = double.Parse(dataReader["DonateAmount"].ToString());
                        row.AmountStr        = utilLibs.ThaiBaht(dataReader["DonateAmount"].ToString());
                        result.Add(row);
                    }
                    dataReader.Close();
                    dataReader.Dispose();
                    return(Json(result));
                }
                catch (Exception e)
                {
                    return(BadRequest(e.Message));
                }
            }
            else
            {
                return(BadRequest("Database connect fail!"));
            }
        }
        public IHttpActionResult GenDocumentPK11(string documentRunno)
        {
            DBConnector.DBConnector conn = new DBConnector.DBConnector();
            UtilLibs utilLibs            = new UtilLibs();

            if (conn.OpenConnection())
            {
                try
                {
                    string       SQLString = @"select docs.*, dt.DonateAssetType 
                                         from donatedetaildata docs left join donatetype dt 
                                                 on docs.DonateTypeRunno = dt.DonateTypeRunno 
                                         where DocumentRunno = @DocumentRunno
                                         and dt.DonateAssetType = '1'
                                         and (docs.DocRefNo is null or docs.DocRefNo = '')
                                         order by docs.DetailRunno";
                    MySqlCommand qExe      = new MySqlCommand
                    {
                        Connection  = conn.connection,
                        CommandText = SQLString
                    };
                    qExe.Parameters.AddWithValue("DocumentRunno", documentRunno);
                    MySqlDataReader detailReader = qExe.ExecuteReader();
                    bool            CashType     = false;
                    bool            BillType     = false;
                    bool            ChqueType    = false;
                    double          DonateAmount = 0;
                    List <int>      RunnoList    = new List <int>();
                    while (detailReader.Read())
                    {
                        if (string.IsNullOrEmpty(detailReader["BankChqueNo"].ToString()) &&
                            string.IsNullOrEmpty(detailReader["Bill"].ToString()))
                        {
                            CashType = true;
                        }
                        else if (!string.IsNullOrEmpty(detailReader["BankChqueNo"].ToString()) &&
                                 string.IsNullOrEmpty(detailReader["Bill"].ToString()))
                        {
                            ChqueType = true;
                        }
                        else if (string.IsNullOrEmpty(detailReader["BankChqueNo"].ToString()) &&
                                 !string.IsNullOrEmpty(detailReader["Bill"].ToString()))
                        {
                            BillType = true;
                        }
                        DonateAmount = DonateAmount + double.Parse(detailReader["Amount"].ToString());
                        RunnoList.Add(int.Parse(detailReader["DetailRunno"].ToString()));
                    }
                    detailReader.Close();

                    if (CashType || ChqueType || BillType)
                    {
                        SQLString = @"select * from donatedata where DocumentRunno = @DocumentRunno";
                        qExe      = new MySqlCommand
                        {
                            Connection  = conn.connection,
                            CommandText = SQLString
                        };
                        qExe.Parameters.AddWithValue("DocumentRunno", documentRunno);
                        detailReader = qExe.ExecuteReader();
                        DocumentNumber docNum       = new DocumentNumber();
                        DateTime       docDate      = DateTime.Now;
                        int            DonatorRunno = -1;
                        while (detailReader.Read())
                        {
                            DonatorRunno = int.Parse(detailReader["DonatorRunno"].ToString());
                        }
                        detailReader.Close();
                        if (DonateAmount > 0 && DonatorRunno != -1)
                        {
                            docNum    = utilLibs.GetDocumentNo("pk11");
                            SQLString = @"INSERT INTO document11 (DocumentType, DocBookNo, DocNo,
                                          DocDate, DonatorRunno, DonateAmount, CashFlag, BillFlag, ChqueFlag)
                                          VALUES (@DocumentType, @DocBookNo, @DocNo, @DocDate, @DonatorRunno,
                                          @DonateAmount, @CashFlag, @BillFlag, @ChqueFlag)";
                            qExe      = new MySqlCommand
                            {
                                Connection  = conn.connection,
                                CommandText = SQLString
                            };
                            qExe.Parameters.AddWithValue("DocumentType", "PK11");
                            qExe.Parameters.AddWithValue("DocBookNo", docNum.BookNo);
                            qExe.Parameters.AddWithValue("DocNo", docNum.DocumentNo);
                            qExe.Parameters.AddWithValue("DocDate", docDate);
                            qExe.Parameters.AddWithValue("DonatorRunno", DonatorRunno);
                            qExe.Parameters.AddWithValue("DonateAmount", DonateAmount);
                            if (CashType)
                            {
                                qExe.Parameters.AddWithValue("CashFlag", "Y");
                            }
                            else
                            {
                                qExe.Parameters.AddWithValue("CashFlag", "N");
                            }
                            if (BillType)
                            {
                                qExe.Parameters.AddWithValue("BillFlag", "Y");
                            }
                            else
                            {
                                qExe.Parameters.AddWithValue("BillFlag", "N");
                            }
                            if (ChqueType)
                            {
                                qExe.Parameters.AddWithValue("ChqueFlag", "Y");
                            }
                            else
                            {
                                qExe.Parameters.AddWithValue("ChqueFlag", "N");
                            }
                            qExe.ExecuteNonQuery();
                            long returnid = qExe.LastInsertedId;
                            SQLString = @"update donatedetaildata set DocRefNo = @DocRefNo, DocRefBook = @DocRefBook, DocType = @DocType
                                          where DetailRunno = @DetailRunno";
                            qExe      = new MySqlCommand
                            {
                                Connection  = conn.connection,
                                CommandText = SQLString
                            };
                            foreach (var runno in RunnoList)
                            {
                                qExe.Parameters.Clear();
                                qExe.Parameters.AddWithValue("DetailRunno", runno);
                                qExe.Parameters.AddWithValue("DocRefNo", docNum.DocumentNo);
                                qExe.Parameters.AddWithValue("DocRefBook", docNum.BookNo);
                                qExe.Parameters.AddWithValue("DocType", "PK11");
                                qExe.ExecuteNonQuery();
                            }
                            conn.CloseConnection();
                            return(Json(new ResultDataModel {
                                success = true, errorMessage = "", returnRunno = returnid.ToString()
                            }));
                        }
                        else
                        {
                            return(Json(new ResultDataModel {
                                success = false, errorMessage = "ข้อมูลไม่ถูกต้องไม่สามารถสร้างเอกสาร พ.ก. 11 ได้  หรือทำการสร้างเอกสารไปแล้ว", returnRunno = ""
                            }));
                        }
                    }
                    else
                    {
                        return(Json(new ResultDataModel {
                            success = true, errorMessage = "ไม่มีข้อมูลในประเภทเอกสาร พ.ก. 11  หรือทำการสร้างเอกสารไปแล้ว", returnRunno = ""
                        }));
                    }
                }
                catch (Exception e)
                {
                    return(Json(new ResultDataModel {
                        success = false, errorMessage = e.Message, returnRunno = ""
                    }));
                }
            }
            else
            {
                return(Json(new ResultDataModel {
                    success = false, errorMessage = "Database connect fail!", returnRunno = ""
                }));
            }
        }
        public PK13Model getPK13Data(DateTime BDate, DateTime EDate)
        {
            DBConnector.DBConnector conn = new DBConnector.DBConnector();
            UtilLibs  Ulib   = new UtilLibs();
            PK13Model result = new PK13Model();

            result.DetailData = new List <PK13DetailModel>();
            MasterData masterData = GetMasterData();

            result.PartyName    = masterData.PartyName;
            result.AnnouDay     = DateTime.Now.Day.ToString();
            result.AnnouMonth   = Ulib.getMonthShortName("th", DateTime.Now.Month);
            result.AnnouYear    = (DateTime.Now.Year + 543).ToString();
            result.SDay         = BDate.Day.ToString();
            result.SMonth       = Ulib.getMonthShortName("th", BDate.Month);
            result.SYear        = (BDate.Year + 543).ToString();
            result.EDay         = EDate.Day.ToString();
            result.EMonth       = Ulib.getMonthShortName("th", EDate.Month);
            result.EYear        = (EDate.Year + 543).ToString();
            result.ErrorMessage = "";
            double SumCash  = 0;
            double SumAsset = 0;
            string SQLString;

            if (conn.OpenConnection())
            {
                try
                {
                    SQLString = @"select tb1.DocumentRunno, tb1.DonatorRunno, tb1.DocumentDate,
                                  tb2.Amount, tb2.DonateTypeRunno, tb2.DetailRunno, 
                                  tb3.DonatorPreName, tb3.DonatorName, tb3.DonatorSurName, tb3.DonatorCitizenId,
                                  tb3.HouseNumber, tb3.Moo, tb3.Building, tb3.Soi, tb3.Road, tb3.Tambon, 
                                  tb3.Amphur, tb3.Province, tb3.Zipcode, tb3.Telephone,
                                  tb3.Career, tb3.Nationality
                                  from donatedata tb1, donatedetaildata tb2, donatordata tb3
                                  where tb1.DocumentRunno = tb2.DocumentRunno
                                  and tb1.DonatorRunno = tb3.DonatorRunno
                                  and tb1.DocumentDate >= @BDATE
                                  and tb1.DocumentDate <= @EDATE
                                  and (tb3.DonatorTaxId is null or tb3.DonatorTaxId = '')
                                  order by DocumentDate, DonatorName";
                    MySqlCommand qExe = new MySqlCommand
                    {
                        Connection  = conn.connection,
                        CommandText = SQLString
                    };
                    qExe.Parameters.AddWithValue("BDATE", BDate);
                    qExe.Parameters.AddWithValue("EDATE", EDate);
                    MySqlDataReader dataReader = qExe.ExecuteReader();
                    if (dataReader.HasRows)
                    {
                        DateTime        vDate  = new DateTime();
                        PK13DetailModel detail = new PK13DetailModel();

                        while (dataReader.Read())
                        {
                            if (vDate != DateTime.Parse(dataReader["DocumentDate"].ToString()) ||
                                detail.Name != dataReader["DonatorName"].ToString())
                            {
                                if (vDate != new DateTime())
                                {
                                    result.DetailData.Add(detail);
                                }

                                vDate            = DateTime.Parse(dataReader["DocumentDate"].ToString());
                                detail           = new PK13DetailModel();
                                detail.PreName   = dataReader["DonatorPreName"].ToString();
                                detail.Name      = dataReader["DonatorName"].ToString();
                                detail.SurName   = dataReader["DonatorSurName"].ToString();
                                detail.Telephone = dataReader["Telephone"].ToString();
                                detail.Addr1     = GetAddrRow1(dataReader["HouseNumber"].ToString(),
                                                               dataReader["Moo"].ToString(),
                                                               dataReader["Building"].ToString(),
                                                               dataReader["Soi"].ToString(),
                                                               dataReader["Road"].ToString());
                                detail.Addr2 = GetAddrRow2(dataReader["Tambon"].ToString(),
                                                           dataReader["Amphur"].ToString(),
                                                           dataReader["Province"].ToString(),
                                                           dataReader["Zipcode"].ToString());
                                detail.CitizenID = dataReader["DonatorCitizenId"].ToString();
                                detail.DateStr   = vDate.Day + " " + Ulib.getMonthShortName("th", vDate.Month) + " " +
                                                   (vDate.Year + 543);
                                detail.Career      = dataReader["Career"].ToString();
                                detail.Nationality = dataReader["Nationality"].ToString();
                                detail.Cash        = 0;
                                detail.Asset       = 0;
                            }
                            else
                            {
                                if (dataReader["DonateTypeRunno"].ToString() == "1" ||
                                    dataReader["DonateTypeRunno"].ToString() == "5" ||
                                    dataReader["DonateTypeRunno"].ToString() == "6")
                                {
                                    detail.Cash = detail.Cash + double.Parse(dataReader["Amount"].ToString());
                                    SumCash     = SumCash + double.Parse(dataReader["Amount"].ToString());
                                }
                                else
                                {
                                    detail.Asset = detail.Asset + double.Parse(dataReader["Amount"].ToString());
                                    SumAsset     = SumAsset + double.Parse(dataReader["Amount"].ToString());
                                }
                            }
                        }
                        result.DetailData.Add(detail);
                        result.TotalCash      = SumCash;
                        result.TotalAsset     = SumAsset;
                        result.TotalAmount    = SumCash + SumAsset;
                        result.TotalAmountStr = Ulib.ThaiBaht(result.TotalAmount.ToString());
                        return(result);
                    }
                    else
                    {
                        result.ErrorMessage = "Data Empty";
                        return(result);
                    }
                }
                catch (Exception e)
                {
                    result.ErrorMessage = e.Message;
                    return(result);
                }
            }
            else
            {
                result.ErrorMessage = "Database connect fail!";
                return(result);
            }
        }