public static SchemaObjectReference GetSchemaObjectReference( this CommonTableExpression commonTableExpression, ILogger logger, SchemaFile file ) { var cteColumns = commonTableExpression .QueryExpression .GetFields(logger, file); if (commonTableExpression.Columns.Any()) { for (var i = 0; i < commonTableExpression.Columns.Count(); i++) { cteColumns[i].Name = commonTableExpression.Columns[i].Value; } } var cte = new Cte() { Identifier = commonTableExpression.ExpressionName.Value, File = file, Columns = cteColumns, }; var cteReference = new SchemaObjectReference() { Alias = commonTableExpression.ExpressionName.Value, Identifier = cte.GetQualifiedIdentfier(), Value = cte, }; return(cteReference); }
protected void CargarDetalleCliente(string cte) { ClienteDAO clienteDAO = new ClienteDAO(); this.Cliente = clienteDAO.ObtenerDetalle(cte); if (this.Cliente == null) { this.Cliente = new Cte() { Concepto = "", Agente = "", Condicion = "", DiasVencimiento = 0 }; } if (esTransferencia) { this.Cliente.Condicion = "Contado Transferencia"; } }
protected void ProcesarOrden(int idOrden) { this._parametroOrden = new AuthHeaderOrder() { CompanyID = this._conexion.CompanyID, MasterKey = this._conexion.MasterKey, OrderID = idOrden, ProducerID = this._conexion.ProducerID, Username = this._conexion.Username }; AuthReturnOrder result = this.client.GetOrder(this._parametroOrden); Order orden = result.Order; Job[] jobs = result.Jobs; VentaDAO venta_dao = new VentaDAO(); if (this.esFacturacionPedido && !orden.BillingMethodName.Contains("Facturación por pedido")) { Console.WriteLine($"La orden {orden.OrderID} no es Facturacion por pedido"); return; } //bool existeVenta = venta_dao.Buscar(orden.OrderID.ToString()); bool existeVenta = this.Existe(orden.OrderID.ToString()); if (existeVenta) { Console.WriteLine("La orden {0} ya existe", orden.OrderID.ToString()); return; } ClienteDAO clienteDAO = new ClienteDAO(); CtoCampoExtra cte = clienteDAO.BuscarClienteCampoExtra(orden.WebUserID.ToString()); string nombreContacto = string.Empty; string clave = String.Empty; switch (this._nombreTienda) { case "kfc": cte = new CtoCampoExtra(); cte.Clave = "18933"; clave = cte.Clave; CteCto contacto = clienteDAO.BuscarContacto(orden.WebUserID); if (contacto != null) { nombreContacto = contacto.Nombre; } this.Cliente = new Cte() { Concepto = "SAAM KFC", Agente = "C.R.C", Condicion = "60 DIAS", DiasVencimiento = 60, }; break; case "lsm": clave = cte != null ? cte.Clave : "23565"; this.CargarDetalleCliente(clave); break; default: clave = cte != null ? cte.Clave : "16776"; this.CargarDetalleCliente(clave); break; } DateTime time = DateTime.Now; DateTime timeVencimiento = time.AddDays(this.Cliente.DiasVencimiento); #region RegistrarEnBitacoraFacturacion this.registrarEnBitacoraFacturacion(result); #endregion #region Llenado de Venta Venta venta = new Venta() { Empresa = "LITO", Contacto = orden.WebUserID, ContactoNombre = nombreContacto.Length > 0 ? nombreContacto : null, Mov = "Factura Electronica", FechaEmision = new DateTime(time.Year, time.Month, time.Day), //Concepto = $"SAAM {this._nombreTienda.ToUpper()}", Concepto = this.Cliente.Concepto, Moneda = "Pesos", TipoCambio = 1.0, Usuario = "MTOVAR", Referencia = orden.OrderID.ToString(), OrdenCompra = "", Estatus = "SINAFECTAR", Cliente = clave, Almacen = "AL PT", Observaciones = this.Cliente.Concepto, Condicion = this.esTransferencia ? "Contado Transferencia" : this.Cliente.Condicion, Vencimiento = new DateTime(timeVencimiento.Year, timeVencimiento.Month, timeVencimiento.Day), AgenteComision = agenteComision.HasValue ? agenteComision : null, Agente = this.Cliente.Agente, //Agente = this.agente, //"A.L.P.", //Importe = Decimal.Parse((orden.TotalPrice + orden.ShippingPrice).ToString()), //Impuestos = Decimal.Parse(orden.Tax1.ToString()), Sucursal = 0, SucursalOrigen = 0, Atencion = "", AtencionTelefono = "", Clase = "", Directo = true, OrdenID = orden.OrderID.ToString() }; #endregion if (this.Existe(orden.OrderID.ToString())) { Console.WriteLine("La orden {0} ya existe", orden.OrderID.ToString()); return; } int id_venta = venta_dao.Insertar(venta); int x = 1; #region Llenado de VentaD foreach (Job job in jobs) { int _cantidad = job.Quantity; if (job.Records > 1) { _cantidad = job.Records; } VentaD ventad = new VentaD() { ID = id_venta, Renglon = x * 2048, RenglonID = x, SubCuenta = $"P{x++}", Cantidad = _cantidad, Almacen = "AL PT", Articulo = job.SKU, Unidad = "pza", Precio = (job.TotalPrice / _cantidad), Impuesto1 = 16, DescripcionExtra = job.JobName, RenglonTipo = 'N' }; venta_dao.InsertarDetalle(ventad); } #endregion #region Costo por pedido cuando aplique //if (orden.OrderFee > 0) //{ // VentaD detalleEnvio = new VentaD() // { // ID = id_venta, // DescripcionExtra = "Costo por pedido", // RenglonID = x, // RenglonTipo = 'N', // Renglon = x * 2048, // SubCuenta = $"P{x++}", // Articulo = "CostoPedido", // Precio = Math.Round(orden.OrderFee, 2), // Cantidad = 1, // Impuesto1 = 16, // Unidad = "Servicio", // Almacen = "AL PT" // }; // venta_dao.InsertarDetalle(detalleEnvio); //} #endregion #region Envio if (orden.ShippingPrice > 0) { VentaD detalleEnvio = new VentaD() { ID = id_venta, DescripcionExtra = "Gastos de Envio", RenglonID = x, RenglonTipo = 'N', Renglon = x * 2048, SubCuenta = $"P{x}", Articulo = "EN", Precio = Math.Round(orden.ShippingPrice, 2), Cantidad = 1, Impuesto1 = 16, Unidad = "Servicio", Almacen = "AL PT" }; venta_dao.InsertarDetalle(detalleEnvio); } #endregion DAO.EstadodeCuentaSAAM.BitacoraDAO bitacoraDAO = new DAO.EstadodeCuentaSAAM.BitacoraDAO(); bitacoraDAO.Insertar(new BitacoraIntelisis() { fecha_registro = DateTime.Now, numero_orden = orden.OrderID, total = Decimal.Parse((orden.TotalPrice + orden.ShippingPrice).ToString()) }); //this.CambioStatusOrden(orden.OrderID.ToString()); }
/// <summary> /// Importa os dados de xml de manifestos na pasta padrão /// </summary> public bool LerPreManifesto(string nomeArquivo) { try { XmlDocument manifesto = new XmlDocument(); manifesto.Load(nomeArquivo); var ValueResult = manifesto.GetElementsByTagName("Value"); var TextResult = manifesto.GetElementsByTagName("TextValue"); AcessoBD abd = new AcessoBD(); var ctesNoXml = new List <string>(); for (int i = 5; i < ValueResult.Count - 4; i = i + 6) { ctesNoXml.Add(ValueResult[i].InnerText); } var quantCtes = ctesNoXml.Distinct().Count(); Manifestos lido = new Manifestos() { numeroManifesto = int.Parse(nomeArquivo.Replace(PastasXml.Default.PastaPreManifestos + "\\", "").Replace(".xml", "")), VolumesManifesto = (int)double.Parse(ValueResult[ValueResult.Count - 4].InnerText.Replace('.', ',')), pesoManifesto = double.Parse(ValueResult[ValueResult.Count - 2].InnerText.Replace('.', ',')), quantCtesManifesto = quantCtes }; abd.CadastrarManifesto(lido); int cte; int indexNF = 0; string fornecedor; List <Cte> ctesNoPreManifesto = new List <Cte>(); for (int i = 5; i < ValueResult.Count - 4; i = i + 6) { cte = int.Parse(ValueResult[i].InnerText.Replace('/', ' ')); Cte cteDaVez = ctesNoPreManifesto.Where(x => x.numeroCte == cte).Select(x => x).FirstOrDefault(); if (cteDaVez == null) { ctesNoPreManifesto.Add(new Cte(cte, TextResult[indexNF].InnerText.TrimStart('0'))); } else { cteDaVez.notasCte += "\\" + TextResult[indexNF].InnerText.TrimStart('0'); } fornecedor = ValueResult[i - 5].InnerText; indexNF++; } foreach (var item in ctesNoPreManifesto) { abd.CadastrarCte(new Cte(item.numeroCte, item.notasCte)); AlterarNfs(item.notasCte, item.numeroCte, fornecedor); // alterado para novo cte CriarCteManifesto(item.numeroCte, lido.numeroManifesto); } return(true); } catch { return(false); } }
/// <summary> /// Importa os dados de xml de manifestos na pasta padrão /// </summary> public bool LerPreManifesto(string nomeArquivo) { try { XmlDocument manifesto = new XmlDocument(); manifesto.Load(nomeArquivo); var ValueResult = manifesto.GetElementsByTagName("Value"); var TextResult = manifesto.GetElementsByTagName("TextValue"); AcessoBD abd = new AcessoBD(); NotasFiscais nfLida = new NotasFiscais(); var ctesNoXml = new List <string>(); //------------------------- CADASTRO PRE MANIFEST0 ------------------ for (int i = 5; i < ValueResult.Count - 4; i += 6) { ctesNoXml.Add(ValueResult[i].InnerText); } Manifestos lido = new Manifestos() { numeroManifesto = int.Parse(nomeArquivo.Replace(PastasXml.Default.PastaPreManifestos + "\\", "").Replace(".xml", "")), VolumesManifesto = (int)double.Parse(ValueResult[ValueResult.Count - 4].InnerText.Replace('.', ',')), pesoManifesto = double.Parse(ValueResult[ValueResult.Count - 2].InnerText.Replace('.', ',')), quantCtesManifesto = ctesNoXml.Distinct().Count() }; abd.CadastrarManifesto(lido); //------------------------- CADASTRO CTES ------------------ int cte; int indexNF = 0; string fornecedor = ""; List <Cte> ctesNoPreManifesto = new List <Cte>(); for (int i = 5; i < ValueResult.Count - 4; i += 6) { cte = int.Parse(ValueResult[i].InnerText.Replace('/', ' ')); Cte cteDaVez = ctesNoPreManifesto.Where(x => x.numeroCte == cte).Select(x => x).FirstOrDefault(); if (cteDaVez == null) { ctesNoPreManifesto.Add(new Cte(cte, TextResult[indexNF].InnerText.TrimStart('0'))); } else { cteDaVez.notasCte += "\\" + TextResult[indexNF].InnerText.TrimStart('0'); } fornecedor = ValueResult[i - 5].InnerText; indexNF++; } foreach (var item in ctesNoPreManifesto) { abd.CadastrarCte(new Cte(item.numeroCte, item.notasCte)); CriarCteManifesto(item.numeroCte, lido.numeroManifesto); } //------------------------- CADASTRO/ALTERAÇÃO DE NF'S E EXPORTAÇÃO CROSS ------------------ indexNF = 0; for (int i = 5; i < ValueResult.Count - 4; i += 6) { nfLida.numeroNF = TextResult[indexNF].InnerText.TrimStart('0'); nfLida.fornecedorNF = ValueResult[i - 5].InnerText; nfLida.clienteNF = ValueResult[i - 4].InnerText; nfLida.CteNovoNF = abd.GetNovoCtePorNum(int.Parse(ValueResult[i].InnerText.Replace('/', ' '))).Max(x => x.idCte); nfLida.skuNF = 0; nfLida.volumesNF = int.Parse(ValueResult[i - 3].InnerText.Replace(".00", "")); //volume corrigido InserirNotaFiscal(nfLida); indexNF++; ExportarXmlCrossDocking(ValueResult[i].InnerText.Replace('/', ' '), nfLida.fornecedorNF); } return(true); } catch (System.Exception) { return(false); } }