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++; } } }
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 } }