コード例 #1
0
        private void wQH_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (wQH.ReadyState == WebBrowserReadyState.Complete && !wQH.IsBusy)
            {
                Thread.Sleep(2000);
                HtmlElement        head1    = wQH.Document.GetElementsByTagName("head")[0];
                HtmlElement        scriptEl = wQH.Document.CreateElement("script");
                IHTMLScriptElement element  = (IHTMLScriptElement)scriptEl.DomElement;

                if (wQH.Url.AbsolutePath.Contains("/login")) // Trang login
                {
                    wQH.Document.GetElementById("login-agency-code").SetAttribute("value", _NCCO.MaHang);
                    wQH.Document.GetElementById("login-agency-id").SetAttribute("value", _NCCO.TaiKhoan);
                    wQH.Document.GetElementById("login-password").SetAttribute("value", _NCCO.MatKhau);

                    element.text = @"function doPost() {submitLoginForm('en_US');}";
                    head1.AppendChild(scriptEl);
                    wQH.Document.InvokeScript("doPost");
                }
                else if (wQH.Url.AbsolutePath.Contains("/agent"))
                {
                    switch (step)
                    {
                    case 0:
                        element.text = @"function doPost() {createInvoice(event);}";
                        head1.AppendChild(scriptEl);
                        wQH.Document.InvokeScript("doPost");
                        break;

                    case 1:
                        wQH.Document.GetElementById("ir-start-date").SetAttribute("value", ((DateTime)eDate1.EditValue).ToString("dd/MM/yyyy"));
                        wQH.Document.GetElementById("ir-end-date").SetAttribute("value", ((DateTime)eDate2.EditValue).ToString("dd/MM/yyyy"));
                        element.text = @"function doPost() {doInvoice('/reservation','vi',true);}";
                        head1.AppendChild(scriptEl);
                        wQH.Document.InvokeScript("doPost");
                        break;

                    case 2:
                        if (((DateTime)eDate1.EditValue).Subtract(DateTime.Now).Days == 0)
                        {
                            element.text = @"function doPost() {viewdetails('0', 'VND', 'AG', '" + _NCCO.MaHang + "');}";
                            head1.AppendChild(scriptEl);
                            wQH.Document.InvokeScript("doPost");
                            step++;
                        }
                        else
                        {
                            wQH.Document.GetElementById("invoicedetails").InvokeMember("click");
                        }
                        break;

                    case 4:

                        HtmlElementCollection eleth = wQH.Document.GetElementsByTagName("th");
                        if (DataVJ.Columns.Count != 25)
                        {
                            for (int u = 0; u < eleth.Count; u++)
                            {
                                DataVJ.Columns.Add(eleth[u].InnerText, (new int[] { 9, 10, 11, 13, 14, 15 }.Contains(u)) ? typeof(double) : typeof(string));
                            }
                        }
                        HtmlElementCollection ele  = wQH.Document.GetElementsByTagName("tr");
                        List <O_GIAODICH>     lst1 = new List <O_GIAODICH>();

                        foreach (HtmlElement eles in ele)
                        {
                            HtmlElementCollection elez = eles.GetElementsByTagName("td");

                            if (elez.Count == 0)
                            {
                                continue;
                            }

                            List <string> lststr1 = new List <string>();
                            for (int u = 0; u < elez.Count; u++)
                            {
                                if (elez[u].InnerText != null)
                                {
                                    if (XuLyDuLieu.IsNumeric(elez[u].InnerText.Replace(",", string.Empty)))
                                    {
                                        lststr1.Add(elez[u].InnerText.Replace(",", string.Empty));
                                    }
                                    else
                                    {
                                        lststr1.Add(elez[u].InnerText);
                                    }
                                }
                                else
                                {
                                    if (new int[] { 9, 10, 11, 13, 14, 15 }.Contains(u))
                                    {
                                        lststr1.Add("0");
                                    }
                                    else
                                    {
                                        lststr1.Add(elez[u].InnerText);
                                    }
                                }
                            }
                            if (lststr1.Count == DataVJ.Columns.Count)
                            {
                                DataVJ.Rows.Add(lststr1.ToArray());
                            }

                            O_GIAODICH gd  = new O_GIAODICH();
                            string[]   ten = elez[7].InnerText.Split('/');
                            gd.TenKhach = ten[1] + " " + ten[0];
                            gd.MaCho    = elez[4].InnerText;

                            if (long.Parse(elez[15].InnerText.Replace(",", string.Empty)) < 0)
                            {
                                gd.HangHoan = XuLyDuLieu.ConvertStringToLong(elez[15].InnerText);
                            }
                            else
                            {
                                gd.GiaNet = XuLyDuLieu.ConvertStringToLong(elez[15].InnerText);
                            }
                            lst1.Add(gd);
                        }
                        GCVTNCC.DataSource = lst1.Where(w => w.GiaNet > 0);
                        GCVHNCC.DataSource = lst1.Where(w => w.HangHoan > 0);

                        if (XuLyGiaoDien.wait.IsSplashFormVisible)
                        {
                            XuLyGiaoDien.wait.CloseWaitForm();
                        }
                        XtraMessageBox.Show("Lấy dữ liệu thành công", "Thông báo");
                        wQH.Visible = false;
                        //element.text = @"function doPost() {invoiceDetailExport('xls','/reservation','vi');}";
                        //head1.AppendChild(scriptEl);
                        //wQH.Document.InvokeScript("doPost");
                        break;
                    }
                    step++;
                }
            }
        }
コード例 #2
0
        void XuLyVeHoanKt()
        {
            D_GIAODICH giaoDichD = new D_GIAODICH();

            List <O_GIAODICH> lstGiaoDich  = giaoDichD.DuLieu($"TinhCongNo = 0 and LoaiGiaoDich = 9 and LoaiKhachHang <> 3", false);
            String            range        = $"Kế toán CN!A2:I";
            var        request             = SService.Spreadsheets.Values.Get(SpreadsheetId, range);
            ValueRange response            = request.Execute();
            IList <IList <Object> > values = response.Values;
            List <APISheet>         lstAPI = new List <APISheet>();

            if (values != null)
            {
                foreach (var row in values)
                {
                    if (row.Count < 1)//có ít nhất 2 cột có dữ liệu
                    {
                        continue;
                    }
                    if (row[0].ToString() == string.Empty)//không mã chỗ số vé
                    {
                        continue;
                    }
                    List <O_GIAODICH> GiaoDinhTamLuu = lstGiaoDich.Where(w => (w.SoVeVN ?? string.Empty).Replace(" ", string.Empty).Equals(row[0].ToString().Replace(" ", string.Empty))).ToList();

                    if (GiaoDinhTamLuu.Count == 1)// Mã chỗ có tồn tại theo điều kiện
                    {
                        O_GIAODICH ac = new O_GIAODICH();
                        ac.LoaiKhachHang = 0;

                        ac.GhiChu     = row.Count > 7 ? row[7].ToString() : string.Empty;
                        ac.GiaHeThong = row.Count > 3 ? XuLyDuLieu.ConvertStringToLong(row[3].ToString() == string.Empty ? "0" : row[3].ToString()) : -1;
                        ac.GiaHoan    = row.Count > 4 ? XuLyDuLieu.ConvertStringToLong(row[4].ToString() == string.Empty ? "0" : row[4].ToString()) : -1;
                        ac.GiaNet     = row.Count > 5 ? XuLyDuLieu.ConvertStringToLong(row[5].ToString() == string.Empty ? "0" : row[5].ToString()) : -1;
                        ac.HangHoan   = row.Count > 6 ? XuLyDuLieu.ConvertStringToLong(row[6].ToString() == string.Empty ? "0" : row[6].ToString()) : -1;

                        if (row.Count > 1)
                        {
                            if (row[1].ToString() != string.Empty)// tìm DL theo sheet
                            {
                                if (lstDaiLy.Where(w => w.Ten.TrimEnd().ToLower().Normalize(NormalizationForm.FormKD).Equals(row[1].ToString().TrimEnd().ToLower().Normalize(NormalizationForm.FormKD))).Count() > 0)
                                {
                                    ac.IDKhachHang   = lstDaiLy.Where(w => w.Ten.TrimEnd().ToLower().Normalize(NormalizationForm.FormKD).Equals(row[1].ToString().TrimEnd().ToLower().Normalize(NormalizationForm.FormKD))).First().ID;
                                    ac.LoaiKhachHang = 1;
                                }
                                if (ac.LoaiKhachHang == 0)
                                {
                                    lstAPI.Add(aPI("Không tìm thấy khách", row[0].ToString(), row[1].ToString(), row[2].ToString(), row[5].ToString(), row[6].ToString(), ac.GiaHeThong, ac.GiaHoan));
                                    continue;
                                }
                            }
                            else if (row.Count > 3)
                            {
                                if (row[2].ToString() != string.Empty)// tìm CTV theo sheet
                                {
                                    if (lstCTV.Where(w => w.Ten.TrimEnd().ToLower().Normalize(NormalizationForm.FormKD).Equals(row[2].ToString().TrimEnd().ToLower().Normalize(NormalizationForm.FormKD))).Count() > 0)
                                    {
                                        ac.IDKhachHang   = lstCTV.Where(w => w.Ten.TrimEnd().ToLower().Normalize(NormalizationForm.FormKD).Equals(row[2].ToString().TrimEnd().ToLower().Normalize(NormalizationForm.FormKD))).First().ID;
                                        ac.LoaiKhachHang = 2;
                                    }

                                    if (ac.LoaiKhachHang == 0)
                                    {
                                        lstAPI.Add(aPI("Không tìm thấy khách", row[0].ToString(), row[1].ToString(), row[2].ToString(), row[5].ToString(), row[6].ToString(), ac.GiaHeThong, ac.GiaHoan));
                                        continue;
                                    }
                                }
                            }
                        }

                        string GhiChuTam = string.Format("GExcel Hoàn : Nhận hoàn [{0}] - ", row[0].ToString());

                        if (ac.LoaiKhachHang > 0 && ac.IDKhachHang != GiaoDinhTamLuu[0].IDKhachHang)
                        {
                            GhiChuTam += string.Format("[{0} => {1}] ", lstALL.Where(w => w.ID.Equals(GiaoDinhTamLuu[0].IDKhachHang)).Count() > 0 ? lstALL.Where(w => w.ID.Equals(GiaoDinhTamLuu[0].IDKhachHang)).ToList()[0].Ten : string.Empty, lstALL.Where(w => w.ID.Equals(ac.IDKhachHang)).ToList()[0].Ten);
                        }
                        if (ac.GiaHeThong > 10 && ac.GiaHeThong != GiaoDinhTamLuu[0].GiaHeThong)
                        {
                            GhiChuTam += string.Format("[Phí hoàn {0} => {1}] ", GiaoDinhTamLuu[0].GiaHeThong.ToString("#,##0"), ac.GiaHeThong.ToString("#,##0"));
                        }
                        if (ac.GiaHoan > 10 && ac.GiaHoan != GiaoDinhTamLuu[0].GiaHoan)
                        {
                            GhiChuTam += string.Format("[Giá hoàn {0} => {1}] ", GiaoDinhTamLuu[0].GiaHoan.ToString("#,##0"), ac.GiaHoan.ToString("#,##0"));
                        }
                        if (ac.GiaNet > 10 && ac.GiaNet != GiaoDinhTamLuu[0].GiaNet)
                        {
                            GhiChuTam += string.Format("[Phí hãng {0} => {1}] ", GiaoDinhTamLuu[0].GiaNet.ToString("#,##0"), ac.GiaNet.ToString("#,##0"));
                        }
                        if (ac.HangHoan > 10 && ac.HangHoan != GiaoDinhTamLuu[0].HangHoan)
                        {
                            GhiChuTam += string.Format("[Hãng hoàn {0} => {1}] ", GiaoDinhTamLuu[0].HangHoan.ToString("#,##0"), ac.HangHoan.ToString("#,##0"));
                        }

                        GhiChuTam += "[";

                        for (int u = 0; u < GiaoDinhTamLuu.Count; u++)
                        {
                            GiaoDinhTamLuu[u].TinhCongNo = true;
                            if (ac.LoaiKhachHang > 0)
                            {
                                GiaoDinhTamLuu[u].LoaiKhachHang = ac.LoaiKhachHang;
                                GiaoDinhTamLuu[u].IDKhachHang   = ac.IDKhachHang;
                            }
                            if (ac.GiaHeThong > 10)
                            {
                                GiaoDinhTamLuu[u].GiaHeThong = ac.GiaHeThong;
                            }
                            if (ac.GiaHoan > 10)
                            {
                                GiaoDinhTamLuu[u].GiaHoan = ac.GiaHoan;
                            }
                            if (ac.GiaNet > 10)
                            {
                                GiaoDinhTamLuu[u].GiaNet = ac.GiaNet;
                            }
                            if (ac.HangHoan > 100)
                            {
                                GiaoDinhTamLuu[u].HangHoan = ac.HangHoan;
                            }

                            GhiChuTam += GiaoDinhTamLuu[u].ID;
                            GhiChuTam += (u != GiaoDinhTamLuu.Count - 1) ? ", " : "]";
                        }

                        if (giaoDichD.ThucThiSua(GiaoDinhTamLuu) > 0)
                        {
                            Dictionary <string, object> dic1 = new Dictionary <string, object>();
                            dic1.Add("FormName", "Hệ thống");
                            dic1.Add("MaCho", row[0].ToString());
                            dic1.Add("NoiDung", GhiChuTam);
                            dic1.Add("LoaiKhachHang", 0);
                            dic1.Add("Ma", 0);
                            new D_LS_GIAODICH().ThemMoi(dic1);
                        }
                    }
                    else if (GiaoDinhTamLuu.Count == 0)
                    {
                        lstAPI.Add(aPI("Không tìm thấy hoàn", row[0].ToString(), row.Count > 1 ? row[1].ToString() : string.Empty, row.Count > 2 ? row[2].ToString() : string.Empty, row.Count > 7 ? row[7].ToString() : string.Empty, row.Count > 7 ? row[7].ToString() : string.Empty, row.Count > 3 ? long.Parse(row[3].ToString() == string.Empty ? "0" : row[3].ToString()) : 0, row.Count > 4 ? long.Parse(row[4].ToString() == string.Empty ? "0" : row[4].ToString()) : 0, row.Count > 5 ? long.Parse(row[5].ToString() == string.Empty ? "0" : row[5].ToString()) : 0, row.Count > 6 ? long.Parse(row[6].ToString() == string.Empty ? "0" : row[6].ToString()) : 0));
                    }
                    else
                    {
                        lstAPI.Add(aPI("Trên 2 giao dịch", row[0].ToString(), row.Count > 1 ? row[1].ToString() : string.Empty, row.Count > 2 ? row[2].ToString() : string.Empty, row.Count > 7 ? row[7].ToString() : string.Empty, row.Count > 7 ? row[7].ToString() : string.Empty, row.Count > 3 ? long.Parse(row[3].ToString() == string.Empty ? "0" : row[3].ToString()) : 0, row.Count > 4 ? long.Parse(row[4].ToString() == string.Empty ? "0" : row[4].ToString()) : 0, row.Count > 5 ? long.Parse(row[5].ToString() == string.Empty ? "0" : row[5].ToString()) : 0, row.Count > 6 ? long.Parse(row[6].ToString() == string.Empty ? "0" : row[6].ToString()) : 0));
                    }
                }

                #region Xóa
                var requestbody = new ClearValuesRequest();
                var request1    = SService.Spreadsheets.Values.Clear(requestbody, SpreadsheetId, range);
                var Drequest1   = request1.Execute();
                #endregion

                #region Thêm lại các dòng lỗi
                if (lstAPI.Count > 0)
                {
                    var valueRange = new ValueRange();

                    List <IList <object> > lstList = new List <IList <object> >();
                    foreach (APISheet aPI in lstAPI)
                    {
                        var objectList = new List <object>()
                        {
                            aPI.MaCho, aPI.DaiLy, aPI.CTV, aPI.PhiHoanDaiLy, aPI.GiaHoanDaiLy, aPI.PhiHoan, aPI.GiaHoan, aPI.GhiChu, aPI.GhiChuHeThong
                        };
                        lstList.Add(objectList);
                    }
                    valueRange.Values = lstList;

                    var appendRequest = SService.Spreadsheets.Values.Append(valueRange, SpreadsheetId, range);
                    appendRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum.USERENTERED;
                    var appendResponse = appendRequest.Execute();
                    lstAPI.Clear();
                }
                #endregion
            }
        }