コード例 #1
0
 public abstract List <Pedido> ConsultarPedidos(int IDEmpresa, TipoConsultaPedido TipoConsultaPedido,
                                                string IDUsuario, int?IDDireccionEntrega, int?IDSucursal,
                                                DateTime?FechaCompromisoInicio, DateTime?FechaCompromisoFin, DateTime?FechaSumistroInicio, DateTime?FechaSuministroFin, int?IDZona,
                                                int?IDRutaOrigen, int?IDRutaBoletin, int?IDRutaSuministro, int?IDEstatusPedido, string EstatusPedidoDescripcion, int?IDEstatusBoletin, string EstatusBoletin,
                                                int?IDEstatusMovil, string EstatusMovilDescripcion, int?IDAutotanque, int?IDAutotanqueMovil, string SerieRemision, int?FolioRemision,
                                                string SerieFactura, int?FolioFactura, int?IDZonaLecturista, int?TipoPedido, int?TipoServicio,
                                                int?AñoPed, int?IDPedido, string PedidoReferencia);
コード例 #2
0
    public List <Pedido> ConsultarPedidos(int IDEmpresa, Fuente FuenteDatos, TipoConsultaPedido TipoConsultaPedido,
                                          bool Portatil, string IDUsuario, int?IDDireccionEntrega, int?IDSucursal,
                                          DateTime?FechaCompromisoIncicio, DateTime?FechaCompromisoFin, DateTime?FechaSuministroInicio, DateTime?FechaSuministroFin, int?IDZona,
                                          int?IDRutaOrigen, int?IDRutaBoletin, int?IDRutaSuministro, int?IDEstatusPedido, string EstatusPedidoDescripcion, int?IDEstatusBoletin, string EstatusBoletin,
                                          int?IDEstatusMovil, string EstatusMovilDescripcion, int?IDAutotanque, int?IDAutotanqueMovil, string SerieRemision,
                                          int?FolioRemision, string SerieFactura, int?FolioFactura, int?IDZonaLecturista, int?TipoPedido, int?TipoServicio,
                                          int?AñoPed, int?IDPedido, string PedidoReferencia)
    {
        Fuente locFuenteDatos = FuenteDatos;

        if (Portatil)
        {
            locFuenteDatos = Fuente.SigametPortatil;
        }

        Consulta consulta = new ConsultaCreator().FactoryMethod(IDEmpresa, locFuenteDatos);

        List <Pedido> pedidos = new List <Pedido>();

        try
        {
            pedidos = consulta.ConsultarPedidos(IDEmpresa, TipoConsultaPedido,
                                                IDUsuario, IDDireccionEntrega, IDSucursal,
                                                FechaCompromisoIncicio, FechaCompromisoFin, FechaSuministroInicio, FechaSuministroFin, IDZona,
                                                IDRutaOrigen, IDRutaBoletin, IDRutaSuministro, IDEstatusPedido, EstatusPedidoDescripcion, IDEstatusBoletin, EstatusBoletin,
                                                IDEstatusMovil, EstatusMovilDescripcion, IDAutotanque, IDAutotanqueMovil, SerieRemision,
                                                FolioRemision, SerieFactura, FolioFactura, IDZonaLecturista, TipoPedido, TipoServicio,
                                                AñoPed, IDPedido, PedidoReferencia);

            if (!consulta.Success)
            {
                throw new Exception(consulta.Message + " " + consulta.InternalException);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }

        return(pedidos);
    }
コード例 #3
0
        public override List <Pedido> ConsultarPedidos(int IDEmpresa, TipoConsultaPedido TipoConsultaPedido,
                                                       string IDUsuario, int?IDDireccionEntrega, int?IDSucursal,
                                                       DateTime?FechaCompromisoInicio, DateTime?FechaCompromisoFin, DateTime?FechaSumistroInicio, DateTime?FechaSuministroFin, int?IDZona,
                                                       int?IDRutaOrigen, int?IDRutaBoletin, int?IDRutaSuministro, int?IDEstatusPedido, string EstatusPedidoDescripcion, int?IDEstatusBoletin, string EstatusBoletin,
                                                       int?IDEstatusMovil, string EstatusMovilDescripcion, int?IDAutotanque, int?IDAutotanqueMovil, string SerieRemision, int?FolioRemision,
                                                       string SerieFactura, int?FolioFactura, int?IDZonaLecturista, int?TipoPedido, int?TipoServicio,
                                                       int?AñoPed, int?IDPedido, string PedidoReferencia)
        {
            DataManager.DataManager datos   = new DataManager.DataManager(App.CadenaConexion(IDEmpresa), App.ProveedorDatos(IDEmpresa));
            DbDataReader            reader  = null;
            List <Pedido>           pedidos = new List <Pedido>();

            try
            {
                List <DbParameter> listParams = new List <DbParameter>();
                DbCommand          cmd        = datos.Connection.CreateCommand();

                if (IDZona.HasValue)
                {
                    DbParameter Zona = cmd.CreateParameter();
                    Zona.DbType        = DbType.Int32;
                    Zona.ParameterName = "@Celula";
                    Zona.Value         = IDZona.Value;
                    listParams.Add(Zona);
                }

                if (FechaCompromisoInicio.HasValue)
                {
                    DbParameter FCompromisoInicio = cmd.CreateParameter();
                    FCompromisoInicio.DbType        = DbType.DateTime;
                    FCompromisoInicio.ParameterName = "@FCompromiso";
                    FCompromisoInicio.Value         = FechaCompromisoInicio.Value;
                    listParams.Add(FCompromisoInicio);
                }

                if (EstatusBoletin != null && EstatusBoletin.Length > 0)
                {
                    DbParameter estatusBoletin = cmd.CreateParameter();
                    estatusBoletin.DbType        = DbType.String;
                    estatusBoletin.ParameterName = "@StatusBoletin";
                    estatusBoletin.Value         = EstatusBoletin;
                    listParams.Add(estatusBoletin);
                }

                if (IDRutaOrigen.HasValue)
                {
                    DbParameter RutaOrigen = cmd.CreateParameter();
                    RutaOrigen.DbType        = DbType.String;
                    RutaOrigen.ParameterName = "@Ruta";
                    RutaOrigen.Value         = IDRutaOrigen;
                    listParams.Add(RutaOrigen);
                }

                reader = datos.Data.LoadData("spSCConsultaBoletinPortatil", CommandType.StoredProcedure, listParams.ToArray());


                List <string> lstLlaves = new List <string>();

                while (reader.Read())
                {
                    lstLlaves.Add(reader["Pedido"].ToString().Trim());
                }
                reader.Close();

                System.Threading.Tasks.Parallel.ForEach(lstLlaves, s => pedidos.Add(new PedidoCreator().FactoryMethod(IDEmpresa, IDDireccionEntrega, Fuente.SigametPortatil, AñoPed, IDZona, null, s, IDUsuario)));
                this.Success = true;
            }
            catch (Exception ex)
            {
                StackTrace stackTrace = new StackTrace();
                this.Success           = false;
                this.Message           = "Clase :" + this.GetType().Name + "\n\r" + "Metodo :" + stackTrace.GetFrame(0).GetMethod().Name + "\n\r" + "Error :" + ex.Message;
                this.internalException = ex;

                stackTrace = null;
            }
            finally
            {
                datos.Data.CloseConnection();
            }
            return(pedidos);
        }
コード例 #4
0
        public override List <Pedido> ConsultarPedidos(int IDEmpresa, TipoConsultaPedido TipoConsultaPedido,
                                                       string IDUsuario, int?IDDireccionEntrega, int?IDSucursal,
                                                       DateTime?FechaCompromisoInicio, DateTime?FechaCompromisoFin, DateTime?FechaSuministroInicio, DateTime?FechaSuministroFin, int?IDZona,
                                                       int?IDRutaOrigen, int?IDRutaBoletin, int?IDRutaSuministro, int?IDEstatusPedido, string EstatusPedidoDescripcion, int?IDEstatusBoletin, string EstatusBoletin,
                                                       int?IDEstatusMovil, string EstatusMovilDescripcion, int?IDAutotanque, int?IDAutotanqueMovil, string SerieRemision, int?FolioRemision,
                                                       string SerieFactura, int?FolioFactura, int?IDZonaLecturista, int?TipoPedido, int?TipoServicio,
                                                       int?AñoPed, int?IDPedido, string PedidoReferencia)
        {
            DynamicsCRMPedidos.Service1Client pedidoCliente = new DynamicsCRMPedidos.Service1Client();

            List <DynamicsCRMPedidos.resultado> resultados;

            List <Pedido>           pedidos = new List <Pedido>();
            List <int>              lstIdsDireccionesEntrega = new List <int>();
            List <DireccionEntrega> lstDireccionesEntrega    = new List <DireccionEntrega>();

            int idEstatusPedido = IDEstatusPedido.HasValue ? IDEstatusPedido.Value : 0;

            //TODO: Agregar parámetro
            string Usuario = string.Empty;

            try
            {
                resultados = pedidoCliente.get_pedidos(FechaCompromisoInicio, FechaCompromisoFin, FechaSuministroInicio,
                                                       FechaSuministroFin, IDDireccionEntrega, IDZona, IDRutaOrigen, IDRutaBoletin, IDRutaSuministro,
                                                       idEstatusPedido, IDEstatusMovil, IDAutotanqueMovil, IDEmpresa, SerieRemision,
                                                       FolioRemision, SerieFactura, FolioFactura, IDZonaLecturista, TipoPedido, TipoServicio);

                foreach (DynamicsCRMPedidos.resultado resultado in resultados)
                {
                    if (resultado.OperacionExitosa)
                    {
                        PedidoCRMDatos pedido = new PedidoCRMDatos(IDEmpresa, IDDireccionEntrega, Fuente.CRM, AñoPed, IDZona, IDPedido, PedidoReferencia, Usuario);

                        if (resultado.itssa_pedido != null)
                        {
                            pedido.AnioPed = resultado.itssa_pedido.itssa_aopedido;
                            pedido.IDZona  = resultado.itssa_pedido.itssa_zona.itssa_idzona;

                            if (pedido.IDZona.HasValue)
                            {
                                pedido.Zona             = new ZonaCreator().FactoryMethod(Fuente.CRM);
                                pedido.Zona.IDZona      = pedido.IDZona.Value;
                                pedido.Zona.Descripcion = resultado.itssa_pedido.itssa_zona.itssa_name; //Se usó el CAMPO ITSSA_NAME, debería contener la descripción de la zona
                            }

                            pedido.IDPedido         = resultado.itssa_pedido.itssa_iddepedido;
                            pedido.PedidoReferencia = resultado.itssa_pedido.itssa_pedidoreferencia;

                            if (resultado.itssa_pedido.itssa_tipocargo != null)
                            {
                                pedido.IDTipoCargo = resultado.itssa_pedido.itssa_tipocargo.itssa_idtipocargo;
                                pedido.TipoCargo   = resultado.itssa_pedido.itssa_tipocargo.itssa_name;
                            }

                            if (resultado.itssa_pedido.itssa_tipodepedido != null)
                            {
                                pedido.IDTipoPedido = resultado.itssa_pedido.itssa_tipodepedido.itssa_idtipopedido;
                                pedido.TipoPedido   = resultado.itssa_pedido.itssa_tipodepedido.itssa_name;
                            }

                            if (resultado.itssa_pedido.itssa_tipodeservicio != null)
                            {
                                pedido.IDTipoServicio = resultado.itssa_pedido.itssa_tipodeservicio.itssa_idtipodeservicio;
                                pedido.TipoServicio   = resultado.itssa_pedido.itssa_tipodeservicio.itssa_name;
                            }

                            if (resultado.itssa_pedido.itssa_estatusdepedidos != null)
                            {
                                pedido.IDEstatusPedido = resultado.itssa_pedido.itssa_estatusdepedidos.itssa_idestatusdelpedido;
                                pedido.EstatusPedido   = resultado.itssa_pedido.itssa_estatusdepedidos.itssa_name;
                            }

                            if (resultado.itssa_pedido.itssa_tipocobro != null)
                            {
                                pedido.IDFormaPago = resultado.itssa_pedido.itssa_tipocobro.itssa_idtipocobro;
                                pedido.FormaPago   = resultado.itssa_pedido.itssa_tipocobro.itssa_name;
                            }

                            pedido.RutaOrigen = new RutaCreator().FactoryMethod(Fuente.CRM, IDEmpresa,
                                                                                (resultado.itssa_pedido.itssa_rutaorigen != null) ? resultado.itssa_pedido.itssa_rutaorigen.itssa_idruta : null,
                                                                                (resultado.itssa_pedido.itssa_rutaorigen != null) ? resultado.itssa_pedido.itssa_rutaorigen.itssa_idruta : null,
                                                                                (resultado.itssa_pedido.itssa_rutaorigen != null) ? resultado.itssa_pedido.itssa_rutaorigen.itssa_name : "");

                            //if (resultado.itssa_pedido != null)
                            //{
                            //    pedido.IDDireccionEntrega = resultado.itssa_pedido.itssa_iddireccindeentrega.Value;

                            //    Consulta consultaDirEnt = new ConsultaCreator().FactoryMethod(IDEmpresa, Fuente.CRM);
                            //    List<DireccionEntrega> direccionesEntrega = new List<DireccionEntrega>();

                            //    pedido.DireccionEntrega = consultaDirEnt.BusquedaDireccionEntrega(pedido.IDDireccionEntrega, IDEmpresa, null, null, null,
                            //            null, null, null, null, null,
                            //            null, null, null, null, null,
                            //            Usuario, null, IDAutotanque, null)[0];
                            //}

                            pedido.IDDireccionEntrega = 3;//resultado.itssa_pedido.itssa_iddireccindeentrega.Value;
                            lstIdsDireccionesEntrega.Add(resultado.itssa_pedido.itssa_iddireccindeentrega.Value);

                            pedido.FAlta         = resultado.itssa_pedido.itssa_falta;
                            pedido.FCompromiso   = resultado.itssa_pedido.itssa_fcompromiso;
                            pedido.Observaciones = resultado.itssa_pedido.itssa_observaciones;

                            if (pedido.DireccionEntrega != null && pedido.DireccionEntrega.Georreferencia != null)
                            {
                                pedido.Georreferencia = new Negocio.Georreferencia();
                                pedido.Georreferencia = pedido.DireccionEntrega.Georreferencia;
                            }


                            if (resultado.itssa_pedido.itssa_prioridadpedido != null)
                            {
                                pedido.IDPrioridadPedido = resultado.itssa_pedido.itssa_prioridadpedido.itssa_idprioridadpedido;
                                pedido.PrioridadPedido   = resultado.itssa_pedido.itssa_prioridadpedido.itssa_name;
                            }

                            pedido.IDAutotanque      = resultado.itssa_pedido.itssa_autotanque;
                            pedido.IDMovil           = resultado.itssa_pedido.itssa_idsgc;
                            pedido.IDAutotanqueMovil = resultado.itssa_pedido.itssa_autotanquemovil;
                            pedido.AnioAtt           = resultado.itssa_pedido.itssa_anoatt;
                            pedido.IDFolioAtt        = resultado.itssa_pedido.itssa_folio;
                            pedido.IDEstatusMovil    = resultado.itssa_pedido.itssa_statusmovil.itssa_idstatusmovil;
                            pedido.EstatusMovil      = resultado.itssa_pedido.itssa_statusmovil.itssa_name;
                            pedido.FStatusMovil      = resultado.itssa_pedido.itssa_factualizacionestatusmovil;

                            pedido.RutaBoletin = new RutaCreator().FactoryMethod(Fuente.CRM, IDEmpresa,
                                                                                 (resultado.itssa_pedido.itssa_rutaboletin != null) ? resultado.itssa_pedido.itssa_rutaboletin.itssa_idruta : null,
                                                                                 (resultado.itssa_pedido.itssa_rutaboletin != null) ? resultado.itssa_pedido.itssa_rutaboletin.itssa_idruta : null,
                                                                                 (resultado.itssa_pedido.itssa_rutaboletin != null) ? resultado.itssa_pedido.itssa_rutaboletin.itssa_name : null);

                            pedido.RutaSuministro = new RutaCreator().FactoryMethod(Fuente.CRM, IDEmpresa,
                                                                                    (resultado.itssa_pedido.itssa_rutasuministro != null) ?resultado.itssa_pedido.itssa_rutasuministro.itssa_idruta : null,
                                                                                    (resultado.itssa_pedido.itssa_rutasuministro != null) ?resultado.itssa_pedido.itssa_rutasuministro.itssa_idruta : null,
                                                                                    (resultado.itssa_pedido.itssa_rutasuministro != null) ? resultado.itssa_pedido.itssa_rutasuministro.itssa_name: null);

                            if (resultado.itssa_pedido.itssa_motivocancelacion != null)
                            {
                                pedido.IDMotivoCancelacion      = resultado.itssa_pedido.itssa_motivocancelacion.itssa_idmotivocancelacion.Value;
                                pedido.MotivoCancelacion        = resultado.itssa_pedido.itssa_motivocancelacion.itssa_name;
                                pedido.ObservacionesCancelacion = resultado.itssa_pedido.itssa_obsermotivocancel;
                            }

                            pedido.SerieRemision      = resultado.itssa_pedido.itssa_serieremision;
                            pedido.FolioRemision      = resultado.itssa_pedido.itssa_folioremision;
                            pedido.NumeroImpresiones  = resultado.itssa_pedido.itssa_numeroimpresion;
                            pedido.FSuministro        = resultado.itssa_pedido.itssa_fsuministro;
                            pedido.IDCartera          = resultado.itssa_pedido.itssa_cartera.itssa_idcartera;
                            pedido.CarteraDescripcion = resultado.itssa_pedido.itssa_cartera.itssa_name;
                            pedido.SerieFactura       = resultado.itssa_pedido.itssa_seriefactura;
                            pedido.FolioFactura       = resultado.itssa_pedido.itssa_foliofactura;
                            pedido.Importe            = resultado.itssa_pedido.itssa_sumadeimporteslineas;
                            pedido.Impuesto           = resultado.itssa_pedido.itssa_sumadeimpuestodelineas;
                            pedido.Total = resultado.itssa_pedido.itssa_sumadetotalesdelineas;
                            pedido.Saldo = resultado.itssa_pedido.itssa_saldo;

                            pedido.URLCRM = resultado.itssa_pedido.itssa_urlPedido;

                            pedido.DetallePedido = new List <DetallePedido>();

                            foreach (DynamicsCRMPedidos.itssa_detalledelpedido itssaDetallePedido in resultado.itssa_pedido.listadetalles)
                            {
                                DetallePedido detallePedido = new DetallePedido();

                                if (itssaDetallePedido.itssa_producto != null && itssaDetallePedido.itssa_producto.itssa_idproducto.HasValue)
                                {
                                    detallePedido.Producto             = new Producto();
                                    detallePedido.Producto.IDProducto  = itssaDetallePedido.itssa_producto.itssa_idproducto.Value;
                                    detallePedido.Producto.Descripcion = itssaDetallePedido.itssa_producto.itssa_name;
                                }

                                detallePedido.GUID = itssaDetallePedido.itssa_detalledelpedidoid;

                                if (itssaDetallePedido.itssa_cantidad.HasValue)
                                {
                                    detallePedido.CantidadSolicitada = itssaDetallePedido.itssa_cantidad.Value;
                                }

                                if (itssaDetallePedido.itssa_cantidad_liquidacion.HasValue)
                                {
                                    detallePedido.CantidadSurtida = itssaDetallePedido.itssa_cantidad_liquidacion.Value;
                                }

                                if (itssaDetallePedido.itssa_itsdetalleprecioporempresa.HasValue)
                                {
                                    detallePedido.PrecioAplicable = itssaDetallePedido.itssa_itsdetalleprecioporempresa.Value;
                                }

                                if (itssaDetallePedido.itssa_itsdetallevalorimpuesto.HasValue)
                                {
                                    detallePedido.ImpuestoAplicable = itssaDetallePedido.itssa_itsdetallevalorimpuesto.Value;
                                }

                                if (itssaDetallePedido.itssa_itsdescuentopordireccionentrega.HasValue)
                                {
                                    detallePedido.DescuentoAplicable = itssaDetallePedido.itssa_itsdescuentopordireccionentrega.Value;
                                }

                                if (itssaDetallePedido.itssa_descuentoaplicado_liquidacion.HasValue)
                                {
                                    detallePedido.DescuentoAplicado = itssaDetallePedido.itssa_descuentoaplicado_liquidacion.Value;
                                }

                                if (itssaDetallePedido.itssa_total.HasValue)
                                {
                                    detallePedido.Total = itssaDetallePedido.itssa_total.Value;
                                }

                                if (itssaDetallePedido.itssa_precio_liquidacion.HasValue)
                                {
                                    detallePedido.Precio = itssaDetallePedido.itssa_precio_liquidacion.Value;
                                }

                                if (itssaDetallePedido.itssa_importe_liquidacion.HasValue)
                                {
                                    detallePedido.Importe = itssaDetallePedido.itssa_importe_liquidacion.Value;
                                }

                                if (itssaDetallePedido.itssa_impuesto_liquidado.HasValue)
                                {
                                    detallePedido.Impuesto = itssaDetallePedido.itssa_impuesto_liquidado.Value;
                                }

                                pedido.DetallePedido.Add(detallePedido);
                            }

                            pedidos.Add(pedido);
                        }

                        // texis
                        System.Threading.Tasks.Parallel.ForEach(lstIdsDireccionesEntrega, s => ConsultarDirecciones(s, IDEmpresa, Usuario, IDAutotanque, lstDireccionesEntrega));
                        System.Threading.Tasks.Parallel.ForEach(pedidos, s => s.DireccionEntrega = lstDireccionesEntrega.Find(x => x.IDDireccionEntrega == s.IDDireccionEntrega));
                    }
                    else
                    {
                        /*
                         * direccionEntrega = new DireccionEntregaCRMDatos();
                         * direccionEntrega.Success = false;
                         *
                         * StringBuilder sbExc = new StringBuilder();
                         *
                         * sbExc.AppendLine("ERROR EN DYNAMICS CRM");
                         *
                         * if (resultado.DireccionEntrega != null)
                         * {
                         *  if (resultado.DireccionEntrega.itssa_iddirecciondeentrega.HasValue)
                         *  {
                         *      sbExc.Append("consultando registro dirección de entrega con ID ");
                         *      sbExc.Append(resultado.DireccionEntrega.itssa_iddirecciondeentrega.Value.ToString());
                         *  }
                         * }
                         *
                         * if (resultado.Excepcion != null && resultado.Excepcion.Length > 0)
                         * {
                         *  sbExc.AppendLine("MENSAJE DE DYNAMICS CRM:");
                         *  sbExc.AppendLine(resultado.Observaciones);
                         * }
                         * else
                         * {
                         *  sbExc.AppendLine("EXCEPCIÓN NO CONTROLADA POR DYNAMICS CRM!");
                         * }
                         *
                         * direccionEntrega.Message = sbExc.ToString();
                         *
                         * clientes.Add(direccionEntrega);
                         */
                    }
                    this.Success = true;
                }
            }
            catch (Exception ex)
            {
                StackTrace stackTrace = new StackTrace();

                this.Success           = false;
                this.Message           = "Clase :" + this.GetType().Name + "\n\r" + "Metodo :" + stackTrace.GetFrame(0).GetMethod().Name + "\n\r" + "Error :" + ex.Message;
                this.internalException = ex;

                stackTrace = null;
            }

            return(pedidos);
        }