Ejemplo n.º 1
0
        public List<iEntidad> pasteTo(DataTable dt, DataTable dt2)
        {
            List<iEntidad> res = new List<iEntidad>();

            foreach (DataRow dr in dt.Rows)
            {
                Pedido aux = new Pedido();
                ManejaProducto manejaProducto = new ManejaProducto();
                List<Producto> producto = new List<Producto>();
                aux.Id = (int)dr["IdPedido"];
                foreach (DataRow dr2 in dt2.Rows)
                {
                    if ((int)dr["IdPedido"] == (int)dr2["IdPedido"])
                    {
                        aux.Fecha = (DateTime)dr2["Fecha"];
                        aux.Cantidad = (int)dr2["Cantidad"];
                        Producto popo = (Producto)manejaProducto.buscaPorId((int)dr2["IdProducto"]);
                        popo.Stock = (int)dr2["Cantidad"];
                        producto.Add(popo);
                    }
                }
                if(producto.Count > 0)
                    aux.Proveedor = producto[0].Proveedor;
                aux.Productos = producto;                
                res.Add(aux);
            }
            return res;
        }
Ejemplo n.º 2
0
        public static void actualizarStock(DetallePedido detPedido, SqlConnection con, SqlTransaction trans, Pedido pedido, List<Producto> productosConPocaMP)
        {
            DataTable ProductosIntermedio;
            DataTable MateriaPrima;
            DataTable DetallePlan;
            int idProductoFinal = 0;
            int idProductoIntermedio = 0;
            double cantidad = 0;

            idProductoFinal = detPedido.producto.idProducto;//OBTENEMOS EL ID DEL PRODUCTO FINAL
            cantidad = detPedido.cantidad;//OBTENEMOS LA CANTIDAD DE PRODUCTOS
            if (ProductoDAO.verificarProductoPlanificado(pedido.fechaNecesidad.Date, idProductoFinal, con,trans) == true)//PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE
            {
                DetallePlan = DetallePlanProduccionDAO.GetDetallePlanXProducto(idProductoFinal, pedido.fechaNecesidad.Date,con, trans);//OBTENEMOS LOS DATOS DEL DETALLE DEL PLAN

                actualizarDetallePlanYPedidoXPlan(DetallePlan, pedido.idPedido, con, trans, cantidad);

                MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal,trans,con);//CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS
                DataTable MateriaPrimaXIntermedio = new DataTable();
                ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal,con,trans);//CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO

                obtenerMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans, productosConPocaMP);
            }
            else
            {
                if (ProductoDAO.verificarPlanSinProducto(pedido.fechaNecesidad.Date, idProductoFinal, con, trans) == true)//PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE
                {
                    Producto prodNuevo = new Producto();
                    prodNuevo.idProducto = idProductoFinal;
                    DetallePlanProduccion detallePlanProduccion = new DetallePlanProduccion()
                    {
                        fechaProduccion = pedido.fechaNecesidad,
                        idPlan = PlanMaestroProduccionDAO.obtenerIdPlan(pedido.fechaNecesidad.Date),
                        cantidadPLan = 0,
                        producto = prodNuevo,
                        cantidadPedido = double.Parse(cantidad.ToString())
                    };

                    cargarNuevoDetallePlanYPedidoXPlan(detallePlanProduccion, con, trans, pedido);

                    MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal,trans,con);//CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS
                    DataTable MateriaPrimaXIntermedio = new DataTable();
                    ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal,con,trans);//CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO

                    obtenerMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans, productosConPocaMP);
                }
            }
        }
Ejemplo n.º 3
0
 private void btnPedir_Click(object sender, EventArgs e)
 {
     if (dtPedido.Rows.Count <= 0)
     {
         MessageBox.Show("Debe selecionar al menos un producto", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else
     {
         Pedido pedido = new Pedido();
         pedido.Fecha = System.DateTime.Today;
         pedido.Productos = new List<Producto>();
         for (int i = 0; i < dtPedido.Rows.Count; i++)
         {
             Producto aux = new Producto();
             aux = Devuelve.Producto((Convert.ToInt32(dtPedido.Rows[i]["IdProducto"])));
             aux.Stock = Convert.ToInt32(dtPedido.Rows[i]["Cantidad"]);
             pedido.Productos.Add(aux);
             foreach (Proveedor p in Devuelve.Proveedores())
             {
                 if (cbProveedor.Text == p.Nombre)
                     pedido.Proveedor = p;
             }                                     
         }
         try
         {
             Agrega.Pedido(pedido);
             MessageBox.Show("Pedido registrado con exito", "Operacion completa");
         }
         catch (Exception e2)
         {
             MessageBox.Show(e2.Message, "Se produjo el siguiente error");
         }   
     }
 }
Ejemplo n.º 4
0
        private void cargarCliente(int id)
        {
            ped=PedidoDAO.GetById(id);

            txt_apellido.Text = ped.cliente.Apellido.ToString();
            txt_nombre.Text = ped.cliente.Nombre.ToString();
            txt_razon_social.Text = ped.cliente.RazonSocial.ToString();
            txt_cuit.Text = ped.cliente.cuil.ToString();
            txt_nro_doc.Text = ped.cliente.NroDoc.ToString();
            cmb_tipo_doc.SelectedValue = ped.cliente.TipoDoc.IDTipoDoc;
            cmb_iva.SelectedValue = ped.cliente.condicionIVA.idCondicionIVA;

            txt_monto_total.Text = ped.montoTotal.ToString();
            cargarGrillaDetalle(ped.idPedido);
        }
Ejemplo n.º 5
0
 public static Pedido Pedido(int id)
 {
     ManejaPedido manejaPedido = new ManejaPedido();
     Pedido res = new Pedido();
     res = (Pedido)manejaPedido.buscaPorId(id);
     return res;
 }
Ejemplo n.º 6
0
        public static List<Pedido> GetAll()
        {
            Acceso ac = new Acceso();

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

            string sql = "SELECT * from CONSULTA_PEDIDOS ORDER BY fechaNecesidad DESC";
            SqlCommand cmd = new SqlCommand();
            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            try
            {
                conexion.Open();

                cmd.Connection = conexion;
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;

                SqlDataReader dr = cmd.ExecuteReader();

                Pedido  p;
                Estado  e;
                Persona c;
                TipoDocumento t;

                while (dr.Read())
                {
                    c = new Persona();
                    t = new TipoDocumento();

                    t.IDTipoDoc = Convert.ToInt32(dr["idTipoDoc"]);

                    c.RazonSocial = dr["razonSocial"].ToString();
                    c.Nombre  = dr["nombre"].ToString();
                    c.Apellido  = dr["apellido"].ToString();
                    c.cuil = dr["CUIT"].ToString();
                    c.NroDoc = Convert.ToInt32(dr["nroDocumento"]);
                    c.TipoDoc = t;

                    e  = new Estado ();

                   e.idEstado  = Convert.ToInt32(dr["idEstado"]);
                   e.Nombre  = dr["estado"].ToString();

                    p = new Pedido();

                    p.idPedido  = Convert.ToInt32(dr["idPedido"]);
                    p.fechaNecesidad  = Convert.ToDateTime(dr ["fechaNecesidad"]);
                    p.fechaPedido  = Convert.ToDateTime(dr["fechaPedido"]);
                    p.montoTotal = Convert.ToDouble(dr["total"]);
                    p.nroPedido = Convert.ToInt32(dr["nroPedido"]);
                    p.dirEntraga=dr["direccion"].ToString();
                    p.estado = e;
                    p.cliente = c;

                    pedidos.Add(p);

                }

            }
            catch (InvalidOperationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }

            return pedidos;
        }
Ejemplo n.º 7
0
 public static void cargarNuevoDetallePlanYPedidoXPlan(DetallePlanProduccion detallePlanProd, SqlConnection con, SqlTransaction trans, Pedido ped)
 {
     DetallePlanProduccionDAO.Insert(detallePlanProd, con, trans, detallePlanProd.idPlan);//ACTUALIZAMOS LA CANTIDAD DE PRODUCTOS EN PEDIDO EN EL DETALLE PLAN PRODUCCION
     //DetallePlanProduccionDAO.insertarPlanProduccionXPedido(ped.idPedido, detallePlanProd.producto.idProducto, detallePlanProd.idPlan, detallePlanProd.fechaProduccion.Date,trans,con);
 }
Ejemplo n.º 8
0
        public static void Update(Pedido ped, List<DetallePedido> tablaAModificar, List<Producto> productosConPocaMP)
        {
            Acceso ac = new Acceso();
            SqlTransaction tran = null;

            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            SqlCommand cmd = new SqlCommand("UPDATE [Luiggi].[dbo].[Pedido] SET [fechaNecesidad] = @fechaNecesidad, [direccion] = @direccion, [idEstado] = @idEstado  WHERE idPedido = @idPedido", conexion);

            cmd.Parameters.AddWithValue("@idPedido", ped.idPedido );
            cmd.Parameters.AddWithValue("@fechaNecesidad", ped.fechaNecesidad);
            cmd.Parameters.AddWithValue("@direccion",ped.dirEntraga);
            cmd.Parameters.AddWithValue("@idEstado", ped.estado.idEstado);

            try
            {
                conexion.Open();
                tran = conexion.BeginTransaction();
                cmd.CommandType = CommandType.Text;
                cmd.Transaction = tran;
                cmd.ExecuteNonQuery();
                //SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran);
                //ped.idPedido = Convert.ToInt32((cmdIdentity.ExecuteScalar()));
                foreach (DetallePedido detP in tablaAModificar)
                {
                    if (detP.reservado == true)
                    {
                        ProductoDAO.UpdateStockReservadoYDisponibleEliminado(detP.producto.idProducto, detP.cantidad, conexion, tran);
                    }
                    else
                    {
                        renovarStock(detP, conexion, tran, ped, productosConPocaMP);
                    }
                }
                DetallePedidoDAO.Delete(ped.idPedido, conexion, tran);

                foreach (DetallePedido detPed in ped.detallePedido)
                {
                    //detPed.pedido.idPedido = ped.idPedido;
                    DetallePedidoDAO.Insert(detPed, conexion, tran, ped.idPedido);
                    if (detPed.reservado == true)
                    {
                        ProductoDAO.UpdateStockReservadoYDisponible(detPed, conexion, tran);
                    }
                    if (detPed.reservado == false)
                    {
                        actualizarStock(detPed, conexion, tran, ped, productosConPocaMP);
                    }
                }
                tran.Commit();

            }
            catch (ArgumentException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {

                conexion.Close();
            }
        }
Ejemplo n.º 9
0
        public static int Insert(Pedido ped, List<Producto> productosConPocaMP)
        {
            Acceso ac = new Acceso();
            SqlTransaction tran = null;

            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            SqlCommand cmd = new SqlCommand("sp_Pedido_insert", conexion);

            cmd.Parameters.AddWithValue("@idCliente", ped.cliente.idPersona );
            cmd.Parameters.AddWithValue("@idEstado", ped.estado.idEstado );
            cmd.Parameters.AddWithValue("@fechaPedido", ped.fechaPedido );
            cmd.Parameters.AddWithValue("@fechaNecesidad", ped.fechaNecesidad );
            cmd.Parameters.AddWithValue("@nroPedido", ped.nroPedido );
            cmd.Parameters.AddWithValue("@direccion", ped.dirEntraga);

            try
            {
                conexion.Open();
                tran = conexion.BeginTransaction();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Transaction = tran;
                cmd.ExecuteNonQuery();

                SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran);
                ped.idPedido = Convert.ToInt32((cmdIdentity.ExecuteScalar()));

                foreach (DetallePedido detPed in ped.detallePedido )
                {
                    //detPed.pedido.idPedido = ped.idPedido;
                    DetallePedidoDAO.Insert(detPed, conexion, tran, ped.idPedido);
                    if (detPed.reservado == true)
                    {
                        ProductoDAO.UpdateStockReservadoYDisponible(detPed, conexion, tran);
                    }
                    if (detPed.reservado == false)
                    {
                        actualizarStock(detPed, conexion, tran, ped,productosConPocaMP);
                    }

                }
                tran.Commit();
                return ped.idPedido;

            }
            catch (ArgumentException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {

                conexion.Close();
            }
        }
Ejemplo n.º 10
0
        public static Pedido GetById(int id)
        {
            Acceso ac = new Acceso();

            Pedido p  = new Pedido();

            SqlCommand cmd = new SqlCommand();
            string sql = "SELECT * from CONSULTA_PEDIDOS where idPedido=@id";
            cmd.Parameters.AddWithValue("@id", id);
            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            try
            {
                conexion.Open();

                cmd.Connection = conexion;
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;

                SqlDataReader dr = cmd.ExecuteReader();

                CondicionIVA ci;
                Persona c;
                TipoDocumento t;

                while (dr.Read())
                {
                    ci = new CondicionIVA();
                    ci.idCondicionIVA = Convert.ToInt32(dr["iva"]);
                    c = new Persona();
                    t = new TipoDocumento();

                    t.IDTipoDoc = Convert.ToInt32(dr["idTipoDoc"]);
                    c.idPersona = Convert.ToInt32(dr["idPersona"]);
                    c.RazonSocial = dr["razonSocial"].ToString();
                    c.Nombre = dr["nombre"].ToString();
                    c.Apellido = dr["apellido"].ToString();
                    c.cuil = dr["CUIT"].ToString();
                    c.NroDoc = Convert.ToInt32(dr["nroDocumento"]);
                    c.tefefonoCelular = dr["telefonoCelular"].ToString();
                    c.condicionIVA = ci ;
                    c.TipoDoc=t;

                    p.idPedido = Convert.ToInt32(dr["idPedido"]);
                    p.fechaNecesidad = Convert.ToDateTime(dr["fechaNecesidad"]);
                    p.fechaPedido = Convert.ToDateTime(dr["fechaPedido"]);
                    p.montoTotal = Convert.ToDouble(dr["total"]);
                    p.nroPedido = Convert.ToInt32(dr["nroPedido"]);
                    p.dirEntraga = dr["direccion"].ToString();
                    p.cliente = c;

                }

            }
            catch (InvalidOperationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }

            return p;
        }
Ejemplo n.º 11
0
        public static List<Pedido> GetByFiltros(int est, int tipDoc, int? nroDoc, double? montoDesde, double? mostoHasta, string nom, string ape, string raSoc, int? cuit, DateTime? fdesde, DateTime? fhasta)
        {
            Acceso ac = new Acceso();

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

            string sql = "SELECT * from CONSULTA_PEDIDOS where 1=1";
            SqlCommand cmd = new SqlCommand();
            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            if (est != -1 && est != 0)
            {
                sql += " and idEstado = @est";
                cmd.Parameters.AddWithValue("@est", est);
            }
            if (tipDoc != -1 && tipDoc != 0)
            {
                sql += " and idTipoDoc = @tipDoc";
                cmd.Parameters.AddWithValue("@tipDoc", tipDoc);
            }
            if (nroDoc.HasValue)
            {
                sql += " and nroDocumento = @nroDoc";
                cmd.Parameters.AddWithValue("@nroDoc", nroDoc);

            }
            if (montoDesde.HasValue)
            {
                sql += " and total >= @montoDesde";
                cmd.Parameters.AddWithValue("@montoDesde", montoDesde);

            }
            if (mostoHasta.HasValue)
            {
                sql += " and total <= @mostoHasta";
                cmd.Parameters.AddWithValue("@mostoHasta", mostoHasta);

            }
            if (!string.IsNullOrEmpty(ape))
            {
                sql += " and apellido = @apellido";
                cmd.Parameters.AddWithValue("@apellido", ape);
            }
            if (!string.IsNullOrEmpty(nom))
            {
                sql += " and nombre = @nombre";
                cmd.Parameters.AddWithValue("@nombre", nom);
            }
            if (!string.IsNullOrEmpty(raSoc))
            {
                sql += " and razonSocial = @raSoc";
                cmd.Parameters.AddWithValue("@raSoc", raSoc);
            }
            if (cuit.HasValue)
            {
                sql += " and CUIT = @cuit";
                cmd.Parameters.AddWithValue("@cuit", cuit);

            }
            if (fdesde.HasValue)
            {
                sql += " and fechaNecesidad >= @fdesde";
                cmd.Parameters.AddWithValue("@fdesde", fdesde.Value);
            }
            if (fhasta.HasValue)
            {
                sql += " and fechaNecesidad <= @fhasta";
                cmd.Parameters.AddWithValue("@fhasta", fhasta.Value);
            }

            try
            {
                conexion.Open();

                cmd.Connection = conexion;
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;

                SqlDataReader dr = cmd.ExecuteReader();

                Pedido p;
                Estado e;
                Persona c;
                TipoDocumento t;

                while (dr.Read())
                {
                    c = new Persona();
                    t = new TipoDocumento();

                    t.IDTipoDoc = Convert.ToInt32(dr["idTipoDoc"]);

                    c.RazonSocial = dr["razonSocial"].ToString();
                    c.Nombre = dr["nombre"].ToString();
                    c.Apellido = dr["apellido"].ToString();
                    c.cuil = dr["CUIT"].ToString();
                    c.NroDoc = Convert.ToInt32(dr["nroDocumento"]);
                    c.TipoDoc = t;

                    e = new Estado();

                    e.idEstado = Convert.ToInt32(dr["idEstado"]);
                    e.Nombre = dr["estado"].ToString();

                    p = new Pedido();

                    p.idPedido = Convert.ToInt32(dr["idPedido"]);
                    p.fechaNecesidad = Convert.ToDateTime(dr["fechaNecesidad"]);
                    p.fechaPedido = Convert.ToDateTime(dr["fechaPedido"]);
                    p.montoTotal = Convert.ToDouble(dr["total"]);
                    p.nroPedido = Convert.ToInt32(dr["nroPedido"]);
                    p.dirEntraga = dr["direccion"].ToString();
                    p.estado = e;
                    p.cliente = c;

                    pedidos.Add(p);

                }

            }
            catch (InvalidOperationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }

            return pedidos;
        }
        public int crearPedido(List<Producto> productosConPocaMP)
        {
            numeroPedido = buscarUltimoNroPedido();

            Estado esta=new Estado()
            {
                idEstado=idEstado,
            };
            Pedido ped = new Pedido()
            {
                cliente=cliente,
                detallePedido = detalle,
                fechaNecesidad = necesidad,
                fechaPedido = fechaPedido,
                nroPedido = numeroPedido,
                estado=esta,
                dirEntraga=direEntrega

            };
            try
            {
                return PedidoDAO.Insert(ped, productosConPocaMP);
            }
            catch (ApplicationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
        }
        public void modificarPedido(List<DetallePedido> tablaAModificar, List<Producto> productosConPocaMP)
        {
            Pedido ped = new Pedido();

            ped.idPedido = idPedido;
            ped.fechaNecesidad = necesidad;
            ped.detallePedido = detalle;
            ped.dirEntraga = direEntrega;
            ped.estado = new Estado() { idEstado = idEstado };
            try
            {
                PedidoDAO.Update(ped, tablaAModificar, productosConPocaMP);
            }
            catch (ApplicationException ex)
            {
                throw new ApplicationException(ex.Message);
            }
        }
Ejemplo n.º 14
0
        private void dgv_pedidos_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (dgv_pedidos.Rows[dgv_pedidos.CurrentRow.Index].Cells["Estado"].Value.ToString() == "Pendiente de prepacacion" || sonTodosReservados())
                {
                    Pedido ped = new Pedido();

                    ped.idPedido = (int)dgv_pedidos.Rows[dgv_pedidos.CurrentRow.Index].Cells["idPedido"].Value;

                    Gestion_de_Pedidos gestion = new Gestion_de_Pedidos();

                    gestion._estado = estados.modificar;
                    gestion._pedModificar = ped;
                    gestion.ShowDialog();

                    cargarGrilla();
                    dgv_pedidos_CellClick(sender, e);
                }
            }
            catch (Exception ex)
            {

            }
        }
Ejemplo n.º 15
0
        private static Pedido Obter(IDataReader leitor, int inicioPedidos)
        {
            Pedido pedido = new Pedido();
            pedido.código = (ulong) leitor.GetInt64(0 + inicioPedidos);

            if (!leitor.IsDBNull(1 + inicioPedidos))
                pedido.controle = (uint)leitor.GetInt32(1 + inicioPedidos);

            pedido.tipo = (Tipo)new ConversorTipo().ConverterDeDB(leitor.GetString(2 + inicioPedidos));

            pedido.cliente = Entidades.Pessoa.Pessoa.ObterPessoa(leitor, TotalAtributos + inicioPedidos,
                TotalAtributos + inicioPedidos + Entidades.Pessoa.Pessoa.TotalAtributos, 0);

            if (!leitor.IsDBNull(4 + inicioPedidos))
                pedido.representante = Entidades.Pessoa.Representante.Obter(leitor,
                    TotalAtributos + inicioPedidos + Entidades.Pessoa.Pessoa.TotalAtributos + Entidades.Pessoa.PessoaFísica.TotalAtributos,
                    TotalAtributos + inicioPedidos + 2 * Entidades.Pessoa.Pessoa.TotalAtributos + Entidades.Pessoa.PessoaFísica.TotalAtributos);


            if (!leitor.IsDBNull(5 + inicioPedidos))
                pedido.receptor = Funcionário.ObterPessoa((ulong)leitor.GetInt64(5 + inicioPedidos));

            if (!leitor.IsDBNull(6 + inicioPedidos))
                pedido.dataRecepção = leitor.GetDateTime(6 + inicioPedidos);

            if (!leitor.IsDBNull(7 + inicioPedidos))
                pedido.dataPrevisão = leitor.GetDateTime(7 + inicioPedidos);

            if (!leitor.IsDBNull(8 + inicioPedidos))
                pedido.dataConclusão = leitor.GetDateTime(8 + inicioPedidos);

            if (!leitor.IsDBNull(9 + inicioPedidos))
                pedido.dataEntrega = leitor.GetDateTime(9 + inicioPedidos);

            if (!leitor.IsDBNull(10 + inicioPedidos))
                pedido.observações = leitor.GetString(10 + inicioPedidos);

            pedido.entrega = (Entrega) new ConversorTipoEntrega().ConverterDeDB(leitor.GetString(11 + inicioPedidos));

            if (!leitor.IsDBNull(12 + inicioPedidos))
                pedido.funcionarioentrega = Funcionário.ObterPessoa((ulong) leitor.GetInt64(12 + inicioPedidos));

            pedido.pertenceAoCliente = leitor.GetBoolean(13 + inicioPedidos);


            pedido.DefinirCadastrado();
            pedido.DefinirAtualizado();

            return pedido;
        }