static void InlineElement(DomElement e) { StringWriter fore = new StringWriter(); StringWriter aft = new StringWriter(); HxlElementTemplate.RenderElementStart(e, fore); HxlElementTemplate.RenderElementEnd(e, aft); HxlRenderWorkElement frag = (HxlRenderWorkElement)e.ChildNodes[0]; List <string> pre = new List <string>(); List <string> post = new List <string>(); pre.Add(CodeUtility.AppendDomText(fore.ToString())); pre.AddRange(frag.PreLines); post.AddRange(frag.PostLines); post.Add(CodeUtility.AppendDomText(aft.ToString())); var consolidated = new HxlRenderWorkElement(pre, post); frag.RemoveSelf(); foreach (var m in frag.ChildNodes.ToArray()) { consolidated.Append(m); } e.ReplaceWith(consolidated); }
public async Task<bool> SubmitInput(InputSubmitModel data, string updateBy) { foreach (var item in data.TransactionList) { await CreateInput(item, updateBy); } var lists = data.InputNoList; if (lists.Count > 0) { string Transac_Sheet_No; do { string num = CodeUtility.RandomNumber(3); Transac_Sheet_No = "IB" + DateTime.Now.ToString("yyyyMMdd") + num; } while (await _repoTransactionMain.CheckTranSheetNo(Transac_Sheet_No)); foreach (var item in lists) { string Missing_No; do { // Để Mising No khác nhau string num2 = CodeUtility.RandomNumber(3); Missing_No = "BTM" + DateTime.Now.ToString("yyyyMMdd") + num2; } while (await this.CheckMissingMo(Missing_No)); WMSB_Transaction_Main model = await _repoTransactionMain.GetByInputNo(item); model.Can_Move = "Y"; model.Transac_Sheet_No = Transac_Sheet_No; model.Is_Transfer_Form = "N"; model.Updated_By = updateBy; model.Updated_Time = DateTime.Now; if (model.Purchase_Qty > model.Transacted_Qty) { model.Missing_No = Missing_No; //Tạo mới record và update status record cũ trong bảng QRCode_Main và QRCode_Detail GenerateNewQrCode(model.QRCode_ID, model.QRCode_Version, item, updateBy); //Update QrCode Version cho bảng Transaction_Main model.QRCode_Version += 1; // Tạo mới record trong bảng Missing CreateMissing(model.Purchase_No, model.MO_No, model.MO_Seq, model.Material_ID, model.Transac_No, model.Missing_No, updateBy); } else { WMSB_QRCode_Main qrModel = await _repoQRCodeMain.GetByQRCodeID(model.QRCode_ID); qrModel.Is_Scanned = "Y"; _repoQRCodeMain.Update(qrModel); } _repoTransactionMain.Update(model); } return await _repoTransactionMain.SaveAll(); } return false; }
public JsonResult ForGotPassword(string email, string idcard) { try { if (!email.IsEmailFormat()) { return(Json(new { status = false, message = "Email or ID Card Number incorrect!" }, JsonRequestBehavior.AllowGet)); } var item = _dbContext.UserAccounts.FirstOrDefault(x => x.Email == email && x.IDcardNumber == idcard); if (item != null) { var password = CodeUtility.RandomString(3); string from = ConfigurationManager.AppSettings["FromEmailAddress"].ToSafetyString(); string host = ConfigurationManager.AppSettings["Host"].ToSafetyString(); string content = "[KPI System] Your password is '<strong style='color:red'>" + password + "</strong>' . Please you login with this password and change the password. Link: " + host; string to = email.ToSafetyString(); string subject = "Reset password"; item.Password = password.SHA256Hash(); _dbContext.SaveChanges(); if (Commons.SendMail(from, to, subject, content)) { return(Json(new { status = true, message = "A new password has already sent to your company email!" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { status = false, message = "Send mail failed!" }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { message = "Email or ID Card Number incorrect!" }, JsonRequestBehavior.AllowGet)); } } catch (Exception) { return(Json(new { status = false, message = "Error!" }, JsonRequestBehavior.AllowGet)); } }
protected override void VisitAttribute(DomAttribute attribute) { string parent = stack.Peek(); CurrentOutput.WriteLine("{0}.Attribute(\"{1}\", \"{2}\");", parent, CodeUtility.Escape(attribute.Name), CodeUtility.Escape(attribute.Value)); }
protected override void VisitText(HxlTextElement element) { // These should have been converted to render islands, BUT there are a few // cases where we want to keep an object: // - parent is retained (easier to work with) // - only writing a space or tab (no need for the overhead) string parent = stack.Peek(); CurrentOutput.WriteLine("{0}.AppendText(\"{1}\");", parent, CodeUtility.Escape(element.Data)); }
void IHxlTemplateEmitter.EmitLiteral(string text) { if (string.IsNullOrEmpty(text)) { return; } sb.AppendSeparator(", "); sb.Append("\"" + CodeUtility.Escape(text) + "\""); }
private async Task <string> GenatateGlueCode(string code) { int lenght = 8; if (await _repoGlue.FindAll().AnyAsync(x => x.Code.Equals(code)) == true) { var newCode = CodeUtility.RandomString(lenght); return(await GenatateGlueCode(newCode)); } return(code); }
private static string WorkaroundTemplateName(string fixtureFileName, string key) { string input = fixtureFileName + "#" + key; // Take last segment of the name by default Match m = Regex.Match(input, "[^/]+$"); if (m.Success) { input = m.Value; } return(CodeUtility.Slug(input)); }
protected override void VisitConstantExpression(ConstantExpression expression) { var str = expression.Value as string; if (str != null) { Output.Write("\"{0}\"", CodeUtility.Escape(str)); return; } base.VisitConstantExpression(expression); }
string GenerateSourceTempFile(HxlCompilerSession session, HxlTemplate template) { string name, type; HxlTemplateAttribute.NameOrDefault(template, out name, out type); string tempFile = CodeUtility.Slug(name) + "-" + ((ParsedTemplate)template).Signature + ".cs"; using (var sw = session.CreateText(tempFile)) { HxlCompiler.GenerateOneSourceFile(session, template, sw); } return(session.GetFileName(tempFile)); }
private string GenerateSlug(HxlRenderWorkElement pre) { var line = pre.PreLines.FirstOrDefault(t => !string.IsNullOrEmpty(t)) ?? string.Empty; string result = CodeUtility.Slug("work_" + line.Replace("__self.Write", string.Empty)); if (_slugCache.Add(result)) { return(result); } result += Utility.RandomID(); _slugCache.Add(result); return(result); }
public async Task <MixingInfo> Mixing(MixingInfoForCreateDto mixing) { var item = _mapper.Map <MixingInfoForCreateDto, MixingInfo>(mixing); item.Code = CodeUtility.RandomString(8); item.CreatedTime = DateTime.Now; var glue = _repoGlue.FindById(mixing.GlueID); item.ExpiredTime = DateTime.Now.AddMinutes(glue.ExpiredTime); _repoMixingInfor.Add(item); await _repoMixingInfor.SaveAll(); return(item); }
public async Task <bool> GenerateTransferForm(List <Transfer_Form_Generate_Dto> generateTransferForm, string updateBy) { DateTime timeNow = DateTime.Now; var generateTransferFormGroupBy = generateTransferForm.GroupBy(x => new { x.MO_No, x.MO_Seq, x.Material_ID }); foreach (var itemGroup in generateTransferFormGroupBy) { string collectTransNo; do { string num = CodeUtility.RandomNumber(3); // Mã xưởng+T+mã nhà cc T3+yymmdd(ngày mà sản sinh ra mã chuyển giao)+3 số random // VD: CTV057200922001 // Nếu T3 là = null: Mã xưởng+T+ZZZZ+yymmdd(ngày mà sản sinh ra mã chuyển giao)+3 số random var t3_Supplier = itemGroup.FirstOrDefault().T3_Supplier.Trim() == "" ? "ZZZZ" : itemGroup.FirstOrDefault().T3_Supplier.Trim(); collectTransNo = itemGroup.FirstOrDefault().Factory_ID.Trim() + "T" + t3_Supplier + DateTime.Now.ToString("yyyyMMdd") + num; } while (await _transferFormRepository.CheckCollectTransNo(collectTransNo)); foreach (var item in itemGroup.ToList()) { WMSB_Transfer_Form transferForm = new WMSB_Transfer_Form(); transferForm.Collect_Trans_No = collectTransNo; transferForm.Transac_No = item.Transac_No; transferForm.Generate_Time = timeNow; transferForm.T3_Supplier = item.T3_Supplier; transferForm.T3_Supplier_Name = item.T3_Supplier_Name; transferForm.Is_Release = "N"; transferForm.Release_By = null; transferForm.Release_Time = null; transferForm.Update_By = updateBy; transferForm.Update_Time = timeNow; transferForm.MO_No = item.MO_No; transferForm.MO_Seq = item.MO_Seq; transferForm.Material_ID = item.Material_ID; transferForm.Material_Name = item.Material_Name; _transferFormRepository.Add(transferForm); var transactionMain = _transactionMainRepo.FindSingle(x => x.Transac_No.Trim() == item.Transac_No.Trim()); transactionMain.Is_Transfer_Form = "Y"; _transactionMainRepo.Update(transactionMain); } await _transferFormRepository.SaveAll(); } return(true); }
protected override void VisitElementFragment(HxlElement fragment) { var hxlRenderElement = fragment as HxlRenderWorkElement; if (hxlRenderElement != null) { VisitRender(hxlRenderElement); return; } string varName = CodeUtility.EmitInstantiation(this.manager, this.output, fragment); EmitRenderingThunk(this.output, varName, fragment); DoAppend(varName); // Must occur first for factory methods such as AppendText to work DoChildVisit(fragment, varName, true); }
private string SafeNewVariable(string suffix, bool isAttr = false) { string result; suffix = CodeUtility.Slug(suffix); if (stack.Count <= 1) { CurrentOutput.WriteLine(); result = NewVariable("root_" + suffix, isAttr); } else { string variable = stack.Peek(); result = NewVariable(string.Format("{0}_{1}", variable, suffix), isAttr); } return(result); }
protected override void VisitAttributeFragment(HxlAttribute fragment) { HxlExpressionAttribute werk = fragment as HxlExpressionAttribute; if (werk == null) { string variable = CodeUtility.EmitInstantiation(this.manager, this.output, fragment); EmitRenderingThunk(this.output, variable, fragment); DoAppend(variable); } else { string varName = SafeNewVariable(werk.GetType().Name, true); // TODO Possibly better to use other name in this attribute render closure werk.GetInitCode(varName, this, output); DoAppend(varName); } }
public async Task <bool> ReceiveRegister(List <ReceiveDetailModel> data, string userId) { // Thêm vào bảng Receive var receiveID = CodeUtility.RandomString(); var receiveModel = new Receive_Dto(); receiveModel.ID = receiveID; receiveModel.UserID = userId; receiveModel.Register_Date = DateTime.Now; receiveModel.Updated_Time = DateTime.Now; receiveModel.Status = "0"; var user = await _serverUser.GetUserById(userId); receiveModel.DepID = user.DepID; var receive = _mapper.Map <Receive>(receiveModel); _repoReceive.Add(receive); // Thêm vào bảng Receive Detail foreach (var item in data) { var receiveDetail = new Receive_Detail(); receiveDetail.CatID = item.CatID; receiveDetail.CatName = item.CatName; receiveDetail.ReceiveID = receive.ID; receiveDetail.ProductID = item.ProductID; receiveDetail.ProductName = item.ProductName; receiveDetail.Qty = item.Qty; receiveDetail.Update_Time = DateTime.Now; _repoReceiveDetail.Add(receiveDetail); } try { return(await _repoReceiveDetail.SaveAll()); } catch (System.Exception ex) { throw ex; } }
public override string ToString() { Dictionary <string, string> rpl = new Dictionary <string, string>(); rpl.Add("{effectId}", effectId); var slideSceneActivate = String.Empty; if (effect.TriggerSlideScene != null) { slideSceneActivate = CodeUtility.SetVar(effect.TriggerSlideScene.PropertyActive, true); } rpl.Add("{slideSceneActivate}", slideSceneActivate); var sceneLoad = String.Empty; if (effect.TriggerScene != null) { sceneLoad = CodeUtility.SceneLoad(effect.TriggerSceneId); } rpl.Add("{sceneLoad}", sceneLoad); var setFlags = String.Empty; if (!effect.SetFlags.IsEmpty) { foreach (var item in effect.SetFlags.Actives) { setFlags += CodeUtility.SetVar(item.ToString(), true) + "\r\n"; } foreach (var item in effect.SetFlags.Inactives) { setFlags += CodeUtility.SetVar(item.ToString(), false) + "\r\n"; } } rpl.Add("{setFlags}", setFlags); return(Generator.Snippet(Resources.Snippet.ExecuteEffect, rpl)); }
public async Task <MixingInfo> Mixing(MixingInfoForCreateDto mixing) { try { var item = _mapper.Map <MixingInfoForCreateDto, MixingInfo>(mixing); item.Code = CodeUtility.RandomString(8); item.CreatedTime = DateTime.Now; var glue = await _repoGlue.FindAll().FirstOrDefaultAsync(x => x.isShow == true && x.ID == mixing.GlueID); item.ExpiredTime = DateTime.Now.AddMinutes(glue.ExpiredTime); _repoMixingInfor.Add(item); await _repoMixingInfor.SaveAll(); // await _repoMixing.AddOrUpdate(item.ID); return(item); } catch { return(new MixingInfo()); } }
public void EmitInstantiation_should_generate() { var manager = new ExpressionSerializationManager(); var output = new StringWriter(); string name; using (manager.CreateSession()) { name = CodeUtility.EmitInstantiation(manager, output, new A()); } // TODO Empty statement and extra ws are generated Assert.Equal("a1", name); Assert.Equal( @"Carbonfrost.UnitTests.Hxl.A a1; Carbonfrost.UnitTests.Hxl.B b1; a1 = new Carbonfrost.UnitTests.Hxl.A(); a1.B = b1 = new Carbonfrost.UnitTests.Hxl.B(); b1.C = 420; b1.D = true; ; ", output.ToString()); }
public IEnumerable <string> Start(HxlTextElement e) { yield return(string.Format( "__self.Write(\"{0}\");", CodeUtility.Escape(e.Data))); }
public async Task <List <ReceiveAfterSubmit> > SubmitData(List <ReceivingMaterialMainModel> data, string updateBy) { var receiveAfterSubmit = new List <ReceiveAfterSubmit>(); foreach (var itemData in data) { // Update ở bảng WMSB_Material_Purchase var materialPurchaseByPurchase = await _repoPurchase.FindAll(x => x.Biz_Tflag.Trim() != "D" && (x.MO_Qty != 0 || x.Purchase_Qty != 0) && x.Purchase_No.Trim() == itemData.Purchase_No.Trim() && x.MO_No.Trim() == itemData.MO_No.Trim() && x.Material_ID.Trim() == itemData.Material_ID.Trim()).ToListAsync(); materialPurchaseByPurchase.ForEach(item => { item.Status = "Y"; item.Accumlated_In_Qty = item.Purchase_Qty; }); // Tính toán có bao nhiêu batch var countBath = materialPurchaseByPurchase.Select(x => x.MO_Seq).ToList(); countBath = countBath.Distinct().ToList(); if (countBath.Count > 0) { foreach (var itemBatch in countBath) { //Thêm ở bảng PackingList var packingListModel = new WMSB_Packing_List(); packingListModel.Sheet_Type = "B"; packingListModel.Missing_No = ""; packingListModel.Delivery_No = ""; packingListModel.Supplier_ID = itemData.Supplier_ID; packingListModel.Supplier_Name = itemData.Supplier_Name; packingListModel.Receive_Date = DateTime.Now; packingListModel.MO_No = itemData.MO_No; packingListModel.Purchase_No = itemData.Purchase_No; packingListModel.MO_Seq = itemBatch; packingListModel.Receive_No = CodeUtility.RandomReceiveNo("RW", 2); packingListModel.Material_ID = itemData.Material_ID; packingListModel.Material_Name = itemData.Material_Name; packingListModel.Article = itemData.Article; packingListModel.Model_No = itemData.Model_No; packingListModel.Model_Name = itemData.Model_Name; packingListModel.Subcon_ID = itemData.Subcon_No; packingListModel.Subcon_Name = itemData.Subcon_Name; packingListModel.T3_Supplier = itemData.T3_Supplier; packingListModel.T3_Supplier_Name = itemData.T3_Supplier_Name; packingListModel.Generated_QRCode = "N"; packingListModel.Updated_Time = DateTime.Now; packingListModel.Updated_By = updateBy; _repoPackingList.Add(packingListModel); // Tạo ra record để show ngoài màn hình sau khi submit var receiveAfterSubmitItem = new ReceiveAfterSubmit(); var sumAccumlatedQty = materialPurchaseByPurchase .Where(x => x.MO_Seq == itemBatch).Sum(x => x.Purchase_Qty); receiveAfterSubmitItem.MO_No = packingListModel.MO_No; receiveAfterSubmitItem.Purchase_No = packingListModel.Purchase_No; receiveAfterSubmitItem.Receive_No = packingListModel.Receive_No; receiveAfterSubmitItem.MO_Seq = itemBatch; receiveAfterSubmitItem.Material_ID = packingListModel.Material_ID; receiveAfterSubmitItem.Material_Name = packingListModel.Material_Name; receiveAfterSubmitItem.Receive_Time = packingListModel.Receive_Date; receiveAfterSubmitItem.Purchase_Qty = sumAccumlatedQty; receiveAfterSubmitItem.Type = "R"; receiveAfterSubmitItem.Update_By = packingListModel.Updated_By; receiveAfterSubmit.Add(receiveAfterSubmitItem); // Thêm ở bảng PackingListDetail var materialPurchaseForBatchs = materialPurchaseByPurchase.Where(x => x.MO_Seq == itemBatch).ToList(); foreach (var materialForBatchItem in materialPurchaseForBatchs) { var packingListDetailModel = new WMSB_PackingList_Detail(); packingListDetailModel.Receive_No = packingListModel.Receive_No; packingListDetailModel.Order_Size = materialForBatchItem.Order_Size; packingListDetailModel.Model_Size = materialForBatchItem.Model_Size; packingListDetailModel.Tool_Size = materialForBatchItem.Tool_Size; packingListDetailModel.Spec_Size = materialForBatchItem.Spec_Size; packingListDetailModel.MO_Qty = materialForBatchItem.MO_Qty; packingListDetailModel.Purchase_Qty = materialForBatchItem.Purchase_Qty; packingListDetailModel.Received_Qty = materialForBatchItem.Purchase_Qty; packingListDetailModel.Updated_Time = DateTime.Now; packingListDetailModel.Updated_By = updateBy; _repoPackingListDetail.Add(packingListDetailModel); } } } } await _repoPackingListDetail.SaveAll(); return(receiveAfterSubmit); }
public async Task<bool> IntegrationInputSubmit(List<IntegrationInputModel> data, string user) { data = data.Where(x => !string.IsNullOrEmpty(x.Rack_Location)).ToList(); foreach (var item in data) { // Update Table WMSB_QRCode_Main var qrCodeModels = await _repoQRCodeMain.FindAll(x => x.QRCode_ID.Trim() == item.QRCode_ID.Trim() && x.Is_Scanned.Trim() == "N" && x.Receive_No.Trim() == item.Receive_No.Trim()).FirstOrDefaultAsync(); if (qrCodeModels != null) { qrCodeModels.Is_Scanned = "Y"; } //---------------------------- Check TransactionMain-------------------------------// var transationMainCheck = await _repoTransactionMain.FindAll(x => x.QRCode_ID.Trim() == item.QRCode_ID.Trim() && x.MO_No.Trim() == item.MO_No.Trim() && x.Purchase_No.Trim() == item.Purchase_No.Trim() && x.Material_ID.Trim() == item.Material_ID.Trim()).FirstOrDefaultAsync(); if (transationMainCheck == null) { string Transac_Sheet_No, Transac_No; do { string num = CodeUtility.RandomNumber(3); Transac_Sheet_No = "IB" + DateTime.Now.ToString("yyyyMMdd") + num; } while (await _repoTransactionMain.CheckTranSheetNo(Transac_Sheet_No)); do { string num1 = CodeUtility.RandomNumber(3); Transac_No = "IB" + item.MO_No.Trim() + num1; } while (await _repoTransactionMain.CheckTransacNo(Transac_No)); // Tạo New Model để Add vào Table WMSB_Transaction_Main var transactionMainModel = new WMSB_Transaction_Main(); transactionMainModel.Transac_Type = "I"; transactionMainModel.Transac_No = Transac_No; transactionMainModel.Transac_Sheet_No = Transac_Sheet_No; transactionMainModel.Can_Move = "Y"; transactionMainModel.Transac_Time = DateTime.Now; transactionMainModel.QRCode_ID = item.QRCode_ID; transactionMainModel.QRCode_Version = item.QRCode_Version; transactionMainModel.MO_No = item.MO_No.Trim(); transactionMainModel.Purchase_No = item.Purchase_No.Trim(); transactionMainModel.MO_Seq = item.MO_Seq; transactionMainModel.Material_ID = item.Material_ID.Trim(); transactionMainModel.Material_Name = item.Material_Name.Trim(); transactionMainModel.Purchase_Qty = item.Receive_Qty; transactionMainModel.Transacted_Qty = item.Receive_Qty; transactionMainModel.Rack_Location = item.Rack_Location; transactionMainModel.Is_Transfer_Form = "N"; transactionMainModel.Updated_Time = DateTime.Now; transactionMainModel.Updated_By = user; _repoTransactionMain.Add(transactionMainModel); // Add vào table WMSB_Transaction_Detail foreach (var item1 in item.PackingListDetailItem) { var transactionDetailModel = new WMSB_Transaction_Detail(); transactionDetailModel.Transac_No = Transac_No.Trim(); transactionDetailModel.Tool_Size = item1.Tool_Size; transactionDetailModel.Order_Size = item1.Order_Size; transactionDetailModel.Model_Size = item1.Model_Size; transactionDetailModel.Spec_Size = item1.Spec_Size; transactionDetailModel.Qty = item1.Received_Qty; transactionDetailModel.Trans_Qty = item1.Received_Qty; transactionDetailModel.Instock_Qty = item1.Received_Qty; transactionDetailModel.Untransac_Qty = 0; transactionDetailModel.Updated_Time = DateTime.Now; transactionDetailModel.Updated_By = user; _repoTransactionDetail.Add(transactionDetailModel); } } } return await _repoTransactionDetail.SaveAll(); }
public ActionResult ExcelExport(int userid) { var model = _dao.DataExport(userid); var currentYear = DateTime.Now.Year; var currentWeek = DateTime.Now.GetIso8601WeekOfYear(); var currentMonth = DateTime.Now.Month; var currentQuarter = DateTime.Now.GetQuarter(); var now = DateTime.Now; var end = now.GetEndOfQuarter(); var tt = end.Subtract(now).Days; //var targetValue = ""; DataTable Dt = new DataTable(); Dt.Columns.Add("KPILevel Code", typeof(string)); Dt.Columns.Add("KPI Name", typeof(string)); Dt.Columns.Add("Actual Value", typeof(string)); Dt.Columns.Add("Target Value", typeof(object)); Dt.Columns.Add("Period Value", typeof(string)); Dt.Columns.Add("Year", typeof(int)); Dt.Columns.Add("OC", typeof(string)); Dt.Columns.Add("Update Time", typeof(object)); Dt.Columns.Add("Start Date", typeof(string)); Dt.Columns.Add("End Date", typeof(string)); foreach (var item in model) { var oc = new LevelDAO().GetNode(item.KPILevelCode); // Logic export tuần if (item.StateW == true) { for (int i = 1; i <= currentWeek; i++) { var startDayOfWeek = CodeUtility.ToGetMondayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var endDayOfWeek = CodeUtility.ToGetSaturdayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var updateTimeW = item.UploadTimeW.ConvertNumberDayOfWeekToString() + ", Week " + i; var target = _dao.GetTargetData(item.KPILevelCode, "W", i); var value = _dao.GetValueData(item.KPILevelCode, "W", i); Dt.Rows.Add(item.KPILevelCode + "W", item.KPIName, value, target, i, currentYear, oc, updateTimeW, startDayOfWeek, endDayOfWeek); } } ///Logic export tháng if (item.StateM == true) { var updateTimeM = item.UploadTimeM.ToStringDateTime("MM/dd/yyyy"); for (int i = 1; i <= currentMonth; i++) { var startDayOfMonth = CodeUtility.ToGetStartDateOfMonth(currentYear, i).ToString("MM/dd/yyyy"); var endDayOfMonth = CodeUtility.ToGetEndDateOfMonth(currentYear, i).ToString("MM/dd/yyyy"); var value = _dao.GetValueData(item.KPILevelCode, "M", i); var target = _dao.GetTargetData(item.KPILevelCode, "M", i); Dt.Rows.Add(item.KPILevelCode + "M", item.KPIName, value, target, i, currentYear, oc, updateTimeM, startDayOfMonth, endDayOfMonth); } } ///Logic export quý if (item.StateQ == true) { var updateTimeQ = item.UploadTimeQ.ToStringDateTime("MM/dd/yyyy"); for (int i = 1; i <= currentQuarter; i++) { var seq = CodeUtility.ToGetStartAndEndDateOfQuarter(currentYear, i); var value = _dao.GetValueData(item.KPILevelCode, "Q", i); var target = _dao.GetTargetData(item.KPILevelCode, "Q", i); Dt.Rows.Add(item.KPILevelCode + "Q", item.KPIName, value, target, i, currentYear, oc, updateTimeQ, seq.start.ToString("MM/dd/yyyy"), seq.end.ToString("MM/dd/yyyy")); } } ///Logic export năm if (item.StateY == true) { var updateTimeY = item.UploadTimeY.ToStringDateTime("MM/dd/yyyy"); var sey = CodeUtility.ToGetStartAndEndDateOfYear(currentYear); for (int i = currentYear - 9; i <= currentYear; i++) { var value = _dao.GetValueData(item.KPILevelCode, "Y", currentYear); var target = _dao.GetTargetData(item.KPILevelCode, "Y", i); Dt.Rows.Add(item.KPILevelCode + "Y", item.KPIName, value, target, i, currentYear, oc, updateTimeY, sey.start.ToString("MM/dd/yyyy"), sey.end.ToString("MM/dd/yyyy")); } } } var memoryStream = new MemoryStream(); using (var excelPackage = new ExcelPackage(memoryStream)) { var worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1"); worksheet.Cells["A1"].LoadFromDataTable(Dt, true, TableStyles.None); worksheet.Cells["A1:AN1"].Style.Font.Bold = true; worksheet.DefaultRowHeight = 18; worksheet.Column(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Left; worksheet.Column(6).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; worksheet.Column(7).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; worksheet.DefaultColWidth = 20; worksheet.Column(2).AutoFit(); Session["DownloadExcel_FileManager"] = excelPackage.GetAsByteArray(); return(Json("", JsonRequestBehavior.AllowGet)); } }
protected override void VisitText(DomText text) { string parent = stack.Peek(); CurrentOutput.WriteLine("{0}.AppendText(\"{1}\");", parent, CodeUtility.Escape(text.Data)); }
public async Task <bool> SaveListOutput(List <OutputParam> outputParam, string updateBy) { DateTime timeNow = DateTime.Now; string outputSheetNo; do { string num = CodeUtility.RandomNumber(3); outputSheetNo = "OB" + DateTime.Now.ToString("yyyyMMdd") + num;// OB + 20200421 + 001 } while (await _repoTransactionMain.CheckTranSheetNo(outputSheetNo)); foreach (var itemt in outputParam) { // Tìm ra TransactionMain theo id var transactionMain = _repoTransactionMain.FindSingle(x => x.ID == itemt.output.Id); transactionMain.Can_Move = "N"; // update transaction main cũ: Can_Move thành N _repoTransactionMain.Update(transactionMain); // thêm transaction main type O WMSB_Transaction_Main modelTypeO = new WMSB_Transaction_Main(); modelTypeO.Transac_Type = "O"; modelTypeO.Can_Move = "N"; // modelTypeO.Is_Transfer_Form = "N"; modelTypeO.Transac_No = itemt.output.TransacNo; modelTypeO.Transac_Sheet_No = outputSheetNo; modelTypeO.Transacted_Qty = itemt.output.TransOutQty; modelTypeO.Pickup_No = itemt.output.PickupNo; modelTypeO.Transac_Time = timeNow; modelTypeO.Updated_Time = timeNow; modelTypeO.Updated_By = updateBy; modelTypeO.Missing_No = transactionMain.Missing_No; modelTypeO.Material_ID = transactionMain.Material_ID; modelTypeO.Material_Name = transactionMain.Material_Name; modelTypeO.Purchase_No = transactionMain.Purchase_No; modelTypeO.Rack_Location = null;// type O: racklocation rỗng modelTypeO.Purchase_Qty = transactionMain.Purchase_Qty; modelTypeO.QRCode_Version = transactionMain.QRCode_Version; modelTypeO.QRCode_ID = transactionMain.QRCode_ID; modelTypeO.MO_No = transactionMain.MO_No; modelTypeO.MO_Seq = transactionMain.MO_Seq; _repoTransactionMain.Add(modelTypeO); // Thêm transaction detail mới theo type = o, dựa vào transaction detail của transaction main cũ foreach (var item in itemt.transactionDetail) { item.ID = 0;// ID trong db là tự tăng: dựa vào transaction detail cũ nên thêm mới gán id bằng 0, không cần phải new hết thuộc tính của đổi tượng ra item.Transac_No = itemt.output.TransacNo; item.Updated_By = updateBy; item.Updated_Time = timeNow; var itemModel = _mapper.Map <WMSB_Transaction_Detail>(item); _repoTransactionDetail.Add(itemModel); } // Nếu output ra chưa hết thì thêm transaction main type R, và transaction detail, thêm qrcode mới và update version lên if (itemt.output.RemainingQty > 0) { // thêm type R var tmpQrcodeVersion = transactionMain.QRCode_Version + 1; WMSB_Transaction_Main modelTypeR = new WMSB_Transaction_Main(); modelTypeR.Transac_Type = "R"; modelTypeR.Transac_No = "R" + transactionMain.Transac_No; modelTypeR.Transac_Sheet_No = "R" + transactionMain.Transac_Sheet_No; modelTypeR.Transacted_Qty = itemt.output.TransOutQty; modelTypeR.Updated_By = updateBy; modelTypeR.Updated_Time = timeNow; modelTypeR.Missing_No = transactionMain.Missing_No; modelTypeR.Material_ID = transactionMain.Material_ID; modelTypeR.Material_Name = transactionMain.Material_Name; modelTypeR.Purchase_No = transactionMain.Purchase_No; modelTypeR.Rack_Location = transactionMain.Rack_Location; modelTypeR.Purchase_Qty = transactionMain.Purchase_Qty; modelTypeR.QRCode_Version = tmpQrcodeVersion; modelTypeR.QRCode_ID = transactionMain.QRCode_ID; modelTypeR.MO_No = transactionMain.MO_No; modelTypeR.MO_Seq = transactionMain.MO_Seq; modelTypeR.Can_Move = "Y"; // modelTypeR.Is_Transfer_Form = "N"; modelTypeR.Transac_Time = timeNow; _repoTransactionMain.Add(modelTypeR); // thêm transaction main cũng phải thêm transaction detail foreach (var itemTypeR in itemt.transactionDetail) { itemTypeR.ID = 0;// ID trong db là tự tăng: dựa vào transaction detail cũ nên thêm mới gán id bằng 0, không cần phải new hết thuộc tính của đổi tượng ra itemTypeR.Transac_No = modelTypeR.Transac_No; itemTypeR.Updated_By = updateBy; itemTypeR.Updated_Time = timeNow; itemTypeR.Qty = itemTypeR.Instock_Qty; itemTypeR.Trans_Qty = itemTypeR.Instock_Qty; var itemModel = _mapper.Map <WMSB_Transaction_Detail>(itemTypeR); _repoTransactionDetail.Add(itemModel); } // thêm qrcode mới, nếu output ra chưa hết thì thêm qrcode main mới dựa vào cái cũ và update version lên var qrCodeMain = await _repoQRCodeMain.FindAll(x => x.QRCode_ID.Trim() == itemt.output.QrCodeId.Trim()).OrderByDescending(x => x.QRCode_Version).FirstOrDefaultAsync(); WMSB_QRCode_Main modelQrCodeMain = new WMSB_QRCode_Main(); modelQrCodeMain.QRCode_ID = qrCodeMain.QRCode_ID; modelQrCodeMain.QRCode_Type = qrCodeMain.QRCode_Type; modelQrCodeMain.Receive_No = qrCodeMain.Receive_No; modelQrCodeMain.Valid_Status = "Y"; modelQrCodeMain.Is_Scanned = "Y"; modelQrCodeMain.Invalid_Date = qrCodeMain.Invalid_Date; modelQrCodeMain.QRCode_Version = qrCodeMain.QRCode_Version + 1; modelQrCodeMain.Updated_Time = timeNow; modelQrCodeMain.Updated_By = updateBy; _repoQRCodeMain.Add(modelQrCodeMain); // Update cho QRCode cũ, Valid_Status =N, Invalid_Date = Ngày mà tạo ra version mới qrCodeMain.Valid_Status = "N"; qrCodeMain.Invalid_Date = timeNow; _repoQRCodeMain.Update(qrCodeMain); // thêm qrcodedetail của qrcode mới: thêm qrcode main cũng phải thêm qrcode detail var qrCodeDetails = await _repoQRCodeDetail.FindAll(x => x.QRCode_ID.Trim() == qrCodeMain.QRCode_ID.Trim() && x.QRCode_Version == qrCodeMain.QRCode_Version).ToListAsync(); foreach (var itemQrCodeDetail in qrCodeDetails) { itemQrCodeDetail.QID = 0; itemQrCodeDetail.Updated_By = updateBy; itemQrCodeDetail.Updated_Time = timeNow; itemQrCodeDetail.QRCode_Version = modelQrCodeMain.QRCode_Version; itemQrCodeDetail.Qty = itemt.transactionDetail.Where(x => x.Tool_Size == itemQrCodeDetail.Tool_Size && x.Order_Size == itemQrCodeDetail.Order_Size && x.Model_Size == itemQrCodeDetail.Model_Size).FirstOrDefault().Instock_Qty; _repoQRCodeDetail.Add(itemQrCodeDetail); } } // Nếu QRCode đã out hết số lượng, cần update cho nó không còn hiệu lực // ( Ở bảng WMSB_QRCode_Main: UPDATE trường Valid_Status =’N”, Invalid_Date là ngày Output hết số lượng, // đồng thời cũng update trường Update_Time & Update_By) else { var qrCodeMain = await _repoQRCodeMain.FindAll(x => x.QRCode_ID.Trim() == itemt.output.QrCodeId.Trim()).OrderByDescending(x => x.QRCode_Version).FirstOrDefaultAsync(); qrCodeMain.Valid_Status = "N"; qrCodeMain.Invalid_Date = timeNow; qrCodeMain.Updated_Time = timeNow; qrCodeMain.Updated_By = updateBy; _repoQRCodeMain.Update(qrCodeMain); } } // lưu Db return(await _repoTransactionMain.SaveAll()); }
private int RunCore() { // TODO Validate options var collectedReferences = LoadReferences(); var settings = new HxlCompilerSettings(); foreach (var reference in collectedReferences) { settings.Assemblies.AddNew(reference.Key, new Uri(reference.Value, UriKind.RelativeOrAbsolute)); } // TODO Support output assembly name // Path.GetFileNameWithoutExtension(Options.OutputFile); foreach (var kvp in Options.Namespaces) { settings.Namespaces.AddNew(kvp.Key, new Uri(kvp.Value)); } var compiler = HxlCompiler.Create(settings); var templates = new List <HxlTemplate>(); foreach (var item in Options.Inputs.EnumerateFiles()) { string file = item.File; _logger.ParsingTemplate(file); // TODO Get access to template builder another way var template = compiler.LoadTemplate(file); var builder = (IHxlTemplateBuilder)template; var viewType = Options.BaseType ?? TypeReference.Parse("Carbonfrost.Commons.Hxl.HxlViewTemplate"); // TODO Drop this- should be using the type selector // TODO Allow type selector to be configurable builder.BaseClass = viewType; if (builder.ModelType == null) { builder.BaseClass = viewType; } else { string text = viewType.OriginalString + "<" + builder.ModelType + ">"; builder.BaseClass = TypeReference.Parse(text); } builder.TemplateName = PathHelper.UnixPath(PathHelper.MakeRelative(item.OriginalGlob, file)); builder.ClassName = CodeUtility.Slug(builder.TemplateName); templates.Add(template); } if (templates.Count == 0) { _logger.NoSourceFilesSpecified(); return(1); } if (Options.NoCompile) { return(GenerateSource(compiler, templates)); } else { return(CompileSource(compiler, templates)); } }
public ActionResult ExcelExport1(int userid) { var model = _dao.DataExport(userid); var currentYear = DateTime.Now.Year; var currentWeek = DateTime.Now.GetIso8601WeekOfYear(); var currentMonth = DateTime.Now.Month; var currentQuarter = DateTime.Now.GetQuarter(); var now = DateTime.Now; var end = now.GetEndOfQuarter(); var tt = end.Subtract(now).Days; //var targetValue = ""; DataTable Dt = new DataTable(); Dt.Columns.Add("KPILevel Code", typeof(string)); Dt.Columns.Add("KPI Name", typeof(string)); Dt.Columns.Add("Actual Value", typeof(string)); Dt.Columns.Add("Target Value", typeof(object)); Dt.Columns.Add("Period Value", typeof(string)); Dt.Columns.Add("Year", typeof(int)); Dt.Columns.Add("OC", typeof(string)); Dt.Columns.Add("Update Time", typeof(object)); Dt.Columns.Add("Start Date", typeof(string)); Dt.Columns.Add("End Date", typeof(string)); foreach (var item in model) { var oc = new LevelDAO().GetNode(item.KPILevelCode); ///Logic export tuần //Nếu tuần MAX trong bảng DATA mà bằng 0 thì export từ tuần đầu cho đến tuần hiện tại if (item.PeriodValueW == 0 && item.StateW == true) { for (int i = 1; i <= currentWeek; i++) { var startDayOfWeek = CodeUtility.ToGetMondayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var endDayOfWeek = CodeUtility.ToGetSaturdayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var updateTimeW = item.UploadTimeW.ConvertNumberDayOfWeekToString() + ", Week " + i; Dt.Rows.Add(item.KPILevelCode + "W", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, updateTimeW, startDayOfWeek, endDayOfWeek); } } // nếu tuần hiện tại trừ tuần MAX >= 1 thì export từ tuần kế tiếp tuần MAX cho đến tuần hiện tại else if (item.PeriodValueW > 0 && item.StateW == true) { if (currentWeek - item.PeriodValueW >= 1) { for (int i = item.PeriodValueW + 1; i <= currentWeek; i++) { var startDayOfWeek = CodeUtility.ToGetMondayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var endDayOfWeek = CodeUtility.ToGetSaturdayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var updateTimeW = item.UploadTimeW.ConvertNumberDayOfWeekToString() + ", Week " + i; Dt.Rows.Add(item.KPILevelCode + "W", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, updateTimeW, startDayOfWeek, endDayOfWeek); } } else { for (int i = 1; i <= currentWeek; i++) { var startDayOfWeek = CodeUtility.ToGetMondayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var endDayOfWeek = CodeUtility.ToGetSaturdayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var updateTimeW = item.UploadTimeW.ConvertNumberDayOfWeekToString() + ", Week " + i; var value = _dao.GetValueData(item.KPILevelCode, "W", i); Dt.Rows.Add(item.KPILevelCode + "W", item.KPIName, value, item.TargetValueW, i, currentYear, oc, updateTimeW, startDayOfWeek, endDayOfWeek); } } } ///Logic export tháng //Nếu tháng MAX trong bảng DATA mà bằng 0 thì export từ tháng đầu cho đến tháng hiện tại if (item.PeriodValueM == 0 && item.StateM == true) { for (int i = 1; i <= currentMonth; i++) { Dt.Rows.Add(item.KPILevelCode + "M", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, item.UploadTimeM.ToSafetyString().Split(' ')[0].ToSafetyString()); } } // nếu tháng hiện tại trừ tháng MAX >= 1 thì export từ tháng kế tiếp tháng MAX cho đến tháng hiện tại if (item.PeriodValueM > 0 && item.StateM == true) { if (currentMonth - item.PeriodValueM > 1) { for (int i = item.PeriodValueM + 1; i <= currentMonth; i++) { Dt.Rows.Add(item.KPILevelCode + "M", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, item.UploadTimeM.ToSafetyString().Split(' ')[0].ToSafetyString()); } } else { for (int i = 1; i <= currentMonth; i++) { var value = _dao.GetValueData(item.KPILevelCode, "M", i); Dt.Rows.Add(item.KPILevelCode + "M", item.KPIName, value, item.TargetValueW, i, currentYear, oc, item.UploadTimeM.ToSafetyString().Split(' ')[0].ToSafetyString()); } } } ///Logic export quý //Nếu quý MAX trong bảng DATA mà bằng 0 thì export từ tháng đầu cho đến quý hiện tại if (item.PeriodValueQ == 0 && item.StateQ == true) { for (int i = 1; i < currentQuarter; i++) { Dt.Rows.Add(item.KPILevelCode + "Q", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, item.UploadTimeQ.ToSafetyString().Split(' ')[0].ToSafetyString()); } if (tt <= 30) { Dt.Rows.Add(item.KPILevelCode + "Q", item.KPIName, item.Value, item.TargetValueW, currentQuarter, currentYear, oc, item.UploadTimeQ.ToSafetyString().Split(' ')[0].ToSafetyString()); } } if (item.PeriodValueQ > 0 && item.StateQ == true) { //, Nếu quý hiện tại trừ quý MAX trong bảng DATA lớn hơn 1 thì //export từ quý 1 cho đến quý hiện tại if (currentQuarter - item.PeriodValueQ >= 1) { for (int i = item.PeriodValueQ; i <= currentQuarter; i++) { Dt.Rows.Add(item.KPILevelCode + "Q", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, item.UploadTimeQ.ToSafetyString().Split(' ')[0].ToSafetyString()); } } else { for (int i = 1; i <= currentQuarter; i++) { var value = _dao.GetValueData(item.KPILevelCode, "Q", i); Dt.Rows.Add(item.KPILevelCode + "Q", item.KPIName, value, item.TargetValueW, i, currentYear, oc, item.UploadTimeQ.ToSafetyString().Split(' ')[0].ToSafetyString()); } } } ///Logic export năm //Nếu năm MAX trong bảng DATA == 0 thì export năm hiện tại if (item.PeriodValueY == 0 && item.StateY == true) { for (int i = currentYear - 10; i <= currentYear; i++) { Dt.Rows.Add(item.KPILevelCode + "Y", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, item.UploadTimeY.ToSafetyString().Split(' ')[0].ToSafetyString()); } } if (item.PeriodValueY > 0 && item.StateY == true) { // nếu năm hiện tại - năm max trong bảng DATA > 1 thì export năm kế tiếp đến năm hiện tại if (currentYear - item.PeriodValueY >= 1) { for (int i = item.PeriodValueY + 1; i <= currentYear; i++) { Dt.Rows.Add(item.KPILevelCode + "Y", item.KPIName, item.Value, item.TargetValueW, i, currentYear, oc, item.UploadTimeY.ToSafetyString().Split(' ')[0].ToSafetyString()); } } else { for (int i = currentYear - 10; i <= currentYear; i++) { var value = _dao.GetValueData(item.KPILevelCode, "Y", i); Dt.Rows.Add(item.KPILevelCode + "Y", item.KPIName, value, item.TargetValueW, i, currentYear, oc, item.UploadTimeY.ToSafetyString().Split(' ')[0].ToSafetyString()); } } } } var memoryStream = new MemoryStream(); using (var excelPackage = new ExcelPackage(memoryStream)) { var worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1"); worksheet.Cells["A1"].LoadFromDataTable(Dt, true, TableStyles.None); worksheet.Cells["A1:AN1"].Style.Font.Bold = true; worksheet.DefaultRowHeight = 18; worksheet.Column(2).Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Left; worksheet.Column(6).Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center; worksheet.Column(7).Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center; worksheet.DefaultColWidth = 20; worksheet.Column(2).AutoFit(); Session["DownloadExcel_FileManager"] = excelPackage.GetAsByteArray(); return(Json("", JsonRequestBehavior.AllowGet)); } }
public async Task <bool> AddListQRCode(List <string> listReceiveNo, string updateBy) { listReceiveNo = listReceiveNo.Select(x => x.Trim()).ToList(); var packingLists = await _repoPacking.FindAll(x => listReceiveNo.Contains(x.Receive_No.Trim())).ToListAsync(); var checkCreate = true; foreach (var item in listReceiveNo) { // Tạo QrCodeMain để thêm vào database var qrCodeDto = new QRCode_Main_Dto(); var packing = packingLists.Where(x => x.Receive_No.Trim() == item).FirstOrDefault(); // Nếu Generated_QrCode khác Y thì mới Tạo QrCode if (packing.Generated_QRCode != "Y") { packing.Generated_QRCode = "Y"; string qrCodeId = ""; if (packing.Sheet_Type.Trim() == "R" || packing.Sheet_Type.Trim() == "M") { do { var po = packing.MO_No.Trim().Length == 9 ? packing.MO_No.Trim() + "Z" : packing.MO_No.Trim(); string so = CodeUtility.RandomNumber(3); qrCodeId = "A" + po + so + CodeUtility.RandomStringUpper(1); } while (await this.CheckQrCodeID(qrCodeId)); } else if (packing.Sheet_Type.Trim() == "B") { do { var po = packing.MO_No.Trim().Length == 9 ? packing.MO_No.Trim() + "Z" : packing.MO_No.Trim(); string so = CodeUtility.RandomNumber(3); qrCodeId = "B" + po + so + CodeUtility.RandomStringUpper(1); } while (await this.CheckQrCodeID(qrCodeId)); } qrCodeDto.QRCode_ID = qrCodeId; qrCodeDto.Receive_No = packing.Receive_No.Trim(); qrCodeDto.QRCode_Version = 1; qrCodeDto.Valid_Status = "Y"; qrCodeDto.Is_Scanned = "N"; qrCodeDto.QRCode_Type = packing.Sheet_Type.Trim(); qrCodeDto.Updated_By = updateBy; await _repoPacking.SaveAll(); var qrCodeMain = _mapper.Map <WMSB_QRCode_Main>(qrCodeDto); _repoQrcode.Add(qrCodeMain); // Tạo QrCodeDetail để thêm vào database var listPackingDetail = await _repoPackingDetail.FindAll(x => x.Receive_No.Trim() == item).ToListAsync(); foreach (var packingItem in listPackingDetail) { var qrCodeDetailDto = new QRCode_Detail_Dto(); qrCodeDetailDto.QRCode_ID = qrCodeId; qrCodeDetailDto.QRCode_Version = 1; qrCodeDetailDto.Order_Size = packingItem.Order_Size; qrCodeDetailDto.Model_Size = packingItem.Model_Size; qrCodeDetailDto.Tool_Size = packingItem.Tool_Size; qrCodeDetailDto.Spec_Size = packingItem.Spec_Size; qrCodeDetailDto.Qty = packingItem.Received_Qty; qrCodeDetailDto.Updated_By = updateBy; var qrCodeDetail = _mapper.Map <WMSB_QRCode_Detail>(qrCodeDetailDto); _repoQrCodeDetail.Add(qrCodeDetail); if (!await _repoQrCodeDetail.SaveAll()) { checkCreate = false; break; } } } } await _repoQrcode.SaveAll(); return(checkCreate); }
public ActionResult ExcelExport(int userid) { //string token = Request.Headers["Authorization"].ToSafetyString(); //var userid = Extensions.GetDecodeTokenByProperty(token, "nameid").ToInt(); var model = _dataService.DataExport(userid); var currentYear = DateTime.Now.Year; var currentWeek = DateTime.Now.GetIso8601WeekOfYear(); var currentMonth = DateTime.Now.Month; var currentHalf = DateTime.Now.GetQuarter(); var currentQuarter = DateTime.Now.GetQuarter(); //var now = DateTime.Now; //var end = now.GetEndOfQuarter(); //var tt = end.Subtract(now).Days; //var targetValue = ""; DataTable Dt = new DataTable(); Dt.Columns.Add("KPILevel Code", typeof(string)); Dt.Columns.Add("KPI Name", typeof(string)); Dt.Columns.Add("Actual Value", typeof(string)); Dt.Columns.Add("Target Value", typeof(object)); Dt.Columns.Add("Period Value", typeof(string)); Dt.Columns.Add("Year", typeof(int)); Dt.Columns.Add("OC", typeof(string)); Dt.Columns.Add("Update Time", typeof(object)); Dt.Columns.Add("Start Date", typeof(string)); Dt.Columns.Add("End Date", typeof(string)); foreach (var item in model) { var oc = _levelService.GetNode(item.KPILevelCode); // Logic export tuần if (item.StateW == true) { for (int i = 1; i <= currentWeek; i++) { var startDayOfWeek = CodeUtility.ToGetMondayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var endDayOfWeek = CodeUtility.ToGetSaturdayOfWeek(currentYear, i).ToString("MM/dd/yyyy"); var updateTimeW = item.UploadTimeW.ConvertNumberDayOfWeekToString() + ", Week " + i; var target = _dataService.GetTargetData(item.KPILevelCode, "W", i); var value = _dataService.GetValueData(item.KPILevelCode, "W", i); Dt.Rows.Add(item.KPILevelCode + "W", item.KPIName, value, target, i, currentYear, oc, updateTimeW, startDayOfWeek, endDayOfWeek); } } ///Logic export tháng if (item.StateM == true) { var updateTimeM = item.UploadTimeM.ToStringDateTime("MM/dd/yyyy"); for (int i = 1; i <= currentMonth; i++) { var startDayOfMonth = CodeUtility.ToGetStartDateOfMonth(currentYear, i).ToString("MM/dd/yyyy"); var endDayOfMonth = CodeUtility.ToGetEndDateOfMonth(currentYear, i).ToString("MM/dd/yyyy"); var value = _dataService.GetValueData(item.KPILevelCode, "M", i); var target = _dataService.GetTargetData(item.KPILevelCode, "M", i); Dt.Rows.Add(item.KPILevelCode + "M", item.KPIName, value, target, i, currentYear, oc, updateTimeM, startDayOfMonth, endDayOfMonth); } } ///Logic export nửa năm if (item.StateH == true) { var updateTimeH = item.UploadTimeH.ToStringDateTime("MM/dd/yyyy"); for (int i = 1; i <= currentHalf; i++) { var seq = CodeUtility.ToGetStartAndEndDateOfHalfYear(currentYear, i); var value = _dataService.GetValueData(item.KPILevelCode, "H", i); var target = _dataService.GetTargetData(item.KPILevelCode, "H", i); Dt.Rows.Add(item.KPILevelCode + "H", item.KPIName, value, target, i, currentYear, oc, updateTimeH, seq.Item1.ToString("MM/dd/yyyy"), seq.Item2.ToString("MM/dd/yyyy")); } } ///Logic export quý if (item.StateQ == true) { var updateTimeQ = item.UploadTimeQ.ToStringDateTime("MM/dd/yyyy"); for (int i = 1; i <= currentQuarter; i++) { var seq = CodeUtility.ToGetStartAndEndDateOfQuarter(currentYear, i); var value = _dataService.GetValueData(item.KPILevelCode, "Q", i); var target = _dataService.GetTargetData(item.KPILevelCode, "Q", i); Dt.Rows.Add(item.KPILevelCode + "Q", item.KPIName, value, target, i, currentYear, oc, updateTimeQ, seq.Item1.ToString("MM/dd/yyyy"), seq.Item2.ToString("MM/dd/yyyy")); } } ///Logic export năm if (item.StateY == true) { var updateTimeY = item.UploadTimeY.ToStringDateTime("MM/dd/yyyy"); var sey = CodeUtility.ToGetStartAndEndDateOfYear(currentYear); for (int i = currentYear - 9; i <= currentYear; i++) { var value = _dataService.GetValueData(item.KPILevelCode, "Y", currentYear); var target = _dataService.GetTargetData(item.KPILevelCode, "Y", i); Dt.Rows.Add(item.KPILevelCode + "Y", item.KPIName, value, target, i, currentYear, oc, updateTimeY, sey.Item1.ToString("MM/dd/yyyy"), sey.Item2.ToString("MM/dd/yyyy")); } } } var memoryStream = new MemoryStream(); using var excelPackage = new ExcelPackage(memoryStream); var worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1"); worksheet.Cells["A1"].LoadFromDataTable(Dt, true, TableStyles.None); worksheet.Cells["A1:AN1"].Style.Font.Bold = true; worksheet.DefaultRowHeight = 18; worksheet.Column(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Left; worksheet.Column(6).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; worksheet.Column(7).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; worksheet.DefaultColWidth = 20; worksheet.Column(2).AutoFit(); if (excelPackage == null) { return(NotFound()); } byte[] data = excelPackage.GetAsByteArray() as byte[]; return(File(data, "application/octet-stream", "DataUpload.xlsx")); }