示例#1
0
        static void Main(string[] args)
        {
            EventLogs eventLogs = new EventLogs();

            try
            {
                // requires using System.Configuration;
                string programName    = "PedidosConsole";
                var    sourceHostFile = Directory.GetCurrentDirectory() + @"\" + programName + @".dll.config";
                Console.WriteLine("¡Procesando pedidos (No cierre)!");
                // to load yourProgram.dll.config
                // With Single-file executables, all files are bundled in a single host file with the .exe extension.
                // When that file runs for the first time, it unpacks its contents to AppData\Local\Temp\.net\, in a new folder named for the application
                var targetHostFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).FilePath;
                // ignore when in debug mode in vs ide
                if (sourceHostFile != targetHostFile)
                {
                    File.Copy(sourceHostFile, targetHostFile, true);
                }

                string fecha = null;
                // string turno = null;
                if (args.Length != 0)
                {
                    Console.WriteLine("Ingrese Fecha y hora de turno(yyyy-mm-dd HH:MM) formato hora (24 horas)");
                    fecha = Console.ReadLine();
                    //Console.WriteLine("Ingrese Turno donde \n  1: 6 am a 2 pm \n  2: 2 pm a 10 pm, \n  3: 10 pm a 6 am \n  ");
                    //turno = Console.ReadLine();
                }

                //Console.WriteLine($"fecha {fecha}, {DateTime.Parse(fecha)}");

                string url      = ConfigurationSettings.AppSettings["URL_API"].ToString();
                string user     = ConfigurationSettings.AppSettings["USER"].ToString();
                string pass     = ConfigurationSettings.AppSettings["PASS"].ToString();
                string conexion = ConfigurationSettings.AppSettings["CONEXION"].ToString();
                string comp     = ConfigurationSettings.AppSettings["COMPANIA"].ToString();
                string database = ConfigurationSettings.AppSettings["DATABASE"].ToString();



                eventLogs.WriteEntry("Sincronizando Pedidos", EventLogEntryType.Information);

                Database databaseTools = new Database(database);
                //DataSet  ds = databaseTools.RunQuery("select top 1 id Id, IdCierre, IdTerceroVendedor,Factura,Placa,DineroTotal,PuntosTercero1 from Adm_Ventas");
                DataSet ds         = databaseTools.RunStoreProcedure("dbo.PedidosServices", fecha);
                string  TipoPedido = "";

                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    // PedidoModel pedido = new PedidoModel();
                    // MovtoPedidoModel movto = new MovtoPedidoModel();
                    using (PedidoModel pedido = new PedidoModel())
                    {
                        pedido.IdCo              = row["IdCo"].ToString();
                        pedido.IdTipoDocto       = row["IdTipoDocto"].ToString();
                        pedido.ConsecDocto       = int.Parse(row["ConsecDocto"].ToString());
                        pedido.IdFecha           = DateTime.Parse(row["IdFecha"].ToString());
                        pedido.IndEstado         = int.Parse(row["IndEstado"].ToString());
                        pedido.IndBackorder      = short.Parse(row["IndBackorder"].ToString());
                        pedido.IdTerceroFact     = row["IdTerceroFact"].ToString();
                        pedido.IdSucursalFact    = row["IdSucursalFact"].ToString();
                        pedido.IdTerceroRem      = row["IdTerceroRem"].ToString();
                        pedido.IdSucursalRem     = row["IdSucursalRem"].ToString();
                        pedido.IdTipoClienteFact = row["IdTipoClienteFact"].ToString();
                        pedido.IdCOFact          = row["IdCOFact"].ToString();
                        pedido.FechaEntrega      = DateTime.Parse(row["FechaEntrega"].ToString());
                        pedido.NumDiasEntrega    = int.Parse(row["NumDiasEntrega"].ToString());
                        pedido.IdMonedaDocto     = row["IdMonedaDocto"].ToString();
                        pedido.IdMonedaConv      = row["IdMonedaConv"].ToString();
                        pedido.TasaConv          = int.Parse(row["TasaConv"].ToString());
                        pedido.IdMonedaLocal     = row["IdMonedaLocal"].ToString();
                        pedido.TasaLocal         = int.Parse(row["TasaLocal"].ToString());
                        pedido.IdCondPago        = row["IdCondPago"].ToString();
                        pedido.IndImpresion      = int.Parse(row["IndImpresion"].ToString());
                        pedido.Notas             = row["Notas"].ToString();
                        pedido.IdPuntoEnvio      = row["IdPuntoEnvio"].ToString();
                        pedido.IdTerceroVendedor = row["IdTerceroVendedor"].ToString();
                        pedido.Contacto          = row["Contacto"].ToString();
                        pedido.Direccion1        = row["Direccion1"].ToString();
                        pedido.Pais              = row["Pais"].ToString();
                        pedido.Departamento      = row["Departamento"].ToString();
                        pedido.Ciudad            = row["Ciudad"].ToString();
                        pedido.Barrio            = row["Barrio"].ToString();
                        pedido.IndContacto       = row["IndContacto"].ToString();

                        using (MovtoPedidoModel movto = new MovtoPedidoModel())
                        {
                            movto.IdItem      = int.Parse(row["IdItem"].ToString());
                            movto.IdBodega    = row["IdBodega"].ToString();
                            movto.IdConcepto  = int.Parse(row["IdConcepto"].ToString());
                            movto.IdMotivo    = row["IdMotivo"].ToString();
                            movto.IndObsequio = int.Parse(row["IndObsequio"].ToString());
                            movto.IdCOMovto   = row["IdCOMovto"].ToString();
                            movto.IdUNMovto   = row["IdUNMovto"].ToString();
                            TipoPedido        = row["Pedido"].ToString();
                            if ("CosumoInterno".Equals(TipoPedido))
                            {
                                movto.IdCCostoMovto = row["IdCCostoMovto"].ToString();
                            }
                            movto.FechaEntregaMovto   = DateTime.Parse(row["FechaEntregaMovto"].ToString());
                            movto.NumDiasEntregaMovto = int.Parse(row["NumDiasEntregaMovto"].ToString());
                            movto.IdListaPrecios      = row["IdListaPrecios"].ToString();
                            movto.IdUnidadMedida      = row["IdUnidadMedida"].ToString();
                            string CantidadPunto = Double.Parse(row["CantPedidaBase"].ToString()).ToString(CultureInfo.InvariantCulture);
                            movto.CantPedidaBase         = CantidadPunto;
                            movto.PrecioUnitario         = Double.Parse(row["PrecioUnitario"].ToString());
                            movto.IndImpuestoAsumido     = int.Parse(row["IndImpuestoAsumido"].ToString());
                            movto.NotasMovto             = row["NotasMovto"].ToString();
                            movto.IndBackorderMovto      = int.Parse(row["IndBackorderMovto"].ToString());
                            movto.IndPrecio              = int.Parse(row["IndPrecio"].ToString());
                            movto.IdPuntoEnvioMovto      = row["IdPuntoEnvioMovto"].ToString();
                            movto.IdTerceroVendedorMovto = row["IdTerceroVendedorMovto"].ToString();

                            pedido.MovimientoPedido.Add(movto);

                            var JObjetApi = Task.Run(async() => await WebApiEE.CrearPedido(pedido, url, conexion, comp, user, pass)).GetAwaiter().GetResult();
                            Newtonsoft.Json.Linq.JArray Errores = JObjetApi["Errores"];

                            if (Errores.Count > 0)
                            {
                                eventLogs.WriteEntry($"Error {Errores}, IdItem: {pedido.MovimientoPedido[0].IdItem}, Tipo: {TipoPedido}, IdTerceroFact: {pedido.IdTerceroFact}, Cnatidad {pedido.MovimientoPedido[0].CantPedidaBase}", EventLogEntryType.Error);
                            }
                        }
                    }
                }



                //////Borrar
                ////thisDay = thisDay.AddDays(10);


                eventLogs.WriteEntry("Finalizando Sincronizacion Pedidos", EventLogEntryType.Information);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"{ex.Message}");
                eventLogs.WriteEntry(ex.Message, EventLogEntryType.Error);
            }
        }