コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: Servicio.cs プロジェクト: tonovarela/goepowerWS
        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";
            }
        }
コード例 #3
0
ファイル: Servicio.cs プロジェクト: tonovarela/goepowerWS
        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());
        }
コード例 #4
0
        /// <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);
            }
        }
コード例 #5
0
ファイル: Xml.cs プロジェクト: myrp-alexandre/ProdusisProject
        /// <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);
            }
        }