示例#1
0
        public void Transfer()
        {
            //vat = T_String.GetMax("MAX(SEQ_NO)", "FILC10A");
            Stop  = false;
            table = "TBLDETAILSATTENDANCE_" + "UserLoginTemp";
            //--Neu chuyen tiep -->
            string sql;

            if (numTransfered == 0)
            {
                sql = "IF EXISTS (SELECT * FROM sysobjects WHERE name=N'" + table + "' AND type='U') Drop Table [" + table + "]";
                PublicFunction.SQL_Execute(sql, PublicFunction.C_con, 180);
                PublicFunction.Copy_Table("TBLDETAILSATTENDANCE", table, PublicFunction.C_con);
            }
            //<--

            Set    = new RecordSet("Select * from TBLATTSYSSETTING", PublicFunction.C_con);
            rsType = new RecordSet("Select TYP_ID,ROU_DR from TBLTYPESHIFT", PublicFunction.C_con);
            CheckFieldName();

            DateTime d1 = dt1;
            DateTime d2 = dt2;

            //sql = "Select a.EMP_ID,a.EMP_I1,EMP_NM,DEP_ID,CONVERT(NVARCHAR(10),VAC_DT,111) VAC_DT,"
            //    + "CONVERT(NVARCHAR(10),INH_DT,111) INH_DT,CRD_NO from FILB01A  a Left JOIN  FILB01AC b on a.EMP_ID=b.EMP_ID where "
            //    + crtCondition1.GetWhere("a", false) + " and ATT_BT=1 and (VAC_DT is null or VAC_DT>='" + d1.ToString("yyyy/MM/dd") + "') and INH_DT is not null";
            sql = "Select a.EMP_ID,a.EMP_I1,EMP_NM,DEP_ID, null VAC_DT,"
                  + "CONVERT(NVARCHAR(10),INH_DT,111) INH_DT,CRD_NO from TBLEMPLOYEE  a"
                  + " where " + crtCondition1.GetWhere("a", false) + " and INH_DT is not null";

            rs = new RecordSet(sql, PublicFunction.C_con);

            //tm.Text = "00:00:00";
            s = 0;
            p = 0;
            h = 0;

            //timer1.Enabled = true;
            //timer1.Start();

            process();
        }
示例#2
0
        public void Cal()
        {
            string sql;

            //cmd_stop.Visible = true;
            //panel2.Enabled = false;
            SqlConnection con1 = new SqlConnection(PublicFunction.connectionString);

            if (con1.State == ConnectionState.Closed)
            {
                con1.Open();
            }

            string YYY_MM = dt3.ToString("yyyyMM");
            string dt     = DateTime.Now.ToString("yyyy/MM/dd HH:mm");

            DateTime d1 = dt1;
            DateTime d2 = dt2;

            ArrayList a = new ArrayList();

            while (T_String.IsNullTo0(d1.ToString("yyyyMMdd")) <= T_String.IsNullTo0(d2.ToString("yyyyMMdd")))// tung Ngay
            {
                string data = T_String.GetDataFromSQL("h" + d1.Day, "TBLHOLIDAY", "YYY_YY=" + d1.Year + " and MMM_MM=" + d1.Month);
                if (data + "" == "True")
                {
                    a.Add(d1.ToString("yyyyMMdd"));
                }
                d1 = d1.AddDays(1);
            }

            d1 = dt1;
            d2 = dt2;

            RecordSet sal;

            sql = "Select TYP_ID from TBLTYPESHIFT";
            RecordSet rsshift = new RecordSet(sql, con1);

            //sql="Select * from " + FILC07A + " where MON_BT=1";
            //Func.RecordSet ATTFOR = new Func.RecordSet(sql,PublicFunction.C_con);

            sql = "SELECT COL_NM, GIO_BT,"
                  + " (SELECT t.name FROM sys.columns c INNER JOIN sys.types t ON c.system_type_id=t.system_type_id"
                  + " WHERE OBJECT_NAME(object_id)='" + TBLDETAILSATTENDANCE + "' AND t.name<>'sysname' AND c.name=COL_NM) DATA_TP"
                  + " FROM " + TBLEXCOLATTENDANCE + " WHERE MON_BT=1";
            RecordSet ATTFOR = new RecordSet(sql, con1);

            sql = "Select a.EMP_ID,EMP_NM,null VAC_DT,a.EMP_I1,a.DEP_ID,CONVERT(nvarchar(10),INH_DT,111) INH_DT from TBLEMPLOYEE  a /*Left JOIN FILB01AC b on a.EMP_ID=b.EMP_ID*/ where  "
                  + crtCondition1.GetWhere("a", false) + " /*and (VAC_DT>'" + d1.ToString("yyyy/MM/dd") + "' or VAC_DT is null or a.VAC_BT=0 or a.VAC_BT is null)*/"
                  + " and INH_DT<='" + d2.ToString("yyyy/MM/dd") + "'";

            RecordSet rs   = new RecordSet(sql, con1);
            string    sql1 = "";

            for (int i = 0; i < rs.rows; i++)  // Tung Nhan Vien
            {
                if (Stop)
                {
                    return;
                }
                //c1.Text = rs.record(i, "EMP_ID") + " - " + rs.record(i, "EMP_NM");

                //Ktra lock thang
                if (T_String.GetDataFromSQL("ISNULL(LOC_B1,0) LOC_B1", TBLMONTHATTENDANCE, "EMP_ID=N'" + rs.record(i, "EMP_ID") + "' and YYY_MM=N'" + YYY_MM + "' AND SEQ_NO="
                                            + (cb + "" == "1" ? "1" : "2"), con1) != "True")
                {
                    sql = "Delete from " + TBLMONTHATTENDANCE + " where EMP_ID=N'" + rs.record(i, "EMP_ID") + "' and YYY_MM=N'" + YYY_MM + "'";
                    if (cb + "" == "1")
                    {
                        sql += " and SEQ_NO=1"; // nua thang
                    }
                    else
                    {
                        sql += " and SEQ_NO in(2,3,4)";// 2 nguyen thang, 3 truoc khi doi luong, 4 sau khi doi luong
                    }
                    PublicFunction.SQL_Execute(sql, con1, 30, true);
                    // doi bo phan
                    //sql = "SELECT * FROM FILB03A WHERE  (SEQ_DT>'" + d2.ToString("yyyy/MM/dd")
                    //    + "' and EMP_ID=N'" + rs.record(i, "EMP_ID") + "') ORDER BY SEQ_DT ASC"; // doi bo phan
                    sql = "SELECT '' DEP_I1, '' EMP_I3 where 1=0";
                    RecordSet rs1 = new RecordSet(sql, con1);
                    string    DEP_I1, EMP_DW;
                    if (rs1.rows > 0)
                    {
                        DEP_I1 = rs1.record(0, "DEP_I1");// thay doi bo phan
                        EMP_DW = rs1.record(0, "EMP_I3");
                    }
                    else
                    {
                        DEP_I1 = rs.record(i, "DEP_ID");
                        EMP_DW = rs.record(i, "EMP_I1");
                    }
                    //
                    sql  = "Insert into " + TBLMONTHATTENDANCE + "(EMP_ID,YYY_MM,DEP_I1,EMP_DW,BLT_NM,BLT_DT,NOT_DR,SEQ_NO) values(";
                    sql += "N'" + rs.record(i, "EMP_ID") + "',N'" + YYY_MM + "',";
                    sql += "N'" + DEP_I1 + "',N'" + EMP_DW + "',";
                    sql += "N'" + "{User Login}" + "','" + dt + "',";
                    sql += "N'" + d1.ToString("yyyy/MM/dd") + "~" + d2.ToString("yyyy/MM/dd") + "',";

                    string sql11 = "Select EMP_ID,CHA_DT from TBLSALARY where EMP_ID=N'" + rs.record(i, "EMP_ID") + "' and CHA_DT>'" +
                                   d1.ToString("yyyy/MM/dd") + "' and CHA_DT<='" + d2.ToString("yyyy/MM/dd") + "' AND ISNULL(DON_AP,0)=0" +
                                   " AND CHA_DT<>'" + rs.record(i, "INH_DT") + "'";
                    sal = new RecordSet(sql11, con1);

                    if (cb + "" == "1")
                    {
                        sql1 = sql + "1)";
                        PublicFunction.SQL_Execute(sql1, con1, 60, true);
                    }
                    else
                    {
                        sql1 = sql + "2)";
                        PublicFunction.SQL_Execute(sql1, con1, 60, true);
                        if (sal.rows > 0)
                        {
                            sql  = "Insert into " + TBLMONTHATTENDANCE + "(EMP_ID,YYY_MM,BLT_NM,BLT_DT,NOT_DR,SEQ_NO) values(";
                            sql += "N'" + rs.record(i, "EMP_ID") + "',N'" + YYY_MM + "',";
                            sql += "N'" + "{User Login}" + "','" + dt + "',";
                            sql += "N'" + d1.ToString("yyyy/MM/dd") + "~" + DateTime.Parse(sal.record(0, "CHA_DT")).AddDays(-1).ToString("yyyy/MM/dd") + "',";
                            sal  = new RecordSet("Select EMP_ID,CHA_DT from TBLSALARY where EMP_ID=N'" + rs.record(i, "EMP_ID") + "' and CHA_DT>'" +
                                                 d1.ToString("yyyy/MM/dd") + "' and CHA_DT<='" + d2.ToString("yyyy/MM/dd") + "' and ISNULL(DON_AP,0)=0", con1);
                            sql1 = sql + "3)";
                            PublicFunction.SQL_Execute(sql1, con1, 60, true);

                            sql  = "Insert into " + TBLMONTHATTENDANCE + "(EMP_ID,YYY_MM,BLT_NM,BLT_DT,NOT_DR,SEQ_NO) values(";
                            sql += "N'" + rs.record(i, "EMP_ID") + "',N'" + YYY_MM + "',";
                            sql += "N'" + "{User login}" + "','" + dt + "',";
                            sql += "N'" + DateTime.Parse(sal.record(0, "CHA_DT")).ToString("yyyy/MM/dd") + "~" + d2.ToString("yyyy/MM/dd") + "',";
                            sal  = new RecordSet("Select EMP_ID,CHA_DT from TBLSALARY where EMP_ID=N'" + rs.record(i, "EMP_ID") + "' and CHA_DT>'" +
                                                 d1.ToString("yyyy/MM/dd") + "' and CHA_DT<='" + d2.ToString("yyyy/MM/dd") + "' and ISNULL(DON_AP,0)=0", con1);
                            sql1 = sql + "4)";
                            PublicFunction.SQL_Execute(sql1, con1, 60, true);
                        }
                    }

                    CalShift(rsshift, rs.record(i, "EMP_ID"), cb + "", con1, sal);
                    CalATTFOR(ATTFOR, rs.record(i, "EMP_ID"), cb + "", con1, sal);
                    Normal(rs.record(i, "EMP_ID"), cb + "", con1, sal);
                    LEAVE(rs.record(i, "EMP_ID"), cb + "", con1, sal);
                    //BonusFined(rs.record(i, "EMP_ID"), cb + "", con1, sal);
                    CalHoliday(rs.record(i, "EMP_ID"), rs.record(i, "INH_DT"), rs.record(i, "VAC_DT"), a, cb + "", con1, sal);
                }

                //pro1.Value = 100;
                //pro2.Value = (int)(i + 1) * 100 / rs.rows;

                //if (sleep > 0)
                //    Thread.Sleep(sleep);
            }
            //pro2.Value = 100;
            //c1.Text = PublicFunction.L_Get_Msg("Staff", 1);
            //panel2.Enabled = true;
            //cmd_stop.Visible = false;
        }
        public void Formula(string where, string YYY_MM, int SEQ_NO, SqlConnection con1)
        {
            //pro1.Value = 0;
            string sql = "Select * from TBLSALARYFORMULA where ";

            if (SEQ_NO == 1)
            {
                sql   += "FST_BT=1";
                where += " AND TBLSALARY.SEQ_NO=1";
            }
            else
            {
                if (SEQ_NO == 2)
                {
                    sql += "(LST_BT=1 OR BEF_BT=1 OR AFT_BT=1 OR SUM_BT=1)";
                    //where += " AND FILD02A.SEQ_NO>1";
                }
            }

            //			if (seq > 0 && SEQ_NO==2) sql += " and isnull(SUM_BT,0)=0";

            RecordSet rs2 = new RecordSet(sql + " ORDER BY SEQ_N1", con1);

            for (int n = 0; n < rs2.rows; n++)
            {
                try
                {
                    //c1.Text = "Formula: " + (n + 1);

                    sql = rs2.record(n, "SQL_DR") + " AND TBLPAYROLL.YYY_MM=N'" + YYY_MM + "'"
                          + " AND TBLPAYROLL.YYY_MM=TBLMONTHATTENDANCE.YYY_MM AND TBLPAYROLL.SEQ_NO=TBLMONTHATTENDANCE.SEQ_NO AND ISNULL(TBLPAYROLL.LCK_BT,0)=0";

                    string whereSEQ = " AND TBLPAYROLL.SEQ_NO IN (''";

                    if (rs2.record(n, "LST_BT") + "" == "True")
                    {
                        whereSEQ += ", 2";
                    }

                    if (rs2.record(n, "BEF_BT") + "" == "True")
                    {
                        whereSEQ += ", 3";
                    }

                    if (rs2.record(n, "AFT_BT") + "" == "True")
                    {
                        whereSEQ += ", 4";
                    }

                    whereSEQ += ")";

                    sql += whereSEQ;

                    if ((sql.IndexOf("[DayOfMonth()]") > 0) || (sql.IndexOf("[SundayOfMonth()]") > 0) || (sql.IndexOf("[SaturdayOfMonth()]") > 0) ||
                        (sql.IndexOf("[HolidayOfMonth()]") > 0) || (sql.IndexOf("[CalDate_From()]") > 0) || (sql.IndexOf("[CalDate_To()]") > 0) ||
                        (sql.IndexOf("[CalDate_Month()]") > 0))
                    {
                        sql = FunSql(sql, YYY_MM, con1);
                    }

                    if ((sql.IndexOf("[DayOfMonth_INH()]") > 0) || (sql.IndexOf("[SundayOfMonth_INH()]") > 0) ||
                        (sql.IndexOf("[HolidayOfMonth_INH()]") > 0) || (sql.IndexOf("[AnnLeaveToSalary()]") > 0) ||
                        (sql.IndexOf("[VacateDaysNoSUN()]") > 0))
                    {
                        //Tinh tung nguoi
                        string ss = "Select Distinct a.EMP_ID,EMP_NM,CONVERT(NVARCHAR(10),INH_DT,111) INH_DT from "
                                    + "TBLEMPLOYEE a where " + crtCondition1.GetWhere("a", false);
                        RecordSet rsEmp = new RecordSet(ss, con1);
                        for (int i = 0; i < rsEmp.rows; i++)
                        {
                            ss = sql;
                            ss = FunSqlINH(rsEmp.record(i, "EMP_ID"), rsEmp.record(i, "INH_DT"), ss, YYY_MM, con1);

                            //if (PublicFunction.GPS) ss = ss.Replace("FILC06AA", "FILC06AAS");
                            sql = sql.Replace("FILF01A", "TBLEMPLOYEE");
                            sql = sql.Replace("FILD02A", "TBLPAYROLL");
                            sql = sql.Replace("FILC06AA", "TBLMONTHATTENDANCE");
                            PublicFunction.SQL_Execute(ss + " AND TBLEMPLOYEE.EMP_ID=N'" + rsEmp.record(i, "EMP_ID") + "'", con1);
                        }
                    }
                    else
                    {
                        sql += where;
                        //if (PublicFunction.GPS) sql = sql.Replace("FILC06AA", "FILC06AAS");
                        sql = sql.Replace("FILF01A", "TBLEMPLOYEE");
                        sql = sql.Replace("FILD02A", "TBLPAYROLL");
                        sql = sql.Replace("FILC06AA", "TBLMONTHATTENDANCE");

                        PublicFunction.SQL_Execute(sql, con1);
                    }

                    if (SEQ_NO == 2 && rs2.record(n, "SUM_BT") == "True")
                    {
                        TinhTong(where, YYY_MM, rs2.record(n, "ITE_NM"));
                    }

                    //pro1.Value = (int)(n + 1) * 100 / rs2.rows;
                }
                catch (Exception ex)
                {
                    err += ex.Message + " - " + ex.StackTrace;
                    //MessageBox.Show(ex.Message + " " + sql);
                }
            }
        }