예제 #1
0
        public static List <ArtrnMin> InvoiceList(string data_path, TransactionStatus.STATUS status = TransactionStatus.STATUS.WARRANTY, INVOICE_TYPE invoice_type = INVOICE_TYPE.IV)
        {
            if (!File.Exists(data_path + "artrn.dbf"))
            {
                throw new Exception("ค้นหาไฟล์ artrn.dbf ไม่พบ");
            }
            if (!File.Exists(data_path + "stcrd.dbf"))
            {
                throw new Exception("ค้นหาไฟล์ stcrd.dbf ไม่พบ");
            }
            if (!File.Exists(data_path + "stmas.dbf"))
            {
                throw new Exception("ค้นหาไฟล์ stmas.dbf ไม่พบ");
            }
            if (!File.Exists(data_path + "isacc.dbf"))
            {
                throw new Exception("ค้นหาไฟล์ isacc.dbf ไม่พบ");
            }
            if (!File.Exists(data_path + "artrnrm.dbf"))
            {
                throw new Exception("ค้นหาไฟล์ artrnrm.dbf ไม่พบ");
            }

            DataTable dt = new DataTable();

            using (OleDbConnection conn = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=" + data_path))
            {
                conn.Open();
                var cmd = conn.CreateCommand();
                switch (status)
                {
                case TransactionStatus.STATUS.ALL:
                    cmd.CommandText  = "Select artrn.docnum, artrn.docdat, artrn.cuscod, artrn.num2, armas.cusnam From artrn ";
                    cmd.CommandText += "Left Join armas On artrn.cuscod = armas.cuscod ";
                    cmd.CommandText += "Where artrn.docnum In ";
                    cmd.CommandText += "(Select stcrd.docnum From stcrd Left Join stmas On stcrd.stkcod=stmas.stkcod Left Join isacc On stmas.acccod=isacc.acccod Where isacc.method='X') ";
                    cmd.CommandText += "And rectyp='" + ((int)invoice_type).ToString() + "'";
                    cmd.CommandText += "Order By docdat,docnum ASC";
                    break;

                case TransactionStatus.STATUS.WARRANTY:
                    cmd.CommandText  = "Select artrn.docnum, artrn.docdat, artrn.cuscod, artrn.num2, armas.cusnam From artrn ";
                    cmd.CommandText += "Left Join armas On artrn.cuscod = armas.cuscod ";
                    cmd.CommandText += "Where artrn.docnum In ";
                    cmd.CommandText += "(Select stcrd.docnum From stcrd Left Join stmas On stcrd.stkcod=stmas.stkcod Left Join isacc On stmas.acccod=isacc.acccod Where isacc.method='X') ";
                    cmd.CommandText += "And rectyp='" + ((int)invoice_type).ToString() + "' And num2=0 ";
                    cmd.CommandText += "Order By docdat,docnum ASC";
                    break;

                case TransactionStatus.STATUS.WARRANTED:
                    cmd.CommandText  = "Select artrn.docnum, artrn.docdat, artrn.cuscod, artrn.num2, armas.cusnam From artrn ";
                    cmd.CommandText += "Left Join armas On artrn.cuscod = armas.cuscod ";
                    cmd.CommandText += "Where artrn.docnum In ";
                    cmd.CommandText += "(Select stcrd.docnum From stcrd Left Join stmas On stcrd.stkcod=stmas.stkcod Left Join isacc On stmas.acccod=isacc.acccod Where isacc.method='X') ";
                    cmd.CommandText += "And rectyp='" + ((int)invoice_type).ToString() + "' And num2>0 ";
                    cmd.CommandText += "Order By docdat,docnum ASC";
                    break;

                default:
                    cmd.CommandText  = "Select artrn.docnum, artrn.docdat, artrn.cuscod, artrn.num2, armas.cusnam From artrn ";
                    cmd.CommandText += "Left Join armas On artrn.cuscod = armas.cuscod ";
                    cmd.CommandText += "Where artrn.docnum In ";
                    cmd.CommandText += "(Select stcrd.docnum From stcrd Left Join stmas On stcrd.stkcod=stmas.stkcod Left Join isacc On stmas.acccod=isacc.acccod Where isacc.method='X') ";
                    cmd.CommandText += "And rectyp='" + ((int)invoice_type).ToString() + "'";
                    cmd.CommandText += "Order By docdat,docnum ASC";
                    break;
                }
                //if (status == TransactionStatus.STATUS.WARRANTY)
                //{
                //    cmd.CommandText = "Select artrn.docnum, artrn.docdat, artrn.cuscod, artrn.num2, armas.cusnam From artrn ";
                //    cmd.CommandText += "Left Join armas On artrn.cuscod = armas.cuscod ";
                //    cmd.CommandText += "Where artrn.docnum In ";
                //    cmd.CommandText += "(Select stcrd.docnum From stcrd Left Join stmas On stcrd.stkcod=stmas.stkcod Left Join isacc On stmas.acccod=isacc.acccod Where isacc.method='X') ";
                //    cmd.CommandText += "And rectyp='" + ((int)invoice_type).ToString() + "' And num2=0 ";
                //    cmd.CommandText += "Order By docdat,docnum ASC";
                //}
                //else
                //{
                //    cmd.CommandText = "Select artrn.docnum, artrn.docdat, artrn.cuscod, artrn.num2, armas.cusnam From artrn ";
                //    cmd.CommandText += "Left Join armas On artrn.cuscod = armas.cuscod ";
                //    cmd.CommandText += "Where artrn.docnum In ";
                //    cmd.CommandText += "(Select stcrd.docnum From stcrd Left Join stmas On stcrd.stkcod=stmas.stkcod Left Join isacc On stmas.acccod=isacc.acccod Where isacc.method='X') ";
                //    cmd.CommandText += "And rectyp='" + ((int)invoice_type).ToString() + "' ";
                //    cmd.CommandText += "Order By docdat,docnum ASC";
                //}


                OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                da.Fill(dt);
                conn.Close();
            }

            List <ArtrnMin> artrn = new List <ArtrnMin>();

            foreach (DataRow row in dt.Rows)
            {
                try
                {
                    ArtrnMin a = new ArtrnMin
                    {
                        cuscod        = !row.IsNull("cuscod") ? row["cuscod"].ToString().Trim() : string.Empty,
                        cusnam        = !row.IsNull("cusnam") ? row["cusnam"].ToString().Trim() : string.Empty,
                        docnum        = !row.IsNull("docnum") ? row["docnum"].ToString().Trim() : string.Empty,
                        docdat        = !row.IsNull("docdat") ? (DateTime?)row["docdat"] : null,
                        warranty_spec = !row.IsNull("num2") ? ((double)row["num2"] > 0 ? "Y" : "") : ""
                    };

                    artrn.Add(a);
                }
                catch (Exception)
                {
                    continue;
                }
            }

            return(artrn);
        }
예제 #2
0
 private void cbStatus_SelectedIndexChanged(object sender, EventArgs e)
 {
     this.status = (TransactionStatus.STATUS)((ComboboxItem)((ComboBox)sender).SelectedItem).Value;
     this.GetInvoiceList();
 }