Exemple #1
0
        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);
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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));
            }
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        void IHxlTemplateEmitter.EmitLiteral(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return;
            }

            sb.AppendSeparator(", ");
            sb.Append("\"" + CodeUtility.Escape(text) + "\"");
        }
Exemple #7
0
        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));
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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));
        }
Exemple #11
0
        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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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);
            }
        }
Exemple #17
0
        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;
            }
        }
Exemple #18
0
        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));
        }
Exemple #19
0
        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());
            }
        }
Exemple #20
0
        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)));
 }
Exemple #22
0
        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);
        }
Exemple #23
0
        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();
        }
Exemple #24
0
        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));
            }
        }
Exemple #25
0
        protected override void VisitText(DomText text)
        {
            string parent = stack.Peek();

            CurrentOutput.WriteLine("{0}.AppendText(\"{1}\");", parent, CodeUtility.Escape(text.Data));
        }
Exemple #26
0
        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());
        }
Exemple #27
0
        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));
            }
        }
Exemple #28
0
        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));
            }
        }
Exemple #29
0
        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);
        }
Exemple #30
0
        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"));
        }