示例#1
0
        /// <summary>
        /// 點工估驗單彙整資料
        /// </summary>
        public List <EstimationItem> getEstimationList4TempWorker(string projectId, string rptStartId, string rtpEndId, string supplierId, string chargeId)
        {
            StringBuilder         sb  = new StringBuilder(sql4TempWorker);
            List <EstimationItem> lst = new List <EstimationItem>();
            var parameters            = new List <SqlParameter>();

            parameters.Add(new SqlParameter("reportIdBegin", rptStartId));
            parameters.Add(new SqlParameter("reportIdEnd", rtpEndId));
            parameters.Add(new SqlParameter("projectId", projectId));
            parameters.Add(new SqlParameter("SupplierId", supplierId));

            string sqlSelet = @"
select c.SUPPLIER_ID
,c.INQUIRY_FORM_ID
,c.ITEM_ID
,c.ITEM_DESC
,c.ITEM_UNIT
,c.ITEM_UNIT_PRICE
,r.LAST_QTY PriorQty
,r.FINISH_QTY EstimationQty
,r.FINISH_QTY*c.ITEM_UNIT_PRICE  EstimationAmount
 from contractInfo c,SumTempWorkReport r
where c.SUPPLIER_ID=r.SUPPLIER_ID
";
            string sql      = sb.Append(sqlSelet).ToString();

            using (var context = new TopmepEntities())
            {
                log.Debug("sql=" + sql);
                lst = context.Database.SqlQuery <EstimationItem>(sql, parameters.ToArray()).ToList();
            }
            return(lst);
        }
示例#2
0
        //取得估驗單清單
        public List <EstimationOrderForm> getFormList(string projectid, string status)
        {
            List <EstimationOrderForm> lst = null;
            string sql        = @"
select p.PROJECT_NAME,c.SUPPLIER_ID SUPPLIER_NAME,c.FORM_NAME CONTRACT_NAME,f.*
from PLAN_ESTIMATION_FORM f
inner join TND_PROJECT p on f.project_id=p.project_id
inner join PLAN_SUP_INQUIRY c on f.CONTRACT_ID=c.INQUIRY_FORM_ID
WHERE  f.PROJECT_ID=@projectid AND (@status is null or f.STATUS=@status)
";
            var    parameters = new List <SqlParameter>();

            parameters.Add(new SqlParameter("projectid", projectid));
            if (null == status)
            {
                parameters.Add(new SqlParameter("status", DBNull.Value));
            }
            else
            {
                parameters.Add(new SqlParameter("status", status));
            }
            using (var context = new TopmepEntities())
            {
                log.Debug("sql=" + sql);
                lst = context.Database.SqlQuery <EstimationOrderForm>(sql, parameters.ToArray()).ToList();
            }
            return(lst);
        }
示例#3
0
        //取得貸款帳戶資料
        public List <BankLoanInfoExt> getAllBankLoan()
        {
            List <BankLoanInfoExt> lstBankLoan = null;

            using (var context = new TopmepEntities())
            {
                try
                {
                    string sql = @"
                    SELECT B.* , P.PROJECT_NAME, ISNULL(ROUND(V.vaRatio * 100, 0),0) AS vaRatio  , 
                    (SELECT ISNULL(IIF(QUOTA_RECYCLABLE = 'Y', SUM(TRANSACTION_TYPE*AMOUNT),(SUM(IIF(TRANSACTION_TYPE = 1,0,-1)*AMOUNT))), 0) 
                    FROM FIN_LOAN_TRANACTION T WHERE T.BL_ID = B.BL_ID) SumTransactionAmount 
                    FROM FIN_BANK_LOAN B LEFT JOIN TND_PROJECT P ON B.PROJECT_ID = P.PROJECT_ID LEFT JOIN
                    (SELECT va.PROJECT_ID AS PROJECT_ID, ISNULL(va.VALUATION_AMOUNT, 0) / ISNULL(pi.contractAtm, 1) AS vaRatio 
                    FROM (SELECT PROJECT_ID, SUM(VALUATION_AMOUNT) AS VALUATION_AMOUNT 
                    FROM PLAN_VALUATION_FORM GROUP BY PROJECT_ID)va LEFT JOIN
                    (SELECT PROJECT_ID, SUM(ITEM_UNIT_PRICE * ITEM_QUANTITY) AS contractAtm 
                    FROM PLAN_ITEM GROUP BY PROJECT_ID)pi ON va.PROJECT_ID = pi.PROJECT_ID)V ON B.PROJECT_ID = V.PROJECT_ID WHERE ISNULL(IS_SUPPLIER, 'N') <> 'Y'
                    ";
                    log.Debug("sql" + sql);
                    lstBankLoan = context.Database.SqlQuery <BankLoanInfoExt>(sql).ToList();
                    log.Info("new bank loan records=" + lstBankLoan.Count);
                }
                catch (Exception ex)
                {
                    log.Error(ex.Message + ":StackTrace=" + ex.StackTrace);
                }
            }
            return(lstBankLoan);
        }
示例#4
0
        /* 依 KEY_ID 取得新序號(String)*/
        public string getSerialKey(string keyId)
        {
            log.Debug("get new id by key");
            SYS_KEY_SERIAL SnKey = null;
            String         sKey  = null;

            using (var context = new TopmepEntities())
            {
                //1.取得現有序號值
                string esql = @"SELECT * FROM SYS_KEY_SERIAL AS serialKey WHERE serialKey.KEY_ID=@keyId";
                SnKey = context.SYS_KEY_SERIAL.SqlQuery(esql, new SqlParameter("keyId", keyId)).First();

                log.Debug("get new key :" + SnKey.KEY_ID + "=" + SnKey.KEY_NO);
                sKey = SnKey.KEY_NO.ToString().Trim();
                //2.將序號補0
                while ((sKey.Length + +SnKey.PREFIX.Length) < SnKey.KEY_LEN)
                {
                    sKey = "0" + sKey;
                }

                SnKey.KEY_NO = SnKey.KEY_NO + 1;
                int i = context.SaveChanges();
                log.Info("Update SerialKey: Status =" + i);
                sKey = SnKey.PREFIX + sKey;
                log.Info("New KEY :" + SnKey.KEY_ID + "=" + sKey);
            }
            return(sKey);
        }
示例#5
0
        public void SendMailSchedule()
        {
            log.Info("SendMailSchedule start !!" + DateTime.Now);
            List <SYS_MESSAGE> lst         = getTask();
            EMailService       mailservice = new EMailService();

            foreach (SYS_MESSAGE m in lst)
            {
                using (var context = new TopmepEntities())
                {
                    try
                    {
                        log.Info("send msg=" + m.MSG_ID);
                        if (mailservice.SendMailByGmail(m.FROM_ADDRESS, m.DISPLAY_NAME, m.MAIL_LIST, m.BCC_MAIL_LIST, m.SUBJECT, m.MSG_BODY, null))
                        {
                            SYS_MESSAGE doneM = context.SYS_MESSAGE.Find(m.MSG_ID);
                            doneM.STATUS = "DONE";
                            context.SaveChanges();
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Error(ex.Message + ":" + ex.StackTrace);
                    }
                }
                return;
            }
        }
示例#6
0
        //取得使用者資料
        public SYS_USER getUser(string userid)
        {
            log.Debug("get user by id=" + userid);
            SYS_USER u = null;

            using (var context = new TopmepEntities())
            {
                //設定此2參數,以便取消關聯物件,讓JSON 可以運作
                // Disable lazy loading
                context.Configuration.LazyLoadingEnabled = false;
                // Disable proxies
                context.Configuration.ProxyCreationEnabled = false;
                //設定SQL
                string esql = @"SELECT * FROM SYS_USER u WHERE u.USER_ID=@userid";
                try
                {
                    u = context.SYS_USER.SqlQuery(esql, new SqlParameter("userid", userid)).First();
                }
                catch (Exception e)
                {
                    log.Error(e);
                }
            }
            return(u);
        }
示例#7
0
        //取得估驗單明細資料
        public List <EstimationItem> getItems(string formId)
        {
            List <EstimationItem> lst = new List <EstimationItem>();
            var parameters            = new List <SqlParameter>();

            parameters.Add(new SqlParameter("formId", formId));
            string sql = @"
select 
f.CONTRACT_ID CONTRACT_ID,f.EST_FORM_ID EST_FORM_ID,
it.PLAN_ITEM_ID,cit.ITEM_ID,cit.ITEM_DESC,cit.ITEM_UNIT,cit.ITEM_UNIT_PRICE,
 cit.ITEM_QTY as ITEM_QUANTITY,it.EST_QTY EstimationQty,it.EST_AMOUNT EstimationAmount,
 it.REMARK,it.EST_ITEM_ID
from  PLAN_ESTIMATION_FORM f
inner join PLAN_ESTIMATION_ITEM it
on f.EST_FORM_ID=it.EST_FORM_ID 
inner join PLAN_SUP_INQUIRY_ITEM cit
on it.PLAN_ITEM_ID=cit.PLAN_ITEM_ID 
and f.CONTRACT_ID=cit.INQUIRY_FORM_ID
and f.EST_FORM_ID=@formId
";

            using (var context = new TopmepEntities())
            {
                log.Debug("sql=" + sql);
                lst = context.Database.SqlQuery <EstimationItem>(sql, parameters.ToArray()).ToList();
            }
            return(lst);
        }
示例#8
0
        //取得代付扣款彙整資料--依據驗收單相關取得對應的代付資料
        private List <Model4PaymentTransfer> getPaymentTransfer(string projectId, string supplierId)
        {
            List <Model4PaymentTransfer> lstSummary = null;
            string sql        = @"
SELECT 
*
 FROM
(
--代付資料
SELECT F.PROJECT_ID,F.CONTRACT_ID,F.PAYEE,H.* FROM 
PLAN_ESTIMATION_FORM F INNER JOIN
PLAN_ESTIMATION_HOLDPAYMENT H
ON F.EST_FORM_ID=H.EST_FORM_ID
AND F.PROJECT_ID=@projectId
) A
WHERE LEFT(SUPPLIER_ID,7) =@supplierId
";
            var    parameters = new List <SqlParameter>();

            parameters.Add(new SqlParameter("projectId", projectId));
            parameters.Add(new SqlParameter("supplierId", supplierId));

            using (var context = new TopmepEntities())
            {
                lstSummary = context.Database.SqlQuery <Model4PaymentTransfer>(sql, parameters.ToArray()).ToList();
            }
            return(lstSummary);
        }
示例#9
0
        //取得帳號資料
        public void getUserByCriteria(SYS_USER u, string roleid)
        {
            log.Info("user="******",roleId=" + roleid);
            List <SYS_USER> lstUser = new List <SYS_USER>();
            //處理SQL,預先埋入條件減少後續處理作業
            string sql = "SELECT USER_ID,USER_NAME,EMAIL,TEL,TEL_EXT,PASSWORD,FAX,MOBILE,CREATE_ID,CREATE_DATE,MODIFY_ID,MODIFY_DATE,"
                         + "(SELECT ROLE_NAME FROM SYS_ROLE r WHERE r.ROLE_ID = u.ROLE_ID) ROLE_ID,DEP_CODE "
                         + " FROM SYS_USER u WHERE 1=1 ";
            //定義參數: User ID , User Name, Tel,Roleid
            var parameters = new List <SqlParameter>();

            //處理帳號相關條件
            if (null != u)
            {
                //帳號
                log.Debug("userID=" + u.USER_ID);
                if (null != u.USER_ID && u.USER_ID != "")
                {
                    sql = sql + "AND u.USER_ID= @userid ";
                    parameters.Add(new SqlParameter("userid", u.USER_ID));
                }
                //姓名
                log.Debug("USER_NAME=" + u.USER_NAME);
                if (null != u.USER_NAME && u.USER_NAME != "")
                {
                    sql = sql + "AND u.USER_NAME LIKE  @username ";
                    parameters.Add(new SqlParameter("username", "%" + u.USER_NAME + "%"));
                }
                //電話
                log.Debug("TEL=" + u.TEL);
                if (null != u.TEL && u.TEL != "")
                {
                    sql = sql + "AND u.TEL LIKE  @tel ";
                    parameters.Add(new SqlParameter("tel", "%" + u.TEL + "%"));
                }
            }
            //填入角色條件
            if (null != roleid && roleid != "")
            {
                log.Debug("ROLE_ID=" + u.ROLE_ID);
                sql = sql + "AND u.ROLE_ID = @roleid ";
                parameters.Add(new SqlParameter("roleid", roleid));
            }
            //取得資料
            using (var context = new TopmepEntities())
            {
                if (parameters.Count() == 0)
                {
                    log.Debug(sql);
                    lstUser = context.SYS_USER.SqlQuery(sql).ToList();
                }
                else
                {
                    log.Debug(sql);
                    lstUser = context.SYS_USER.SqlQuery(sql, parameters.ToArray()).ToList();
                }

                userManageModels.sysUsers = lstUser;
            }
        }
示例#10
0
        //取得驗收單與相關合約資料
        public List <plansummary> getAllPlanContract(string projectid)
        {
            StringBuilder      sb  = new StringBuilder(sql4Est);
            List <plansummary> lst = new List <plansummary>();
            var parameters         = new List <SqlParameter>();

            parameters.Add(new SqlParameter("projectid", projectid));
            //parameters.Add(new SqlParameter("supplier", DBNull.Value));
            //處理SQL 預先填入專案代號,設定集合處理參數
            string sql = @"
select 
ROW_NUMBER() OVER(ORDER BY c.SUPPLIER_ID) AS NO,
c.INQUIRY_FORM_ID,
c.FORM_NAME,c.SUPPLIER_ID,c.TYPE,count(*) ITEM_ROWS,
MAX(esOrder.PR_ID) as PR_ID_E,MIN(esOrder.PR_ID) as PR_ID_S
  from contract c
inner join esOrder
on c.PLAN_ITEM_ID=esOrder.PLAN_ITEM_ID
group by c.FORM_NAME,c.SUPPLIER_ID,c.TYPE,c.INQUIRY_FORM_ID
                ";

            sql = sb.Append(sql).ToString();
            using (var context = new TopmepEntities())
            {
                log.Debug("get contract sql=" + sql);
                lst = context.Database.SqlQuery <plansummary>(sql, parameters.ToArray()).ToList();
            }
            log.Info("get contract count=" + lst.Count);
            return(lst);
        }
示例#11
0
        public List <ExpenseFormFunction> getExpenseOutFlowByDate(string paymentDate, string duringStart, string duringEnd)
        {
            log.Debug("get cash out flow from expense form by payment date, and payment date =" + paymentDate);
            List <ExpenseFormFunction> lstItem = new List <ExpenseFormFunction>();

            using (var context = new TopmepEntities())
            {
                //條件篩選
                if (null != paymentDate && paymentDate != "")
                {
                    lstItem = context.Database.SqlQuery <ExpenseFormFunction>("SELECT fef.EXP_FORM_ID, ISNULL(fef.PROJECT_ID, '')PROJECT_ID, fef.PAYEE, CONVERT(varchar, fef.PAYMENT_DATE, 111)RECORDED_DATE, SUM(fei.AMOUNT)AMOUNT " +
                                                                              "FROM FIN_EXPENSE_FORM fef LEFT JOIN FIN_EXPENSE_ITEM fei ON fef.EXP_FORM_ID = fei.EXP_FORM_ID WHERE fef.STATUS = 30 AND CONVERT(varchar, fef.PAYMENT_DATE, 111) = @paymentDate " +
                                                                              "GROUP BY fef.EXP_FORM_ID, fef.PAYEE, ISNULL(fef.PROJECT_ID, ''), CONVERT(varchar, fef.PAYMENT_DATE, 111) ", new SqlParameter("paymentDate", paymentDate)).ToList();
                }
                else if (null != duringStart && duringStart != "" && null != duringEnd && duringEnd != "")
                {
                    lstItem = context.Database.SqlQuery <ExpenseFormFunction>("SELECT fef.EXP_FORM_ID, ISNULL(fef.PROJECT_ID, '')PROJECT_ID, fef.PAYEE, CONVERT(varchar, fef.PAYMENT_DATE, 111)RECORDED_DATE, SUM(fei.AMOUNT)AMOUNT " +
                                                                              "FROM FIN_EXPENSE_FORM fef LEFT JOIN FIN_EXPENSE_ITEM fei ON fef.EXP_FORM_ID = fei.EXP_FORM_ID WHERE fef.STATUS = 30 AND CONVERT(varchar, fef.PAYMENT_DATE, 111) >= @duringStart " +
                                                                              "AND CONVERT(varchar, fef.PAYMENT_DATE, 111) <= @duringEnd GROUP BY fef.EXP_FORM_ID, fef.PAYEE, ISNULL(fef.PROJECT_ID, ''), CONVERT(varchar, fef.PAYMENT_DATE, 111) "
                                                                              , new SqlParameter("duringStart", duringStart), new SqlParameter("duringEnd", duringEnd)).ToList();
                }
                else
                {
                    lstItem = context.Database.SqlQuery <ExpenseFormFunction>("SELECT fef.EXP_FORM_ID, ISNULL(fef.PROJECT_ID, '')PROJECT_ID, fef.PAYEE, CONVERT(varchar, fef.PAYMENT_DATE, 111)RECORDED_DATE, SUM(fei.AMOUNT)AMOUNT " +
                                                                              "FROM FIN_EXPENSE_FORM fef LEFT JOIN FIN_EXPENSE_ITEM fei ON fef.EXP_FORM_ID = fei.EXP_FORM_ID WHERE fef.STATUS = 30 GROUP BY fef.EXP_FORM_ID, fef.PAYEE, ISNULL(fef.PROJECT_ID, ''), CONVERT(varchar, fef.PAYMENT_DATE, 111) ").ToList();
                }
            }
            return(lstItem);
        }
示例#12
0
        public int MigratePrice(List <ProjectCompareData> lstData)
        {
            int i = 0;

            try
            {
                using (var context = new TopmepEntities())
                {
                    string sql = "UPDATE TND_PROJECT_ITEM SET ITEM_UNIT_PRICE=@price WHERE PROJECT_ID=@projectid AND SYSTEM_MAIN=@systemMain AND ISNULL(SYSTEM_SUB,'*')=@systemSub AND ITEM_DESC=@itemDesc;";
                    log.Info("sql=" + sql);
                    foreach (ProjectCompareData data in lstData)
                    {
                        //item.SOURCE_PROJECT_ID + '|' + item.SOURCE_SYSTEM_MAIN + '|' + item.SOURCE_SYSTEM_SUB + '|' + item.SRC_UNIT_PRICE + '|' + item.TARGET_PROJECT_ID + '|' + item.SOURCE_ITEM_DESC;}
                        var parameters = new List <SqlParameter>();
                        parameters.Add(new SqlParameter("price", data.SRC_UNIT_PRICE));
                        log.Debug("price=" + data.SRC_UNIT_PRICE);
                        parameters.Add(new SqlParameter("projectid", data.TARGET_PROJECT_ID));
                        log.Debug("TARGET_PROJECT_ID=" + data.TARGET_PROJECT_ID);
                        parameters.Add(new SqlParameter("systemMain", data.SOURCE_SYSTEM_MAIN));
                        log.Debug("SOURCE_SYSTEM_MAIN=" + data.SOURCE_SYSTEM_MAIN);
                        parameters.Add(new SqlParameter("systemSub", data.SOURCE_SYSTEM_SUB));
                        log.Debug("SOURCE_SYSTEM_SUB=" + data.SOURCE_SYSTEM_SUB);
                        parameters.Add(new SqlParameter("itemDesc", data.TARGET_ITEM_DESC));
                        log.Debug("TARGET_ITEM_DESC=" + data.TARGET_ITEM_DESC);
                        i = i + context.Database.ExecuteSqlCommand(sql, parameters.ToArray());
                        context.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error(ex.StackTrace);
            }
            return(i);
        }
示例#13
0
 public void import2Table()
 {
     if (null != lstTask)
     {
         using (var context = new TopmepEntities())
         {
             //1.清除所有任務
             string sql = "DELETE FROM PLAN_TASK WHERE PROJECT_ID=@projectid";
             int    i   = context.Database.ExecuteSqlCommand(sql, new SqlParameter("projectid", project_id));
             log.Debug("Remove Exist Task for projectid=" + project_id);
             //2.匯入任務
             foreach (PLAN_TASK pt in lstTask)
             {
                 if (pt.TASK_NAME != null)
                 {
                     context.PLAN_TASK.Add(pt);
                 }
                 else
                 {
                     log.Warn("task name is null:" + pt.PRJ_UID + ",id=" + pt.PRJ_ID);
                 }
             }
             i = context.SaveChanges();
             log.Info("import task count=" + i);
         }
     }
 }
示例#14
0
        //取得貸款帳戶交易資料
        public BankLoanInfo getBankLoan(string bl_id, string supplier)
        {
            BankLoanInfo item = new BankLoanInfo();

            using (var context = new TopmepEntities())
            {
                try
                {
                    log.Info("get bank transaction BL_ID=" + bl_id);
                    item.LoanInfo = context.FIN_BANK_LOAN.Find(long.Parse(bl_id));
                    long blid = long.Parse(bl_id);
                    item.LoanTransaction = context.FIN_LOAN_TRANACTION.Where(b => b.BL_ID == blid).ToList();
                    string sql = "";
                    //取得期數與匯總金額
                    if (supplier == "Y")
                    {
                        sql = "SELECT ISNULL(CUR_PERIOD, 0)CUR_PERIOD , ISNULL(AMOUNT, 0)AMOUNT, (SELECT ISNULL(SUM(AMOUNT), 0) FROM FIN_BANK_LOAN f " +
                              "LEFT JOIN FIN_LOAN_TRANACTION t ON f.BL_ID = t.BL_ID WHERE t.TRANSACTION_TYPE = 1 AND f.BL_ID =@BL_ID) AS paybackAmt, " +
                              "(SELECT ISNULL(SUM(AMOUNT), 0) FROM FIN_BANK_LOAN f LEFT JOIN FIN_LOAN_TRANACTION t ON f.BL_ID = t.BL_ID " +
                              "WHERE t.TRANSACTION_TYPE = -1 AND f.BL_ID =@BL_ID) AS eventAmt FROM FIN_BANK_LOAN f " +
                              "LEFT JOIN (SELECT BL_ID, MAX(ISNULL(PERIOD, 0)) CUR_PERIOD, SUM(TRANSACTION_TYPE * AMOUNT) AMOUNT " +
                              "FROM FIN_LOAN_TRANACTION GROUP BY BL_ID)flt ON flt.BL_ID = f.BL_ID WHERE f.BL_ID =@BL_ID ";
                    }
                    else
                    {
                        sql = "SELECT ISNULL(CUR_PERIOD, 0)CUR_PERIOD , ISNULL(AMOUNT, 0)AMOUNT, ROUND(ISNULL(fbl.QUOTA * (1-IIF(fbl.vaRatio >= fbl.CUM_AR_RATIO , 1, fbl.QUOTA_AVAILABLE_RATIO/100)), 0), 0) AS SURPLUS_AMOUNT, " +
                              "(SELECT ISNULL(SUM(AMOUNT), 0) FROM FIN_BANK_LOAN f LEFT JOIN FIN_LOAN_TRANACTION t ON f.BL_ID = t.BL_ID WHERE t.TRANSACTION_TYPE = 1 AND f.BL_ID =@BL_ID) AS paybackAmt, " +
                              "(SELECT ISNULL(SUM(AMOUNT), 0) FROM FIN_BANK_LOAN f LEFT JOIN FIN_LOAN_TRANACTION t ON f.BL_ID = t.BL_ID WHERE t.TRANSACTION_TYPE = -1 AND f.BL_ID =@BL_ID) AS eventAmt " +
                              "FROM (SELECT BL_ID, QUOTA, CUM_AR_RATIO, QUOTA_AVAILABLE_RATIO, ISNULL(VALUATION_AMOUNT,0) / ISNULL(contractAtm, 1) * 100 AS vaRatio FROM FIN_BANK_LOAN f LEFT JOIN " +
                              "(SELECT PROJECT_ID, SUM(ITEM_UNIT_PRICE * ITEM_QUANTITY) AS contractAtm FROM PLAN_ITEM GROUP BY PROJECT_ID)pi ON f.PROJECT_ID = pi.PROJECT_ID " +
                              "LEFT JOIN (SELECT PROJECT_ID, SUM(VALUATION_AMOUNT)AS VALUATION_AMOUNT FROM PLAN_VALUATION_FORM GROUP BY PROJECT_ID)v ON f.PROJECT_ID = v.PROJECT_ID " +
                              "WHERE BL_ID=@BL_ID)fbl LEFT JOIN (SELECT lt.BL_ID, MAX(ISNULL(PERIOD,0)) CUR_PERIOD, IIF(QUOTA_RECYCLABLE = 'Y',SUM(TRANSACTION_TYPE*AMOUNT), SUM(IIF(TRANSACTION_TYPE = 1,0,-1)*AMOUNT)) AMOUNT " +
                              "from FIN_LOAN_TRANACTION lt LEFT JOIN FIN_BANK_LOAN bl ON lt.BL_ID = bl.BL_ID GROUP BY lt.BL_ID, bl.QUOTA_RECYCLABLE)flt ON flt.BL_ID = fbl.BL_ID ";
                    }
                    log.Debug("sql=" + sql);
                    Dictionary <string, object> para = new Dictionary <string, object>();
                    para.Add("BL_ID", blid);
                    DataSet ds = ExecuteStoreQuery(sql, System.Data.CommandType.Text, para);
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        item.CurPeriod            = long.Parse(ds.Tables[0].Rows[0]["CUR_PERIOD"].ToString());
                        item.SumTransactionAmount = (decimal)ds.Tables[0].Rows[0]["AMOUNT"];
                        item.paybackAmt           = (decimal)ds.Tables[0].Rows[0]["paybackAmt"];
                        item.eventAmt             = (decimal)ds.Tables[0].Rows[0]["eventAmt"];
                        if (supplier != "Y")
                        {
                            item.SurplusQuota = (decimal)ds.Tables[0].Rows[0]["SURPLUS_AMOUNT"];
                        }
                    }
                }
                catch (Exception ex)
                {
                    log.Error(ex.Message + ":StackTrace=" + ex.StackTrace);
                }
            }
            return(item);
        }
示例#15
0
        //取得估驗單主檔
        public PLAN_ESTIMATION_FORM getForm(string formId)
        {
            PLAN_ESTIMATION_FORM form = null;

            using (var context = new TopmepEntities())
            {
                form = context.PLAN_ESTIMATION_FORM.Where(f => f.EST_FORM_ID == formId).FirstOrDefault();
            }
            return(form);
        }
示例#16
0
 //取得部門資料
 public ENT_DEPARTMENT getDepartmentById(string depid)
 {
     using (var context = new TopmepEntities())
     {
         department = context.ENT_DEPARTMENT.SqlQuery("select dep.* from ENT_DEPARTMENT dep "
                                                      + "where dep.DEP_ID = @depid "
                                                      , new SqlParameter("depid", depid)).First();
     }
     return(department);
 }
示例#17
0
        //建立異動單
        public string createChangeOrder(PLAN_COSTCHANGE_FORM form, List <PLAN_COSTCHANGE_ITEM> lstItem)
        {
            //1.新增成本異動單
            SerialKeyService skService = new SerialKeyService();

            form.FORM_ID = skService.getSerialKey(strSerialNoKey);
            form.STATUS  = "10";
            PLAN_ITEM pi = null;
            int       i  = 0;

            //2.將資料寫入
            using (var context = new TopmepEntities())
            {
                context.PLAN_COSTCHANGE_FORM.Add(form);
                log.Debug("create COSTCHANGE_FORM:" + form.FORM_ID);
                foreach (PLAN_COSTCHANGE_ITEM item in lstItem)
                {
                    if (null != item.PLAN_ITEM_ID && "" != item.PLAN_ITEM_ID)
                    {
                        log.Debug("Object in contract :" + item.PLAN_ITEM_ID);
                        pi = context.PLAN_ITEM.SqlQuery("SELECT * FROM PLAN_ITEM WHERE PLAN_ITEM_ID=@itemId", new SqlParameter("itemId", item.PLAN_ITEM_ID)).First();
                        //補足標單品項欄位
                        if (pi != null && item.ITEM_ID == null)
                        {
                            item.ITEM_ID = pi.ITEM_ID;
                        }
                        if (pi != null && item.ITEM_DESC == null)
                        {
                            item.ITEM_DESC = pi.ITEM_DESC;
                        }
                        if (pi != null && item.ITEM_UNIT == null)
                        {
                            item.ITEM_UNIT = pi.ITEM_UNIT;
                        }
                        if (pi != null && item.ITEM_UNIT_PRICE == null)
                        {
                            item.ITEM_UNIT_PRICE = pi.ITEM_UNIT_PRICE;
                        }
                        if (pi != null && item.ITEM_UNIT_COST == null)
                        {
                            item.ITEM_UNIT_COST = pi.ITEM_UNIT_COST;
                        }
                    }
                    item.FORM_ID    = form.FORM_ID;
                    item.PROJECT_ID = form.PROJECT_ID;
                    context.PLAN_COSTCHANGE_ITEM.Add(item);
                    item.CREATE_USER_ID = form.CREATE_USER_ID;
                    item.CREATE_DATE    = form.CREATE_DATE;
                    log.Debug("create COSTCHANGE_ITEM:" + item.PLAN_ITEM_ID);
                }
                i = context.SaveChanges();
            }
            log.Info("add CostChangeItem count =" + i);
            return(form.FORM_ID);
        }
示例#18
0
        //取得特定專案之工地費用預算年度
        public int getYearOfSiteExpenseById(string projectid, int seqYear)
        {
            int lstYear = 0;

            using (var context = new TopmepEntities())
            {
                lstYear = context.Database.SqlQuery <int>("SELECT BUDGET_YEAR FROM PLAN_SITE_BUDGET WHERE PROJECT_ID = @projectid AND YEAR_SEQUENCE = @seqYear GROUP BY BUDGET_YEAR "
                                                          , new SqlParameter("projectid", projectid), new SqlParameter("seqYear", seqYear)).FirstOrDefault();
            }
            return(lstYear);
        }
示例#19
0
        //取得估驗請款憑證資料
        public List <PLAN_ESTIMATION_INVOICE> getEstimationInvoice(string formId)
        {
            List <PLAN_ESTIMATION_INVOICE> lst = new List <PLAN_ESTIMATION_INVOICE>();

            using (var context = new TopmepEntities())
            {
                lst = context.PLAN_ESTIMATION_INVOICE.Where(x => x.EST_FORM_ID == formId).Select(x => x).ToList();
                log.Debug("get invoice by formId=" + formId + ",count=" + lst.Count);
            }
            return(lst);
        }
示例#20
0
        //取得工地費用項目
        public List <FIN_SUBJECT> getSubjectOfExpense4Site()
        {
            List <FIN_SUBJECT> lstSubject = new List <FIN_SUBJECT>();

            using (var context = new TopmepEntities())
            {
                lstSubject = context.Database.SqlQuery <FIN_SUBJECT>("SELECT * FROM FIN_SUBJECT WHERE CATEGORY = '工地費用' ORDER BY FIN_SUBJECT_ID; ").ToList();
                log.Info("Get Subject of Operating Expense Count=" + lstSubject.Count);
            }
            return(lstSubject);
        }
示例#21
0
        //取得專案編號?
        public string getSiteBudgetById(string prjid)
        {
            string projectid = null;

            using (var context = new TopmepEntities())
            {
                projectid = context.Database.SqlQuery <string>("SELECT DISTINCT PROJECT_ID FROM PLAN_SITE_BUDGET WHERE PROJECT_ID = @pid "
                                                               , new SqlParameter("pid", prjid)).FirstOrDefault();
            }
            return(projectid);
        }
示例#22
0
        //取得特定年度之公司費用總預算金額
        public ExpenseBudgetSummary getTotalExpBudgetAmount(int year)
        {
            ExpenseBudgetSummary lstAmount = null;

            using (var context = new TopmepEntities())
            {
                lstAmount = context.Database.SqlQuery <ExpenseBudgetSummary>("SELECT SUM(AMOUNT) AS TOTAL_BUDGET FROM FIN_EXPENSE_BUDGET WHERE BUDGET_YEAR = @year  "
                                                                             , new SqlParameter("year", year)).FirstOrDefault();
            }
            return(lstAmount);
        }
示例#23
0
        //取得代付支出明細資料
        public List <PLAN_ESTIMATION_HOLDPAYMENT> getHoldPayment(string formId)
        {
            List <PLAN_ESTIMATION_HOLDPAYMENT> lst = new List <PLAN_ESTIMATION_HOLDPAYMENT>();

            log.Debug("get PLAN_ESTIMATION_HOLDPAYMENT by " + formId);
            using (var context = new TopmepEntities())
            {
                lst = context.PLAN_ESTIMATION_HOLDPAYMENT.Where(f => f.EST_FORM_ID == formId).ToList();
            }
            return(lst);
        }
示例#24
0
        //取得特定期間工地費用預算與費用彙整
        public List <ExpenseBudgetSummary> getSiteExpenseSummaryByYear(string projectid, string targetYear)
        {
            List <ExpenseBudgetSummary> lstExpBudget = new List <ExpenseBudgetSummary>();

            using (var context = new TopmepEntities())
            {
                log.Info("sql = " + sql4Expense);
                lstExpBudget = context.Database.SqlQuery <ExpenseBudgetSummary>(sql4Expense, new SqlParameter("projectid", projectid), new SqlParameter("targetYear", targetYear)).ToList();
            }
            return(lstExpBudget);
        }
示例#25
0
        //取得特定專案之起始年度
        public int getFirstYearOfPlanById(string projectid)
        {
            int lstYear = 0;

            using (var context = new TopmepEntities())
            {
                lstYear = context.Database.SqlQuery <int>("SELECT YEAR(CREATE_DATE) FROM PLAN_ITEM WHERE PROJECT_ID = @projectid GROUP BY YEAR(CREATE_DATE) "
                                                          , new SqlParameter("projectid", projectid)).FirstOrDefault();
            }
            return(lstYear);
        }
示例#26
0
        public List <REF_TYPE_MAIN> getMainType()
        {
            List <REF_TYPE_MAIN> lst = new List <REF_TYPE_MAIN>();

            using (var context = new TopmepEntities())
            {
                lst = context.REF_TYPE_MAIN.SqlQuery("SELECT * FROM REF_TYPE_MAIN ORDER BY TYPE_CODE_1 ,TYPE_CODE_2;").ToList();
                log.Debug("get Main Type Count" + lst.Count);
            }
            return(lst);
        }
示例#27
0
        public List <REF_TYPE_SUB> getSubType(string typecodeid)
        {
            List <REF_TYPE_SUB> lst = new List <REF_TYPE_SUB>();

            using (var context = new TopmepEntities())
            {
                lst = context.REF_TYPE_SUB.SqlQuery("SELECT * FROM REF_TYPE_SUB WHERE TYPE_CODE_ID=@typecodeid ORDER BY SUB_TYPE_CODE;", new SqlParameter("typecodeid", typecodeid)).ToList();
                log.Debug("get sub Type Count" + lst.Count);
            }
            return(lst);
        }
示例#28
0
 /// <summary>
 /// 刪除部門資料
 /// </summary>
 /// <param name="depId"></param>
 public void delDepartment(long depId)
 {
     using (var context = new TopmepEntities())
     {
         //2.取得
         ENT_DEPARTMENT d = context.ENT_DEPARTMENT.Find(depId);
         log.Info("del Department =" + d.DEPT_NAME + "," + d.DEP_ID);
         context.ENT_DEPARTMENT.Remove(d);
         int i = context.SaveChanges();
         log.Debug("remove dep=" + i);
     }
 }
示例#29
0
 //新增部門資料
 public long addDepartment(ENT_DEPARTMENT dep)
 {
     log.Info("create new Department ");
     using (var context = new TopmepEntities())
     {
         //2.取得供應商編號
         context.ENT_DEPARTMENT.AddOrUpdate(dep);
         int i = context.SaveChanges();
         log.Debug("Add dep=" + i);
     }
     return(dep.DEP_ID);
 }
示例#30
0
        //取得財務科目類別選單
        public List <string> getCategory()
        {
            List <string> lst = new List <string>();

            using (var context = new TopmepEntities())
            {
                //取得科目類別
                lst = context.Database.SqlQuery <string>("SELECT DISTINCT CATEGORY FROM FIN_SUBJECT ;").ToList();
                log.Info("Get Subject Category Count=" + lst.Count);
            }
            return(lst);
        }