Exemple #1
0
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            bool isreadonly = true;

            string[] para = parameter.ToString().Split(new char[] { ';' });
            if (para.Length < 2)
            {
                return(true);
            }

            switch (para[0])
            {
            case "PH":
                switch (para[1])
                {
                case "ong_ba":
                    if (values[0] != DependencyProperty.UnsetValue)
                    {
                        bool IsInEditMode = false;
                        bool.TryParse(values[0].ToString(), out IsInEditMode);
                        if (IsInEditMode == true && StartUp.M_ong_ba.Equals("1"))
                        {
                            isreadonly = false;
                        }
                    }
                    break;

                case "ngay_lct":
                    if (values[0] != DependencyProperty.UnsetValue)
                    {
                        bool IsInEditMode = false;
                        bool.TryParse(values[0].ToString(), out IsInEditMode);
                        if (IsInEditMode == true && StartUp.M_ngay_lct.Equals("1"))
                        {
                            if (values[0].ToString() == "1")
                            {
                                isreadonly = false;
                            }
                        }
                    }
                    break;
                }
                break;

            case "CT":

                if (true)
                {
                    string paraStr = para[1];
                    switch (paraStr)
                    {
                        #region so_luong
                    case "so_luong":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            //IsInEditMode = values[1].ToString().Equals("1") ? true : false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                bool IsCheckedPH_HDDT = false;
                                bool.TryParse(values[2].ToString(), out IsCheckedPH_HDDT);
                                if (IsCheckedPH_HDDT == true)
                                {
                                    isreadonly = false;
                                }
                            }

                            if (values[0].ToString() == "")
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region gia_nt2
                    case "gia_nt2":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal so_luong = 0;
                                decimal.TryParse(values[0].ToString(), out so_luong);
                                bool IsCheckedPH_HDDT = false;
                                bool.TryParse(values[2].ToString(), out IsCheckedPH_HDDT);
                                if (so_luong != 0 && IsCheckedPH_HDDT == true)
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tien_nt2
                    case "tien_nt2":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue &&
                            values[4] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[3].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal so_luong = 0, gia_nt2 = 0;
                                bool    sua_tien = false;
                                bool.TryParse(values[2].ToString(), out sua_tien);

                                decimal.TryParse(values[0].ToString(), out so_luong);
                                decimal.TryParse(values[1].ToString(), out gia_nt2);

                                if (so_luong == 0 || (so_luong * gia_nt2) == 0 || sua_tien == true)
                                {
                                    isreadonly = false;
                                }
                            }
                            if (values[4].ToString() != "0")
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region gia_nt
                    case "gia_nt":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue &&
                            values[4] != DependencyProperty.UnsetValue &&
                            values[5] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[3].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal so_luong = 0;
                                decimal.TryParse(values[0].ToString(), out so_luong);
                                decimal gia_ton = 0;
                                decimal.TryParse(values[1].ToString(), out gia_ton);
                                bool Px_gia_dd = false;
                                bool.TryParse(values[2].ToString(), out Px_gia_dd);
                                if (so_luong != 0 && ((Px_gia_dd == true && (gia_ton == 1 || gia_ton == 4)) || gia_ton == 2) &&
                                    values[4].ToString() == "1")
                                {
                                    isreadonly = false;
                                }
                            }
                            bool IsCheckedPH_HDDT = false;
                            bool.TryParse(values[5].ToString(), out IsCheckedPH_HDDT);
                            if (IsCheckedPH_HDDT == false)
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tien_nt
                    case "tien_nt":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue &&
                            values[4] != DependencyProperty.UnsetValue &&
                            values[5] != DependencyProperty.UnsetValue &&
                            values[6] != DependencyProperty.UnsetValue &&
                            values[7] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[4].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal so_luong = 0, gia_nt = 0;
                                bool    sua_tien = false;
                                bool.TryParse(values[3].ToString(), out sua_tien);
                                bool Px_gia_dd = false;
                                bool.TryParse(values[2].ToString(), out Px_gia_dd);

                                decimal.TryParse(values[0].ToString(), out so_luong);
                                decimal.TryParse(values[1].ToString(), out gia_nt);

                                decimal gia_ton = 0;
                                decimal.TryParse(values[6].ToString(), out gia_ton);

                                bool IsCheckedPH_HDDT = false;
                                bool.TryParse(values[7].ToString(), out IsCheckedPH_HDDT);

                                if ((so_luong == 0 || (so_luong * gia_nt) == 0 || sua_tien == true) &&
                                    ((Px_gia_dd == true && (gia_ton == 1 || gia_ton == 4)) || gia_ton == 2) &&
                                    values[5].ToString() == "1" && IsCheckedPH_HDDT == true)
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region gia2
                    case "gia2":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue &&
                            values[4] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[3].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal so_luong = 0, gia_nt2 = 0, ty_gia = 0;
                                bool    sua_tien = false;

                                decimal.TryParse(values[0].ToString(), out so_luong);
                                decimal.TryParse(values[1].ToString(), out gia_nt2);
                                bool.TryParse(values[2].ToString(), out sua_tien);
                                decimal.TryParse(StartUp.DsTrans.Tables[0].DefaultView[0]["ty_gia"].ToString(), out ty_gia);
                                bool IsCheckedPH_HDDT = false;
                                bool.TryParse(values[4].ToString(), out IsCheckedPH_HDDT);

                                if (so_luong != 0 && ((gia_nt2 * ty_gia) == 0 || sua_tien == true) && IsCheckedPH_HDDT == true)
                                {
                                    //&& values[4].ToString() == "1")
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tien2
                    case "tien2":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[2].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal tien_nt2 = 0, ty_gia = 0;
                                bool    sua_tien = false;

                                decimal.TryParse(values[0].ToString(), out tien_nt2);
                                bool.TryParse(values[1].ToString(), out sua_tien);
                                decimal.TryParse(StartUp.DsTrans.Tables[0].DefaultView[0]["ty_gia"].ToString(), out ty_gia);
                                if (sua_tien == true || (tien_nt2 * ty_gia) == 0)
                                {
                                    //|| values[3].ToString() == "0")
                                    isreadonly = false;
                                }
                            }
                            bool IsCheckedPH_HDDT = false;
                            bool.TryParse(values[3].ToString(), out IsCheckedPH_HDDT);
                            if (IsCheckedPH_HDDT == false)
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;

                        #endregion
                        #region tl_ck
                    case "tl_ck":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue
                            )
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[0].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                bool IsCheckedPH_HDDT = false;
                                bool.TryParse(values[1].ToString(), out IsCheckedPH_HDDT);
                                if (IsCheckedPH_HDDT == true)
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;

                        #endregion
                        #region km_ck
                    case "km_ck":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue
                            )
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[0].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                bool IsCheckedPH_HDDT = false;
                                bool.TryParse(values[1].ToString(), out IsCheckedPH_HDDT);
                                if (IsCheckedPH_HDDT == true)
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region ck_nt
                    case "ck_nt":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal tl_ck = 0;
                                decimal.TryParse(values[0].ToString(), out tl_ck);

                                if (tl_ck != 0)
                                {
                                    isreadonly = false;
                                }
                            }
                            bool IsCheckedPH_HDDT = false;
                            bool.TryParse(values[2].ToString(), out IsCheckedPH_HDDT);
                            if (IsCheckedPH_HDDT == false)
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region ck
                    case "ck":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue &&
                            values[4] != DependencyProperty.UnsetValue &&
                            values[5] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[2].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal ck_nt = 0, ty_gia = 0;
                                bool    sua_tien = false;
                                decimal tl_ck    = 0;

                                decimal.TryParse(values[0].ToString(), out ck_nt);
                                bool.TryParse(values[1].ToString(), out sua_tien);
                                decimal.TryParse(values[4].ToString(), out tl_ck);
                                decimal.TryParse(StartUp.DsTrans.Tables[0].DefaultView[0]["ty_gia"].ToString(), out ty_gia);
                                if ((sua_tien == true || (ck_nt * ty_gia) == 0) && tl_ck != 0)
                                {
                                    isreadonly = false;
                                }
                            }
                            bool IsCheckedPH_HDDT = false;
                            bool.TryParse(values[5].ToString(), out IsCheckedPH_HDDT);
                            if (IsCheckedPH_HDDT == false)
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region gia
                    case "gia":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue &&
                            values[4] != DependencyProperty.UnsetValue &&
                            values[5] != DependencyProperty.UnsetValue &&
                            values[6] != DependencyProperty.UnsetValue &&
                            values[7] != DependencyProperty.UnsetValue &&
                            values[8] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[4].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal so_luong = 0, gia_nt = 0, ty_gia = 0;
                                bool    px_gia_dd = false;
                                bool    sua_tien  = false;

                                decimal.TryParse(values[0].ToString(), out so_luong);
                                decimal.TryParse(values[1].ToString(), out gia_nt);
                                bool.TryParse(values[2].ToString(), out sua_tien);
                                bool.TryParse(values[3].ToString(), out px_gia_dd);
                                decimal.TryParse(StartUp.DsTrans.Tables[0].DefaultView[0]["ty_gia"].ToString(), out ty_gia);

                                decimal gia_ton = 0;
                                decimal.TryParse(values[7].ToString(), out gia_ton);

                                if (so_luong != 0 && values[6].ToString() == "1" &&
                                    ((px_gia_dd == true && (gia_ton == 1 || gia_ton == 4)) || gia_ton == 2) &&
                                    (sua_tien == true || gia_nt * ty_gia == 0))
                                {
                                    isreadonly = false;
                                }
                            }
                            bool IsCheckedPH_HDDT = false;
                            bool.TryParse(values[8].ToString(), out IsCheckedPH_HDDT);
                            if (IsCheckedPH_HDDT == false)
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tien
                    case "tien":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue &&
                            values[4] != DependencyProperty.UnsetValue &&
                            values[5] != DependencyProperty.UnsetValue &&
                            values[6] != DependencyProperty.UnsetValue &&
                            values[7] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[3].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal tien_nt = 0, ty_gia = 0;
                                bool    px_gia_dd = false;
                                bool    sua_tien  = false;

                                decimal.TryParse(values[0].ToString(), out tien_nt);
                                bool.TryParse(values[1].ToString(), out sua_tien);
                                bool.TryParse(values[2].ToString(), out px_gia_dd);
                                decimal.TryParse(StartUp.DsTrans.Tables[0].DefaultView[0]["ty_gia"].ToString(), out ty_gia);

                                decimal gia_ton = 0;
                                decimal.TryParse(values[6].ToString(), out gia_ton);

                                if ((sua_tien == true || tien_nt * ty_gia == 0) &&
                                    ((px_gia_dd == true && (gia_ton == 1 || gia_ton == 4)) || gia_ton == 2) &&
                                    values[5].ToString() == "1")
                                {
                                    isreadonly = false;
                                }
                            }
                            bool IsCheckedPH_HDDT = false;
                            bool.TryParse(values[7].ToString(), out IsCheckedPH_HDDT);
                            if (IsCheckedPH_HDDT == false)
                            {
                                isreadonly = true;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tk thuế nợ, cục thuế trong ph
                    case "ma_kh2_ph":
                    case "tk_thue_no_IsReadOnly":
                    case "tk_thue_no_AllowEmty":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                if (values[0].ToString() == "1" || (values.Length > 2 && values[2].ToString() == "0"))
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region t_thue_nt_readOnly
                    case "t_thue_nt_readOnly":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        //&& values[2] != DependencyProperty.UnsetValue
                        //&& values[3] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                //decimal t_tien_nt = 0, thue_suat = 0;
                                //decimal.TryParse(values[0].ToString(), out t_tien_nt);
                                //decimal.TryParse(values[1].ToString(), out thue_suat);

                                //if (t_tien_nt * thue_suat == 0 || values[2].ToString() == "1")
                                if (values[0].ToString() == "1")
                                {
                                    isreadonly = true;
                                }
                                else
                                {
                                    isreadonly = false;
                                }
                            }
                            else
                            {
                                isreadonly = false;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region t_thue_readOnly
                    case "t_thue_readOnly":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue)
                        //&& values[3] != DependencyProperty.UnsetValue
                        //&& values[4] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[2].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                //decimal t_tien = 0, thue_suat = 0;
                                //decimal.TryParse(values[0].ToString(), out t_tien);
                                //decimal.TryParse(values[1].ToString(), out thue_suat);

                                // if (t_tien * thue_suat == 0 || (values[2].ToString() == "1" && values[3].ToString() == "1"))
                                if (values[0].ToString() == "1" && values[1].ToString() == "1")
                                {
                                    isreadonly = true;
                                }
                                else
                                {
                                    isreadonly = false;
                                }
                            }
                            else
                            {
                                isreadonly = false;
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tk_vt
                    case "tk_vt":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue &&
                            values[2] != DependencyProperty.UnsetValue &&
                            values[3] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[2].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                //double sua_tk_vt = 0;
                                //double.TryParse(values[0].ToString(), out sua_tk_vt);
                                string tk_vt      = values[1].ToString().Trim();
                                string vt_ton_kho = values[3].ToString().Trim();
                                //1223094
                                if (vt_ton_kho == "1" && (values[0].ToString() == "1" || StartUp.IsTkMe(tk_vt)))
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tk_km_i
                    case "tk_km_i":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                //string tk_km_dmvt = values[2].ToString().Trim();
                                if (values[0].ToString() == "1")            // && (tk_km_dmvt == "" || StartUp.IsTkMe(tk_km_dmvt)))
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tk_ck
                    case "tk_ck":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        //&& values[2] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                decimal tl_ck = 0;
                                decimal.TryParse(values[0].ToString(), out tl_ck);
                                // string tk_ck_dmvt = values[1].ToString().Trim();

                                if (tl_ck != 0)            // && (tk_ck_dmvt == "" || StartUp.IsTkMe(tk_ck_dmvt)))
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tk_dt
                    case "tk_dt":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                string tk_dt_dmvt = values[0].ToString().Trim();
                                if (tk_dt_dmvt == "" || StartUp.IsTkMe(tk_dt_dmvt))
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tk_gv
                    case "tk_gv":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                string tk_gv_dmvt = values[0].ToString().Trim();
                                if (tk_gv_dmvt == "" || StartUp.IsTkMe(tk_gv_dmvt))
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region tk_thue_co_IsReadOnly
                    case "tk_thue_co_IsReadOnly":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                string tk_thue_co_dmthue = values[0].ToString().Trim();
                                if (tk_thue_co_dmthue == "" || StartUp.IsTkMe(tk_thue_co_dmthue))
                                {
                                    isreadonly = false;
                                }
                            }
                        }
                    }
                    break;
                        #endregion

                        #region ma_post
                    case "ma_post":
                    {
                        if (values[0] != DependencyProperty.UnsetValue &&
                            values[1] != DependencyProperty.UnsetValue)
                        {
                            bool IsInEditMode = false;
                            bool.TryParse(values[1].ToString(), out IsInEditMode);
                            if (IsInEditMode == true)
                            {
                                int sl_in = int.Parse(values[0].ToString());
                                if (sl_in == 0)
                                {
                                    isreadonly = false;
                                }
                            }
                            else
                            {
                                isreadonly = false;
                            }
                        }
                    } break;
                        #endregion
                    }
                }
                break;
            }

            return(isreadonly);
        }
Exemple #2
0
        private void btnin_Click(object sender, RoutedEventArgs e)
        {
            if (GridSearch.XGReport.ActiveRecord == null)
            {
                return;
            }
            if (txtlien.Value != null)
            {
                int         sl_in      = Convert.ToInt16(StartUp.DsTrans.Tables[0].DefaultView[0]["sl_in"]);
                DataRowView drvXReport = (GridSearch.XGReport.ActiveRecord as DataRecord).DataItem as DataRowView;

                string nd51 = drvXReport["nd51"].ToString();
                if (nd51 == "1" && sl_in > 0)
                {
                    if (ExMessageBox.Show(390, StartUp.SysObj, "Hóa đơn đã được in, có muốn in lại hay không?", "", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No)
                    {
                        return;
                    }

                    FrmLogin login = new FrmLogin();
                    login.ShowDialog();
                    if (!login.IsLogined)
                    {
                        return;
                    }
                }
                int so_lien = 1, so_lien_hd = 0, so_lien_xac_minh = 0;
                int so_lien_hien_thoi = Convert.ToInt32(StartUp.GetSo_lien((DataRecord)GridSearch.XGReport.ActiveRecord, StartUp.DsTrans.Tables[0].DefaultView[0]["stt_rec"].ToString()));
                int.TryParse(DsPrint.Tables["TablePH"].DefaultView[0]["so_lien_hd"].ToString(), out so_lien_hd);
                int.TryParse(StartUp.DmctInfo["so_lien_xac_minh"].ToString(), out so_lien_xac_minh);

                if (so_lien_hien_thoi > so_lien_hd)
                {
                    DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"] = "BẢN SAO";
                }
                int so_lan_in = Convert.ToInt16(Math.Ceiling(Convert.ToDouble(txtlien.Text) / Convert.ToDouble((GridSearch.XGReport.ActiveRecord as DataRecord).Cells["so_lien"].Value)));
                while (so_lien <= so_lan_in)
                {
                    DsPrint.Tables["TablePH"].DefaultView[0]["so_lien"] = so_lien;

                    if (so_lien_hien_thoi <= so_lien_hd)
                    {
                        if (so_lien <= so_lien_hien_thoi || so_lien > so_lien_hd)
                        {
                            DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"] = "BẢN SAO";
                        }
                        else
                        {
                            DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"] = "";
                        }
                    }

                    InsertRowCT(nd51);
                    GridSearch.V_In(1, (so_lien_xac_minh >= so_lien && string.IsNullOrEmpty(DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"].ToString())));
                    so_lien++;
                }

                //update sl_in và so_lien in
                if (nd51 == "1" && GridSearch.PrintSuccess)
                {
                    string stt_rec = StartUp.DsTrans.Tables[0].DefaultView[0]["stt_rec"].ToString();
                    StartUp.UpdateSl_in(stt_rec, drvXReport["id"].ToString(), txtlien.Text);
                    StartUp.DsTrans.Tables[0].DefaultView[0]["sl_in"] = StartUp.GetSl_in(stt_rec);
                }
                ResetTableCt();
                StartUp.SetPhIn(this.DataContext as DataTable);
            }
            this.Close();
        }
Exemple #3
0
        private void btnin_lt_Click(object sender, RoutedEventArgs e)
        {
            if (GridSearch.XGReport.ActiveRecord == null)
            {
                return;
            }

            DataRowView drvXReport = (GridSearch.XGReport.ActiveRecord as DataRecord).DataItem as DataRowView;
            string      mau_tu_in  = drvXReport["mau_tu_in"].ToString();

            if (StartUp.IsQLHD && mau_tu_in == "1")
            {
                ExMessageBox.Show(395, StartUp.SysObj, "Có chứng từ thuộc mẫu hóa đơn tự in, không in liên tục được!", "", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            if (StartUp.SysObj.GetOption("M_IN_HOI_CK").ToString() == "1")
            {
                if (ExMessageBox.Show(400, StartUp.SysObj, "Có chắc chắn in tất cả các chứng từ đã được lọc?", "", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
                {
                    int        so_lien;
                    List <int> lstSo_lien = new List <int>();

                    if (txtlien.Value != null)
                    {
                        int iRowTmp = FrmTT_SOCTHDA_HDDT.iRow;
                        so_lien = 1;
                        bool isPrint          = false;
                        int  so_lien_xac_minh = 0;
                        int.TryParse(StartUp.DmctInfo["so_lien_xac_minh"].ToString(), out so_lien_xac_minh);

                        int so_lan_in = Convert.ToInt16(Math.Ceiling(Convert.ToDouble(txtlien.Text) / Convert.ToDouble((GridSearch.XGReport.ActiveRecord as DataRecord).Cells["so_lien"].Value)));
                        while (so_lien <= so_lan_in)
                        {
                            for (int i = 1; i < DsPrint.Tables[0].Rows.Count; i++)
                            {
                                string stt_rec = DsPrint.Tables[0].Rows[i]["stt_rec"].ToString();
                                DsPrint.Tables["TablePH"].DefaultView.RowFilter = "stt_rec= '" + stt_rec + "'";
                                DsPrint.Tables["TableCT"].DefaultView.RowFilter = "stt_rec= '" + stt_rec + "'";
                                DsPrint.Tables["TableCT"].DefaultView.Sort      = "stt_rec0";

                                if (so_lien == 1)
                                {
                                    lstSo_lien.Add(Convert.ToInt32(StartUp.GetSo_lien((DataRecord)GridSearch.XGReport.ActiveRecord, stt_rec)));
                                }

                                if (DsPrint.Tables[0].Rows[i]["status"].ToString() != "3")
                                {
                                    int so_lien_hien_thoi = lstSo_lien[i - 1], so_lien_hd = 0;
                                    int.TryParse(DsPrint.Tables["TablePH"].DefaultView[0]["so_lien_hd"].ToString(), out so_lien_hd);

                                    if (so_lien_hien_thoi > so_lien_hd)
                                    {
                                        DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"] = "BẢN SAO";
                                    }
                                    else
                                    {
                                        if (so_lien <= so_lien_hien_thoi || so_lien > so_lien_hd)
                                        {
                                            DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"] = "BẢN SAO";
                                        }
                                        else
                                        {
                                            DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"] = "";
                                        }
                                    }

                                    DsPrint.Tables["TablePH"].DefaultView[0]["so_lien"] = so_lien;

                                    int sl_in = Convert.ToInt16(StartUp.DsTrans.Tables[0].Rows[i]["sl_in"]);


                                    if (mau_tu_in == "1" && sl_in > 0 && !isPrint)
                                    {
                                        if (ExMessageBox.Show(405, StartUp.SysObj, "Hóa đơn đã được in, có muốn in lại hay không?", "", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No)
                                        {
                                            return;
                                        }

                                        FrmLogin login = new FrmLogin();
                                        login.ShowDialog();
                                        if (!login.IsLogined)
                                        {
                                            return;
                                        }

                                        // da thong bao roi, lan sau ko thong bao nua
                                        isPrint = true;
                                    }


                                    InsertRowCT(mau_tu_in);
                                    GridSearch.V_In(1, (so_lien_xac_minh >= so_lien && string.IsNullOrEmpty(DsPrint.Tables["TablePH"].DefaultView[0]["ban_sao"].ToString())));
                                    if (mau_tu_in == "1" && so_lien == 1 && GridSearch.PrintSuccess)
                                    {
                                        StartUp.UpdateSl_in(stt_rec, drvXReport["id"].ToString(), txtlien.Text);
                                        StartUp.DsTrans.Tables[0].Rows[i]["sl_in"] = StartUp.GetSl_in(stt_rec);
                                    }
                                }
                            }
                            so_lien++;
                        }
                        ResetTableCt();
                        DsPrint.Tables["TablePH"].DefaultView.RowFilter = "stt_rec= '" + DsPrint.Tables["TablePH"].Rows[iRowTmp]["stt_rec"].ToString() + "'";
                        DsPrint.Tables["TableCT"].DefaultView.RowFilter = "stt_rec= '" + DsPrint.Tables["TablePH"].Rows[iRowTmp]["stt_rec"].ToString() + "'";
                        DsPrint.Tables["TableCT"].DefaultView.Sort      = "stt_rec0";
                        StartUp.SetPhIn(this.DataContext as DataTable);
                    }
                    this.Close();
                }
            }
        }
Exemple #4
0
        private void grdConfirm_OnOk(object sender, RoutedEventArgs e)
        {
            try
            {
                if (Keyboard.FocusedElement.GetType().Equals(typeof(TextBoxAutoComplete)))
                {
                    AutoCompleteTextBox txt = (Keyboard.FocusedElement as TextBoxAutoComplete).ParentControl;
                    if (!txt.CheckLostFocus())
                    {
                        return;
                    }
                }
                if (CheckValid())
                {
                    SysObj.SetSysvar("M_ngay_ct1", txtNgay_ct1.dValue);
                    SysObj.SetSysvar("M_ngay_ct2", txtNgay_ct2.dValue);
                    bool IsshowView = false;

                    GridSearch._GenerateSQLString();
                    GridSearch.GrdSearch.ExecuteCommand(DataPresenterCommands.EndEditModeAndAcceptChanges);

                    StartUp.TransFilterCmd.Parameters["@PhFilter"].Value = GetPhFilterExpr(); // "ngay_ct between '20100101' and '20100131'";
                    StartUp.TransFilterCmd.Parameters["@CtFilter"].Value = GetCtFilterExpr();

                    StartUp.TransFilterCmd.Parameters["@Sl_ct"].Value = 0;

                    DataSet newDs = DataProvider.FillCommand(StartUp.SysObj, StartUp.TransFilterCmd);

                    // xuất thông báo tìm kiếm
                    int     n = 0;
                    Decimal a = (from p
                                 in newDs.Tables[0].AsEnumerable()
                                 select p.Field <Decimal?>("t_tt")).Sum().Value;

                    string  tongPsVND = a.ToString(SysObj.GetOption("M_IP_TIEN").ToString());
                    Decimal tongPsNT  = (from p
                                         in newDs.Tables[0].AsEnumerable()
                                         select p.Field <Decimal?>("t_tt_nt")).Sum().Value;
                    string _tongPsNT = tongPsNT.ToString(SysObj.GetOption("M_IP_TIEN_NT").ToString());
                    n = newDs.Tables[0].Rows.Count;
                    //a = StartUp.DsTrans.Tables[0].AsEnumerable().Sum("t_tt").Value.ToString();
                    if (n > 0)
                    {
                        IsshowView = true;
                        Sm.Windows.Controls.ExMessageBox.Show(410, StartUp.SysObj, "Có " + "[" + n + "]" + " chứng từ. Tổng phát sinh " + "[" + _tongPsNT + "]" + " / " + "[" + tongPsVND + "]", "", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    else
                    {
                        Sm.Windows.Controls.ExMessageBox.Show(415, StartUp.SysObj, "Không có chứng từ nào như vậy!", "", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    if (IsshowView == true)
                    {
                        // show form View
                        //string stringBrowse1 = "ngay_ct:100:h=Ngày c.từ:FL:D;so_ct:70:h=Số c.từ:FL;so_seri:70:h=Số seri;" +
                        //     "ma_kh:100:h=Mã khách;ten_kh:180:h=Tên khách;dien_giai:225:h=Diễn giải;" +
                        //     "ma_bp:100:h=NVBH;t_tien_nt2:130:h=Tiền hàng nt:N1:S;t_thue_nt:130:h=Tiền thuế nt:N1:S;" +
                        //     "t_tt_nt:130:h=Tổng tt nt:N1:S;ma_nx:80:h=Mã nx;thue_suat:80:h=Thuế suất:F=2;tk_thue_co:80:h=Tk thuế;" +
                        //     "t_tien2:130:h=Tiền hàng:N0:S;t_thue:130:h=Tiền thuế:N0:S;t_tt:130:h=Tổng tt:N0:S;ma_nt:100:h=Mã nt;" +
                        //     "ty_gia:130:h=Tỷ giá:R;date:105:h=Ngày cập nhật:D;time:100:h=Giờ cập nhật;" +
                        //     "user_id:100:h=Số hiệu NSD:N;user_name:100:h=Tên NSD";

                        //string stringBrowse2 = "ma_vt:100:h=Mã vật tư:FL;ten_vt:270:h=Tên vật tư:FL;dvt1:50:h=Ðvt;" +
                        //    "ma_kho_i:70:h=Mã kho;so_luong:130:h=Số lượng:Q:S;gia_nt2:130:h=Giá bán nt:P1;tien_nt2:130:h=Thành tiền nt:N1:S;" +
                        //    "tk_dt:80:h=Tk dt;gia_nt:130:h=Giá vốn nt:P1;tien_nt:130:h=Tiền vốn nt:N1:S;tk_vt:80:h=Tk kho;" +
                        //    "tk_gv:80:h=Tk gv;gia2:130:h=Giá bán:P0;tien2:130:h=Thành tiền:N0:S;" +
                        //    "gia:130:h=Giá vốn:N1;tien:130:h=Tiền vốn:N0:S";

                        SmVoucherLib.FormView _frmView = new SmVoucherLib.FormView(SysObj, newDs.Tables[0].DefaultView, newDs.Tables[1].DefaultView, StartUp.stringBrowse1, StartUp.stringBrowse2, "stt_rec");
                        _frmView.ListFieldSum  = "t_tt_nt;t_tt";
                        _frmView.TongCongLabel = "Tổng thanh toán";
                        if (StartUp.M_LAN.Equals("V"))
                        {
                            _frmView.frmBrw.Title = StartUp.M_Tilte + ". Ky " + txtNgay_ct1.Text + " - " + txtNgay_ct2.Text;
                        }
                        else
                        {
                            _frmView.frmBrw.Title = StartUp.M_Tilte + ". Period " + txtNgay_ct1.Text + " - " + txtNgay_ct2.Text;
                        }
                        //Them cac truong tu do
                        SmVoucherLib.FreeCodeFieldLib.InitFreeCodeField(StartUp.SysObj, _frmView.frmBrw.oBrowseCt, StartUp.Ma_ct, 1);
                        _frmView.frmBrw.LanguageID = "TT_SOCTHDA_HDDT_8";
                        _frmView.ShowDialog();

                        StartUp.DataFilter(StartUp.DsTrans.Tables[0].Rows[0]["stt_rec"].ToString());

                        int Count1 = StartUp.DsTrans.Tables[0].Rows.Count;
                        int Count2 = StartUp.DsTrans.Tables[1].Rows.Count;


                        for (int i = Count1 - 1; i >= 1; i--)
                        {
                            StartUp.DsTrans.Tables[0].Rows.RemoveAt(i);
                        }

                        for (int i = 0; i < Count2; i++)
                        {
                            StartUp.DsTrans.Tables[1].Rows.RemoveAt(0);
                        }



                        int Count = 0;
                        Count = newDs.Tables[0].Rows.Count;
                        for (int i = 0; i < Count; i++)
                        {
                            StartUp.DsTrans.Tables[0].Rows.Add(newDs.Tables[0].Rows[i].ItemArray);
                        }

                        Count = newDs.Tables[1].Rows.Count;
                        for (int i = 0; i < Count; i++)
                        {
                            StartUp.DsTrans.Tables[1].Rows.Add(newDs.Tables[1].Rows[i].ItemArray);
                        }


                        // ko xoá dòng thứ 0 của table[0] vì dòng đó là dòng tạm.

                        if (newDs.Tables[0].Rows.Count > 0)
                        {
                            //Xét lại irow
                            if (FrmTT_SOCTHDA_HDDT.iRow > newDs.Tables[0].Rows.Count - 1)
                            {
                                FrmTT_SOCTHDA_HDDT.iRow = newDs.Tables[0].Rows.Count - 1;
                            }

                            StartUp.DataFilter(StartUp.DsTrans.Tables[0].Rows[FrmTT_SOCTHDA_HDDT.iRow]["stt_rec"].ToString());
                        }

                        // Set lai irow va rowfilter ...
                        if (_frmView.DataGrid.ActiveRecord != null)
                        {
                            int select_irow = (_frmView.DataGrid.ActiveRecord as DataRecord).Index;
                            if (select_irow >= 0)
                            {
                                string selected_stt_rec = (_frmView.DataGrid.DataSource as DataView)[select_irow]["stt_rec"].ToString();
                                FrmTT_SOCTHDA_HDDT.iRow = select_irow + 1;
                                //refresh lại rowfilter
                                StartUp.DataFilter(selected_stt_rec);
                            }
                        }

                        this.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                SmErrorLib.ErrorLog.CatchMessage(ex);
            }
        }