public DataTablesResponse GetListAuthor(IDataTablesRequest dataTableParam, ResourceAuthorSearchViewModel searchViewModel) { try { var query = ResourceRepository.GetAll(x => x.IsDeleted == false && x.Type == (int)ResourceType.Author, null, x => x.Authors); if (searchViewModel.AuthorId > 0) { query = query.Where(x => x.Authors.Any(g => g.IsDeleted == false && g.Id == searchViewModel.AuthorId)); } var dataTableHelper = new DataTableHelper<ResourceAuthorViewModel, Resource>(query, x => new ResourceAuthorViewModel { Id = x.Id, Url = x.Url, Tag = x.Tag, Author = x.Authors.AsQueryable().Any(y => y.IsDeleted == false) ? x.Authors.AsQueryable().FirstOrDefault().Name : "" }); var entities = dataTableHelper.GetDataVMForResponse(dataTableParam); var result = dataTableHelper.GetDataToList(dataTableParam, entities); return new DataTablesResponse(dataTableParam.Draw, result, entities.Count(), entities.Count()); } catch (Exception ex) { Provider.Instance.LogError(ex); return new DataTablesResponse(dataTableParam.Draw, new List<ResourceAuthorViewModel>(), 0, 0); } }
public void AddDupFoldTable(int dup, DataTable dt, string[] newcolname, int[] colwidth, string title = null) { DataTableHelper dth = new DataTableHelper(); object[,] table = dth.DataTableTo2DTable(dt); if (newcolname != null) { for (int j = 0; j < newcolname.GetLength(0); j++) { table[0, j] = newcolname[j]; } } table = dth.DupFold2DTable_HasColHeader(dup, table); if (colwidth == null) { AddTable(table, null, title); } else { int cn = colwidth.GetLength(0); int[] _wid = new int[cn * 2]; for (int i = 0; i < cn; i++) { _wid[i] = _wid[cn + i] = colwidth[i]; } AddTable(table, _wid, title); } }
public void AddTable(word.Application wdapp, word.Document wddoc, DataTable dt, string[] newcolname, int[] colwidth, string title = null) { DataTableHelper dth = new DataTableHelper(); object[,] table = dth.DataTableTo2DTable(dt); if (newcolname != null) { for (int j = 0; j < newcolname.GetLength(0); j++) { table[0, j] = newcolname[j]; } } this.AddTable(wdapp, wddoc, table, colwidth, title); }
public DataTable PrintBarCode(MesSession _session, string _sn, string processData) { META_ParameterInfo info = BLLFactory <META_Parameter> .Instance.FindSingle($"Key='LablePath'"); string lablePath = info.Value; info = BLLFactory <META_Parameter> .Instance.FindSingle($"Key='TracePrinterName'"); string tracePrinterName = info.Value; info = BLLFactory <META_Parameter> .Instance.FindSingle($"Key='ConFormPrinterName'"); string conFormPrinterName = info.Value; info = BLLFactory <META_Parameter> .Instance.FindSingle($"Key='CustomerCode'"); string customerCode = info.Value; META_DevLinkInfo devInfo = BLLFactory <META_DevLink> .Instance.FindSingle($"DevCode='OP320'"); string productType = devInfo.ProcessType; new LogInfo(_session, LogLevel.Info, $"打印基础数据准备完成{System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}"); List <string> lstMsg = StringHelper.GetStrArray(processData, '/', false); string supplierCode = lstMsg[0]; string traceLabel = lstMsg[1]; string conFormLabel = lstMsg[2]; string traceability = lstMsg[3]; string imsafeCode = lstMsg[3]; if (productType == "ECMP" && (supplierCode == "A009D3 01" || supplierCode == "M107190000")) { imsafeCode = customerCode + supplierCode + lstMsg[3].ToString().Substring(7, 6) + "A"; } else { imsafeCode = lstMsg[3]; } string sn = lstMsg[4]; string hw = lstMsg[5]; string sw = lstMsg[6]; ApplicationClass lbl_1 = null, lbl_2 = null; Document doc_1 = null, doc_2 = null; DataTable dt = DataTableHelper.CreateTable("CheckStatus,ReturnMsg"); dt.TableName = "PrintCheck"; try { lbl_1 = new ApplicationClass(); lbl_1.Documents.Open(lablePath + conFormLabel); doc_1 = lbl_1.ActiveDocument; doc_1.Printer.SwitchTo(conFormPrinterName); string[] arrProduct = _sn.Trim().Split('-'); doc_1.Variables.FormVariables.Item("Product").Value = arrProduct[0].ToUpper(); doc_1.Variables.FormVariables.Item("SullperCode").Value = supplierCode.ToUpper(); doc_1.Variables.FormVariables.Item("Date").Value = System.DateTime.Now.ToString("dd-MM-yy"); doc_1.Variables.FormVariables.Item("Barcode").Value = sn.ToUpper(); doc_1.Variables.FormVariables.Item("HW").Value = hw.ToUpper(); doc_1.Variables.FormVariables.Item("SW").Value = sw.ToUpper(); new LogInfo(_session, LogLevel.Info, $"产品条码打印:DocName:{lablePath + conFormLabel},Printer:{conFormPrinterName},{doc_1.Printer.FullName}"); doc_1.PrintDocument(1); lbl_2 = new ApplicationClass(); lbl_2.Documents.Open(lablePath + traceLabel); doc_2 = lbl_2.ActiveDocument; doc_2.Printer.SwitchTo(tracePrinterName); doc_2.Variables.FormVariables.Item("Date").Value = System.DateTime.Now.ToString("dd-MM-yy"); doc_2.Variables.FormVariables.Item("TraceabilityNumber").Value = traceability.Substring(6, 7).ToUpper(); if (productType == "ECMP") { doc_2.Variables.FormVariables.Item("SerialNumber").Value = customerCode.ToUpper(); } else { doc_2.Variables.FormVariables.Item("SerialNumber").Value = arrProduct[1].Substring(0, 13).ToUpper(); } doc_2.Variables.FormVariables.Item("SullperCode").Value = supplierCode.ToUpper(); doc_2.Variables.FormVariables.Item("Barcode").Value = imsafeCode.ToUpper(); if (supplierCode == "A009D3 01") { doc_2.Variables.FormVariables.Item("NO.").Value = "01"; } else { doc_2.Variables.FormVariables.Item("NO.").Value = ""; } doc_2.PrintDocument(1); new LogInfo(_session, LogLevel.Info, $"客户追溯条码打印:DocName:{lablePath + traceLabel},Printer:{tracePrinterName},{doc_2.Printer.FullName}"); dt.Rows.Add("1", "Print Success."); } catch (Exception e) { if (lbl_1 != null) { lbl_1.Quit(); } if (lbl_2 != null) { lbl_2.Quit(); } LogInfo log = new LogInfo(_session, LogLevel.Error, $"打印异常:{e.ToString()}"); dt.Rows.Add("-1", e.Message); } finally { LogInfo log = new LogInfo(_session, LogLevel.Info, $"退出打印:TracePrinterName:{tracePrinterName},ConFormPrinterName:{conFormPrinterName}"); if (lbl_1 != null) { lbl_1.Documents.CloseAll(true); lbl_1.Quit();//退出 lbl_1 = null; doc_1 = null; } if (lbl_2 != null) { lbl_2.Documents.CloseAll(true); lbl_2.Quit();//退出 lbl_2 = null; doc_2 = null; } GC.Collect(0); } ProcessHelper.KillProcess("lppa"); return(dt); }
protected override void BeforeExport() { string lineFilter = string.Empty; if (!string.IsNullOrEmpty(_form.Line)) lineFilter = "產線 = '" + _form.Line + "'"; UnfinishedWorksheetReportSourceTableAdapter adapter = new UnfinishedWorksheetReportSourceTableAdapter(); //取得基本報表資料 ReportDataSet.UnfinishedWorksheetReportSourceDataTable srcTable = adapter.GetData(this.StartDate, this.EndDate, this.StartDate == DateTime.MinValue && this.EndDate == DateTime.MaxValue); srcTable.Columns.Add("退驗數量", typeof(decimal)); srcTable.Columns.Add("待驗數量", typeof(decimal)); //變更公式計算 srcTable.Columns["完成%"].Expression = "IIF(數量 = 0,0,(已生產數量+待驗數量)/數量)"; //srcTable.Columns["生產效率"].Expression = "IIF((內部工時+外包工時) = 0,0,(已生產數量+待驗數量)*標準工時/(內部工時+外包工時))"; //取得日期範圍 int minYear, minMonth, maxYear, maxMonth; DateTime from, to; object o; o = srcTable.Compute("MIN(年份)", string.Empty); minYear = Convert.IsDBNull(o) ? DateTime.MinValue.Year : (int)o; o = srcTable.Compute("MIN(月份)", string.Empty); minMonth = Convert.IsDBNull(o) ? DateTime.MinValue.Month : (int)o; o = srcTable.Compute("MAX(年份)", string.Empty); maxYear = Convert.IsDBNull(o) ? DateTime.MinValue.Year : (int)o; o = srcTable.Compute("MAX(月份)", string.Empty); maxMonth = Convert.IsDBNull(o) ? DateTime.MinValue.Month : (int)o; from = new DateTime(minYear, minMonth, 1); to = new DateTime(maxYear, maxMonth, 1); //取得每月工作時數 Dictionary<DateTime, decimal> workHoursDic = new Dictionary<DateTime, decimal>(); for (DateTime date = new DateTime(from.Year, from.Month, 1); date <= to; date = date.AddMonths(1)) { decimal hours = Global.GetWorkingHours(date.Year, date.Month); workHoursDic.Add(date, hours); } //重新運算內部工資 DateTime curRowMonth = DateTime.MinValue; foreach (ReportDataSet.UnfinishedWorksheetReportSourceRow row in srcTable) { if (!Convert.IsDBNull(row["年份"])) { if (row.年份 != curRowMonth.Year || row.月份 != curRowMonth.Month) curRowMonth = new DateTime(row.年份, row.月份, 1); row.內部工資 = Math.Round(row.內部工資 / workHoursDic[curRowMonth], MidpointRounding.AwayFromZero); } } //重新Group資料 DataTableHelper dtHelper = new DataTableHelper(); _table = dtHelper.SelectGroupByInto("ReportTable", srcTable, "產線,單據日期,預計完成日,工作單號,序號,品號,品名,退驗數量,待驗數量,數量,單位" + ",標準工時,單位人工成本, 總標準工時,Sum(內部工時) 內部工時, Sum(內部工資) 內部工資"+ ",外包工時,外包工資,Sum(已生產數量) 已生產數量,完成%,生產效率,尚需工時,工品編號", lineFilter, "產線,單據日期,預計完成日,工作單號,品號,品名,數量,標準工時,單位人工成本,工品編號"); //設定欄位 _table.Columns["單位"].DefaultValue = "KPCS"; _table.Columns.Add("未完成數量", typeof(decimal), "數量-已生產數量-待驗數量").SetOrdinal(9); //取得LaborWage資料庫 LaborWageHelper lwHelper = new LaborWageHelper(); LaborWage工作單品號Table lwTable = null; //運算序號並填入外包工資與工時 string curWorksheetNumber = string.Empty; //int seriesNumber = 1; foreach (DataRow row in _table.Rows) { string wsNumber = row["工作單號"].ToString(); string pn = row["品號"].ToString(); int wpid = (int)row["工品編號"]; if (curWorksheetNumber != wsNumber) { curWorksheetNumber = wsNumber; //seriesNumber = 1; lwTable = lwHelper.GetData(curWorksheetNumber); } //取得退驗 row["退驗數量"] = DatabaseSet.GetNGAmount(wsNumber, wpid) / 1000.0f; row["待驗數量"] = DatabaseSet.GetInspectedAmount(wsNumber, wpid) / 1000.0f; //計算未完成數量 //row["未完成數量"] = (decimal)row["數量"] - (decimal)row["已生產數量"]; //DataRow[] lwRows = lwTable.Select(string.Format("品號 = '{0}'", row["品號"].ToString())); //DataRow[] lwRows = lwTable.Select(string.Format("工品編號 = {0}", row["工品編號"].ToString())); object result = lwTable.Compute("SUM(外包工資)", string.Format("工品編號 = {0}", row["工品編號"].ToString())); //if (lwRows.Length > 0) if(result != null && result != DBNull.Value) { //decimal laborWage = (decimal)lwRows[0]["外包工資"]; decimal laborWage = Convert.ToDecimal(result); //decimal number = (decimal)lwRows[0]["數量"]; row["外包工資"] = laborWage; row["外包工時"] = laborWage / Settings.HourlyPay; //row["已生產數量"] = (decimal)row["已生產數量"] + number; } if ((decimal)row["總標準工時"] != 0) //row["生產效率"] = ((decimal)row["內部工時"] + (decimal)row["外包工時"]) / ((decimal)row["總標準工時"] * (decimal)row["完成%"]); //row["尚需工時"] = (decimal)row["總標準工時"] * (1 - (decimal)row["完成%"]); row["尚需工時"] = (decimal)row["總標準工時"] - (decimal)row["內部工時"] - (decimal)row["外包工時"]; else row["尚需工時"] = 0; //row["序號"] = seriesNumber++; row["序號"] = wpid; } base.BeforeExport(); }
protected override void WriteContent() { System.Data.DataTable linesTable = DataTableHelper.SelectDistinct(_table, "���u"); //�إg�J�e�m�@�~ int writeRow = 4; PasteDataRowsOptions options = new PasteDataRowsOptions(); options.IncludeSummary = false; //��ʱ���Summary Row options.SummaryColumns.AddRange(new string[] { /*"�h��ƶq", */"�ƶq"/*, "�зǤu��", "���H�u����"*/, "�����u��", "�����u��", "�~�]�u��", "�~�]�u��", "�з��`�u��", "�з��`�u��", "����`�u��" /*"���зǤu��", "��ڤu��", "��ڤu��"*/ }); options.NoSummaryColumns.AddRange(new string[] { "�зǤu��", "���H�u����", "���зǤu��", "��ڤu��", "��ڤu��" }); PasteDataRowEventHandler beforeSummary = new PasteDataRowEventHandler(BeforePasteDataRowSummary); //this.SheetAdapter.BeforePasteDataRowSummary += beforeSummary; DataTableHelper dtHelper = new DataTableHelper(); DataTable nonNormalHourTable = dtHelper.SelectGroupByInto("ReportTable", _srcTable, "���u, Sum(�����u��) �����u��, �u������", null, "���u,��ڧ�����,�u�@�渹,�~��,�~�W,�ƶq,�зǤu��,���H�u����,���зǤu��,�u�~�s��,�u������"); //��C�Ӳ��u foreach (DataRow lineRow in linesTable.Rows) { //NOTICE: ��Select����ק�ɤ]�����ק�BeforePasteDataRowSummary���e DataRow[] rows = _table.Select("���u = '" + lineRow["���u"] + "'", "�u�@�渹,�Ǹ�"); foreach (DataRow row in rows) { string worksheet = (string)row["�u�@�渹"]; int serialNumber = (int)row["�Ǹ�"]; //��h���`+�]�� object abnormalResult = _srcTable.Compute("SUM(�����u��)", "�u�@�渹='" + worksheet + "' AND �u�~�s�� = " + serialNumber + " AND ���u = '" + lineRow["���u"] + "' AND (�u������=" + (int)HourType.���`�Ͳ��u�� + " OR �u������=" + (int)HourType.�]�� + ")"); if (abnormalResult != DBNull.Value) row["����`�u��"] = (decimal)row["����`�u��"] - (decimal)abnormalResult; } //�g�J���e options.IncludeSummary = false; options.Row = writeRow; options.SummaryPrefix = lineRow["���u"] + "���u�p�p"; writeRow = this.SheetAdapter.PasteDataRows(rows, options); //�g�J���`�Ͳ��u��,�]�ˤu�� decimal unusual = 0; decimal package = 0; // ���o���`�Ͳ��u�� object result = nonNormalHourTable.Compute("SUM(�����u��)", "���u = '" + lineRow["���u"] + "' AND �u������=" + (int)HourType.���`�Ͳ��u��); if (result != null && result != DBNull.Value) unusual = (decimal)result; // ���o�]�ˤu�� result = nonNormalHourTable.Compute("SUM(�����u��)", "���u = '" + lineRow["���u"] + "' AND �u������=" + (int)HourType.�]��); if (result != null && result != DBNull.Value) package = (decimal)result; DataRow tmpRow = _table.NewRow(); tmpRow["���"] = null; tmpRow[0] = "���`�Ͳ��u��"; tmpRow["����`�u��"] = unusual; writeRow = this.SheetAdapter.PasteDataRow(tmpRow, writeRow, options.Column); tmpRow[0] = "�]��"; tmpRow["����`�u��"] = package; writeRow = this.SheetAdapter.PasteDataRow(tmpRow, writeRow, options.Column); //�g�J�p�p options.Row = writeRow; _subttlRows.Add(writeRow); writeRow = this.SheetAdapter.PasteSummaryRow(rows, options); } //this.SheetAdapter.BeforePasteDataRowSummary -= beforeSummary; decimal ttlUnusual = 0; decimal ttlPackage = 0; // ���o���`�Ͳ��u�� object tmpResult = nonNormalHourTable.Compute("SUM(�����u��)", "�u������=" + (int)HourType.���`�Ͳ��u��); if (tmpResult != null && tmpResult != DBNull.Value) ttlUnusual = (decimal)tmpResult; // ���o�]�ˤu�� tmpResult = nonNormalHourTable.Compute("SUM(�����u��)", "�u������=" + (int)HourType.�]��); if (tmpResult != null && tmpResult != DBNull.Value) ttlPackage = (decimal)tmpResult; //�g�J�`�p(���]�A���`,�]��) DataTable tmpTable = _table.Clone(); tmpTable.Columns["����`�u��"].Expression = string.Empty; //����`�u�ɦۤv�p�� DataRow totalRow = tmpTable.NewRow(); foreach (string sumCol in options.SummaryColumns) { if (!string.IsNullOrEmpty(tmpTable.Columns[sumCol].Expression)) tmpTable.Columns[sumCol].Expression = string.Empty; object o; o = _table.Compute("SUM(" + sumCol + ")", string.Empty); totalRow[sumCol] = Convert.IsDBNull(o) ? 0 : (decimal)o; } foreach (string noSumCol in options.NoSummaryColumns) { tmpTable.Columns[noSumCol].Expression = string.Empty; totalRow[noSumCol] = DBNull.Value; } ////����`�u�� - (���`�Ͳ��u��+�]��) �e����L�F //object ttlHourObj = _table.Compute("SUM(����`�u��)", string.Empty); //decimal ttlHour = Convert.IsDBNull(ttlHourObj) ? 0 : (decimal)ttlHourObj; ////totalRow["����`�u��"] = ttlHour - (ttlUnusual + ttlPackage); totalRow[0] = "�`�p"; _ttlRow = writeRow; tmpTable.Rows.Add(totalRow); writeRow = this.SheetAdapter.PasteDataRow(totalRow, writeRow, 1); //tmpTable = _table.Clone(); ////�g�J���`,�]���`�p //tmpTable.Columns[tmpTable.Columns["�~�]�u��"].Ordinal].DataType = typeof(object); //DataRow abnormalTotalRow = tmpTable.NewRow(); //abnormalTotalRow["���"] = null; //abnormalTotalRow[tmpTable.Columns["�~�]�u��"].Ordinal] = "���`�Ͳ��u��"; //abnormalTotalRow["����`�u��"] = ttlUnusual; //writeRow = this.SheetAdapter.PasteDataRow(abnormalTotalRow, writeRow, options.Column); //abnormalTotalRow[tmpTable.Columns["�~�]�u��"].Ordinal] = "�]��"; //abnormalTotalRow["����`�u��"] = ttlPackage; //writeRow = this.SheetAdapter.PasteDataRow(abnormalTotalRow, writeRow, options.Column); ////�g�J�`�p(+���`,�]��) //totalRow = tmpTable.NewRow(); //options.SummaryColumns = new List<string>(new string[] { "����`�u��", "�з��`�u��" }); //options.NoSummaryColumns = new List<string>(new string[] { "�ƶq", "�����u��", "�����u��", "�~�]�u��", "�~�]�u��", "�зǤu��", "���H�u����", "���зǤu��", "��ڤu��", "��ڤu��", "�з��`�u��" }); //foreach (string sumCol in options.SummaryColumns) //{ // if (!string.IsNullOrEmpty(tmpTable.Columns[sumCol].Expression)) // tmpTable.Columns[sumCol].Expression = string.Empty; // object o; // o = _table.Compute("SUM(" + sumCol + ")", string.Empty); // totalRow[sumCol] = Convert.IsDBNull(o) ? 0 : (decimal)o; //} //foreach (string noSumCol in options.NoSummaryColumns) //{ // tmpTable.Columns[noSumCol].Expression = string.Empty; // totalRow[noSumCol] = DBNull.Value; //} //totalRow[tmpTable.Columns["�~�]�u��"].Ordinal] = "Total"; //totalRow["���"] = null; //tmpTable.Rows.Add(totalRow); //_ttlRow = writeRow; //writeRow = this.SheetAdapter.PasteDataRow(totalRow, writeRow, 1); base.WriteContent(); }
protected override void BeforeExport() { //InspectListReportTableAdapter adapter = new InspectListReportTableAdapter(); //���o������ string qcn = _form.QCN; string worksheetFrom = _form.WorksheetFrom; string worksheetTo = _form.WorksheetTo; string partNumber = _form.PartNumber; DateTime from = _form.From; DateTime to = _form.To; _table = ReportDataSet.InspectListReportDataTable.GetData(from, to, partNumber, qcn, worksheetFrom, worksheetTo, _form.InspeceMode == InspeceMode.ByPn ? true : _form.Group, _form.Line, _form.OnlyNG); //_table.Columns.Add("Remark"); if (_form.InspeceMode == InspeceMode.ByPn) { _table.Columns.Add("OK", typeof(int), "IIF(���窬�A='OK' AND �e�˦���=1, 1, 0)"); _table.Columns.Add("ReOK", typeof(int), "IIF(���窬�A='OK' AND �e�˦���>1, 1, 0)"); _table.Columns.Add("Concession", typeof(int), "IIF(���窬�A='Concession', 1, 0)"); _table.Columns.Add("NG", typeof(int), "IIF(���窬�A='NG', 1, 0)"); _table.Columns.Add("OkNum", typeof(int), "IIF(���窬�A='OK' or ���窬�A='Concession', ����ƶq, 0)"); DataTableHelper helper = new DataTableHelper(); string field = "MAX(������) ������, ���u, �~��, SUM(����ƶq) ����ƶq, �u�@�渹, �Ȥ�W��, �`�ƶq, �u�~�s��, QCN, " + "Count(�u�ɸ�ƽs��) Total, SUM(OkNum) OkNum, SUM(OK) OK, SUM(Concession) Concession, SUM(ReOK) ReOK, SUM(NG) NG"; _groupTable = helper.CreateGroupByTable("GroupByPn", _table, field); _groupTable.Columns.Add("�~��i��"); _groupTable.Columns.Add("Remark"); helper.InsertGroupByInto(_groupTable, _table, field, null, "���u, �u�@�渹, �u�~�s��, �Ȥ�W��"); //��JQC#�J�`�P�~��i���J�` foreach (DataRow grpRow in _groupTable.Rows) { string worksheet = (string)grpRow["�u�@�渹"]; int wpid = (int)grpRow["�u�~�s��"]; DataRow[] rows = _table.Select("�u�@�渹 = '" + worksheet + "' AND �u�~�s��=" + wpid); List<string> qcnList = new List<string>(); List<string> reasonList = new List<string>(); foreach (DataRow row in rows) { string q = row["QCN"] as string; if (!string.IsNullOrEmpty(q) && !qcnList.Contains(q)) qcnList.Add(q); string ngreason = row["�~��i��"] as string; if (!string.IsNullOrEmpty(ngreason)) { string[] reasons = ngreason.Split('\n'); foreach (string reason in reasons) { if(!reasonList.Contains(reason)) reasonList.Add(reason); } } } grpRow["QCN"] = string.Join("\n", qcnList.ToArray()); grpRow["�~��i��"] = string.Join("\n", reasonList.ToArray()); } } if (_form.OutputStatistic) { _statisticTable = new DataTable(); _statisticTable.Columns.Add("���u", typeof(string)); _statisticTable.Columns.Add("�J�w�`���", typeof(int)); _statisticTable.Columns.Add("�e���`����", typeof(int)); _statisticTable.Columns.Add("�X��v", typeof(double), "IIF(�e���`����=0, 0, �J�w�`��� / �e���`����)"); } base.BeforeExport(); }
public override bool Update() { //if (IsDirty) //{ DataSet dataSet = new DataSet(); if (this.DirtyList.Count > 1) { DataTable storeTable = DataTableHelper.CreateDataTableForUpdateBasicData(WST_STORE_FIELDS.DATABASE_TABLE_NAME); foreach (string Key in this.DirtyList.Keys) { Dictionary <string, string> rowData = new Dictionary <string, string>() { { COMMON_FIELDS.FIELD_COMMON_UPDATE_KEY, _storeKey }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_NAME, Key }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_OLD_VALUE, this.DirtyList[Key].FieldOriginalValue }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_NEW_VALUE, this.DirtyList[Key].FieldNewValue } }; FanHai.Hemera.Utils.Common.Utils.AddRowDataToDataTable(ref storeTable, rowData); } if (storeTable.Rows.Count > 0) { dataSet.Tables.Add(storeTable); } try { DataSet dsReturn = null; IServerObjFactory serverFactory = CallRemotingService.GetRemoteObject(); if (null != serverFactory) { dsReturn = serverFactory.CreateIStoreEngine().UpdateStore(dataSet); _errorMsg = FanHai.Hemera.Share.Common.ReturnMessageUtils.GetServerReturnMessage(dsReturn); if (_errorMsg != "") { if (_errorMsg == COMMON_FIELDS.FIELD_COMMON_EDITTIME_EXP) { //提示“数据已经被修改,请刷新后再操作!”信息 MessageService.ShowWarning("${res:Global.RecordExpired}"); } else { MessageService.ShowError(_errorMsg); } return(false); } } } catch (Exception ex) { MessageService.ShowError(ex); } finally { CallRemotingService.UnregisterChannel(); } } else { MessageService.ShowMessage("${res:FanHai.Hemera.Addins.FMM.Msg.UpdateError}", "${res:Global.SystemInfo}"); } //} //else //{ // MessageService.ShowMessage("${res:FanHai.Hemera.Addins.FMM.Msg.UpdateError}", "${res:Global.SystemInfo}"); //} return(true); }
/// <summary> /// 通过上传excel批量退房 /// 不支持换房 /// </summary> public bool CheckOutBatch(string filePath, out int nSuccess, out DataTable dtErr) { nSuccess = 0; dtErr = null; //读取Excel内容 DataTable dt = _mExcelHelper.GetDataFromExcel(filePath); if (DataTableHelper.IsEmptyDataTable(dt)) { LogManager.GetInstance().ErrorLog("CheckOutBatch,导入的excel表记录为空"); return(false); } int nTotalCnt = dt.Rows.Count; //全部待导入的个数 dtErr = dt.Clone(); var lstDel = new List <DataRow>(); try { foreach (DataRow r in dt.Rows) { var sWorkID = r["工号"].ToString().Trim(); var sIDCardNo = r["身份证号码"].ToString().Trim(); var sReason = r["退房原因"].ToString().Trim(); //排除明显无效的项 var bValid = true; if (string.IsNullOrEmpty(sWorkID) && string.IsNullOrEmpty(sIDCardNo)) { bValid = false; } bValid = bValid && IsValidReason(sReason); if (!bValid) { DataTableHelper.CopyDataRow(dtErr, r); lstDel.Add(r); } } } catch (Exception ex) { LogManager.GetInstance().ErrorLog("CheckOutBatch,关键列不存在", ex); return(false); } foreach (var oDel in lstDel) { dt.Rows.Remove(oDel); } _db = DBO.CreateDatabase(); _connection = _db.CreateConnection(); _connection.Open(); try { foreach (DataRow rImp in dt.Rows) { if (!CheckOutBatch_part(rImp)) { DataTableHelper.CopyDataRow(dtErr, rImp); } else { nSuccess++; } } } finally { _connection.Close(); } return(nSuccess == nTotalCnt); }
public string GetCentros(int iDisplayStart, int iDisplayLength, int sEcho, int iSortCol_0, string sSortDir_0, string sSearch) { var dth = new DataTableHelper(); var db = new edayRoomEntities(); user user = db.users.Single(u => u.username == User.Identity.Name); IQueryable <Centro> centros = from c in db.Centroes where (user.admin || (user.leader && c.grupo == user.grupo) || c.Mesas1.Any( m => m.AsignacionParticipacions.Any(ap => ap.id_user == user.id))) select c; dth.iTotalRecords = centros.Count(); if (!string.IsNullOrEmpty(sSearch)) { centros = centros.Where(c => c.Nombre.ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica1 ?? "").ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica2 ?? "").ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica3 ?? "").ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica4 ?? "").ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica5 ?? "").ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica6 ?? "").ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica7 ?? "").ToLower().Contains(sSearch.ToLower()) || (c.unidadGeografica8 ?? "").ToLower().Contains(sSearch.ToLower()) || c.Direccion.ToLower().Contains(sSearch.ToLower()) ); } dth.iTotalDisplayRecords = centros.Count(); #region ORDER ALERTAS switch (sSortDir_0) { case "asc": switch (iSortCol_0) { case 0: centros = centros.OrderBy(c => c.Nombre); break; case 1: centros = centros.OrderBy(c => c.unidadGeografica1); break; case 2: centros = centros.OrderBy(c => c.unidadGeografica2); break; case 3: centros = centros.OrderBy(c => c.unidadGeografica3); break; case 4: centros = centros.OrderBy(c => c.votantes); break; case 5: centros = centros.OrderBy(c => c.Mesas1.Sum(m => m.Participacions.Max(p => p.conteo))); break; } break; case "desc": switch (iSortCol_0) { case 0: centros = centros.OrderByDescending(c => c.Nombre); break; case 1: centros = centros.OrderByDescending(c => c.unidadGeografica1); break; case 2: centros = centros.OrderByDescending(c => c.unidadGeografica2); break; case 3: centros = centros.OrderByDescending(c => c.unidadGeografica3); break; case 4: centros = centros.OrderByDescending(c => c.votantes); break; case 5: centros = centros.OrderByDescending(c => c.Mesas1.Sum(m => m.Participacions.Max(p => p.conteo))); break; } break; } #endregion dth.sEcho = sEcho; List <Centro> clist = centros.Select(c => c).Skip(iDisplayStart).Take(iDisplayLength).ToList(); dth.aaData = new List <List <string> >(); foreach (var l in clist.Select(c => new List <string> { string.Format( "<a href='#centro={0}' centro-id='{0}' " + "class='centro-link'>{1}</a>", c.id, c.Nombre), c.unidadGeografica1, c.unidadGeografica2, c.unidadGeografica3, c.votantes + "", c.Mesas1.Sum(m => m.Participacions.Max(p => p.conteo)) + "" })) { dth.aaData.Add(l); } return(new JavaScriptSerializer().Serialize(dth)); }
/// <summary> /// 根据查询条件导出列表数据 /// </summary> /// <returns></returns> public ActionResult Export() { #region 根据参数获取List列表 string where = GetPagerCondition(); string CustomedCondition = Request["CustomedCondition"] ?? ""; List <OvertimeInfo> list = new List <OvertimeInfo>(); if (!string.IsNullOrWhiteSpace(CustomedCondition)) { //如果为自定义的json参数列表,那么可以使用字典反序列化获取参数,然后处理 //Dictionary<string, string> dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(CustomedCondition); //如果是条件的自定义,可以使用Find查找 list = baseBLL.Find(CustomedCondition); } else { list = baseBLL.Find(where); } #endregion #region 把列表转换为DataTable DataTable datatable = DataTableHelper.CreateTable("序号|int," + columnString); DataRow dr; int j = 1; for (int i = 0; i < list.Count; i++) { dr = datatable.NewRow(); dr["序号"] = j++; dr["加班事由"] = list[i].Reason; dr["开始时间"] = list[i].StartTime; dr["结束时间"] = list[i].EndTime; dr["加班时长-天"] = list[i].DurationDay; dr["加班时长-小时"] = list[i].DurationHour; dr["加班时长"] = list[i].Duration; dr["附件组别ID"] = list[i].AttachGUID; dr["申请单编号"] = list[i].Apply_ID; dr["申请单日期"] = list[i].ApplyDate; dr["申请部门"] = list[i].ApplyDept; dr["备注信息"] = list[i].Note; dr["创建人"] = list[i].Creator; dr["创建时间"] = list[i].CreateTime; //如果为外键,可以在这里进行转义,如下例子 //dr["客户名称"] = BLLFactory<Customer>.Instance.GetCustomerName(list[i].Customer_ID);//转义为客户名称 datatable.Rows.Add(dr); } #endregion #region 把DataTable转换为Excel并输出 //根据用户创建目录,确保生成的文件不会产生冲突 string filePath = string.Format("/GenerateFiles/{0}/Overtime.xls", CurrentUser.Name); GenerateExcel(datatable, filePath); #endregion //返回生成后的文件路径,让客户端根据地址下载 return(Content(filePath)); }
public LinqExamples() { testDS = DataTableHelper.CreateTestDataset(); }
protected override void BeforeExport() { LoadNP(); LineLaborHourReportSourceTableAdapter adapter = new LineLaborHourReportSourceTableAdapter(); //取得基本報表資料 ReportDataSet.LineLaborHourReportSourceDataTable srcTable = adapter.GetData(_startDate, _endDate); //建立報表_table CreateReportTable(); ////取得指定日期範圍內的工作單號 //OleDbCommand cmd = new OleDbCommand(); //cmd.CommandText = "SELECT DISTINCT(單號) FROM 工作單 WHERE 單據日期 > #" + _startDate.ToString("yyyy/MM/dd") + "# AND 單據日期 < #" + _endDate.ToString("yyyy/MM/dd") + "#"; //cmd.Connection = adapter.Connection; //DataTable wsNumTable = new DataTable(); //wsNumTable.Columns.Add(new DataColumn("單號", typeof(string))); //OleDbDataAdapter wsNumAdapter = new OleDbDataAdapter(); //wsNumAdapter.SelectCommand = cmd; //wsNumAdapter.Fill(wsNumTable); //List<string> wsNumList = new List<string>(); //foreach (DataRow row in wsNumTable.Rows) // wsNumList.Add(row["單號"].ToString()); //讀取非生產資料 //建立分組table(產線,員工) DataTable groupTable = DataTableHelper.SelectDistinct(srcTable, "產線", "借入產線", "員工姓名"); /* 1.08.4 * //取得LaborWage資料 * LaborWageHelper lwHelper = new LaborWageHelper(); * //LaborWage員工工時Table lwTable = lwHelper.GetDataGroupByLabor(wsNumList); * LaborWage員工工時Table lwTable = lwHelper.GetDataGroupByDate(_startDate, _endDate); * * //Union lw table * foreach (DataRow r in lwTable.Rows) * { * string name = r["員工姓名"].ToString(); * * DataRow[] rs = groupTable.Select("借入產線 IS NULL AND 員工姓名 = '" + name + "'"); * if (rs.Length == 0) * { * DataRow[] laborRow = DatabaseSet.員工Table.Select("姓名 ='" + name + "'"); * if (laborRow.Length != 0) * { * DataRow nr = groupTable.NewRow(); * nr["產線"] = laborRow[0]["產線"]; * nr["員工姓名"] = name; * groupTable.Rows.Add(nr); * } * } * } */ //Re order groupTable.DefaultView.Sort = "產線, 借入產線, 員工姓名"; groupTable = groupTable.DefaultView.ToTable(); //對每個分組進行數據填入 foreach (DataRow groupRow in groupTable.Rows) { string selFilter = "產線='" + groupRow["產線"] + "' AND 員工姓名 = '" + groupRow["員工姓名"] + "'"; DataRow newRow = _table.NewRow(); if (groupRow.IsNull("借入產線")) { newRow["產線"] = groupRow["產線"]; selFilter += " AND 借入產線 IS NULL "; } else { newRow["產線"] = groupRow["借入產線"]; newRow["借入"] = groupRow["產線"]; selFilter += " AND 借入產線 = '" + groupRow["借入產線"] + "'"; } DataRow[] rows = srcTable.Select(selFilter); newRow["員工名稱"] = groupRow["員工姓名"].ToString(); decimal npHour = 0; Dictionary <HourType, decimal> pHours = new Dictionary <HourType, decimal>(); foreach (HourType hourType in Enum.GetValues(typeof(HourType))) { pHours.Add(hourType, 0); } //對屬於該分組的Row進行填入 foreach (DataRow srcRow in rows) { int np = (int)srcRow["非生產編號"]; decimal hour = (decimal)srcRow["工時"]; //為生產工時 if (np == -1) { HourType hourType = (HourType)srcRow["工時類型"]; pHours[hourType] += hour; } else { //非生產工時 if (NpDic.ContainsKey(np)) { if (NpDic[np] != "np請假") { npHour += hour; } newRow[NpDic[np]] = (decimal)newRow[NpDic[np]] + hour; } } } decimal ttlHour = npHour; foreach (decimal val in pHours.Values) { ttlHour += val; } newRow["生產工時"] = pHours[HourType.一般工時]; foreach (HourType hourType in Enum.GetValues(typeof(HourType))) { if (hourType != HourType.一般工時) { newRow[hourType.ToString()] = pHours[hourType]; } } /* 1.08.4 * DataRow[] lwRows = lwTable.Select("員工姓名 = '" + groupRow["員工姓名"].ToString() + "'"); * if (lwRows.Length > 0) * newRow["外包工時"] = (decimal)lwRows[0]["工時"]; */ _table.Rows.Add(newRow); } base.BeforeExport(); }
protected override void WriteContent() { DataTable linesTable = DataTableHelper.SelectDistinct(_table, "產線"); //建立寫入前置作業 int writeRow = 4; PasteDataRowsOptions options = new PasteDataRowsOptions(); options.IncludeSummary = true; /* 1.08.4 * options.SummaryColumns.AddRange(new string[] { "生產工時", "外包工時" });*/ options.SummaryColumns.AddRange(new string[] { "生產工時" }); foreach (HourType hourType in Enum.GetValues(typeof(HourType))) { if (hourType != HourType.一般工時) { options.SummaryColumns.Add(hourType.ToString()); } } options.ExcludeColumns.Add("借入"); string[] npCols = new string[NpDic.Count]; NpDic.Values.CopyTo(npCols, 0); options.SummaryColumns.AddRange(npCols); //對每個產線 foreach (DataRow lineRow in linesTable.Rows) { DataRow[] rows = _table.Select("產線 = '" + lineRow["產線"] + "'", "員工名稱"); //寫入內容 options.Row = writeRow; options.SummaryPrefix = lineRow["產線"] + "產線小計"; foreach (DataRow row in rows) { if (!row.IsNull("借入")) { row["產線"] = "由" + row["借入"] + "借入"; } } writeRow = this.SheetAdapter.PasteDataRows(rows, options); } //寫入總計 DataRow totalRow = _table.NewRow(); totalRow[0] = "總計"; foreach (string sumCol in options.SummaryColumns) { object o; o = _table.Compute("SUM([" + sumCol + "])", string.Empty); totalRow[sumCol] = Convert.IsDBNull(o) ? 0 : (decimal)o; } _table.Rows.Add(totalRow); writeRow = this.SheetAdapter.PasteDataRow(totalRow, writeRow, 1); //設定顯示格式 foreach (string npCol in npCols) { this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf(npCol) + 1, "G/通用格式;G/通用格式;* \"-\"_-"); } this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("生產工時") + 1, "G/通用格式;G/通用格式;* \"-\"_-"); foreach (HourType hourType in Enum.GetValues(typeof(HourType))) { if (hourType != HourType.一般工時) { this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf(hourType.ToString()) + 1, "G/通用格式;G/通用格式;* \"-\"_-"); } } this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("非生產TTL") + 1, "G/通用格式;G/通用格式;* \"-\"_-"); this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("生產%") + 1, "0.00%"); this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("非生產%") + 1, "0.00%"); //this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("外包工時") + 1, "#,##0.00;#,##0.00;* \"-\"_-"); base.WriteContent(); }
private void OpenNdependProject() { nDependServicesProvider.ProjectManager.ShowDialogChooseAnExistingProject(IntPtr.Zero, out nDependProject); if (nDependProject == null) return; ICodeBase lastAnalysisCodebase = new CodeBaseManager(nDependProject).LoadLastCodebase(); codeElementsManager = new CodeElementsManager(lastAnalysisCodebase); userDefinedMetrics = new UserDefinedMetrics(lastAnalysisCodebase); dataTableHelper = new DataTableHelper(codeElementsManager, userDefinedMetrics); FillBaseControls(); }
private bool CheckOutBatch_part(DataRow rImp) { var bSuccess = false; var dtCheckIn = _mTB_EmployeeCheckInDAL.GetByWorkID(DataTableHelper.TryGet(rImp, "工号"), DataTableHelper.TryGet(rImp, "身份证号码")); if (DataTableHelper.IsEmptyDataTable(dtCheckIn)) { return(false); } bool bCanLeave = false; decimal?dSum = null; var sWorkID = string.Empty; //启用事务 using (_tran = _connection.BeginTransaction()) { try { var sReason = DataTableHelper.TryGet(rImp, "退房原因"); var sRemark = DataTableHelper.TryGet(rImp, "备注"); var sCanLeave = DataTableHelper.TryGet(rImp, "同步签退离职系统"); //添加退房记录 var mTB_EmployeeCheckOut = new TB_EmployeeCheckOut(); mTB_EmployeeCheckOut.BedID = Convert.ToInt32(dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_BedID]); mTB_EmployeeCheckOut.BU = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_BU] is DBNull ? string.Empty : dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_BU].ToString(); mTB_EmployeeCheckOut.BUID = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_BUID] is DBNull ? 0 : Convert.ToInt32(dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_BUID]); mTB_EmployeeCheckOut.CardNo = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_CardNo] is DBNull ? string.Empty : dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_CardNo].ToString(); mTB_EmployeeCheckOut.CheckInDate = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_CheckInDate] is DBNull ? DateTime.Now : Convert.ToDateTime(dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_CheckInDate]); mTB_EmployeeCheckOut.CheckOutDate = DateTime.Now; mTB_EmployeeCheckOut.Company = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Company] is DBNull ? string.Empty : dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Company].ToString(); mTB_EmployeeCheckOut.Creator = SessionHelper.Get(HttpContext.Current, TypeManager.User) == null ? ((TB_SystemAdmin)SessionHelper.Get(HttpContext.Current, TypeManager.Admin)).Account : ((TB_User)SessionHelper.Get(HttpContext.Current, TypeManager.User)).ADAccount; sWorkID = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_EmployeeNo] is DBNull ? string.Empty : dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_EmployeeNo].ToString(); mTB_EmployeeCheckOut.EmployeeNo = sWorkID; mTB_EmployeeCheckOut.IsSmoking = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_IsSmoking] is DBNull ? false : Convert.ToBoolean(dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_IsSmoking]); mTB_EmployeeCheckOut.Name = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Name] is DBNull ? string.Empty : dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Name].ToString(); mTB_EmployeeCheckOut.Province = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Province] is DBNull ? string.Empty : dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Province].ToString(); mTB_EmployeeCheckOut.RoomID = Convert.ToInt32(dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_RoomID]); mTB_EmployeeCheckOut.Sex = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Sex] is DBNull ? 0 : Convert.ToInt32(dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Sex]); mTB_EmployeeCheckOut.SiteID = Convert.ToInt32(dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_SiteID]); mTB_EmployeeCheckOut.Telephone = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Telephone] is DBNull ? string.Empty : dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_Telephone].ToString(); mTB_EmployeeCheckOut.Reason = sReason == "" ? string.Empty : sReason; mTB_EmployeeCheckOut.Remark = sRemark == "" ? string.Empty : sRemark; bCanLeave = (0 == string.Compare(sCanLeave, "是", true)); mTB_EmployeeCheckOut.CanLeave = bCanLeave ? 1 : 0; mTB_EmployeeCheckOut.EmployeeTypeName = dtCheckIn.Rows[0][TB_EmployeeCheckIn.col_EmployeeTypeName].ToString(); //调房--分配到未入住区域 //if (sReason.Contains("调房")) //{ // TB_AssignDormArea tB_AssignDormArea = new TB_AssignDormArea(); // tB_AssignDormArea.DormAreaID = Convert.ToInt32(sReason.Split('#')[1]); // tB_AssignDormArea.CardNo = dtCheckIn.Rows[0]["CardNo"].ToString(); // tB_AssignDormArea.EmployeeNo = dtCheckIn.Rows[0]["EmployeeNo"].ToString(); // tB_AssignDormArea.CreateUser = SessionHelper.Get(HttpContext.Current, TypeManager.User) == null ? ((TB_SystemAdmin)SessionHelper.Get(HttpContext.Current, TypeManager.Admin)).Account : ((TB_User)SessionHelper.Get(HttpContext.Current, TypeManager.User)).ADAccount; // tB_AssignDormArea.CreateDate = System.DateTime.Now; // new AssignRoomBLL().AssignArea(tB_AssignDormArea); // sReason = sReason.Split('#')[0]; //} _mTB_EmployeeCheckOutDAL.Create(mTB_EmployeeCheckOut, _tran, _db); //更新床位状态 _mTB_BedDAL.Update(mTB_EmployeeCheckOut.BedID, _tran, _db, TypeManager.BedStatus.Free); //删除入住信息 int intID = (int)dtCheckIn.Rows[0]["ID"]; _mTB_EmployeeCheckInDAL.Delete(intID, _tran, _db); //添加扣费记录 ChargingBLL mChargingBLL = new ChargingBLL(); TB_Charging mTB_Charging = new TB_Charging(); mTB_Charging.Name = mTB_EmployeeCheckOut.Name; mTB_Charging.EmployeeNo = mTB_EmployeeCheckOut.EmployeeNo; mTB_Charging.ChargeContent = "管理费"; decimal num = 0.0M; decimal.TryParse(DataTableHelper.TryGet(rImp, "管理费"), out num); mTB_Charging.Money = num; mTB_Charging.AirConditionFee = "空调费"; num = 0.0M; decimal.TryParse(DataTableHelper.TryGet(rImp, "空调费"), out num); mTB_Charging.AirConditionFeeMoney = num; mTB_Charging.RoomKeyFee = "钥匙费"; num = 0.0M; decimal.TryParse(DataTableHelper.TryGet(rImp, "钥匙费"), out num); mTB_Charging.RoomKeyFeeMoney = num; mTB_Charging.OtherFee = "其他费"; num = 0.0M; decimal.TryParse(DataTableHelper.TryGet(rImp, "其他费"), out num); mTB_Charging.OtherFeeMoney = num; mTB_Charging.SiteID = mTB_EmployeeCheckOut.SiteID; mTB_Charging.Creator = mTB_EmployeeCheckOut.Creator; mTB_Charging.BU = mTB_EmployeeCheckOut.BU; mChargingBLL.Add(mTB_Charging, _tran); dSum = mTB_Charging.Money + mTB_Charging.AirConditionFeeMoney + mTB_Charging.RoomKeyFeeMoney + mTB_Charging.OtherFeeMoney; //总扣费 //提交事务 _tran.Commit(); bSuccess = true; } catch (Exception ex) { //回滚事务 _tran.Rollback(); //throw ex; LogManager.GetInstance().ErrorLog("批量退房失败CheckOutBatch_part", ex); } } if (bSuccess && bCanLeave) { SigningExitForEM(-1, sWorkID, dSum); } return(bSuccess); }
protected override void BeforeExport() { _subttlRows = new List<int>(); string lineFilter = string.Empty; if(!string.IsNullOrEmpty(_form.Line)) lineFilter = "���u = '" + _form.Line + "'"; FinishedWorksheetReportSourceTableAdapter adapter = new FinishedWorksheetReportSourceTableAdapter(); //���o������ _srcTable = adapter.GetData(_startDate, _endDate); _srcTable.Columns.Add("����`�u��auto", typeof(decimal), "(�����u�� + �~�]�u��)"); //_srcTable.Columns.Add("�h��ƶq", typeof(decimal)); //���o�C��u�@�ɼ� Dictionary<DateTime, decimal> workHoursDic = new Dictionary<DateTime, decimal>(); DateTime minDate = _startDate; DateTime maxDate = _endDate; object tmpObj = _srcTable.Compute("MIN(���)",string.Empty); if (tmpObj != DBNull.Value) minDate = (DateTime)tmpObj; tmpObj = _srcTable.Compute("MAX(���)", string.Empty); if (tmpObj != DBNull.Value) { maxDate = (DateTime)tmpObj; maxDate = new DateTime(maxDate.Year, maxDate.Month, DateTime.DaysInMonth(maxDate.Year, maxDate.Month)); } for (DateTime date = minDate; date <= maxDate; date = date.AddMonths(1)) { decimal hours = Global.GetWorkingHours(date.Year, date.Month); DateTime key = new DateTime(date.Year, date.Month, 1); workHoursDic.Add(key, hours); } //���s�B���ڤu�� DateTime curRowMonth = DateTime.MinValue; foreach (ReportDataSet.FinishedWorksheetReportSourceRow row in _srcTable) { if (!row.IsNull("�~��")) { if (row.�~�� != curRowMonth.Year || row.��� != curRowMonth.Month) curRowMonth = new DateTime(row.�~��, row.���, 1); row.�����u�� = Math.Round(row.�����u�� / workHoursDic[curRowMonth], MidpointRounding.AwayFromZero); } } //���sGroup��� DataTableHelper dtHelper = new DataTableHelper(); _table = dtHelper.SelectGroupByInto("ReportTable", _srcTable, "���u,��ڧ�����,�u�@�渹,�Ǹ�,�~��,�~�W,�ƶq,���," + "Sum(�����u��) �����u��, Sum(�����u��) �����u��,�~�]�u��,�~�]�u��,�зǤu��,���H�u����,����`�u��,����`�u��auto,����`�u��," + "�з��`�u��,�з��`�u��,�Ͳ��IJv,���зǤu��,��ڤu��,��ڤu��,�u�~�s��", lineFilter, "���u,��ڧ�����,�u�@�渹,�~��,�~�W,�ƶq,�зǤu��,���H�u����,���зǤu��,�u�~�s��"); //�]�w��� _table.Columns["���"].DefaultValue = "KPCS"; //���oLaborWage��Ʈw LaborWageHelper lwHelper = new LaborWageHelper(); LaborWage�u�@��~��Table lwTable = null; //�B��Ǹ��ö�J�~�]�u��P�u�� string curWorksheetNumber = string.Empty; //int seriesNumber = 1; foreach (DataRow row in _table.Rows) { string wsNumber = row["�u�@�渹"].ToString(); string pn = row["�~��"].ToString(); int wpid = (int)row["�u�~�s��"]; if (curWorksheetNumber != wsNumber) { curWorksheetNumber = wsNumber; lwTable = lwHelper.GetData(curWorksheetNumber); //seriesNumber = 1; } //���o�h�� //row["�h��ƶq"] = DatabaseSet.GetNGAmount(wsNumber, wpid) / 1000.0f; //DataRow[] lwRows = lwTable.Select("�u�~�s�� = " + row["�u�~�s��"]); object result = lwTable.Compute("SUM(�~�]�u��)", string.Format("�u�~�s�� = {0}", row["�u�~�s��"].ToString())); //if (lwRows.Length > 0) if (result != null && result != DBNull.Value) { //decimal laborWage = (decimal)lwRows[0]["�~�]�u��"]; decimal laborWage = Convert.ToDecimal(result); row["�~�]�u��"] = laborWage; row["�~�]�u��"] = laborWage / Settings.HourlyPay; } //row["�Ǹ�"] = seriesNumber++; row["�Ǹ�"] = wpid; row["����`�u��"] = row["����`�u��auto"]; } base.BeforeExport(); }
//访问离职系统,进行签退 private int SigningExitForEM(int id, string workID = "", decimal?cost = null) { var sWorkID = workID; DbConnection dbConn = null; if (string.IsNullOrEmpty(sWorkID)) { try {// get checkout Employee No var dbDorm = DBO.CreateDatabase(); dbConn = dbDorm.CreateConnection(); dbConn.Open(); string strSQL = @"select RoomID,BedID,EmployeeNo,Name,CardNo from TB_EmployeeCheckOut where id=@ID"; var dbCommandWrapper = dbDorm.DbProviderFactory.CreateCommand(); dbCommandWrapper.CommandType = CommandType.Text; dbCommandWrapper.CommandText = strSQL; dbDorm.AddInParameter(dbCommandWrapper, "@ID", DbType.Int32, id); var ds = dbDorm.ExecuteDataSet(dbCommandWrapper); if (DataTableHelper.IsEmptyDataSet(ds)) { return(-1); } var dr = DataTableHelper.GetDataSet_Row0(ds); sWorkID = dr["EmployeeNo"] as string; } catch (Exception ex) { } finally { dbConn.Close(); } } if (string.IsNullOrEmpty(sWorkID)) { return(-1); } //update DbTransaction dbTran = null; try { string sAppGroupID = "097F36B9-B8A2-478B-97DA-79E76E384571"; var dbEM = DBO.CreateDatabaseEM(); dbConn = dbEM.CreateConnection(); dbConn.Open(); dbTran = dbConn.BeginTransaction(); var strSQL = string.Empty; int nRet = 0; var sCreateUser = SessionHelper.Get(HttpContext.Current, TypeManager.User) == null ? ((TB_SystemAdmin)SessionHelper.Get(HttpContext.Current, TypeManager.Admin)).Account : ((TB_User)SessionHelper.Get(HttpContext.Current, TypeManager.User)).EName; //create EM_Approved if (null != cost && cost.HasValue) { strSQL = @"insert into EM_Approved([Approved_ID],[FormID],[ApprovalGroupID],[EmpID],[Cost],[Balance], [DeleteMark],[Remark],[CreateDate],[CreateUserId],[CreateUserName]) select [Approving_ID],[FormID],[ApprovalGroupID],[EmpID],@Cost,[Balance], [DeleteMark],'宿舍系统自动签退',GetDate(),NULL,@CreateUserName from EM_Approving where ApprovalGroupID=@AppGroupID and EmpID=@EmpID "; } else { strSQL = @"insert into EM_Approved([Approved_ID],[FormID],[ApprovalGroupID],[EmpID],[Cost],[Balance], [DeleteMark],[Remark],[CreateDate],[CreateUserId],[CreateUserName]) select [Approving_ID],[FormID],[ApprovalGroupID],[EmpID],[Cost],[Balance], [DeleteMark],'宿舍系统自动签退',GetDate(),NULL,@CreateUserName from EM_Approving where ApprovalGroupID=@AppGroupID and EmpID=@EmpID "; } var dbCommandWrapper = dbEM.DbProviderFactory.CreateCommand(); dbCommandWrapper.CommandType = CommandType.Text; dbCommandWrapper.CommandText = strSQL; dbEM.AddInParameter(dbCommandWrapper, "@CreateUserName", DbType.String, sCreateUser); dbEM.AddInParameter(dbCommandWrapper, "@AppGroupID", DbType.String, sAppGroupID); dbEM.AddInParameter(dbCommandWrapper, "@EmpID", DbType.String, sWorkID); if (null != cost && cost.HasValue) { dbEM.AddInParameter(dbCommandWrapper, "@Cost", DbType.Decimal, cost.Value); } nRet = dbEM.ExecuteNonQuery(dbCommandWrapper, dbTran); //delete EM_Approving strSQL = @"delete from EM_Approving where 1 = 1 and ApprovalGroupID = @AppGroupID and EmpID = @EmpID"; dbCommandWrapper = dbEM.DbProviderFactory.CreateCommand(); dbCommandWrapper.CommandType = CommandType.Text; dbCommandWrapper.CommandText = strSQL; dbEM.AddInParameter(dbCommandWrapper, "@AppGroupID", DbType.String, sAppGroupID); dbEM.AddInParameter(dbCommandWrapper, "@EmpID", DbType.String, sWorkID); nRet = dbEM.ExecuteNonQuery(dbCommandWrapper, dbTran); dbTran.Commit(); } catch (Exception ex) { dbTran.Rollback(); throw ex; } finally { dbConn.Close(); } return(0); }
public DataTablesResponse GetList(IDataTablesRequest dataTableParam, UserSearchViewModel searchViewModel) { try { var query = UserRepository.GetAll(x => x.IsDeleted == false, null, x => x.Role); if (searchViewModel.ActiveType != (int)ActiveType.All) { switch (searchViewModel.ActiveType) { case (int)ActiveType.Active: { query = query.Where(x => x.IsActive); break; } case (int)ActiveType.InActive: { query = query.Where(x => !x.IsActive); break; } } } if (searchViewModel.RoleName != Constants.AllValue.ToString()) { query = query.Where(x => x.Role.Name == searchViewModel.RoleName); } var dataTableHelper = new DataTableHelper<UserViewModel, User>(query, x => new UserViewModel { Id = x.Id, Email = x.Email, FullName = x.FirstName + " " + x.LastName, Role = x.Role.Name, IsActive = x.IsActive }); var entities = dataTableHelper.GetDataVMForResponse(dataTableParam); var result = dataTableHelper.GetDataToList(dataTableParam, entities); return new DataTablesResponse(dataTableParam.Draw, result, entities.Count(), entities.Count()); } catch (Exception ex) { Provider.Instance.LogError(ex); return new DataTablesResponse(dataTableParam.Draw, new List<UserViewModel>(), 0, 0); } }
public override bool Insert() { bool bResult = false; DataSet dataSet = new DataSet(); DataTable dtAttributeConf = CreateDataTableForInsert(); Dictionary <string, string> dataRow = new Dictionary <string, string>() { { FMM_PRODUCTION_LINE_FIELDS.FIELD_PRODUCTION_LINE_KEY, _objectKey }, { FMM_PRODUCTION_LINE_FIELDS.FIELD_LINE_NAME, _objectName.ToUpper() }, { FMM_PRODUCTION_LINE_FIELDS.FIELD_LINE_CODE, _line_code }, { FMM_PRODUCTION_LINE_FIELDS.FIELD_DESCRIPTIONS, _description }, { FMM_PRODUCTION_LINE_FIELDS.FIELD_EDITOR, PropertyService.Get(PROPERTY_FIELDS.USER_NAME) } }; FanHai.Hemera.Utils.Common.Utils.AddRowDataToDataTable(ref dtAttributeConf, dataRow); if (dtAttributeConf.Rows.Count > 0) { dataSet.Tables.Add(dtAttributeConf); } // UDAs if (_UDAs.UserDefinedAttrList.Count > 0) { DataTable dtUDAs = DataTableHelper.CreateDataTableForUDAEx(BASE_ATTRIBUTE_VALUE_FIELDS.DATABASE_TABLE_NAME, BASE_ATTRIBUTE_VALUE_FIELDS.FIELD_OBJECT_KEY, BASE_ATTRIBUTE_VALUE_FIELDS.FIELD_OBJECT_TYPE); _UDAs.ParseInsertDataToDataTable(ref dtUDAs); if (dtUDAs.Rows.Count > 0) { dataSet.Tables.Add(dtUDAs); } } try { IServerObjFactory factor = CallRemotingService.GetRemoteObject(); if (null != factor) { if (dataSet.Tables.Count > 0) { DataSet retDS = factor.CreateIUdaCommonControlEx().AddLineAttributeValue(dataSet); string strMsg = FanHai.Hemera.Share.Common.ReturnMessageUtils.GetServerReturnMessage(retDS); if (strMsg.Length < 1) { foreach (UserDefinedAttrEx uda in _UDAs.UserDefinedAttrList) { uda.OperationAction = OperationAction.Update; } this.ResetDirtyList(); bResult = true; } else { MessageService.ShowError(strMsg); } } else { MessageService.ShowWarning("No dataTable in input parameter"); } } } catch (Exception e) { MessageService.ShowError(e.Message); } finally { CallRemotingService.UnregisterChannel(); } return(bResult); }
void InitReportTable() { ReportDataSetTableAdapters.UnitPriceReportTableAdapter adapter = new Mong.ReportDataSetTableAdapters.UnitPriceReportTableAdapter(); //���o������ _table = adapter.GetData(_startDate, _endDate); //���o�u�@�渹,�~��,��ڤu��� System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(); cmd.CommandText = "SELECT �u�@��.�渹 AS �渹, ���~�~��.�~��, Year(�u��.���) AS �~��, Month(�u��.���) AS ���, " + "IIF(SUM(�u��.�u��) IS NULL , 0, SUM(�u��.�u��)) AS ��ڤu��," + "IIF(SUM(�u��.�u��) IS NULL , 0, SUM(���u.�~�� * �u��.�u��)) AS ��ڤu�� " + "FROM ((((�u�@�� INNER JOIN �u�@��~�� ON �u�@��~��.�渹 = �u�@��.�渹) " + "INNER JOIN ���~�~�� ON �u�@��~��.�~�� = ���~�~��.�~��) " + "LEFT JOIN �u�� ON �u��.�u�@�渹 = �u�@��~��.�渹 AND �u�@��~��.�s�� = �u��.�u�~�s��) " + "LEFT JOIN ���u ON �u��.���u�s�� = ���u.�s��) " + "WHERE �u�@��.��ڧ����� > #" + _startDate.ToString("yyyy/MM/dd") + "# AND �u�@��.��ڧ����� < #" + _endDate.ToString("yyyy/MM/dd") + "# " + "GROUP BY �u�@��.�渹, ���~�~��.�~��, Year(�u��.���), Month(�u��.���)" + "ORDER BY �u�@��.�渹, ���~�~��.�~��, Year(�u��.���), Month(�u��.���)"; cmd.Connection = adapter.Connection; System.Data.DataTable baseTable = new System.Data.DataTable(); baseTable.Columns.Add(new DataColumn("�渹", typeof(string))); baseTable.Columns.Add(new DataColumn("�~��", typeof(string))); baseTable.Columns.Add(new DataColumn("��ڤu��", typeof(decimal))); baseTable.Columns.Add(new DataColumn("��ڤu��", typeof(decimal))); baseTable.Columns.Add(new DataColumn("�~��", typeof(int))); baseTable.Columns.Add(new DataColumn("���", typeof(int))); System.Data.OleDb.OleDbDataAdapter baseAdapter = new System.Data.OleDb.OleDbDataAdapter(); baseAdapter.SelectCommand = cmd; baseAdapter.Fill(baseTable); //���o����d�� int minYear, minMonth, maxYear, maxMonth; DateTime minDate, maxDate; object o; o = baseTable.Compute("MIN(�~��)", string.Empty); minYear = Convert.IsDBNull(o) ? DateTime.MinValue.Year : (int)o; o = baseTable.Compute("MIN(���)", string.Empty); minMonth = Convert.IsDBNull(o) ? DateTime.MinValue.Month : (int)o; o = baseTable.Compute("MAX(�~��)", string.Empty); maxYear = Convert.IsDBNull(o) ? DateTime.MinValue.Year : (int)o; o = baseTable.Compute("MAX(���)", string.Empty); maxMonth = Convert.IsDBNull(o) ? DateTime.MinValue.Month : (int)o; minDate = new DateTime(minYear, minMonth, 1); maxDate = new DateTime(maxYear, maxMonth, 1); //���o�C��u�@�ɼ� Dictionary<DateTime, decimal> workHoursDic = new Dictionary<DateTime, decimal>(); for (DateTime date = new DateTime(minDate.Year, minDate.Month, 1); date <= maxDate; date = date.AddMonths(1)) { decimal hours = Global.GetWorkingHours(date.Year, date.Month); workHoursDic.Add(date, hours); } //���s�p��baseTable����ڤu�� DateTime curRowMonth = DateTime.MinValue; foreach (DataRow row in baseTable.Rows) { if (!Convert.IsDBNull(row["�~��"])) { int year = (int)row["�~��"]; int month = (int)row["���"]; if (year != curRowMonth.Year || month != curRowMonth.Month) curRowMonth = new DateTime(year, month, 1); row["��ڤu��"] = Math.Round(((decimal)row["��ڤu��"]) / workHoursDic[curRowMonth], MidpointRounding.AwayFromZero); } } //���sGroup DataTableHelper dtHelper = new DataTableHelper(); System.Data.DataTable groupTable = dtHelper.SelectGroupByInto("GroupTable", baseTable, "�~��,SUM(��ڤu��) ��ڤu��, SUM(��ڤu��) ��ڤu��", null, "�~��"); //���o���w����d���u�@�渹 cmd = new System.Data.OleDb.OleDbCommand(); cmd.CommandText = "SELECT DISTINCT(�渹) FROM �u�@�� WHERE ��ڧ����� > #" + _startDate.ToString("yyyy/MM/dd") + "# AND ��ڧ����� < #" + _endDate.ToString("yyyy/MM/dd") + "#"; cmd.Connection = adapter.Connection; System.Data.DataTable wsNumTable = new System.Data.DataTable(); wsNumTable.Columns.Add(new DataColumn("�渹", typeof(string))); System.Data.OleDb.OleDbDataAdapter wsNumAdapter = new System.Data.OleDb.OleDbDataAdapter(); wsNumAdapter.SelectCommand = cmd; wsNumAdapter.Fill(wsNumTable); List<string> wsNumList = new List<string>(); foreach (DataRow row in wsNumTable.Rows) wsNumList.Add(row["�渹"].ToString()); //���oLaborWage��Ʈw LaborWageHelper lwHelper = new LaborWageHelper(); LaborWage�u�@��~��Table lwTable = lwHelper.GetDataGroupByPartNumber(wsNumList); //��J�u��P�u�� foreach (ReportDataSet.UnitPriceReportRow row in _table) { DataRow[] partRows = groupTable.Select(string.Format("�~�� = '{0}'", row.�~��)); if (partRows.Length > 0) { row._��ڤu��_��_�~_ = (decimal)partRows[0]["��ڤu��"]; row._��ڤu��_��_�~_ = (decimal)partRows[0]["��ڤu��"]; } //��JLaborWage��� DataRow[] lwRows = lwTable.Select(string.Format("�~�� = '{0}'", row.�~��)); if (lwRows.Length > 0) { decimal wage = (decimal)lwRows[0]["�~�]�u��"]; row._��ڤu��_��_�~_ += wage; row._��ڤu��_��_�~_ += wage / Settings.HourlyPay; } } }
/// <summary> /// 业务接口调用 /// </summary> /// <param name="Xml">XML格式</param> /// <param name="DeviceMark">设备号</param> /// <param name="Token">记号</param> /// <returns></returns> public string Invoke(string Xml, string DeviceMark, string Token) { //Stopwatch sw = new Stopwatch(); //sw.Start(); Xml = GZipHelper.Uncompress(Xml); StringBuilder Output = new StringBuilder(); ArrayList arraySql = new ArrayList(); ArrayList arrayParam = new ArrayList(); int Type = 0; bool IsOk = false; try { AnalysisXml(Xml, out arraySql, out arrayParam, out Type); switch (Type) { case 0: //新增 IsOk = DataFactory.SqlHelper().BatchExecuteBySql((object[])arraySql.ToArray(typeof(object)), (object[])arrayParam.ToArray(typeof(object))) >= 0 ? true : false; Output.Append(ResultMsg(IsOk, DbErrorMsg.ReturnMsg)); break; case 1: //修改 IsOk = DataFactory.SqlHelper().BatchExecuteBySql((object[])arraySql.ToArray(typeof(object)), (object[])arrayParam.ToArray(typeof(object))) >= 0 ? true : false; Output.Append(ResultMsg(IsOk, DbErrorMsg.ReturnMsg)); break; case 2: //删除 IsOk = DataFactory.SqlHelper().BatchExecuteBySql((object[])arraySql.ToArray(typeof(object)), (object[])arrayParam.ToArray(typeof(object))) >= 0 ? true : false; Output.Append(ResultMsg(IsOk, DbErrorMsg.ReturnMsg)); break; case 3: //查询 string strSql = string.Join(",", (string[])arraySql.ToArray(typeof(string))); object[] arrayParamobject = (object[])arrayParam.ToArray(typeof(object)); SqlParam[] paramArray = (SqlParam[])arrayParamobject[0]; DataTable dt = DataFactory.SqlHelper().GetDataTableBySQL(new StringBuilder(strSql), paramArray); if (DataTableHelper.IsExistRows(dt)) { Output.Append(DataTableHelper.DataTableToXML(dt)); } else { Output.Append(ResultMsg(false, "没有找到您要的相关数据")); } break; case 4: //存储过程-DataTableProc string DataTableProc = string.Join(",", (string[])arraySql.ToArray(typeof(string))); object[] DataTableProcParamobject = (object[])arrayParam.ToArray(typeof(object)); Hashtable DataTableProcparamArray = (Hashtable)DataTableProcParamobject[0]; DataTable DataTableProc_dt = DataFactory.SqlHelper().GetDataTableProc(DataTableProc, DataTableProcparamArray); if (DataTableHelper.IsExistRows(DataTableProc_dt)) { Output.Append(DataTableHelper.DataTableToXML(DataTableProc_dt)); } else { Output.Append(ResultMsg(false, "没有找到您要的相关数据")); } break; case 5: //存储过程-DataSetProc string DataSetProc = string.Join(",", (string[])arraySql.ToArray(typeof(string))); object[] DataSetProcParamobject = (object[])arrayParam.ToArray(typeof(object)); Hashtable DataSetProcparamArray = (Hashtable)DataSetProcParamobject[0]; DataSet DataSetProc_dt = DataFactory.SqlHelper().GetDataSetProc(DataSetProc, DataSetProcparamArray); if (DataSetProc_dt != null) { Output.Append(DataTableHelper.DataSetToXML(DataSetProc_dt)); } else { Output.Append(ResultMsg(false, "没有找到您要的相关数据")); } break; case 6: //存储过程-ExecuteByProc string ExecuteByProc = string.Join(",", (string[])arraySql.ToArray(typeof(string))); object[] ExecuteByProcParamobject = (object[])arrayParam.ToArray(typeof(object)); Hashtable ExecuteByProcparamArray = (Hashtable)ExecuteByProcParamobject[0]; IsOk = DataFactory.SqlHelper().ExecuteByProc(ExecuteByProc, ExecuteByProcparamArray) >= 0 ? true : false; Output.Append(ResultMsg(IsOk, DbErrorMsg.ReturnMsg)); break; case 7: //存储过程-BatchExecuteByProc IsOk = DataFactory.SqlHelper().BatchExecuteByProc((object[])arraySql.ToArray(typeof(object)), (object[])arrayParam.ToArray(typeof(object))) >= 0 ? true : false; Output.Append(ResultMsg(IsOk, DbErrorMsg.ReturnMsg)); break; case -1: //异常信息 Output.Append(ResultMsg(false, Logger.LogErrorMsg)); break; default: break; } } catch (Exception ex) { Output.Append(ResultMsg(false, ex.Message)); } //sw.Stop(); //LoggerTime.WriteLog("服务器处理总耗时:" + sw.ElapsedMilliseconds + "毫秒-----------\r\n"); return(GZipHelper.Compress(Output.ToString())); }